summaryrefslogtreecommitdiff
path: root/include/configs/iot_devkit.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/configs/iot_devkit.h')
-rw-r--r--include/configs/iot_devkit.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/include/configs/iot_devkit.h b/include/configs/iot_devkit.h
new file mode 100644
index 00000000000..5a769e07871
--- /dev/null
+++ b/include/configs/iot_devkit.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
+ */
+
+#ifndef _CONFIG_IOT_DEVKIT_H_
+#define _CONFIG_IOT_DEVKIT_H_
+
+#include <linux/sizes.h>
+
+/*
+ * MEMORY MAP
+ *
+ * eFlash: 0x0000_0000 - 0x0008_0000 (512K)
+ * ICCM: 0x2000_0000 - 0x2004_0000 (256K)
+ * SRAM: 0x3000_0000 - 0x3002_0000 (128K)
+ * DCCM: 0x8000_0000 - 0x8002_0000 (128K)
+ * Note: only data goes here, as IFQ cannot fetch instructions from DCCM
+ *
+ *
+ * RAM PARTITIONING
+ *
+ * +-----------+----------+---------------------+-------------+
+ * | <-- Stack | .data | Malloc | Environment |
+ * +-----------+----------+---------------------+-------------+
+ * : : : :\___________/
+ * : : : : |
+ * : : : : CONFIG_ENV_SIZE
+ * : : \____________________/
+ * : : |
+ * : : CONFIG_SYS_MALLOC_LEN
+ * : :
+ * : Specified explicitly by CONFIG_CUSTOM_SYS_INIT_SP_ADDR
+ * :
+ * Specified explicitly by CFG_SYS_SDRAM_BASE
+ *
+ * NOTES:
+ * - Stack starts from CONFIG_CUSTOM_SYS_INIT_SP_ADDR and grows down,
+ * i.e. towards CFG_SYS_SDRAM_BASE but nothing stops it from crossing
+ * that CFG_SYS_SDRAM_BASE in which case data won't be really saved on
+ * stack any longer and values popped from stack will contain garbage
+ * leading to unexpected behavior, typically but not limited to:
+ * - "Returning" back to bogus caller function
+ * - Reading data from weird addresses
+ */
+
+#define SRAM_BASE 0x30000000
+#define SRAM_SIZE SZ_128K
+
+#define DCCM_BASE 0x80000000
+#define DCCM_SIZE SZ_128K
+
+#define CFG_SYS_SDRAM_BASE DCCM_BASE
+#define CFG_SYS_SDRAM_SIZE DCCM_SIZE
+
+#define ROM_BASE CONFIG_SYS_MONITOR_BASE
+#define ROM_SIZE SZ_256K
+
+#define RAM_DATA_BASE SYS_INIT_SP_ADDR
+#define RAM_DATA_SIZE CFG_SYS_SDRAM_SIZE - \
+ (SYS_INIT_SP_ADDR - \
+ CFG_SYS_SDRAM_BASE) - \
+ CONFIG_SYS_MALLOC_LEN - \
+ CONFIG_ENV_SIZE
+#endif /* _CONFIG_IOT_DEVKIT_H_ */