fix(system): esp32p4: fix mepc when load/store failure occurred

This commit is contained in:
Alexey Lapshin
2024-04-15 19:09:11 +04:00
parent 9b8e2c72ba
commit 6f2de1fb23
9 changed files with 99 additions and 9 deletions

View File

@@ -365,14 +365,12 @@ def test_illegal_instruction(
common_test(dut, config, expected_backtrace=get_default_backtrace(test_func_name))
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
@pytest.mark.generic
def test_storeprohibited(dut: PanicTestDut, config: str, test_func_name: str) -> None:
def check_x_prohibited(dut: PanicTestDut, config: str, test_func_name: str, operation: str) -> None:
dut.run_test_func(test_func_name)
if dut.is_xtensa:
dut.expect_gme('StoreProhibited')
dut.expect_gme(f'{operation}Prohibited')
else:
dut.expect_gme('Store access fault')
dut.expect_gme(f'{operation} access fault')
dut.expect_reg_dump(0)
if dut.is_xtensa:
dut.expect_backtrace()
@@ -384,6 +382,18 @@ def test_storeprohibited(dut: PanicTestDut, config: str, test_func_name: str) ->
common_test(dut, config, expected_backtrace=get_default_backtrace(test_func_name))
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
@pytest.mark.generic
def test_storeprohibited(dut: PanicTestDut, config: str, test_func_name: str) -> None:
check_x_prohibited(dut, config, test_func_name, 'Store')
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
@pytest.mark.generic
def test_loadprohibited(dut: PanicTestDut, config: str, test_func_name: str) -> None:
check_x_prohibited(dut, config, test_func_name, 'Load')
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
@pytest.mark.generic
def test_abort(dut: PanicTestDut, config: str, test_func_name: str) -> None: