blob: dca6a86b01f5577b5c7d82dda9abe20d6343a7b2 [file] [log] [blame]
Tom Rini42c61412022-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 Rinieaf6ea62022-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 Rini65cc0e22022-11-16 13:10:41 -050015#define SYS_INIT_SP_ADDR (CFG_SYS_SDRAM_BASE + CFG_SYS_INIT_SP_OFFSET)
Tom Rinieaf6ea62022-05-25 12:16:03 -040016#else
17#define SYS_INIT_SP_ADDR \
Tom Rini65cc0e22022-11-16 13:10:41 -050018 (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Tom Rinieaf6ea62022-05-25 12:16:03 -040019#endif
20#endif
21
Tom Rini10f6e4d2022-05-27 12:48:32 -040022/*
23 * Typically, we have the SPL malloc pool at the end of the BSS area.
24 */
Simon Glass82e26e02023-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 Glass52779872023-09-26 08:14:18 -060027#elif defined(CONFIG_SPL_BSS_START_ADDR)
Simon Glass82e26e02023-09-26 08:14:16 -060028#define SPL_SYS_MALLOC_START (CONFIG_SPL_BSS_START_ADDR + \
Tom Rini10f6e4d2022-05-27 12:48:32 -040029 CONFIG_SPL_BSS_MAX_SIZE)
Simon Glass52779872023-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 Rini10f6e4d2022-05-27 12:48:32 -040033#endif
Simon Glass52779872023-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 Rini10f6e4d2022-05-27 12:48:32 -040036
Tom Rini42c61412022-05-25 10:16:18 -040037#endif