esp_system: Remove deprecate section from esp_cpu.h

- Remove esp_cpu_in_ocd_mode() from esp_cpu.h. Users should call esp_cpu_dbgr_is_attached() instead.
- Remove esp_cpu_get_ccount() from esp_cpu.h. Users should call esp_cpu_get_cycle_count() instead.
- Remove esp_cpu_set_ccount() from esp_cpu.h. Users should call esp_cpu_set_cycle_count() instead.
- Other IDF components updated to call esp_cpu_dbgr_is_attached(), esp_cpu_get_cycle_count() and esp_cpu_set_cycle_count() as well.
This commit is contained in:
Guillaume Souchere
2022-07-19 13:20:07 +08:00
committed by Darian Leung
parent dcae121d80
commit 0bac33ed41
12 changed files with 19 additions and 50 deletions

View File

@@ -95,7 +95,7 @@ esp_apptrace_hw_t *esp_apptrace_jtag_hw_get(void **data)
e.g. OpenOCD flasher stub use own implementation of it. */ e.g. OpenOCD flasher stub use own implementation of it. */
__attribute__((weak)) int esp_apptrace_advertise_ctrl_block(void *ctrl_block_addr) __attribute__((weak)) int esp_apptrace_advertise_ctrl_block(void *ctrl_block_addr)
{ {
if (!esp_cpu_in_ocd_debug_mode()) { if (!esp_cpu_dbgr_is_attached()) {
return 0; return 0;
} }
return (int) semihosting_call_noerrno(ESP_SEMIHOSTING_SYS_APPTRACE_INIT, (long*)ctrl_block_addr); return (int) semihosting_call_noerrno(ESP_SEMIHOSTING_SYS_APPTRACE_INIT, (long*)ctrl_block_addr);

View File

@@ -157,7 +157,7 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
bootloader_sha256_handle_t *p_sha_handle = &sha_handle; bootloader_sha256_handle_t *p_sha_handle = &sha_handle;
CHECK_ERR(process_image_header(data, part->offset, (verify_sha) ? p_sha_handle : NULL, do_verify, silent)); CHECK_ERR(process_image_header(data, part->offset, (verify_sha) ? p_sha_handle : NULL, do_verify, silent));
CHECK_ERR(process_segments(data, silent, do_load, sha_handle, checksum)); CHECK_ERR(process_segments(data, silent, do_load, sha_handle, checksum));
bool skip_check_checksum = !do_verify || esp_cpu_in_ocd_debug_mode(); bool skip_check_checksum = !do_verify || esp_cpu_dbgr_is_attached();
CHECK_ERR(process_checksum(sha_handle, checksum_word, data, silent, skip_check_checksum)); CHECK_ERR(process_checksum(sha_handle, checksum_word, data, silent, skip_check_checksum));
CHECK_ERR(process_appended_hash(data, part->size, do_verify, silent)); CHECK_ERR(process_appended_hash(data, part->size, do_verify, silent));
if (verify_sha) { if (verify_sha) {
@@ -167,7 +167,7 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
// If secure boot is not enabled in hardware, then // If secure boot is not enabled in hardware, then
// skip the signature check in bootloader when the debugger is attached. // skip the signature check in bootloader when the debugger is attached.
// This is done to allow for breakpoints in Flash. // This is done to allow for breakpoints in Flash.
bool do_verify_sig = !esp_cpu_in_ocd_debug_mode(); bool do_verify_sig = !esp_cpu_dbgr_is_attached();
#else // CONFIG_SECURE_BOOT #else // CONFIG_SECURE_BOOT
bool do_verify_sig = true; bool do_verify_sig = true;
#endif // end checking for JTAG #endif // end checking for JTAG
@@ -177,7 +177,7 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
} }
#else // SECURE_BOOT_CHECK_SIGNATURE #else // SECURE_BOOT_CHECK_SIGNATURE
// No secure boot, but SHA-256 can be appended for basic corruption detection // No secure boot, but SHA-256 can be appended for basic corruption detection
if (sha_handle != NULL && !esp_cpu_in_ocd_debug_mode()) { if (sha_handle != NULL && !esp_cpu_dbgr_is_attached()) {
err = verify_simple_hash(sha_handle, data); err = verify_simple_hash(sha_handle, data);
sha_handle = NULL; // calling verify_simple_hash finishes sha_handle sha_handle = NULL; // calling verify_simple_hash finishes sha_handle
} }

View File

@@ -10,6 +10,7 @@
#include "test_utils.h" #include "test_utils.h"
#include "esp_log.h" #include "esp_log.h"
#include "esp_err.h" #include "esp_err.h"
#include "esp_cpu.h"
#include "soc/adc_periph.h" #include "soc/adc_periph.h"
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
#include "freertos/task.h" #include "freertos/task.h"
@@ -202,8 +203,8 @@ TEST_CASE("ADC1 oneshot raw average / std_deviation", "[adc_oneshot][ignore][man
#endif #endif
#define RECORD_TIME_PREPARE() uint32_t __t1, __t2 #define RECORD_TIME_PREPARE() uint32_t __t1, __t2
#define RECORD_TIME_START() do {__t1 = esp_cpu_get_ccount();}while(0) #define RECORD_TIME_START() do {__t1 = esp_cpu_get_cycle_count();}while(0)
#define RECORD_TIME_END(p_time) do{__t2 = esp_cpu_get_ccount(); *p_time = (__t2-__t1);}while(0) #define RECORD_TIME_END(p_time) do{__t2 = esp_cpu_get_cycle_count(); *p_time = (__t2-__t1);}while(0)
#define GET_US_BY_CCOUNT(t) ((double)t/CPU_FREQ_MHZ) #define GET_US_BY_CCOUNT(t) ((double)t/CPU_FREQ_MHZ)

View File

@@ -452,9 +452,9 @@ void esp_cpu_configure_region_protection(void)
* are silently ignored by the CPU * are silently ignored by the CPU
*/ */
if (esp_cpu_in_ocd_debug_mode()) { if (esp_cpu_dbgr_is_attached()) {
// Anti-FI check that cpu is really in ocd mode // Anti-FI check that cpu is really in ocd mode
ESP_FAULT_ASSERT(esp_cpu_in_ocd_debug_mode()); ESP_FAULT_ASSERT(esp_cpu_dbgr_is_attached());
// 1. IRAM // 1. IRAM
PMP_ENTRY_SET(0, SOC_DIRAM_IRAM_LOW, NONE); PMP_ENTRY_SET(0, SOC_DIRAM_IRAM_LOW, NONE);

View File

@@ -549,38 +549,6 @@ FORCE_INLINE_ATTR intptr_t esp_cpu_get_call_addr(intptr_t return_address)
*/ */
bool esp_cpu_compare_and_set(volatile uint32_t *addr, uint32_t compare_value, uint32_t new_value); bool esp_cpu_compare_and_set(volatile uint32_t *addr, uint32_t compare_value, uint32_t new_value);
/* ---------------------------------------------------- Deprecate ------------------------------------------------------
*
* ------------------------------------------------------------------------------------------------------------------ */
typedef esp_cpu_cycle_count_t esp_cpu_ccount_t;
FORCE_INLINE_ATTR __attribute__((deprecated)) esp_cpu_cycle_count_t esp_cpu_get_ccount(void)
{
return esp_cpu_get_cycle_count();
}
FORCE_INLINE_ATTR __attribute__((deprecated)) void esp_cpu_set_ccount(esp_cpu_cycle_count_t ccount)
{
return esp_cpu_set_cycle_count(ccount);
}
/**
* @brief Returns true if a JTAG debugger is attached to CPU OCD (on chip debug) port.
*
* [refactor-todo] See if this can be replaced with esp_cpu_dbgr_is_attached directly
*
* @note Always returns false if CONFIG_ESP_DEBUG_OCDAWARE is not enabled
*/
FORCE_INLINE_ATTR bool esp_cpu_in_ocd_debug_mode(void)
{
#if CONFIG_ESP_DEBUG_OCDAWARE
return esp_cpu_dbgr_is_attached();
#else // CONFIG_ESP_DEBUG_OCDAWARE
return false; // Always return false if "OCD aware" is disabled
#endif // CONFIG_ESP_DEBUG_OCDAWARE
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -32,7 +32,7 @@ FORCE_INLINE_ATTR __attribute__((deprecated)) uint32_t cpu_ll_get_cycle_count(vo
FORCE_INLINE_ATTR __attribute__((deprecated)) void cpu_ll_set_cycle_count(uint32_t val) FORCE_INLINE_ATTR __attribute__((deprecated)) void cpu_ll_set_cycle_count(uint32_t val)
{ {
esp_cpu_set_cycle_count((esp_cpu_ccount_t)val); esp_cpu_set_cycle_count((esp_cpu_cycle_count_t)val);
} }
FORCE_INLINE_ATTR __attribute__((deprecated)) void *cpu_ll_get_sp(void) FORCE_INLINE_ATTR __attribute__((deprecated)) void *cpu_ll_get_sp(void)

View File

@@ -649,8 +649,8 @@ esp_err_t esp_mprot_set_prot(const esp_memp_config_t *memp_config)
//debugger connected: //debugger connected:
// 1.check the signal repeatedly to avoid possible glitching attempt // 1.check the signal repeatedly to avoid possible glitching attempt
// 2.leave the Memprot unset to allow debug operations // 2.leave the Memprot unset to allow debug operations
if (esp_cpu_in_ocd_debug_mode()) { if (esp_cpu_dbgr_is_attached()) {
ESP_FAULT_ASSERT(esp_cpu_in_ocd_debug_mode()); ESP_FAULT_ASSERT(esp_cpu_dbgr_is_attached());
return ESP_OK; return ESP_OK;
} }

View File

@@ -802,8 +802,8 @@ esp_err_t esp_memprot_set_prot(bool invoke_panic_handler, bool lock_feature, uin
} }
//if being debugged check we are not glitched and dont enable Memprot //if being debugged check we are not glitched and dont enable Memprot
if (esp_cpu_in_ocd_debug_mode()) { if (esp_cpu_dbgr_is_attached()) {
ESP_FAULT_ASSERT(esp_cpu_in_ocd_debug_mode()); ESP_FAULT_ASSERT(esp_cpu_dbgr_is_attached());
} else { } else {
//initialize for specific buses (any memory type does the job) //initialize for specific buses (any memory type does the job)
if (invoke_panic_handler) { if (invoke_panic_handler) {

View File

@@ -875,8 +875,8 @@ esp_err_t esp_mprot_set_prot(const esp_memp_config_t *memp_config)
// 1.check the signal repeatedly to avoid possible glitching attempt // 1.check the signal repeatedly to avoid possible glitching attempt
// 2.leave the Memprot unset to allow debug operations // 2.leave the Memprot unset to allow debug operations
if (esp_cpu_in_ocd_debug_mode()) { if (esp_cpu_dbgr_is_attached()) {
ESP_FAULT_ASSERT(esp_cpu_in_ocd_debug_mode()); ESP_FAULT_ASSERT(esp_cpu_dbgr_is_attached());
return ESP_OK; return ESP_OK;
} }

View File

@@ -276,7 +276,7 @@ void esp_panic_handler(panic_info_t *info)
// If on-chip-debugger is attached, and system is configured to be aware of this, // If on-chip-debugger is attached, and system is configured to be aware of this,
// then only print up to details. Users should be able to probe for the other information // then only print up to details. Users should be able to probe for the other information
// in debug mode. // in debug mode.
if (esp_cpu_in_ocd_debug_mode()) { if (esp_cpu_dbgr_is_attached()) {
panic_print_str("Setting breakpoint at 0x"); panic_print_str("Setting breakpoint at 0x");
panic_print_hex((uint32_t)info->addr); panic_print_hex((uint32_t)info->addr);
panic_print_str(" and returning...\r\n"); panic_print_str(" and returning...\r\n");

View File

@@ -18,7 +18,7 @@ const static char *TAG = "esp_dbg_stubs";
/* Advertises apptrace control block address to host */ /* Advertises apptrace control block address to host */
static int esp_dbg_stubs_advertise_table(void *stub_table_addr) static int esp_dbg_stubs_advertise_table(void *stub_table_addr)
{ {
if (!esp_cpu_in_ocd_debug_mode()) { if (!esp_cpu_dbgr_is_attached()) {
return 0; return 0;
} }
return (int) semihosting_call_noerrno(ESP_SEMIHOSTING_SYS_DBG_STUBS_INIT, (long*)stub_table_addr); return (int) semihosting_call_noerrno(ESP_SEMIHOSTING_SYS_DBG_STUBS_INIT, (long*)stub_table_addr);

View File

@@ -163,7 +163,7 @@ static void panic_handler(void *frame, bool pseudo_excause)
esp_ipc_isr_stall_abort(); esp_ipc_isr_stall_abort();
if (esp_cpu_in_ocd_debug_mode()) { if (esp_cpu_dbgr_is_attached()) {
#if __XTENSA__ #if __XTENSA__
if (!(esp_ptr_executable(esp_cpu_pc_to_addr(panic_get_address(frame))) && (panic_get_address(frame) & 0xC0000000U))) { if (!(esp_ptr_executable(esp_cpu_pc_to_addr(panic_get_address(frame))) && (panic_get_address(frame) & 0xC0000000U))) {
/* Xtensa ABI sets the 2 MSBs of the PC according to the windowed call size /* Xtensa ABI sets the 2 MSBs of the PC according to the windowed call size