]>
Commit | Line | Data |
---|---|---|
5396e8b1 AB |
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 | ||
5396e8b1 AB |
74 | /* |
75 | * Environment | |
76 | */ | |
5396e8b1 AB |
77 | #define CONFIG_BOOTFILE "app.bin" |
78 | #define CONFIG_LOADADDR CONFIG_SYS_LOAD_ADDR | |
79 | ||
80 | #endif /* _CONFIG_IOT_DEVKIT_H_ */ |