uboot-sunxi: build A64 SoC and pine64 U-Boot
authorHauke Mehrtens <hauke@hauke-m.de>
Sat, 15 Jul 2017 20:53:35 +0000 (22:53 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 18 Sep 2017 16:36:27 +0000 (18:36 +0200)
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
package/boot/uboot-sunxi/uEnv-a64.txt [new file with mode: 0644]

index 27dff1074e73c3f069202f4ec4f8f733c89be56d..a144ce70428448c7d682a0fe97443bacf6c56dbb 100644 (file)
@@ -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 (file)
index 0000000..7a717fd
--- /dev/null
@@ -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