1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright (C) 2018 Synopsys, Inc. All rights reserved. 4 */ 5 6 #ifndef _CONFIG_IOT_DEVKIT_H_ 7 #define _CONFIG_IOT_DEVKIT_H_ 8 9 #include <linux/sizes.h> 10 11 /* 12 * MEMORY MAP 13 * 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 19 * 20 * 21 * RAM PARTITIONING 22 * 23 * +-----------+----------+---------------------+-------------+ 24 * | <-- Stack | .data | Malloc | Environment | 25 * +-----------+----------+---------------------+-------------+ 26 * : : : :\___________/ 27 * : : : : | 28 * : : : : CONFIG_ENV_SIZE 29 * : : \____________________/ 30 * : : | 31 * : : CONFIG_SYS_MALLOC_LEN 32 * : : 33 * : Specified explicitly by CONFIG_SYS_INIT_SP_ADDR 34 * : 35 * Specified explicitly by CONFIG_SYS_SDRAM_BASE 36 * 37 * NOTES: 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 45 */ 46 47 #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE 48 49 #define SRAM_BASE 0x30000000 50 #define SRAM_SIZE SZ_128K 51 52 #define DCCM_BASE 0x80000000 53 #define DCCM_SIZE SZ_128K 54 55 #define CONFIG_SYS_SDRAM_BASE DCCM_BASE 56 #define CONFIG_SYS_SDRAM_SIZE DCCM_SIZE 57 58 #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_32K) 59 60 #define CONFIG_SYS_MALLOC_LEN SZ_64K 61 #define CONFIG_SYS_BOOTM_LEN SZ_128K 62 #define CONFIG_SYS_LOAD_ADDR SRAM_BASE 63 64 #define ROM_BASE CONFIG_SYS_MONITOR_BASE 65 #define ROM_SIZE SZ_256K 66 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 - \ 72 CONFIG_ENV_SIZE 73 74 /* 75 * Environment 76 */ 77 #define CONFIG_BOOTFILE "app.bin" 78 #define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR 79 80 #endif /* _CONFIG_IOT_DEVKIT_H_ */ 81