mirror of
https://github.com/espressif/esp-idf.git
synced 2025-12-08 01:17:07 +00:00
fix(panic): fixed cache error being reported as illegal instruction
On riscv chips accessing cache mapped memory regions over the ibus would result in an illegal instructions exception triggering faster than the cache error interrupt/exception. Added a cache error check in the panic handler, if any cache errors are active the panic handler will now report a cache error, even if the trigger exception was a illegal instructions.
This commit is contained in:
@@ -260,9 +260,12 @@ def test_int_wdt_cache_disabled(
|
||||
@pytest.mark.generic
|
||||
def test_cache_error(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
if dut.target in ['esp32c3', 'esp32c2', 'esp32c6', 'esp32h2']:
|
||||
# Cache error interrupt is not raised, IDF-6398
|
||||
dut.expect_gme('Illegal instruction')
|
||||
if dut.target in ['esp32c3', 'esp32c2']:
|
||||
dut.expect_gme('Cache error')
|
||||
dut.expect_exact('Cached memory region accessed while ibus or cache is disabled')
|
||||
elif dut.target in ['esp32c6', 'esp32h2']:
|
||||
dut.expect_gme('Cache error')
|
||||
dut.expect_exact('Cache access error')
|
||||
elif dut.target in ['esp32s2']:
|
||||
# Cache error interrupt is not enabled, IDF-1558
|
||||
dut.expect_gme('IllegalInstruction')
|
||||
|
||||
Reference in New Issue
Block a user