14 static const char *
const names[] = {
15 [0] =
"Legacy Shutdown",
16 [5] =
"Load memory type error in ACM area",
17 [6] =
"Unrecognized ACM format",
18 [7] =
"Failure to authenticate",
19 [8] =
"Invalid ACM format",
20 [9] =
"Unexpected Snoop hit",
21 [10] =
"Invalid event",
23 [12] =
"Machine check event",
25 [14] =
"AC memory corruption",
26 [15] =
"Illegal voltage/bus ratio",
102 const size_t acm_size = (acm_header->
size & 0xffffff) << 2;
107 ((
const unsigned char *)acm_header + info_off);
124 switch (acm_header->
flags) {
141 switch (acm_header->
size) {
167 for (
size_t i = 0; i <
sizeof(
info->uuid); i++)
203 if ((reg64 != 0 && reg64 != ~0UL) &&
235 &max_size_acm_area, &memory_type_mask,
236 &senter_function_disable, &txt_feature_flags)) {
243 version_numbers_supported);
244 printk(
BIOS_DEBUG,
" Max size of authenticated code execution area: %08x\n",
246 printk(
BIOS_DEBUG,
" External memory types supported during AC mode: %08x\n",
249 (senter_function_disable >> 8) & 0x7f);
static uint32_t read32(const void *addr)
uint64_t read64(const void *addr)
static uint8_t read8(const void *addr)
#define printk(level,...)
static struct smmstore_params_info info
bool getsec_parameter(uint32_t *version_mask, uint32_t *version_numbers_supported, uint32_t *max_size_acm_area, uint32_t *memory_type_mask, uint32_t *senter_function_disable, uint32_t *txt_feature_flags)
Get information as returned by getsec[PARAMETER].
void smm_region(uintptr_t *start, size_t *size)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_CRIT
BIOS_CRIT - Recovery unlikely.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.
int intel_txt_log_acm_error(const uint32_t acm_error)
Dump the ACM error status bits.
bool intel_txt_chipset_is_production_fused(void)
unsigned long long uint64_t
void txt_dump_regions(void)
void intel_txt_log_bios_acm_error(void)
Dump useful informaation about the BIOS ACM state.
void txt_dump_getsec_parameters(void)
void txt_dump_chipset_info(void)
Dump information about the chipset's TXT capabilities.
void txt_dump_acm_info(const struct acm_header_v0 *acm_header)
Dump information about the provided ACM.
const char * intel_txt_processor_error_type(uint8_t type)
static void log_txt_error(const char *phase)
Logs microcode or SINIT ACM errors.
#define ACM_FORMAT_SIZE_64KB
#define ACMERROR_TXT_EXTERNAL
#define TXT_ESTS_TXT_RESET_STS
#define GETSEC_PARAMS_TXT_EXT_MACHINE_CHECK
#define ACM_FORMAT_SIZE_128KB
#define ACM_FORMAT_FLAGS_NPW
#define ACM_FORMAT_FLAGS_PW
#define GETSEC_PARAMS_TXT_EXT_CRTM_SUPPORT
#define TXT_ACM_KEY_HASH_LEN
#define ACMERROR_TXT_VALID
#define ACM_FORMAT_SIZE_256KB
#define ACM_FORMAT_FLAGS_DEBUG
#define TXT_BIOSACM_ERRORCODE