eeb2d95b1f
Until now, block drivers had to deal with a pointer to the client session component, e.g.: to acknowledge block packets already processed. When a session was closed, the driver object wasn't informed explicitly, which leads to defensive programming, or lastly to a race-condition in test-blk-srv. To prevent from this class of errors, the pointer is now private to the generic block driver base class, and not accessible to the concrete driver implementation. Moreover, the driver gets explicitly informed when a session got invalidated. Ref #113 |
||
---|---|---|
.. | ||
exynos5 | ||
include | ||
x86 | ||
empty.cc | ||
main.cc | ||
README | ||
target.mk |
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.