[coreboot] Probe missing on W49F002U

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Mon Mar 3 14:47:13 CET 2008


On 03.03.2008 07:17, Jun Ma wrote:
>> What we did:
>>
>> Use superiotoo to dump the superio. Look at GPIOs. Notice that one,
>> and only one,
>> GPIO was even enabled. And it was enabled as output.
>>
>> So we looked at the output value, inverted it, and flashrom worked fine.
>>
>> This was a few minutes of debugging. It took longer to modify
>> superiotool to know about this particular superio than it took to
>> figure out how to write enable flash :-)
>>
>> You'll just need to dump the states of the GPIOs on the SiS part, see
>> which ones
>> are enabled, see which are enabled as outputs, and for a first try, just
>> invert them all ... you can work out which one is controlling it bit by bit.
>>
>>     
>
> For my poor board with Super I/O chip ITE IT8770F, the superiotool outputs:
>
> Sis530:~/superiotool#
> Sis530:~/superiotool# ./superiotool -V
> superiotool r
> Probing for ALi Super I/O at 0x3f0...
>   Failed. Returned data: id=0xffff, rev=0xff
> Probing for ALi Super I/O at 0x370...
>   Failed. Returned data: id=0xffff, rev=0xff
> Probing for Fintek Super I/O at 0x2e...
>   Failed. Returned data: vid=0xffff, id=0xffff
> Probing for Fintek Super I/O at 0x4e...
>   Failed. Returned data: vid=0xffff, id=0xffff
> Probing for ITE Super I/O (init=0x87,0x01,0x55,0x55/0xaa) at 0x2e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=0x87,0x87) at 0x2e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=0x87,0x01,0x55,0x55/0xaa) at 0x4e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=0x87,0x87) at 0x4e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for NSC Super I/O at 0x2e...
>   Failed. Returned data: port=0xff, port+1=0xff
> Probing for NSC Super I/O at 0x4e...
>   Failed. Returned data: port=0xff, port+1=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> No Super I/O found
> Sis530:~/superiotool#
>
>
> I saw some comments here:
> /**
>  * IT871[01]F and IT8708F use 0x87, 0x87
>  * IT8761F uses 0x87, 0x61, 0x55, 0x55/0xaa
>  * IT86xxF series uses different ports
>  * IT8661F uses 0x86, 0x61, 0x55/0xaa, 0x55/0xaa and 32 more writes
>  * IT8673F uses 0x86, 0x80, 0x55/0xaa, 0x55/0xaa and 32 more writes
>  */
> static void enter_conf_mode_ite(uint16_t port)
> {
> 	outb(0x87, port);
> 	outb(0x01, port);
> 	outb(0x55, port);
> 	if (port == 0x2e)
> 		outb(0x55, port);
> 	else
> 		outb(0xaa, port);
> }
>
> Not support IT8770F(I guessed)?
> also I haven't found any DS about IT8770F on internet, seems I am blind now..
>   
Look for IT8661F. Someone wrote the IT8770F and the IT8761F are identical. But it is not easy to add support for it.

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the coreboot mailing list