Hello Stefan,
I did not think of the script using some of the U-Boot variables and that was, presumably, the problem.
When I tried all commands by hand, it booted TEZI 5.4:
Colibri iMX7 # printenv boot_a_script
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
Colibri iMX7 # printenv bootcmd_tezi
bootcmd_tezi=setenv bootm_boot_mode sec; setenv devtype mmc; setenv devnum 0; setenv distro_bootpart 3; setenv bootpart 3; setenv script boot.scr; run boot_a_script
Colibri iMX7 # setenv bootm_boot_mode sec
Colibri iMX7 # setenv devtype mmc
Colibri iMX7 # setenv devnum 0
Colibri iMX7 # setenv distro_bootpart 3
Colibri iMX7 # setenv bootpart 3
Colibri iMX7 # setenv script boot-tezi.scr
Colibri iMX7 # printenv scriptaddr
scriptaddr=0x87000000
Colibri iMX7 # printenv ramdisk_addr_r
ramdisk_addr_r=0x82100000
Colibri iMX7 # printenv prefix
Error: “prefix” not defined
Colibri iMX7 # printenv soc
soc=imx7d
Colibri iMX7 # printenv variant
variant=-emmc
Colibri iMX7 # printenv fdt_board
fdt_board=eval-v3
Colibri iMX7 # load mmc 0:3 0x87000000 boot-tezi.scr
524 bytes read in 6 ms (85 KiB/s)
Colibri iMX7 # printenv teziargs
Error: “teziargs” not defined
Colibri iMX7 # setenv bootargs console=ttymxc0,115200 quiet video=DPI-1:640x480-16@60D rootfstype=squashfs root=/dev/ram autoinstall
Colibri iMX7 # setenv fdt_high
Colibri iMX7 # load mmc 0:3 0x82100000 tezi.itb
33453256 bytes read in 405 ms (78.8 MiB/s)
Colibri iMX7 # bootm 0x82100000#config@imx7d-colibri-emmc-eval-v3.dtb
Loading kernel from FIT Image at 82100000 …
Using ‘config@imx7d-colibri-emmc-eval-v3.dtb’ configuration
Trying ‘kernel@1’ kernel subimage
Description: Linux kernel
Type: Kernel Image
Compression: uncompressed
Data Stat: 0x82100108
Data Size: 6980096 Bytes = 6.7 MiB
Architecture: ARM
OS: Linux
Load Address: 0x81000000
Entry Point: 0x81000000
Hash algo: sha1
Hash value: ab26581a698f3ac1157380d1f521750d49a64dfb
Veriying Hash Integrity … sha1+ OK
Loading ramdisk from FIT Image at 82100000 …
Using ‘config@imx7d-colibri-emmc-eval-v3.dtb’ configuration
Trying ‘ramdisk@1’ ramdisk subimage
Description: tezi-initramfs
Type: RAMDisk Image
Compression: uncmpressed
Data Start: 0x827ee5f4
Data Size: 26181632 Bytes = 25 MiB
Architecture: ARM
OS: Linux
Load Address: unavailable
Entry Point: unavailable
Hash algo: sha1
Hash value: 2f0d2d3baa2783d682a11c760b560a18bc4e373
Verifying Hash Integrity … sha1+ OK
Loading fdt from FIT Image at 82100000 …
Using ‘config@imx7d-colibri-emmc-eval-v3.dtb’ configuration
Trying ‘fdt@imx7d-colibri-emmc-eval-v3.dtb’ fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
ompression: uncompressed
Data Start: 0x827c2f28
Data Size: 56238 Bytes = 54.9 KiB
Architecture: ARM
Hash algo: sha1
Hash value: 4584c1a80bb703cecda58686e2e5440295f0dd9f
Verifying Hash Integrity … sha1+ OK
Booting using the fdt blob at 0x827c2f28
Loading Kernel Image … OK
Loading Device Tree to 8ffef000, end 8ffffbad … OK
Starting kernel …
I assume, the error regarding image type was generated when the address to load tezi.itb was not set (correctly?).
There is a small difference between boot.scr (which I use for TEZI 1.8) and boot-tezi.scr (which comes with TEZI 5.4):
boot.scr:
setenv bootargs console=ttymxc0,115200 quiet rootfstype=squashfs root=/dev/ram autoinstall ${teziargs}
setenv fdt_high
load ${devtype} ${devnum}:${bootpart} ${ramdisk_addr_r} ${prefix}tezi.itb
bootm ${ramdisk_addr_r}#config@${soc}${variant}
boot-tezi.scr:
setenv bootargs console=ttymxc0,115200 quiet video=DPI-1:640x480-16@60D rootfstype=squashfs root=/dev/ram autoinstall ${teziargs}
setenv fdt_high
load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}tezi.itb
bootm ${ramdisk_addr_r}#config@${soc}-colibri${variant}-${fdt_board}.dtb
Besides the bootargs, the parameter to bootm is different. boot.scr lacks the extension “-${fdt_board}.dtb” I don’t know if this makes a difference when booting TEZI 5.4
The other error I saw “Boot partition needs to be the first partition” was generated from yet another version of boot.scr, which I had mistakenly copied to the device during my tests instead of the original boot.scr. This version of the script tests:
if test ${distro_bootpart} != 1
then
echo “Boot partition needs to be the first partition”
exit
fi
Which is also wrong for my installation of TEZI 1.8 to partition 3.
So, in conclusion: when all variables are set correctly and the appropriate boot script is executed TEZI 5.4 boots on my device from the partition where I have installed it. In order to upgrade to TEZI 5.4 I only need to adjust the U-Boot variables to hold the values I used in the test above.
Thank you very much for your help and insight! Please consider the issue resolved.
Best regards,
Otmar