if {[have_board imx6q_sabrelite] || [have_board imx7d_sabre] || ([get_cmd_switch --autopilot] && [have_board linux]) || ([get_cmd_switch --autopilot] && [have_include "power_on/qemu"])} { puts "Run script does not support this platform." exit 0 } create_boot_directory import_from_depot [depot_user]/src/[base_src] \ [depot_user]/pkg/[drivers_interactive_pkg] \ [depot_user]/src/rom_filter \ [depot_user]/src/report_rom \ [depot_user]/src/global_keys_handler \ [depot_user]/src/nitpicker \ [depot_user]/src/nit_focus \ [depot_user]/src/demo \ [depot_user]/src/init build { app/status_bar test/nitpicker } install_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> <start name="drivers" caps="1500" managing_system="yes"> <resource name="RAM" quantum="64M"/> <binary name="init"/> <route> <service name="ROM" label="config"> <parent label="drivers.config"/> </service> <service name="Timer"> <child name="timer"/> </service> <service name="Capture"> <child name="nitpicker"/> </service> <service name="Event"> <child name="nitpicker"/> </service> <any-service> <parent/> </any-service> </route> </start> <start name="report_rom"> <resource name="RAM" quantum="1M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config verbose="no"> <policy label="status_bar -> focus" report="nitpicker -> focus"/> <policy label="nitpicker_config -> xray" report="global_keys_handler -> xray"/> <policy label="global_keys_handler -> hover" report="nitpicker -> hover"/> <policy label="nit_focus -> clicked" report="nitpicker -> clicked"/> <policy label="nitpicker -> focus" report="nit_focus -> focus"/> </config> </start> <start name="nitpicker_config"> <binary name="rom_filter"/> <resource name="RAM" quantum="1096K"/> <provides> <service name="ROM"/> </provides> <config> <input name="xray_enabled" rom="xray" node="xray"> <attribute name="enabled" /> </input> <output node="config"> <attribute name="focus" value="rom"/> <inline> <report focus="yes" xray="yes" hover="yes" keystate="yes" clicked="yes"/> <capture/> <event/> <domain name="pointer" layer="1" origin="pointer" content="client" label="no"/> <domain name="panel" layer="2" content="client" label="no" hover="always"/> </inline> <if> <has_value input="xray_enabled" value="no" /> <then> <inline> <domain name="launchpad" layer="3" content="client" label="no" hover="always" focus="click" ypos="18" height="-18" /> <domain name="" layer="3" content="client" label="no" hover="always" focus="click" ypos="18" height="-18" /> </inline> </then> <else> <inline> <domain name="launchpad" layer="3" color="#dd0000" content="tinted" label="yes" hover="focused" focus="click" ypos="18" height="-18" /> <domain name="" layer="3" color="#55dd34" content="tinted" label="yes" hover="focused" focus="click" ypos="18" height="-18" /> </inline> </else> </if> <inline> <policy label_prefix="pointer" domain="pointer"/> <policy label_prefix="status_bar" domain="panel"/> <policy label_prefix="scout -> launchpad" domain="launchpad"/> <default-policy domain=""/> <global-key name="KEY_SCROLLLOCK" label="global_keys_handler -> input" /> <global-key name="KEY_F1" label="global_keys_handler -> input" /> <global-key name="KEY_F2" label="global_keys_handler -> input" /> </inline> </output> </config> <route> <service name="ROM" label="xray"> <child name="report_rom"/> </service> <any-service> <parent/> </any-service> </route> </start> <start name="global_keys_handler"> <resource name="RAM" quantum="1096K"/> <config> <bool name="xray" initial="no"/> <press name="KEY_SCROLLLOCK" bool="xray" change="toggle"/> <press name="KEY_F1" bool="xray" change="on"/> <release name="KEY_F1" bool="xray" change="off"/> <press name="KEY_F2" bool="xray" change="toggle"/> <report name="xray" delay_ms="125"> <hovered domain="panel"/> <bool name="xray"/> </report> </config> <route> <service name="Report"> <child name="report_rom"/> </service> <service name="ROM" label="hover"> <child name="report_rom"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start> <start name="nitpicker" caps="120"> <resource name="RAM" quantum="1216K"/> <provides> <service name="Gui"/> <service name="Capture"/> <service name="Event"/> </provides> <route> <service name="ROM" label="config"> <child name="nitpicker_config"/> </service> <service name="ROM" label="focus"> <child name="report_rom"/> </service> <service name="Report"> <child name="report_rom"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start> <start name="pointer"> <resource name="RAM" quantum="1096K"/> <config/> </start> <start name="nit_focus"> <resource name="RAM" quantum="1M"/> <config> <default-policy focus="yes"/> </config> <route> <service name="ROM" label="clicked"> <child name="report_rom"/> </service> <service name="Report"> <child name="report_rom"/> </service> <any-service> <parent/> </any-service> </route> </start> <start name="status_bar"> <resource name="RAM" quantum="1096K"/> <route> <service name="ROM" label="focus"> <child name="report_rom"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start> <start name="scout" caps="10000"> <resource name="RAM" quantum="80M" /> </start> </config>} # # Create launchpad configuration # set launchpad_config_fd [open "bin/launchpad.config" w] puts $launchpad_config_fd {<config> <launcher name="testnit" ram_quota="768K" caps="50"/> <launcher name="scout" ram_quota="41M" caps="200"/> <launcher name="launchpad" ram_quota="6M" caps="1000"> <configfile name="launchpad.config" /> </launcher> <launcher name="nitlog" ram_quota="1M" caps="100"/> <launcher name="liquid_fb" ram_quota="9M" caps="100"> <config resize_handle="on" /> </launcher> <launcher name="nitpicker" ram_quota="1M" caps="100"> <config request_input="yes" request_framebuffer="yes"> <domain name="" layer="3" conten="client" label="no" focus="click"/> <default-policy domain="" /> </config> </launcher> </config>} close $launchpad_config_fd build_boot_image { status_bar testnit launchpad.config } if {[get_cmd_switch --autopilot]} { run_genode_until {\[init -> scout\] png is.*\n} 40 grep_output {(requests resources: )|(Error)} # remove Error messages which are not fatal, mostly unify_output {(?n)^.*platform_drv] Error:.*ACPI table information is wrong.*$} "" unify_output {(?n)^.*platform_drv] Error: adjust size from.*$} "" unify_output {(?n)^.*ps2_drv] Error: no data available.*$} "" unify_output {(?n)^.*ps2_drv] Error: failed to read from port.*$} "" unify_output {(?n)^.*] Error: RAM preservation exceeds available memory.*$} "" compare_output_to {} } else { run_genode_until forever }