Re: [PATCH] of/fdt: run soc memory setup when early_init_dt_scan_memory fails

From: Rob Herring
Date: Tue Jan 03 2023 - 19:41:12 EST



On Fri, 23 Dec 2022 12:27:47 +0100, andreas@xxxxxxxxxxx wrote:
> From: Andreas Rammhold <andreas@xxxxxxxxxxx>
>
> If memory has been found early_init_dt_scan_memory now returns 1. If
> it hasn't found any memory it will return 0, allowing other memory
> setup mechanisms to carry on.
>
> Previously early_init_dt_scan_memory always returned 0 without
> distinguishing between any kind of memory setup being done or not. Any
> code path after the early_init_dt_scan memory call in the ramips
> plat_mem_setup code wouldn't be executed anymore. Making
> early_init_dt_scan_memory the only way to initialize the memory.
>
> Some boards, including my mt7621 based Cudy X6 board, depend on memory
> initialization being done via the soc_info.mem_detect function
> pointer. Those wouldn't be able to obtain memory and panic the kernel
> during early bootup with the message "early_init_dt_alloc_memory_arch:
> Failed to allocate 12416 bytes align=0x40".
>
> Fixes: 1f012283e936 ("of/fdt: Rework early_init_dt_scan_memory() to call directly")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Andreas Rammhold <andreas@xxxxxxxxxxx>
> ---
> arch/mips/ralink/of.c | 2 +-
> drivers/of/fdt.c | 6 ++++--
> 2 files changed, 5 insertions(+), 3 deletions(-)
>

Applied, thanks!