Hi Jonas,

On 2026-08-03T19:09:38, Jonas Karlman <[email protected]> wrote:
> rockchip: rk3506: Update ENV_MEM_LAYOUT_SETTINGS
>
> The RK3506G1 has 64 MiB integrated DDR2, the RK3506G2 has 128 MiB
> integrated DDR3 and the RK3506B support external memory up to 1 GiB.

> Change the default load addresses to also work on SoC variants with
> limited memory, keep all default addresses in the 0-64 MiB range.

The addresses fit in 0-64 MiB, but kernel_comp_addr_r (48 MiB) +
kernel_comp_size (32 MiB) reaches 80 MiB, past the end of DDR on the
RK3506G1. Does this need separate values for each SoC ?

>
> Current memory layout cause issues using compressed kernels or ramdisk
> due to the default load addresses being used.
>
> Change the default load addresses to also work on SoC variants with
> limited memory, keep all default addresses in the 0-64 MiB range.
>
>                          old             new
>   scriptaddr            5 MiB           2 MiB
>   pxefile_addr_r        6 MiB           1 MiB
>   kernel_addr_r         32.5 MiB        8 MiB
>   kernel_comp_addr_r    128 MiB         48 MiB
>   fdt_addr_r            30.5 MiB        4 MiB
>   fdtoverlay_addr_r     31.5 MiB        6 MiB
>   ramdisk_addr_r        96 MiB          48 MiB
>
> [...]
>
> include/configs/rk3506_common.h | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)

> diff --git a/include/configs/rk3506_common.h b/include/configs/rk3506_common.h
> @@ -18,15 +18,15 @@
> -     "kernel_comp_addr_r=0x08000000\0"       \
> -     "ramdisk_addr_r=0x06000000\0"           \
> +     "kernel_comp_addr_r=0x03000000\0"       \
> +     "ramdisk_addr_r=0x03000000\0"           \
>       "kernel_comp_size=0x2000000\0"

kernel_comp_addr_r and ramdisk_addr_r are both at 0x03000000, so
decompression will scribble over an already-loaded ramdisk. Every
other rockchip *_common.h keeps these apart. Please can you space them
so the kernel_comp window (0x03000000 + kernel_comp_size = 0x05000000)
does not overlap the ramdisk?

Regards,
Simon

Reply via email to