[openwrt/openwrt] mvebu: Add bootscript for espressobin to support mainline firmware

LEDE Commits lede-commits at lists.infradead.org
Sun Oct 11 11:08:38 EDT 2020


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/c43b45863e38fb18a486601c1601f1485d649c0b

commit c43b45863e38fb18a486601c1601f1485d649c0b
Author: Andre Heider <a.heider at gmail.com>
AuthorDate: Sat Sep 12 09:32:41 2020 +0200

    mvebu: Add bootscript for espressobin to support mainline firmware
    
    The generic bootscript is tailored around a downstream firmware and
    doesn't work on a firmware built from mainline components.
    
    Add a bootscript which:
    * sets $console since mainline u-boot doesn't do that
    * uses distro boot variables, so OpenWRT can be booted off any supported
      device when using a mainline firmware
    * sets missing distro boot variables for the downstream firmware
    
    Booting with a downstream firmware is unchanged.
    Booting with a mainline firmware now works.
    
    Signed-off-by: Andre Heider <a.heider at gmail.com>
---
 target/linux/mvebu/image/cortexa53.mk           |  4 +++
 target/linux/mvebu/image/espressobin.bootscript | 34 +++++++++++++++++++++++++
 2 files changed, 38 insertions(+)

diff --git a/target/linux/mvebu/image/cortexa53.mk b/target/linux/mvebu/image/cortexa53.mk
index ff8f2c0930..b65f25472c 100644
--- a/target/linux/mvebu/image/cortexa53.mk
+++ b/target/linux/mvebu/image/cortexa53.mk
@@ -15,6 +15,7 @@ define Device/globalscale_espressobin
   DEVICE_ALT0_MODEL := Armada 3700 Community Board
   DEVICE_ALT0_VARIANT := Non-eMMC
   SOC := armada-3720
+  BOOT_SCRIPT := espressobin
 endef
 TARGET_DEVICES += globalscale_espressobin
 
@@ -27,6 +28,7 @@ define Device/globalscale_espressobin-emmc
   DEVICE_ALT0_MODEL := Armada 3700 Community Board
   DEVICE_ALT0_VARIANT := eMMC
   SOC := armada-3720
+  BOOT_SCRIPT := espressobin
 endef
 TARGET_DEVICES += globalscale_espressobin-emmc
 
@@ -39,6 +41,7 @@ define Device/globalscale_espressobin-v7
   DEVICE_ALT0_MODEL := Armada 3700 Community Board
   DEVICE_ALT0_VARIANT := V7 Non-eMMC
   SOC := armada-3720
+  BOOT_SCRIPT := espressobin
 endef
 TARGET_DEVICES += globalscale_espressobin-v7
 
@@ -51,6 +54,7 @@ define Device/globalscale_espressobin-v7-emmc
   DEVICE_ALT0_MODEL := Armada 3700 Community Board
   DEVICE_ALT0_VARIANT := V7 eMMC
   SOC := armada-3720
+  BOOT_SCRIPT := espressobin
 endef
 TARGET_DEVICES += globalscale_espressobin-v7-emmc
 
diff --git a/target/linux/mvebu/image/espressobin.bootscript b/target/linux/mvebu/image/espressobin.bootscript
new file mode 100644
index 0000000000..07765df979
--- /dev/null
+++ b/target/linux/mvebu/image/espressobin.bootscript
@@ -0,0 +1,34 @@
+# Bootscript for Globalscale ESPRESSOBin Board
+
+# Set distro variables if necessary for compability with downstream firmware
+if test -z "${kernel_addr_r}"; then
+	setenv kernel_addr_r 0x7000000
+fi
+
+if test -z "${fdt_add_r}"; then
+	setenv fdt_addr_r 0x6f00000
+fi
+
+if test -z "${devtype}"; then
+	setenv devtype mmc
+fi
+
+if test -z "${devnum}"; then
+	if mmc dev 0; then
+		setenv devnum 0
+	elif mmc dev 1; then
+		setenv devnum 1
+	fi
+fi
+
+# figure out partition uuid to pass to the kernel as root=
+part uuid ${devtype} ${devnum}:2 uuid
+
+setenv console "console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000"
+setenv bootargs "root=PARTUUID=${uuid} rw rootwait ${console}"
+
+echo "Booting Linux from ${devtype} ${devnum} with args: ${bootargs}"
+load ${devtype} ${devnum}:1 ${fdt_addr_r} @DTB at .dtb
+load ${devtype} ${devnum}:1 ${kernel_addr_r} Image
+
+booti ${kernel_addr_r} - ${fdt_addr_r}



More information about the lede-commits mailing list