I had the same problem with a P2B.
news://news.gmane.org:119/hj1sjv$elg$1@ger.gmane.org
I never got a reply :-(
The function "pnp_enable" only ever disables functions, yet the keyboard function of the superio starts off disabled. This is documented behavior in the Winbond data sheet.
The simplest fix is to change this function to actually do the enable / disable. I don't have the code to hand, but if you grep for this function name it should be obvious.
MM
PS. The internet has the source:
http://tracker.coreboot.org/trac/coreboot/browser/trunk/src/devices/pnp_devi...
Change
152 void pnp_enable(device_t dev) 153 { 154 if (!dev->enabled) { 155 pnp_set_logical_device(dev); 156 pnp_set_enable(dev, 0); 157 } 158 }
To
152 void pnp_enable(device_t dev) 153 { 155 pnp_set_logical_device(dev); 156 pnp_set_enable(dev, dev->enabled); 158 }
(This is from memory. I don't really understand all of this code, this might not be the best fix.)
I don't know for sure either, but this change sure did the trick. I can now log in through my trusty model M. Yay. :D
Logical device 8 (GPIO 2) is still not enabled. But that can wait until we figure out what it does on a P2B.
Also, COM2 works on P2B-L! That means it works on all boards with this superio chip.
Now a word of warning. If serial port is enabled in both coreboot in SeaBIOS and they are different, it may end up booting extremely .s.l.o.w.l.y. through SeaBIOS. It is so slow I can see its messages ("Starting SeaBIOS...") appearing letter by letter like an old TTY. Very retroish. :-P
---
My ATI 3D Rage 2C card, besides making a few PCI BIOS calls, is also making a int 0x42 call that isn't supported.
oprom: INT# 0x42 oprom: eax: 00000007 ebx: 00001004 ecx: 00000000 edx: 001203c2 oprom: ebp: 00110000 esp: 00000fda edi: 0000ffff esi: 00000000 oprom: ip: 3e3d cs: c000 flags: 00000006 Unsupported software interrupt #0x42 error!
Ralf Brown's Interrupt List #61 lists it as:
INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA) Desc: contains the address of the original INT 10 handler which an EGA+ video adapter replaces with its own on-board BIOS code
So the above call should change video mode to 0x07, the mono text mode.
This happens before loading a payload so this isn't SeaBIOS' responsibility, yet. Can we implement a stub to suppress this error?
Cheers Keith