genode/repos/os/run/fb_bench.run
Stefan Kalkowski b765cef359 replace Wandboard by i.MX6 reference board
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.
2019-01-30 13:35:28 +01:00

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