diff --git a/sw/device/silicon_creator/lib/manifest.h b/sw/device/silicon_creator/lib/manifest.h
index 93174c0..842e2d4 100644
--- a/sw/device/silicon_creator/lib/manifest.h
+++ b/sw/device/silicon_creator/lib/manifest.h
@@ -38,10 +38,6 @@
    */
   uint32_t identifier;
   /**
-   * FIXME: remove this field.
-   */
-  uint32_t reserved0;
-  /**
    * Image signature.
    *
    * The signed region of an image starts at `image_length` and ends at the
@@ -54,9 +50,13 @@
    */
   uint32_t image_length;
   /**
-   * FIXME: Replace with max_version, min_version.
+   * Image major version.
    */
-  uint32_t image_version;
+  uint32_t image_major_version;
+  /**
+   * Image minor version.
+   */
+  uint32_t image_minor_version;
   /**
    * Image timestamp.
    */
@@ -66,51 +66,33 @@
    */
   uint32_t exponent;
   /**
-   * FIXME: remove this field.
+   * 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.
    */
-  uint32_t reserved1;
+  uint32_t binding_value[8];
   /**
-   * FIXME: Replace these with binding_tag and max_key_version.
+   * Maximum allowed version for keys generated at the next boot stage.
    */
-  uint32_t usage_constraints[8];
-  uint32_t lockdown_info[4];
+  uint32_t max_key_version;
   /**
    * Modulus of the signer's RSA public key.
    */
   sigverify_rsa_buffer_t modulus;
-  /**
-   * Extension fields.
-   * FIXME: Remove these until we have a clear use-case.
-   */
-  uint32_t extension0_offset;
-  uint32_t extension0_checksum;
-  uint32_t extension1_offset;
-  uint32_t extension1_checksum;
-  uint32_t extension2_offset;
-  uint32_t extension2_checksum;
-  uint32_t extension3_offset;
-  uint32_t extension3_checksum;
 } manifest_t;
 
 OT_ASSERT_MEMBER_OFFSET(manifest_t, identifier, 0);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, reserved0, 4);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, signature, 8);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, image_length, 392);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, image_version, 396);
+OT_ASSERT_MEMBER_OFFSET(manifest_t, signature, 4);
+OT_ASSERT_MEMBER_OFFSET(manifest_t, image_length, 388);
+OT_ASSERT_MEMBER_OFFSET(manifest_t, image_major_version, 392);
+OT_ASSERT_MEMBER_OFFSET(manifest_t, image_minor_version, 396);
 OT_ASSERT_MEMBER_OFFSET(manifest_t, image_timestamp, 400);
 OT_ASSERT_MEMBER_OFFSET(manifest_t, exponent, 408);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, reserved1, 412);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, usage_constraints, 416);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, lockdown_info, 448);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, modulus, 464);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension0_offset, 848);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension0_checksum, 852);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension1_offset, 856);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension1_checksum, 860);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension2_offset, 864);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension2_checksum, 868);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension3_offset, 872);
-OT_ASSERT_MEMBER_OFFSET(manifest_t, extension3_checksum, 876);
+OT_ASSERT_MEMBER_OFFSET(manifest_t, binding_value, 412);
+OT_ASSERT_MEMBER_OFFSET(manifest_t, max_key_version, 444);
+OT_ASSERT_MEMBER_OFFSET(manifest_t, modulus, 448);
 OT_ASSERT_SIZE(manifest_t, MANIFEST_SIZE);
 
 /**
diff --git a/sw/device/silicon_creator/lib/manifest_size.h b/sw/device/silicon_creator/lib/manifest_size.h
index 3aae1fb..3cffc2c 100644
--- a/sw/device/silicon_creator/lib/manifest_size.h
+++ b/sw/device/silicon_creator/lib/manifest_size.h
@@ -8,6 +8,6 @@
 /**
  * Manifest size for boot stages stored in flash (in bytes).
  */
-#define MANIFEST_SIZE 880
+#define MANIFEST_SIZE 832
 
 #endif  // OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_MANIFEST_SIZE_H_
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 8e6c6a9..faf8755 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
@@ -26,31 +26,22 @@
 //      sw/device/silicon_creator/lib/manifest.h \
 //      -- -I./ -Isw/device/lib/base/freestanding
 
-pub const MANIFEST_SIZE: u32 = 880;
+pub const MANIFEST_SIZE: u32 = 832;
 
 /// Manifest for boot stage images stored in flash.
 #[repr(C)]
 #[derive(FromBytes, AsBytes, Debug, Default)]
 pub struct Manifest {
     pub identifier: u32,
-    pub reserved0: u32,
     pub signature: SigverifyRsaBuffer,
     pub image_length: u32,
-    pub image_version: u32,
+    pub image_major_version: u32,
+    pub image_minor_version: u32,
     pub image_timestamp: u64,
     pub exponent: u32,
-    pub reserved1: u32,
-    pub usage_constraints: [u32; 8usize],
-    pub lockdown_info: [u32; 4usize],
+    pub binding_value: [u32; 8usize],
+    pub max_key_version: u32,
     pub modulus: SigverifyRsaBuffer,
-    pub extension0_offset: u32,
-    pub extension0_checksum: u32,
-    pub extension1_offset: u32,
-    pub extension1_checksum: u32,
-    pub extension2_offset: u32,
-    pub extension2_checksum: u32,
-    pub extension3_offset: u32,
-    pub extension3_checksum: u32,
 }
 
 /// A type that holds 96 32-bit words for RSA-3072.
@@ -73,22 +64,14 @@
 /// TODO(#6915): Convert this to a unit test after we start running rust tests during our builds.
 pub fn check_manifest_layout() {
     assert_eq!(offset_of!(Manifest, identifier), 0);
-    assert_eq!(offset_of!(Manifest, reserved0), 4);
-    assert_eq!(offset_of!(Manifest, signature), 8);
-    assert_eq!(offset_of!(Manifest, image_length), 392);
-    assert_eq!(offset_of!(Manifest, image_version), 396);
+    assert_eq!(offset_of!(Manifest, signature), 4);
+    assert_eq!(offset_of!(Manifest, image_length), 388);
+    assert_eq!(offset_of!(Manifest, image_major_version), 392);
+    assert_eq!(offset_of!(Manifest, image_minor_version), 396);
     assert_eq!(offset_of!(Manifest, image_timestamp), 400);
     assert_eq!(offset_of!(Manifest, exponent), 408);
-    assert_eq!(offset_of!(Manifest, reserved1), 412);
-    assert_eq!(offset_of!(Manifest, usage_constraints), 416);
-    assert_eq!(offset_of!(Manifest, lockdown_info), 448);
-    assert_eq!(offset_of!(Manifest, modulus), 464);
-    assert_eq!(offset_of!(Manifest, extension0_offset), 848);
-    assert_eq!(offset_of!(Manifest, extension0_checksum), 852);
-    assert_eq!(offset_of!(Manifest, extension1_offset), 856);
-    assert_eq!(offset_of!(Manifest, extension1_checksum), 860);
-    assert_eq!(offset_of!(Manifest, extension2_offset), 864);
-    assert_eq!(offset_of!(Manifest, extension2_checksum), 868);
-    assert_eq!(offset_of!(Manifest, extension3_offset), 872);
+    assert_eq!(offset_of!(Manifest, binding_value), 412);
+    assert_eq!(offset_of!(Manifest, max_key_version), 444);
+    assert_eq!(offset_of!(Manifest, modulus), 448);
     assert_eq!(size_of::<Manifest>(), MANIFEST_SIZE as usize);
 }
