2007-06-21 20:57:51

by Rudolf Marek

[permalink] [raw]
Subject: Re: [PATCH] hwmon/coretemp: Fix a broken error path - microcode update fix

#!/bin/bash

#get the BIOS http://www-307.ibm.com/pc/support/site.wss/MIGR-63024.html
wget ftp://ftp.software.ibm.com/pc/pccbbs/mobiles/79uj20us.exe
cabextract -F "*PAT" 79uj20us.exe
ls -1 *PAT | while read line; do echo "/* Microcode from $line */" ; hexdump -e ' 4/4 "0x%08X, " "\n"' $line ;done >mcode.txt


Attachments:
gen_mcode.txt (313.00 B)

2007-06-21 21:55:50

by Soeren Sonnenburg

[permalink] [raw]
Subject: Re: [PATCH] hwmon/coretemp: Fix a broken error path - microcode update fix

On Thu, 2007-06-21 at 22:57 +0200, Rudolf Marek wrote:
> Hello Soeren,
>
> Sorry for the delay.
>
> I'm ccing all lists maybe some other people are interested. There is known
> errata AE18 which prevents coretemp from working correctly on some mobile Core
> processors (family 6 model e). My driver refuses to load and now thanks to
> soeren will not crash ;) However what to do when no microcode update (no new
> BIOS) is available?
>
> Soeren pointed at some T60, T60p BIOS update and luckily, there is a easy way
> how to extract the microcode update and even convert it into the .txt format as
> microcode update utility (http://www.urbanmyth.org/microcode/) expects.
> Attached scripts generates the mcode.txt file which may be used by the update
> utility. Please can you give a try?

great! it works:

sensors excerpt :

coretemp-isa-0000
Adapter: ISA adapter
temp1: +62?C (high = +100?C)

coretemp-isa-0001
Adapter: ISA adapter
temp1: +64?C (high = +100?C)

> It seems that there is microcode update for CPUID 06E8 version 0x39 just as my
> driver is checking. So if your CPUID is 06e8 too you should get the coretemp
> driver working.

how do I find that out ? I mean sensors seem to work but how do I know
which CPUID+version I have ?

> If so I will post a patch and document the script in documentation directory (or
> at least some general instructions how to do that)
>
> Please tell me your stepping:
> cat /proc/cpuinfo | grep stepping

$ cat /proc/cpuinfo | grep stepping
stepping : 8
stepping : 8

Thank you *very* much!
Soeren
--
Sometimes, there's a moment as you're waking, when you become aware of
the real world around you, but you're still dreaming.

2007-06-25 13:57:43

by Soeren Sonnenburg

[permalink] [raw]
Subject: Re: [PATCH] hwmon/coretemp: Fix a broken error path - microcode update fix

On Thu, 2007-06-21 at 22:57 +0200, Rudolf Marek wrote:
> Hello Soeren,
[...]
> Soeren pointed at some T60, T60p BIOS update and luckily, there is a
> easy way
> how to extract the microcode update and even convert it into the .txt
> format as
> microcode update utility (http://www.urbanmyth.org/microcode/)
> expects.
> Attached scripts generates the mcode.txt file which may be used by the
> update
> utility. Please can you give a try?

Hi Rudolf,

just one more update:

When I put my machine into s2ram and make it resume, one of the coretemp
sensors gets lost. Ahh and I am already rmmod coretemp / loading
microcode after resume / insmod coretemp...

Any idea's on that ?

Soeren
--
Sometimes, there's a moment as you're waking, when you become aware of
the real world around you, but you're still dreaming.

2007-06-25 18:20:34

by Rudolf Marek

[permalink] [raw]
Subject: Re: [PATCH] hwmon/coretemp: Fix a broken error path - microcode update fix

> Hi Rudolf,
>
> just one more update:
>
> When I put my machine into s2ram and make it resume, one of the coretemp
> sensors gets lost. Ahh and I am already rmmod coretemp / loading
> microcode after resume / insmod coretemp...

Hello, If I understand correctly you unload the driver before suspend. Resume,
update microcode, load the driver correct?

Please can you check dmesg if for example one core complains about bad microcode
version?

Thanks,
Rudolf

2007-06-25 19:35:41

by Soeren Sonnenburg

[permalink] [raw]
Subject: Re: [PATCH] hwmon/coretemp: Fix a broken error path - microcode update fix

On Mon, 2007-06-25 at 20:20 +0200, Rudolf Marek wrote:
> > Hi Rudolf,
> >
> > just one more update:
> >
> > When I put my machine into s2ram and make it resume, one of the coretemp
> > sensors gets lost. Ahh and I am already rmmod coretemp / loading
> > microcode after resume / insmod coretemp...
>
> Hello, If I understand correctly you unload the driver before suspend. Resume,
> update microcode, load the driver correct?

no I did not unload the driver but rmmod it after resume before I load
the microcode.

> Please can you check dmesg if for example one core complains about bad microcode
> version?

indeed core1 still complains. and I just now loaded the new microcode
( rmmod of coretemp before and insmod after) and voila coretemp displays
both cpu's again. So I guess the microcode reloading is done to soon
after resume...

Soeren
--
Sometimes, there's a moment as you're waking, when you become aware of
the real world around you, but you're still dreaming.