[LEDE-DEV,10/13] uboot-sunxi: build A64 SoC and pine64 U-Boot

Message ID 20170803213759.8875-11-hauke@hauke-m.de
State Accepted
Delegated to: Hauke Mehrtens
Headers show

Commit Message

Hauke Mehrtens Aug. 3, 2017, 9:37 p.m.
This creates a U-Boot for the aarch64 SoC A64 on the pine64 board.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 package/boot/uboot-sunxi/Makefile     | 18 +++++++++++++++++-
 package/boot/uboot-sunxi/uEnv-a64.txt |  5 +++++
 2 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 package/boot/uboot-sunxi/uEnv-a64.txt

Patch

diff --git a/package/boot/uboot-sunxi/Makefile b/package/boot/uboot-sunxi/Makefile
index 27dff1074e..a144ce7042 100644
--- a/package/boot/uboot-sunxi/Makefile
+++ b/package/boot/uboot-sunxi/Makefile
@@ -126,6 +126,14 @@  define U-Boot/pangolin
   UENV:=pangolin
 endef
 
+define U-Boot/pine64_plus
+  BUILD_SUBTARGET:=cortexa53
+  NAME:=Pine64 Plus A64
+  BUILD_DEVICES:=sun50i-a64-pine64-plus
+  DEPENDS:=+PACKAGE_u-boot-pine64_plus:arm-trusted-firmware-sunxi
+  UENV:=a64
+endef
+
 UBOOT_TARGETS := \
 	A10-OLinuXino-Lime \
 	A13-OLinuXino \
@@ -143,13 +151,21 @@  UBOOT_TARGETS := \
 	Linksprite_pcDuino3 \
 	Lamobo_R1 \
 	orangepi_plus \
-	pangolin
+	pangolin \
+	pine64_plus
 
 UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
 
+UBOOT_MAKE_FLAGS += \
+	BL31=$(STAGING_DIR_IMAGE)/bl31.bin
+
 define Build/InstallDev
 	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+ifeq ($(SUBTARGET),cortexa53)
+	cat $(PKG_BUILD_DIR)/spl/sunxi-spl.bin $(PKG_BUILD_DIR)/u-boot.itb > $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-u-boot-with-spl.bin
+else
 	$(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-u-boot-with-spl.bin
+endif
 	mkimage -C none -A arm -T script -d uEnv-$(UENV).txt \
 		$(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-boot.scr
 endef
diff --git a/package/boot/uboot-sunxi/uEnv-a64.txt b/package/boot/uboot-sunxi/uEnv-a64.txt
new file mode 100644
index 0000000000..7a717fdc0f
--- /dev/null
+++ b/package/boot/uboot-sunxi/uEnv-a64.txt
@@ -0,0 +1,5 @@ 
+setenv loadkernel fatload mmc 0 \$kernel_addr_r uImage
+setenv loaddtb fatload mmc 0 \$fdt_addr_r dtb
+setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait earlycon=uart,mmio32,0x01c28000
+setenv uenvcmd run loadkernel \&\& run loaddtb \&\& booti \$kernel_addr_r - \$fdt_addr_r
+run uenvcmd