From b9076293415e86c0b443a3700c2c464ecc88e4a6 Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Tue, 24 Nov 2020 16:00:47 +0100 Subject: [PATCH] sculpt: add basic support for i.MX8 Quad EVK * Introduce CPU quota for driver subsytem (needed by sd_card_drv) * Introduce CPU quota for runtime subsytem and nic_drv (needed by fec_nic_drv) * Increase CAP quota for inspect terminal slightly * Add sculpt packages for imx8q_evk Fix #3958 --- .../pkg/drivers_managed-imx8q_evk/README | 4 + .../pkg/drivers_managed-imx8q_evk/archives | 11 + .../pkg/drivers_managed-imx8q_evk/hash | 1 + .../gems/recipes/pkg/sculpt-imx8q_evk/README | 1 + .../recipes/pkg/sculpt-imx8q_evk/archives | 4 + repos/gems/recipes/pkg/sculpt-imx8q_evk/hash | 1 + .../block_devices.report | 3 + .../raw/drivers_managed-imx8q_evk/content.mk | 11 + .../drivers_managed-imx8q_evk/drivers.config | 355 ++++++++++++++++++ .../event_filter.config | 34 ++ .../raw/drivers_managed-imx8q_evk/hash | 1 + .../numlock_remap.config | 25 ++ repos/gems/run/sculpt.run | 8 +- .../sculpt_manager/runtime/inspect_view.cc | 2 +- .../src/app/sculpt_manager/runtime/nic_drv.cc | 1 + .../recipes/src/imx8q_evk_drivers/content.mk | 6 +- .../recipes/src/imx8q_evk_drivers/used_apis | 1 + 17 files changed, 465 insertions(+), 4 deletions(-) create mode 100644 repos/gems/recipes/pkg/drivers_managed-imx8q_evk/README create mode 100644 repos/gems/recipes/pkg/drivers_managed-imx8q_evk/archives create mode 100644 repos/gems/recipes/pkg/drivers_managed-imx8q_evk/hash create mode 100644 repos/gems/recipes/pkg/sculpt-imx8q_evk/README create mode 100644 repos/gems/recipes/pkg/sculpt-imx8q_evk/archives create mode 100644 repos/gems/recipes/pkg/sculpt-imx8q_evk/hash create mode 100644 repos/gems/recipes/raw/drivers_managed-imx8q_evk/block_devices.report create mode 100644 repos/gems/recipes/raw/drivers_managed-imx8q_evk/content.mk create mode 100644 repos/gems/recipes/raw/drivers_managed-imx8q_evk/drivers.config create mode 100644 repos/gems/recipes/raw/drivers_managed-imx8q_evk/event_filter.config create mode 100644 repos/gems/recipes/raw/drivers_managed-imx8q_evk/hash create mode 100644 repos/gems/recipes/raw/drivers_managed-imx8q_evk/numlock_remap.config diff --git a/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/README b/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/README new file mode 100644 index 0000000000..01323fae15 --- /dev/null +++ b/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/README @@ -0,0 +1,4 @@ + + Device-driver subsystem that starts drivers for + framebuffer, input, and block devices on demand + diff --git a/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/archives b/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/archives new file mode 100644 index 0000000000..34603d737e --- /dev/null +++ b/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/archives @@ -0,0 +1,11 @@ +_/src/platform_drv +_/src/usb_host_drv +_/src/usb_hid_drv +_/src/usb_block_drv +_/src/imx8q_evk_drivers +_/src/imx8_fb_drv +_/src/report_rom +_/src/event_filter +_/src/rom_filter +_/src/rom_reporter +_/raw/drivers_managed-imx8q_evk diff --git a/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/hash b/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/hash new file mode 100644 index 0000000000..bb6675b688 --- /dev/null +++ b/repos/gems/recipes/pkg/drivers_managed-imx8q_evk/hash @@ -0,0 +1 @@ +2020-11-24-l a809c41bb15c0dff6f0e803cd55e54d3f730d398 diff --git a/repos/gems/recipes/pkg/sculpt-imx8q_evk/README b/repos/gems/recipes/pkg/sculpt-imx8q_evk/README new file mode 100644 index 0000000000..b08f035351 --- /dev/null +++ b/repos/gems/recipes/pkg/sculpt-imx8q_evk/README @@ -0,0 +1 @@ +The i.MX8 Quad EVK specific parts needed to run sculpt. diff --git a/repos/gems/recipes/pkg/sculpt-imx8q_evk/archives b/repos/gems/recipes/pkg/sculpt-imx8q_evk/archives new file mode 100644 index 0000000000..b07112c955 --- /dev/null +++ b/repos/gems/recipes/pkg/sculpt-imx8q_evk/archives @@ -0,0 +1,4 @@ +_/pkg/drivers_managed-imx8q_evk +_/pkg/sculpt +_/src/fec_nic_drv + diff --git a/repos/gems/recipes/pkg/sculpt-imx8q_evk/hash b/repos/gems/recipes/pkg/sculpt-imx8q_evk/hash new file mode 100644 index 0000000000..c291e594fc --- /dev/null +++ b/repos/gems/recipes/pkg/sculpt-imx8q_evk/hash @@ -0,0 +1 @@ +2020-11-24-n 69dc099d76ea5571e12ea9a46b5cc9ed75999c7a diff --git a/repos/gems/recipes/raw/drivers_managed-imx8q_evk/block_devices.report b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/block_devices.report new file mode 100644 index 0000000000..ca56f72ce6 --- /dev/null +++ b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/block_devices.report @@ -0,0 +1,3 @@ + + + diff --git a/repos/gems/recipes/raw/drivers_managed-imx8q_evk/content.mk b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/content.mk new file mode 100644 index 0000000000..8a3c89084e --- /dev/null +++ b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/content.mk @@ -0,0 +1,11 @@ +content: drivers.config fb_drv.config event_filter.config en_us.chargen \ + special.chargen numlock_remap.config block_devices.report + +drivers.config numlock_remap.config event_filter.config block_devices.report: + cp $(REP_DIR)/recipes/raw/drivers_managed-imx8q_evk/$@ $@ + +fb_drv.config: + cp $(GENODE_DIR)/repos/dde_linux/recipes/raw/drivers_interactive-imx8q_evk/$@ $@ + +en_us.chargen special.chargen: + cp $(GENODE_DIR)/repos/os/src/server/event_filter/$@ $@ diff --git a/repos/gems/recipes/raw/drivers_managed-imx8q_evk/drivers.config b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/drivers.config new file mode 100644 index 0000000000..4cd956b1e1 --- /dev/null +++ b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/drivers.config @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repos/gems/recipes/raw/drivers_managed-imx8q_evk/event_filter.config b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/event_filter.config new file mode 100644 index 0000000000..2e1a426895 --- /dev/null +++ b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/event_filter.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repos/gems/recipes/raw/drivers_managed-imx8q_evk/hash b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/hash new file mode 100644 index 0000000000..e81b47ba04 --- /dev/null +++ b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/hash @@ -0,0 +1 @@ +2020-11-24-j 663fa6b28df78dfdc69d62dfdff8ec636ba43dac diff --git a/repos/gems/recipes/raw/drivers_managed-imx8q_evk/numlock_remap.config b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/numlock_remap.config new file mode 100644 index 0000000000..673483c435 --- /dev/null +++ b/repos/gems/recipes/raw/drivers_managed-imx8q_evk/numlock_remap.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run index 7c7ccac870..d3587a51b0 100644 --- a/repos/gems/run/sculpt.run +++ b/repos/gems/run/sculpt.run @@ -1,4 +1,4 @@ -if {![have_spec pc]} { +if {![have_spec pc] && ![have_spec imx8q_evk]} { puts "Platform is unsupported."; exit 0; } @@ -18,7 +18,8 @@ proc config_system_content {} { return {\ } } proc nic_drv {} { - if {[have_spec pc]} { return ipxe_nic_drv } + if {[have_spec pc]} { return ipxe_nic_drv } + if {[have_spec imx8q_evk]} { return fec_nic_drv } puts "\n Run script is not supported on this platform. \n"; exit 0; } @@ -50,6 +51,7 @@ install_config { + @@ -238,6 +240,7 @@ install_config { + @@ -438,6 +441,7 @@ install_config { + diff --git a/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc b/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc index 4edcfce8c1..7c607f5226 100644 --- a/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc +++ b/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc @@ -50,7 +50,7 @@ static void gen_gui_fb_start(Xml_generator &xml) static void gen_terminal_start(Xml_generator &xml) { - gen_common_start_content(xml, "terminal", Cap_quota{100}, Ram_quota{4*1024*1024}); + gen_common_start_content(xml, "terminal", Cap_quota{110}, Ram_quota{4*1024*1024}); gen_provides(xml); diff --git a/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc b/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc index a5af189824..f83e95d7a4 100644 --- a/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc +++ b/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc @@ -16,6 +16,7 @@ void Sculpt::gen_nic_drv_start_content(Xml_generator &xml) { gen_common_start_content(xml, "nic_drv", Cap_quota{300}, Ram_quota{16*1024*1024}); + gen_named_node(xml, "resource", "CPU", [&] () { xml.attribute("quantum", "50"); }); gen_provides(xml); diff --git a/repos/os/recipes/src/imx8q_evk_drivers/content.mk b/repos/os/recipes/src/imx8q_evk_drivers/content.mk index e32cbffbe8..5032c08080 100644 --- a/repos/os/recipes/src/imx8q_evk_drivers/content.mk +++ b/repos/os/recipes/src/imx8q_evk_drivers/content.mk @@ -7,6 +7,10 @@ include/gpio: cp -r $(REP_DIR)/include/gpio $@ src/drivers: - mkdir -p $@/gpio/ $@/touch/ + mkdir -p $@/gpio/ $@/touch/ $@/sd_card cp -r $(REP_DIR)/src/drivers/gpio/imx/ $@/gpio cp -r $(REP_DIR)/src/drivers/touch/synaptics_dsx/ $@/touch + cp -r $(REP_DIR)/src/drivers/sd_card/imx/ $@/sd_card/ + cp -r $(REP_DIR)/src/drivers/sd_card/imx6/ $@/sd_card/ + cp -r $(REP_DIR)/src/drivers/sd_card/imx8/ $@/sd_card/ + cp $(REP_DIR)/src/drivers/sd_card/*.* $@/sd_card/ diff --git a/repos/os/recipes/src/imx8q_evk_drivers/used_apis b/repos/os/recipes/src/imx8q_evk_drivers/used_apis index adcb181e4b..1af215aa97 100644 --- a/repos/os/recipes/src/imx8q_evk_drivers/used_apis +++ b/repos/os/recipes/src/imx8q_evk_drivers/used_apis @@ -3,4 +3,5 @@ os event_session platform_session gpio_session +block_session