Bind irq to icu failed

Björn Döbel doebel at os.inf.tu-dresden.de
Fri Mar 23 12:08:35 CET 2012


Hi again,

>> I am trying to use e1000e driver in Ankh to bring-up intel's 82574L
>> ethernet controller. But its unable to allocate interrupt and I cant
>> figure out the source of the problem.
> 
> Can you please try this?
> 
> 
> Index: dde/linux26/lib/src/arch/l4/pci.c
> ===================================================================
> --- dde/linux26/lib/src/arch/l4/pci.c   (Revision 41236)
> +++ dde/linux26/lib/src/arch/l4/pci.c   (Arbeitskopie)
> @@ -196,6 +196,7 @@
>         Assert(pci_bus);
> 
>         pci_do_scan_bus(pci_bus);
> +       pci_walk_bus(pci_bus, pci_irq_enable, NULL);
> 
>         INITIALIZE_INITVAR(dde26_pci);
>  }

Christian kindly asked for a longer explanation: modern BIOSes reroute
IRQs. The updated information on the newly assigned IRQ number is
provided through some ACPI tables that are parsed correctly by the IO
server.

The Linux drivers, though, try to read the IRQ no. from the PCI config
space, which is not touched by the BIOS and hence contains an invalid
value. Calling pci_irq_enable() afterwards will make sure that DDE gets
the "right" IRQ value from the IO server.

Björn




More information about the l4-hackers mailing list