#include "macros.inc" test_suite phys_mem #if XCHAL_HAVE_PTP_MMU .purgem test_init .macro test_init movi a2, 0xc0000003 /* PPN */ movi a3, 0xc0000004 /* VPN */ wdtlb a2, a3 witlb a2, a3 movi a2, 0xc0000000 wsr a2, ptevaddr #if XCHAL_HAVE_SPANNING_WAY movi a2, 0xc0000000 | XCHAL_SPANNING_WAY idtlb a2 iitlb a2 movi a2, 0x20000000 | XCHAL_SPANNING_WAY idtlb a2 iitlb a2 #endif .endm test inst_fetch_get_pte_no_phys set_vector kernel, 2f movi a2, 0x20000000 jx a2 2: movi a2, 0x20000000 rsr a3, excvaddr assert eq, a2, a3 rsr a3, epc1 assert eq, a2, a3 rsr a3, exccause movi a2, 16 assert eq, a2, a3 test_end test read_get_pte_no_phys set_vector kernel, 2f movi a2, 0x20000000 1: l32i a3, a2, 0 test_fail 2: movi a2, 0x20000000 rsr a3, excvaddr assert eq, a2, a3 movi a2, 1b rsr a3, epc1 assert eq, a2, a3 rsr a3, exccause movi a2, 24 assert eq, a2, a3 test_end test write_get_pte_no_phys set_vector kernel, 2f movi a2, 0x20000000 1: s32i a3, a2, 0 test_fail 2: movi a2, 0x20000000 rsr a3, excvaddr assert eq, a2, a3 movi a2, 1b rsr a3, epc1 assert eq, a2, a3 rsr a3, exccause movi a2, 24 assert eq, a2, a3 test_end #endif test inst_fetch_no_phys set_vector kernel, 2f movi a2, 0xc0000000 jx a2 2: movi a2, 0xc0000000 rsr a3, excvaddr assert eq, a2, a3 rsr a3, epc1 assert eq, a2, a3 rsr a3, exccause movi a2, 14 assert eq, a2, a3 test_end test read_no_phys set_vector kernel, 2f movi a2, 0xc0000000 1: l32i a3, a2, 0 test_fail 2: movi a2, 0xc0000000 rsr a3, excvaddr assert eq, a2, a3 movi a2, 1b rsr a3, epc1 assert eq, a2, a3 rsr a3, exccause movi a2, 15 assert eq, a2, a3 test_end test write_no_phys set_vector kernel, 2f movi a2, 0xc0000000 1: s32i a3, a2, 0 test_fail 2: movi a2, 0xc0000000 rsr a3, excvaddr assert eq, a2, a3 movi a2, 1b rsr a3, epc1 assert eq, a2, a3 rsr a3, exccause movi a2, 15 assert eq, a2, a3 test_end test_suite_end