[LinuxBIOS] [PATCH] probe_superio: Cosmetics, cleanup, better structure

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Sep 27 15:56:20 CEST 2007


On 26.09.2007 00:25, Robert Millan wrote:
> On Sat, Sep 01, 2007 at 09:00:57PM +0200, Carl-Daniel Hailfinger wrote:
>> You patch in the other mail looked fine. Fix the issues mentioned above
>> as "FIX" and post another probe_superio from a lb boot after fixes.
> 
> This is getting weird.  I just added all the fixes, and got my superio layout
> to be as similar as the propietary one as shown below, but the PS/2 keyboard
> still won't work.
> 
> Any idea what else can be tried?
> 
> $ sudo ./superiotool -d | diff -u PROPIETARY_DUMP -
> --- PROPIETARY_DUMP     2007-09-25 23:40:14.000000000 +0200
> +++ -   2007-09-26 00:21:11.266993669 +0200
> @@ -1,7 +1,7 @@
>  Found ITE IT8712F (id=0x8712, rev=0x7) at port=0x2e
>  Register dump:
>  idx 07 20 21 22 23 24 2b
> -val 0a 87 12 07 01 00 00
> +val 06 87 12 07 01 00 00

That's expected. Basically, idx 07 is a selector for the subfunction you
want to access next, so it will be in the state the last access left it.

>  def NA 87 12 08 00 00 00
>  LDN 0x00 (Floppy)
>  idx 30 60 61 70 74 f0 f1
> @@ -13,7 +13,7 @@
>  def 00 03 f8 04 00 50 00 7f
>  LDN 0x02 (COM2)
>  idx 30 60 61 70 f0 f1 f2 f3
> -val 00 00 00 00 00 50 00 7f
> +val 01 00 00 00 00 50 00 7f

Interesting...

>  def 00 02 f8 03 00 50 00 7f
>  LDN 0x03 (Parallel port)
>  idx 30 60 61 62 63 70 74 f0
> 
> The first difference I don't know how to change, but strangely the next time
> I run the same command it isn't detected anymore.  As for the second one, it

See above.

> still appears despite me setting that register explicitly like all the others,
> and commenting out the line in it8712f_early_serial.c that set it to 0x01 as
> well.

It would be interesting to dump LDN 0x02, idx 0x30 at various times
during BIOS init.

> (note: afaict, this board has no com2 port.  could this affect the superio?)

Should not.

Please provide a diff between dmesg under LB and proprietary BIOS. I
suspect some keyboard init is done differently.

Also note that some superio internal state will NOT be dumped by
superiotool and your problem could very well be there. Unfortunately, we
don't have a way to retrieve the internal state.

Carl-Daniel




More information about the coreboot mailing list