diff --git a/sw/device/silicon_creator/lib/drivers/keymgr.c b/sw/device/silicon_creator/lib/drivers/keymgr.c
index 2e64dae..86acfad 100644
--- a/sw/device/silicon_creator/lib/drivers/keymgr.c
+++ b/sw/device/silicon_creator/lib/drivers/keymgr.c
@@ -4,6 +4,7 @@
 
 #include "sw/device/silicon_creator/lib/drivers/keymgr.h"
 
+#include "sw/device/lib/base/memory.h"
 #include "sw/device/silicon_creator/lib/base/abs_mmio.h"
 
 #include "hw/top_earlgrey/sw/autogen/top_earlgrey.h"
@@ -74,8 +75,8 @@
   return kErrorOk;
 }
 
-rom_error_t keymgr_state_advance_to_creator(const uint32_t binding_value[8],
-                                            uint32_t max_key_ver) {
+rom_error_t keymgr_state_advance_to_creator(
+    const keymgr_binding_value_t *binding_value, uint32_t max_key_ver) {
   RETURN_IF_ERROR(
       check_expected_state(KEYMGR_WORKING_STATE_STATE_VALUE_INIT,
                            KEYMGR_OP_STATUS_STATUS_VALUE_DONE_SUCCESS));
@@ -83,10 +84,10 @@
   // Write and lock (rw0c) the software binding value. This register is unlocked
   // by hardware upon a successful state transition.
   // FIXME: Consider using sec_mmio module for the following register writes.
-  for (size_t i = 0; i < 8; ++i) {
+  for (size_t i = 0; i < ARRAYSIZE(binding_value->data); ++i) {
     abs_mmio_write32(
         kBase + KEYMGR_SW_BINDING_0_REG_OFFSET + i * sizeof(uint32_t),
-        binding_value[i]);
+        binding_value->data[i]);
   }
   abs_mmio_write32(kBase + KEYMGR_SW_BINDING_REGWEN_REG_OFFSET, 0);
 
diff --git a/sw/device/silicon_creator/lib/drivers/keymgr.h b/sw/device/silicon_creator/lib/drivers/keymgr.h
index 5513012..15642cf 100644
--- a/sw/device/silicon_creator/lib/drivers/keymgr.h
+++ b/sw/device/silicon_creator/lib/drivers/keymgr.h
@@ -9,6 +9,7 @@
 #include <stdint.h>
 
 #include "sw/device/silicon_creator/lib/error.h"
+#include "sw/device/silicon_creator/lib/keymgr_binding_value.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -43,9 +44,8 @@
  * manifest.
  * @return The result of the operation.
  */
-// TODO: Switch binding_value to a wrapped struct parameter.
-rom_error_t keymgr_state_advance_to_creator(const uint32_t binding_value[8],
-                                            uint32_t max_key_version);
+rom_error_t keymgr_state_advance_to_creator(
+    const keymgr_binding_value_t *binding_value, uint32_t max_key_version);
 
 /**
  * Checks the state of the key manager.
diff --git a/sw/device/silicon_creator/lib/drivers/keymgr_unittest.cc b/sw/device/silicon_creator/lib/drivers/keymgr_unittest.cc
index 03d5b95..3ec0e48 100644
--- a/sw/device/silicon_creator/lib/drivers/keymgr_unittest.cc
+++ b/sw/device/silicon_creator/lib/drivers/keymgr_unittest.cc
@@ -16,12 +16,10 @@
 
 namespace keymgr_unittest {
 namespace {
-using ::testing::ElementsAreArray;
-using ::testing::Test;
 
 struct SwBindingCfg {
   uint32_t max_key_ver;
-  uint32_t sw_binding_value[8];
+  keymgr_binding_value_t binding_value;
 };
 
 class KeymgrTest : public mask_rom_test::MaskRomTest {
@@ -39,7 +37,7 @@
   uint32_t base_ = TOP_EARLGREY_KEYMGR_BASE_ADDR;
   SwBindingCfg cfg_ = {
       .max_key_ver = 0xA5A5A5A5,
-      .sw_binding_value = {0, 1, 2, 3, 4, 6, 7, 8},
+      .binding_value = {0, 1, 2, 3, 4, 6, 7, 8},
   };
   mask_rom_test::MockAbsMmio mmio_;
 };
@@ -77,21 +75,21 @@
                     /*err_code=*/0u);
 
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_0_REG_OFFSET,
-                     cfg_.sw_binding_value[0]);
+                     cfg_.binding_value.data[0]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_1_REG_OFFSET,
-                     cfg_.sw_binding_value[1]);
+                     cfg_.binding_value.data[1]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_2_REG_OFFSET,
-                     cfg_.sw_binding_value[2]);
+                     cfg_.binding_value.data[2]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_3_REG_OFFSET,
-                     cfg_.sw_binding_value[3]);
+                     cfg_.binding_value.data[3]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_4_REG_OFFSET,
-                     cfg_.sw_binding_value[4]);
+                     cfg_.binding_value.data[4]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_5_REG_OFFSET,
-                     cfg_.sw_binding_value[5]);
+                     cfg_.binding_value.data[5]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_6_REG_OFFSET,
-                     cfg_.sw_binding_value[6]);
+                     cfg_.binding_value.data[6]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_7_REG_OFFSET,
-                     cfg_.sw_binding_value[7]);
+                     cfg_.binding_value.data[7]);
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_SW_BINDING_REGWEN_REG_OFFSET, 0);
 
   EXPECT_ABS_WRITE32(mmio_, base_ + KEYMGR_MAX_CREATOR_KEY_VER_REG_OFFSET,
@@ -109,7 +107,7 @@
       });
 
   EXPECT_EQ(
-      keymgr_state_advance_to_creator(cfg_.sw_binding_value, cfg_.max_key_ver),
+      keymgr_state_advance_to_creator(&cfg_.binding_value, cfg_.max_key_ver),
       kErrorOk);
 }
 
