mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 13:47:56 +00:00
47a129c6af
This function returns the information whether the used platform relies on USB HID for interactive scenarios by default as is the case for most ARM platforms. In contrast, for x86 the USB driver can be omitted because we can use the PS/2 driver (that is readily available in repos/os/).
268 lines
7.2 KiB
Plaintext
268 lines
7.2 KiB
Plaintext
#
|
|
# Build
|
|
#
|
|
|
|
if {[have_spec odroid_xu]} {
|
|
puts "Run script does not support this platform."
|
|
exit 0
|
|
}
|
|
|
|
set build_components {
|
|
core init
|
|
drivers/timer
|
|
server/nitpicker app/pointer app/status_bar app/xray_trigger
|
|
server/liquid_framebuffer app/launchpad app/scout
|
|
test/nitpicker server/nitlog
|
|
drivers/framebuffer drivers/input
|
|
server/report_rom server/rom_filter
|
|
}
|
|
|
|
source ${genode_dir}/repos/base/run/platform_drv.inc
|
|
|
|
lappend_if [need_usb_hid] build_components drivers/usb
|
|
lappend_if [have_spec gpio] build_components drivers/gpio
|
|
|
|
append_platform_drv_build_components
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
#
|
|
# Generate config
|
|
#
|
|
|
|
append config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="RAM"/>
|
|
<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>}
|
|
|
|
append_if [have_spec sdl] config {
|
|
<start name="fb_sdl">
|
|
<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">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides><service name="Framebuffer"/></provides>
|
|
</start>}
|
|
|
|
append_if [have_spec gpio] config {
|
|
<start name="gpio_drv">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides><service name="Gpio"/></provides>
|
|
<config/>
|
|
</start>}
|
|
|
|
append_if [have_spec imx53] config {
|
|
<start name="input_drv">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Input"/></provides>
|
|
<config/>
|
|
</start> }
|
|
|
|
append_if [have_spec ps2] config {
|
|
<start name="ps2_drv">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Input"/></provides>
|
|
</start>}
|
|
|
|
append_if [need_usb_hid] config {
|
|
<start name="usb_drv">
|
|
<resource name="RAM" quantum="12M"/>
|
|
<provides><service name="Input"/></provides>
|
|
<config ehci="yes" uhci="yes" xhci="no"> <hid/> </config>
|
|
</start> }
|
|
|
|
append config {
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>
|
|
|
|
<start name="report_rom">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
|
<config>
|
|
<policy label="status_bar -> focus" report="nitpicker -> focus"/>
|
|
<policy label="nitpicker_config -> xray" report="xray_trigger -> xray"/>
|
|
<policy label="xray_trigger -> hover" report="nitpicker -> hover"/>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="nitpicker_config">
|
|
<binary name="rom_filter"/>
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="ROM"/></provides>
|
|
<config>
|
|
<input name="xray_enabled" rom="xray" node="xray">
|
|
<attribute name="enabled" /> </input>
|
|
|
|
<output node="config">
|
|
<inline>
|
|
<report focus="yes" xray="yes" hover="yes" />
|
|
<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="xray_trigger" />
|
|
<global-key name="KEY_F1" label="xray_trigger" />
|
|
<global-key name="KEY_F2" label="xray_trigger" />
|
|
</inline>
|
|
</output>
|
|
</config>
|
|
<route>
|
|
<service name="ROM" label="xray"> <child name="report_rom"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="xray_trigger">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<config>
|
|
<press name="KEY_F1" xray="on"/>
|
|
<release name="KEY_F1" xray="off"/>
|
|
<press name="KEY_F2" xray="toggle"/>
|
|
<hover domain="panel"/>
|
|
</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">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Nitpicker"/></provides>
|
|
<configfile name="nitpicker.config"/>
|
|
<route>
|
|
<service name="ROM" label="nitpicker.config">
|
|
<child name="nitpicker_config"/> </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="1M"/>
|
|
</start>
|
|
|
|
<start name="status_bar">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<route>
|
|
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="scout">
|
|
<resource name="RAM" quantum="64M" />
|
|
</start>
|
|
</config>}
|
|
|
|
install_config $config
|
|
|
|
#
|
|
# Create launchpad configuration
|
|
#
|
|
set launchpad_config_fd [open "bin/launchpad.config" w]
|
|
puts $launchpad_config_fd {<config>
|
|
<launcher name="testnit" ram_quota="768K" />
|
|
<launcher name="scout" ram_quota="41M" />
|
|
<launcher name="launchpad" ram_quota="6M">
|
|
<configfile name="launchpad.config" />
|
|
</launcher>
|
|
<launcher name="nitlog" ram_quota="1M" />
|
|
<launcher name="liquid_fb" ram_quota="7M">
|
|
<config resize_handle="on" />
|
|
</launcher>
|
|
<launcher name="nitpicker" ram_quota="1M">
|
|
<config>
|
|
<domain name="" layer="3" conten="client" label="no" focus="click"/>
|
|
<default-policy domain="" />
|
|
</config>
|
|
</launcher>
|
|
</config>}
|
|
close $launchpad_config_fd
|
|
|
|
|
|
#
|
|
# Boot modules
|
|
#
|
|
|
|
# generic modules
|
|
set boot_modules {
|
|
core ld.lib.so init
|
|
timer
|
|
nitpicker pointer status_bar report_rom rom_filter xray_trigger
|
|
liquid_fb launchpad scout testnit nitlog
|
|
launchpad.config
|
|
}
|
|
|
|
# platform-specific modules
|
|
lappend_if [have_spec linux] boot_modules fb_sdl
|
|
lappend_if [have_spec ps2] boot_modules ps2_drv
|
|
lappend_if [have_spec framebuffer] boot_modules fb_drv
|
|
lappend_if [need_usb_hid] boot_modules usb_drv
|
|
lappend_if [have_spec gpio] boot_modules gpio_drv
|
|
lappend_if [have_spec imx53] boot_modules input_drv
|
|
|
|
append_platform_drv_boot_modules
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append qemu_args " -m 256 "
|
|
|
|
run_genode_until forever
|