[U-Boot] [PATCH 8/8] rockchip: rk3288: make both evb variants use atf

Kever Yang kever.yang at rock-chips.com
Tue May 7 02:28:05 UTC 2019


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 at 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





More information about the U-Boot mailing list