1212
1313#include " memory.h"
1414
15- /* The "user_iram_end" represents the last DRAM memory location
16- * that is occupied by the ROM code. Since the "iram_loader_seg"
17- * - which is the last memory the bootloader runs from - resides
18- * in the SRAM0 "cache" memory, the "user_iram_end" applies for\
19- * all build cases - Simple boot and the MCUboot application.
20- */
21- user_iram_end = SRAM1_DRAM_IRAM_CALC(SRAM1_DRAM_USER_START);
22-
2315/* User available SRAM memory segments */
24- user_iram_seg_org = (SRAM0_IRAM_START + SRAM0_CACHE_SIZE);
25- user_iram_seg_len = user_iram_end - user_iram_seg_org;
26- user_dram_seg_org = SRAM2_DRAM_USER_START;
27- user_dram_seg_len = SRAM2_DRAM_USER_SIZE;
16+ procpu_iram_end = USER_IRAM_END - APPCPU_SRAM_SIZE;
17+ procpu_iram_org = SRAM0_IRAM_START + SRAM0_CACHE_SIZE;
18+ procpu_iram_len = procpu_iram_end - procpu_iram_org;
19+
20+ procpu_dram_end = SRAM2_DRAM_END;
21+ procpu_dram_org = SRAM2_DRAM_USER_START + CONFIG_ESP32_BT_RESERVE_DRAM;
22+ procpu_dram_len = SRAM2_DRAM_USER_SIZE - CONFIG_ESP32_BT_RESERVE_DRAM;
23+
2824user_dram_2_seg_org = SRAM1_DRAM_USER_START;
2925user_dram_2_seg_len = SRAM1_USER_SIZE;
3026
@@ -36,12 +32,6 @@ user_dram_2_seg_len = SRAM1_USER_SIZE;
3632#define RAMABLE_REGION dram0_0_seg
3733#define ROMABLE_REGION FLASH
3834
39- #ifndef CONFIG_SOC_ESP32_PROCPU
40- #define RAMABLE_REGION_1 dram0_1_seg
41- #else
42- #define RAMABLE_REGION_1 dram0_0_seg
43- #endif
44-
4535#undef GROUP_DATA_LINK_IN
4636#define GROUP_DATA_LINK_IN (vregion, lregion ) > vregion AT > lregion
4737
@@ -72,26 +62,8 @@ MEMORY
7262 FLASH (R) : org = 0x0 , len = FLASH_SIZE - 0x100
7363#endif /* CONFIG_BOOTLOADER_MCUBOOT */
7464
75- #ifndef CONFIG_SOC_ESP32_APPCPU
76- iram0_0_seg (RX) : org = user_iram_seg_org, len = user_iram_seg_len
77- #else
78- iram0_0_seg (RX) : org = user_iram_seg_org, len = 0x8000
79- #endif /* CONFIG_SOC_ESP32_APPCPU */
80-
81- dram0_0_seg (RW) : org = user_dram_seg_org + CONFIG_ESP32_BT_RESERVE_DRAM,
82- len = user_dram_seg_len - CONFIG_ESP32_BT_RESERVE_DRAM
83-
84- #ifdef CONFIG_SOC_ESP32_PROCPU
85- /* shared RAM reserved for IPM */
86- dram0_shm0_seg (RW) : org = 0x3ffe5230 , len = 2K
87- /* shared data reserved for IPM data header */
88- dram0_sem0_seg (RW) : org = 0x3ffe5a30 , len = 8
89- /* for AMP builds dram0_1 is reserved for network core */
90- dram0_1_seg (RW) : org = 0x3ffe5a38 , len = 0K
91- #else
92- /* skip data for APP CPU initialization usage */
93- dram0_1_seg (RW) : org = user_dram_2_seg_org, len = user_dram_2_seg_len
94- #endif /* CONFIG_SOC_ESP32_PROCPU */
65+ iram0_0_seg (RX) : org = procpu_iram_org, len = procpu_iram_len
66+ dram0_0_seg (RW) : org = procpu_dram_org, len = procpu_dram_len
9567
9668 irom0_0_seg (RX) : org = IROM_SEG_ORG, len = IROM_SEG_LEN
9769 drom0_0_seg (R) : org = DROM_SEG_ORG, len = DROM_SEG_LEN
@@ -219,7 +191,6 @@ SECTIONS
219191
220192 .iram0.vectors : ALIGN (4 )
221193 {
222- _iram_start = ABSOLUTE (.);
223194 /* Vectors go to IRAM */
224195 _init_start = ABSOLUTE (.);
225196 /* Vectors according to builds/RF-2015.2-win32/esp108_v1_2_s5_512int_2/config.html */
@@ -253,6 +224,7 @@ SECTIONS
253224 *(.init .literal )
254225 *(.init )
255226 _init_end = ABSOLUTE (.);
227+ _iram_start = ABSOLUTE (.);
256228 } GROUP_DATA_LINK_IN (IRAM_REGION, ROMABLE_REGION)
257229
258230 .iram0.text : ALIGN (4 )
@@ -712,12 +684,12 @@ SECTIONS
712684 *(.noinit )
713685 *(.noinit .*)
714686 . = ALIGN (8 );
715- } GROUP_LINK_IN (RAMABLE_REGION_1 )
687+ } GROUP_LINK_IN (RAMABLE_REGION )
716688
717689 /* Provide total SRAM usage, including IRAM and DRAM */
718690 _image_ram_start = _dram_data_start;
719691 #include < zephyr/linker/ram-end.ld>
720- _image_ram_size += _iram_end - _iram_start ;
692+ _image_ram_size += _iram_end - _init_start ;
721693
722694 ASSERT (((_end - ORIGIN (dram0_0_seg)) <= LENGTH (dram0_0_seg)), " DRAM data does not fit." )
723695
0 commit comments