[PATCH v2 2/2] rockchip: gru: Allow setting up clocks in U-Boot proper

Kever Yang kever.yang at rock-chips.com
Fri Nov 13 11:13:46 CET 2020


On 2020/10/28 上午5:15, Alper Nebi Yasak wrote:
> Commit fe974716326c ("rockchip: rk3288: Allow setting up clocks in
> U-Boot proper") fixes some clock issues when chainloading U-Boot on
> rk3288 chromebooks. Part of that change is still available in veyron's
> board_early_init_r() function. Since chain-loading U-Boot proper from
> vendor firmware is possible on gru boards as well, do the same thing for
> them too.
>
> On rk3399, this needs to detect whether SPL was run via handoff, so
> enable that and bloblist kconfigs it needs for chromebook_bob.
>
> Signed-off-by: Alper Nebi Yasak <alpernebiyasak at gmail.com>
Reviewed-by: Kever Yang<kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
>
> Changes in v2:
> - Enable kconfigs needed for using SPL handoff
>
> v1: https://patchwork.ozlabs.org/project/uboot/patch/20201022203740.24528-2-alpernebiyasak@gmail.com/
>
>   board/google/gru/gru.c           | 23 +++++++++++++++++++++++
>   configs/chromebook_bob_defconfig |  5 +++++
>   2 files changed, 28 insertions(+)
>
> diff --git a/board/google/gru/gru.c b/board/google/gru/gru.c
> index 7dfbc3ac8676..441a1a376a9a 100644
> --- a/board/google/gru/gru.c
> +++ b/board/google/gru/gru.c
> @@ -4,6 +4,7 @@
>    */
>   
>   #include <common.h>
> +#include <dm.h>
>   #include <init.h>
>   
>   #ifdef CONFIG_SPL_BUILD
> @@ -31,3 +32,25 @@ int board_early_init_f(void)
>   	return 0;
>   }
>   #endif
> +
> +#ifndef CONFIG_SPL_BUILD
> +int board_early_init_r(void)
> +{
> +	struct udevice *clk;
> +	int ret;
> +
> +	/*
> +	 * This init is done in SPL, but when chain-loading U-Boot SPL will
> +	 * have been skipped. Allow the clock driver to check if it needs
> +	 * setting up.
> +	 */
> +	ret = uclass_get_device_by_driver(UCLASS_CLK,
> +					  DM_GET_DRIVER(clk_rk3399), &clk);
> +	if (ret) {
> +		debug("%s: CLK init failed: %d\n", __func__, ret);
> +		return ret;
> +	}
> +
> +	return 0;
> +}
> +#endif
> diff --git a/configs/chromebook_bob_defconfig b/configs/chromebook_bob_defconfig
> index 4608892fb567..73635f0d13f1 100644
> --- a/configs/chromebook_bob_defconfig
> +++ b/configs/chromebook_bob_defconfig
> @@ -19,6 +19,11 @@ CONFIG_DEBUG_UART=y
>   CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-bob.dtb"
>   # CONFIG_DISPLAY_CPUINFO is not set
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
> +CONFIG_BOARD_EARLY_INIT_R=y
> +CONFIG_BLOBLIST=y
> +CONFIG_BLOBLIST_SIZE=0x1000
> +CONFIG_BLOBLIST_ADDR=0x100000
> +CONFIG_HANDOFF=y
>   # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
>   CONFIG_SPL_STACK_R=y
>   CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000




More information about the U-Boot mailing list