mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 06:07:59 +00:00
6bfd4f4276
This is a drivers subsystem that starts the most fundamental (framebuffer, input, block) device drivers dynamically, depending on the runtime-detected devices. The discovered block devices are reported as a "block_devices" report.
241 lines
8.7 KiB
Plaintext
241 lines
8.7 KiB
Plaintext
<config prio_levels="2">
|
|
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
<service name="Timer"/>
|
|
<service name="Report"/>
|
|
</parent-provides>
|
|
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<default caps="100"/>
|
|
|
|
<service name="Framebuffer">
|
|
<default-policy> <child name="dynamic"/> </default-policy> </service>
|
|
|
|
<service name="Block">
|
|
<default-policy> <child name="dynamic"/> </default-policy> </service>
|
|
|
|
<service name="Usb">
|
|
<default-policy> <child name="usb_drv"/> </default-policy> </service>
|
|
|
|
<service name="Platform">
|
|
<default-policy> <child name="platform_drv"/> </default-policy> </service>
|
|
|
|
<service name="Input">
|
|
<default-policy> <child name="input_filter"/> </default-policy> </service>
|
|
|
|
<service name="File_system">
|
|
<default-policy> <child name="ram_fs" label="parent"/> </default-policy> </service>
|
|
|
|
<start name="ram_fs" priority="-1">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config>
|
|
<policy label="fs_rom -> " root="/"/>
|
|
<policy label="fs_report -> " root="/" writeable="yes"/>
|
|
<policy label="parent" root="/"/>
|
|
<content>
|
|
<inline name="acpi"/>
|
|
<inline name="pci_devices"/>
|
|
<inline name="usb_devices"/>
|
|
<inline name="usb_active_config"/>
|
|
<inline name="usb_drv.config"/>
|
|
<dir name="dynamic">
|
|
<inline name="ahci_ports"/>
|
|
<inline name="config"/>
|
|
<inline name="state"/>
|
|
</dir>
|
|
</content>
|
|
</config>
|
|
<route>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="fs_report" priority="-1">
|
|
<resource name="RAM" quantum="2M"/>
|
|
<provides> <service name="Report"/> </provides>
|
|
<config> <vfs> <fs/> </vfs> </config>
|
|
<route>
|
|
<service name="File_system"> <child name="ram_fs"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="fs_rom" priority="-1">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="ROM"/> </provides>
|
|
<config/>
|
|
<route>
|
|
<service name="File_system"> <child name="ram_fs"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="acpi_drv" caps="300" priority="-1">
|
|
<resource name="RAM" quantum="2M"/>
|
|
<route>
|
|
<service name="Report" label="acpi"> <child name="fs_report" label="acpi"/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="platform_drv" caps="300">
|
|
<resource name="RAM" quantum="3M" constrain_phys="yes"/>
|
|
<provides>
|
|
<service name="Platform"/>
|
|
<service name="Acpi"/>
|
|
</provides>
|
|
<route>
|
|
<service name="ROM" label="system"> <child name="fs_rom"/> </service>
|
|
<service name="ROM" label="acpi"> <child name="fs_rom"/> </service>
|
|
<service name="Report" label="pci">
|
|
<child name="fs_report" label="pci_devices"/> </service>
|
|
<service name="IRQ"> <parent/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="IO_PORT"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
</route>
|
|
<config>
|
|
<report pci="yes"/>
|
|
<policy label_prefix="ps2_drv"> <device name="PS2"/> </policy>
|
|
<policy label_prefix="dynamic -> vesa_fb_drv"> <pci class="VGA"/> </policy>
|
|
<policy label_prefix="dynamic -> ahci_drv"> <pci class="AHCI"/> </policy>
|
|
<policy label_prefix="usb_drv"> <pci class="USB"/> </policy>
|
|
<policy label_prefix="dynamic -> intel_fb_drv" irq_mode="nomsi">
|
|
<pci class="VGA"/>
|
|
<pci bus="0" device="0" function="0"/>
|
|
<pci class="ISABRIDGE"/>
|
|
</policy>
|
|
<policy label_suffix="-> wifi"> <pci class="WIFI"/> </policy>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="usb_drv" caps="100" priority="-1">
|
|
<resource name="RAM" quantum="14M"/>
|
|
<provides> <service name="Input"/> <service name="Usb"/> </provides>
|
|
<route>
|
|
<service name="Platform"> <child name="platform_drv"/> </service>
|
|
<service name="ROM" label="config">
|
|
<child name="fs_rom" label="usb_drv.config"/> </service>
|
|
<service name="Report" label="devices">
|
|
<child name="fs_report" label="usb_devices"/> </service>
|
|
<service name="Report" label="config">
|
|
<child name="fs_report" label="usb_active_config"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="ps2_drv" priority="0">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Input"/> </provides>
|
|
<route>
|
|
<service name="Platform"> <child name="platform_drv"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="input_filter" caps="80" priority="-1">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Input"/> </provides>
|
|
<route>
|
|
<service name="ROM" label="config"> <parent label="input_filter.config"/> </service>
|
|
<service name="ROM" label="en_us.chargen"> <parent label="en_us.chargen"/> </service>
|
|
<service name="Input" label="ps2"> <child name="ps2_drv"/> </service>
|
|
<service name="Input" label="usb"> <child name="usb_drv"/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="driver_manager" priority="-1">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<route>
|
|
<service name="Report" label="init.config">
|
|
<child name="fs_report" label="dynamic -> config"/> </service>
|
|
<service name="Report" label="usb_drv.config">
|
|
<child name="fs_report" label="usb_drv.config"/> </service>
|
|
<service name="Report" label="block_devices">
|
|
<parent label="block_devices"/> </service>
|
|
<service name="ROM" label="init_state">
|
|
<child name="fs_rom" label="dynamic/state"/> </service>
|
|
<service name="ROM" label="usb_devices"> <child name="fs_rom"/> </service>
|
|
<service name="ROM" label="pci_devices"> <child name="fs_rom"/> </service>
|
|
<service name="ROM" label="usb_active_config"> <child name="fs_rom"/> </service>
|
|
<service name="ROM" label="ahci_ports">
|
|
<child name="fs_rom" label="dynamic/ahci_ports"/> </service>
|
|
<service name="ROM" label_prefix="dynamic/"> <child name="fs_rom"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="dynamic" caps="800" priority="0">
|
|
<binary name="init"/>
|
|
<resource name="RAM" quantum="1G"/>
|
|
<provides>
|
|
<service name="Framebuffer"/>
|
|
<service name="Block"/>
|
|
</provides>
|
|
<route>
|
|
<service name="Platform"> <child name="platform_drv"/> </service>
|
|
<service name="Report" label="state">
|
|
<child name="fs_report" label="dynamic/state"/> </service>
|
|
<service name="Report"> <child name="fs_report"/> </service>
|
|
<service name="Usb"> <child name="usb_drv"/> </service>
|
|
<service name="ROM" label="config">
|
|
<child name="fs_rom" label="dynamic/config"/> </service>
|
|
<service name="LOG"> <parent/> </service>
|
|
<service name="PD"> <parent/> </service>
|
|
<service name="RM"> <parent/> </service>
|
|
<service name="CPU"> <parent/> </service>
|
|
<service name="ROM"> <parent/> </service>
|
|
<service name="IO_MEM"> <parent/> </service>
|
|
<service name="IO_PORT"> <parent/> </service>
|
|
<service name="Timer"> <parent/> </service>
|
|
</route>
|
|
</start>
|
|
|
|
</config>
|