4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GUIDs and definitions used for Common Platform Error Record.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @par Revision Reference:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GUIDs introduced from UEFI 2.1 Specification.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef __CPER_GUID_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define __CPER_GUID_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack(1)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_RECORD_SIGNATURE_START EFI_SIGNATURE_32('C', 'P', 'E', 'R')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_RECORD_SIGNATURE_END 0xFFFFFFFF
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error Severity in Error Record Header and Error Section Descriptor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_RECOVERABLE 0x00000000
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_FATAL 0x00000001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_CORRECTED 0x00000002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_INFO 0x00000003
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates the validity of the following fields
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// in Error Record Header.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_RECORD_HEADER_PLATFORM_ID_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_RECORD_HEADER_TIME_STAMP_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_RECORD_HEADER_PARTITION_ID_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Timestamp is precise if this bit is set and correlates to the time of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// error event.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_TIME_STAMP_PRECISE BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The timestamp correlates to the time when the error information was collected
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// by the system software and may not necessarily represent the time of the error
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// event. The timestamp contains the local time in BCD format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Seconds;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Minutes;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Hours;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Flag;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Day;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Month;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Year;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Century;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ERROR_TIME_STAMP;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// GUID value indicating the record association with an error event notification type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_CMC_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x2DCE8BB1, 0xBDD7, 0x450e, { 0xB9, 0xAD, 0x9C, 0xF4, 0xEB, 0xD4, 0xF8, 0x90 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_CPE_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x4E292F96, 0xD843, 0x4a55, { 0xA8, 0xC2, 0xD4, 0x81, 0xF2, 0x7E, 0xBE, 0xEE } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_MCE_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xE8F56FFE, 0x919C, 0x4cc5, { 0xBA, 0x88, 0x65, 0xAB, 0xE1, 0x49, 0x13, 0xBB } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_PCIE_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xCF93C01F, 0x1A16, 0x4dfc, { 0xB8, 0xBC, 0x9C, 0x4D, 0xAF, 0x67, 0xC1, 0x04 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_INIT_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xCC5263E8, 0x9308, 0x454a, { 0x89, 0xD0, 0x34, 0x0B, 0xD3, 0x9B, 0xC9, 0x8E } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_NMI_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5BAD89FF, 0xB7E6, 0x42c9, { 0x81, 0x4A, 0xCF, 0x24, 0x85, 0xD6, 0xE9, 0x8A } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_BOOT_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x3D61A466, 0xAB40, 0x409a, { 0xA6, 0x98, 0xF3, 0x62, 0xD4, 0x64, 0xB3, 0x8F } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_EVENT_NOTIFICATION_TYEP_DMAR_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x667DD791, 0xC6B3, 0x4c27, { 0x8A, 0x6B, 0x0F, 0x8E, 0x72, 0x2D, 0xEB, 0x41 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error Record Header Flags
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HW_ERROR_FLAGS_RECOVERED 0x00000001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HW_ERROR_FLAGS_PREVERR 0x00000002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HW_ERROR_FLAGS_SIMULATED 0x00000004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Common error record header
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 SignatureStart;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Revision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 SignatureEnd;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 SectionCount;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 ErrorSeverity;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 ValidationBits;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 RecordLength;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ERROR_TIME_STAMP TimeStamp;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID PlatformID;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID PartitionID;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID CreatorID;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID NotificationType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RecordID;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PersistenceInfo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1[12];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// An array of SectionCount descriptors for the associated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// sections. The number of valid sections is equivalent to the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// SectionCount. The buffer size of the record may include
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// more space to dynamically add additional Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// Descriptors to the error record.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_COMMON_ERROR_RECORD_HEADER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Validity Fields in Error Section Descriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FRU_ID_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FRU_STRING_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Flag field contains information that describes the error section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// in Error Section Descriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FLAGS_PRIMARY BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FLAGS_CONTAINMENT_WARNING BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FLAGS_RESET BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FLAGS_ERROR_THRESHOLD_EXCEEDED BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FLAGS_RESOURCE_NOT_ACCESSIBLE BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FLAGS_LATENT_ERROR BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error Sectition Type GUIDs in Error Section Descriptor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_PROCESSOR_GENERIC_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x9876ccad, 0x47b4, 0x4bdb, { 0xb6, 0x5e, 0x16, 0xf1, 0x93, 0xc4, 0xf3, 0xdb } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_PROCESSOR_SPECIFIC_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xdc3ea0b0, 0xa144, 0x4797, { 0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_PLATFORM_MEMORY_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xa5bc1114, 0x6f64, 0x4ede, { 0xb8, 0x63, 0x3e, 0x83, 0xed, 0x7c, 0x83, 0xb1 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_PCIE_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xd995e954, 0xbbc1, 0x430f, { 0xad, 0x91, 0xb4, 0x4d, 0xcb, 0x3c, 0x6f, 0x35 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_FW_ERROR_RECORD_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x81212a96, 0x09ed, 0x4996, { 0x94, 0x71, 0x8d, 0x72, 0x9c, 0x8e, 0x69, 0xed } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_PCI_PCIX_BUS_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xc5753963, 0x3b84, 0x4095, { 0xbf, 0x78, 0xed, 0xda, 0xd3, 0xf9, 0xc9, 0xdd } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_PCI_DEVICE_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xeb5e4685, 0xca66, 0x4769, { 0xb6, 0xa2, 0x26, 0x06, 0x8b, 0x00, 0x13, 0x26 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_DMAR_GENERIC_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b51fef7, 0xc79d, 0x4434, { 0x8f, 0x1b, 0xaa, 0x62, 0xde, 0x3e, 0x2c, 0x64 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_DIRECTED_IO_DMAR_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x71761d37, 0x32b2, 0x45cd, { 0xa7, 0xd0, 0xb0, 0xfe, 0xdd, 0x93, 0xe8, 0xcf } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ERROR_SECTION_IOMMU_DMAR_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x036f84e1, 0x7f37, 0x428c, { 0xa7, 0x9e, 0x57, 0x5f, 0xdf, 0xaa, 0x84, 0xec } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error Section Descriptor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 SectionOffset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 SectionLength;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Revision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 SecValidMask;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 SectionFlags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv2[3];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID SectionType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID FruId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Severity;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR8 FruString[20];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ERROR_SECTION_DESCRIPTOR;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates whether or not each of the following fields are
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// valid in Proessor Generic Error section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_TYPE_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ISA_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ERROR_TYPE_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_OPERATION_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_FLAGS_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_LEVEL_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_VERSION_VALID BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_BRAND_VALID BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ID_VALID BIT8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_TARGET_ADDR_VALID BIT9
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_REQUESTER_ID_VALID BIT10
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_RESPONDER_ID_VALID BIT11
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_INST_IP_VALID BIT12
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The type of the processor architecture in Proessor Generic Error section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_TYPE_IA32_X64 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_TYPE_IA64 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The type of the instruction set executing when the error occurred in Proessor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Generic Error section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ISA_IA32 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ISA_IA64 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ISA_X64 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The type of error that occurred in Proessor Generic Error section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ERROR_TYPE_UNKNOWN 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ERROR_TYPE_CACHE 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ERROR_TYPE_TLB 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ERROR_TYPE_BUS 0x04
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_ERROR_TYPE_MICRO_ARCH 0x08
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The type of operation in Proessor Generic Error section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_OPERATION_GENERIC 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_OPERATION_DATA_READ 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_OPERATION_DATA_WRITE 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_OPERATION_INSTRUCTION_EXEC 0x03
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Flags bit mask indicates additional information about the error in Proessor Generic
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_FLAGS_RESTARTABLE BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_FLAGS_PRECISE_IP BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_FLAGS_OVERFLOW BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_GENERIC_ERROR_PROC_FLAGS_CORRECTED BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Processor Generic Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// describes processor reported hardware errors for logical processors in the system.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Isa;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ErrorType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Operation;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Level;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Resv1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 VersionInfo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR8 BrandString[128];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ApicId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TargetAddr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RequestorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ResponderId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 InstructionIP;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PROCESSOR_GENERIC_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32 and x64 Specific definitions.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// GUID value indicating the type of Processor Error Information structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// in IA32/X64 Processor Error Information Structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_TYPE_CACHE_CHECK_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xA55701F5, 0xE3EF, 0x43de, {0xAC, 0x72, 0x24, 0x9B, 0x57, 0x3F, 0xAD, 0x2C } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_TYPE_TLB_CHECK_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xFC06B535, 0x5E1F, 0x4562, {0x9F, 0x25, 0x0A, 0x3B, 0x9A, 0xDB, 0x63, 0xC3 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_TYPE_BUS_CHECK_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x1CF3F8B3, 0xC5B1, 0x49a2, {0xAA, 0x59, 0x5E, 0xEF, 0x92, 0xFF, 0xA6, 0x3C } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_TYPE_MS_CHECK_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x48AB7F57, 0xDC34, 0x4f6c, {0xA7, 0xD3, 0xB0, 0xB5, 0xB0, 0xA7, 0x43, 0x14 } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates which fields in the Cache Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// are valid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_TRANSACTION_TYPE_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_LEVEL_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_CONTEXT_CORRUPT_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_UNCORRECTED_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_PRECISE_IP_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_RESTARTABLE_VALID BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OVERFLOW_VALID BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of cache error in the Cache Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_ERROR_TYPE_INSTRUCTION 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_ERROR_TYPE_DATA_ACCESS 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_ERROR_TYPE_GENERIC 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of cache operation that caused the error in the Cache
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_GENERIC 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_GENERIC_READ 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_GENERIC_WRITE 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_DATA_READ 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_DATA_WRITE 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_INSTRUCTION_FETCH 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_PREFETCH 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_EVICTION 7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_CACHE_CHECK_OPERATION_TYPE_SNOOP 8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32/X64 Cache Check Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields:16;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TransactionType:2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Operation:4;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Level:3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ContextCorrupt:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ErrorUncorrected:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PreciseIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RestartableIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Overflow:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Resv1:34;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_CACHE_CHECK_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates which fields in the TLB Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// are valid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_TRANSACTION_TYPE_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_LEVEL_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_CONTEXT_CORRUPT_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_UNCORRECTED_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_PRECISE_IP_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_RESTARTABLE_VALID BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OVERFLOW_VALID BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of cache error in the TLB Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_ERROR_TYPE_INSTRUCTION 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_ERROR_TYPE_DATA_ACCESS 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_ERROR_TYPE_GENERIC 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of cache operation that caused the error in the TLB
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_TYPE_GENERIC 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_TYPE_GENERIC_READ 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_TYPE_GENERIC_WRITE 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_TYPE_DATA_READ 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_TYPE_DATA_WRITE 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_TYPE_INST_FETCH 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_TLB_CHECK_OPERATION_TYPE_PREFETCH 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32/X64 TLB Check Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields:16;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TransactionType:2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Operation:4;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Level:3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ContextCorrupt:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ErrorUncorrected:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PreciseIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RestartableIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Overflow:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Resv1:34;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_TLB_CHECK_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates which fields in the MS Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// are valid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_TRANSACTION_TYPE_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_LEVEL_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_CONTEXT_CORRUPT_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_UNCORRECTED_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_PRECISE_IP_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_RESTARTABLE_VALID BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OVERFLOW_VALID BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_PARTICIPATION_TYPE_VALID BIT8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_TIME_OUT_VALID BIT9
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ADDRESS_SPACE_VALID BIT10
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of cache error in the Bus Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ERROR_TYPE_INSTRUCTION 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ERROR_TYPE_DATA_ACCESS 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ERROR_TYPE_GENERIC 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of cache operation that caused the error in the Bus
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_TYPE_GENERIC 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_TYPE_GENERIC_READ 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_TYPE_GENERIC_WRITE 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_TYPE_DATA_READ 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_TYPE_DATA_WRITE 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_TYPE_INST_FETCH 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_OPERATION_TYPE_PREFETCH 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of Participation
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_PARTICIPATION_TYPE_REQUEST 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_PARTICIPATION_TYPE_RESPONDED 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_PARTICIPATION_TYPE_OBSERVED 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_PARTICIPATION_TYPE_GENERIC 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Type of Address Space
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ADDRESS_SPACE_TYPE_MEMORY 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ADDRESS_SPACE_TYPE_RESERVED 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ADDRESS_SPACE_TYPE_IO 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_BUS_CHECK_ADDRESS_SPACE_TYPE_OTHER 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32/X64 Bus Check Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields:16;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TransactionType:2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Operation:4;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Level:3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ContextCorrupt:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ErrorUncorrected:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PreciseIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RestartableIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Overflow:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ParticipationType:2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TimeOut:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 AddressSpace:2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Resv1:29;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_BUS_CHECK_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates which fields in the MS Check structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// are valid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_ERROR_TYPE_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_CONTEXT_CORRUPT_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_UNCORRECTED_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_PRECISE_IP_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_RESTARTABLE_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_OVERFLOW_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error type identifies the operation that caused the error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_ERROR_TYPE_NO 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_ERROR_TYPE_UNCLASSIFIED 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_ERROR_TYPE_MICROCODE_PARITY 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_ERROR_TYPE_EXTERNAL 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_ERROR_TYPE_FRC 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_MS_CHECK_ERROR_TYPE_INTERNAL_UNCLASSIFIED 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32/X64 MS Check Field Description
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields:16;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ErrorType:3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ContextCorrupt:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ErrorUncorrected:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PreciseIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RestartableIp:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Overflow:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Resv1:40;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_MS_CHECK_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32/X64 Check Information Item
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef union {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IA32_X64_CACHE_CHECK_INFO CacheCheck;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IA32_X64_TLB_CHECK_INFO TlbCheck;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IA32_X64_BUS_CHECK_INFO BusCheck;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IA32_X64_MS_CHECK_INFO MsCheck;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Data64;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_CHECK_INFO_ITEM;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates which fields in the IA32/X64 Processor Error
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Information Structure are valid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_PROC_CHECK_INFO_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_PROC_TARGET_ADDR_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_PROC_REQUESTER_ID_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_PROC_RESPONDER_ID_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IA32_X64_ERROR_PROC_INST_IP_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32/X64 Processor Error Information Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID ErrorType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IA32_X64_CHECK_INFO_ITEM CheckInfo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TargetId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RequestorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ResponderId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 InstructionIP;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_PROCESS_ERROR_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32/X64 Processor Context Information Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 RegisterType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 ArraySize;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 MsrAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 MmRegisterAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // This field will provide the contents of the actual registers or raw data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // The number of Registers or size of the raw data reported is determined
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // by (Array Size / 8) or otherwise specified by the context structure type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // definition.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_PROCESSOR_CONTEXT_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Register Context Type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_UNCLASSIFIED 0x0000
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_MSR 0x0001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_IA32 0x0002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_X64 0x0003
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_FXSAVE 0x0004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_DR_IA32 0x0005
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_DR_X64 0x0006
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_REG_CONTEXT_TYPE_MEM_MAP 0x0007
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32 Register State
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Eax;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Ebx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Ecx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Edx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Esi;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Edi;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Ebp;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Esp;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Cs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Ds;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Ss;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Es;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Fs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Gs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Eflags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Eip;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Cr0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Cr1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Cr2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Cr3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Cr4;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Gdtr[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Idtr[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Ldtr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Tr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_CONTEXT_IA32_REGISTER_STATE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// X64 Register State
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rax;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rbx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rcx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rdx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rsi;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rdi;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rbp;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rsp;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R8;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R9;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R10;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R11;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R12;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R13;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R14;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 R15;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Cs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Ds;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Ss;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Es;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Fs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Gs;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Resv1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rflags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Rip;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Cr0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Cr1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Cr2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Cr3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Cr4;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Gdtr[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Idtr[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Ldtr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Tr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_CONTEXT_X64_REGISTER_STATE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The validation bit mask indicates each of the following field is in IA32/X64
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Processor Error Section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ApicIdValid:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 CpuIdInforValid:1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ErrorInfoNum:6;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ContextNum:6;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Resv1:50;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IA32_X64_VALID_BITS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error Status Fields
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Resv1:8;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Type:8;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 AddressSignal:1; ///< Error in Address signals or in Address portion of transaction
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ControlSignal:1; ///< Error in Control signals or in Control portion of transaction
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 DataSignal:1; ///< Error in Data signals or in Data portion of transaction
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 DetectedByResponder:1; ///< Error detected by responder
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 DetectedByRequester:1; ///< Error detected by requestor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 FirstError:1; ///< First Error in the sequence - option field
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 OverflowNotLogged:1; ///< Additional errors were not logged due to lack of resources
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Resv2:41;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_GENERIC_ERROR_STATUS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error Type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// General Internal errors
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorInternal = 1,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorBus = 16,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// Component Internal errors
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorMemStorage = 4, // Error in memory device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorTlbStorage = 5, // TLB error in cache
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorCacheStorage = 6,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorFunctionalUnit = 7,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorSelftest = 8,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorOverflow = 9,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// Bus internal errors
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorVirtualMap = 17,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorAccessInvalid = 18, // Improper access
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorUnimplAccess = 19, // Unimplemented memory access
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorLossOfLockstep = 20,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorResponseInvalid= 21, // Response not associated with request
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorParity = 22,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorProtocol = 23,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorPath = 24, // Detected path error
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorTimeout = 25, // Bus timeout
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ErrorPoisoned = 26 // Read data poisoned
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_GENERIC_ERROR_STATUS_ERROR_TYPE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Validation bit mask indicates which fields in the memory error record are valid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// in Memory Error section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_STATUS_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_PHY_ADDRESS_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_PHY_ADDRESS_MASK_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_NODE_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_CARD_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_MODULE_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_BANK_VALID BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_DEVICE_VALID BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ROW_VALID BIT8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_COLUMN_VALID BIT9
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_BIT_POS_VALID BIT10
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_REQUESTOR_ID_VALID BIT11
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_RESPONDER_ID_VALID BIT12
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_TARGET_ID_VALID BIT13
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_TYPE_VALID BIT14
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_RANK_NUM_VALID BIT15
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_CARD_HANDLE_VALID BIT16
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_MODULE_HANDLE_VALID BIT17
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Memory Error Type identifies the type of error that occurred in Memory
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Error section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_UNKNOWN 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_NONE 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_SINGLEBIT_ECC 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_MLTIBIT_ECC 0x03
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_SINGLESYMBOLS_CHIPKILL 0x04
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_MULTISYMBOL_CHIPKILL 0x05
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_MATER_ABORT 0x06
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_TARGET_ABORT 0x07
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_PARITY 0x08
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_WDT 0x09
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_INVALID_ADDRESS 0x0A
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_MIRROR_FAILED 0x0B
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_SPARING 0x0C
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_SCRUB_CORRECTED 0x0D
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_SCRUB_UNCORRECTED 0x0E
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PLATFORM_MEMORY_ERROR_MEMORY_MAP_EVENT 0x0F
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Memory Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GENERIC_ERROR_STATUS ErrorStatus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PhysicalAddress; // Error physical address
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PhysicalAddressMask; // Grnaularity
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Node; // Node #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Card;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 ModuleRank; // Module or Rank#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Bank;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Device;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Row;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Column;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 BitPosition;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RequestorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ResponderId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TargetId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ErrorType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 RankNum;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 CardHandle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 ModuleHandle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PLATFORM_MEMORY_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Validation bits mask indicates which of the following fields is valid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// in PCI Express Error Record.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_TYPE_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_VERSION_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_COMMAND_STATUS_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_DEVICE_ID_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_SERIAL_NO_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_BRIDGE_CRL_STS_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_CAPABILITY_INFO_VALID BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_AER_INFO_VALID BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCIe Device/Port Type as defined in the PCI Express capabilities register
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_PCIE_ENDPOINT 0x00000000
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_PCI_ENDPOINT 0x00000001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_ROOT_PORT 0x00000004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_UPSWITCH_PORT 0x00000005
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_DOWNSWITCH_PORT 0x00000006
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_PCIE_TO_PCI_BRIDGE 0x00000007
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_PCI_TO_PCIE_BRIDGE 0x00000008
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_ROOT_INT_ENDPOINT 0x00000009
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCIE_ERROR_PORT_ROOT_EVENT_COLLECTOR 0x0000000A
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCI Slot number
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Resv1:3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Number:13;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_GENERIC_ERROR_PCI_SLOT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCIe Root Port PCI/bridge PCI compatible device number and
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// bus number information to uniquely identify the root port or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// bridge. Default values for both the bus numbers is zero.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 VendorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 DeviceId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ClassCode[3];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Function;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Device;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Segment;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 PrimaryOrDeviceBus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 SecondaryBus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GENERIC_ERROR_PCI_SLOT Slot;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_GENERIC_ERROR_PCIE_DEV_BRIDGE_ID;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCIe Capability Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 PcieCap[60];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PCIE_ERROR_DATA_CAPABILITY;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCIe Advanced Error Reporting Extended Capability Structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 PcieAer[96];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PCIE_ERROR_DATA_AER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCI Express Error Record
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 PortType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Version;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 CommandStatus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Resv2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GENERIC_ERROR_PCIE_DEV_BRIDGE_ID DevBridge;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 SerialNo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 BridgeControlStatus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PCIE_ERROR_DATA_CAPABILITY Capability;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_PCIE_ERROR_DATA_AER AerInfo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PCIE_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Validation bits Indicates which of the following fields is valid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// in PCI/PCI-X Bus Error Section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_STATUS_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_TYPE_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_BUS_ID_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_BUS_ADDRESS_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_BUS_DATA_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_COMMAND_VALID BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_REQUESTOR_ID_VALID BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_COMPLETER_ID_VALID BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_TARGET_ID_VALID BIT8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCI Bus Error Type in PCI/PCI-X Bus Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_UNKNOWN 0x0000
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_DATA_PARITY 0x0001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_SYSTEM 0x0002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_MASTER_ABORT 0x0003
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_BUS_TIMEOUT 0x0004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_MASTER_DATA_PARITY 0x0005
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_ADDRESS_PARITY 0x0006
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_BUS_ERROR_COMMAND_PARITY 0x0007
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCI/PCI-X Bus Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ValidFields;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GENERIC_ERROR_STATUS ErrorStatus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 BusId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Resv2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 BusAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 BusData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 BusCommand;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RequestorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ResponderId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 TargetId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_PCI_PCIX_BUS_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Validation bits Indicates which of the following fields is valid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// in PCI/PCI-X Component Error Section.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_DEVICE_ERROR_STATUS_VALID BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_DEVICE_ERROR_ID_INFO_VALID BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_DEVICE_ERROR_MEM_NUM_VALID BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_DEVICE_ERROR_IO_NUM_VALID BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_PCI_PCIX_DEVICE_ERROR_REG_DATA_PAIR_VALID BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// PCI/PCI-X Device Identification Information
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 VendorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 DeviceId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ClassCode[3];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Function;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Device;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Bus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Segment;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Resv2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_GENERIC_ERROR_PCI_DEVICE_ID;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Identifies the type of firmware error record
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_FIRMWARE_ERROR_TYPE_IPF_SAL 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Firmware Error Record Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ErrorType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1[7];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RecordId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_FIRMWARE_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Fault Reason in DMAr Generic Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_TABLE_ENTRY_NOT_PRESENT 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_TABLE_ENTRY_INVALID 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_ACCESS_MAPPING_TABLE_ERROR 0x03
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_RESV_BIT_ERROR_IN_MAPPING_TABLE 0x04
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_ACCESS_ADDR_OUT_OF_SPACE 0x05
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_INVALID_ACCESS 0x06
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_INVALID_REQUEST 0x07
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_ACCESS_TRANSLATE_TABLE_ERROR 0x08
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_RESV_BIT_ERROR_IN_TRANSLATE_TABLE 0x09
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_INVALID_COMMAOND 0x0A
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_FAULT_REASON_ACCESS_COMMAND_BUFFER_ERROR 0x0B
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// DMA access type in DMAr Generic Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_ACCESS_TYPE_READ 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_ACCESS_TYPE_WRITE 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// DMA address type in DMAr Generic Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_ADDRESS_UNTRANSLATED 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_ADDRESS_TRANSLATION 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Architecture type in DMAr Generic Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_ARCH_TYPE_VT 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_DMA_ARCH_TYPE_IOMMU 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///@}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// DMAr Generic Error Section
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 RequesterId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 SegmentNumber;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 FaultReason;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AccessType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AddressType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ArchType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 DeviceAddr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1[16];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_DMAR_GENERIC_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Intel VT for Directed I/O specific DMAr Errors
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Version;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Revision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 OemId[6];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Capability;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 CapabilityEx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalCommand;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalStatus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 FaultStatus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1[12];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 FaultRecord[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RootEntry[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 ContextEntry[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL6;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL5;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL4;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_DIRECTED_IO_DMAR_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IOMMU specific DMAr Errors
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Revision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv1[7];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Control;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Status;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv2[8];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 EventLogEntry[2];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Resv3[16];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 DeviceTableEntry[4];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL6;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL5;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL4;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 PteL1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_IOMMU_DMAR_ERROR_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypeCmcGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypeCpeGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypeMceGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypePcieGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypeInitGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypeNmiGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypeBootGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiEventNotificationTypeDmarGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiProcessorGenericErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiProcessorSpecificErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiPlatformMemoryErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiPcieErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiFirmwareErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiPciBusErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiPciDevErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiDMArGenericErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiDirectedIoDMArErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiIommuDMArErrorSectionGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IA32 and x64 Specific definitions.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiIa32X64ErrorTypeCacheCheckGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiIa32X64ErrorTypeTlbCheckGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiIa32X64ErrorTypeBusCheckGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiIa32X64ErrorTypeMsCheckGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif