mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-28 09:38:53 +00:00
b765cef359
Instead of using the Wandboard Quad, the reference hardware from NXP i.MX6 Quad Sabrelite will be used by Fiasco.OC, sel4 and hw by default.
111 lines
2.7 KiB
Plaintext
111 lines
2.7 KiB
Plaintext
#
|
|
# Build
|
|
#
|
|
|
|
if {[have_spec odroid_xu] || [have_spec imx6q_sabrelite] || [have_spec zynq] || [have_spec imx53] && [have_spec foc]} {
|
|
puts "\n Run script is not supported on this platform. \n";
|
|
exit 0
|
|
}
|
|
|
|
if {[get_cmd_switch --autopilot] && [have_spec linux]} {
|
|
puts "\nAutopilot run is not supported on this platform\n"
|
|
exit 0
|
|
}
|
|
|
|
set build_components { core init test/fb_bench drivers/framebuffer timer }
|
|
|
|
source ${genode_dir}/repos/base/run/platform_drv.inc
|
|
append_platform_drv_build_components
|
|
|
|
lappend_if [have_spec gpio] build_components drivers/gpio
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
#
|
|
# Generate config
|
|
#
|
|
|
|
proc gpio_drv { } { if {[have_spec rpi] && [have_spec hw]} { return hw_gpio_drv }
|
|
if {[have_spec rpi] && [have_spec foc]} { return foc_gpio_drv }
|
|
return gpio_drv }
|
|
|
|
append config {
|
|
<config>
|
|
<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"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
<default caps="100"/>
|
|
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>}
|
|
|
|
append_if [have_spec gpio] config "
|
|
<start name=\"[gpio_drv]\" caps=\"140\">
|
|
<resource name=\"RAM\" quantum=\"4M\"/>
|
|
<provides><service name=\"Gpio\"/></provides>
|
|
<config/>
|
|
</start>"
|
|
|
|
append_if [have_spec sdl] config {
|
|
<start name="fb_sdl" ld="no">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides>
|
|
<service name="Input"/>
|
|
<service name="Framebuffer"/>
|
|
</provides>
|
|
</start>}
|
|
|
|
append_platform_drv_config
|
|
|
|
append_if [have_spec framebuffer] config {
|
|
<start name="fb_drv" caps="150">
|
|
<resource name="RAM" quantum="20M"/>
|
|
<provides><service name="Framebuffer"/></provides>
|
|
</start>}
|
|
|
|
append config {
|
|
<start name="test-fb_bench">
|
|
<!--
|
|
- We need this big amount of RAM because the VESA driver reports a
|
|
- large buffer on some hardware and the test mirrors this buffer in
|
|
- RAM.
|
|
-->
|
|
<resource name="RAM" quantum="72M"/>
|
|
</start>
|
|
</config>}
|
|
|
|
install_config $config
|
|
|
|
#
|
|
# Boot modules
|
|
#
|
|
|
|
set boot_modules { core ld.lib.so init timer test-fb_bench }
|
|
|
|
append_platform_drv_boot_modules
|
|
|
|
lappend_if [have_spec sdl] boot_modules fb_sdl
|
|
lappend_if [have_spec framebuffer] boot_modules fb_drv
|
|
lappend_if [have_spec gpio] boot_modules [gpio_drv]
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
# disable QEMU graphic to enable testing on our machines without SDL and X
|
|
append qemu_args "-nographic "
|
|
|
|
run_genode_until {.*--- Framebuffer benchmark finished ---.*\n} 40
|