sculpt: add F&S i.MX 8MP Armstone

This commit is contained in:
Stefan Kalkowski 2025-02-18 14:48:56 +01:00 committed by Christian Helmuth
parent 0393965d5a
commit b1d53fd4c8
3 changed files with 36 additions and 15 deletions

View File

@ -12,12 +12,13 @@ proc sculpt_version { } { return "24.10" }
proc assert_platform_supported { } {
if {[have_board pc]} return
if {[have_board imx8q_evk]} return
if {[have_board mnt_reform2]} return
if {[have_board mnt_pocket]} return
if {[have_board linux]} return
if {[have_board pinephone]} return
if {[have_board pc]} return
if {[have_board imx8q_evk]} return
if {[have_board mnt_reform2]} return
if {[have_board mnt_pocket]} return
if {[have_board linux]} return
if {[have_board pinephone]} return
if {[have_board imx8mp_armstone]} return
puts "Platform is unsupported.";
exit 0;
@ -231,6 +232,18 @@ proc driver_routes { } {
<service name="IRQ" label_prefix="touch ->"> <child name="drivers" label="runtime -> touch -> PH4"/> </service>
}
set result(imx8mp_armstone) {
<service name="ROM" label="fb"> <parent label="imx8mp_armstone_fb"/> </service>
<service name="ROM" label="fb.dtb"> <parent label="imx8mp_armstone_fb-imx8mp_armstone.dtb"/> </service>
<service name="ROM" label="mmc"> <parent label="imx8mq_sd_card"/> </service>
<service name="ROM" label="mmc.dtb"> <parent label="imx8mq_sd_card-imx8mp_armstone.dtb"/> </service>
<service name="ROM" label="nic"> <parent label="fec_nic"/> </service>
<service name="ROM" label="nic.dtb"> <parent label="fec_nic-imx8mp_armstone.dtb"/> </service>
<service name="ROM" label="usb"> <parent label="imx8m_usb_host"/> </service>
<service name="ROM" label="usb.dtb"> <parent label="imx8m_usb_host-imx8mp_armstone.dtb"/> </service>
<service name="I2c"> <child name="drivers"/> </service>
}
if {[info exists result([board])]} {
return $result([board]); }

View File

@ -3,10 +3,11 @@
#
proc board_supported { } {
if {[have_board pinephone]} { return true }
if {[have_board pc]} { return true }
if {[have_board mnt_reform2]} { return true }
if {[have_board mnt_pocket]} { return true }
if {[have_board pinephone]} { return true }
if {[have_board pc]} { return true }
if {[have_board mnt_reform2]} { return true }
if {[have_board mnt_pocket]} { return true }
if {[have_board imx8mp_armstone]} { return true }
return false
}
@ -52,6 +53,12 @@ if {[have_board mnt_pocket]} {
assert_run_arg "--image-uboot-gzip-best"
}
if {[have_board imx8mp_armstone]} {
assert_include image/uboot
assert_include image/armstone_sdcard
assert_run_arg "--image-uboot-gzip-best"
}
source ${genode_dir}/repos/gems/run/sculpt.run
set image_name "sculpt-$board_var-[build_date]"

View File

@ -91,6 +91,7 @@ struct Sculpt::Main : Input_event_handler,
bool const _mnt_reform = (_build_info.board == "mnt_reform2");
bool const _mnt_pocket = (_build_info.board == "mnt_pocket");
bool const _armstone = (_build_info.board == "imx8mp_armstone");
Registry<Child_state> _child_states { };
@ -294,13 +295,13 @@ struct Sculpt::Main : Input_event_handler,
**********************/
Board_info::Soc _soc {
.fb = _mnt_reform || _mnt_pocket,
.fb = _mnt_reform || _mnt_pocket || _armstone,
.touch = false,
.wifi = _mnt_pocket, /* initialized via PCI on Reform */
.usb = _mnt_reform || _mnt_pocket,
.mmc = _mnt_reform || _mnt_pocket,
.usb = _mnt_reform || _mnt_pocket || _armstone,
.mmc = _mnt_reform || _mnt_pocket || _armstone,
.modem = false,
.nic = _mnt_reform || _mnt_pocket,
.nic = _mnt_reform || _mnt_pocket || _armstone,
.fb_on_dedicated_cpu = _mnt_pocket
};
@ -310,7 +311,7 @@ struct Sculpt::Main : Input_event_handler,
Drivers::Resumed _resumed = _drivers.resumed();
Board_info::Options _driver_options {
.display = _mnt_reform || _mnt_pocket,
.display = _mnt_reform || _mnt_pocket || _armstone,
.usb_net = false,
.nic = false,
.wifi = _mnt_pocket,