blob: d688629f119b095166a28f93363f28878a765a38 [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 Rini4ddbade2022-05-25 12:16:03 -04006/*
7 * The most common case for our initial stack pointer address is to
8 * say that we have defined a static intiial ram address location and
9 * size and from that we subtract the generated global data size.
10 */
11#ifdef CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR
12#define SYS_INIT_SP_ADDR CONFIG_CUSTOM_SYS_INIT_SP_ADDR
13#else
14#ifdef CONFIG_MIPS
Tom Rini6a5dccc2022-11-16 13:10:41 -050015#define SYS_INIT_SP_ADDR (CFG_SYS_SDRAM_BASE + CFG_SYS_INIT_SP_OFFSET)
Tom Rini4ddbade2022-05-25 12:16:03 -040016#else
17#define SYS_INIT_SP_ADDR \
Tom Rini6a5dccc2022-11-16 13:10:41 -050018 (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Tom Rini4ddbade2022-05-25 12:16:03 -040019#endif
20#endif
21
Tom Rini166e3222022-05-27 12:48:32 -040022/*
23 * Typically, we have the SPL malloc pool at the end of the BSS area.
24 */
Simon Glass67e3fca2023-09-26 08:14:16 -060025#ifdef CONFIG_SPL_HAS_CUSTOM_MALLOC_START
26#define SPL_SYS_MALLOC_START CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR
Simon Glass0686b0c2023-09-26 08:14:18 -060027#elif defined(CONFIG_SPL_BSS_START_ADDR)
Simon Glass67e3fca2023-09-26 08:14:16 -060028#define SPL_SYS_MALLOC_START (CONFIG_SPL_BSS_START_ADDR + \
Tom Rini166e3222022-05-27 12:48:32 -040029 CONFIG_SPL_BSS_MAX_SIZE)
Simon Glass0686b0c2023-09-26 08:14:18 -060030#else
31/* feature not enabled: this value avoids compiler errors but is not used */
32#define SPL_SYS_MALLOC_START 0
Tom Rini166e3222022-05-27 12:48:32 -040033#endif
Simon Glass0686b0c2023-09-26 08:14:18 -060034#define SPL_SYS_MALLOC_SIZE \
35 IF_ENABLED_INT(CONFIG_SPL_SYS_MALLOC, CONFIG_SPL_SYS_MALLOC_SIZE)
Tom Rini166e3222022-05-27 12:48:32 -040036
Simon Glassad679722023-09-26 08:14:21 -060037/* deal with an optional value */
38#ifdef CONFIG_SPL_OS_BOOT
39#define SPL_PAYLOAD_ARGS_ADDR CONFIG_SPL_PAYLOAD_ARGS_ADDR
40#else
41#define SPL_PAYLOAD_ARGS_ADDR 0
42#endif
43
Sean Anderson11a4c702023-11-04 16:37:41 -040044/* Number of pages per block */
45#define SYS_NAND_BLOCK_PAGES \
46 (CONFIG_SYS_NAND_BLOCK_SIZE / CONFIG_SYS_NAND_PAGE_SIZE)
47
Tom Rini86d25242022-05-25 10:16:18 -040048#endif