mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00

With the stack and text base used by U-Boot SPL and proper on RK3328 there is a high likelihood of overlapping when U-Boot proper + FDT nears or exceeded 1 MiB in size. Currently the following memory layout is typically used on RK3328: [ 0, 256K) - SPL binary [ 256K, 2M) - TF-A / reserved [ 2M, +X) - U-Boot proper binary (TEXT_BASE) [ -X, 3M) - U-Boot proper pre-reloc stack (CUSTOM_SYS_INIT_SP_ADDR) [ -8K, 3M) - pre-reloc malloc heap (SYS_MALLOC_F_LEN) [ -X, 4M) - SPL pre-reloc stack (SPL_STACK) [ -8K, 4M) - pre-reloc malloc heap (SPL_SYS_MALLOC_F_LEN) [ -X, 6M) - SPL reloc stack (SPL_STACK_R_ADDR) [ 5M, 6M) - reloc malloc heap (SPL_STACK_R_MALLOC_SIMPLE_LEN) [ 32M, +8K) - SPL bss (SPL_BSS_START_ADDR, SPL_BSS_MAX_SIZE) SPL can safely load U-Boot proper + FDT to [2M, 4M-8K) with this layout. However, the stack at [-X, 3M) used during U-Boot proper pre-reloc is restricting the safe size of U-Boot proper + FDT to be less than 1 MiB. Migrate to use common bss, stack and malloc heap size and addresses to fix this restriction and allow for a larger U-Boot proper image size. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
41 lines
744 B
Text
41 lines
744 B
Text
if ROCKCHIP_RK3328
|
|
|
|
choice
|
|
prompt "RK3328 board select"
|
|
|
|
config TARGET_EVB_RK3328
|
|
bool "RK3328 evaluation board"
|
|
help
|
|
RK3328evb is a evaluation board for Rockchip rk3328,
|
|
with full function and phisical connectors support like
|
|
usb2.0 host ports, LVDS, JTAG, MAC, SDcard, HDMI, USB-2-serial...
|
|
|
|
endchoice
|
|
|
|
config ROCKCHIP_BOOT_MODE_REG
|
|
default 0xff1005c8
|
|
|
|
config ROCKCHIP_STIMER_BASE
|
|
default 0xff1d0020
|
|
|
|
config SYS_SOC
|
|
default "rk3328"
|
|
|
|
config ROCKCHIP_COMMON_STACK_ADDR
|
|
default y
|
|
|
|
config TPL_LDSCRIPT
|
|
default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
|
|
|
|
config TPL_TEXT_BASE
|
|
default 0xff091000
|
|
|
|
config TPL_STACK
|
|
default 0xff098000
|
|
|
|
config TPL_SYS_MALLOC_F_LEN
|
|
default 0x800
|
|
|
|
source "board/rockchip/evb_rk3328/Kconfig"
|
|
|
|
endif
|