[LinuxBIOS] flashrom fails on GA-M57SLI with 1MB ROM

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Tue Nov 27 01:29:05 CET 2007


On 26.11.2007 20:00, Andreas B. Mundt wrote:
> On Mon, Nov 26, 2007 at 12:59:49PM +0100, Carl-Daniel Hailfinger wrote:
>   
>> On 25.11.2007 09:54, Andreas B. Mundt wrote:
>>     
>>>> To summarize:
>>>>
>>>> Proprietary BIOS:
>>>> * Erasing the chip was tested, reading from the chip gives you all 0xFFs
>>>> after erase.
>>>> * Writing the chip after erase was tested, verify successful.
>>>>     
>>>>         
>>> correct
>>>   
>>>       
>> Good.
>>
>>     
>>>> LinuxBIOS:
>>>> * Erasing the chip fails, only a few bytes are changed (if any).
>>>> * Writing fails as well because erase failed.
>>>>     
>>>>         
>>> correct
>>>   
>>>       
>> Did it ever work for you?
>>
>>     
>
> No :-(
>   
>> Thanks for the dumps. I believe the Super I/O data sheet is incomplete
>> and/or wrong, so please try this patch against superiotool and dump
>> again under LB and proprietary.
>>
>>     
>
> Here we go:
>
> superiotool patched, proprietary BIOS:
>
> superiotool r2986
> Found ITE IT8716F (id=0x8716, rev=0x0) at 0x2e
> Register dump:
> idx 07 20 21 22 23 24 2b
> val 07 87 16 00 11 00 00
> def NA 87 16 01 00 00 00
> LDN 0x00
> idx 30 60 61 70 74 f0 f1
> val 01 03 f0 06 02 00 80
> def 00 03 f0 06 02 00 00
> LDN 0x01
> idx 30 60 61 70 f0 f1 f2 f3
> val 01 03 f8 04 00 50 00 7f
> def 00 03 f8 04 00 50 00 7f
> LDN 0x02
> idx 30 60 61 70 f0 f1 f2 f3
> val 00 00 00 00 00 50 00 7f
> def 00 02 f8 03 00 50 00 7f
> LDN 0x03
> idx 30 60 61 62 63 70 74 f0
> val 01 03 78 00 00 07 04 08
> def 00 03 78 07 78 07 03 03
> LDN 0x04
> idx 30 60 61 62 63 70 f0 f1  f2 f3 f4 f5 f6
> val 01 02 90 00 00 00 80 00  0a 00 80 00 ff
> def 00 02 90 02 30 09 00 00  00 00 00 NA NA
> LDN 0x05
> idx 30 60 61 62 63 70 71 f0
> val 01 00 60 00 64 01 02 68
> def 01 00 60 00 64 01 02 00
> LDN 0x06
> idx 30 70 71 f0
> val 00 00 02 00
> def 00 0c 02 00
> LDN 0x07
> idx 25 26 27 28 29 2a 2c 60  61 62 63 64 65 70 71 72  73 74 b0 b1 b2 b3 b4 b5  b8 b9 ba bb bc bd c0 c1  c2 c3 c4 c5 c8 c9 ca cb  cc cd e0 e1 e2 e3 e4 f0  f1 f2 f3 f4 f5 f6 f7 f8  f9 fa fb fc fd
> val 00 43 20 00 81 00 1f 00  00 08 00 00 00 00 00 00  38 00 00 00 00 00 00 00  00 00 00 00 01 00 00 43  20 00 00 00 00 40 00 00  00 00 00 00 00 00 00 10  40 00 00 00 00 28 00 00  00 00 00 32 00
> def 01 00 00 40 00 00 00 00  00 00 00 00 00 00 00 20  38 00 00 00 00 00 00 00  00 00 00 00 00 00 01 00  00 40 00 NA 01 00 00 40  00 NA 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 NA 00
> LDN 0x08
> idx 30 60 61 70 f0
> val 00 03 00 0a 00
> def 00 03 00 0a 00
> LDN 0x09
> idx 30 60 61
> val 00 02 01
> def 00 02 01
> LDN 0x0a
> idx 30 60 61 70 f0
> val 00 03 10 0b 06
> def 00 03 10 0b 00
>
> ---------------
> superiotool patched, LB BIOS:
>
> superiotool r2986
> Found ITE IT8716F (id=0x8716, rev=0x0) at 0x2e
> Register dump:
> idx 07 20 21 22 23 24 2b
> val 0a 87 16 00 11 00 00
> def NA 87 16 01 00 00 00
> LDN 0x00
> idx 30 60 61 70 74 f0 f1
> val 00 03 f0 06 02 00 00
> def 00 03 f0 06 02 00 00
> LDN 0x01
> idx 30 60 61 70 f0 f1 f2 f3
> val 01 03 f8 04 00 50 00 7f
> def 00 03 f8 04 00 50 00 7f
> LDN 0x02
> idx 30 60 61 70 f0 f1 f2 f3
> val 00 02 f8 03 00 50 00 7f
> def 00 02 f8 03 00 50 00 7f
> LDN 0x03
> idx 30 60 61 62 63 70 74 f0
> val 00 03 78 07 78 07 04 03
> def 00 03 78 07 78 07 03 03
> LDN 0x04
> idx 30 60 61 62 63 70 f0 f1  f2 f3 f4 f5 f6
> val 01 02 90 02 30 09 80 00  0a 00 80 00 ff
> def 00 02 90 02 30 09 00 00  00 00 00 NA NA
> LDN 0x05
> idx 30 60 61 62 63 70 71 f0
> val 01 00 60 00 64 01 02 48
> def 01 00 60 00 64 01 02 00
> LDN 0x06
> idx 30 70 71 f0
> val 01 0c 02 00
> def 00 0c 02 00
> LDN 0x07
> idx 25 26 27 28 29 2a 2c 60  61 62 63 64 65 70 71 72  73 74 b0 b1 b2 b3 b4 b5  b8 b9 ba bb bc bd c0 c1  c2 c3 c4 c5 c8 c9 ca cb  cc cd e0 e1 e2 e3 e4 f0  f1 f2 f3 f4 f5 f6 f7 f8  f9 fa fb fc fd
> val 00 43 20 40 81 00 1f 00  00 08 00 00 00 00 01 00  38 00 00 00 00 00 00 00  00 00 00 00 01 00 01 43  20 40 00 00 01 40 00 40  00 00 00 00 00 00 00 00  00 00 00 00 00 28 00 00  00 00 00 32 00
> def 01 00 00 40 00 00 00 00  00 00 00 00 00 00 00 20  38 00 00 00 00 00 00 00  00 00 00 00 00 00 01 00  00 40 00 NA 01 00 00 40  00 NA 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 NA 00
> LDN 0x08
> idx 30 60 61 70 f0
> val 00 03 00 0a 00
> def 00 03 00 0a 00
> LDN 0x09
> idx 30 60 61
> val 00 02 01
> def 00 02 01
> LDN 0x0a
> idx 30 60 61 70 f0
> val 00 03 10 0b 06
> def 00 03 10 0b 00
>
> ------------
>
> $ diff -u andi_prop_p andi_LB_p
> --- andi_prop_p 2007-11-26 19:50:25.000000000 +0100
> +++ andi_LB_p   2007-11-26 19:46:04.000000000 +0100
> @@ -2,11 +2,11 @@
>  Found ITE IT8716F (id=0x8716, rev=0x0) at 0x2e
>  Register dump:
>  idx 07 20 21 22 23 24 2b
> -val 07 87 16 00 11 00 00
> +val 0a 87 16 00 11 00 00
>  def NA 87 16 01 00 00 00
>  LDN 0x00
>  idx 30 60 61 70 74 f0 f1
> -val 01 03 f0 06 02 00 80
> +val 00 03 f0 06 02 00 00
>  def 00 03 f0 06 02 00 00
>  LDN 0x01
>  idx 30 60 61 70 f0 f1 f2 f3
> @@ -14,27 +14,27 @@
>  def 00 03 f8 04 00 50 00 7f
>  LDN 0x02
>  idx 30 60 61 70 f0 f1 f2 f3
> -val 00 00 00 00 00 50 00 7f
> +val 00 02 f8 03 00 50 00 7f
>  def 00 02 f8 03 00 50 00 7f
>  LDN 0x03
>  idx 30 60 61 62 63 70 74 f0
> -val 01 03 78 00 00 07 04 08
> +val 00 03 78 07 78 07 04 03
>  def 00 03 78 07 78 07 03 03
>  LDN 0x04
>  idx 30 60 61 62 63 70 f0 f1  f2 f3 f4 f5 f6
> -val 01 02 90 00 00 00 80 00  0a 00 80 00 ff
> +val 01 02 90 02 30 09 80 00  0a 00 80 00 ff
>  def 00 02 90 02 30 09 00 00  00 00 00 NA NA
>  LDN 0x05
>  idx 30 60 61 62 63 70 71 f0
> -val 01 00 60 00 64 01 02 68
> +val 01 00 60 00 64 01 02 48
>  def 01 00 60 00 64 01 02 00
>  LDN 0x06
>  idx 30 70 71 f0
> -val 00 00 02 00
> +val 01 0c 02 00
>  def 00 0c 02 00
>  LDN 0x07
>  idx 25 26 27 28 29 2a 2c 60  61 62 63 64 65 70 71 72  73 74 b0 b1 b2 b3 b4 b5  b8 b9 ba bb bc bd c0 c1  c2 c3 c4 c5 c8 c9 ca cb  cc cd e0 e1 e2 e3 e4 f0  f1 f2 f3 f4 f5 f6 f7 f8  f9 fa fb fc fd
> -val 00 43 20 00 81 00 1f 00  00 08 00 00 00 00 00 00  38 00 00 00 00 00 00 00  00 00 00 00 01 00 00 43  20 00 00 00 00 40 00 00  00 00 00 00 00 00 00 10  40 00 00 00 00 28 00 00  00 00 00 32 00
> +val 00 43 20 40 81 00 1f 00  00 08 00 00 00 00 01 00  38 00 00 00 00 00 00 00  00 00 00 00 01 00 01 43  20 40 00 00 01 40 00 40  00 00 00 00 00 00 00 00  00 00 00 00 00 28 00 00  00 00 00 32 00
>  def 01 00 00 40 00 00 00 00  00 00 00 00 00 00 00 20  38 00 00 00 00 00 00 00  00 00 00 00 00 00 01 00  00 40 00 NA 01 00 00 40  00 NA 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 NA 00
>  LDN 0x08
>  idx 30 60 61 70 f0
>   


Just a note to self:

Config.lb, idx 0x7

idx 0x28, set to 0 (GP46)
idx 0xc0, set to 0 (SIO1 Alternate)
idx 0xc8, set to 0 (SIO1 Input)
idx 0xcb, set to 0 (SIO4 Input)

We have to figure out what differs between your proprietary BIOS and the
proprietary BIOS I verified our settings against.


Regards,
Carl-Daniel




More information about the coreboot mailing list