rockchip: board: fixup "ramdisk_addr_r" when bl32 is enlarged

Only when ramdisk addr is overlap with bl32 region works.

Change-Id: Ie5f4bce4f60b22cf58f0c07b9151550193a6150d
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
Joseph Chen 2019-06-05 11:21:55 +08:00 committed by Jianhong Chen
parent cd2cb2c22f
commit 124f23c66c
1 changed files with 11 additions and 0 deletions

View File

@ -326,7 +326,11 @@ int init_kernel_dtb(void)
void board_env_fixup(void)
{
struct memblock mem;
ulong u_addr_r;
phys_size_t end;
char *addr_r;
#ifdef ENV_MEM_LAYOUT_SETTINGS1
const char *env_addr0[] = {
"scriptaddr", "pxefile_addr_r",
@ -353,6 +357,13 @@ void board_env_fixup(void)
addr_r = env_get("kernel_addr_no_bl32_r");
if (addr_r)
env_set("kernel_addr_r", addr_r);
/* If bl32 is enlarged, we move ramdisk addr right behind it */
} else {
mem = param_parse_optee_mem();
end = mem.base + mem.size;
u_addr_r = env_get_ulong("ramdisk_addr_r", 16, 0);
if (u_addr_r >= mem.base && u_addr_r < end)
env_set_hex("ramdisk_addr_r", end);
}
}