mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 05:37:54 +00:00
ef741ef80d
Until now, Genode's framebuffer session interface was based on the RGB565 pixel format. This patch changes the pixel format to 32-bit XRGB where the X part is ignored. It adapts all graphical applications and device drivers accordingly. The patch also adjusts the users of the drivers_interactive packages, assigning 64 MiB RAM and 1500 caps to the drivers subsystem, which is sufficient for covering high resolutions at 32 bits per pixel and to accommodate multi-component USB HID input stacks. Fixes #3784
237 lines
7.8 KiB
Plaintext
237 lines
7.8 KiB
Plaintext
if {[have_spec imx6q_sabrelite] ||
|
|
[have_spec imx7d_sabre] ||
|
|
([get_cmd_switch --autopilot] && [have_spec 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">
|
|
<resource name="RAM" quantum="64M" constrain_phys="yes"/>
|
|
<binary name="init"/>
|
|
<route>
|
|
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
|
<service name="Timer"> <child name="timer"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
<provides>
|
|
<service name="Input"/> <service name="Framebuffer"/>
|
|
</provides>
|
|
</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"/>
|
|
<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"/> </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>
|
|
<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)^.*platform_drv] Error: IRQ-session creation failed.*$} ""
|
|
unify_output {(?n)^.*platform_drv] Error:.*platform_info.*$} ""
|
|
unify_output {(?n)^.*acpi_drv] Error:.*platform_info.*$} ""
|
|
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
|
|
}
|