89 lines
2.7 KiB
Plaintext
89 lines
2.7 KiB
Plaintext
let Genode = env:DHALL_GENODE
|
|
|
|
let XML = Genode.Prelude.XML
|
|
|
|
let Init = Genode.Init
|
|
|
|
let Child = Init.Child
|
|
|
|
let Resources = Init.Resources
|
|
|
|
let ServiceRoute = Init.ServiceRoute
|
|
|
|
let label = λ(_ : Text) → { local = _, route = _ } : Child.Attributes.Label
|
|
|
|
let pciInit =
|
|
Init::{
|
|
, verbose = True
|
|
, routes = [ ServiceRoute.parent "Timer", ServiceRoute.parent "Rtc" ]
|
|
, children = toMap
|
|
{ signal =
|
|
Child.flat
|
|
Child.Attributes::{
|
|
, binary = "test-signal"
|
|
, exitPropagate = True
|
|
, priority = 5
|
|
, resources = Init.Resources::{
|
|
, caps = 500
|
|
, ram = Genode.units.MiB 10
|
|
}
|
|
}
|
|
, rtc = Child.flat Child.Attributes::{ binary = "test-rtc" }
|
|
, test-pci =
|
|
Child.flat
|
|
Child.Attributes::{
|
|
, binary = "test-pci"
|
|
, resources = Resources::{ ram = Genode.units.MiB 3 }
|
|
}
|
|
, acpi_drv =
|
|
Child.flat
|
|
Child.Attributes::{
|
|
, binary = "acpi_drv"
|
|
, resources = Resources::{
|
|
, caps = 400
|
|
, ram = Genode.units.MiB 4
|
|
, constrainPhys = True
|
|
}
|
|
, romReports = [ label "acpi", label "smbios_table" ]
|
|
, routes =
|
|
[ ServiceRoute.parent "IRQ"
|
|
, ServiceRoute.parent "IO_MEM"
|
|
, ServiceRoute.parent "IO_PORT"
|
|
]
|
|
}
|
|
, platform_drv =
|
|
Child.flat
|
|
Child.Attributes::{
|
|
, binary = "platform_drv"
|
|
, resources = Resources::{
|
|
, caps = 800
|
|
, ram = Genode.units.MiB 4
|
|
, constrainPhys = True
|
|
}
|
|
, reportRoms = [ label "acpi" ]
|
|
, provides = [ "Platform" ]
|
|
, routes =
|
|
[ ServiceRoute.parent "IRQ"
|
|
, ServiceRoute.parent "IO_MEM"
|
|
, ServiceRoute.parent "IO_PORT"
|
|
]
|
|
, config = Init.Config::{
|
|
, policies =
|
|
[ Init.Config.Policy::{
|
|
, service = "Platform"
|
|
, label = Init.LabelSelector.prefix "test-pci"
|
|
, content =
|
|
[ XML.leaf
|
|
{ name = "pci"
|
|
, attributes = toMap { class = "ALL" }
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
in pciInit
|