85599c072f
Use the new asynchronous IRQ interface in the mostly used drivers, e.g.: * ahci_drv: x86/exynos5 * gpio_drv: imx53/omap4 * input_drv: imx53/dummy * ps2_drv: x86/pl050 * timer_drv Now, the Irq_session is requested from Gpio::Session: From now on we use an asynchronous IRQ interface. To prevent triggering another GPIO IRQ while currently handling the former one, IRQs must now by acknowledged explicitly. While here, we also changed the GPIO session interface regarding IRQ management. The generic GPIO component now wraps the Irq_session managed by the backend instead of using the GPIO backend methods directly. A client using the GPIO session may request the Irq_session_capability by calling 'Gpio::Session::irq_session()' and can use this capability when using a local Irq_session_client. Issue #1456. |
||
---|---|---|
.. | ||
exynos5 | ||
include | ||
x86 | ||
README | ||
empty.cc | ||
main.cc | ||
target.mk |
README
This directory contains an implementation of a simple AHCI driver. Behavior -------- The server implements Genode's new block-driver API ('os/include/block'), thus exposing the block-session interface as front-end. AHCI depends on Genode's PCI driver as well as the timer server. For a usage example see: 'os/run/ahci.run'. Limitations and known issues ---------------------------- Currently, the server scans the PCI bus at startup and retrieves the first available AHCI controller, scans the controller ports and uses the first non-ATAPI port where a device is present. On real hardware and on kernels taking advantage of I/O APICs (namely NOVA and Fiasco.OC) we still lack support for ACPI parsing and thus for interrupts, leading to a non-working driver.