genode/repos/os/src/drivers/ahci
Stefan Kalkowski 786fe805da base: introduce caching attributes (fix #1184)
On ARM it's relevant to not only distinguish between ordinary cached memory
and write-combined one, but also having non-cached memory too. To insert the
appropriated page table entries e.g.: in the base-hw kernel, we need to preserve
the information about the kind of memory from allocation until the pager
resolves a page fault. Therefore, this commit introduces a new Cache_attribute
type, and replaces the write_combined boolean with the new type where necessary.
2014-06-26 10:57:26 +02:00
..
exynos5 base: introduce caching attributes (fix #1184) 2014-06-26 10:57:26 +02:00
include Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
x86 Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
empty.cc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
main.cc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
target.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +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.