Skip to content

Commit 8f56288

Browse files
HeyMecoigorpecovnik
authored andcommitted
Genio: Update boot cmd
1 parent 8687e9d commit 8f56288

1 file changed

Lines changed: 39 additions & 14 deletions

File tree

config/bootscripts/boot-genio.cmd

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,44 @@ setenv rootfstype "ext4"
1313
setenv docker_optimizations "on"
1414
setenv earlycon "off"
1515

16+
# Set load address for temporary file loading (armbianEnv.txt, overlays, etc)
17+
# Using address that doesn't conflict with kernel (0x45000000), ramdisk (0x49000000), or fdt (0x44000000)
18+
setenv load_addr "0x43000000"
1619

1720
test -n "${distro_bootpart}" || distro_bootpart=1
1821

1922
echo "Boot script loaded from ${devtype} ${devnum}:${distro_bootpart}"
2023

21-
if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}armbianEnv.txt; then
22-
load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}armbianEnv.txt
23-
env import -t ${load_addr} ${filesize}
24+
# get PARTUUID of first partition on SD/eMMC/UFS the boot script was loaded from
25+
echo "Detecting PARTUUID for ${devtype} device ${devnum}:${distro_bootpart}..."
26+
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:${distro_bootpart} partuuid; fi
27+
if test "${devtype}" = "scsi"; then part uuid scsi ${devnum}:${distro_bootpart} partuuid; fi
28+
29+
# Use PARTUUID if available (more reliable), otherwise fall back to rootdev label
30+
if test -n "${partuuid}"; then
31+
echo "PARTUUID detected: ${partuuid}"
32+
setenv rootdev "PARTUUID=${partuuid}"
33+
echo "Set default rootdev=${rootdev}"
34+
else
35+
echo "PARTUUID not available, keeping fallback rootdev=${rootdev}"
2436
fi
2537

38+
# Load armbianEnv.txt if it exists - using direct load instead of test -e for better compatibility
39+
# This happens AFTER PARTUUID detection so user can override rootdev if needed
40+
echo "Attempting to load ${prefix}armbianEnv.txt from ${devtype} ${devnum}:${distro_bootpart} to ${load_addr}..."
41+
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}armbianEnv.txt; then
42+
echo "Successfully loaded armbianEnv.txt (${filesize} bytes)"
43+
if env import -t ${load_addr} ${filesize}; then
44+
echo "Successfully imported environment from armbianEnv.txt"
45+
else
46+
echo "Warning: Failed to import environment from armbianEnv.txt"
47+
fi
48+
else
49+
echo "armbianEnv.txt not found or failed to load - using default environment"
50+
fi
51+
52+
echo "Final rootdev: ${rootdev}"
53+
2654
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
2755

2856
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
@@ -34,22 +62,17 @@ else
3462
setenv consoleargs "splash=verbose ${consoleargs}"
3563
fi
3664

37-
# get PARTUUID of first partition on SD/eMMC/UFS the boot script was loaded from
38-
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:${distro_bootpart} partuuid; fi
39-
if test "${devtype}" = "scsi"; then part uuid scsi ${devnum}:${distro_bootpart} partuuid; fi
40-
41-
# Use PARTUUID if available (more reliable), otherwise fall back to rootdev label
42-
if test -n "${partuuid}"; then
43-
setenv rootdev "PARTUUID=${partuuid}"
44-
fi
45-
4665
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
4766

4867
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"; fi
4968

50-
load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}uInitrd
51-
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${prefix}Image
69+
echo "Final bootargs: ${bootargs}"
5270

71+
echo "Loading kernel image to ${kernel_addr_r}..."
72+
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${prefix}Image
73+
echo "Loading initramfs to ${ramdisk_addr_r}..."
74+
load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}uInitrd
75+
echo "Loading device tree ${fdtfile} to ${fdt_addr_r}..."
5376
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
5477
fdt addr ${fdt_addr_r}
5578
fdt resize 65536
@@ -86,6 +109,8 @@ fi
86109

87110
echo "Trying 'kaslrseed' command... Info: 'Unknown command' can be safely ignored since 'kaslrseed' does not apply to all boards."
88111
kaslrseed # @TODO: This gives an error (Unknown command ' kaslrseed ' - try 'help') on many devices since CONFIG_CMD_KASLRSEED is not enabled
112+
113+
echo "Booting kernel from ${kernel_addr_r} with initramfs at ${ramdisk_addr_r} and DTB at ${fdt_addr_r}..."
89114
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
90115

91116
# Recompile with:

0 commit comments

Comments
 (0)