mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-19 19:26:29 +00:00
1add912df2
Fixes lookup of pci GSI IRQ re-routing tables seen on Ultrabook Fujitsu t904. Fixes #1250 |
||
---|---|---|
.. | ||
x86 | ||
acpi.cc | ||
acpi.h | ||
main.cc | ||
README |
This directory contains an implementation of a simple ACPI parser Behavior -------- This server should be used when using a kernel (like Fiasco.OC or Nova) that takes advantage of x86's APIC. The server traverses the ACPI tables and sets the interrupt line of devices within the PCI config space to the GSIs found in the ACPI tables. The 'MADT' table is parsed by the server as well, enabling clients to use the correct IRQ when 'Interrupt Override' structures are found wihtin the table. Usage ----- Start the 'acpi_drv' in your Genode environment. Do not start the 'pci_drv' since this will be used as a slave of the 'acpi_drv'. You still must load the 'pci_drv' in your boot loader. Configuration snipped (please note that IRQ service requests of the 'timer' are routed to the ACPI-driver): !<start name="acpi"> ! <resource name="RAM" quantum="2M"/> ! <binary name="acpi_drv"/> ! <provides> ! <service name="PCI"/> ! <service name="IRQ" /> ! </provides> ! <route> ! <service name="PCI"> <any-child /> </service> ! <any-service> <parent/> <any-child /> </any-service> ! </route> !</start> ! !<start name="timer"> ! <resource name="RAM" quantum="1M"/> ! <provides><service name="Timer"/></provides> ! <route> ! <service name="IRQ"><child name="acpi" /></service> ! <any-service> <parent /> <any-child /></any-service> ! </route> !</start> Limitations and known issues ---------------------------- Currently there is no interface to set the interrupt mode for Irq_sessions (e.g., level or edge triggered). This is required by Fiasco.OCs kernel interface. We regard this as future work.