From 9cbe33a0e49083abf8809126c4e0a97b4898a330 Mon Sep 17 00:00:00 2001 From: Eduardo Ferreira Date: Mon, 30 Dec 2024 12:48:54 -0300 Subject: [PATCH] imx95: add support for NXP's iMX95 on Common Torizon Related-to: TOR-3661 Signed-off-by: Eduardo Ferreira --- conf/machine/include/imx95-19x19-verdin.inc | 10 ++++++ .../imx95-19x19-verdin/boot.cmd.in | 35 +++++++++++++++++++ .../lib/wic/canned-wks/torizon-imx95-sota.wks | 6 ++++ 3 files changed, 51 insertions(+) create mode 100644 conf/machine/include/imx95-19x19-verdin.inc create mode 100644 recipes-bsp/u-boot/u-boot-distro-boot/imx95-19x19-verdin/boot.cmd.in create mode 100644 scripts/lib/wic/canned-wks/torizon-imx95-sota.wks diff --git a/conf/machine/include/imx95-19x19-verdin.inc b/conf/machine/include/imx95-19x19-verdin.inc new file mode 100644 index 00000000..15ea3da0 --- /dev/null +++ b/conf/machine/include/imx95-19x19-verdin.inc @@ -0,0 +1,10 @@ +WKS_FILE:sota = "torizon-imx95-sota.wks" + +OSTREE_KERNEL_ARGS:sota:imx:append = "console=ttyLP0,115200 earlycon root=LABEL=otaroot rootfstype=ext4" + +BBMASK += "\ + /meta-imx/meta-imx-bsp/recipes-bsp/u-boot \ +" + +PREFERRED_PROVIDER_virtual/dtb = "" +OSTREE_DEPLOY_DEVICETREE:forcevariable = "0" diff --git a/recipes-bsp/u-boot/u-boot-distro-boot/imx95-19x19-verdin/boot.cmd.in b/recipes-bsp/u-boot/u-boot-distro-boot/imx95-19x19-verdin/boot.cmd.in new file mode 100644 index 00000000..9ec0c1c0 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-distro-boot/imx95-19x19-verdin/boot.cmd.in @@ -0,0 +1,35 @@ +# SPDX-License-Identifier: GPL-2.0+ OR MIT +# +# Copyright 2020 Toradex +# +# Torizon boot script. + +# set ramdisk load address for iMX95 bootloader, since this variable is not set in U-Boot's imx95 initial env. +env set ramdisk_addr_r "${initrd_addr}" + +if test -z "${altbootcmd}" +then + env set altbootcmd 'env set rollback 1; run bootcmd' + env save +fi + +if test "${rollback}" = "1" && test "${upgrade_available}" = "1" +then + # Make sure to reset upgrade_available to avoid unnecessary wear + # Note this also makes rollback permanent. aktualizr will reset rollback + # when a new (hopefully better) update comes in. + env set upgrade_available 0 + env save +fi + +# save default U-Boot devicetree file to use in a rollback situation +env set fdtfile2 "${fdtfile}" + +if test -n "${loadaddr}" +then + ext4load ${devtype} ${devnum}:1 ${loadaddr} /boot/loader/uEnv.txt; env import -t ${loadaddr} ${filesize} +else + ext4load ${devtype} ${devnum}:1 ${scriptaddr} /boot/loader/uEnv.txt; env import -t ${scriptaddr} ${filesize} +fi + +run bootcmd_run diff --git a/scripts/lib/wic/canned-wks/torizon-imx95-sota.wks b/scripts/lib/wic/canned-wks/torizon-imx95-sota.wks new file mode 100644 index 00000000..3adf14ee --- /dev/null +++ b/scripts/lib/wic/canned-wks/torizon-imx95-sota.wks @@ -0,0 +1,6 @@ +# short-description: Create OTA-enabled SD card image +# long-description: Creates a partitioned SD card image with OSTree +# physical sysroot as a payload. Boot files are located in the +# first vfat partition. +part u-boot --source rawcopy --sourceparams="file=imx-boot.tagged" --ondisk mmcblk --no-table --align 32 +part / --source otaimage --ondisk mmcblk --fstype=ext4 --align 8192 \ No newline at end of file