11 #include "sw/device/lib/testing/lc_ctrl_testutils.h"
12 #include "sw/device/lib/testing/test_framework/check.h"
14 #include "sw/device/lib/testing/test_framework/status.h"
15 #include "sw/device/silicon_creator/lib/epmp_defs.h"
19 OTTF_DEFINE_TEST_CONFIG();
22 static_assert(EXPECT_DEBUG == 0 || EXPECT_DEBUG == 1,
23 "EXPECT_DEBUG must be `0` or `1`.");
25 dif_lc_ctrl_t lc_ctrl;
28 CHECK_DIF_OK(dif_lc_ctrl_init(lc_reg, &lc_ctrl));
29 bool debug_enabled =
false;
31 lc_ctrl_testutils_debug_func_enabled(&lc_ctrl, &debug_enabled));
32 LOG_INFO(
"debug_enabled: %d", debug_enabled);
34 if (debug_enabled != EXPECT_DEBUG) {
35 LOG_ERROR(
"Expected debug_enabled=%d", EXPECT_DEBUG);
40 CSR_READ(CSR_REG_PMPADDR13, &pmpaddr13);
43 uint8_t pmp13cfg = (pmpcfg3 >> 8) & 0xff;
44 LOG_INFO(
"pmpaddr13=0x%08x, pmpcfg3=0x%08x, pmp13cfg=0x%02x", pmpaddr13,
47 const uint32_t kPmpEncodedDebugRomRange =
50 if (pmpaddr13 != kPmpEncodedDebugRomRange) {
51 LOG_ERROR(
"Expected pmpaddr13=0x%08x", kPmpEncodedDebugRomRange);
55 const uint8_t kExpectedPmp13cfg =
57 ? EPMP_CFG_L | EPMP_CFG_A_NAPOT | EPMP_CFG_X | EPMP_CFG_W | EPMP_CFG_R
58 : EPMP_CFG_L | EPMP_CFG_A_NAPOT;
59 if (pmp13cfg != kExpectedPmp13cfg) {
60 LOG_ERROR(
"Expected pmp13cfg=0x%02x", kExpectedPmp13cfg);