5 #include "sw/device/silicon_creator/lib/drivers/retention_sram.h"
9 #include "dt/dt_sram_ctrl.h"
13 #include "sram_ctrl_regs.h"
15 static const dt_sram_ctrl_t kSramCtrlDt = kDtSramCtrlRetAon;
17 void retention_sram_clear(
void) {
21 void retention_sram_init(
void) {
23 uint32_t base = dt_sram_ctrl_primary_reg_block(kSramCtrlDt);
24 abs_mmio_write32(base + SRAM_CTRL_CTRL_REG_OFFSET, reg);
27 void retention_sram_readback_enable(uint32_t en) {
28 uint32_t base = dt_sram_ctrl_primary_reg_block(kSramCtrlDt);
29 abs_mmio_write32(base + SRAM_CTRL_READBACK_REG_OFFSET, en);
32 void retention_sram_scramble(
void) {
38 uint32_t base = dt_sram_ctrl_primary_reg_block(kSramCtrlDt);
39 abs_mmio_write32(base + SRAM_CTRL_CTRL_REG_OFFSET, ctrl);
42 rom_error_t retention_sram_check_version(
void) {
45 case kRetentionSramVersion1:
47 rr->
version = kRetentionSramVersion4;
49 case kRetentionSramVersion4:
52 case kRetentionSramVersion3:
53 case kRetentionSramVersion2:
57 return kErrorRetRamBadVersion;