|
@@ -0,0 +1,76 @@
|
|
|
+/*
|
|
|
+ * Copyright (c) 2006-2021, RT-Thread Development Team
|
|
|
+ *
|
|
|
+ * SPDX-License-Identifier: Apache-2.0
|
|
|
+ */
|
|
|
+#ifndef MEMORY_LAYOUT_H__
|
|
|
+#define MEMORY_LAYOUT_H__
|
|
|
+
|
|
|
+#include "../rtconfig.h"
|
|
|
+
|
|
|
+/*
|
|
|
+ * Physical Memory layout:
|
|
|
+ *
|
|
|
+ * +---------+ <- CONFIG_MEM_TOTAL_SIZE
|
|
|
+ * | ...... | maybe zero
|
|
|
+ * +---------+ <- CONFIG_MEM_MMZ_BASE + CONFIG_MEM_MMZ_SIZE
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * |---------| <- CONFIG_MEM_MMZ_BASE
|
|
|
+ * | ...... | maybe zero
|
|
|
+ * +---------+ <- CONFIG_MEM_RTSMART_SIZE
|
|
|
+ * | guard | MEM_GUARD_SIZE
|
|
|
+ * +---------+ <- End of Kerenl
|
|
|
+ * | |
|
|
|
+ * | |
|
|
|
+ * +---------+
|
|
|
+ * | heap | CONFIG_MEM_RTSMART_HEAP_SIZE
|
|
|
+ * +---------+
|
|
|
+ * | |
|
|
|
+ * +---------+ <- Beginning of Kernel <- mapping to KERNEL_VADDR_START + MEM_OPENSBI_SIZE
|
|
|
+ * | opensbi | MEM_OPENSBI_SIZE
|
|
|
+ * +---------+ <- Beginning of Physical Memory (0) <- mapping to KERNEL_VADDR_START
|
|
|
+ */
|
|
|
+
|
|
|
+#define MEM_OPENSBI_SIZE 0x20000 // 128K
|
|
|
+#define MEM_GUARD_SIZE 0x1000 // 4K
|
|
|
+
|
|
|
+/*
|
|
|
+ * The value of CONFIG_XXX may come from rtconfig.h. This is mainly for
|
|
|
+ * compatibility with compiling RT-Thread in the SDK environment and using
|
|
|
+ * the SDK configuration.
|
|
|
+ *
|
|
|
+ * If CONFIG_XXX is defined, it means that the value comes from the SDK
|
|
|
+ * configuration, otherwise the default configuration of bsp/k230 in RT-Thead
|
|
|
+ * is used. The default configuration of bsp/k230 is for the 01Studio CanMV
|
|
|
+ * development board that supports 512MB of memory.
|
|
|
+ */
|
|
|
+#ifndef CONFIG_MEM_TOTAL_SIZE
|
|
|
+#define CONFIG_MEM_TOTAL_SIZE 0x20000000 // 512M
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef CONFIG_MEM_RTSMART_SIZE
|
|
|
+#define CONFIG_MEM_RTSMART_SIZE 0x10000000 // 256M
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef CONFIG_MEM_RTSMART_HEAP_SIZE
|
|
|
+#define CONFIG_MEM_RTSMART_HEAP_SIZE 0x2000000 // 32M
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef CONFIG_MEM_MMZ_BASE
|
|
|
+#define CONFIG_MEM_MMZ_BASE 0x10000000 // 512M
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef CONFIG_MEM_MMZ_SIZE
|
|
|
+#define CONFIG_MEM_MMZ_SIZE 0x10000000 // 256M
|
|
|
+#endif
|
|
|
+
|
|
|
+#define MEM_KERNEL_SIZE (CONFIG_MEM_RTSMART_SIZE - MEM_OPENSBI_SIZE - MEM_GUARD_SIZE)
|
|
|
+
|
|
|
+#endif // MEMORY_LAYOUT_H__
|