uboot: Add support for U-Boot TPL
PATCH v3 1/2 uboot: Add support for U-Boot TPL
TPL is first stage bootloader, On rk3288 vyasa board due to size limitation on SPL.
Since the size of SPL can't be exceeded 0x8000 bytes in RK3288, it is not possible add new SPL features like Falcon mode or etc.
So add TPL stage so-that adding new features to SPL is possible.
- TPL: DRAM init, clocks
- SPL: MMC, falcon, etc
u-boot-tpl.bin is the file name.
---
Changes for v3, v2:
- None
boot/uboot/Config.in | 25 +++++++++++++++++++++++++ boot/uboot/uboot.mk | 5 +++++ 2 files changed, 30 insertions(+)
boot/uboot/Config.in +25 -0
@@ -342,6 +342,31 @@ config BR2_TARGET_UBOOT_SPL_NAME u-boot build. For most platform it is spl/u-boot-spl.bin but not always. It is MLO on OMAP and SPL on i.MX6 for example. +config BR2_TARGET_UBOOT_TPL + bool "Install U-Boot TPL binary image" + depends on BR2_TARGET_UBOOT_SPL + help + Install the U-Boot TPL binary image to the images + directory. + TPL is first stage bootloader, On rk3288 vyasa board due to size + limitation on SPL. + + Since the size of SPL can't be exceeded 0x8000 bytes in RK3288, + it is not possible add new SPL features like Falcon mode or etc. + + So add TPL stage so-that adding new features to SPL is possible. + - TPL: DRAM init, clocks + - SPL: MMC, falcon, etc + +config BR2_TARGET_UBOOT_TPL_NAME + string "U-Boot TPL binary image name" + default "tpl/u-boot-tpl.bin" + depends on BR2_TARGET_UBOOT_TPL + help + A space-separated list of TPL binaries, generated during + u-boot build. For most platform it is spl/u-boot-tpl.bin but + not always. + config BR2_TARGET_UBOOT_ZYNQ_IMAGE bool "Generate image for Xilinx Zynq" depends on BR2_arm
boot/uboot/uboot.mk +5 -0
@@ -242,6 +242,11 @@ define UBOOT_INSTALL_IMAGES_CMDS cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ ) ) + $(if $(BR2_TARGET_UBOOT_TPL), + $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_TPL_NAME)), \ + cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ + ) + ) $(if $(BR2_TARGET_UBOOT_ENVIMAGE), cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) | \ $(HOST_DIR)/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
Signature · 1 line
1.9.1
PATCH v3 2/2 board: Add Vyasa RK388 board support
Add Vyasa board, from rk3288 family SOC.
---
Changes for v3:
- Fix ascending order in DEVELOPERS
- Fix u-boot-dtb.img offset
- Fix extlinux.conf label
Changes for v2:
- Bump to U-Boot v2017.11
- Bump to linux-next
.gitlab-ci.yml | 1 + DEVELOPERS | 2 ++ board/amarula/vyasa/extlinux.conf | 4 +++ board/amarula/vyasa/genimage.cfg | 21 +++++++++++++ board/amarula/vyasa/post-build.sh | 10 +++++++ board/amarula/vyasa/readme.txt | 31 +++++++++++++++++++ configs/amarula_vyasa_rk3288_defconfig | 55 ++++++++++++++++++++++++++++++++++ 7 files changed, 124 insertions(+) create mode 100644 board/amarula/vyasa/extlinux.conf create mode 100644 board/amarula/vyasa/genimage.cfg create mode 100755 board/amarula/vyasa/post-build.sh create mode 100644 board/amarula/vyasa/readme.txt create mode 100644 configs/amarula_vyasa_rk3288_defconfig
.gitlab-ci.yml +1 -0
@@ -62,6 +62,7 @@ acmesystems_aria_g25_128mb_defconfig: *defconfig acmesystems_aria_g25_256mb_defconfig: *defconfig acmesystems_arietta_g25_128mb_defconfig: *defconfig acmesystems_arietta_g25_256mb_defconfig: *defconfig +amarula_vyasa_rk3288_defconfig: *defconfig arcturus_ucp1020_defconfig: *defconfig arm_foundationv8_defconfig: *defconfig arm_juno_defconfig: *defconfig
DEVELOPERS +2 -0
@@ -877,7 +877,9 @@ N: Ilias Apalodimas <[email protected]> F: package/keepalived/ N: Jagan Teki <[email protected]> +F: board/amarula/ F: board/engicam/ +F: configs/amarula_vyasa_rk3288_defconfig F: configs/engicam_imx6qdl_icore_defconfig F: configs/engicam_imx6qdl_icore_qt5_defconfig F: configs/engicam_imx6qdl_icore_rqs_defconfig
board/amarula/vyasa/extlinux.conf new file +4 -0
@@ -0,0 +1,4 @@ +label Vyasa linux-next + kernel /boot/uImage + devicetree /boot/rk3288-vyasa.dtb + append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait
board/amarula/vyasa/genimage.cfg new file +21 -0
@@ -0,0 +1,21 @@ +image sdcard.img { + hdimage { + } + + partition u-boot-tpl-spl-dtb { + in-partition-table = "no" + image = "u-boot-tpl-spl-dtb.img" + offset = 32K + } + + partition u-boot-dtb { + in-partition-table = "no" + image = "u-boot-dtb.img" + offset = 8M + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +}
board/amarula/vyasa/post-build.sh new file +10 -0
@@ -0,0 +1,10 @@ +#!/bin/sh + +MKIMAGE=$HOST_DIR/bin/mkimage + +BOARD_DIR="$(dirname $0)" + +$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-tpl.bin $BINARIES_DIR/u-boot-tpl.img +cat $BINARIES_DIR/u-boot-spl-dtb.bin $BINARIES_DIR/u-boot-tpl.img > $BINARIES_DIR/u-boot-tpl-spl-dtb.img + +install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf
board/amarula/vyasa/readme.txt new file +31 -0
@@ -0,0 +1,31 @@ +Vyasa RK3288 +============ + +Vyasa is RK3288 based Single board computer with fully supported opensource software. + +https://openedev.amarulasolutions.com/display/ODWIKI/Vyasa+RK3288 + +How to build it +=============== + + $ make amarula_vyasa_rk3288_defconfig + +Then you can edit the build options using + + $ make menuconfig + +Compile all and build rootfs image: + + $ make + +Prepare your SDCard +=================== + +Buildroot generates a ready-to-use SD card image that you can flash directly to +the card. The image will be in output/images/sdcard.img. +You can write this image directly to an SD card device (i.e. /dev/xxx): + + $ sudo dd if=output/images/sdcard.img of=/dev/xxx + $ sudo sync + +Finally, you can insert the SD card to the Vyasa RK3288 board, close J4 and boot it.
configs/amarula_vyasa_rk3288_defconfig new file +55 -0
55 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v3 1/2 uboot: Add support for U-Boot TPL
In reply to Jagan TekiHello Jagan,
Quoted 33 lines · Jagan Teki
boot/uboot/Config.in +25
-0+config BR2_TARGET_UBOOT_TPL + bool "Install U-Boot TPL binary image" + depends on BR2_TARGET_UBOOT_SPL + help + Install the U-Boot TPL binary image to the images + directory. + TPL is first stage bootloader, On rk3288 vyasa board due to size + limitation on SPL. + + Since the size of SPL can't be exceeded 0x8000 bytes in RK3288, + it is not possible add new SPL features like Falcon mode or etc. + + So add TPL stage so-that adding new features to SPL is possible. + - TPL: DRAM init, clocks + - SPL: MMC, falcon, etc + +config BR2_TARGET_UBOOT_TPL_NAME + string "U-Boot TPL binary image name" + default "tpl/u-boot-tpl.bin" + depends on BR2_TARGET_UBOOT_TPL + help + A space-separated list of TPL binaries, generated during + u-boot build. For most platform it is spl/u-boot-tpl.bin but + not always. + config BR2_TARGET_UBOOT_ZYNQ_IMAGE bool "Generate image for Xilinx Zynq" depends on BR2_armboot/uboot/uboot.mk +0
-0
boot/uboot/uboot.mk define UBOOT_INSTALL_IMAGES_CMDS · line 249
Quoted 8 lines
boot/uboot/uboot.mk +5
-0@@ -242,6 +242,11 @@ define UBOOT_INSTALL_IMAGES_CMDS cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ ) ) + $(if $(BR2_TARGET_UBOOT_TPL), + $(foreach f,$(call qstrip,$(BR2_TARGET_UBOOT_TPL_NAME)), \ + cp -dpf $(@D)/$(f) $(BINARIES_DIR)/ + ) + )
I don't think we need this additional option. Just list the TPL name within the BR2_TARGET_UBOOT_SPL_NAME option (this option accepts a space-separated list of binaries).
Of course, the Config.in help text of BR2_TARGET_UBOOT_SPL_NAME could be updated to indicate that both SPL and TPL can be specified with this option.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com