5 #ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_SHUTDOWN_H_
6 #define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_SHUTDOWN_H_
12 #include "sw/device/silicon_creator/lib/drivers/lifecycle.h"
13 #include "sw/device/silicon_creator/lib/error.h"
26 #define SHUTDOWN_IF_ERROR(expr_) \
28 rom_error_t error_ = expr_; \
29 if (launder32(error_) != kErrorOk) { \
30 shutdown_finalize(error_); \
32 HARDENED_CHECK_EQ(error_, kErrorOk); \
46 rom_error_t shutdown_init(lifecycle_state_t lc_state);
67 typedef enum shutdown_error_redact {
68 kShutdownErrorRedactNone = 0xe2290aa5,
69 kShutdownErrorRedactError = 0x3367d3d4,
70 kShutdownErrorRedactModule = 0x1e791123,
71 kShutdownErrorRedactAll = 0x48eb4bd9,
72 } shutdown_error_redact_t;
78 #define LOG_PREFIX_(a_, b_, c_) (':' << 24 | (c_) << 16 | (b_) << 8 | (a_))
88 typedef enum shutdown_log_prefix {
89 kShutdownLogPrefixBootFault = LOG_PREFIX_(
'B',
'F',
'V'),
90 kShutdownLogPrefixLifecycle = LOG_PREFIX_(
'L',
'C',
'V'),
91 kShutdownLogPrefixVersion = LOG_PREFIX_(
'V',
'E',
'R'),
92 } shutdown_log_prefix_t;
101 shutdown_error_redact_t shutdown_redact_policy(
void);
111 uint32_t shutdown_redact(rom_error_t reason, shutdown_error_redact_t severity);
118 #ifdef OT_PLATFORM_RV32
124 shutdown_finalize(rom_error_t reason);