mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 20:58:22 +00:00
rockchip: Use common bss and stack addresses on RK3308
Currently the following memory layout is typically used on RK3308: [ 0, 256K) - SPL binary [ 256K, 2M) - TF-A / reserved [ -X, 4M) - SPL pre-reloc stack (SPL_STACK) [ -8K, 4M) - pre-reloc malloc heap (SPL_SYS_MALLOC_F_LEN) [ 4M, +8K) - SPL bss (SPL_BSS_START_ADDR, SPL_BSS_MAX_SIZE) [ 6M, +X) - U-Boot proper binary (TEXT_BASE) [ -X, 8M) - U-Boot proper pre-reloc stack (CUSTOM_SYS_INIT_SP_ADDR) [ -8K, 8M) - pre-reloc malloc heap (SYS_MALLOC_F_LEN) [ -X, 12M) - SPL reloc stack (SPL_STACK_R_ADDR) [ 11M, 12M) - reloc malloc heap (SPL_STACK_R_MALLOC_SIMPLE_LEN) SPL can safely load U-Boot proper + FDT to [6M, 8M-8K) with this layout. Migrate to use common bss, stack and malloc heap size and addresses to remove this size limitation and extend the malloc heap size being used. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
parent
008ba0d56d
commit
41098d2e3e
5 changed files with 6 additions and 42 deletions
2
Kconfig
2
Kconfig
|
@ -265,7 +265,7 @@ config SYS_MALLOC_F_LEN
|
||||||
hex "Size of malloc() pool before relocation"
|
hex "Size of malloc() pool before relocation"
|
||||||
depends on SYS_MALLOC_F
|
depends on SYS_MALLOC_F
|
||||||
default 0x400 if M68K || PPC || ROCKCHIP_PX30 || ROCKCHIP_RK3036 || \
|
default 0x400 if M68K || PPC || ROCKCHIP_PX30 || ROCKCHIP_RK3036 || \
|
||||||
ROCKCHIP_RK3308 || ROCKCHIP_RV1108
|
ROCKCHIP_RV1108
|
||||||
default 0x600 if ARCH_ZYNQMP_R5 || ARCH_ZYNQMP
|
default 0x600 if ARCH_ZYNQMP_R5 || ARCH_ZYNQMP
|
||||||
default 0x800 if ARCH_ZYNQ || ROCKCHIP_RK3128 || ROCKCHIP_RK3188 || \
|
default 0x800 if ARCH_ZYNQ || ROCKCHIP_RK3128 || ROCKCHIP_RK3188 || \
|
||||||
ROCKCHIP_RK322X || X86
|
ROCKCHIP_RK322X || X86
|
||||||
|
|
|
@ -17,8 +17,11 @@ config ROCKCHIP_STIMER_BASE
|
||||||
config SYS_SOC
|
config SYS_SOC
|
||||||
default "rk3308"
|
default "rk3308"
|
||||||
|
|
||||||
config SYS_MALLOC_F_LEN
|
config ROCKCHIP_COMMON_STACK_ADDR
|
||||||
default 0x400
|
default y
|
||||||
|
|
||||||
|
config TEXT_BASE
|
||||||
|
default 0x00600000
|
||||||
|
|
||||||
config SPL_SERIAL
|
config SPL_SERIAL
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -2,19 +2,11 @@ CONFIG_ARM=y
|
||||||
CONFIG_SKIP_LOWLEVEL_INIT=y
|
CONFIG_SKIP_LOWLEVEL_INIT=y
|
||||||
CONFIG_COUNTER_FREQUENCY=24000000
|
CONFIG_COUNTER_FREQUENCY=24000000
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_TEXT_BASE=0x00600000
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
|
||||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x800000
|
|
||||||
CONFIG_DEFAULT_DEVICE_TREE="rk3308-evb"
|
CONFIG_DEFAULT_DEVICE_TREE="rk3308-evb"
|
||||||
CONFIG_DM_RESET=y
|
CONFIG_DM_RESET=y
|
||||||
CONFIG_ROCKCHIP_RK3308=y
|
CONFIG_ROCKCHIP_RK3308=y
|
||||||
CONFIG_SPL_DRIVERS_MISC=y
|
CONFIG_SPL_DRIVERS_MISC=y
|
||||||
CONFIG_TARGET_EVB_RK3308=y
|
CONFIG_TARGET_EVB_RK3308=y
|
||||||
CONFIG_SPL_STACK_R_ADDR=0xc00000
|
|
||||||
CONFIG_SPL_STACK=0x400000
|
|
||||||
CONFIG_DEBUG_UART_BASE=0xFF0C0000
|
CONFIG_DEBUG_UART_BASE=0xFF0C0000
|
||||||
CONFIG_DEBUG_UART_CLOCK=24000000
|
CONFIG_DEBUG_UART_CLOCK=24000000
|
||||||
CONFIG_SYS_LOAD_ADDR=0xc00800
|
CONFIG_SYS_LOAD_ADDR=0xc00800
|
||||||
|
@ -28,11 +20,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
CONFIG_SPL_MAX_SIZE=0x20000
|
CONFIG_SPL_MAX_SIZE=0x20000
|
||||||
CONFIG_SPL_PAD_TO=0x7f8000
|
CONFIG_SPL_PAD_TO=0x7f8000
|
||||||
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
|
|
||||||
CONFIG_SPL_BSS_START_ADDR=0x400000
|
|
||||||
CONFIG_SPL_BSS_MAX_SIZE=0x2000
|
|
||||||
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
|
|
||||||
CONFIG_SPL_STACK_R=y
|
|
||||||
# CONFIG_CMD_BDI is not set
|
# CONFIG_CMD_BDI is not set
|
||||||
# CONFIG_CMD_CONSOLE is not set
|
# CONFIG_CMD_CONSOLE is not set
|
||||||
# CONFIG_CMD_ELF is not set
|
# CONFIG_CMD_ELF is not set
|
||||||
|
|
|
@ -2,19 +2,11 @@ CONFIG_ARM=y
|
||||||
CONFIG_SKIP_LOWLEVEL_INIT=y
|
CONFIG_SKIP_LOWLEVEL_INIT=y
|
||||||
CONFIG_COUNTER_FREQUENCY=24000000
|
CONFIG_COUNTER_FREQUENCY=24000000
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_TEXT_BASE=0x00600000
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
|
||||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x800000
|
|
||||||
CONFIG_DEFAULT_DEVICE_TREE="rk3308-roc-cc"
|
CONFIG_DEFAULT_DEVICE_TREE="rk3308-roc-cc"
|
||||||
CONFIG_DM_RESET=y
|
CONFIG_DM_RESET=y
|
||||||
CONFIG_ROCKCHIP_RK3308=y
|
CONFIG_ROCKCHIP_RK3308=y
|
||||||
CONFIG_SPL_DRIVERS_MISC=y
|
CONFIG_SPL_DRIVERS_MISC=y
|
||||||
CONFIG_TARGET_ROC_RK3308_CC=y
|
CONFIG_TARGET_ROC_RK3308_CC=y
|
||||||
CONFIG_SPL_STACK_R_ADDR=0xc00000
|
|
||||||
CONFIG_SPL_STACK=0x400000
|
|
||||||
CONFIG_DEBUG_UART_BASE=0xFF0C0000
|
CONFIG_DEBUG_UART_BASE=0xFF0C0000
|
||||||
CONFIG_DEBUG_UART_CLOCK=24000000
|
CONFIG_DEBUG_UART_CLOCK=24000000
|
||||||
CONFIG_SYS_LOAD_ADDR=0xc00800
|
CONFIG_SYS_LOAD_ADDR=0xc00800
|
||||||
|
@ -28,11 +20,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
CONFIG_SPL_MAX_SIZE=0x20000
|
CONFIG_SPL_MAX_SIZE=0x20000
|
||||||
CONFIG_SPL_PAD_TO=0x7f8000
|
CONFIG_SPL_PAD_TO=0x7f8000
|
||||||
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
|
|
||||||
CONFIG_SPL_BSS_START_ADDR=0x400000
|
|
||||||
CONFIG_SPL_BSS_MAX_SIZE=0x2000
|
|
||||||
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
|
|
||||||
CONFIG_SPL_STACK_R=y
|
|
||||||
# CONFIG_CMD_BDI is not set
|
# CONFIG_CMD_BDI is not set
|
||||||
# CONFIG_CMD_CONSOLE is not set
|
# CONFIG_CMD_CONSOLE is not set
|
||||||
# CONFIG_CMD_ELF is not set
|
# CONFIG_CMD_ELF is not set
|
||||||
|
|
|
@ -2,20 +2,12 @@ CONFIG_ARM=y
|
||||||
CONFIG_SKIP_LOWLEVEL_INIT=y
|
CONFIG_SKIP_LOWLEVEL_INIT=y
|
||||||
CONFIG_COUNTER_FREQUENCY=24000000
|
CONFIG_COUNTER_FREQUENCY=24000000
|
||||||
CONFIG_ARCH_ROCKCHIP=y
|
CONFIG_ARCH_ROCKCHIP=y
|
||||||
CONFIG_TEXT_BASE=0x00600000
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
||||||
CONFIG_SPL_LIBCOMMON_SUPPORT=y
|
|
||||||
CONFIG_SPL_LIBGENERIC_SUPPORT=y
|
|
||||||
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
|
|
||||||
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x800000
|
|
||||||
CONFIG_DEFAULT_DEVICE_TREE="rk3308-rock-pi-s"
|
CONFIG_DEFAULT_DEVICE_TREE="rk3308-rock-pi-s"
|
||||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||||
CONFIG_DM_RESET=y
|
CONFIG_DM_RESET=y
|
||||||
CONFIG_ROCKCHIP_RK3308=y
|
CONFIG_ROCKCHIP_RK3308=y
|
||||||
CONFIG_SPL_DRIVERS_MISC=y
|
CONFIG_SPL_DRIVERS_MISC=y
|
||||||
CONFIG_TARGET_EVB_RK3308=y
|
CONFIG_TARGET_EVB_RK3308=y
|
||||||
CONFIG_SPL_STACK_R_ADDR=0xc00000
|
|
||||||
CONFIG_SPL_STACK=0x400000
|
|
||||||
CONFIG_DEBUG_UART_BASE=0xFF0A0000
|
CONFIG_DEBUG_UART_BASE=0xFF0A0000
|
||||||
CONFIG_DEBUG_UART_CLOCK=24000000
|
CONFIG_DEBUG_UART_CLOCK=24000000
|
||||||
# CONFIG_DEBUG_UART_BOARD_INIT is not set
|
# CONFIG_DEBUG_UART_BOARD_INIT is not set
|
||||||
|
@ -29,11 +21,6 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
||||||
# CONFIG_DISPLAY_CPUINFO is not set
|
# CONFIG_DISPLAY_CPUINFO is not set
|
||||||
CONFIG_SPL_MAX_SIZE=0x20000
|
CONFIG_SPL_MAX_SIZE=0x20000
|
||||||
CONFIG_SPL_PAD_TO=0x7f8000
|
CONFIG_SPL_PAD_TO=0x7f8000
|
||||||
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
|
|
||||||
CONFIG_SPL_BSS_START_ADDR=0x400000
|
|
||||||
CONFIG_SPL_BSS_MAX_SIZE=0x2000
|
|
||||||
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
|
|
||||||
CONFIG_SPL_STACK_R=y
|
|
||||||
# CONFIG_CMD_BDI is not set
|
# CONFIG_CMD_BDI is not set
|
||||||
# CONFIG_CMD_CONSOLE is not set
|
# CONFIG_CMD_CONSOLE is not set
|
||||||
# CONFIG_CMD_ELF is not set
|
# CONFIG_CMD_ELF is not set
|
||||||
|
|
Loading…
Add table
Reference in a new issue