[sw/silicon_creator] Remove is_busy() from flash_ctrl driver

Since all operations are blocking, we don't need to check if the flash
controller is busy before starting a new operation.

Signed-off-by: Alphan Ulusoy <alphan@google.com>
diff --git a/sw/device/silicon_creator/lib/drivers/flash_ctrl.c b/sw/device/silicon_creator/lib/drivers/flash_ctrl.c
index 79175fb..d1fe509 100644
--- a/sw/device/silicon_creator/lib/drivers/flash_ctrl.c
+++ b/sw/device/silicon_creator/lib/drivers/flash_ctrl.c
@@ -29,12 +29,6 @@
   kBase = TOP_EARLGREY_FLASH_CTRL_CORE_BASE_ADDR,
 };
 
-static bool is_busy(void) {
-  uint32_t bitfield =
-      abs_mmio_read32(kBase + FLASH_CTRL_CTRL_REGWEN_REG_OFFSET);
-  return !bitfield_bit32_read(bitfield, FLASH_CTRL_CTRL_REGWEN_EN_BIT);
-}
-
 /**
  * Flash transaction parameters.
  */
@@ -79,11 +73,7 @@
  * @param params Transaction parameters, see `transaction_params_t`.
  * @return The result of the operation.
  */
-static rom_error_t transaction_start(transaction_params_t params) {
-  if (is_busy()) {
-    return kErrorFlashCtrlBusy;
-  }
-
+static void transaction_start(transaction_params_t params) {
   // Set the address.
   abs_mmio_write32(kBase + FLASH_CTRL_ADDR_REG_OFFSET, params.addr);
   // Configure flash_ctrl and start the transaction.
@@ -104,7 +94,6 @@
   reg = bitfield_field32_write(reg, FLASH_CTRL_CONTROL_NUM_FIELD,
                                params.word_count - 1);
   abs_mmio_write32(kBase + FLASH_CTRL_CONTROL_REG_OFFSET, reg);
-  return kErrorOk;
 }
 
 /**
@@ -180,14 +169,14 @@
     window_word_count =
         word_count < window_word_count ? word_count : window_word_count;
 
-    RETURN_IF_ERROR(transaction_start((transaction_params_t){
+    transaction_start((transaction_params_t){
         .addr = addr,
         .op_type = FLASH_CTRL_CONTROL_OP_VALUE_PROG,
         .partition = partition,
         .word_count = window_word_count,
         // Does not apply to program transactions.
         .erase_type = kFlashCtrlEraseTypePage,
-    }));
+    });
 
     fifo_write(window_word_count, data);
     RETURN_IF_ERROR(wait_for_done(error));
@@ -242,14 +231,14 @@
 
 rom_error_t flash_ctrl_data_read(uint32_t addr, uint32_t word_count,
                                  uint32_t *data) {
-  RETURN_IF_ERROR(transaction_start((transaction_params_t){
+  transaction_start((transaction_params_t){
       .addr = addr,
       .op_type = FLASH_CTRL_CONTROL_OP_VALUE_READ,
       .partition = kFlashCtrlPartitionData,
       .word_count = word_count,
       // Does not apply to read transactions.
       .erase_type = kFlashCtrlEraseTypePage,
-  }));
+  });
   fifo_read(word_count, data);
   return wait_for_done(kErrorFlashCtrlDataRead);
 }
@@ -260,14 +249,14 @@
   const uint32_t addr = info_page_addr(info_page) + offset;
   const flash_ctrl_partition_t partition =
       bitfield_field32_read(info_page, FLASH_CTRL_INFO_PAGE_FIELD_PARTITION);
-  RETURN_IF_ERROR(transaction_start((transaction_params_t){
+  transaction_start((transaction_params_t){
       .addr = addr,
       .op_type = FLASH_CTRL_CONTROL_OP_VALUE_READ,
       .partition = partition,
       .word_count = word_count,
       // Does not apply to read transactions.
       .erase_type = kFlashCtrlEraseTypePage,
-  }));
+  });
   fifo_read(word_count, data);
   return wait_for_done(kErrorFlashCtrlInfoRead);
 }
@@ -289,14 +278,14 @@
 
 rom_error_t flash_ctrl_data_erase(uint32_t addr,
                                   flash_ctrl_erase_type_t erase_type) {
-  RETURN_IF_ERROR(transaction_start((transaction_params_t){
+  transaction_start((transaction_params_t){
       .addr = addr,
       .op_type = FLASH_CTRL_CONTROL_OP_VALUE_ERASE,
       .erase_type = erase_type,
       .partition = kFlashCtrlPartitionData,
       // Does not apply to erase transactions.
       .word_count = 1,
-  }));
+  });
   return wait_for_done(kErrorFlashCtrlDataErase);
 }
 
@@ -305,14 +294,14 @@
   const uint32_t addr = info_page_addr(info_page);
   const flash_ctrl_partition_t partition =
       bitfield_field32_read(info_page, FLASH_CTRL_INFO_PAGE_FIELD_PARTITION);
-  RETURN_IF_ERROR(transaction_start((transaction_params_t){
+  transaction_start((transaction_params_t){
       .addr = addr,
       .op_type = FLASH_CTRL_CONTROL_OP_VALUE_ERASE,
       .erase_type = erase_type,
       .partition = partition,
       // Does not apply to erase transactions.
       .word_count = 1,
-  }));
+  });
   return wait_for_done(kErrorFlashCtrlInfoErase);
 }
 
diff --git a/sw/device/silicon_creator/lib/drivers/flash_ctrl_unittest.cc b/sw/device/silicon_creator/lib/drivers/flash_ctrl_unittest.cc
index 5ef5ef4..15e61ec 100644
--- a/sw/device/silicon_creator/lib/drivers/flash_ctrl_unittest.cc
+++ b/sw/device/silicon_creator/lib/drivers/flash_ctrl_unittest.cc
@@ -69,11 +69,6 @@
  protected:
   const std::vector<uint32_t> words_ = {0x12345678, 0x90ABCDEF, 0x0F1E2D3C,
                                         0x4B5A6978};
-  void ExpectCheckBusy(bool busy) {
-    EXPECT_ABS_READ32(base_ + FLASH_CTRL_CTRL_REGWEN_REG_OFFSET,
-                      {{FLASH_CTRL_CTRL_REGWEN_EN_BIT, !busy}});
-  }
-
   void ExpectWaitForDone(bool done, bool error) {
     EXPECT_ABS_READ32(base_ + FLASH_CTRL_OP_STATUS_REG_OFFSET,
                       {{FLASH_CTRL_OP_STATUS_DONE_BIT, done},
@@ -86,7 +81,6 @@
   void ExpectTransferStart(uint8_t part_sel, uint8_t info_sel,
                            uint8_t erase_sel, uint32_t op, uint32_t addr,
                            uint32_t word_count) {
-    ExpectCheckBusy(false);
     EXPECT_ABS_WRITE32(base_ + FLASH_CTRL_ADDR_REG_OFFSET, addr);
     EXPECT_ABS_WRITE32(base_ + FLASH_CTRL_CONTROL_REG_OFFSET,
                        {
@@ -112,22 +106,6 @@
   }
 };
 
-TEST_F(TransferTest, ReadBusy) {
-  ExpectCheckBusy(true);
-  EXPECT_EQ(flash_ctrl_data_read(0, 0, NULL), kErrorFlashCtrlBusy);
-}
-
-TEST_F(TransferTest, ProgBusy) {
-  ExpectCheckBusy(true);
-  EXPECT_EQ(flash_ctrl_data_write(0, 4, NULL), kErrorFlashCtrlBusy);
-}
-
-TEST_F(TransferTest, EraseBusy) {
-  ExpectCheckBusy(true);
-  EXPECT_EQ(flash_ctrl_data_erase(0, kFlashCtrlEraseTypePage),
-            kErrorFlashCtrlBusy);
-}
-
 TEST_F(TransferTest, ReadDataOk) {
   ExpectTransferStart(0, 0, 0, FLASH_CTRL_CONTROL_OP_VALUE_READ, 0x01234567,
                       words_.size());
diff --git a/sw/device/silicon_creator/lib/error.h b/sw/device/silicon_creator/lib/error.h
index 8c36bd7..950ed99 100644
--- a/sw/device/silicon_creator/lib/error.h
+++ b/sw/device/silicon_creator/lib/error.h
@@ -98,7 +98,6 @@
   X(kErrorFlashCtrlInfoWrite,         ERROR_(4, kModuleFlashCtrl, kInternal)), \
   X(kErrorFlashCtrlDataErase,         ERROR_(5, kModuleFlashCtrl, kInternal)), \
   X(kErrorFlashCtrlInfoErase,         ERROR_(6, kModuleFlashCtrl, kInternal)), \
-  X(kErrorFlashCtrlBusy,              ERROR_(7, kModuleFlashCtrl, kUnavailable)), \
   X(kErrorSecMmioRegFileSize,         ERROR_(0, kModuleSecMmio, kResourceExhausted)), \
   X(kErrorSecMmioReadFault,           ERROR_(1, kModuleSecMmio, kInternal)), \
   X(kErrorSecMmioWriteFault,          ERROR_(2, kModuleSecMmio, kInternal)), \