@@ -119,7 +117,7 @@
                     KEYMGR_WORKING_STATE_STATE_VALUE_RESET,
                     /*err_code=*/0u);
   EXPECT_EQ(
-      keymgr_state_advance_to_creator(cfg_.sw_binding_value, cfg_.max_key_ver),
+      keymgr_state_advance_to_creator(&cfg_.binding_value, cfg_.max_key_ver),
       kErrorKeymgrInternal);
 
   // Any non-idle status is expected to fail.
@@ -127,7 +125,7 @@
                     KEYMGR_WORKING_STATE_STATE_VALUE_INIT,
                     /*err_code=*/0u);
   EXPECT_EQ(
-      keymgr_state_advance_to_creator(cfg_.sw_binding_value, cfg_.max_key_ver),
+      keymgr_state_advance_to_creator(&cfg_.binding_value, cfg_.max_key_ver),
       kErrorKeymgrInternal);
 }
 
diff --git a/sw/device/silicon_creator/lib/keymgr_binding_value.h b/sw/device/silicon_creator/lib/keymgr_binding_value.h
new file mode 100644
index 0000000..cb017a7
--- /dev/null
+++ b/sw/device/silicon_creator/lib/keymgr_binding_value.h
@@ -0,0 +1,32 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+#ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_KEYMGR_BINDING_VALUE_H_
+#define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_KEYMGR_BINDING_VALUE_H_
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+/**
+ * Binding value used by key manager to derive secret values.
+ *
+ * A change in this value changes the secret value of key manager, and
+ * consequently, the versioned keys and identity seeds generated at subsequent
+ * boot stages.
+ *
+ * Note: The size of this value is an implementation detail of the key manager
+ * hardware.
+ */
+typedef struct keymgr_binding_value {
+  uint32_t data[8];
+} keymgr_binding_value_t;
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif  // __cplusplus
+
+#endif  // OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_KEYMGR_BINDING_VALUE_H_
diff --git a/sw/device/silicon_creator/lib/manifest.h b/sw/device/silicon_creator/lib/manifest.h
index 842e2d4..dc3f60f 100644
--- a/sw/device/silicon_creator/lib/manifest.h
+++ b/sw/device/silicon_creator/lib/manifest.h
@@ -9,6 +9,7 @@
 
 #include "sw/device/lib/base/macros.h"
 #include "sw/device/silicon_creator/lib/error.h"
+#include "sw/device/silicon_creator/lib/keymgr_binding_value.h"
 #include "sw/device/silicon_creator/lib/manifest_size.h"
 // FIXME: Move sigverify to sw/device/silicon_creator/lib
 #include "sw/device/silicon_creator/mask_rom/sig_verify_keys.h"
@@ -72,7 +73,7 @@
    * consequently, the versioned keys and identity seeds generated at subsequent
    * boot stages.
    */
-  uint32_t binding_value[8];
+  keymgr_binding_value_t binding_value;
   /**
    * Maximum allowed version for keys generated at the next boot stage.
    */
diff --git a/sw/device/silicon_creator/mask_rom/mask_rom.c b/sw/device/silicon_creator/mask_rom/mask_rom.c
index 0b76c46..a05bed7 100644
--- a/sw/device/silicon_creator/mask_rom/mask_rom.c
+++ b/sw/device/silicon_creator/mask_rom/mask_rom.c
@@ -133,9 +133,9 @@
     //   the current ROM_EXT.
     // TODO(#5955): Switch to manifest in C struct format update this code to
     // use the sw binding and max key version fields from the manifest.
-    uint32_t binding_value[8] = {0};
+    keymgr_binding_value_t binding_value = {0};
     uint32_t max_key_version = 0x1;
-    if (keymgr_state_advance_to_creator(binding_value, max_key_version) !=
+    if (keymgr_state_advance_to_creator(&binding_value, max_key_version) !=
         kErrorOk) {
       break;
     }
diff --git a/sw/host/rom_ext_image_tools/signer/image/src/manifest.rs b/sw/host/rom_ext_image_tools/signer/image/src/manifest.rs
index faf8755..d569596 100644
--- a/sw/host/rom_ext_image_tools/signer/image/src/manifest.rs
+++ b/sw/host/rom_ext_image_tools/signer/image/src/manifest.rs
@@ -39,7 +39,7 @@
     pub image_minor_version: u32,
     pub image_timestamp: u64,
     pub exponent: u32,
-    pub binding_value: [u32; 8usize],
+    pub binding_value: KeymgrBindingValue,
     pub max_key_version: u32,
     pub modulus: SigverifyRsaBuffer,
 }
@@ -57,6 +57,12 @@
     }
 }
 
+#[repr(C)]
+#[derive(FromBytes, AsBytes, Debug, Default)]
+pub struct KeymgrBindingValue {
+        pub data: [u32; 8usize],
+}
+
 /// Checks the layout of the manifest struct.
 ///
 /// Implemented as a function because using `offset_of!` at compile-time
