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