The RK3328 has 36 KiB SRAM at [0xff090000, 0xff099000). With 4 KiB of
the initial SRAM typically reserved for BootROM during early boot.

BootROM will load init code of up to 32 KiB (0x8000 bytes) to address
0xff091000 in SRAM, before jumping to it.

BootROM typically jumps to init code with following registers:

  x0: 00000000 ff091004
  x1: 00000000 32334b52
  x2: 00000000 ff520000
  x3: 00000000 ff500000

  sp: 00000000 ff090f50

mkimage is enforcing a 30 KiB init code size limit for RK3328.
However, the BootRAM can load up to 32 KiB of init code.

Change the init code size limit to 32 KiB using the <size> - <reserved>
pattern to closer match the actual limit of BootROM on RK3328.

Signed-off-by: Jonas Karlman <[email protected]>
---
 tools/rkcommon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/rkcommon.c b/tools/rkcommon.c
index ccd1cb5b1ef6..cb904db20b4e 100644
--- a/tools/rkcommon.c
+++ b/tools/rkcommon.c
@@ -145,7 +145,7 @@ static struct spl_info spl_infos[] = {
        { "rk322x", "RK32", 0x8000 - 0x1000, false, RK_HEADER_V1 },
        { "rk3288", "RK32", 0x8000, false, RK_HEADER_V1 },
        { "rk3308", "RK33", 0x40000 - 0x1000, false, RK_HEADER_V1 },
-       { "rk3328", "RK32", 0x8000 - 0x800, false, RK_HEADER_V1 },
+       { "rk3328", "RK32", 0x9000 - 0x1000, false, RK_HEADER_V1 },
        { "rk3368", "RK33", 0x8000 - 0x1000, false, RK_HEADER_V1 },
        { "rk3399", "RK33", 0x30000 - 0x2000, false, RK_HEADER_V1 },
        { "rk3506", "RK35", 0xC000 - 0x1000, false, RK_HEADER_V2 },
-- 
2.55.0

Reply via email to