mirror of
https://github.com/espressif/esp-idf.git
synced 2026-09-22 13:01:16 +03:00
feat(system): add OCD stub bin support for more targets
Add SOC_DEBUG_HAVE_OCD_STUB_BINS for esp32c5, esp32c61, esp32h4, esp32h21, esp32p4, and esp32s31. Update TEE linker scripts with correct esp_tee_app_config offsets for the 0x3000 stub reservation
This commit is contained in:
committed by
Samuel Obuch
parent
3e788612ec
commit
bc8cd6ce4c
@@ -409,6 +409,7 @@ menu "ESP System Settings"
|
||||
bool "Preload OpenOCD stub binaries to speed up debugging. 12K memory will be reserved"
|
||||
default n
|
||||
depends on SOC_DEBUG_HAVE_OCD_STUB_BINS
|
||||
depends on !IDF_TARGET_ESP32P4 || ESP32P4_SELECTS_REV_LESS_V3 || CACHE_L2_CACHE_512KB
|
||||
help
|
||||
OpenOCD uses stub code to access flash during programming or when inserting and removing
|
||||
SW flash breakpoints.
|
||||
@@ -418,6 +419,12 @@ menu "ESP System Settings"
|
||||
By enabling this option, 12K of memory in RAM will be preallocated with the stub code,
|
||||
eliminating the need to back up and restore the memory region.
|
||||
|
||||
The stub binaries are prebuilt and linked to run at the start of IRAM (_iram_start).
|
||||
On ESP32-P4 rev >= v3, _iram_start is 0x4FF00000 + L2 cache size, so it only matches the
|
||||
stub's link address (0x4FF80000) when the L2 cache is 512KB. This option is therefore
|
||||
only available on ESP32-P4 rev >= v3 when CACHE_L2_CACHE_512KB is selected. Earlier P4
|
||||
revisions and other targets place _iram_start at a fixed address and are not affected.
|
||||
|
||||
config ESP_DEBUG_OCDAWARE
|
||||
bool "Make exception and panic handlers JTAG/OCD aware"
|
||||
default y
|
||||
|
||||
@@ -15,10 +15,14 @@ set(openocd_path $ENV{OPENOCD_SCRIPTS})
|
||||
|
||||
if(openocd_path)
|
||||
set(stub_bin_path ${openocd_path}/../espressif/stub_bins)
|
||||
if(IS_DIRECTORY ${stub_bin_path} AND IS_DIRECTORY ${stub_bin_path}/${target})
|
||||
set(code_bin "${stub_bin_path}/${target}/stub_flash_idf_binary_code.inc")
|
||||
set(data_bin "${stub_bin_path}/${target}/stub_flash_idf_binary_data.inc")
|
||||
set(img_header "${stub_bin_path}/${target}/stub_flash_idf_image.h")
|
||||
set(stub_target_dir ${target})
|
||||
if(target STREQUAL "esp32p4" AND CONFIG_ESP32P4_REV_MIN_FULL LESS 300)
|
||||
set(stub_target_dir "esp32p4-rev1")
|
||||
endif()
|
||||
if(IS_DIRECTORY ${stub_bin_path} AND IS_DIRECTORY ${stub_bin_path}/${stub_target_dir})
|
||||
set(code_bin "${stub_bin_path}/${stub_target_dir}/stub_flash_idf_binary_code.inc")
|
||||
set(data_bin "${stub_bin_path}/${stub_target_dir}/stub_flash_idf_binary_data.inc")
|
||||
set(img_header "${stub_bin_path}/${stub_target_dir}/stub_flash_idf_image.h")
|
||||
if(EXISTS ${code_bin} AND EXISTS ${data_bin} AND EXISTS ${img_header})
|
||||
set(dest_dir "${CMAKE_BINARY_DIR}/openocd_stub_bins")
|
||||
set(output_code_bin "${dest_dir}/stub_flash_idf_binary_code.inc")
|
||||
|
||||
@@ -32,7 +32,12 @@
|
||||
* should be stored via esp_app_tee_config structure
|
||||
*/
|
||||
|
||||
#if CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS
|
||||
PROVIDE ( esp_tee_app_config = SRAM_REE_SEG_START + 0x32b0 );
|
||||
#else
|
||||
PROVIDE ( esp_tee_app_config = SRAM_REE_SEG_START + 0x2b0 );
|
||||
#endif
|
||||
|
||||
PROVIDE ( GDMA = 0x60080000 );
|
||||
|
||||
/* SPI Flash functions required from the ROM (refer esp32c5.rom.spiflash.ld) */
|
||||
|
||||
@@ -32,7 +32,12 @@
|
||||
* should be stored via esp_app_tee_config structure
|
||||
*/
|
||||
|
||||
#if CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS
|
||||
PROVIDE ( esp_tee_app_config = SRAM_REE_SEG_START + 0x32b0 );
|
||||
#else
|
||||
PROVIDE ( esp_tee_app_config = SRAM_REE_SEG_START + 0x2b0 );
|
||||
#endif
|
||||
|
||||
PROVIDE ( GDMA = 0x60080000 );
|
||||
|
||||
/* SPI Flash functions required from the ROM (refer esp32c61.rom.spiflash.ld) */
|
||||
|
||||
@@ -1619,6 +1619,10 @@ config SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_DEBUG_HAVE_OCD_STUB_BINS
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -648,6 +648,9 @@
|
||||
// #define SOC_PHY_COMBO_MODULE (1) /*!< Support Wi-Fi, BLE and 15.4*/
|
||||
#define SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT (1)
|
||||
|
||||
/*------------------------------------- DEBUG CAPS -------------------------------------*/
|
||||
#define SOC_DEBUG_HAVE_OCD_STUB_BINS (1)
|
||||
|
||||
/*------------------------------------- ULP CAPS -------------------------------------*/
|
||||
#define SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR (1) /*!< LP Core interrupts all map to a single entry in vector table */
|
||||
#define SOC_LP_CORE_SUPPORT_ETM (1) /*!< LP Core supports ETM */
|
||||
|
||||
@@ -1250,3 +1250,7 @@ config SOC_PHY_COMBO_MODULE
|
||||
config SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_DEBUG_HAVE_OCD_STUB_BINS
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -505,5 +505,8 @@
|
||||
#define SOC_PHY_COMBO_MODULE (1) /*!< Support Wi-Fi, BLE and 15.4*/
|
||||
#define SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT (1)
|
||||
|
||||
/*------------------------------------- DEBUG CAPS -------------------------------------*/
|
||||
#define SOC_DEBUG_HAVE_OCD_STUB_BINS (1)
|
||||
|
||||
/*------------------------------------- No Reset CAPS -------------------------------------*/
|
||||
// \#define SOC_CAPS_NO_RESET_BY_ANA_BOD (1) //TODO: [ESP32C61] IDF-9254
|
||||
|
||||
@@ -1094,3 +1094,7 @@ config SOC_BLE_SUBRATE_SUPPORTED
|
||||
config SOC_BLE_PERIODIC_ADV_WITH_RESPONSE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_DEBUG_HAVE_OCD_STUB_BINS
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -503,3 +503,6 @@
|
||||
#define SOC_BLE_CTE_SUPPORTED (1) /*!< Support Bluetooth LE Constant Tone Extension (CTE) */
|
||||
#define SOC_BLE_SUBRATE_SUPPORTED (1) /*!< Support Bluetooth LE Connection Subrating */
|
||||
#define SOC_BLE_PERIODIC_ADV_WITH_RESPONSE (1) /*!< Support Bluetooth LE Periodic Advertising with Response (PAwR) */
|
||||
|
||||
/*------------------------------------- DEBUG CAPS -------------------------------------*/
|
||||
#define SOC_DEBUG_HAVE_OCD_STUB_BINS (1)
|
||||
|
||||
@@ -1383,6 +1383,10 @@ config SOC_USB_FSLS_PHY_NUM
|
||||
int
|
||||
default 1
|
||||
|
||||
config SOC_DEBUG_HAVE_OCD_STUB_BINS
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_ASRC_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -573,5 +573,8 @@
|
||||
#define SOC_USB_OTG_PERIPH_NUM (1U)
|
||||
#define SOC_USB_FSLS_PHY_NUM (1U)
|
||||
|
||||
/*------------------------------------- DEBUG CAPS -------------------------------------*/
|
||||
#define SOC_DEBUG_HAVE_OCD_STUB_BINS (1)
|
||||
|
||||
/*---------------------------------- ASRC CAPS ----------------------------------*/
|
||||
#define SOC_ASRC_SUPPORTED (1)
|
||||
|
||||
@@ -1958,3 +1958,7 @@ config SOC_LP_CORE_HW_AUTO_CLRWAKEUPCAUSE
|
||||
config SOC_LP_CORE_LP_UART_WAKEUP_KEEP_TRIGGERED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_DEBUG_HAVE_OCD_STUB_BINS
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -749,3 +749,6 @@
|
||||
#define SOC_LP_CORE_SUPPORT_I2C (1) /*!< LP Core supports I2C */
|
||||
#define SOC_LP_CORE_HW_AUTO_CLRWAKEUPCAUSE (1) /*!< LP core requests sleep, PMU clears both HP and LP wakeup causes */
|
||||
#define SOC_LP_CORE_LP_UART_WAKEUP_KEEP_TRIGGERED (1) /*!< LP UART wakeup source is kept triggered */
|
||||
|
||||
/*------------------------------------- DEBUG CAPS -------------------------------------*/
|
||||
#define SOC_DEBUG_HAVE_OCD_STUB_BINS (1)
|
||||
|
||||
@@ -1862,3 +1862,7 @@ config SOC_TEMPERATURE_SENSOR_SUPPORT_ETM
|
||||
config SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_DEBUG_HAVE_OCD_STUB_BINS
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -692,3 +692,6 @@
|
||||
#define SOC_TEMPERATURE_SENSOR_SUPPORT_ETM (1)
|
||||
// temperature sensor on esp32s31 in under low power domain.
|
||||
#define SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION (1)
|
||||
|
||||
/*------------------------------------- DEBUG CAPS -------------------------------------*/
|
||||
#define SOC_DEBUG_HAVE_OCD_STUB_BINS (1)
|
||||
|
||||
Reference in New Issue
Block a user