blob: e09fc418a47c89f6b95fac04bbb2624c26b6e20a [file] [log] [blame]
Tom Rini86d25242022-05-25 10:16:18 -04001/* SPDX-License-Identifier: GPL-2.0+ */
2
3#ifndef __SYSTEM_CONSTANTS_H__
4#define __SYSTEM_CONSTANTS_H__
5
Tom Rini10e6a372023-12-14 13:16:52 -05006#include <config.h>
7
Tom Rini4ddbade2022-05-25 12:16:03 -04008/*
9 * The most common case for our initial stack pointer address is to
10 * say that we have defined a static intiial ram address location and
11 * size and from that we subtract the generated global data size.
12 */
13#ifdef CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR
14#define SYS_INIT_SP_ADDR CONFIG_CUSTOM_SYS_INIT_SP_ADDR
15#else
16#ifdef CONFIG_MIPS
Tom Rini6a5dccc2022-11-16 13:10:41 -050017#define SYS_INIT_SP_ADDR (CFG_SYS_SDRAM_BASE + CFG_SYS_INIT_SP_OFFSET)
Tom Rini4ddbade2022-05-25 12:16:03 -040018#else
19#define SYS_INIT_SP_ADDR \
Tom Rini6a5dccc2022-11-16 13:10:41 -050020 (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Tom Rini4ddbade2022-05-25 12:16:03 -040021#endif
22#endif
23
Tom Rini166e3222022-05-27 12:48:32 -040024/*
25 * Typically, we have the SPL malloc pool at the end of the BSS area.
26 */
Simon Glass67e3fca2023-09-26 08:14:16 -060027#ifdef CONFIG_SPL_HAS_CUSTOM_MALLOC_START
28#define SPL_SYS_MALLOC_START CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR
Simon Glass0686b0c2023-09-26 08:14:18 -060029#elif defined(CONFIG_SPL_BSS_START_ADDR)
Simon Glass67e3fca2023-09-26 08:14:16 -060030#define SPL_SYS_MALLOC_START (CONFIG_SPL_BSS_START_ADDR + \
Tom Rini166e3222022-05-27 12:48:32 -040031 CONFIG_SPL_BSS_MAX_SIZE)
Simon Glass0686b0c2023-09-26 08:14:18 -060032#else
33/* feature not enabled: this value avoids compiler errors but is not used */
34#define SPL_SYS_MALLOC_START 0
Tom Rini166e3222022-05-27 12:48:32 -040035#endif
Simon Glass0686b0c2023-09-26 08:14:18 -060036#define SPL_SYS_MALLOC_SIZE \
37 IF_ENABLED_INT(CONFIG_SPL_SYS_MALLOC, CONFIG_SPL_SYS_MALLOC_SIZE)
Tom Rini166e3222022-05-27 12:48:32 -040038
Simon Glassad679722023-09-26 08:14:21 -060039/* deal with an optional value */
40#ifdef CONFIG_SPL_OS_BOOT
41#define SPL_PAYLOAD_ARGS_ADDR CONFIG_SPL_PAYLOAD_ARGS_ADDR
42#else
43#define SPL_PAYLOAD_ARGS_ADDR 0
44#endif
45
Sean Anderson11a4c702023-11-04 16:37:41 -040046/* Number of pages per block */
47#define SYS_NAND_BLOCK_PAGES \
48 (CONFIG_SYS_NAND_BLOCK_SIZE / CONFIG_SYS_NAND_PAGE_SIZE)
49
Tom Rini86d25242022-05-25 10:16:18 -040050#endif