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"
20extern const nvm_page_perms_t kPageReadOnly;
22extern const nvm_page_perms_t kPageReadWrite;
24extern const nvm_page_perms_t kPageWriteOnly;
27extern const nvm_page_cfg_t kPageScrambleCfg;
30extern const nvm_page_cfg_t kPagePlainCfg;
34extern const nvm_page_cfg_t kPageRawCfg;
45status_t nvm_testutils_wait_for_init(
void);
58status_t nvm_testutils_info_page_setup(nvm_info_page_t page,
59 nvm_page_perms_t perms,
82status_t nvm_testutils_write_info_page(nvm_info_page_t page,
84 const uint32_t *data,
size_t word_count,
85 bool erase_before_write,
bool readback);
100status_t nvm_testutils_read_info_page(nvm_info_page_t page,
101 uint32_t byte_offset, uint32_t *data,
123status_t nvm_testutils_rom_init(uint32_t otp_nvm_default_cfg);
136status_t nvm_testutils_info_page_lock(nvm_info_page_t page,
bool lock);
152status_t nvm_testutils_info_page_print(nvm_info_page_t page);
168status_t nvm_testutils_data_region_setup(uint32_t region, uint32_t base,
169 uint32_t size, nvm_page_perms_t perms,
183status_t nvm_testutils_data_region_lock(uint32_t region,
bool lock);
197status_t nvm_testutils_data_write(uint32_t byte_address,
const uint32_t *data,
198 size_t word_count,
bool erase_before_write);
207status_t nvm_testutils_set_exec_enablement(
bool enable);
219status_t nvm_testutils_show_faults(
void);
234status_t nvm_testutils_default_region_setup(nvm_page_perms_t perms,
249status_t nvm_testutils_default_region_get(nvm_page_perms_t *perms,
250 nvm_page_cfg_t *cfg);