1*f439973dSWarner Losh /** @file 2*f439973dSWarner Losh StatusCode related definitions in PI. 3*f439973dSWarner Losh 4*f439973dSWarner Losh Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR> 5*f439973dSWarner Losh Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. 6*f439973dSWarner Losh SPDX-License-Identifier: BSD-2-Clause-Patent 7*f439973dSWarner Losh 8*f439973dSWarner Losh @par Revision Reference: 9*f439973dSWarner Losh These status codes are defined in UEFI Platform Initialization Specification 1.2, 10*f439973dSWarner Losh Volume 3: Shared Architectural Elements. 11*f439973dSWarner Losh 12*f439973dSWarner Losh **/ 13*f439973dSWarner Losh 14*f439973dSWarner Losh #ifndef __PI_STATUS_CODE_H__ 15*f439973dSWarner Losh #define __PI_STATUS_CODE_H__ 16*f439973dSWarner Losh 17*f439973dSWarner Losh // 18*f439973dSWarner Losh // Required for IA32, X64, IPF, ARM and EBC defines for CPU exception types 19*f439973dSWarner Losh // 20*f439973dSWarner Losh #include <Protocol/DebugSupport.h> 21*f439973dSWarner Losh 22*f439973dSWarner Losh /// 23*f439973dSWarner Losh /// Status Code Type Definition. 24*f439973dSWarner Losh /// 25*f439973dSWarner Losh typedef UINT32 EFI_STATUS_CODE_TYPE; 26*f439973dSWarner Losh 27*f439973dSWarner Losh /// 28*f439973dSWarner Losh /// A Status Code Type is made up of the code type and severity. 29*f439973dSWarner Losh /// All values masked by EFI_STATUS_CODE_RESERVED_MASK are 30*f439973dSWarner Losh /// reserved for use by this specification. 31*f439973dSWarner Losh /// 32*f439973dSWarner Losh ///@{ 33*f439973dSWarner Losh #define EFI_STATUS_CODE_TYPE_MASK 0x000000FF 34*f439973dSWarner Losh #define EFI_STATUS_CODE_SEVERITY_MASK 0xFF000000 35*f439973dSWarner Losh #define EFI_STATUS_CODE_RESERVED_MASK 0x00FFFF00 36*f439973dSWarner Losh ///@} 37*f439973dSWarner Losh 38*f439973dSWarner Losh /// 39*f439973dSWarner Losh /// Definition of code types. All other values masked by 40*f439973dSWarner Losh /// EFI_STATUS_CODE_TYPE_MASK are reserved for use by 41*f439973dSWarner Losh /// this specification. 42*f439973dSWarner Losh /// 43*f439973dSWarner Losh ///@{ 44*f439973dSWarner Losh #define EFI_PROGRESS_CODE 0x00000001 45*f439973dSWarner Losh #define EFI_ERROR_CODE 0x00000002 46*f439973dSWarner Losh #define EFI_DEBUG_CODE 0x00000003 47*f439973dSWarner Losh ///@} 48*f439973dSWarner Losh 49*f439973dSWarner Losh /// 50*f439973dSWarner Losh /// Definitions of severities, all other values masked by 51*f439973dSWarner Losh /// EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by 52*f439973dSWarner Losh /// this specification. 53*f439973dSWarner Losh /// Uncontained errors are major errors that could not contained 54*f439973dSWarner Losh /// to the specific component that is reporting the error. 55*f439973dSWarner Losh /// For example, if a memory error was not detected early enough, 56*f439973dSWarner Losh /// the bad data could be consumed by other drivers. 57*f439973dSWarner Losh /// 58*f439973dSWarner Losh ///@{ 59*f439973dSWarner Losh #define EFI_ERROR_MINOR 0x40000000 60*f439973dSWarner Losh #define EFI_ERROR_MAJOR 0x80000000 61*f439973dSWarner Losh #define EFI_ERROR_UNRECOVERED 0x90000000 62*f439973dSWarner Losh #define EFI_ERROR_UNCONTAINED 0xa0000000 63*f439973dSWarner Losh ///@} 64*f439973dSWarner Losh 65*f439973dSWarner Losh /// 66*f439973dSWarner Losh /// Status Code Value Definition. 67*f439973dSWarner Losh /// 68*f439973dSWarner Losh typedef UINT32 EFI_STATUS_CODE_VALUE; 69*f439973dSWarner Losh 70*f439973dSWarner Losh /// 71*f439973dSWarner Losh /// A Status Code Value is made up of the class, subclass, and 72*f439973dSWarner Losh /// an operation. 73*f439973dSWarner Losh /// 74*f439973dSWarner Losh ///@{ 75*f439973dSWarner Losh #define EFI_STATUS_CODE_CLASS_MASK 0xFF000000 76*f439973dSWarner Losh #define EFI_STATUS_CODE_SUBCLASS_MASK 0x00FF0000 77*f439973dSWarner Losh #define EFI_STATUS_CODE_OPERATION_MASK 0x0000FFFF 78*f439973dSWarner Losh ///@} 79*f439973dSWarner Losh 80*f439973dSWarner Losh /// 81*f439973dSWarner Losh /// Definition of Status Code extended data header. 82*f439973dSWarner Losh /// The data will follow HeaderSize bytes from the beginning of 83*f439973dSWarner Losh /// the structure and is Size bytes long. 84*f439973dSWarner Losh /// 85*f439973dSWarner Losh typedef struct { 86*f439973dSWarner Losh /// 87*f439973dSWarner Losh /// The size of the structure. This is specified to enable future expansion. 88*f439973dSWarner Losh /// 89*f439973dSWarner Losh UINT16 HeaderSize; 90*f439973dSWarner Losh /// 91*f439973dSWarner Losh /// The size of the data in bytes. This does not include the size of the header structure. 92*f439973dSWarner Losh /// 93*f439973dSWarner Losh UINT16 Size; 94*f439973dSWarner Losh /// 95*f439973dSWarner Losh /// The GUID defining the type of the data. 96*f439973dSWarner Losh /// 97*f439973dSWarner Losh EFI_GUID Type; 98*f439973dSWarner Losh } EFI_STATUS_CODE_DATA; 99*f439973dSWarner Losh 100*f439973dSWarner Losh /// 101*f439973dSWarner Losh /// General partitioning scheme for Progress and Error Codes are: 102*f439973dSWarner Losh /// - 0x0000-0x0FFF Shared by all sub-classes in a given class. 103*f439973dSWarner Losh /// - 0x1000-0x7FFF Subclass Specific. 104*f439973dSWarner Losh /// - 0x8000-0xFFFF OEM specific. 105*f439973dSWarner Losh ///@{ 106*f439973dSWarner Losh #define EFI_SUBCLASS_SPECIFIC 0x1000 107*f439973dSWarner Losh #define EFI_OEM_SPECIFIC 0x8000 108*f439973dSWarner Losh ///@} 109*f439973dSWarner Losh 110*f439973dSWarner Losh /// 111*f439973dSWarner Losh /// Debug Code definitions for all classes and subclass. 112*f439973dSWarner Losh /// Only one debug code is defined at this point and should 113*f439973dSWarner Losh /// be used for anything that is sent to the debug stream. 114*f439973dSWarner Losh /// 115*f439973dSWarner Losh ///@{ 116*f439973dSWarner Losh #define EFI_DC_UNSPECIFIED 0x0 117*f439973dSWarner Losh ///@} 118*f439973dSWarner Losh 119*f439973dSWarner Losh /// 120*f439973dSWarner Losh /// Class definitions. 121*f439973dSWarner Losh /// Values of 4-127 are reserved for future use by this specification. 122*f439973dSWarner Losh /// Values in the range 127-255 are reserved for OEM use. 123*f439973dSWarner Losh /// 124*f439973dSWarner Losh ///@{ 125*f439973dSWarner Losh #define EFI_COMPUTING_UNIT 0x00000000 126*f439973dSWarner Losh #define EFI_PERIPHERAL 0x01000000 127*f439973dSWarner Losh #define EFI_IO_BUS 0x02000000 128*f439973dSWarner Losh #define EFI_SOFTWARE 0x03000000 129*f439973dSWarner Losh ///@} 130*f439973dSWarner Losh 131*f439973dSWarner Losh /// 132*f439973dSWarner Losh /// Computing Unit Subclass definitions. 133*f439973dSWarner Losh /// Values of 8-127 are reserved for future use by this specification. 134*f439973dSWarner Losh /// Values of 128-255 are reserved for OEM use. 135*f439973dSWarner Losh /// 136*f439973dSWarner Losh ///@{ 137*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_UNSPECIFIED (EFI_COMPUTING_UNIT | 0x00000000) 138*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_HOST_PROCESSOR (EFI_COMPUTING_UNIT | 0x00010000) 139*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR (EFI_COMPUTING_UNIT | 0x00020000) 140*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_IO_PROCESSOR (EFI_COMPUTING_UNIT | 0x00030000) 141*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_CACHE (EFI_COMPUTING_UNIT | 0x00040000) 142*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_MEMORY (EFI_COMPUTING_UNIT | 0x00050000) 143*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_CHIPSET (EFI_COMPUTING_UNIT | 0x00060000) 144*f439973dSWarner Losh #define EFI_COMPUTING_UNIT_MANAGEABILITY (EFI_COMPUTING_UNIT | 0x00070000) 145*f439973dSWarner Losh ///@} 146*f439973dSWarner Losh 147*f439973dSWarner Losh /// 148*f439973dSWarner Losh /// Computing Unit Class Progress Code definitions. 149*f439973dSWarner Losh /// These are shared by all subclasses. 150*f439973dSWarner Losh /// 151*f439973dSWarner Losh ///@{ 152*f439973dSWarner Losh #define EFI_CU_PC_INIT_BEGIN 0x00000000 153*f439973dSWarner Losh #define EFI_CU_PC_INIT_END 0x00000001 154*f439973dSWarner Losh ///@} 155*f439973dSWarner Losh 156*f439973dSWarner Losh // 157*f439973dSWarner Losh // Computing Unit Unspecified Subclass Progress Code definitions. 158*f439973dSWarner Losh // 159*f439973dSWarner Losh 160*f439973dSWarner Losh /// 161*f439973dSWarner Losh /// Computing Unit Host Processor Subclass Progress Code definitions. 162*f439973dSWarner Losh ///@{ 163*f439973dSWarner Losh #define EFI_CU_HP_PC_POWER_ON_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 164*f439973dSWarner Losh #define EFI_CU_HP_PC_CACHE_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000001) 165*f439973dSWarner Losh #define EFI_CU_HP_PC_RAM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002) 166*f439973dSWarner Losh #define EFI_CU_HP_PC_MEMORY_CONTROLLER_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000003) 167*f439973dSWarner Losh #define EFI_CU_HP_PC_IO_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000004) 168*f439973dSWarner Losh #define EFI_CU_HP_PC_BSP_SELECT (EFI_SUBCLASS_SPECIFIC | 0x00000005) 169*f439973dSWarner Losh #define EFI_CU_HP_PC_BSP_RESELECT (EFI_SUBCLASS_SPECIFIC | 0x00000006) 170*f439973dSWarner Losh #define EFI_CU_HP_PC_AP_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000007) 171*f439973dSWarner Losh #define EFI_CU_HP_PC_SMM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000008) 172*f439973dSWarner Losh ///@} 173*f439973dSWarner Losh 174*f439973dSWarner Losh // 175*f439973dSWarner Losh // Computing Unit Firmware Processor Subclass Progress Code definitions. 176*f439973dSWarner Losh // 177*f439973dSWarner Losh 178*f439973dSWarner Losh // 179*f439973dSWarner Losh // Computing Unit IO Processor Subclass Progress Code definitions. 180*f439973dSWarner Losh // 181*f439973dSWarner Losh 182*f439973dSWarner Losh /// 183*f439973dSWarner Losh /// Computing Unit Cache Subclass Progress Code definitions. 184*f439973dSWarner Losh /// 185*f439973dSWarner Losh ///@{ 186*f439973dSWarner Losh #define EFI_CU_CACHE_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 187*f439973dSWarner Losh #define EFI_CU_CACHE_PC_CONFIGURATION (EFI_SUBCLASS_SPECIFIC | 0x00000001) 188*f439973dSWarner Losh ///@} 189*f439973dSWarner Losh 190*f439973dSWarner Losh /// 191*f439973dSWarner Losh /// Computing Unit Memory Subclass Progress Code definitions. 192*f439973dSWarner Losh /// 193*f439973dSWarner Losh ///@{ 194*f439973dSWarner Losh #define EFI_CU_MEMORY_PC_SPD_READ (EFI_SUBCLASS_SPECIFIC | 0x00000000) 195*f439973dSWarner Losh #define EFI_CU_MEMORY_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000001) 196*f439973dSWarner Losh #define EFI_CU_MEMORY_PC_TIMING (EFI_SUBCLASS_SPECIFIC | 0x00000002) 197*f439973dSWarner Losh #define EFI_CU_MEMORY_PC_CONFIGURING (EFI_SUBCLASS_SPECIFIC | 0x00000003) 198*f439973dSWarner Losh #define EFI_CU_MEMORY_PC_OPTIMIZING (EFI_SUBCLASS_SPECIFIC | 0x00000004) 199*f439973dSWarner Losh #define EFI_CU_MEMORY_PC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000005) 200*f439973dSWarner Losh #define EFI_CU_MEMORY_PC_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000006) 201*f439973dSWarner Losh ///@} 202*f439973dSWarner Losh 203*f439973dSWarner Losh // 204*f439973dSWarner Losh // Computing Unit Chipset Subclass Progress Code definitions. 205*f439973dSWarner Losh // 206*f439973dSWarner Losh 207*f439973dSWarner Losh /// 208*f439973dSWarner Losh /// South Bridge initialization prior to memory detection. 209*f439973dSWarner Losh /// 210*f439973dSWarner Losh #define EFI_CHIPSET_PC_PEI_CAR_SB_INIT (EFI_SUBCLASS_SPECIFIC|0x00000000) 211*f439973dSWarner Losh 212*f439973dSWarner Losh /// 213*f439973dSWarner Losh /// North Bridge initialization prior to memory detection. 214*f439973dSWarner Losh /// 215*f439973dSWarner Losh #define EFI_CHIPSET_PC_PEI_CAR_NB_INIT (EFI_SUBCLASS_SPECIFIC|0x00000001) 216*f439973dSWarner Losh 217*f439973dSWarner Losh /// 218*f439973dSWarner Losh /// South Bridge initialization after memory detection. 219*f439973dSWarner Losh /// 220*f439973dSWarner Losh #define EFI_CHIPSET_PC_PEI_MEM_SB_INIT (EFI_SUBCLASS_SPECIFIC|0x00000002) 221*f439973dSWarner Losh 222*f439973dSWarner Losh /// 223*f439973dSWarner Losh /// North Bridge initialization after memory detection. 224*f439973dSWarner Losh /// 225*f439973dSWarner Losh #define EFI_CHIPSET_PC_PEI_MEM_NB_INIT (EFI_SUBCLASS_SPECIFIC|0x00000003) 226*f439973dSWarner Losh 227*f439973dSWarner Losh /// 228*f439973dSWarner Losh /// PCI Host Bridge DXE initialization. 229*f439973dSWarner Losh /// 230*f439973dSWarner Losh #define EFI_CHIPSET_PC_DXE_HB_INIT (EFI_SUBCLASS_SPECIFIC|0x00000004) 231*f439973dSWarner Losh 232*f439973dSWarner Losh /// 233*f439973dSWarner Losh /// North Bridge DXE initialization. 234*f439973dSWarner Losh /// 235*f439973dSWarner Losh #define EFI_CHIPSET_PC_DXE_NB_INIT (EFI_SUBCLASS_SPECIFIC|0x00000005) 236*f439973dSWarner Losh 237*f439973dSWarner Losh /// 238*f439973dSWarner Losh /// North Bridge specific SMM initialization in DXE. 239*f439973dSWarner Losh /// 240*f439973dSWarner Losh #define EFI_CHIPSET_PC_DXE_NB_SMM_INIT (EFI_SUBCLASS_SPECIFIC|0x00000006) 241*f439973dSWarner Losh 242*f439973dSWarner Losh /// 243*f439973dSWarner Losh /// Initialization of the South Bridge specific UEFI Runtime Services. 244*f439973dSWarner Losh /// 245*f439973dSWarner Losh #define EFI_CHIPSET_PC_DXE_SB_RT_INIT (EFI_SUBCLASS_SPECIFIC|0x00000007) 246*f439973dSWarner Losh 247*f439973dSWarner Losh /// 248*f439973dSWarner Losh /// South Bridge DXE initialization 249*f439973dSWarner Losh /// 250*f439973dSWarner Losh #define EFI_CHIPSET_PC_DXE_SB_INIT (EFI_SUBCLASS_SPECIFIC|0x00000008) 251*f439973dSWarner Losh 252*f439973dSWarner Losh /// 253*f439973dSWarner Losh /// South Bridge specific SMM initialization in DXE. 254*f439973dSWarner Losh /// 255*f439973dSWarner Losh #define EFI_CHIPSET_PC_DXE_SB_SMM_INIT (EFI_SUBCLASS_SPECIFIC|0x00000009) 256*f439973dSWarner Losh 257*f439973dSWarner Losh /// 258*f439973dSWarner Losh /// Initialization of the South Bridge devices. 259*f439973dSWarner Losh /// 260*f439973dSWarner Losh #define EFI_CHIPSET_PC_DXE_SB_DEVICES_INIT (EFI_SUBCLASS_SPECIFIC|0x0000000a) 261*f439973dSWarner Losh 262*f439973dSWarner Losh /// 263*f439973dSWarner Losh /// Computing Unit Class Error Code definitions. 264*f439973dSWarner Losh /// These are shared by all subclasses. 265*f439973dSWarner Losh /// 266*f439973dSWarner Losh ///@{ 267*f439973dSWarner Losh #define EFI_CU_EC_NON_SPECIFIC 0x00000000 268*f439973dSWarner Losh #define EFI_CU_EC_DISABLED 0x00000001 269*f439973dSWarner Losh #define EFI_CU_EC_NOT_SUPPORTED 0x00000002 270*f439973dSWarner Losh #define EFI_CU_EC_NOT_DETECTED 0x00000003 271*f439973dSWarner Losh #define EFI_CU_EC_NOT_CONFIGURED 0x00000004 272*f439973dSWarner Losh ///@} 273*f439973dSWarner Losh 274*f439973dSWarner Losh // 275*f439973dSWarner Losh // Computing Unit Unspecified Subclass Error Code definitions. 276*f439973dSWarner Losh // 277*f439973dSWarner Losh 278*f439973dSWarner Losh /// 279*f439973dSWarner Losh /// Computing Unit Host Processor Subclass Error Code definitions. 280*f439973dSWarner Losh /// 281*f439973dSWarner Losh ///@{ 282*f439973dSWarner Losh #define EFI_CU_HP_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 283*f439973dSWarner Losh #define EFI_CU_HP_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001) 284*f439973dSWarner Losh #define EFI_CU_HP_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000002) 285*f439973dSWarner Losh #define EFI_CU_HP_EC_TIMER_EXPIRED (EFI_SUBCLASS_SPECIFIC | 0x00000003) 286*f439973dSWarner Losh #define EFI_CU_HP_EC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000004) 287*f439973dSWarner Losh #define EFI_CU_HP_EC_INTERNAL (EFI_SUBCLASS_SPECIFIC | 0x00000005) 288*f439973dSWarner Losh #define EFI_CU_HP_EC_THERMAL (EFI_SUBCLASS_SPECIFIC | 0x00000006) 289*f439973dSWarner Losh #define EFI_CU_HP_EC_LOW_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000007) 290*f439973dSWarner Losh #define EFI_CU_HP_EC_HIGH_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000008) 291*f439973dSWarner Losh #define EFI_CU_HP_EC_CACHE (EFI_SUBCLASS_SPECIFIC | 0x00000009) 292*f439973dSWarner Losh #define EFI_CU_HP_EC_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000A) 293*f439973dSWarner Losh #define EFI_CU_HP_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000B) 294*f439973dSWarner Losh #define EFI_CU_HP_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000C) 295*f439973dSWarner Losh #define EFI_CU_HP_EC_NO_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000D) 296*f439973dSWarner Losh ///@} 297*f439973dSWarner Losh 298*f439973dSWarner Losh /// 299*f439973dSWarner Losh /// Computing Unit Firmware Processor Subclass Error Code definitions. 300*f439973dSWarner Losh /// 301*f439973dSWarner Losh ///@{ 302*f439973dSWarner Losh #define EFI_CU_FP_EC_HARD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000000) 303*f439973dSWarner Losh #define EFI_CU_FP_EC_SOFT_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000001) 304*f439973dSWarner Losh #define EFI_CU_FP_EC_COMM_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002) 305*f439973dSWarner Losh ///@} 306*f439973dSWarner Losh 307*f439973dSWarner Losh // 308*f439973dSWarner Losh // Computing Unit IO Processor Subclass Error Code definitions. 309*f439973dSWarner Losh // 310*f439973dSWarner Losh 311*f439973dSWarner Losh /// 312*f439973dSWarner Losh /// Computing Unit Cache Subclass Error Code definitions. 313*f439973dSWarner Losh /// 314*f439973dSWarner Losh ///@{ 315*f439973dSWarner Losh #define EFI_CU_CACHE_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 316*f439973dSWarner Losh #define EFI_CU_CACHE_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001) 317*f439973dSWarner Losh #define EFI_CU_CACHE_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000002) 318*f439973dSWarner Losh #define EFI_CU_CACHE_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000003) 319*f439973dSWarner Losh ///@} 320*f439973dSWarner Losh 321*f439973dSWarner Losh /// 322*f439973dSWarner Losh /// Computing Unit Memory Subclass Error Code definitions. 323*f439973dSWarner Losh /// 324*f439973dSWarner Losh ///@{ 325*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 326*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001) 327*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000002) 328*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000003) 329*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_SPD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000004) 330*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000005) 331*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000006) 332*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_S3_RESUME_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000007) 333*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_UPDATE_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000008) 334*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_NONE_DETECTED (EFI_SUBCLASS_SPECIFIC | 0x00000009) 335*f439973dSWarner Losh #define EFI_CU_MEMORY_EC_NONE_USEFUL (EFI_SUBCLASS_SPECIFIC | 0x0000000A) 336*f439973dSWarner Losh ///@} 337*f439973dSWarner Losh 338*f439973dSWarner Losh /// 339*f439973dSWarner Losh /// Computing Unit Chipset Subclass Error Code definitions. 340*f439973dSWarner Losh /// 341*f439973dSWarner Losh ///@{ 342*f439973dSWarner Losh #define EFI_CHIPSET_EC_BAD_BATTERY (EFI_SUBCLASS_SPECIFIC | 0x00000000) 343*f439973dSWarner Losh #define EFI_CHIPSET_EC_DXE_NB_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000001) 344*f439973dSWarner Losh #define EFI_CHIPSET_EC_DXE_SB_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002) 345*f439973dSWarner Losh #define EFI_CHIPSET_EC_INTRUDER_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000003) 346*f439973dSWarner Losh ///@} 347*f439973dSWarner Losh 348*f439973dSWarner Losh /// 349*f439973dSWarner Losh /// Computing Unit Manageability Subclass Error Code definitions. 350*f439973dSWarner Losh /// The detail information is reported by REPORT_STATUS_CODE_WITH_EXTENDED_DATA 351*f439973dSWarner Losh // with ASCII string in EFI_STATUS_CODE_STRING_DATA. 352*f439973dSWarner Losh ///@{ 353*f439973dSWarner Losh #define EFI_MANAGEABILITY_EC_REDFISH_COMMUNICATION_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000000) 354*f439973dSWarner Losh #define EFI_MANAGEABILITY_EC_REDFISH_HOST_INTERFACE_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000001) 355*f439973dSWarner Losh #define EFI_MANAGEABILITY_EC_REDFISH_BOOTSTRAP_CREDENTIAL_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002) 356*f439973dSWarner Losh ///@} 357*f439973dSWarner Losh 358*f439973dSWarner Losh /// 359*f439973dSWarner Losh /// Peripheral Subclass definitions. 360*f439973dSWarner Losh /// Values of 12-127 are reserved for future use by this specification. 361*f439973dSWarner Losh /// Values of 128-255 are reserved for OEM use. 362*f439973dSWarner Losh /// 363*f439973dSWarner Losh ///@{ 364*f439973dSWarner Losh #define EFI_PERIPHERAL_UNSPECIFIED (EFI_PERIPHERAL | 0x00000000) 365*f439973dSWarner Losh #define EFI_PERIPHERAL_KEYBOARD (EFI_PERIPHERAL | 0x00010000) 366*f439973dSWarner Losh #define EFI_PERIPHERAL_MOUSE (EFI_PERIPHERAL | 0x00020000) 367*f439973dSWarner Losh #define EFI_PERIPHERAL_LOCAL_CONSOLE (EFI_PERIPHERAL | 0x00030000) 368*f439973dSWarner Losh #define EFI_PERIPHERAL_REMOTE_CONSOLE (EFI_PERIPHERAL | 0x00040000) 369*f439973dSWarner Losh #define EFI_PERIPHERAL_SERIAL_PORT (EFI_PERIPHERAL | 0x00050000) 370*f439973dSWarner Losh #define EFI_PERIPHERAL_PARALLEL_PORT (EFI_PERIPHERAL | 0x00060000) 371*f439973dSWarner Losh #define EFI_PERIPHERAL_FIXED_MEDIA (EFI_PERIPHERAL | 0x00070000) 372*f439973dSWarner Losh #define EFI_PERIPHERAL_REMOVABLE_MEDIA (EFI_PERIPHERAL | 0x00080000) 373*f439973dSWarner Losh #define EFI_PERIPHERAL_AUDIO_INPUT (EFI_PERIPHERAL | 0x00090000) 374*f439973dSWarner Losh #define EFI_PERIPHERAL_AUDIO_OUTPUT (EFI_PERIPHERAL | 0x000A0000) 375*f439973dSWarner Losh #define EFI_PERIPHERAL_LCD_DEVICE (EFI_PERIPHERAL | 0x000B0000) 376*f439973dSWarner Losh #define EFI_PERIPHERAL_NETWORK (EFI_PERIPHERAL | 0x000C0000) 377*f439973dSWarner Losh #define EFI_PERIPHERAL_DOCKING (EFI_PERIPHERAL | 0x000D0000) 378*f439973dSWarner Losh #define EFI_PERIPHERAL_TPM (EFI_PERIPHERAL | 0x000E0000) 379*f439973dSWarner Losh ///@} 380*f439973dSWarner Losh 381*f439973dSWarner Losh /// 382*f439973dSWarner Losh /// Peripheral Class Progress Code definitions. 383*f439973dSWarner Losh /// These are shared by all subclasses. 384*f439973dSWarner Losh /// 385*f439973dSWarner Losh ///@{ 386*f439973dSWarner Losh #define EFI_P_PC_INIT 0x00000000 387*f439973dSWarner Losh #define EFI_P_PC_RESET 0x00000001 388*f439973dSWarner Losh #define EFI_P_PC_DISABLE 0x00000002 389*f439973dSWarner Losh #define EFI_P_PC_PRESENCE_DETECT 0x00000003 390*f439973dSWarner Losh #define EFI_P_PC_ENABLE 0x00000004 391*f439973dSWarner Losh #define EFI_P_PC_RECONFIG 0x00000005 392*f439973dSWarner Losh #define EFI_P_PC_DETECTED 0x00000006 393*f439973dSWarner Losh #define EFI_P_PC_REMOVED 0x00000007 394*f439973dSWarner Losh ///@} 395*f439973dSWarner Losh 396*f439973dSWarner Losh // 397*f439973dSWarner Losh // Peripheral Class Unspecified Subclass Progress Code definitions. 398*f439973dSWarner Losh // 399*f439973dSWarner Losh 400*f439973dSWarner Losh /// 401*f439973dSWarner Losh /// Peripheral Class Keyboard Subclass Progress Code definitions. 402*f439973dSWarner Losh /// 403*f439973dSWarner Losh ///@{ 404*f439973dSWarner Losh #define EFI_P_KEYBOARD_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000) 405*f439973dSWarner Losh #define EFI_P_KEYBOARD_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000001) 406*f439973dSWarner Losh ///@} 407*f439973dSWarner Losh 408*f439973dSWarner Losh /// 409*f439973dSWarner Losh /// Peripheral Class Mouse Subclass Progress Code definitions. 410*f439973dSWarner Losh /// 411*f439973dSWarner Losh ///@{ 412*f439973dSWarner Losh #define EFI_P_MOUSE_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000000) 413*f439973dSWarner Losh ///@} 414*f439973dSWarner Losh 415*f439973dSWarner Losh // 416*f439973dSWarner Losh // Peripheral Class Local Console Subclass Progress Code definitions. 417*f439973dSWarner Losh // 418*f439973dSWarner Losh 419*f439973dSWarner Losh // 420*f439973dSWarner Losh // Peripheral Class Remote Console Subclass Progress Code definitions. 421*f439973dSWarner Losh // 422*f439973dSWarner Losh 423*f439973dSWarner Losh /// 424*f439973dSWarner Losh /// Peripheral Class Serial Port Subclass Progress Code definitions. 425*f439973dSWarner Losh /// 426*f439973dSWarner Losh ///@{ 427*f439973dSWarner Losh #define EFI_P_SERIAL_PORT_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000) 428*f439973dSWarner Losh ///@} 429*f439973dSWarner Losh 430*f439973dSWarner Losh // 431*f439973dSWarner Losh // Peripheral Class Parallel Port Subclass Progress Code definitions. 432*f439973dSWarner Losh // 433*f439973dSWarner Losh 434*f439973dSWarner Losh // 435*f439973dSWarner Losh // Peripheral Class Fixed Media Subclass Progress Code definitions. 436*f439973dSWarner Losh // 437*f439973dSWarner Losh 438*f439973dSWarner Losh // 439*f439973dSWarner Losh // Peripheral Class Removable Media Subclass Progress Code definitions. 440*f439973dSWarner Losh // 441*f439973dSWarner Losh 442*f439973dSWarner Losh // 443*f439973dSWarner Losh // Peripheral Class Audio Input Subclass Progress Code definitions. 444*f439973dSWarner Losh // 445*f439973dSWarner Losh 446*f439973dSWarner Losh // 447*f439973dSWarner Losh // Peripheral Class Audio Output Subclass Progress Code definitions. 448*f439973dSWarner Losh // 449*f439973dSWarner Losh 450*f439973dSWarner Losh // 451*f439973dSWarner Losh // Peripheral Class LCD Device Subclass Progress Code definitions. 452*f439973dSWarner Losh // 453*f439973dSWarner Losh 454*f439973dSWarner Losh // 455*f439973dSWarner Losh // Peripheral Class Network Subclass Progress Code definitions. 456*f439973dSWarner Losh // 457*f439973dSWarner Losh 458*f439973dSWarner Losh /// 459*f439973dSWarner Losh /// Peripheral Class Error Code definitions. 460*f439973dSWarner Losh /// These are shared by all subclasses. 461*f439973dSWarner Losh /// 462*f439973dSWarner Losh ///@{ 463*f439973dSWarner Losh #define EFI_P_EC_NON_SPECIFIC 0x00000000 464*f439973dSWarner Losh #define EFI_P_EC_DISABLED 0x00000001 465*f439973dSWarner Losh #define EFI_P_EC_NOT_SUPPORTED 0x00000002 466*f439973dSWarner Losh #define EFI_P_EC_NOT_DETECTED 0x00000003 467*f439973dSWarner Losh #define EFI_P_EC_NOT_CONFIGURED 0x00000004 468*f439973dSWarner Losh #define EFI_P_EC_INTERFACE_ERROR 0x00000005 469*f439973dSWarner Losh #define EFI_P_EC_CONTROLLER_ERROR 0x00000006 470*f439973dSWarner Losh #define EFI_P_EC_INPUT_ERROR 0x00000007 471*f439973dSWarner Losh #define EFI_P_EC_OUTPUT_ERROR 0x00000008 472*f439973dSWarner Losh #define EFI_P_EC_RESOURCE_CONFLICT 0x00000009 473*f439973dSWarner Losh ///@} 474*f439973dSWarner Losh 475*f439973dSWarner Losh // 476*f439973dSWarner Losh // Peripheral Class Unspecified Subclass Error Code definitions. 477*f439973dSWarner Losh // 478*f439973dSWarner Losh 479*f439973dSWarner Losh /// 480*f439973dSWarner Losh /// Peripheral Class Keyboard Subclass Error Code definitions. 481*f439973dSWarner Losh /// 482*f439973dSWarner Losh ///@{ 483*f439973dSWarner Losh #define EFI_P_KEYBOARD_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000) 484*f439973dSWarner Losh #define EFI_P_KEYBOARD_EC_STUCK_KEY (EFI_SUBCLASS_SPECIFIC | 0x00000001) 485*f439973dSWarner Losh #define EFI_P_KEYBOARD_EC_BUFFER_FULL (EFI_SUBCLASS_SPECIFIC | 0x00000002) 486*f439973dSWarner Losh ///@} 487*f439973dSWarner Losh 488*f439973dSWarner Losh /// 489*f439973dSWarner Losh /// Peripheral Class Mouse Subclass Error Code definitions. 490*f439973dSWarner Losh /// 491*f439973dSWarner Losh ///@{ 492*f439973dSWarner Losh #define EFI_P_MOUSE_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000) 493*f439973dSWarner Losh ///@} 494*f439973dSWarner Losh 495*f439973dSWarner Losh // 496*f439973dSWarner Losh // Peripheral Class Local Console Subclass Error Code definitions. 497*f439973dSWarner Losh // 498*f439973dSWarner Losh 499*f439973dSWarner Losh // 500*f439973dSWarner Losh // Peripheral Class Remote Console Subclass Error Code definitions. 501*f439973dSWarner Losh // 502*f439973dSWarner Losh 503*f439973dSWarner Losh // 504*f439973dSWarner Losh // Peripheral Class Serial Port Subclass Error Code definitions. 505*f439973dSWarner Losh // 506*f439973dSWarner Losh 507*f439973dSWarner Losh // 508*f439973dSWarner Losh // Peripheral Class Parallel Port Subclass Error Code definitions. 509*f439973dSWarner Losh // 510*f439973dSWarner Losh 511*f439973dSWarner Losh // 512*f439973dSWarner Losh // Peripheral Class Fixed Media Subclass Error Code definitions. 513*f439973dSWarner Losh // 514*f439973dSWarner Losh 515*f439973dSWarner Losh // 516*f439973dSWarner Losh // Peripheral Class Removable Media Subclass Error Code definitions. 517*f439973dSWarner Losh // 518*f439973dSWarner Losh 519*f439973dSWarner Losh // 520*f439973dSWarner Losh // Peripheral Class Audio Input Subclass Error Code definitions. 521*f439973dSWarner Losh // 522*f439973dSWarner Losh 523*f439973dSWarner Losh // 524*f439973dSWarner Losh // Peripheral Class Audio Output Subclass Error Code definitions. 525*f439973dSWarner Losh // 526*f439973dSWarner Losh 527*f439973dSWarner Losh // 528*f439973dSWarner Losh // Peripheral Class LCD Device Subclass Error Code definitions. 529*f439973dSWarner Losh // 530*f439973dSWarner Losh 531*f439973dSWarner Losh // 532*f439973dSWarner Losh // Peripheral Class Network Subclass Error Code definitions. 533*f439973dSWarner Losh // 534*f439973dSWarner Losh 535*f439973dSWarner Losh /// 536*f439973dSWarner Losh /// IO Bus Subclass definitions. 537*f439973dSWarner Losh /// Values of 14-127 are reserved for future use by this specification. 538*f439973dSWarner Losh /// Values of 128-255 are reserved for OEM use. 539*f439973dSWarner Losh /// 540*f439973dSWarner Losh ///@{ 541*f439973dSWarner Losh #define EFI_IO_BUS_UNSPECIFIED (EFI_IO_BUS | 0x00000000) 542*f439973dSWarner Losh #define EFI_IO_BUS_PCI (EFI_IO_BUS | 0x00010000) 543*f439973dSWarner Losh #define EFI_IO_BUS_USB (EFI_IO_BUS | 0x00020000) 544*f439973dSWarner Losh #define EFI_IO_BUS_IBA (EFI_IO_BUS | 0x00030000) 545*f439973dSWarner Losh #define EFI_IO_BUS_AGP (EFI_IO_BUS | 0x00040000) 546*f439973dSWarner Losh #define EFI_IO_BUS_PC_CARD (EFI_IO_BUS | 0x00050000) 547*f439973dSWarner Losh #define EFI_IO_BUS_LPC (EFI_IO_BUS | 0x00060000) 548*f439973dSWarner Losh #define EFI_IO_BUS_SCSI (EFI_IO_BUS | 0x00070000) 549*f439973dSWarner Losh #define EFI_IO_BUS_ATA_ATAPI (EFI_IO_BUS | 0x00080000) 550*f439973dSWarner Losh #define EFI_IO_BUS_FC (EFI_IO_BUS | 0x00090000) 551*f439973dSWarner Losh #define EFI_IO_BUS_IP_NETWORK (EFI_IO_BUS | 0x000A0000) 552*f439973dSWarner Losh #define EFI_IO_BUS_SMBUS (EFI_IO_BUS | 0x000B0000) 553*f439973dSWarner Losh #define EFI_IO_BUS_I2C (EFI_IO_BUS | 0x000C0000) 554*f439973dSWarner Losh ///@} 555*f439973dSWarner Losh 556*f439973dSWarner Losh /// 557*f439973dSWarner Losh /// IO Bus Class Progress Code definitions. 558*f439973dSWarner Losh /// These are shared by all subclasses. 559*f439973dSWarner Losh /// 560*f439973dSWarner Losh ///@{ 561*f439973dSWarner Losh #define EFI_IOB_PC_INIT 0x00000000 562*f439973dSWarner Losh #define EFI_IOB_PC_RESET 0x00000001 563*f439973dSWarner Losh #define EFI_IOB_PC_DISABLE 0x00000002 564*f439973dSWarner Losh #define EFI_IOB_PC_DETECT 0x00000003 565*f439973dSWarner Losh #define EFI_IOB_PC_ENABLE 0x00000004 566*f439973dSWarner Losh #define EFI_IOB_PC_RECONFIG 0x00000005 567*f439973dSWarner Losh #define EFI_IOB_PC_HOTPLUG 0x00000006 568*f439973dSWarner Losh ///@} 569*f439973dSWarner Losh 570*f439973dSWarner Losh // 571*f439973dSWarner Losh // IO Bus Class Unspecified Subclass Progress Code definitions. 572*f439973dSWarner Losh // 573*f439973dSWarner Losh 574*f439973dSWarner Losh /// 575*f439973dSWarner Losh /// IO Bus Class PCI Subclass Progress Code definitions. 576*f439973dSWarner Losh /// 577*f439973dSWarner Losh ///@{ 578*f439973dSWarner Losh #define EFI_IOB_PCI_BUS_ENUM (EFI_SUBCLASS_SPECIFIC | 0x00000000) 579*f439973dSWarner Losh #define EFI_IOB_PCI_RES_ALLOC (EFI_SUBCLASS_SPECIFIC | 0x00000001) 580*f439973dSWarner Losh #define EFI_IOB_PCI_HPC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002) 581*f439973dSWarner Losh ///@} 582*f439973dSWarner Losh 583*f439973dSWarner Losh // 584*f439973dSWarner Losh // IO Bus Class USB Subclass Progress Code definitions. 585*f439973dSWarner Losh // 586*f439973dSWarner Losh 587*f439973dSWarner Losh // 588*f439973dSWarner Losh // IO Bus Class IBA Subclass Progress Code definitions. 589*f439973dSWarner Losh // 590*f439973dSWarner Losh 591*f439973dSWarner Losh // 592*f439973dSWarner Losh // IO Bus Class AGP Subclass Progress Code definitions. 593*f439973dSWarner Losh // 594*f439973dSWarner Losh 595*f439973dSWarner Losh // 596*f439973dSWarner Losh // IO Bus Class PC Card Subclass Progress Code definitions. 597*f439973dSWarner Losh // 598*f439973dSWarner Losh 599*f439973dSWarner Losh // 600*f439973dSWarner Losh // IO Bus Class LPC Subclass Progress Code definitions. 601*f439973dSWarner Losh // 602*f439973dSWarner Losh 603*f439973dSWarner Losh // 604*f439973dSWarner Losh // IO Bus Class SCSI Subclass Progress Code definitions. 605*f439973dSWarner Losh // 606*f439973dSWarner Losh 607*f439973dSWarner Losh // 608*f439973dSWarner Losh // IO Bus Class ATA/ATAPI Subclass Progress Code definitions. 609*f439973dSWarner Losh // 610*f439973dSWarner Losh #define EFI_IOB_ATA_BUS_SMART_ENABLE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 611*f439973dSWarner Losh #define EFI_IOB_ATA_BUS_SMART_DISABLE (EFI_SUBCLASS_SPECIFIC | 0x00000001) 612*f439973dSWarner Losh #define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000002) 613*f439973dSWarner Losh #define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000003) 614*f439973dSWarner Losh // 615*f439973dSWarner Losh // IO Bus Class FC Subclass Progress Code definitions. 616*f439973dSWarner Losh // 617*f439973dSWarner Losh 618*f439973dSWarner Losh // 619*f439973dSWarner Losh // IO Bus Class IP Network Subclass Progress Code definitions. 620*f439973dSWarner Losh // 621*f439973dSWarner Losh 622*f439973dSWarner Losh // 623*f439973dSWarner Losh // IO Bus Class SMBUS Subclass Progress Code definitions. 624*f439973dSWarner Losh // 625*f439973dSWarner Losh 626*f439973dSWarner Losh // 627*f439973dSWarner Losh // IO Bus Class I2C Subclass Progress Code definitions. 628*f439973dSWarner Losh // 629*f439973dSWarner Losh 630*f439973dSWarner Losh /// 631*f439973dSWarner Losh /// IO Bus Class Error Code definitions. 632*f439973dSWarner Losh /// These are shared by all subclasses. 633*f439973dSWarner Losh /// 634*f439973dSWarner Losh ///@{ 635*f439973dSWarner Losh #define EFI_IOB_EC_NON_SPECIFIC 0x00000000 636*f439973dSWarner Losh #define EFI_IOB_EC_DISABLED 0x00000001 637*f439973dSWarner Losh #define EFI_IOB_EC_NOT_SUPPORTED 0x00000002 638*f439973dSWarner Losh #define EFI_IOB_EC_NOT_DETECTED 0x00000003 639*f439973dSWarner Losh #define EFI_IOB_EC_NOT_CONFIGURED 0x00000004 640*f439973dSWarner Losh #define EFI_IOB_EC_INTERFACE_ERROR 0x00000005 641*f439973dSWarner Losh #define EFI_IOB_EC_CONTROLLER_ERROR 0x00000006 642*f439973dSWarner Losh #define EFI_IOB_EC_READ_ERROR 0x00000007 643*f439973dSWarner Losh #define EFI_IOB_EC_WRITE_ERROR 0x00000008 644*f439973dSWarner Losh #define EFI_IOB_EC_RESOURCE_CONFLICT 0x00000009 645*f439973dSWarner Losh ///@} 646*f439973dSWarner Losh 647*f439973dSWarner Losh // 648*f439973dSWarner Losh // IO Bus Class Unspecified Subclass Error Code definitions. 649*f439973dSWarner Losh // 650*f439973dSWarner Losh 651*f439973dSWarner Losh /// 652*f439973dSWarner Losh /// IO Bus Class PCI Subclass Error Code definitions. 653*f439973dSWarner Losh /// 654*f439973dSWarner Losh ///@{ 655*f439973dSWarner Losh #define EFI_IOB_PCI_EC_PERR (EFI_SUBCLASS_SPECIFIC | 0x00000000) 656*f439973dSWarner Losh #define EFI_IOB_PCI_EC_SERR (EFI_SUBCLASS_SPECIFIC | 0x00000001) 657*f439973dSWarner Losh ///@} 658*f439973dSWarner Losh 659*f439973dSWarner Losh // 660*f439973dSWarner Losh // IO Bus Class USB Subclass Error Code definitions. 661*f439973dSWarner Losh // 662*f439973dSWarner Losh 663*f439973dSWarner Losh // 664*f439973dSWarner Losh // IO Bus Class IBA Subclass Error Code definitions. 665*f439973dSWarner Losh // 666*f439973dSWarner Losh 667*f439973dSWarner Losh // 668*f439973dSWarner Losh // IO Bus Class AGP Subclass Error Code definitions. 669*f439973dSWarner Losh // 670*f439973dSWarner Losh 671*f439973dSWarner Losh // 672*f439973dSWarner Losh // IO Bus Class PC Card Subclass Error Code definitions. 673*f439973dSWarner Losh // 674*f439973dSWarner Losh 675*f439973dSWarner Losh // 676*f439973dSWarner Losh // IO Bus Class LPC Subclass Error Code definitions. 677*f439973dSWarner Losh // 678*f439973dSWarner Losh 679*f439973dSWarner Losh // 680*f439973dSWarner Losh // IO Bus Class SCSI Subclass Error Code definitions. 681*f439973dSWarner Losh // 682*f439973dSWarner Losh 683*f439973dSWarner Losh // 684*f439973dSWarner Losh // IO Bus Class ATA/ATAPI Subclass Error Code definitions. 685*f439973dSWarner Losh // 686*f439973dSWarner Losh #define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED (EFI_SUBCLASS_SPECIFIC | 0x00000000) 687*f439973dSWarner Losh #define EFI_IOB_ATA_BUS_SMART_DISABLED (EFI_SUBCLASS_SPECIFIC | 0x00000001) 688*f439973dSWarner Losh 689*f439973dSWarner Losh // 690*f439973dSWarner Losh // IO Bus Class FC Subclass Error Code definitions. 691*f439973dSWarner Losh // 692*f439973dSWarner Losh 693*f439973dSWarner Losh // 694*f439973dSWarner Losh // IO Bus Class IP Network Subclass Error Code definitions. 695*f439973dSWarner Losh // 696*f439973dSWarner Losh 697*f439973dSWarner Losh // 698*f439973dSWarner Losh // IO Bus Class SMBUS Subclass Error Code definitions. 699*f439973dSWarner Losh // 700*f439973dSWarner Losh 701*f439973dSWarner Losh // 702*f439973dSWarner Losh // IO Bus Class I2C Subclass Error Code definitions. 703*f439973dSWarner Losh // 704*f439973dSWarner Losh 705*f439973dSWarner Losh /// 706*f439973dSWarner Losh /// Software Subclass definitions. 707*f439973dSWarner Losh /// Values of 14-127 are reserved for future use by this specification. 708*f439973dSWarner Losh /// Values of 128-255 are reserved for OEM use. 709*f439973dSWarner Losh /// 710*f439973dSWarner Losh ///@{ 711*f439973dSWarner Losh #define EFI_SOFTWARE_UNSPECIFIED (EFI_SOFTWARE | 0x00000000) 712*f439973dSWarner Losh #define EFI_SOFTWARE_SEC (EFI_SOFTWARE | 0x00010000) 713*f439973dSWarner Losh #define EFI_SOFTWARE_PEI_CORE (EFI_SOFTWARE | 0x00020000) 714*f439973dSWarner Losh #define EFI_SOFTWARE_PEI_MODULE (EFI_SOFTWARE | 0x00030000) 715*f439973dSWarner Losh #define EFI_SOFTWARE_DXE_CORE (EFI_SOFTWARE | 0x00040000) 716*f439973dSWarner Losh #define EFI_SOFTWARE_DXE_BS_DRIVER (EFI_SOFTWARE | 0x00050000) 717*f439973dSWarner Losh #define EFI_SOFTWARE_DXE_RT_DRIVER (EFI_SOFTWARE | 0x00060000) 718*f439973dSWarner Losh #define EFI_SOFTWARE_SMM_DRIVER (EFI_SOFTWARE | 0x00070000) 719*f439973dSWarner Losh #define EFI_SOFTWARE_EFI_APPLICATION (EFI_SOFTWARE | 0x00080000) 720*f439973dSWarner Losh #define EFI_SOFTWARE_EFI_OS_LOADER (EFI_SOFTWARE | 0x00090000) 721*f439973dSWarner Losh #define EFI_SOFTWARE_RT (EFI_SOFTWARE | 0x000A0000) 722*f439973dSWarner Losh #define EFI_SOFTWARE_AL (EFI_SOFTWARE | 0x000B0000) 723*f439973dSWarner Losh #define EFI_SOFTWARE_EBC_EXCEPTION (EFI_SOFTWARE | 0x000C0000) 724*f439973dSWarner Losh #define EFI_SOFTWARE_IA32_EXCEPTION (EFI_SOFTWARE | 0x000D0000) 725*f439973dSWarner Losh #define EFI_SOFTWARE_IPF_EXCEPTION (EFI_SOFTWARE | 0x000E0000) 726*f439973dSWarner Losh #define EFI_SOFTWARE_PEI_SERVICE (EFI_SOFTWARE | 0x000F0000) 727*f439973dSWarner Losh #define EFI_SOFTWARE_EFI_BOOT_SERVICE (EFI_SOFTWARE | 0x00100000) 728*f439973dSWarner Losh #define EFI_SOFTWARE_EFI_RUNTIME_SERVICE (EFI_SOFTWARE | 0x00110000) 729*f439973dSWarner Losh #define EFI_SOFTWARE_EFI_DXE_SERVICE (EFI_SOFTWARE | 0x00120000) 730*f439973dSWarner Losh #define EFI_SOFTWARE_X64_EXCEPTION (EFI_SOFTWARE | 0x00130000) 731*f439973dSWarner Losh #define EFI_SOFTWARE_ARM_EXCEPTION (EFI_SOFTWARE | 0x00140000) 732*f439973dSWarner Losh 733*f439973dSWarner Losh ///@} 734*f439973dSWarner Losh 735*f439973dSWarner Losh /// 736*f439973dSWarner Losh /// Software Class Progress Code definitions. 737*f439973dSWarner Losh /// These are shared by all subclasses. 738*f439973dSWarner Losh /// 739*f439973dSWarner Losh ///@{ 740*f439973dSWarner Losh #define EFI_SW_PC_INIT 0x00000000 741*f439973dSWarner Losh #define EFI_SW_PC_LOAD 0x00000001 742*f439973dSWarner Losh #define EFI_SW_PC_INIT_BEGIN 0x00000002 743*f439973dSWarner Losh #define EFI_SW_PC_INIT_END 0x00000003 744*f439973dSWarner Losh #define EFI_SW_PC_AUTHENTICATE_BEGIN 0x00000004 745*f439973dSWarner Losh #define EFI_SW_PC_AUTHENTICATE_END 0x00000005 746*f439973dSWarner Losh #define EFI_SW_PC_INPUT_WAIT 0x00000006 747*f439973dSWarner Losh #define EFI_SW_PC_USER_SETUP 0x00000007 748*f439973dSWarner Losh ///@} 749*f439973dSWarner Losh 750*f439973dSWarner Losh // 751*f439973dSWarner Losh // Software Class Unspecified Subclass Progress Code definitions. 752*f439973dSWarner Losh // 753*f439973dSWarner Losh 754*f439973dSWarner Losh /// 755*f439973dSWarner Losh /// Software Class SEC Subclass Progress Code definitions. 756*f439973dSWarner Losh /// 757*f439973dSWarner Losh ///@{ 758*f439973dSWarner Losh #define EFI_SW_SEC_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 759*f439973dSWarner Losh #define EFI_SW_SEC_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001) 760*f439973dSWarner Losh ///@} 761*f439973dSWarner Losh 762*f439973dSWarner Losh /// 763*f439973dSWarner Losh /// Software Class PEI Core Subclass Progress Code definitions. 764*f439973dSWarner Losh /// 765*f439973dSWarner Losh ///@{ 766*f439973dSWarner Losh #define EFI_SW_PEI_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 767*f439973dSWarner Losh #define EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001) 768*f439973dSWarner Losh #define EFI_SW_PEI_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002) 769*f439973dSWarner Losh ///@} 770*f439973dSWarner Losh 771*f439973dSWarner Losh /// 772*f439973dSWarner Losh /// Software Class PEI Module Subclass Progress Code definitions. 773*f439973dSWarner Losh /// 774*f439973dSWarner Losh ///@{ 775*f439973dSWarner Losh #define EFI_SW_PEI_PC_RECOVERY_BEGIN (EFI_SUBCLASS_SPECIFIC | 0x00000000) 776*f439973dSWarner Losh #define EFI_SW_PEI_PC_CAPSULE_LOAD (EFI_SUBCLASS_SPECIFIC | 0x00000001) 777*f439973dSWarner Losh #define EFI_SW_PEI_PC_CAPSULE_START (EFI_SUBCLASS_SPECIFIC | 0x00000002) 778*f439973dSWarner Losh #define EFI_SW_PEI_PC_RECOVERY_USER (EFI_SUBCLASS_SPECIFIC | 0x00000003) 779*f439973dSWarner Losh #define EFI_SW_PEI_PC_RECOVERY_AUTO (EFI_SUBCLASS_SPECIFIC | 0x00000004) 780*f439973dSWarner Losh #define EFI_SW_PEI_PC_S3_BOOT_SCRIPT (EFI_SUBCLASS_SPECIFIC | 0x00000005) 781*f439973dSWarner Losh #define EFI_SW_PEI_PC_OS_WAKE (EFI_SUBCLASS_SPECIFIC | 0x00000006) 782*f439973dSWarner Losh #define EFI_SW_PEI_PC_S3_STARTED (EFI_SUBCLASS_SPECIFIC | 0x00000007) 783*f439973dSWarner Losh ///@} 784*f439973dSWarner Losh 785*f439973dSWarner Losh /// 786*f439973dSWarner Losh /// Software Class DXE Core Subclass Progress Code definitions. 787*f439973dSWarner Losh /// 788*f439973dSWarner Losh ///@{ 789*f439973dSWarner Losh #define EFI_SW_DXE_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 790*f439973dSWarner Losh #define EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001) 791*f439973dSWarner Losh #define EFI_SW_DXE_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002) 792*f439973dSWarner Losh #define EFI_SW_DXE_CORE_PC_START_DRIVER (EFI_SUBCLASS_SPECIFIC | 0x00000003) 793*f439973dSWarner Losh #define EFI_SW_DXE_CORE_PC_ARCH_READY (EFI_SUBCLASS_SPECIFIC | 0x00000004) 794*f439973dSWarner Losh ///@} 795*f439973dSWarner Losh 796*f439973dSWarner Losh /// 797*f439973dSWarner Losh /// Software Class DXE BS Driver Subclass Progress Code definitions. 798*f439973dSWarner Losh /// 799*f439973dSWarner Losh ///@{ 800*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_LEGACY_OPROM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 801*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000001) 802*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000002) 803*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_EXIT_BOOT_SERVICES_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000003) 804*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_VIRTUAL_ADDRESS_CHANGE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000004) 805*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_VARIABLE_SERVICES_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000005) 806*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_VARIABLE_RECLAIM (EFI_SUBCLASS_SPECIFIC | 0x00000006) 807*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_ATTEMPT_BOOT_ORDER_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000007) 808*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_CONFIG_RESET (EFI_SUBCLASS_SPECIFIC | 0x00000008) 809*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_CSM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000009) 810*f439973dSWarner Losh ///@} 811*f439973dSWarner Losh 812*f439973dSWarner Losh // 813*f439973dSWarner Losh // Software Class SMM Driver Subclass Progress Code definitions. 814*f439973dSWarner Losh // 815*f439973dSWarner Losh 816*f439973dSWarner Losh // 817*f439973dSWarner Losh // Software Class EFI Application Subclass Progress Code definitions. 818*f439973dSWarner Losh // 819*f439973dSWarner Losh 820*f439973dSWarner Losh // 821*f439973dSWarner Losh // Software Class EFI OS Loader Subclass Progress Code definitions. 822*f439973dSWarner Losh // 823*f439973dSWarner Losh 824*f439973dSWarner Losh /// 825*f439973dSWarner Losh /// Software Class EFI RT Subclass Progress Code definitions. 826*f439973dSWarner Losh /// 827*f439973dSWarner Losh ///@{ 828*f439973dSWarner Losh #define EFI_SW_RT_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 829*f439973dSWarner Losh #define EFI_SW_RT_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001) 830*f439973dSWarner Losh #define EFI_SW_RT_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002) 831*f439973dSWarner Losh ///@} 832*f439973dSWarner Losh 833*f439973dSWarner Losh // 834*f439973dSWarner Losh // Software Class X64 Exception Subclass Progress Code definitions. 835*f439973dSWarner Losh // 836*f439973dSWarner Losh 837*f439973dSWarner Losh // 838*f439973dSWarner Losh // Software Class ARM Exception Subclass Progress Code definitions. 839*f439973dSWarner Losh // 840*f439973dSWarner Losh 841*f439973dSWarner Losh // 842*f439973dSWarner Losh // Software Class EBC Exception Subclass Progress Code definitions. 843*f439973dSWarner Losh // 844*f439973dSWarner Losh 845*f439973dSWarner Losh // 846*f439973dSWarner Losh // Software Class IA32 Exception Subclass Progress Code definitions. 847*f439973dSWarner Losh // 848*f439973dSWarner Losh 849*f439973dSWarner Losh // 850*f439973dSWarner Losh // Software Class X64 Exception Subclass Progress Code definitions. 851*f439973dSWarner Losh // 852*f439973dSWarner Losh 853*f439973dSWarner Losh // 854*f439973dSWarner Losh // Software Class IPF Exception Subclass Progress Code definitions. 855*f439973dSWarner Losh // 856*f439973dSWarner Losh 857*f439973dSWarner Losh /// 858*f439973dSWarner Losh /// Software Class PEI Services Subclass Progress Code definitions. 859*f439973dSWarner Losh /// 860*f439973dSWarner Losh ///@{ 861*f439973dSWarner Losh #define EFI_SW_PS_PC_INSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000000) 862*f439973dSWarner Losh #define EFI_SW_PS_PC_REINSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000001) 863*f439973dSWarner Losh #define EFI_SW_PS_PC_LOCATE_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000002) 864*f439973dSWarner Losh #define EFI_SW_PS_PC_NOTIFY_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000003) 865*f439973dSWarner Losh #define EFI_SW_PS_PC_GET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000004) 866*f439973dSWarner Losh #define EFI_SW_PS_PC_SET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000005) 867*f439973dSWarner Losh #define EFI_SW_PS_PC_GET_HOB_LIST (EFI_SUBCLASS_SPECIFIC | 0x00000006) 868*f439973dSWarner Losh #define EFI_SW_PS_PC_CREATE_HOB (EFI_SUBCLASS_SPECIFIC | 0x00000007) 869*f439973dSWarner Losh #define EFI_SW_PS_PC_FFS_FIND_NEXT_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000008) 870*f439973dSWarner Losh #define EFI_SW_PS_PC_FFS_FIND_NEXT_FILE (EFI_SUBCLASS_SPECIFIC | 0x00000009) 871*f439973dSWarner Losh #define EFI_SW_PS_PC_FFS_FIND_SECTION_DATA (EFI_SUBCLASS_SPECIFIC | 0x0000000A) 872*f439973dSWarner Losh #define EFI_SW_PS_PC_INSTALL_PEI_MEMORY (EFI_SUBCLASS_SPECIFIC | 0x0000000B) 873*f439973dSWarner Losh #define EFI_SW_PS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x0000000C) 874*f439973dSWarner Losh #define EFI_SW_PS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x0000000D) 875*f439973dSWarner Losh #define EFI_SW_PS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000E) 876*f439973dSWarner Losh #define EFI_SW_PS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000F) 877*f439973dSWarner Losh #define EFI_SW_PS_PC_RESET_SYSTEM (EFI_SUBCLASS_SPECIFIC | 0x00000010) 878*f439973dSWarner Losh #define EFI_SW_PS_PC_FFS_FIND_FILE_BY_NAME (EFI_SUBCLASS_SPECIFIC | 0x00000013) 879*f439973dSWarner Losh #define EFI_SW_PS_PC_FFS_GET_FILE_INFO (EFI_SUBCLASS_SPECIFIC | 0x00000014) 880*f439973dSWarner Losh #define EFI_SW_PS_PC_FFS_GET_VOLUME_INFO (EFI_SUBCLASS_SPECIFIC | 0x00000015) 881*f439973dSWarner Losh #define EFI_SW_PS_PC_FFS_REGISTER_FOR_SHADOW (EFI_SUBCLASS_SPECIFIC | 0x00000016) 882*f439973dSWarner Losh ///@} 883*f439973dSWarner Losh 884*f439973dSWarner Losh /// 885*f439973dSWarner Losh /// Software Class EFI Boot Services Subclass Progress Code definitions. 886*f439973dSWarner Losh /// 887*f439973dSWarner Losh ///@{ 888*f439973dSWarner Losh #define EFI_SW_BS_PC_RAISE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000000) 889*f439973dSWarner Losh #define EFI_SW_BS_PC_RESTORE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000001) 890*f439973dSWarner Losh #define EFI_SW_BS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000002) 891*f439973dSWarner Losh #define EFI_SW_BS_PC_FREE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000003) 892*f439973dSWarner Losh #define EFI_SW_BS_PC_GET_MEMORY_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004) 893*f439973dSWarner Losh #define EFI_SW_BS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000005) 894*f439973dSWarner Losh #define EFI_SW_BS_PC_FREE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000006) 895*f439973dSWarner Losh #define EFI_SW_BS_PC_CREATE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000007) 896*f439973dSWarner Losh #define EFI_SW_BS_PC_SET_TIMER (EFI_SUBCLASS_SPECIFIC | 0x00000008) 897*f439973dSWarner Losh #define EFI_SW_BS_PC_WAIT_FOR_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000009) 898*f439973dSWarner Losh #define EFI_SW_BS_PC_SIGNAL_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000A) 899*f439973dSWarner Losh #define EFI_SW_BS_PC_CLOSE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000B) 900*f439973dSWarner Losh #define EFI_SW_BS_PC_CHECK_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000C) 901*f439973dSWarner Losh #define EFI_SW_BS_PC_INSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000D) 902*f439973dSWarner Losh #define EFI_SW_BS_PC_REINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000E) 903*f439973dSWarner Losh #define EFI_SW_BS_PC_UNINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000F) 904*f439973dSWarner Losh #define EFI_SW_BS_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000010) 905*f439973dSWarner Losh #define EFI_SW_BS_PC_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000011) 906*f439973dSWarner Losh #define EFI_SW_BS_PC_REGISTER_PROTOCOL_NOTIFY (EFI_SUBCLASS_SPECIFIC | 0x00000012) 907*f439973dSWarner Losh #define EFI_SW_BS_PC_LOCATE_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000013) 908*f439973dSWarner Losh #define EFI_SW_BS_PC_INSTALL_CONFIGURATION_TABLE (EFI_SUBCLASS_SPECIFIC | 0x00000014) 909*f439973dSWarner Losh #define EFI_SW_BS_PC_LOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000015) 910*f439973dSWarner Losh #define EFI_SW_BS_PC_START_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000016) 911*f439973dSWarner Losh #define EFI_SW_BS_PC_EXIT (EFI_SUBCLASS_SPECIFIC | 0x00000017) 912*f439973dSWarner Losh #define EFI_SW_BS_PC_UNLOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000018) 913*f439973dSWarner Losh #define EFI_SW_BS_PC_EXIT_BOOT_SERVICES (EFI_SUBCLASS_SPECIFIC | 0x00000019) 914*f439973dSWarner Losh #define EFI_SW_BS_PC_GET_NEXT_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x0000001A) 915*f439973dSWarner Losh #define EFI_SW_BS_PC_STALL (EFI_SUBCLASS_SPECIFIC | 0x0000001B) 916*f439973dSWarner Losh #define EFI_SW_BS_PC_SET_WATCHDOG_TIMER (EFI_SUBCLASS_SPECIFIC | 0x0000001C) 917*f439973dSWarner Losh #define EFI_SW_BS_PC_CONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001D) 918*f439973dSWarner Losh #define EFI_SW_BS_PC_DISCONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001E) 919*f439973dSWarner Losh #define EFI_SW_BS_PC_OPEN_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x0000001F) 920*f439973dSWarner Losh #define EFI_SW_BS_PC_CLOSE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000020) 921*f439973dSWarner Losh #define EFI_SW_BS_PC_OPEN_PROTOCOL_INFORMATION (EFI_SUBCLASS_SPECIFIC | 0x00000021) 922*f439973dSWarner Losh #define EFI_SW_BS_PC_PROTOCOLS_PER_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000022) 923*f439973dSWarner Losh #define EFI_SW_BS_PC_LOCATE_HANDLE_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000023) 924*f439973dSWarner Losh #define EFI_SW_BS_PC_LOCATE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000024) 925*f439973dSWarner Losh #define EFI_SW_BS_PC_INSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000025) 926*f439973dSWarner Losh #define EFI_SW_BS_PC_UNINSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000026) 927*f439973dSWarner Losh #define EFI_SW_BS_PC_CALCULATE_CRC_32 (EFI_SUBCLASS_SPECIFIC | 0x00000027) 928*f439973dSWarner Losh #define EFI_SW_BS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000028) 929*f439973dSWarner Losh #define EFI_SW_BS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000029) 930*f439973dSWarner Losh #define EFI_SW_BS_PC_CREATE_EVENT_EX (EFI_SUBCLASS_SPECIFIC | 0x0000002A) 931*f439973dSWarner Losh ///@} 932*f439973dSWarner Losh 933*f439973dSWarner Losh /// 934*f439973dSWarner Losh /// Software Class EFI Runtime Services Subclass Progress Code definitions. 935*f439973dSWarner Losh /// 936*f439973dSWarner Losh ///@{ 937*f439973dSWarner Losh #define EFI_SW_RS_PC_GET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000000) 938*f439973dSWarner Losh #define EFI_SW_RS_PC_SET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000001) 939*f439973dSWarner Losh #define EFI_SW_RS_PC_GET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000002) 940*f439973dSWarner Losh #define EFI_SW_RS_PC_SET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000003) 941*f439973dSWarner Losh #define EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004) 942*f439973dSWarner Losh #define EFI_SW_RS_PC_CONVERT_POINTER (EFI_SUBCLASS_SPECIFIC | 0x00000005) 943*f439973dSWarner Losh #define EFI_SW_RS_PC_GET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000006) 944*f439973dSWarner Losh #define EFI_SW_RS_PC_GET_NEXT_VARIABLE_NAME (EFI_SUBCLASS_SPECIFIC | 0x00000007) 945*f439973dSWarner Losh #define EFI_SW_RS_PC_SET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000008) 946*f439973dSWarner Losh #define EFI_SW_RS_PC_GET_NEXT_HIGH_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x00000009) 947*f439973dSWarner Losh #define EFI_SW_RS_PC_RESET_SYSTEM (EFI_SUBCLASS_SPECIFIC | 0x0000000A) 948*f439973dSWarner Losh #define EFI_SW_RS_PC_UPDATE_CAPSULE (EFI_SUBCLASS_SPECIFIC | 0x0000000B) 949*f439973dSWarner Losh #define EFI_SW_RS_PC_QUERY_CAPSULE_CAPABILITIES (EFI_SUBCLASS_SPECIFIC | 0x0000000C) 950*f439973dSWarner Losh #define EFI_SW_RS_PC_QUERY_VARIABLE_INFO (EFI_SUBCLASS_SPECIFIC | 0x0000000D) 951*f439973dSWarner Losh ///@} 952*f439973dSWarner Losh 953*f439973dSWarner Losh /// 954*f439973dSWarner Losh /// Software Class EFI DXE Services Subclass Progress Code definitions 955*f439973dSWarner Losh /// 956*f439973dSWarner Losh ///@{ 957*f439973dSWarner Losh #define EFI_SW_DS_PC_ADD_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 958*f439973dSWarner Losh #define EFI_SW_DS_PC_ALLOCATE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000001) 959*f439973dSWarner Losh #define EFI_SW_DS_PC_FREE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000002) 960*f439973dSWarner Losh #define EFI_SW_DS_PC_REMOVE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000003) 961*f439973dSWarner Losh #define EFI_SW_DS_PC_GET_MEMORY_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000004) 962*f439973dSWarner Losh #define EFI_SW_DS_PC_SET_MEMORY_SPACE_ATTRIBUTES (EFI_SUBCLASS_SPECIFIC | 0x00000005) 963*f439973dSWarner Losh #define EFI_SW_DS_PC_GET_MEMORY_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000006) 964*f439973dSWarner Losh #define EFI_SW_DS_PC_ADD_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000007) 965*f439973dSWarner Losh #define EFI_SW_DS_PC_ALLOCATE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000008) 966*f439973dSWarner Losh #define EFI_SW_DS_PC_FREE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000009) 967*f439973dSWarner Losh #define EFI_SW_DS_PC_REMOVE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x0000000A) 968*f439973dSWarner Losh #define EFI_SW_DS_PC_GET_IO_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x0000000B) 969*f439973dSWarner Losh #define EFI_SW_DS_PC_GET_IO_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x0000000C) 970*f439973dSWarner Losh #define EFI_SW_DS_PC_DISPATCH (EFI_SUBCLASS_SPECIFIC | 0x0000000D) 971*f439973dSWarner Losh #define EFI_SW_DS_PC_SCHEDULE (EFI_SUBCLASS_SPECIFIC | 0x0000000E) 972*f439973dSWarner Losh #define EFI_SW_DS_PC_TRUST (EFI_SUBCLASS_SPECIFIC | 0x0000000F) 973*f439973dSWarner Losh #define EFI_SW_DS_PC_PROCESS_FIRMWARE_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000010) 974*f439973dSWarner Losh ///@} 975*f439973dSWarner Losh 976*f439973dSWarner Losh /// 977*f439973dSWarner Losh /// Software Class Error Code definitions. 978*f439973dSWarner Losh /// These are shared by all subclasses. 979*f439973dSWarner Losh /// 980*f439973dSWarner Losh ///@{ 981*f439973dSWarner Losh #define EFI_SW_EC_NON_SPECIFIC 0x00000000 982*f439973dSWarner Losh #define EFI_SW_EC_LOAD_ERROR 0x00000001 983*f439973dSWarner Losh #define EFI_SW_EC_INVALID_PARAMETER 0x00000002 984*f439973dSWarner Losh #define EFI_SW_EC_UNSUPPORTED 0x00000003 985*f439973dSWarner Losh #define EFI_SW_EC_INVALID_BUFFER 0x00000004 986*f439973dSWarner Losh #define EFI_SW_EC_OUT_OF_RESOURCES 0x00000005 987*f439973dSWarner Losh #define EFI_SW_EC_ABORTED 0x00000006 988*f439973dSWarner Losh #define EFI_SW_EC_ILLEGAL_SOFTWARE_STATE 0x00000007 989*f439973dSWarner Losh #define EFI_SW_EC_ILLEGAL_HARDWARE_STATE 0x00000008 990*f439973dSWarner Losh #define EFI_SW_EC_START_ERROR 0x00000009 991*f439973dSWarner Losh #define EFI_SW_EC_BAD_DATE_TIME 0x0000000A 992*f439973dSWarner Losh #define EFI_SW_EC_CFG_INVALID 0x0000000B 993*f439973dSWarner Losh #define EFI_SW_EC_CFG_CLR_REQUEST 0x0000000C 994*f439973dSWarner Losh #define EFI_SW_EC_CFG_DEFAULT 0x0000000D 995*f439973dSWarner Losh #define EFI_SW_EC_PWD_INVALID 0x0000000E 996*f439973dSWarner Losh #define EFI_SW_EC_PWD_CLR_REQUEST 0x0000000F 997*f439973dSWarner Losh #define EFI_SW_EC_PWD_CLEARED 0x00000010 998*f439973dSWarner Losh #define EFI_SW_EC_EVENT_LOG_FULL 0x00000011 999*f439973dSWarner Losh #define EFI_SW_EC_WRITE_PROTECTED 0x00000012 1000*f439973dSWarner Losh #define EFI_SW_EC_FV_CORRUPTED 0x00000013 1001*f439973dSWarner Losh #define EFI_SW_EC_INCONSISTENT_MEMORY_MAP 0x00000014 1002*f439973dSWarner Losh ///@} 1003*f439973dSWarner Losh 1004*f439973dSWarner Losh // 1005*f439973dSWarner Losh // Software Class Unspecified Subclass Error Code definitions. 1006*f439973dSWarner Losh // 1007*f439973dSWarner Losh 1008*f439973dSWarner Losh // 1009*f439973dSWarner Losh // Software Class SEC Subclass Error Code definitions. 1010*f439973dSWarner Losh // 1011*f439973dSWarner Losh 1012*f439973dSWarner Losh /// 1013*f439973dSWarner Losh /// Software Class PEI Core Subclass Error Code definitions. 1014*f439973dSWarner Losh /// 1015*f439973dSWarner Losh ///@{ 1016*f439973dSWarner Losh #define EFI_SW_PEI_CORE_EC_DXE_CORRUPT (EFI_SUBCLASS_SPECIFIC | 0x00000000) 1017*f439973dSWarner Losh #define EFI_SW_PEI_CORE_EC_DXEIPL_NOT_FOUND (EFI_SUBCLASS_SPECIFIC | 0x00000001) 1018*f439973dSWarner Losh #define EFI_SW_PEI_CORE_EC_MEMORY_NOT_INSTALLED (EFI_SUBCLASS_SPECIFIC | 0x00000002) 1019*f439973dSWarner Losh ///@} 1020*f439973dSWarner Losh 1021*f439973dSWarner Losh /// 1022*f439973dSWarner Losh /// Software Class PEI Module Subclass Error Code definitions. 1023*f439973dSWarner Losh /// 1024*f439973dSWarner Losh ///@{ 1025*f439973dSWarner Losh #define EFI_SW_PEI_EC_NO_RECOVERY_CAPSULE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 1026*f439973dSWarner Losh #define EFI_SW_PEI_EC_INVALID_CAPSULE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000001) 1027*f439973dSWarner Losh #define EFI_SW_PEI_EC_S3_RESUME_PPI_NOT_FOUND (EFI_SUBCLASS_SPECIFIC | 0x00000002) 1028*f439973dSWarner Losh #define EFI_SW_PEI_EC_S3_BOOT_SCRIPT_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000003) 1029*f439973dSWarner Losh #define EFI_SW_PEI_EC_S3_OS_WAKE_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000004) 1030*f439973dSWarner Losh #define EFI_SW_PEI_EC_S3_RESUME_FAILED (EFI_SUBCLASS_SPECIFIC | 0x00000005) 1031*f439973dSWarner Losh #define EFI_SW_PEI_EC_RECOVERY_PPI_NOT_FOUND (EFI_SUBCLASS_SPECIFIC | 0x00000006) 1032*f439973dSWarner Losh #define EFI_SW_PEI_EC_RECOVERY_FAILED (EFI_SUBCLASS_SPECIFIC | 0x00000007) 1033*f439973dSWarner Losh #define EFI_SW_PEI_EC_S3_RESUME_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000008) 1034*f439973dSWarner Losh #define EFI_SW_PEI_EC_INVALID_CAPSULE (EFI_SUBCLASS_SPECIFIC | 0x00000009) 1035*f439973dSWarner Losh ///@} 1036*f439973dSWarner Losh 1037*f439973dSWarner Losh /// 1038*f439973dSWarner Losh /// Software Class DXE Foundation Subclass Error Code definitions. 1039*f439973dSWarner Losh /// 1040*f439973dSWarner Losh ///@{ 1041*f439973dSWarner Losh #define EFI_SW_DXE_CORE_EC_NO_ARCH (EFI_SUBCLASS_SPECIFIC | 0x00000000) 1042*f439973dSWarner Losh ///@} 1043*f439973dSWarner Losh 1044*f439973dSWarner Losh /// 1045*f439973dSWarner Losh /// Software Class DXE Boot Service Driver Subclass Error Code definitions. 1046*f439973dSWarner Losh /// 1047*f439973dSWarner Losh ///@{ 1048*f439973dSWarner Losh #define EFI_SW_DXE_BS_EC_LEGACY_OPROM_NO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 1049*f439973dSWarner Losh #define EFI_SW_DXE_BS_EC_INVALID_PASSWORD (EFI_SUBCLASS_SPECIFIC | 0x00000001) 1050*f439973dSWarner Losh #define EFI_SW_DXE_BS_EC_BOOT_OPTION_LOAD_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002) 1051*f439973dSWarner Losh #define EFI_SW_DXE_BS_EC_BOOT_OPTION_FAILED (EFI_SUBCLASS_SPECIFIC | 0x00000003) 1052*f439973dSWarner Losh #define EFI_SW_DXE_BS_EC_INVALID_IDE_PASSWORD (EFI_SUBCLASS_SPECIFIC | 0x00000004) 1053*f439973dSWarner Losh ///@} 1054*f439973dSWarner Losh 1055*f439973dSWarner Losh // 1056*f439973dSWarner Losh // Software Class DXE Runtime Service Driver Subclass Error Code definitions. 1057*f439973dSWarner Losh // 1058*f439973dSWarner Losh 1059*f439973dSWarner Losh // 1060*f439973dSWarner Losh // Software Class SMM Driver Subclass Error Code definitions. 1061*f439973dSWarner Losh // 1062*f439973dSWarner Losh 1063*f439973dSWarner Losh // 1064*f439973dSWarner Losh // Software Class EFI Application Subclass Error Code definitions. 1065*f439973dSWarner Losh // 1066*f439973dSWarner Losh 1067*f439973dSWarner Losh // 1068*f439973dSWarner Losh // Software Class EFI OS Loader Subclass Error Code definitions. 1069*f439973dSWarner Losh // 1070*f439973dSWarner Losh 1071*f439973dSWarner Losh // 1072*f439973dSWarner Losh // Software Class EFI RT Subclass Error Code definitions. 1073*f439973dSWarner Losh // 1074*f439973dSWarner Losh 1075*f439973dSWarner Losh // 1076*f439973dSWarner Losh // Software Class EFI AL Subclass Error Code definitions. 1077*f439973dSWarner Losh // 1078*f439973dSWarner Losh 1079*f439973dSWarner Losh /// 1080*f439973dSWarner Losh /// Software Class EBC Exception Subclass Error Code definitions. 1081*f439973dSWarner Losh /// These exceptions are derived from the debug protocol definitions in the EFI 1082*f439973dSWarner Losh /// specification. 1083*f439973dSWarner Losh /// 1084*f439973dSWarner Losh ///@{ 1085*f439973dSWarner Losh #define EFI_SW_EC_EBC_UNDEFINED 0x00000000 1086*f439973dSWarner Losh #define EFI_SW_EC_EBC_DIVIDE_ERROR EXCEPT_EBC_DIVIDE_ERROR 1087*f439973dSWarner Losh #define EFI_SW_EC_EBC_DEBUG EXCEPT_EBC_DEBUG 1088*f439973dSWarner Losh #define EFI_SW_EC_EBC_BREAKPOINT EXCEPT_EBC_BREAKPOINT 1089*f439973dSWarner Losh #define EFI_SW_EC_EBC_OVERFLOW EXCEPT_EBC_OVERFLOW 1090*f439973dSWarner Losh #define EFI_SW_EC_EBC_INVALID_OPCODE EXCEPT_EBC_INVALID_OPCODE 1091*f439973dSWarner Losh #define EFI_SW_EC_EBC_STACK_FAULT EXCEPT_EBC_STACK_FAULT 1092*f439973dSWarner Losh #define EFI_SW_EC_EBC_ALIGNMENT_CHECK EXCEPT_EBC_ALIGNMENT_CHECK 1093*f439973dSWarner Losh #define EFI_SW_EC_EBC_INSTRUCTION_ENCODING EXCEPT_EBC_INSTRUCTION_ENCODING 1094*f439973dSWarner Losh #define EFI_SW_EC_EBC_BAD_BREAK EXCEPT_EBC_BAD_BREAK 1095*f439973dSWarner Losh #define EFI_SW_EC_EBC_STEP EXCEPT_EBC_STEP 1096*f439973dSWarner Losh ///@} 1097*f439973dSWarner Losh 1098*f439973dSWarner Losh /// 1099*f439973dSWarner Losh /// Software Class IA32 Exception Subclass Error Code definitions. 1100*f439973dSWarner Losh /// These exceptions are derived from the debug protocol definitions in the EFI 1101*f439973dSWarner Losh /// specification. 1102*f439973dSWarner Losh /// 1103*f439973dSWarner Losh ///@{ 1104*f439973dSWarner Losh #define EFI_SW_EC_IA32_DIVIDE_ERROR EXCEPT_IA32_DIVIDE_ERROR 1105*f439973dSWarner Losh #define EFI_SW_EC_IA32_DEBUG EXCEPT_IA32_DEBUG 1106*f439973dSWarner Losh #define EFI_SW_EC_IA32_NMI EXCEPT_IA32_NMI 1107*f439973dSWarner Losh #define EFI_SW_EC_IA32_BREAKPOINT EXCEPT_IA32_BREAKPOINT 1108*f439973dSWarner Losh #define EFI_SW_EC_IA32_OVERFLOW EXCEPT_IA32_OVERFLOW 1109*f439973dSWarner Losh #define EFI_SW_EC_IA32_BOUND EXCEPT_IA32_BOUND 1110*f439973dSWarner Losh #define EFI_SW_EC_IA32_INVALID_OPCODE EXCEPT_IA32_INVALID_OPCODE 1111*f439973dSWarner Losh #define EFI_SW_EC_IA32_DOUBLE_FAULT EXCEPT_IA32_DOUBLE_FAULT 1112*f439973dSWarner Losh #define EFI_SW_EC_IA32_INVALID_TSS EXCEPT_IA32_INVALID_TSS 1113*f439973dSWarner Losh #define EFI_SW_EC_IA32_SEG_NOT_PRESENT EXCEPT_IA32_SEG_NOT_PRESENT 1114*f439973dSWarner Losh #define EFI_SW_EC_IA32_STACK_FAULT EXCEPT_IA32_STACK_FAULT 1115*f439973dSWarner Losh #define EFI_SW_EC_IA32_GP_FAULT EXCEPT_IA32_GP_FAULT 1116*f439973dSWarner Losh #define EFI_SW_EC_IA32_PAGE_FAULT EXCEPT_IA32_PAGE_FAULT 1117*f439973dSWarner Losh #define EFI_SW_EC_IA32_FP_ERROR EXCEPT_IA32_FP_ERROR 1118*f439973dSWarner Losh #define EFI_SW_EC_IA32_ALIGNMENT_CHECK EXCEPT_IA32_ALIGNMENT_CHECK 1119*f439973dSWarner Losh #define EFI_SW_EC_IA32_MACHINE_CHECK EXCEPT_IA32_MACHINE_CHECK 1120*f439973dSWarner Losh #define EFI_SW_EC_IA32_SIMD EXCEPT_IA32_SIMD 1121*f439973dSWarner Losh ///@} 1122*f439973dSWarner Losh 1123*f439973dSWarner Losh /// 1124*f439973dSWarner Losh /// Software Class IPF Exception Subclass Error Code definitions. 1125*f439973dSWarner Losh /// These exceptions are derived from the debug protocol definitions in the EFI 1126*f439973dSWarner Losh /// specification. 1127*f439973dSWarner Losh /// 1128*f439973dSWarner Losh ///@{ 1129*f439973dSWarner Losh #define EFI_SW_EC_IPF_ALT_DTLB EXCEPT_IPF_ALT_DTLB 1130*f439973dSWarner Losh #define EFI_SW_EC_IPF_DNESTED_TLB EXCEPT_IPF_DNESTED_TLB 1131*f439973dSWarner Losh #define EFI_SW_EC_IPF_BREAKPOINT EXCEPT_IPF_BREAKPOINT 1132*f439973dSWarner Losh #define EFI_SW_EC_IPF_EXTERNAL_INTERRUPT EXCEPT_IPF_EXTERNAL_INTERRUPT 1133*f439973dSWarner Losh #define EFI_SW_EC_IPF_GEN_EXCEPT EXCEPT_IPF_GEN_EXCEPT 1134*f439973dSWarner Losh #define EFI_SW_EC_IPF_NAT_CONSUMPTION EXCEPT_IPF_NAT_CONSUMPTION 1135*f439973dSWarner Losh #define EFI_SW_EC_IPF_DEBUG_EXCEPT EXCEPT_IPF_DEBUG_EXCEPT 1136*f439973dSWarner Losh #define EFI_SW_EC_IPF_UNALIGNED_ACCESS EXCEPT_IPF_UNALIGNED_ACCESS 1137*f439973dSWarner Losh #define EFI_SW_EC_IPF_FP_FAULT EXCEPT_IPF_FP_FAULT 1138*f439973dSWarner Losh #define EFI_SW_EC_IPF_FP_TRAP EXCEPT_IPF_FP_TRAP 1139*f439973dSWarner Losh #define EFI_SW_EC_IPF_TAKEN_BRANCH EXCEPT_IPF_TAKEN_BRANCH 1140*f439973dSWarner Losh #define EFI_SW_EC_IPF_SINGLE_STEP EXCEPT_IPF_SINGLE_STEP 1141*f439973dSWarner Losh ///@} 1142*f439973dSWarner Losh 1143*f439973dSWarner Losh /// 1144*f439973dSWarner Losh /// Software Class PEI Service Subclass Error Code definitions. 1145*f439973dSWarner Losh /// 1146*f439973dSWarner Losh ///@{ 1147*f439973dSWarner Losh #define EFI_SW_PS_EC_RESET_NOT_AVAILABLE (EFI_SUBCLASS_SPECIFIC | 0x00000000) 1148*f439973dSWarner Losh #define EFI_SW_PS_EC_MEMORY_INSTALLED_TWICE (EFI_SUBCLASS_SPECIFIC | 0x00000001) 1149*f439973dSWarner Losh ///@} 1150*f439973dSWarner Losh 1151*f439973dSWarner Losh // 1152*f439973dSWarner Losh // Software Class EFI Boot Service Subclass Error Code definitions. 1153*f439973dSWarner Losh // 1154*f439973dSWarner Losh 1155*f439973dSWarner Losh // 1156*f439973dSWarner Losh // Software Class EFI Runtime Service Subclass Error Code definitions. 1157*f439973dSWarner Losh // 1158*f439973dSWarner Losh 1159*f439973dSWarner Losh /// 1160*f439973dSWarner Losh /// Software Class EFI DXE Service Subclass Error Code definitions. 1161*f439973dSWarner Losh /// 1162*f439973dSWarner Losh ///@{ 1163*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS (EFI_SUBCLASS_SPECIFIC | 0x00000005) 1164*f439973dSWarner Losh #define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD (EFI_SUBCLASS_SPECIFIC | 0x00000006) 1165*f439973dSWarner Losh ///@} 1166*f439973dSWarner Losh 1167*f439973dSWarner Losh /// 1168*f439973dSWarner Losh /// Software Class DXE RT Driver Subclass Progress Code definitions. 1169*f439973dSWarner Losh /// 1170*f439973dSWarner Losh ///@{ 1171*f439973dSWarner Losh #define EFI_SW_DXE_RT_PC_S0 (EFI_SUBCLASS_SPECIFIC | 0x00000000) 1172*f439973dSWarner Losh #define EFI_SW_DXE_RT_PC_S1 (EFI_SUBCLASS_SPECIFIC | 0x00000001) 1173*f439973dSWarner Losh #define EFI_SW_DXE_RT_PC_S2 (EFI_SUBCLASS_SPECIFIC | 0x00000002) 1174*f439973dSWarner Losh #define EFI_SW_DXE_RT_PC_S3 (EFI_SUBCLASS_SPECIFIC | 0x00000003) 1175*f439973dSWarner Losh #define EFI_SW_DXE_RT_PC_S4 (EFI_SUBCLASS_SPECIFIC | 0x00000004) 1176*f439973dSWarner Losh #define EFI_SW_DXE_RT_PC_S5 (EFI_SUBCLASS_SPECIFIC | 0x00000005) 1177*f439973dSWarner Losh ///@} 1178*f439973dSWarner Losh 1179*f439973dSWarner Losh /// 1180*f439973dSWarner Losh /// Software Class X64 Exception Subclass Error Code definitions. 1181*f439973dSWarner Losh /// These exceptions are derived from the debug protocol 1182*f439973dSWarner Losh /// definitions in the EFI specification. 1183*f439973dSWarner Losh /// 1184*f439973dSWarner Losh ///@{ 1185*f439973dSWarner Losh #define EFI_SW_EC_X64_DIVIDE_ERROR EXCEPT_X64_DIVIDE_ERROR 1186*f439973dSWarner Losh #define EFI_SW_EC_X64_DEBUG EXCEPT_X64_DEBUG 1187*f439973dSWarner Losh #define EFI_SW_EC_X64_NMI EXCEPT_X64_NMI 1188*f439973dSWarner Losh #define EFI_SW_EC_X64_BREAKPOINT EXCEPT_X64_BREAKPOINT 1189*f439973dSWarner Losh #define EFI_SW_EC_X64_OVERFLOW EXCEPT_X64_OVERFLOW 1190*f439973dSWarner Losh #define EFI_SW_EC_X64_BOUND EXCEPT_X64_BOUND 1191*f439973dSWarner Losh #define EFI_SW_EC_X64_INVALID_OPCODE EXCEPT_X64_INVALID_OPCODE 1192*f439973dSWarner Losh #define EFI_SW_EC_X64_DOUBLE_FAULT EXCEPT_X64_DOUBLE_FAULT 1193*f439973dSWarner Losh #define EFI_SW_EC_X64_INVALID_TSS EXCEPT_X64_INVALID_TSS 1194*f439973dSWarner Losh #define EFI_SW_EC_X64_SEG_NOT_PRESENT EXCEPT_X64_SEG_NOT_PRESENT 1195*f439973dSWarner Losh #define EFI_SW_EC_X64_STACK_FAULT EXCEPT_X64_STACK_FAULT 1196*f439973dSWarner Losh #define EFI_SW_EC_X64_GP_FAULT EXCEPT_X64_GP_FAULT 1197*f439973dSWarner Losh #define EFI_SW_EC_X64_PAGE_FAULT EXCEPT_X64_PAGE_FAULT 1198*f439973dSWarner Losh #define EFI_SW_EC_X64_FP_ERROR EXCEPT_X64_FP_ERROR 1199*f439973dSWarner Losh #define EFI_SW_EC_X64_ALIGNMENT_CHECK EXCEPT_X64_ALIGNMENT_CHECK 1200*f439973dSWarner Losh #define EFI_SW_EC_X64_MACHINE_CHECK EXCEPT_X64_MACHINE_CHECK 1201*f439973dSWarner Losh #define EFI_SW_EC_X64_SIMD EXCEPT_X64_SIMD 1202*f439973dSWarner Losh ///@} 1203*f439973dSWarner Losh 1204*f439973dSWarner Losh /// 1205*f439973dSWarner Losh /// Software Class ARM Exception Subclass Error Code definitions. 1206*f439973dSWarner Losh /// These exceptions are derived from the debug protocol 1207*f439973dSWarner Losh /// definitions in the EFI specification. 1208*f439973dSWarner Losh /// 1209*f439973dSWarner Losh ///@{ 1210*f439973dSWarner Losh #define EFI_SW_EC_ARM_RESET EXCEPT_ARM_RESET 1211*f439973dSWarner Losh #define EFI_SW_EC_ARM_UNDEFINED_INSTRUCTION EXCEPT_ARM_UNDEFINED_INSTRUCTION 1212*f439973dSWarner Losh #define EFI_SW_EC_ARM_SOFTWARE_INTERRUPT EXCEPT_ARM_SOFTWARE_INTERRUPT 1213*f439973dSWarner Losh #define EFI_SW_EC_ARM_PREFETCH_ABORT EXCEPT_ARM_PREFETCH_ABORT 1214*f439973dSWarner Losh #define EFI_SW_EC_ARM_DATA_ABORT EXCEPT_ARM_DATA_ABORT 1215*f439973dSWarner Losh #define EFI_SW_EC_ARM_RESERVED EXCEPT_ARM_RESERVED 1216*f439973dSWarner Losh #define EFI_SW_EC_ARM_IRQ EXCEPT_ARM_IRQ 1217*f439973dSWarner Losh #define EFI_SW_EC_ARM_FIQ EXCEPT_ARM_FIQ 1218*f439973dSWarner Losh ///@} 1219*f439973dSWarner Losh 1220*f439973dSWarner Losh #endif 1221