From 684a800c86afab19556b3e7cb1277f039a600b0c Mon Sep 17 00:00:00 2001 From: Sergey Matyukevich Date: Sun, 3 Dec 2017 22:24:12 +0300 Subject: [PATCH] u-boot: enable support for sun50i Add support of sun50i SoC family to u-boot recipe: - move SPL_BINARY to sunxi.inc and sunxi64.inc -- different SoC families have different SPL_BINARY names - create separate boot.cmd files for arm and aarch64 -- different kernel image types require different boot commands - add atf-sunxi dependency -- u-boot for aarch64 needs ATF BL31 binary - add do_compile_sun50i[depends] -- make sure that BL31 binary is already deployed before u-boot build Signed-off-by: Sergey Matyukevich --- conf/machine/include/sunxi.inc | 2 ++ recipes-bsp/u-boot/files/aarch64/boot.cmd | 11 +++++++++++ recipes-bsp/u-boot/files/{ => arm}/boot.cmd | 0 recipes-bsp/u-boot/u-boot_2017.11.bb | 10 ++++++---- 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 recipes-bsp/u-boot/files/aarch64/boot.cmd rename recipes-bsp/u-boot/files/{ => arm}/boot.cmd (100%) diff --git a/conf/machine/include/sunxi.inc b/conf/machine/include/sunxi.inc index ef8271f..723f11d 100644 --- a/conf/machine/include/sunxi.inc +++ b/conf/machine/include/sunxi.inc @@ -28,5 +28,7 @@ UBOOT_LOCALVERSION = "-g${@d.getVar('SRCPV', True).partition('+')[2][0:7]}" UBOOT_ENTRYPOINT ?= "0x40008000" UBOOT_LOADADDRESS ?= "0x400080OB00" +SPL_BINARY ?= "u-boot-sunxi-with-spl.bin" + SERIAL_CONSOLE ?= "115200 ttyS0" MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat" diff --git a/recipes-bsp/u-boot/files/aarch64/boot.cmd b/recipes-bsp/u-boot/files/aarch64/boot.cmd new file mode 100644 index 0000000..fa97399 --- /dev/null +++ b/recipes-bsp/u-boot/files/aarch64/boot.cmd @@ -0,0 +1,11 @@ +# Default to (primary) SD +rootdev=mmcblk0p2 +if itest.b *0x28 == 0x02 ; then + # U-Boot loaded from eMMC or secondary SD so use it for rootfs too + echo "U-boot loaded from eMMC or secondary SD" + rootdev=mmcblk1p2 +fi +setenv bootargs console=${console} console=tty1 root=/dev/${rootdev} rootwait panic=10 ${extra} +load mmc 0:1 ${fdt_addr_r} ${fdtfile} +load mmc 0:1 ${kernel_addr_r} Image +booti ${kernel_addr_r} - ${fdt_addr_r} diff --git a/recipes-bsp/u-boot/files/boot.cmd b/recipes-bsp/u-boot/files/arm/boot.cmd similarity index 100% rename from recipes-bsp/u-boot/files/boot.cmd rename to recipes-bsp/u-boot/files/arm/boot.cmd diff --git a/recipes-bsp/u-boot/u-boot_2017.11.bb b/recipes-bsp/u-boot/u-boot_2017.11.bb index 6765716..7bd20fc 100644 --- a/recipes-bsp/u-boot/u-boot_2017.11.bb +++ b/recipes-bsp/u-boot/u-boot_2017.11.bb @@ -3,16 +3,18 @@ DESCRIPTION="Upstream's U-boot configured for sunxi devices" require recipes-bsp/u-boot/u-boot.inc DEPENDS += " bc-native dtc-native swig-native python3-native " +DEPENDS_append_sun50i = " atf-sunxi " LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6" -COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i)" +COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i|sun8i|sun50i)" DEFAULT_PREFERENCE_sun4i="1" DEFAULT_PREFERENCE_sun5i="1" DEFAULT_PREFERENCE_sun7i="1" DEFAULT_PREFERENCE_sun8i="1" +DEFAULT_PREFERENCE_sun50i="1" SRC_URI = "git://git.denx.de/u-boot.git;branch=master \ file://u-boot-pylibfdt-native-build.patch \ @@ -22,17 +24,17 @@ SRC_URI = "git://git.denx.de/u-boot.git;branch=master \ SRCREV = "c253573f3e269fd9a24ee6684d87dd91106018a5" PV = "v2017.11+git${SRCPV}" - PE = "2" S = "${WORKDIR}/git" -SPL_BINARY="u-boot-sunxi-with-spl.bin" - UBOOT_ENV_SUFFIX = "scr" UBOOT_ENV = "boot" EXTRA_OEMAKE += ' HOSTLDSHARED="${BUILD_CC} -shared ${BUILD_LDFLAGS} ${BUILD_CFLAGS}" ' +EXTRA_OEMAKE_append_sun50i = " BL31=${DEPLOY_DIR_IMAGE}/bl31.bin " + +do_compile_sun50i[depends] += "atf-sunxi:do_deploy" do_compile_append() { ${B}/tools/mkimage -C none -A arm -T script -d ${WORKDIR}/boot.cmd ${WORKDIR}/${UBOOT_ENV_BINARY}