1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 3 #ifndef __SYSTEM_CONSTANTS_H__ 4 #define __SYSTEM_CONSTANTS_H__ 5 6 #include <config.h> 7 8 /* 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 17 #define SYS_INIT_SP_ADDR (CFG_SYS_SDRAM_BASE + CFG_SYS_INIT_SP_OFFSET) 18 #else 19 #define SYS_INIT_SP_ADDR \ 20 (CFG_SYS_INIT_RAM_ADDR + CFG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 21 #endif 22 #endif 23 24 /* 25 * Typically, we have the SPL malloc pool at the end of the BSS area. 26 */ 27 #ifdef CONFIG_SPL_HAS_CUSTOM_MALLOC_START 28 #define SPL_SYS_MALLOC_START CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR 29 #elif defined(CONFIG_SPL_BSS_START_ADDR) 30 #define SPL_SYS_MALLOC_START (CONFIG_SPL_BSS_START_ADDR + \ 31 CONFIG_SPL_BSS_MAX_SIZE) 32 #else 33 /* feature not enabled: this value avoids compiler errors but is not used */ 34 #define SPL_SYS_MALLOC_START 0 35 #endif 36 #define SPL_SYS_MALLOC_SIZE \ 37 IF_ENABLED_INT(CONFIG_SPL_SYS_MALLOC, CONFIG_SPL_SYS_MALLOC_SIZE) 38 39 /* 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 46 /* Number of pages per block */ 47 #define SYS_NAND_BLOCK_PAGES \ 48 (CONFIG_SYS_NAND_BLOCK_SIZE / CONFIG_SYS_NAND_PAGE_SIZE) 49 50 #endif 51