5 #include "sw/device/silicon_creator/rom_ext/imm_section/imm_section.h"
10 #include "sw/device/silicon_creator/lib/base/boot_measurements.h"
12 #include "sw/device/silicon_creator/lib/cert/dice_chain.h"
13 #include "sw/device/silicon_creator/lib/drivers/flash_ctrl.h"
14 #include "sw/device/silicon_creator/lib/drivers/rnd.h"
15 #include "sw/device/silicon_creator/lib/epmp_state.h"
16 #include "sw/device/silicon_creator/lib/error.h"
17 #include "sw/device/silicon_creator/lib/manifest.h"
18 #include "sw/device/silicon_creator/lib/ownership/ownership_key.h"
19 #include "sw/device/silicon_creator/rom_ext/imm_section/imm_section_epmp.h"
20 #include "sw/device/silicon_creator/rom_ext/rom_ext_manifest.h"
23 static rom_error_t imm_section_start(
void) {
25 HARDENED_RETURN_IF_ERROR(epmp_state_check());
33 HARDENED_RETURN_IF_ERROR(imm_section_epmp_reconfigure());
37 flash_ctrl_cert_info_page_creator_cfg(&kFlashCtrlInfoPageAttestationKeySeeds);
38 flash_ctrl_cert_info_page_owner_restrict(
39 &kFlashCtrlInfoPageAttestationKeySeeds);
40 flash_ctrl_info_cfg_lock(&kFlashCtrlInfoPageAttestationKeySeeds);
43 const manifest_t *rom_ext = rom_ext_manifest();
44 HARDENED_RETURN_IF_ERROR(dice_chain_init());
45 HARDENED_RETURN_IF_ERROR(dice_chain_attestation_silicon());
48 HARDENED_RETURN_IF_ERROR(ownership_seal_init());
50 HARDENED_RETURN_IF_ERROR(
54 HARDENED_RETURN_IF_ERROR(imm_section_epmp_mutable_rx(rom_ext));
59 void imm_section_main(
void) {
60 rom_error_t error = imm_section_start();