mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-07-27 15:06:29 +00:00
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:
parent
c0bf2751c4
commit
cd04812e9e
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user