@@ -71,33 +71,27 @@ const size_t soc_memory_type_count = sizeof(soc_memory_types) / sizeof(soc_memor
71
71
/**
72
72
* Register the shared buffer area of the last memory block into the heap during heap initialization
73
73
*/
74
- #define APP_USABLE_DRAM_END (SOC_ROM_STACK_START - SOC_ROM_STACK_SIZE)
74
+ #define APP_USABLE_DIRAM_END (SOC_ROM_STACK_START - SOC_ROM_STACK_SIZE) // 0x4ff3cfc0 - 0x2000 = 0x4ff3afc0
75
+ #define STARTUP_DATA_SIZE (SOC_DRAM_HIGH - CONFIG_CACHE_L2_CACHE_SIZE - APP_USABLE_DIRAM_END) // 0x4ffc0000 - 0x20000/0x40000/0x80000 - 0x4ff3afc0 = 0x65040 / 0x45040 / 0x5040
75
76
76
77
const soc_memory_region_t soc_memory_regions [] = {
77
78
#ifdef CONFIG_SPIRAM
78
- { SOC_EXTRAM_LOW , SOC_EXTRAM_SIZE , SOC_MEMORY_TYPE_SPIRAM , 0 , false}, //PSRAM, if available
79
- #endif
80
- // base 192k is always avaible, even if we config l2 cache size to 512k
81
- { 0x4ff00000 , 0x30000 , SOC_MEMORY_TYPE_L2MEM , 0x4ff00000 , false},
82
- // 64k for rom startup stack
83
- { 0x4ff30000 , 0x10000 , SOC_MEMORY_TYPE_L2MEM , 0x4ff30000 , true},
84
- #if CONFIG_ESP32P4_L2_CACHE_256KB // 768-256 = 512k avaible for l2 memory, add extra 256k
85
- { 0x4ff40000 , 0x40000 , SOC_MEMORY_TYPE_L2MEM , 0x4ff40000 , false},
86
- #endif
87
- #if CONFIG_ESP32P4_L2_CACHE_128KB // 768 - 128 = 640k avaible for l2 memory, add extra 384k
88
- { 0x4ff40000 , 0x60000 , SOC_MEMORY_TYPE_L2MEM , 0x4ff40000 , false},
79
+ { SOC_EXTRAM_LOW , SOC_EXTRAM_SIZE , SOC_MEMORY_TYPE_SPIRAM , 0 , false}, //PSRAM, if available
89
80
#endif
81
+ { SOC_DRAM_LOW , APP_USABLE_DIRAM_END - SOC_DRAM_LOW , SOC_MEMORY_TYPE_L2MEM , SOC_IRAM_LOW , false},
82
+ { APP_USABLE_DIRAM_END , STARTUP_DATA_SIZE , SOC_MEMORY_TYPE_L2MEM , APP_USABLE_DIRAM_END , true},
90
83
#ifdef CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP
91
- { 0x50108000 , 0x8000 , SOC_MEMORY_TYPE_RTCRAM , 0 , false}, //LPRAM
84
+ { 0x50108000 , 0x8000 , SOC_MEMORY_TYPE_RTCRAM , 0 , false}, //LPRAM
92
85
#endif
93
- { 0x30100000 , 0x2000 , SOC_MEMORY_TYPE_TCM , 0 , false},
86
+ { 0x30100000 , 0x2000 , SOC_MEMORY_TYPE_TCM , 0 , false},
94
87
};
95
88
96
89
const size_t soc_memory_region_count = sizeof (soc_memory_regions ) / sizeof (soc_memory_region_t );
97
90
98
91
99
92
extern int _data_start , _heap_start , _iram_start , _iram_end , _rtc_force_slow_end ;
100
93
extern int _tcm_text_start , _tcm_data_end ;
94
+ extern int _rtc_reserved_start , _rtc_reserved_end ;
101
95
102
96
/**
103
97
* Reserved memory regions.
@@ -118,6 +112,7 @@ SOC_RESERVE_MEMORY_REGION( SOC_EXTRAM_LOW, SOC_EXTRAM_HIGH, extram_region);
118
112
#endif
119
113
120
114
#ifdef CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP
121
- // TODO: IDF-6019 check reserved lp mem region
122
115
SOC_RESERVE_MEMORY_REGION (SOC_RTC_DRAM_LOW , (intptr_t )& _rtc_force_slow_end , rtcram_data );
123
116
#endif
117
+
118
+ SOC_RESERVE_MEMORY_REGION ((intptr_t )& _rtc_reserved_start , (intptr_t )& _rtc_reserved_end , rtc_reserved_data );
0 commit comments