Skip to contentSkip to conversation

uboot: Add support for U-Boot TPL

PATCH New Jagan Teki 2 participants 3 messages Nov 14, 2017 – Nov 15, 2017

lore
Share & tools
lore

Jagan Teki

author
#0 lore raw

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
index 8215912..43e4947 100644
@@ -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
index fdacf16..5702ca6 100644
@@ -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
author
#1 lore raw

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
index 0e69288..ba4653f 100644
@@ -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
index 942abcf..b5a2dfe 100644
@@ -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
new file mode 100644
index 0000000..9dcce7b
@@ -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
new file mode 100644
index 0000000..fa41de3
@@ -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
new file mode 100755
index 0000000..5298848
@@ -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
new file mode 100644
index 0000000..b95889e
@@ -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
#2 lore raw

PATCH v3 1/2 uboot: Add support for U-Boot TPL

In reply to Jagan Teki

Hello 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_arm
boot/uboot/uboot.mk +0 -0
index fdacf16..5702ca6 100644

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