1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
6 #ifndef _CONFIG_IOT_DEVKIT_H_
7 #define _CONFIG_IOT_DEVKIT_H_
9 #include <linux/sizes.h>
14 * eFlash: 0x0000_0000 - 0x0008_0000 (512K)
15 * ICCM: 0x2000_0000 - 0x2004_0000 (256K)
16 * SRAM: 0x3000_0000 - 0x3002_0000 (128K)
17 * DCCM: 0x8000_0000 - 0x8002_0000 (128K)
18 * Note: only data goes here, as IFQ cannot fetch instructions from DCCM
23 * +-----------+----------+---------------------+-------------+
24 * | <-- Stack | .data | Malloc | Environment |
25 * +-----------+----------+---------------------+-------------+
26 * : : : :\___________/
28 * : : : : CONFIG_ENV_SIZE
29 * : : \____________________/
31 * : : CONFIG_SYS_MALLOC_LEN
33 * : Specified explicitly by CONFIG_SYS_INIT_SP_ADDR
35 * Specified explicitly by CONFIG_SYS_SDRAM_BASE
38 * - Stack starts from CONFIG_SYS_INIT_SP_ADDR and grows down,
39 * i.e. towards CONFIG_SYS_SDRAM_BASE but nothing stops it from crossing
40 * that CONFIG_SYS_SDRAM_BASE in which case data won't be really saved on
41 * stack any longer and values popped from stack will contain garbage
42 * leading to unexpected behavior, typically but not limited to:
43 * - "Returning" back to bogus caller function
44 * - Reading data from weird addresses
47 #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
49 #define SRAM_BASE 0x30000000
50 #define SRAM_SIZE SZ_128K
52 #define DCCM_BASE 0x80000000
53 #define DCCM_SIZE SZ_128K
55 #define CONFIG_SYS_SDRAM_BASE DCCM_BASE
56 #define CONFIG_SYS_SDRAM_SIZE DCCM_SIZE
58 #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_32K)
60 #define CONFIG_SYS_MALLOC_LEN SZ_64K
61 #define CONFIG_SYS_BOOTM_LEN SZ_128K
62 #define CONFIG_SYS_LOAD_ADDR SRAM_BASE
64 #define ROM_BASE CONFIG_SYS_MONITOR_BASE
65 #define ROM_SIZE SZ_256K
67 #define RAM_DATA_BASE CONFIG_SYS_INIT_SP_ADDR
68 #define RAM_DATA_SIZE CONFIG_SYS_SDRAM_SIZE - \
69 (CONFIG_SYS_INIT_SP_ADDR - \
70 CONFIG_SYS_SDRAM_BASE) - \
71 CONFIG_SYS_MALLOC_LEN - \
77 #define CONFIG_BOOTFILE "app.bin"
78 #define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR
80 #endif /* _CONFIG_IOT_DEVKIT_H_ */