5 #include "sw/device/silicon_creator/rom_ext/rom_ext_boot_policy.h"
7 #include "sw/device/silicon_creator/lib/boot_data.h"
8 #include "sw/device/silicon_creator/lib/error.h"
9 #include "sw/device/silicon_creator/lib/manifest.h"
10 #include "sw/device/silicon_creator/rom_ext/rom_ext_boot_policy_ptrs.h"
14 const manifest_t *slot_a = rom_ext_boot_policy_manifest_a_get();
15 const manifest_t *slot_b = rom_ext_boot_policy_manifest_b_get();
17 switch (launder32(slot)) {
21 .ordered = {slot_b, slot_a},
27 .ordered = {slot_a, slot_b},
37 return kErrorManifestBadVersionMajor;
42 return kErrorManifestBadSignedRegion;
51 return kErrorManifestBadCodeRegion;
58 return kErrorManifestBadEntryPoint;
67 return kErrorBootPolicyBadIdentifier;
71 return kErrorBootPolicyBadLength;
74 return kErrorBootPolicyRollback;
79 RETURN_IF_ERROR(manifest_check_rom_ext(
manifest));
83 extern const manifest_t *rom_ext_boot_policy_manifest_a_get(
void);
84 extern const manifest_t *rom_ext_boot_policy_manifest_b_get(
void);