On Sat, Aug 22, 2009 at 04:15:10PM +0200, Stefan Reinauer wrote:
On 8/22/09 3:54 PM, Kevin O'Connor wrote:
I think hardware irq support is needed for keyboard.
What's required for this? Just set up an IRQ for the USB device and add a 16bit intXX handler?
In order to use the usb irq it will be necessary to figure out what irq line it is mapped to when the machine is in 8259 emulation mode. That should just require looking at the PCI_INTERRUPT_LINE field of pci config space - assuming coreboot is configured to set this properly. Once the line is known, it's not too difficult to map a handler and ack the irqs.
However, Rudolf raised a potential problem - when an OS later reconfigures the machine out of 8259 emulation mode, it may get confused by a pending usb irq. (The native irq may be level based.)
One trick I think SeaBIOS can implement is rapid polling by configuring the RTC to trigger 1024 times a second. It can then check for usb activity using hardware irqs without having to use the usb irq.
-Kevin