
On 08/02/2022 21:50, Simon Glass wrote:
Add the required binman images to replace the Makefile rules which are currently used. This includes subsuming:
- tpl/u-boot-tpl-rockchip.bin if TPL is enabled
- idbloader.img if either or both of SPL and TPL are enabled
- u-boot.itb2 if SPL_FIT is enabled
- u-boot-rockchip.bin if SPL is used, either using u-boot.itb2 when SPL_FIT is enabled or u-boot.img when it isn't
For now u-boot.itb2 is used as the FIT filename to avoid conflicting with the current u-boot.itb file. This will be updated in a future patch.
I don't see a u-boot.itb2 anywhere. Something from an earlier revision or does binman append the number to avoid overwriting existing files?
Note that the intermediate files are dropped with binman, since it producing everything in one pass. This means that tpl/u-boot-tpl-rockchip.bin is not created, for example.
Note that for some 32-bit rk3288 boards, rockchip-optee.dtsi is included.
Signed-off-by: Simon Glass sjg@chromium.org
arch/arm/dts/rockchip-u-boot.dtsi | 84 ++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 2 deletions(-)
diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi index eae3ee715d..6246ca12b7 100644 --- a/arch/arm/dts/rockchip-u-boot.dtsi +++ b/arch/arm/dts/rockchip-u-boot.dtsi @@ -17,13 +17,93 @@ filename = "u-boot-rockchip.bin"; pad-byte = <0xff>;
blob {
filename = "idbloader.img";
+#ifdef CONFIG_TPL
mkimage {
args = "-n", CONFIG_SYS_SOC, "-T rksd";
u-boot-tpl {
};
};
};u-boot-spl {
+#elif defined(CONFIG_SPL) /* SPL only */
mkimage {
args = "-n", CONFIG_SYS_SOC, "-T rksd";
u-boot-spl {
};
};
+#endif +#if defined(CONFIG_SPL_FIT) && defined(CONFIG_ARM64)
fit: fit {
description = "FIT image for U-Boot with bl31 (TF-A)";
#address-cells = <1>;
fit,fdt-list = "of-list";
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
images {
u-boot {
description = "U-Boot (64-bit)";
type = "standalone";
os = "U-Boot";
arch = "arm64";
compression = "none";
load = <CONFIG_SYS_TEXT_BASE>;
u-boot-nodtb {
};
};
@atf-SEQ {
fit,operation = "split-elf";
description = "ARM Trusted Firmware";
type = "firmware";
arch = "arm64";
os = "arm-trusted-firmware";
compression = "none";
fit,load;
fit,entry;
fit,data;
atf-bl31 {
};
};
@tee-SEQ {
fit,operation = "split-elf";
description = "TEE";
type = "tee";
arch = "arm64";
os = "tee";
compression = "none";
fit,load;
fit,entry;
fit,data;
op-tee {
};
};
@fdt-SEQ {
description = "fdt-NAME";
compression = "none";
type = "flat_dt";
};
};
configurations {
default = "@config-DEFAULT-SEQ";
@config-SEQ {
description = "NAME.dtb";
fdt = "fdt-SEQ";
firmware = "u-boot";
fit,loadables;
};
};
};
+#else
This should be done for the SPI ROM image in rk3399-u-boot.dtsi as well, and with that my chromebook_kevin can boot into Linux or EFI GRUB quite nicely.
I changed the "rksd" parts to "rkspi", and as I wrote on a different patch I had to change the firmware and loadables like so (where I wasn't passing in an op-tee at all):
configurations { default = "@config-DEFAULT-SEQ"; @config-SEQ { description = "NAME.dtb"; fdt = "fdt-SEQ"; firmware = "atf-1"; loadables = "u-boot", "atf-2", "atf-3"; }; };
I also had to use the same offset as the u-boot-img there, so maybe this needs the offset below as well.
u-boot-img { offset = <CONFIG_SPL_PAD_TO>; };
+#endif /* CONFIG_ARM64 */ }; }; #endif