Allow boot from USB and NVMe on Khadas VIM3 (#3784)

Use devtype instead of hardcoding device type to mmc in U-Boot script.

Signed-off-by: Gunjan Gupta <gunjan@wesion.com>
This commit is contained in:
Gunjan Gupta 2025-01-15 14:29:11 +05:30 committed by GitHub
parent c0bf2751c4
commit cd04812e9e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,17 +1,17 @@
########################################### ###########################################
part start mmc ${devnum} 9 mmc_env part start ${devtype} ${devnum} 9 mmc_env
mmc dev ${devnum} ${devtype} dev ${devnum}
setenv loadbootstate " \ setenv loadbootstate " \
echo 'loading env...'; \ echo 'loading env...'; \
mmc read ${ramdisk_addr_r} ${mmc_env} 0x10; \ ${devtype} read ${ramdisk_addr_r} ${mmc_env} 0x10; \
env import -c ${ramdisk_addr_r} 0x2000;" env import -c ${ramdisk_addr_r} 0x2000;"
setenv storebootstate " \ setenv storebootstate " \
echo 'storing env...'; \ echo 'storing env...'; \
env export -c -s 0x2000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \ env export -c -s 0x2000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
mmc write ${ramdisk_addr_r} ${mmc_env} 0x10;" ${devtype} write ${ramdisk_addr_r} ${mmc_env} 0x10;"
run loadbootstate run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B" test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
@ -29,31 +29,31 @@ setenv bootargs_a "root=PARTUUID=48617373-06 ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 ro rootwait" setenv bootargs_b "root=PARTUUID=48617373-08 ro rootwait"
# Load environment from haos-config.txt # Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then if test -e ${devtype} ${devnum}:1 haos-config.txt; then
fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt fatload ${devtype} ${devnum}:1 ${ramdisk_addr_r} haos-config.txt
env import -t ${ramdisk_addr_r} ${filesize} env import -t ${ramdisk_addr_r} ${filesize}
fi fi
# Load extraargs # Load extraargs
fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline fileenv ${devtype} ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline
# Load device tree # Load device tree
setenv fdtfile "meson-g12b-s922x-khadas-vim3.dtb" setenv fdtfile "meson-g12b-s922x-khadas-vim3.dtb"
echo "Loading standard device tree ${fdtfile}" echo "Loading standard device tree ${fdtfile}"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} fatload ${devtype} ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r} fdt addr ${fdt_addr_r}
# load dt overlays # load dt overlays
fdt resize 65536 fdt resize 65536
for overlay_file in ${overlays}; do for overlay_file in ${overlays}; do
if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then if fatload ${devtype} ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo" echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true" fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi fi
done done
if test "${overlay_error}" = "true"; then if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT" echo "Error applying DT overlays, restoring original DT"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile} fatload ${devtype} ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fi fi
# logical volumes get numbered after physical ones. # logical volumes get numbered after physical ones.
@ -74,7 +74,7 @@ for BOOT_SLOT in "${BOOT_ORDER}"; do
if test ${BOOT_A_LEFT} -gt 0; then if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1 setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..." echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:5 ${kernel_addr_r} Image; then if load ${devtype} ${devnum}:5 ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}" setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
fi fi
fi fi
@ -82,7 +82,7 @@ for BOOT_SLOT in "${BOOT_ORDER}"; do
if test ${BOOT_B_LEFT} -gt 0; then if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1 setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..." echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:7 ${kernel_addr_r} Image; then if load ${devtype} ${devnum}:7 ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}" setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
fi fi
fi fi