From c43b45863e38fb18a486601c1601f1485d649c0b Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 12 Sep 2020 09:32:41 +0200 Subject: [PATCH] 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 --- target/linux/mvebu/image/cortexa53.mk | 4 +++ .../linux/mvebu/image/espressobin.bootscript | 34 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 target/linux/mvebu/image/espressobin.bootscript 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@.dtb +load ${devtype} ${devnum}:1 ${kernel_addr_r} Image + +booti ${kernel_addr_r} - ${fdt_addr_r} -- 2.30.2