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 <geomatsi@gmail.com>
This commit is contained in:
Sergey Matyukevich 2017-12-03 22:24:12 +03:00
parent da0e7e0ed1
commit 684a800c86
4 changed files with 19 additions and 4 deletions

View File

@ -28,5 +28,7 @@ UBOOT_LOCALVERSION = "-g${@d.getVar('SRCPV', True).partition('+')[2][0:7]}"
UBOOT_ENTRYPOINT ?= "0x40008000" UBOOT_ENTRYPOINT ?= "0x40008000"
UBOOT_LOADADDRESS ?= "0x400080OB00" UBOOT_LOADADDRESS ?= "0x400080OB00"
SPL_BINARY ?= "u-boot-sunxi-with-spl.bin"
SERIAL_CONSOLE ?= "115200 ttyS0" SERIAL_CONSOLE ?= "115200 ttyS0"
MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat" MACHINE_FEATURES ?= "alsa apm keyboard rtc serial screen usbgadget usbhost vfat"

View File

@ -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}

View File

@ -3,16 +3,18 @@ DESCRIPTION="Upstream's U-boot configured for sunxi devices"
require recipes-bsp/u-boot/u-boot.inc require recipes-bsp/u-boot/u-boot.inc
DEPENDS += " bc-native dtc-native swig-native python3-native " DEPENDS += " bc-native dtc-native swig-native python3-native "
DEPENDS_append_sun50i = " atf-sunxi "
LICENSE = "GPLv2+" LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6" 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_sun4i="1"
DEFAULT_PREFERENCE_sun5i="1" DEFAULT_PREFERENCE_sun5i="1"
DEFAULT_PREFERENCE_sun7i="1" DEFAULT_PREFERENCE_sun7i="1"
DEFAULT_PREFERENCE_sun8i="1" DEFAULT_PREFERENCE_sun8i="1"
DEFAULT_PREFERENCE_sun50i="1"
SRC_URI = "git://git.denx.de/u-boot.git;branch=master \ SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
file://u-boot-pylibfdt-native-build.patch \ file://u-boot-pylibfdt-native-build.patch \
@ -22,17 +24,17 @@ SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
SRCREV = "c253573f3e269fd9a24ee6684d87dd91106018a5" SRCREV = "c253573f3e269fd9a24ee6684d87dd91106018a5"
PV = "v2017.11+git${SRCPV}" PV = "v2017.11+git${SRCPV}"
PE = "2" PE = "2"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
SPL_BINARY="u-boot-sunxi-with-spl.bin"
UBOOT_ENV_SUFFIX = "scr" UBOOT_ENV_SUFFIX = "scr"
UBOOT_ENV = "boot" UBOOT_ENV = "boot"
EXTRA_OEMAKE += ' HOSTLDSHARED="${BUILD_CC} -shared ${BUILD_LDFLAGS} ${BUILD_CFLAGS}" ' 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() { do_compile_append() {
${B}/tools/mkimage -C none -A arm -T script -d ${WORKDIR}/boot.cmd ${WORKDIR}/${UBOOT_ENV_BINARY} ${B}/tools/mkimage -C none -A arm -T script -d ${WORKDIR}/boot.cmd ${WORKDIR}/${UBOOT_ENV_BINARY}