soc: esp32s2: ESP WiFi heap
Provide symbols for the creation of dynamic memory pool. Fix the loader ROM buffers start address. Fix static allocation size check. Signed-off-by: Marek Matej <marek.matej@espressif.com>
This commit is contained in:
parent
94731488e7
commit
3784beb6cc
2 changed files with 27 additions and 28 deletions
|
@ -23,12 +23,12 @@ user_iram_end = BOOTLOADER_IRAM_LOADER_SEG_START;
|
|||
#endif
|
||||
|
||||
/* User available SRAM memory segments */
|
||||
user_iram_seg_org = (SRAM_IRAM_START + SRAM_CACHE_SIZE);
|
||||
user_dram_seg_org = (SRAM_DRAM_START + SRAM_CACHE_SIZE);
|
||||
user_dram_end = (user_iram_end - IRAM_DRAM_OFFSET);
|
||||
user_idram_size = (user_dram_end - user_dram_seg_org);
|
||||
user_iram_seg_len = user_idram_size;
|
||||
user_dram_seg_len = user_idram_size;
|
||||
user_iram_seg_org = SRAM_IRAM_START + SRAM_CACHE_SIZE;
|
||||
user_dram_seg_org = SRAM_DRAM_START + SRAM_CACHE_SIZE;
|
||||
user_dram_end = user_iram_end - IRAM_DRAM_OFFSET;
|
||||
user_sram_size = (user_dram_end - user_dram_seg_org);
|
||||
user_iram_seg_len = user_sram_size;
|
||||
user_dram_seg_len = user_sram_size;
|
||||
|
||||
/* Aliases */
|
||||
#define FLASH_CODE_REGION irom0_0_seg
|
||||
|
@ -102,7 +102,7 @@ ENTRY(CONFIG_KERNEL_ENTRY)
|
|||
_rom_store_table = 0;
|
||||
|
||||
/* Used as a pointer to the heap end */
|
||||
_heap_sentry = DRAM_BUFFERS_START;
|
||||
_heap_sentry = DRAM_RESERVED_START;
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
|
@ -797,17 +797,17 @@ SECTIONS
|
|||
|
||||
.dram0.noinit (NOLOAD) :
|
||||
{
|
||||
. = ALIGN(8);
|
||||
. = ALIGN(4);
|
||||
*(.noinit)
|
||||
*(.noinit.*)
|
||||
. = ALIGN(8);
|
||||
. = ALIGN(16);
|
||||
} GROUP_LINK_IN(RAMABLE_REGION)
|
||||
|
||||
/* Provide total SRAM usage, including IRAM and DRAM */
|
||||
_image_ram_start = _iram_start - IRAM_DRAM_OFFSET;
|
||||
#include <zephyr/linker/ram-end.ld>
|
||||
|
||||
ASSERT(((__bss_end - ORIGIN(dram0_0_seg)) <= LENGTH(dram0_0_seg)), "DRAM segment data does not fit.")
|
||||
ASSERT(((_end - ORIGIN(dram0_0_seg)) <= LENGTH(dram0_0_seg)), "SRAM code/data does not fit.")
|
||||
|
||||
/* --- END OF DRAM --- */
|
||||
|
||||
|
@ -946,6 +946,8 @@ SECTIONS
|
|||
|
||||
/* --- END OF .rodata --- */
|
||||
|
||||
/* --- XTENSA GLUE AND DEBUG BEGIN --- */
|
||||
|
||||
#ifdef CONFIG_GEN_ISR_TABLES
|
||||
#include <zephyr/linker/intlist.ld>
|
||||
#endif
|
||||
|
@ -987,11 +989,7 @@ SECTIONS
|
|||
}
|
||||
}
|
||||
|
||||
ASSERT(((__bss_end - ORIGIN(dram0_0_seg)) <= LENGTH(dram0_0_seg)),
|
||||
"DRAM0 segment data does not fit.")
|
||||
|
||||
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
||||
"IRAM0 segment data does not fit.")
|
||||
/* --- XTENSA GLUE AND DEBUG END --- */
|
||||
|
||||
#ifdef CONFIG_ESP_SPIRAM
|
||||
ASSERT(((_ext_ram_data_end - _ext_ram_data_start) <= CONFIG_ESP_SPIRAM_SIZE),
|
||||
|
|
|
@ -9,8 +9,7 @@
|
|||
*/
|
||||
#define SRAM_IRAM_START 0x40020000
|
||||
#define SRAM_DRAM_START 0x3ffb0000
|
||||
#define SRAM_CACHE_SIZE (CONFIG_ESP32S2_INSTRUCTION_CACHE_SIZE \
|
||||
+ CONFIG_ESP32S2_DATA_CACHE_SIZE)
|
||||
#define SRAM_CACHE_SIZE (CONFIG_ESP32S2_INSTRUCTION_CACHE_SIZE + CONFIG_ESP32S2_DATA_CACHE_SIZE)
|
||||
|
||||
/** Simplified memory map for the bootloader.
|
||||
* Make sure the bootloader can load into main memory without overwriting itself.
|
||||
|
@ -28,29 +27,31 @@
|
|||
* Used to convert between 0x4002xxxx and 0x3ffbxxxx addresses.
|
||||
*/
|
||||
#define IRAM_DRAM_OFFSET 0x70000
|
||||
#define DRAM_BUFFERS_START 0x3ffeab00
|
||||
#define DRAM_RESERVED_START 0x3ffec000
|
||||
#define DRAM_STACK_START 0x3fffc410
|
||||
#define DRAM_BUFFERS_START 0x3ffea400
|
||||
#define DRAM_BUFFERS_END 0x3fffc410
|
||||
#define DRAM_ROM_CPU_STACK_START 0x3fffc410
|
||||
#define DRAM_ROM_BSS_DATA_START 0x3fffe710
|
||||
|
||||
/* For safety margin between bootloader data section and startup stacks */
|
||||
#define BOOTLOADER_STACK_OVERHEAD 0x0
|
||||
#define BOOTLOADER_DRAM_SEG_LEN 0x7000
|
||||
#define BOOTLOADER_DRAM_SEG_LEN 0x8000
|
||||
#define BOOTLOADER_IRAM_LOADER_SEG_LEN 0x3000
|
||||
#define BOOTLOADER_IRAM_SEG_LEN 0xa000
|
||||
|
||||
/* Set the limit for the application runtime dynamic allocations */
|
||||
#define DRAM_RESERVED_START DRAM_BUFFERS_END
|
||||
|
||||
/* Base address used for calculating memory layout
|
||||
* counted from Dbus backwards and back to the Ibus
|
||||
*/
|
||||
#define BOOTLOADER_USER_DRAM_END (DRAM_RESERVED_START - BOOTLOADER_STACK_OVERHEAD)
|
||||
#define BOOTLOADER_USER_DRAM_END (DRAM_BUFFERS_START - BOOTLOADER_STACK_OVERHEAD)
|
||||
|
||||
/* Start of the lower region is determined by region size and the end of the higher region */
|
||||
#define BOOTLOADER_IRAM_LOADER_SEG_START (BOOTLOADER_USER_DRAM_END + IRAM_DRAM_OFFSET \
|
||||
- BOOTLOADER_IRAM_LOADER_SEG_LEN)
|
||||
#define BOOTLOADER_DRAM_SEG_START (BOOTLOADER_IRAM_LOADER_SEG_START - BOOTLOADER_DRAM_SEG_LEN \
|
||||
- IRAM_DRAM_OFFSET)
|
||||
#define BOOTLOADER_IRAM_SEG_START (BOOTLOADER_DRAM_SEG_START - BOOTLOADER_IRAM_SEG_LEN \
|
||||
+ IRAM_DRAM_OFFSET)
|
||||
#define BOOTLOADER_IRAM_LOADER_SEG_START \
|
||||
(BOOTLOADER_USER_DRAM_END - BOOTLOADER_IRAM_LOADER_SEG_LEN + IRAM_DRAM_OFFSET)
|
||||
#define BOOTLOADER_IRAM_SEG_START (BOOTLOADER_IRAM_LOADER_SEG_START - BOOTLOADER_IRAM_SEG_LEN)
|
||||
#define BOOTLOADER_DRAM_SEG_START \
|
||||
(BOOTLOADER_IRAM_SEG_START - BOOTLOADER_DRAM_SEG_LEN - IRAM_DRAM_OFFSET)
|
||||
|
||||
/* Flash */
|
||||
#ifdef CONFIG_FLASH_SIZE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue