Software APIs
sram_lockdown.c
1 // Copyright lowRISC contributors (OpenTitan project).
2 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
3 // SPDX-License-Identifier: Apache-2.0
4 
6 #include "sw/device/lib/base/status.h"
9 
11 #include "sram_ctrl_regs.h"
12 
13 OTTF_DEFINE_TEST_CONFIG();
14 
15 status_t test_sram_lockdown(void) {
16  uint32_t exec, regwen;
17 
18  exec = abs_mmio_read32(TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR +
19  SRAM_CTRL_EXEC_REG_OFFSET);
20  regwen = abs_mmio_read32(TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR +
21  SRAM_CTRL_EXEC_REGWEN_REG_OFFSET);
22  LOG_INFO("sram_exec = %x", exec);
23  LOG_INFO("sram_exec_regwen = %x", regwen);
24  if (exec != kMultiBitBool4False) {
25  return UNKNOWN();
26  }
27  if (regwen != 0) {
28  return UNKNOWN();
29  }
30  return OK_STATUS();
31 }
32 
33 bool test_main(void) {
34  status_t sts = test_sram_lockdown();
35  if (status_err(sts)) {
36  LOG_ERROR("sram_lockdown: %r", sts);
37  }
38  return status_ok(sts);
39 }