The seL4 Device Driver Framework (sDDF) aims to provide interfaces and protocols for writing and porting device drivers to run as seL4 user level programs.
The sDDF is currently under-going active research and development and is largely experimental software.
We are working on developing the protocols and interfaces for various device classes such as:
There is a large amount of experimentation on-going for each device class, although the design for the network device class is mostly mature at this point.
The latest design documentation can be found here.
More information about the sDDF project can be found on the Trustworthy Systems website here.
You can find examples making use of the sDDF in the examples/
directory. Each example has its
own README for how to build and run it.
Any C toolchain should work but most testing and experimentation is currently performed with
the aarch64-none-elf
GCC toolchain distributed by ARM. You can download it from
here.
The specific version used for testing is:
aarch64-none-elf-gcc (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16)) 10.2.1 20201103
.
The sDDF is built using the seL4 Microkit (version 1.4.1).
You can download version 1.4.1 of Microkit SDK from here.
At a minimum, each new driver should have the following:
examples/
showing off the capabilities of the driver if the
device class does not have an example already.