[PATCH 08/13] rockchip: rk3288-tinker: Use common bss and stack addresses

Kever Yang kever.yang at rock-chips.com
Wed Nov 6 11:20:38 CET 2024


On 2024/11/6 00:00, Jonas Karlman wrote:
> Migrate to use common bss, stack and malloc heap size and addresses to
> unify memory use in TPL, SPL and pre-reloc.
>
> Ensure SYS_MALLOC_F_LEN and TPL variant stay at 0x2000 and is unaffected
> on other boards not changed to use common malloc heap size.
>
> ENV_OFFSET is using the default value of 0x3f8000 and is also dropped.
>
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
> Typical malloc() usage on one of my Tinker Board:
>
> TPL malloc() before relocation used 0x834 bytes (2 KB)
>
> SPL malloc() before relocation used 0x10a4 bytes (4 KB)
> SPL malloc() used 0x140 bytes (0 KB)
>
> Pre-reloc malloc() used 0xf20 bytes (3 KB)
> ---
>   arch/arm/mach-rockchip/rk3288/Kconfig |  6 +++++-
>   configs/tinker-rk3288_defconfig       | 10 ----------
>   configs/tinker-s-rk3288_defconfig     | 10 ----------
>   3 files changed, 5 insertions(+), 21 deletions(-)
>
> diff --git a/arch/arm/mach-rockchip/rk3288/Kconfig b/arch/arm/mach-rockchip/rk3288/Kconfig
> index 69a5614b449a..672d634f7fb5 100644
> --- a/arch/arm/mach-rockchip/rk3288/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3288/Kconfig
> @@ -132,6 +132,7 @@ config TARGET_ROCK2
>   config TARGET_TINKER_RK3288
>   	bool "Tinker-RK3288"
>           select BOARD_LATE_INIT
> +	select ROCKCHIP_COMMON_STACK_ADDR
>   	select TPL
>   	help
>   	  Tinker is a RK3288-based development board with 2 USB ports, HDMI,
> @@ -160,7 +161,7 @@ config SYS_SOC
>   	default "rk3288"
>   
>   config SYS_MALLOC_F_LEN
> -	default 0x2000
> +	default 0x2000 if !SPL_SHARES_INIT_SP_ADDR
>   
>   config SPL_DRIVERS_MISC
>   	default y
> @@ -177,6 +178,9 @@ config SPL_SERIAL
>   config TPL_STACK
>           default 0xff718000
>   
> +config TPL_SYS_MALLOC_F_LEN
> +	default 0x2000
> +
>   config TPL_TEXT_BASE
>   	default 0xff704000
>   
> diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig
> index 0c2fd573b67b..0f3d47e1a4fc 100644
> --- a/configs/tinker-rk3288_defconfig
> +++ b/configs/tinker-rk3288_defconfig
> @@ -5,19 +5,11 @@ CONFIG_SYS_ARCH_TIMER=y
>   CONFIG_ARCH_ROCKCHIP=y
>   CONFIG_TEXT_BASE=0x01000000
>   CONFIG_NR_DRAM_BANKS=1
> -CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
> -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x100000
>   CONFIG_SF_DEFAULT_SPEED=20000000
> -CONFIG_ENV_OFFSET=0x3F8000
>   CONFIG_DEFAULT_DEVICE_TREE="rk3288-tinker"
>   CONFIG_DM_RESET=y
> -CONFIG_SYS_MONITOR_LEN=614400
>   CONFIG_ROCKCHIP_RK3288=y
>   CONFIG_TARGET_TINKER_RK3288=y
> -CONFIG_SPL_STACK_R_ADDR=0x80000
> -CONFIG_SPL_STACK=0xff718000
> -CONFIG_SPL_STACK_R=y
> -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x2000
>   CONFIG_SYS_BOOTM_LEN=0x4000000
>   CONFIG_SYS_LOAD_ADDR=0x800800
>   CONFIG_SPL_SIZE_LIMIT=0x4b000
> @@ -31,8 +23,6 @@ CONFIG_SILENT_CONSOLE=y
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_MISC_INIT_R=y
>   CONFIG_SPL_PAD_TO=0x7f8000
> -CONFIG_SPL_NO_BSS_LIMIT=y
> -# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_I2C=y
> diff --git a/configs/tinker-s-rk3288_defconfig b/configs/tinker-s-rk3288_defconfig
> index 2269d04ee644..a013571b2575 100644
> --- a/configs/tinker-s-rk3288_defconfig
> +++ b/configs/tinker-s-rk3288_defconfig
> @@ -4,20 +4,12 @@ CONFIG_TPL_SKIP_LOWLEVEL_INIT_ONLY=y
>   CONFIG_SYS_ARCH_TIMER=y
>   CONFIG_ARCH_ROCKCHIP=y
>   CONFIG_TEXT_BASE=0x01000000
> -CONFIG_SYS_MALLOC_F_LEN=0x4000
>   CONFIG_NR_DRAM_BANKS=1
> -CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
> -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x100000
>   CONFIG_SF_DEFAULT_SPEED=20000000
>   CONFIG_DEFAULT_DEVICE_TREE="rk3288-tinker-s"
>   CONFIG_DM_RESET=y
> -CONFIG_SYS_MONITOR_LEN=614400
>   CONFIG_ROCKCHIP_RK3288=y
>   CONFIG_TARGET_TINKER_RK3288=y
> -CONFIG_SPL_STACK_R_ADDR=0x800000
> -CONFIG_SPL_STACK=0xff718000
> -CONFIG_SPL_STACK_R=y
> -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x300000
>   CONFIG_SYS_BOOTM_LEN=0x4000000
>   CONFIG_SYS_LOAD_ADDR=0x800800
>   CONFIG_SPL_SIZE_LIMIT=0x4b000
> @@ -31,8 +23,6 @@ CONFIG_SILENT_CONSOLE=y
>   CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_MISC_INIT_R=y
>   CONFIG_SPL_PAD_TO=0x7f8000
> -CONFIG_SPL_NO_BSS_LIMIT=y
> -# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_I2C=y


More information about the U-Boot mailing list