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