seL4 Device Driver Framework
- class sdfgen.Sddf(path: str)
Class for creating I/O systems based on the seL4 Device Driver Framework (sDDF).
There is a Python class for each device class (e.g Block, Network). They all follow the pattern of being initialised, then having clients added, and then being connected before the final SDF is generated.
- class Blk(sdf: SystemDescription, device: Node | None, driver: ProtectionDomain, virt: ProtectionDomain)
- add_client(client: ProtectionDomain, *, partition: int, queue_capacity: int | None = None, data_size: int | None = None)
- connect() bool
- serialise_config(output_dir: str) bool
- class Gpu(sdf: SystemDescription, device: Node | None, driver: ProtectionDomain, virt: ProtectionDomain)
- add_client(client: ProtectionDomain)
- connect() bool
- serialise_config(output_dir: str) bool
- class I2c(sdf: SystemDescription, device: Node | None, driver: ProtectionDomain, virt: ProtectionDomain)
- add_client(client: ProtectionDomain)
- connect() bool
- serialise_config(output_dir: str) bool
- class Lwip(sdf: SystemDescription, net: Net, pd: ProtectionDomain)
- connect() bool
- serialise_config(output_dir: str) bool
- class Net(sdf: SystemDescription, device: Node | None, driver: ProtectionDomain, virt_tx: ProtectionDomain, virt_rx: ProtectionDomain)
- add_client_with_copier(client: ProtectionDomain, copier: ProtectionDomain, *, mac_addr: str | None = None) None
Add a client connected to a copier component for RX traffic.
- Parameters:
copier – must be unique to this client, cannot be used with any other client.
mac_addr – must be unique to the Network system.
- connect() bool
- serialise_config(output_dir: str) bool
- class Serial(sdf: SystemDescription, device: Node | None, driver: ProtectionDomain, virt_tx: ProtectionDomain, *, virt_rx: ProtectionDomain | None = None, enable_color: bool = True)
- add_client(client: ProtectionDomain)
Add a new client connection to the serial system.
- connect() bool
Construct and all resources to the associated SystemDescription, returns whether successful.
Must have all clients and options set before calling.
Cannot be called more than once.
- serialise_config(output_dir: str) bool
- class Timer(sdf: SystemDescription, device: Node | None, driver: ProtectionDomain)
- add_client(client: ProtectionDomain)
- connect() bool
- serialise_config(output_dir: str) bool