[PATCH v2 1/2] rockchip: spl: do full dram_init instead of only probing

Kever Yang kever.yang at rock-chips.com
Sun May 31 14:51:58 CEST 2020


On 2020/5/26 上午1:57, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner at theobroma-systems.com>
>
> Parts of later SPL may need RAM information as well, so do full
> dram_init() call, which includes the existing dram probing but also
> initializes the ram information in gd.
>
> dram_init() from sdram.c does the following steps:
> - uclass_get_device(UCLASS_RAM, ...) like the current code
> - ret = ram_get_info(dev, &ram);
> - gd->ram_size = ram.size;
>
> CONFIG_SPL_RAM already makes sure that sdram.c gets compiled
> and thus no other variant of dram_init() can exist.
>
> So it's the same functionality as before and only adds that the
> SPL now aquires knowledge about the amount of available ram,
> which it didn't know about before.
>
> Signed-off-by: Heiko Stuebner <heiko.stuebner at theobroma-systems.com>

Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
> changes in v2:
> - dropped changeid
> - expanded commit message on how this does not change functionality
>
>   arch/arm/mach-rockchip/spl.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-rockchip/spl.c b/arch/arm/mach-rockchip/spl.c
> index 0b76af6080..0eda2c3485 100644
> --- a/arch/arm/mach-rockchip/spl.c
> +++ b/arch/arm/mach-rockchip/spl.c
> @@ -135,13 +135,15 @@ void board_init_f(ulong dummy)
>   	/* Init ARM arch timer in arch/arm/cpu/armv7/arch_timer.c */
>   	timer_init();
>   #endif
> -#if !defined(CONFIG_TPL) || defined(CONFIG_SPL_OS_BOOT)
> +#if !defined(CONFIG_TPL) || defined(CONFIG_SPL_RAM)
>   	debug("\nspl:init dram\n");
> -	ret = uclass_get_device(UCLASS_RAM, 0, &dev);
> +	ret = dram_init();
>   	if (ret) {
>   		printf("DRAM init failed: %d\n", ret);
>   		return;
>   	}
> +	gd->ram_top = gd->ram_base + get_effective_memsize();
> +	gd->ram_top = board_get_usable_ram_top(gd->ram_size);
>   #endif
>   	preloader_console_init();
>   }




More information about the U-Boot mailing list