From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Date: Wed, 26 Apr 2017 01:32:46 +0100 Subject: [U-Boot] [PATCH v4 14/20] sunxi: 64-bit SoCs: introduce FIT generator script In-Reply-To: <1493166772-24598-1-git-send-email-andre.przywara@arm.com> References: <1493166772-24598-1-git-send-email-andre.przywara@arm.com> Message-ID: <1493166772-24598-15-git-send-email-andre.przywara@arm.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Now that the Makefile can call a generator script to build a more advanced FIT image, let's use this feature to address the needs of Allwinner boards with 64-bit SoCs (A64 and H5). The (DTB stripped) U-Boot binary and the ATF are static, but we allow an arbitrary number of supported device trees to be passed. The script enters both a DT entry in the /images node and the respective subnode in /configurations to support all listed DTBs. The location of the bl31.bin image from the ARM Trusted Firmware build can either by specified via the BL31 environment variable. If this is not set, the script looks for bl31.bin in U-Boot's build directory (which could be a symlink as well). Signed-off-by: Andre Przywara Reviewed-by: Simon Glass Acked-by: Maxime Ripard --- board/sunxi/mksunxi_fit_atf.sh | 75 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 board/sunxi/mksunxi_fit_atf.sh diff --git a/board/sunxi/mksunxi_fit_atf.sh b/board/sunxi/mksunxi_fit_atf.sh new file mode 100755 index 0000000..ecea1b8 --- /dev/null +++ b/board/sunxi/mksunxi_fit_atf.sh @@ -0,0 +1,75 @@ +#!/bin/sh +# +# script to generate FIT image source for 64-bit sunxi boards with +# ARM Trusted Firmware and multiple device trees (given on the command line) +# +# usage: $0 [ [; + + images { + uboot at 1 { + description = "U-Boot (64-bit)"; + data = /incbin/("u-boot-nodtb.bin"); + type = "standalone"; + arch = "arm64"; + compression = "none"; + load = <0x4a000000>; + }; + atf at 1 { + description = "ARM Trusted Firmware"; + data = /incbin/("$BL31"); + type = "firmware"; + arch = "arm64"; + compression = "none"; + load = <0x44000>; + entry = <0x44000>; + }; +__HEADER_EOF + +cnt=1 +for dtname in $* +do + cat << __FDT_IMAGE_EOF + fdt@$cnt { + description = "$(basename $dtname .dtb)"; + data = /incbin/("$dtname"); + type = "flat_dt"; + compression = "none"; + }; +__FDT_IMAGE_EOF + cnt=$((cnt+1)) +done + +cat << __CONF_HEADER_EOF + }; + configurations { + default = "config at 1"; + +__CONF_HEADER_EOF + +cnt=1 +for dtname in $* +do + cat << __CONF_SECTION_EOF + config@$cnt { + description = "$(basename $dtname .dtb)"; + firmware = "uboot at 1"; + loadables = "atf@1"; + fdt = "fdt@$cnt"; + }; +__CONF_SECTION_EOF + cnt=$((cnt+1)) +done + +cat << __ITS_EOF + }; +}; +__ITS_EOF -- 2.8.2