xtensa/esp32s2: Fix getting the flash mappings by openocd-esp32

This adds new fields to the metadata section used by MCUBoot.
The openocd-esp32 project requires these fields to properly map the
flash segments and enable using SW breakpoints and flash through
openocd-esp32.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
This commit is contained in:
Tiago Medicci Serrano 2025-02-17 15:17:14 -03:00 committed by Xiang Xiao
parent 7a3e67d59a
commit 31b6cdac6d
3 changed files with 47 additions and 2 deletions

View file

@ -1403,7 +1403,7 @@ endchoice
config ESP32S2_MCUBOOT_VERSION
string "MCUboot version"
default "b206b99b1555ca15f790a3287e57dc98ef3df2ac"
default "20f98e0a975c24864872e0df5701eb1082e9c957"
depends on ESP32S2_APP_FORMAT_MCUBOOT
config ESP32S2_APP_MCUBOOT_HEADER_SIZE

View file

@ -31,6 +31,11 @@ SECTIONS
#ifdef CONFIG_ESP32S2_APP_FORMAT_MCUBOOT
.metadata :
{
/* The following metadata refers to the to MCUboot's struct
* esp_image_load_header defined at the following commit:
* https://github.com/mcu-tools/mcuboot/blob/cd22b693da426826e0255f8ee5b18d7360d9bc8f/boot/espressif/hal/include/esp_mcuboot_image.h
*/
/* Magic for load header */
LONG(0xace637d3)
@ -58,6 +63,46 @@ SECTIONS
LONG(ADDR(.dram0.data))
LONG(LOADADDR(.dram0.data))
LONG(SIZEOF(.dram0.data))
/* RTC_IRAM metadata:
* - Destination address (VMA) for RTC_IRAM region
* - Flash offset (LMA) for start of RTC_IRAM region
* - Size of RTC_IRAM region
*/
LONG(ADDR(.rtc.text))
LONG(LOADADDR(.rtc.text))
LONG(SIZEOF(.rtc.text))
/* RTC_DRAM metadata:
* - Destination address (VMA) for RTC_DRAM region
* - Flash offset (LMA) for start of RTC_DRAM region
* - Size of RTC_DRAM region
*/
LONG(ADDR(.rtc.data))
LONG(LOADADDR(.rtc.data))
LONG(SIZEOF(.rtc.data))
/* IROM metadata:
* - Destination address (VMA) for IROM region
* - Flash offset (LMA) for start of IROM region
* - Size of IROM region
*/
LONG(ADDR(.flash.text))
LONG(LOADADDR(.flash.text))
LONG(SIZEOF(.flash.text))
/* DROM metadata:
* - Destination address (VMA) for DROM region
* - Flash offset (LMA) for start of DROM region
* - Size of DROM region
*/
LONG(ADDR(.flash.rodata))
LONG(LOADADDR(.flash.rodata))
LONG(LOADADDR(.flash.rodata) + SIZEOF(.flash.rodata) - LOADADDR(.flash.rodata))
} >metadata
#endif

View file

@ -71,7 +71,7 @@ MEMORY
* signing of firmware image.
*/
metadata (RX) : org = CONFIG_ESP32S2_APP_MCUBOOT_HEADER_SIZE, len = 0x20
metadata (RX) : org = CONFIG_ESP32S2_APP_MCUBOOT_HEADER_SIZE, len = 0x60
ROM (RX) : org = ORIGIN(metadata) + LENGTH(metadata),
len = FLASH_SIZE - ORIGIN(ROM)
#elif defined (CONFIG_ESPRESSIF_SIMPLE_BOOT)