5#ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_BOOT_DATA_H_
6#define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_BOOT_DATA_H_
9#include "sw/device/silicon_creator/lib/drivers/hmac.h"
10#include "sw/device/silicon_creator/lib/drivers/lifecycle.h"
11#include "sw/device/silicon_creator/lib/error.h"
12#include "sw/device/silicon_creator/lib/nonce.h"
116 kBootDataIdentifier = 0x41444f42,
120 kBootDataVersion1 = 0xd4ce468e,
124 kBootDataVersion2 = 0xad51e729,
128 kBootDataValidEntry = UINT64_MAX,
135 kBootDataInvalidEntry = 0,
142 kBootDataDefaultCounterVal = 5,
146 kBootDataNumWords =
sizeof(boot_data_t) /
sizeof(uint32_t),
156 kBootDataEntriesPerPage = 16,
158static_assert(kBootDataInvalidEntry != kBootDataValidEntry,
159 "Invalidation values cannot be equal.");
164typedef enum boot_slot {
166 kBootSlotA = 0x5f5f4141,
168 kBootSlotB = 0x42425f5f,
170 kBootSlotUnspecified = 0x55555555,
189rom_error_t boot_data_read(lifecycle_state_t lc_state, boot_data_t *
boot_data);
201rom_error_t boot_data_write(
const boot_data_t *
boot_data);
213rom_error_t boot_data_check(
const boot_data_t *
boot_data);