[LinuxBIOS] PS2 keyboard not working on ASUS A8N5X ( K8/CK804/IT8712F)

Marc Jones marc.jones at amd.com
Fri Aug 17 18:50:43 CEST 2007



Robert Millan wrote:
> On Thu, Aug 16, 2007 at 05:32:07PM -0600, Marc Jones wrote:
>> I assume you have a good reason, but why are you changing the it8712f 
>> pnp device numbers? I am not positive how this works, but I think 
>> changing 2e.0 to 2e.7 means that you are trying to program the it8712f 
>> logical device 7 with floppy settings.
>> http://www.tranzistoare.ro/datasheets/1150/495234_DS.pdf
> 
> The changes were mostly part of the patch Uwe sent me (for his slightly
> different board).  I also changed keyboard (s/2e.5/2e.a/), midi (s/2e.8/2e.b/)
> and game port (s/2e.9/2e.c/) while trying to match with lspnp output:
> 
>   00:0a PNP0303 IBM enhanced keyboard (101/102-key, PS/2 mouse support)
>   00:0b PNPb006 MPU401 compatible
>   00:0c PNPb02f Joystick/Game port
> 
> Is this correct?
> 

I guess Uwe would need to answer this. I must not understand it correctly.

>> IRQ routing/polarity/mask issues? Check mptable.c and irq_tables.c.
> 
> I see that they print these debug messages:
> 
>   Writing IRQ routing tables to 0xf0000...done.
>   Wrote the mp table end at: 00000020 - 00000140
> 
> I'm not sure if I can make sense of this.  Should I poke at the contents
> in these addresses?
> 

You can get more info here:
http://linuxbios.org/Glossary#MPTable
http://linuxbios.org/Glossary#PIRQ

I don't recall where, but there are some guides on dumping the tables 
from the PCBIOS somewhere.

>> You can check the keyboard controller input buffer to see if a keystroke 
>> is in there. Then you would know that interrupt isn't getting through.
> 
> How would I do that, with a userspace program using inb()/outb() ?
> 

Yes,
// check if there is a keystroke that hasn't been serviced and see what 
it is.
status = inb(0x64);
if ((status & 0x1))
	scancode = inb(0x60);

if the KBC controller is being serviced it is unlikely that you will 
catch a character in the output buffer. If the KBC isn't initialized 
correctly you might not get a character either.

>> Do you have serial console working and does keyboard work there? That 
>> would tell you if interrupts are making it from the SIO.
> 
> Yes, that works.
> 
> Thank you
> 

Interesting that the SIO serial interrupt works and the the keyboard one 
doesn't. I am not sure what that means.

Marc


-- 
Marc Jones
Senior Firmware Engineer
(970) 226-9684 Office
mailto:Marc.Jones at amd.com
http://www.amd.com/embeddedprocessors






More information about the coreboot mailing list