1fce8d0d74
Add a "writeable" policy option to the ahci_drv and part_blk Block servers and default from writeable to ready-only. Should a policy permit write acesss the session request argument "writeable" may still downgrade a session to ready-only. Fix #2469
50 lines
1.8 KiB
Plaintext
50 lines
1.8 KiB
Plaintext
This directory contains the implementation of Genode's AHCI driver
|
|
|
|
Behavior
|
|
--------
|
|
|
|
The driver supports x86 32/64 bit platforms and the Exynos5 SOC. If
|
|
more than one AHCI controller is present, the first one will be used.
|
|
Each active device on each AHCI port will be represented by a Genode
|
|
block session. The server must be configured via a policy, that states
|
|
which client can access a certain device:
|
|
|
|
|
|
!<start name="ahci">
|
|
! <binary name="ahci_drv" />
|
|
! <resource name="RAM" quantum="10M" />
|
|
! <provides><service name="Block" /></provides> }
|
|
! <route>
|
|
! <any-service> <parent /> <any-child /> </any-service>
|
|
! </route>
|
|
! <config atapi="no">
|
|
! <!-- use model and serial number -->
|
|
! <policy label_prefix="test-ahci" model="QEMU HARDDISK" serial="QM00005" writeable="yes" />
|
|
! <!-- use controller port number -->
|
|
! <policy label_prefix="bench" device="1" writeable="yes" />
|
|
! <!-- read-only access -->
|
|
! <policy label_prefix="boot_fs" device="2"/>
|
|
! </config>
|
|
!</start>
|
|
|
|
In the example above, a session request labeled with "test-ahci" gains access to
|
|
a device with certain model and serial numbers, "bench" gains access to
|
|
device at port 1, and finally the session "boot_fs" gains read-only access to
|
|
port 2. ATAPI support is by default disabled and can be enabled by
|
|
setting the config attribute "atapi" to "yes".
|
|
|
|
ahci_drv supports reporting of active ports, which can be enabled via
|
|
configuration sub-node like follows.
|
|
|
|
!<report ports="yes"/>
|
|
|
|
The report structure is depicted by the following example.
|
|
|
|
! <ports>
|
|
! <port num="0" type="ATA" block_count="32768" block_size="512"
|
|
! model="QEMU HARDDISK" serial="QM00005"/>
|
|
! <port num="1" type="ATAPI"/>
|
|
! <port num="2" type="ATA" block_count="32768" block_size="512"
|
|
! model="QEMU HARDDISK" serial="QM00009"/>
|
|
! </ports>
|