Hi Kevin,
I haven’t modified the boot.scr from the reference image, it is still:
#
# Copyright 2020 Toradex
#
# TorizonCore boot script.
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 ${devtype} != ubi
then
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
else
ubifsmount ${devtype}${devnum}:rootfs && load ${devtype} ${devnum}:0 ${loadaddr} /boot/loader/uEnv.txt; env import -t ${loadaddr} ${filesize}
fi
run bootcmd_run
The uEnv.txt, again isn’t modified from stock.
kernel_image=/ostree/torizon-a365050f574bcc7d045a18af3273d04163ad1c0752f3369effcba07d8523a691/vmlinuz-5.4.129-5.4.0+git.cb88cc157bfb
ramdisk_image=/ostree/torizon-a365050f574bcc7d045a18af3273d04163ad1c0752f3369effcba07d8523a691/initramfs-5.4.129-5.4.0+git.cb88cc157bfb.img
fdtdir=/ostree/torizon-a365050f574bcc7d045a18af3273d04163ad1c0752f3369effcba07d8523a691/dtb
bootargs=quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/a365050f574bcc7d045a18af3273d04163ad1c0752f3369effcba07d8523a691/0
kernel_image_type=Image.gz
overlays_file="overlays.txt"
otaroot=1
set_bootargs=if test ${devtype} != ubi; then \
# Load commands for regular block devices \
env set bootcmd_args env set bootargs ${defargs} root=LABEL=otaroot rootfstype=ext4 ${bootargs} ${tdxargs}; \
else \
# Load commands for raw NAND devices \
env set bootcmd_args env set bootargs ${defargs} ubi.mtd=ubi root=/dev/ubi0_0 rootfstype=ubifs ubi.fm_autoconvert=1 ${bootargs} ${tdxargs}; \
fi || true
set_kernel_load_addr=if test ${kernel_image_type} = "Image.gz"; then \
env set kernel_addr_load ${loadaddr}; \
env set bootcmd_unzip_k 'unzip $kernel_addr_load $kernel_addr_r'; \
else \
env set kernel_addr_load ${kernel_addr_r}; \
env set bootcmd_unzip_k ';'; \
fi || true
load_overlay=load ${devtype} ${devnum}:${otaroot} ${loadaddr} /boot${fdtdir}/${overlays_file}; env import -t ${loadaddr} ${filesize}
apply_overlays=fdt addr ${fdt_addr_r} && fdt resize 0x20000 && \
for overlay_file in ${fdt_overlays}; do \
echo "Applying Overlay: ${overlay_file}" && \
load ${devtype} ${devnum}:${otaroot} ${loadaddr} /boot${fdtdir}/overlays/${overlay_file} && fdt apply ${loadaddr}; \
done;
bootcmd_load_k=load ${devtype} ${devnum}:${otaroot} ${kernel_addr_load} "/boot"${kernel_image}
bootcmd_load_r=load ${devtype} ${devnum}:${otaroot} ${ramdisk_addr_r} "/boot"${ramdisk_image}; env set ramdisk_size ${filesize}
# check kernel_image2 to avoid booting from other then default emmc in case of
# bootlimit is reached and there is no other deployed image
check_rollback_needed=if test -n "${kernel_image2}" && test "${rollback}" = "1"; then \
echo "Rollback enabled. Booting previously deployed version."; \
env set kernel_image ${kernel_image2}; \
env set ramdisk_image ${ramdisk_image2}; \
env set bootargs ${bootargs2}; \
env set fdtdir ${fdtdir2}; \
env set fdt_file ${fdt_file2}; \
env set fdtfile ${fdtfile2}; \
fi || true
set_fdt_path=if test -n "${fdtdir}"; then \
env set fdt_path /boot${fdtdir}/${fdtfile}; \
else \
env set fdt_path /boot${fdt_file}; \
fi || true
bootcmd_dtb=load ${devtype} ${devnum}:${otaroot} ${fdt_addr_r} ${fdt_path}; \
if test ${skip_fdt_overlays} != 1; then \
if test -e ${devtype} ${devnum}:${otaroot} /boot${fdtdir}/${overlays_file}; then \
run load_overlay && run apply_overlays || true; \
fi || true; \
fi || true
set_bootargs_custom=if test -n "${fdt_overlays}"; then \
for overlay_file in ${fdt_overlays}; do \
if test "${overlay_file}" = "custom-kargs_overlay.dtbo"; then \
if fdt get value custom_kargs /chosen/ bootargs_custom; then \
env set bootargs ${bootargs} ${custom_kargs}; \
fi; \
fi; \
done; \
fi || true
board_fixups=if test "${board}" = "verdin-imx8mm"; then \
if test "${fdtfile}" = "imx8mm-verdin-nonwifi-v1.1-dahlia.dtb"; then \
env set fdtfile imx8mm-verdin-nonwifi-dahlia.dtb; \
elif test "${fdtfile}" = "imx8mm-verdin-nonwifi-v1.1-dev.dtb"; then \
env set fdtfile imx8mm-verdin-nonwifi-dev.dtb; \
elif test "${fdtfile}" = "imx8mm-verdin-wifi-v1.1-dahlia.dtb"; then \
env set fdtfile imx8mm-verdin-wifi-dahlia.dtb; \
elif test "${fdtfile}" = "imx8mm-verdin-wifi-v1.1-dev.dtb"; then \
env set fdtfile imx8mm-verdin-wifi-dev.dtb; \
fi; \
fi || true
nand_fixups=if test ${devtype} = ubi; then \
setexpr kernel_image sub "/boot" "" ${kernel_image}; \
setexpr ramdisk_image sub "/boot" "" ${ramdisk_image}; \
setexpr fdtdir sub "/boot" "" ${fdtdir}; \
if test -n "${kernel_image2}"; then \
setexpr kernel_image2 sub "/boot" "" ${kernel_image2}; \
setexpr ramdisk_image2 sub "/boot" "" ${ramdisk_image2}; \
setexpr fdtdir2 sub "/boot" "" ${fdtdir2}; \
fi || true; \
fi || true
bootcmd_boot=booti ${kernel_addr_r} ${ramdisk_addr_r}:${ramdisk_size} ${fdt_addr_r}
bootcmd_run=run board_fixups && run nand_fixups && run check_rollback_needed && run set_bootargs && run set_fdt_path && \
run bootcmd_dtb && run bootcmd_args && run set_bootargs_custom && run set_kernel_load_addr && \
run bootcmd_load_k && run bootcmd_unzip_k && run bootcmd_load_r && run bootcmd_boot
I don’t understand the sudden change in behaviour. Perhaps I can ask a different question; does anyone at torizon have a sound method to get the M4 cores on a imx8 to run automatically at boot? At the moment that’s all i’m trying to achieve. (I’m guessing i might be able to boot them from SD by modifying the boot script.)