Genode Packages collection https://git.sr.ht/~ehmry/genodepkgs/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

76 lines
2.7 KiB

-- SPDX-License-Identifier: CC0-1.0
let Genode = env:DHALL_GENODE
let Args =
{ config : Genode.Init.Type, rom : Genode.Prelude.Map.Type Text Text }
: Type
in λ(args : Args)
→ { arch = let Arch = < x86_32 | x86_64 > in Arch.x86_64
, config =
Genode.Init::{
, verbose = True
, defaultRoutes =
Genode.Init.default.defaultRoutes
# [ Genode.ServiceRoute.parent "IO_MEM"
, Genode.ServiceRoute.parent "IO_PORT"
, Genode.ServiceRoute.parent "IRQ"
, Genode.ServiceRoute.child "Timer" "timer"
]
, children =
[ { mapKey = "timer"
, mapValue =
Genode.Init.Start::{
, binary = "nova_timer_drv"
, resources = { caps = 96, ram = Genode.units.MiB 1 }
, provides = [ "Timer" ]
}
}
, { mapKey = "harness"
, mapValue =
let child = Genode.Init.toStart args.config
in Genode.Init.Start::{
, binary = "sotest-harness"
, exitPropagate = True
, resources =
{ caps = child.resources.caps + 128
, ram = child.resources.ram + Genode.units.MiB 1
}
, config =
Some
( Genode.Prelude.XML.element
{ name = "config"
, attributes =
Genode.Prelude.XML.emptyAttributes
, content =
[ Genode.Init.Start.toXML "init" child ]
}
)
, routes =
[ Genode.ServiceRoute.parentLabel
"LOG"
(Some "SOTEST")
(Some "platform")
]
}
}
]
}
, rom =
let baseNova = env:BASE_NOVA_MANIFEST
let os = env:OS_MANIFEST
let sotest = env:SOTEST_PRODUCER_MANIFEST
in [ { mapKey = "ld.lib.so"
, mapValue = baseNova.lib.ld-nova.mapValue
}
, baseNova.bin.nova_timer_drv
, os.bin.init
, sotest.bin.sotest-harness
]
# args.rom
}