mvebu: GL-MV1000: add custom boot script
authorEnrico Mioso <mrkiko.rs@gmail.com>
Tue, 2 Jul 2024 16:09:07 +0000 (18:09 +0200)
committerRobert Marko <robimarko@gmail.com>
Tue, 6 Aug 2024 19:46:25 +0000 (21:46 +0200)
This allows booting from internal eMMC or SD card just changing the
U-Boot mmc_dev variable.
In particular, setting mmc_dev to 1 will result in booting from the SD card.
Setting the variable to 0 will result in internal eMMC boot (the default).
Should the variable be unset or an error condition occur while reading
from SD card, internal MMC booting will be tried.

Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
target/linux/mvebu/image/cortexa53.mk
target/linux/mvebu/image/gl-mv1000.bootscript [new file with mode: 0644]

index afe8d9ce21b75a670fc350f877ce5f2e074f6729..2a3b5ee11ed40fbae980aee4322b0f3018199f6a 100644 (file)
@@ -3,6 +3,7 @@ define Device/glinet_gl-mv1000
   DEVICE_VENDOR := GL.iNet
   DEVICE_MODEL := GL-MV1000
   SOC := armada-3720
+  BOOT_SCRIPT := gl-mv1000
 endef
 TARGET_DEVICES += glinet_gl-mv1000
 
diff --git a/target/linux/mvebu/image/gl-mv1000.bootscript b/target/linux/mvebu/image/gl-mv1000.bootscript
new file mode 100644 (file)
index 0000000..be93aa3
--- /dev/null
@@ -0,0 +1,28 @@
+# Boot script for GL.iNet GL-MV1000 to make it easier to boot from eMMC or SD
+# card.
+
+setenv bootargs "root=PARTUUID=@ROOT@-02 rw rootwait"
+
+if test -n "${console}"; then
+       setenv bootargs "${bootargs} ${console}"
+fi
+
+# Should mmc_dev not be present, default to internal MMC boot
+if test -z "${mmc_dev}"; then
+       setenv mmc_dev 0
+fi
+
+setenv mmcdev "${mmc_dev}"
+
+if test -n "${fdt_addr_r}"; then
+       setenv fdt_addr ${fdt_addr_r}
+fi
+
+if test -n "${kernel_addr_r}"; then
+       setenv kernel_addr ${kernel_addr_r}
+fi
+
+load mmc ${mmcdev}:1 ${fdt_addr} @DTB@.dtb
+load mmc ${mmcdev}:1 ${kernel_addr} Image
+
+booti ${kernel_addr} - ${fdt_addr}