mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
fix(newlib): fix CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS for c2/c3/c6/h2/h21
PMP configurations for load and store addresses may have different permissions (e.g., "R" vs. "RW"). Due to the timing alignment of internal signals, the address permission check may be incorrectly applied during the second part of a misaligned access transaction. As a workaround, insert two instructions (e.g. ADDI/NOP) between accessing to different memory regions. This spacing avoids the false permission check caused by signal timing overlap.
This commit is contained in:
@@ -263,6 +263,10 @@ config SOC_CPU_IDRAM_SPLIT_USING_PMP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_CPU_MISALIGNED_ACCESS_ON_PMP_MISMATCH_ISSUE
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_ECC_SUPPORT_POINT_VERIFY_QUIRK
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -112,6 +112,8 @@
|
||||
#define SOC_CPU_WATCHPOINT_MAX_REGION_SIZE 0x80000000 // bytes
|
||||
|
||||
#define SOC_CPU_IDRAM_SPLIT_USING_PMP 1
|
||||
// DIG-694: misaligned access across PMP regions must be spaced at least by two instructions
|
||||
#define SOC_CPU_MISALIGNED_ACCESS_ON_PMP_MISMATCH_ISSUE 1
|
||||
|
||||
/*-------------------------- ECC CAPS --------------------------*/
|
||||
#define SOC_ECC_SUPPORT_POINT_VERIFY_QUIRK 1 // C2 ECC peripheral has a bug in ECC point verification, if value of K is zero the verification fails
|
||||
|
||||
Reference in New Issue
Block a user