mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-18 18:59:44 +00:00
2ef99d419b
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 <andre.przywara@arm.com> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
75 lines
1.3 KiB
Bash
Executable file
75 lines
1.3 KiB
Bash
Executable file
#!/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 <dt_name> [<dt_name> [<dt_name] ...]
|
|
|
|
[ -z "$BL31" ] && BL31="bl31.bin"
|
|
|
|
cat << __HEADER_EOF
|
|
/dts-v1/;
|
|
|
|
/ {
|
|
description = "Configuration to load ATF before U-Boot";
|
|
#address-cells = <1>;
|
|
|
|
images {
|
|
uboot@1 {
|
|
description = "U-Boot (64-bit)";
|
|
data = /incbin/("u-boot-nodtb.bin");
|
|
type = "standalone";
|
|
arch = "arm64";
|
|
compression = "none";
|
|
load = <0x4a000000>;
|
|
};
|
|
atf@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@1";
|
|
|
|
__CONF_HEADER_EOF
|
|
|
|
cnt=1
|
|
for dtname in $*
|
|
do
|
|
cat << __CONF_SECTION_EOF
|
|
config@$cnt {
|
|
description = "$(basename $dtname .dtb)";
|
|
firmware = "uboot@1";
|
|
loadables = "atf@1";
|
|
fdt = "fdt@$cnt";
|
|
};
|
|
__CONF_SECTION_EOF
|
|
cnt=$((cnt+1))
|
|
done
|
|
|
|
cat << __ITS_EOF
|
|
};
|
|
};
|
|
__ITS_EOF
|