diff --git a/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/cpu_intr/test_vectors_m.S b/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/cpu_intr/test_vectors_m.S index 1e96dcc1a24..c75e51db555 100644 --- a/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/cpu_intr/test_vectors_m.S +++ b/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/cpu_intr/test_vectors_m.S @@ -252,7 +252,7 @@ _test_panic_handler: /* Executing the panic handler */ li t0, 0xDEADC0DE - csrr t0, mscratch + csrw mscratch, t0 mv a0, sp csrr a1, mcause li t0, VECTORS_MCAUSE_REASON_MASK diff --git a/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/pms/test_tee_peri_apm.c b/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/pms/test_tee_peri_apm.c index 3baa6a135ff..7e178759483 100644 --- a/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/pms/test_tee_peri_apm.c +++ b/components/hal/test_apps/tee/components/pms_and_cpu_intr/src/pms/test_tee_peri_apm.c @@ -76,35 +76,29 @@ static const uint32_t test_peri_apm_lp_peri_reg[] = { BIT64(APM_TEE_LP_PERIPH_LP_PERI) | \ BIT64(APM_TEE_LP_PERIPH_LP_APM)) -IRAM_ATTR static uint32_t reg_read(uint32_t addr) +FORCE_INLINE_ATTR uint32_t reg_read(uint32_t addr) { - uint32_t val; - asm volatile ( - "li t0, 0x100\n" - "lw %0, 0(%1)\n" - "1:\n" - "nop\n" - "addi t0, t0, -1\n" - "bnez t0, 1b\n" - : "=r"(val) + uint32_t value; + __asm__ volatile ( + "lw %0, 0(%1)\n" + "fence\n" + "nop\nnop\nnop\nnop\n" + : "=r"(value) : "r"(addr) - : "t0", "memory" + : "memory" ); - return val; + return value; } -IRAM_ATTR static void reg_write(uint32_t addr, uint32_t value) +FORCE_INLINE_ATTR void reg_write(uint32_t addr, uint32_t value) { - asm volatile ( - "li t0, 0x100\n" - "sw %1, 0(%0)\n" - "1:\n" - "nop\n" - "addi t0, t0, -1\n" - "bnez t0, 1b\n" + __asm__ volatile ( + "sw %1, 0(%0)\n" + "fence\n" + "nop\nnop\nnop\nnop\n" : : "r"(addr), "r"(value) - : "t0", "memory" + : "memory" ); } diff --git a/components/hal/test_apps/tee/pytest_pms_and_cpu_intr.py b/components/hal/test_apps/tee/pytest_pms_and_cpu_intr.py index a24ec3c15d4..323d507a831 100644 --- a/components/hal/test_apps/tee/pytest_pms_and_cpu_intr.py +++ b/components/hal/test_apps/tee/pytest_pms_and_cpu_intr.py @@ -58,4 +58,4 @@ def test_tee_peri_apm(dut: IdfDut) -> None: indirect=['config', 'target'], ) def test_tee_interrupts(dut: IdfDut) -> None: - dut.run_all_single_board_cases() + dut.run_all_single_board_cases(group='CPU')