
Hi Heiko,
On 04/05/2019 04:30 PM, Heiko Stuebner wrote:
Enable both rk3288-evb variants to load an ATF binary between spl and u-boot proper.
Does this the same as aarch64 boot/load flow? tpl->spl->atf->u-boot
Doing the regular spl->u-boot load of course still stays possible with this change.
Signed-off-by: Heiko Stuebner heiko@sntech.de
board/rockchip/evb_rk3288/evb-rk3288.c | 12 +++++- board/rockchip/evb_rk3288/fit_spl_atf.its | 52 +++++++++++++++++++++++
Is it possible to re-use arch/arm/mach-rockchip/make_fit_atf.py?
configs/evb-rk3288-act8846_defconfig | 9 +++- configs/evb-rk3288-rk808_defconfig | 9 +++- 4 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 board/rockchip/evb_rk3288/fit_spl_atf.its
diff --git a/board/rockchip/evb_rk3288/evb-rk3288.c b/board/rockchip/evb_rk3288/evb-rk3288.c index ec1d03c86c..05aea66db6 100644 --- a/board/rockchip/evb_rk3288/evb-rk3288.c +++ b/board/rockchip/evb_rk3288/evb-rk3288.c @@ -15,4 +15,14 @@ void board_boot_order(u32 *spl_boot_list) spl_boot_list[1] = BOOT_DEVICE_MMC1; }
-#endif \ No newline at end of file +#endif
+#ifdef CONFIG_SPL_LOAD_FIT +int board_fit_config_name_match(const char *name) +{
- /* Just empty function now - can't decide what to choose */
- debug("%s: %s\n", __func__, name);
- return 0;
+} +#endif diff --git a/board/rockchip/evb_rk3288/fit_spl_atf.its b/board/rockchip/evb_rk3288/fit_spl_atf.its new file mode 100644 index 0000000000..67aff095d6 --- /dev/null +++ b/board/rockchip/evb_rk3288/fit_spl_atf.its @@ -0,0 +1,52 @@ +/* SPDX-License-Identifier: GPL-2.0+ OR X11 */ +/*
- Copyright (C) 2017 Theobroma Systems Design und Consulting GmbH
- Minimal dts for a SPL FIT image payload.
- */
+/dts-v1/;
+/ {
- description = "FIT image with U-Boot proper, ATF bl32, DTB";
Why you name the ATF bl32, isn't it bl31?
Thanks, - Kever
- #address-cells = <1>;
- images {
uboot {
description = "U-Boot (64-bit)";
data = /incbin/("../../../u-boot-nodtb.bin");
type = "standalone";
os = "U-Boot";
arch = "arm64";
compression = "none";
load = <0x00200000>;
};
atf {
description = "ARM Trusted Firmware";
data = /incbin/("../../../bl32-rk3288.bin");
type = "firmware";
os = "arm-trusted-firmware";
arch = "arm64";
compression = "none";
load = <0x00100000>;
entry = <0x00100000>;
};
fdt {
description = "RK3288-EVB flat device-tree";
data = /incbin/("../../../u-boot.dtb");
type = "flat_dt";
compression = "none";
};
- };
- configurations {
default = "conf";
conf {
description = "Rockchip RK3288-EVB";
firmware = "atf";
loadables = "uboot";
fdt = "fdt";
};
- };
+}; diff --git a/configs/evb-rk3288-act8846_defconfig b/configs/evb-rk3288-act8846_defconfig index 9c7be78ad7..0fcdaaa697 100644 --- a/configs/evb-rk3288-act8846_defconfig +++ b/configs/evb-rk3288-act8846_defconfig @@ -1,21 +1,26 @@ CONFIG_ARM=y CONFIG_ARCH_ROCKCHIP=y -CONFIG_SYS_TEXT_BASE=0x00100000 +CONFIG_SYS_TEXT_BASE=0x00200000 CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_ROCKCHIP_RK3288=y CONFIG_TARGET_EVB_RK3288=y CONFIG_DEBUG_UART_BASE=0xff690000 CONFIG_DEBUG_UART_CLOCK=24000000 -CONFIG_SPL_STACK_R_ADDR=0x80000 +CONFIG_SPL_STACK_R_ADDR=0x600000 CONFIG_DEBUG_UART=y CONFIG_NR_DRAM_BANKS=1 # CONFIG_ANDROID_BOOT_IMAGE is not set +CONFIG_FIT=y +CONFIG_FIT_VERBOSE=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_SOURCE="board/rockchip/evb_rk3288/fit_spl_atf.its" CONFIG_SILENT_CONSOLE=y CONFIG_DEFAULT_FDT_FILE="rk3288-evb-act8846.dtb" # CONFIG_DISPLAY_CPUINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_SPL_STACK_R=y CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000 +CONFIG_SPL_ATF=y CONFIG_CMD_GPIO=y CONFIG_CMD_GPT=y CONFIG_CMD_I2C=y diff --git a/configs/evb-rk3288-rk808_defconfig b/configs/evb-rk3288-rk808_defconfig index 73d30c9958..f6b9ce12a1 100644 --- a/configs/evb-rk3288-rk808_defconfig +++ b/configs/evb-rk3288-rk808_defconfig @@ -1,21 +1,26 @@ CONFIG_ARM=y CONFIG_ARCH_ROCKCHIP=y -CONFIG_SYS_TEXT_BASE=0x00100000 +CONFIG_SYS_TEXT_BASE=0x00200000 CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_ROCKCHIP_RK3288=y CONFIG_TARGET_EVB_RK3288=y CONFIG_DEBUG_UART_BASE=0xff690000 CONFIG_DEBUG_UART_CLOCK=24000000 -CONFIG_SPL_STACK_R_ADDR=0x80000 +CONFIG_SPL_STACK_R_ADDR=0x600000 CONFIG_DEBUG_UART=y CONFIG_NR_DRAM_BANKS=1 # CONFIG_ANDROID_BOOT_IMAGE is not set +CONFIG_FIT=y +CONFIG_FIT_VERBOSE=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SPL_FIT_SOURCE="board/rockchip/evb_rk3288/fit_spl_atf.its" CONFIG_SILENT_CONSOLE=y CONFIG_DEFAULT_FDT_FILE="rk3288-evb-rk808.dtb" # CONFIG_DISPLAY_CPUINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_SPL_STACK_R=y CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000 +CONFIG_SPL_ATF=y CONFIG_CMD_GPIO=y CONFIG_CMD_GPT=y CONFIG_CMD_I2C=y