genode/os/src/drivers/ahci
Stefan Kalkowski 50d73e7890 block_session: extend interface with sync() call
To support components, which implement the block session's server side
rpc object, and which doesn't write data to their device backend immediately,
an additional synchronization call is needed. Thereby, clients like for
instance a file system can tell these components, when a synchronization is
required.

Ref #113
2013-11-25 12:12:31 +01:00
..
exynos5 arndale: centralize spec of interrupt names 2013-11-14 19:56:39 +01:00
include block_session: extend interface with sync() call 2013-11-25 12:12:31 +01:00
x86_32 ahci_drv: separate PCI specifics from the rest 2013-05-22 18:32:05 +02:00
empty.cc ahci_drv: separate PCI specifics from the rest 2013-05-22 18:32:05 +02:00
main.cc ahci_drv: separate PCI specifics from the rest 2013-05-22 18:32:05 +02:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00
target.mk ahci_drv: separate PCI specifics from the rest 2013-05-22 18:32:05 +02:00

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.