On Wed, 18 Jul 2012 16:15:04 +0200 Sebastian Sumpf (SS) wrote:
SS> Nevertheless there are still limitations for Nova. Because of the large SS> number of controllers (on my box seven) the driver might discover, the SS> PCI legacy interrupts may exhaust pretty quickly, what in return means SS> that it is likely that no other driver that depends on PCI-IRQs might SS> get access to them. The reason for that is that Genode does currently SS> neither support shared interrupts nor message-signaled interrupts in SS> Nova's base platform. Also there is no IOMMU support, yet, so one has to SS> disable it when using the driver.
Most PCI devices are only connected to one or two PCI interrupt lines. This means you don't have much of a choice which IOAPIC pin an interrupt from a particular USB controller will signal. It is very likely that several of those USB controllers can only drive the same PCI interrupt line.
So you need to implement interrupt sharing or alternatively switch to MSI. With MSI you can give each device its dedicated interrupt vector. MSI is a mandatory feature of PCI-E, but older PCI devices may not support it.
Cheers, Udo