[sw/silicon_creator] Remove retention SRAM errors Signed-off-by: Alphan Ulusoy <alphan@google.com>
diff --git a/sw/device/silicon_creator/lib/drivers/retention_sram.c b/sw/device/silicon_creator/lib/drivers/retention_sram.c index 6f1125e..1a2e858 100644 --- a/sw/device/silicon_creator/lib/drivers/retention_sram.c +++ b/sw/device/silicon_creator/lib/drivers/retention_sram.c
@@ -18,21 +18,6 @@ kBase = TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR, }; -/** - * Check that control register writes are enabled. - * - * @return Result of the operation. - */ -static rom_error_t is_locked(void) { - if (!bitfield_bit32_read( - abs_mmio_read32(kBase + SRAM_CTRL_CTRL_REGWEN_REG_OFFSET), - SRAM_CTRL_CTRL_REGWEN_CTRL_REGWEN_BIT)) { - return kErrorRetSramLocked; - } - - return kErrorOk; -} - volatile retention_sram_t *retention_sram_get(void) { static_assert(sizeof(retention_sram_t) == TOP_EARLGREY_RAM_RET_AON_SIZE_BYTES, "Unexpected retention SRAM size."); @@ -43,24 +28,16 @@ *retention_sram_get() = (retention_sram_t){0}; } -rom_error_t retention_sram_init(void) { - RETURN_IF_ERROR(is_locked()); - +void retention_sram_init(void) { uint32_t reg = bitfield_bit32_write(0, SRAM_CTRL_CTRL_INIT_BIT, true); abs_mmio_write32(kBase + SRAM_CTRL_CTRL_REG_OFFSET, reg); - - return kErrorOk; } -rom_error_t retention_sram_scramble(void) { - RETURN_IF_ERROR(is_locked()); - +void retention_sram_scramble(void) { // Request the renewal of the scrambling key and initialization to random // values. uint32_t ctrl = 0; ctrl = bitfield_bit32_write(ctrl, SRAM_CTRL_CTRL_RENEW_SCR_KEY_BIT, true); ctrl = bitfield_bit32_write(ctrl, SRAM_CTRL_CTRL_INIT_BIT, true); abs_mmio_write32(kBase + SRAM_CTRL_CTRL_REG_OFFSET, ctrl); - - return kErrorOk; }
diff --git a/sw/device/silicon_creator/lib/drivers/retention_sram.h b/sw/device/silicon_creator/lib/drivers/retention_sram.h index ce282bd..895daf1 100644 --- a/sw/device/silicon_creator/lib/drivers/retention_sram.h +++ b/sw/device/silicon_creator/lib/drivers/retention_sram.h
@@ -66,7 +66,7 @@ * * @return Result of the operation. */ -rom_error_t retention_sram_init(void); +void retention_sram_init(void); /** * Start scrambling the retention SRAM. @@ -80,7 +80,7 @@ * * @return An error if a new key cannot be requested. */ -rom_error_t retention_sram_scramble(void); +void retention_sram_scramble(void); #ifdef __cplusplus }
diff --git a/sw/device/silicon_creator/lib/drivers/retention_sram_functest.c b/sw/device/silicon_creator/lib/drivers/retention_sram_functest.c index e244897..9def87d 100644 --- a/sw/device/silicon_creator/lib/drivers/retention_sram_functest.c +++ b/sw/device/silicon_creator/lib/drivers/retention_sram_functest.c
@@ -45,10 +45,7 @@ // Scramble the retention SRAM. LOG_INFO("Scrambling retention SRAM."); - if (retention_sram_scramble() != kErrorOk) { - LOG_ERROR("Scrambling failed."); - return kErrorUnknown; - } + retention_sram_scramble(); // Copy the contents of the retention SRAM into an array of 64-bit integers. // We use 64-bit integers rather than 32-bit integers to reduce the
diff --git a/sw/device/silicon_creator/lib/drivers/retention_sram_unittest.cc b/sw/device/silicon_creator/lib/drivers/retention_sram_unittest.cc index da11212..b3d5388 100644 --- a/sw/device/silicon_creator/lib/drivers/retention_sram_unittest.cc +++ b/sw/device/silicon_creator/lib/drivers/retention_sram_unittest.cc
@@ -23,44 +23,24 @@ class ScrambleTest : public RetentionSramTest {}; TEST_F(ScrambleTest, Ok) { - EXPECT_ABS_READ32(base_ + SRAM_CTRL_CTRL_REGWEN_REG_OFFSET, - { - {SRAM_CTRL_CTRL_REGWEN_CTRL_REGWEN_BIT, 1}, - }); EXPECT_ABS_WRITE32(base_ + SRAM_CTRL_CTRL_REG_OFFSET, { {SRAM_CTRL_CTRL_RENEW_SCR_KEY_BIT, 1}, {SRAM_CTRL_CTRL_INIT_BIT, 1}, }); - EXPECT_EQ(retention_sram_scramble(), kErrorOk); -} - -TEST_F(ScrambleTest, Locked) { - EXPECT_ABS_READ32(base_ + SRAM_CTRL_CTRL_REGWEN_REG_OFFSET, 0); - - EXPECT_EQ(retention_sram_scramble(), kErrorRetSramLocked); + retention_sram_scramble(); } class InitTest : public RetentionSramTest {}; TEST_F(InitTest, Ok) { - EXPECT_ABS_READ32(base_ + SRAM_CTRL_CTRL_REGWEN_REG_OFFSET, - { - {SRAM_CTRL_CTRL_REGWEN_CTRL_REGWEN_BIT, 1}, - }); EXPECT_ABS_WRITE32(base_ + SRAM_CTRL_CTRL_REG_OFFSET, { {SRAM_CTRL_CTRL_INIT_BIT, 1}, }); - EXPECT_EQ(retention_sram_init(), kErrorOk); -} - -TEST_F(InitTest, Locked) { - EXPECT_ABS_READ32(base_ + SRAM_CTRL_CTRL_REGWEN_REG_OFFSET, 0); - - EXPECT_EQ(retention_sram_init(), kErrorRetSramLocked); + retention_sram_init(); } } // namespace
diff --git a/sw/device/silicon_creator/lib/error.h b/sw/device/silicon_creator/lib/error.h index cfa6ddb..49d80c6 100644 --- a/sw/device/silicon_creator/lib/error.h +++ b/sw/device/silicon_creator/lib/error.h
@@ -36,7 +36,6 @@ kModuleOtbn = MODULE_CODE('B', 'N'), kModuleFlashCtrl = MODULE_CODE('F', 'C'), kModuleBootPolicy = MODULE_CODE('B', 'P'), - kModuleRetSram = MODULE_CODE('R', 'S'), kModuleBootstrap = MODULE_CODE('B', 'S'), kModuleLog = MODULE_CODE('L', 'G'), kModuleBootData = MODULE_CODE('B', 'D'), @@ -101,7 +100,6 @@ X(kErrorBootPolicyBadIdentifier, ERROR_(1, kModuleBootPolicy, kInternal)), \ X(kErrorBootPolicyBadLength, ERROR_(2, kModuleBootPolicy, kInternal)), \ X(kErrorBootPolicyRollback, ERROR_(3, kModuleBootPolicy, kInternal)), \ - X(kErrorRetSramLocked, ERROR_(1, kModuleRetSram, kInternal)), \ X(kErrorBootstrapEraseAddress, ERROR_(1, kModuleBootstrap, kInvalidArgument)), \ X(kErrorBootstrapProgramAddress, ERROR_(2, kModuleBootstrap, kInvalidArgument)), \ X(kErrorBootstrapInvalidState, ERROR_(3, kModuleBootstrap, kInvalidArgument)), \