5 #include "sw/device/lib/testing/ret_sram_testutils.h"
11 #include "dt/dt_sram_ctrl.h"
12 #include "sw/device/lib/testing/test_framework/check.h"
14 #include "sw/device/silicon_creator/lib/drivers/retention_sram.h"
26 uint32_t
counters[kRetSramTestutilsNumberOfCounters];
31 uint32_t
scratch[kRetSramTestutilsScratchSizeAsInts];
38 #if defined(OPENTITAN_IS_EARLGREY)
43 "Testing utilities spill out of retention SRAM");
44 #elif defined(OPENTITAN_IS_DARJEELING)
45 #include "hw/top_darjeeling/sw/autogen/top_darjeeling.h"
48 TOP_DARJEELING_RAM_RET_AON_SIZE_BYTES,
49 "Testing utilities spill out of retention SRAM");
51 #error "ret_sram_testutils does not support this top"
55 "Testing utilities overlap owner area in retention SRAM");
59 void ret_sram_testutils_init(
void) {
62 kDtSramCtrlRegBlockRam) +
66 status_t ret_sram_testutils_counter_clear(
size_t counter) {
68 TRY_CHECK(counter < kRetSramTestutilsNumberOfCounters);
73 status_t ret_sram_testutils_counter_get(
size_t counter, uint32_t *value) {
75 TRY_CHECK(value != NULL);
76 TRY_CHECK(counter < kRetSramTestutilsNumberOfCounters);
81 status_t ret_sram_testutils_counter_increment(
size_t counter) {
84 TRY_CHECK(counter < kRetSramTestutilsNumberOfCounters);
86 TRY_CHECK(value < UINT32_MAX);
91 status_t ret_sram_testutils_counter_set(
size_t counter, uint32_t value) {
93 TRY_CHECK(counter < kRetSramTestutilsNumberOfCounters);
98 status_t ret_sram_testutils_scratch_read(
size_t offset,
size_t size,
101 TRY_CHECK(dest != NULL);
102 TRY_CHECK(offset + size <= kRetSramTestutilsScratchSizeAsInts);
103 for (
size_t i = 0; i < size; ++i) {
109 status_t ret_sram_testutils_scratch_write(
size_t offset,
size_t size,
112 TRY_CHECK(src != NULL);
113 TRY_CHECK(offset + size <= kRetSramTestutilsScratchSizeAsInts);
114 for (
size_t i = 0; i < size; ++i) {
120 status_t ret_sram_testutils_is_testrom(
bool *is_testrom) {