5#ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_NVM_TESTUTILS_H_
6#define OPENTITAN_SW_DEVICE_LIB_TESTING_NVM_TESTUTILS_H_
11#include "sw/device/lib/base/status.h"
12#include "sw/device/silicon_creator/lib/nvm_ctrl.h"
22extern const nvm_page_perms_t kPageReadOnly;
24extern const nvm_page_perms_t kPageReadWrite;
26extern const nvm_page_perms_t kPageWriteOnly;
29extern const nvm_page_cfg_t kPageScrambleCfg;
32extern const nvm_page_cfg_t kPagePlainCfg;
36extern const nvm_page_cfg_t kPageRawCfg;
47status_t nvm_testutils_wait_for_init(
void);
60status_t nvm_testutils_info_page_setup(nvm_info_page_t page,
61 nvm_page_perms_t perms,
76status_t nvm_testutils_info_page_set(nvm_info_page_t page,
77 nvm_page_perms_t perms,
92status_t nvm_testutils_info_page_clear(nvm_info_page_t page,
93 nvm_page_perms_t perms,
116status_t nvm_testutils_write_info_page(nvm_info_page_t page,
117 uint32_t byte_offset,
118 const uint32_t *data,
size_t word_count,
119 bool erase_before_write,
bool readback);
134status_t nvm_testutils_read_info_page(nvm_info_page_t page,
135 uint32_t byte_offset, uint32_t *data,
151status_t nvm_testutils_rom_init(uint32_t otp_flash_default_cfg);
164status_t nvm_testutils_info_page_lock(nvm_info_page_t page,
bool lock);
180status_t nvm_testutils_data_region_setup(uint32_t region, uint32_t base,
181 uint32_t size, nvm_page_perms_t perms,
195status_t nvm_testutils_data_region_lock(uint32_t region,
bool lock);
207status_t nvm_testutils_show_faults(
void);
222status_t nvm_testutils_default_region_setup(nvm_page_perms_t perms,