[flash_ctrl, sw] update test for new scramble / ECC control scheme

Signed-off-by: Timothy Chen <timothytim@google.com>
diff --git a/sw/device/lib/flash_ctrl.c b/sw/device/lib/flash_ctrl.c
index 371d69c..eaa9478 100644
--- a/sw/device/lib/flash_ctrl.c
+++ b/sw/device/lib/flash_ctrl.c
@@ -132,10 +132,6 @@
   return get_clr_err();
 }
 
-void flash_cfg_scramble_enable(bool en) {
-  REG32(FLASH_CTRL_SCRAMBLE_EN(0)) = en & 1;
-}
-
 void flash_cfg_bank_erase(bank_index_t bank, bool erase_en) {
   REG32(FLASH_CTRL_MP_BANK_CFG(0)) =
       (erase_en) ? SETBIT(REG32(FLASH_CTRL_MP_BANK_CFG(0)), bank)
@@ -160,12 +156,15 @@
         region_cfg->rd_en << FLASH_CTRL_MP_REGION_CFG_0_RD_EN_0 |
         region_cfg->prog_en << FLASH_CTRL_MP_REGION_CFG_0_PROG_EN_0 |
         region_cfg->erase_en << FLASH_CTRL_MP_REGION_CFG_0_ERASE_EN_0 |
+        region_cfg->scramble_en << FLASH_CTRL_MP_REGION_CFG_0_SCRAMBLE_EN_0 |
         0x1 << FLASH_CTRL_MP_REGION_CFG_0_EN_0;
   } else if (region_cfg->part == kInfoPartition) {
     reg_value =
         region_cfg->rd_en << FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_RD_EN_0 |
         region_cfg->prog_en << FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_PROG_EN_0 |
         region_cfg->erase_en << FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_ERASE_EN_0 |
+        region_cfg->scramble_en
+            << FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_SCRAMBLE_EN_0 |
         0x1 << FLASH_CTRL_BANK0_INFO0_PAGE_CFG_0_EN_0;
 
     bank_sel = region_cfg->base / FLASH_PAGES_PER_BANK;
diff --git a/sw/device/lib/flash_ctrl.h b/sw/device/lib/flash_ctrl.h
index 94f1b0e..ff5d5cf 100644
--- a/sw/device/lib/flash_ctrl.h
+++ b/sw/device/lib/flash_ctrl.h
@@ -50,6 +50,8 @@
   uint32_t prog_en;
   /** Erase enable flag. */
   uint32_t erase_en;
+  /** Scramble / ECC enable flag. */
+  uint32_t scramble_en;
 } mp_region_t;
 
 /**
@@ -100,11 +102,6 @@
 void flash_cfg_bank_erase(bank_index_t bank, bool erase_en);
 
 /**
- * Configure scramble enable
- */
-void flash_cfg_scramble_enable(bool en);
-
-/**
  * Set flash controller default permissions.
  *
  * @param rd_end Read enable.
diff --git a/sw/device/tests/flash_ctrl_test.c b/sw/device/tests/flash_ctrl_test.c
index 06d16d0..bda92de 100644
--- a/sw/device/tests/flash_ctrl_test.c
+++ b/sw/device/tests/flash_ctrl_test.c
@@ -34,17 +34,27 @@
                               /*erase_en=*/true);
 
   // info partition has no default access, specifically setup a region
-  mp_region_t info_region = {
-      .num = 0x0,
-      .base = FLASH_PAGES_PER_BANK,
-      .size = 0x1,
-      .part = kInfoPartition,
-      .rd_en = true,
-      .prog_en = true,
-      .erase_en = true,
-  };
+  mp_region_t info_region = {.num = 0x0,
+                             .base = FLASH_PAGES_PER_BANK,
+                             .size = 0x1,
+                             .part = kInfoPartition,
+                             .rd_en = true,
+                             .prog_en = true,
+                             .erase_en = true,
+                             .scramble_en = true};
   flash_cfg_region(&info_region);
 
+  // also setup data region to enable scrambling
+  mp_region_t data_region = {.num = 0x0,
+                             .base = FLASH_PAGES_PER_BANK,
+                             .size = 0x1,
+                             .part = kDataPartition,
+                             .rd_en = true,
+                             .prog_en = true,
+                             .erase_en = true,
+                             .scramble_en = true};
+  flash_cfg_region(&data_region);
+
   uintptr_t flash_bank_1_addr = FLASH_MEM_BASE_ADDR + FLASH_BANK_SZ;
   mmio_region_t flash_bank_1 = mmio_region_from_addr(flash_bank_1_addr);
 
@@ -112,15 +122,14 @@
                               /*erase_en=*/true);
 
   // A memory protection region representing the first page of the second bank.
-  mp_region_t protection_region = {
-      .num = 0x0,
-      .base = FLASH_PAGES_PER_BANK,
-      .size = 0x1,
-      .part = kDataPartition,
-      .rd_en = true,
-      .prog_en = true,
-      .erase_en = true,
-  };
+  mp_region_t protection_region = {.num = 0x0,
+                                   .base = FLASH_PAGES_PER_BANK,
+                                   .size = 0x1,
+                                   .part = kDataPartition,
+                                   .rd_en = true,
+                                   .prog_en = true,
+                                   .erase_en = true,
+                                   .scramble_en = false};
 
   uintptr_t ok_region_start =
       FLASH_MEM_BASE_ADDR + (protection_region.base * FLASH_PAGE_SZ);
@@ -181,7 +190,6 @@
 
   LOG_INFO("flash test!");
 
-  flash_cfg_scramble_enable(true);
   flash_cfg_bank_erase(FLASH_BANK_0, /*erase_en=*/true);
   flash_cfg_bank_erase(FLASH_BANK_1, /*erase_en=*/true);