2 This file defines the data structures to support Status Code Data.
4 Copyright (c) 2007, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 Module Name: FrameworkStatusCodeDataTypeId.h
15 @par Revision Reference:
16 These definitions are from Framework of EFI Status Code Spec
21 #ifndef __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__
22 #define __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__
24 #include <Protocol/DebugSupport.h>
27 /// The size of string
29 #define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
32 /// This is the max data size including all the headers which can be passed
33 /// as Status Code data. This data should be multiple of 8 byte
34 /// to avoid any kind of boundary issue. Also, sum of this data size (inclusive
35 /// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
38 #define EFI_STATUS_CODE_DATA_MAX_SIZE 200
48 EFI_HII_HANDLE Handle
;
50 } EFI_STATUS_CODE_STRING_TOKEN
;
55 EFI_STATUS_CODE_STRING_TOKEN Hii
;
56 } EFI_STATUS_CODE_STRING
;
59 EFI_STATUS_CODE_DATA DataHeader
;
60 EFI_STRING_TYPE StringType
;
61 EFI_STATUS_CODE_STRING String
;
62 } EFI_STATUS_CODE_STRING_DATA
;
71 // 12 * sizeof (UINT64) Var Arg stack
73 // ascii DEBUG () Format string
80 // declaration for EFI_EXP_DATA. This may change
82 // typedef UINTN EFI_EXP_DATA;
85 /// Voltage Extended Error Data
88 EFI_STATUS_CODE_DATA DataHeader
;
89 EFI_EXP_BASE10_DATA Voltage
;
90 EFI_EXP_BASE10_DATA Threshold
;
91 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA
;
94 /// Microcode Update Extended Error Data
97 EFI_STATUS_CODE_DATA DataHeader
;
99 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA
;
102 /// Asynchronous Timer Extended Error Data
105 EFI_STATUS_CODE_DATA DataHeader
;
106 EFI_EXP_BASE10_DATA TimerLimit
;
107 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA
;
110 /// Host Processor Mismatch Extended Error Data
113 EFI_STATUS_CODE_DATA DataHeader
;
116 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA
;
119 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
120 // All other attributes are reserved for future use and
121 // must be initialized to 0.
123 #define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
124 #define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
125 #define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
126 #define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
127 #define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
128 #define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
129 #define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
130 #define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
131 #define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
132 #define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
135 /// Thermal Extended Error Data
138 EFI_STATUS_CODE_DATA DataHeader
;
139 EFI_EXP_BASE10_DATA Temperature
;
140 EFI_EXP_BASE10_DATA Threshold
;
141 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA
;
144 /// Processor Disabled Extended Error Data
147 EFI_STATUS_CODE_DATA DataHeader
;
149 BOOLEAN SoftwareDisabled
;
150 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA
;
153 EfiInitCacheDataOnly
,
154 EfiInitCacheInstrOnly
,
156 EfiInitCacheUnspecified
157 } EFI_INIT_CACHE_TYPE
;
160 /// Embedded cache init extended data
163 EFI_STATUS_CODE_DATA DataHeader
;
165 EFI_INIT_CACHE_TYPE Type
;
166 } EFI_CACHE_INIT_DATA
;
169 // Memory Extended Error Data
173 /// Memory Error Granularity Definition
175 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY
;
178 /// Memory Error Operation Definition
180 typedef UINT8 EFI_MEMORY_ERROR_OPERATION
;
183 EFI_STATUS_CODE_DATA DataHeader
;
184 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
185 EFI_MEMORY_ERROR_OPERATION Operation
;
187 EFI_PHYSICAL_ADDRESS Address
;
189 } EFI_MEMORY_EXTENDED_ERROR_DATA
;
192 // Memory Error Granularities
194 #define EFI_MEMORY_ERROR_OTHER 0x01
195 #define EFI_MEMORY_ERROR_UNKNOWN 0x02
196 #define EFI_MEMORY_ERROR_DEVICE 0x03
197 #define EFI_MEMORY_ERROR_PARTITION 0x04
200 // Memory Error Operations
202 #define EFI_MEMORY_OPERATION_OTHER 0x01
203 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
204 #define EFI_MEMORY_OPERATION_READ 0x03
205 #define EFI_MEMORY_OPERATION_WRITE 0x04
206 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
209 // Define shorthands to describe Group Operations
210 // Many memory init operations are essentially group
213 /// A shorthand to describe that the operation is performed
214 /// on multiple devices within the array
216 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
218 /// A shorthand to describe that the operation is performed on all devices within the array
220 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
222 /// A shorthand to describe that the operation is performed on multiple arrays
224 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
226 /// A shorthand to describe that the operation is performed on all the arrays
228 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
235 EFI_STATUS_CODE_DATA DataHeader
;
238 } EFI_STATUS_CODE_DIMM_NUMBER
;
242 /// Memory Module Mismatch Extended Error Data
245 EFI_STATUS_CODE_DATA DataHeader
;
246 EFI_STATUS_CODE_DIMM_NUMBER Instance
;
247 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA
;
250 /// Memory Range Extended Data
253 EFI_STATUS_CODE_DATA DataHeader
;
254 EFI_PHYSICAL_ADDRESS Start
;
255 EFI_PHYSICAL_ADDRESS Length
;
256 } EFI_MEMORY_RANGE_EXTENDED_DATA
;
259 /// Device handle Extended Data. Used for many
260 /// errors and progress codes to point to the device.
263 EFI_STATUS_CODE_DATA DataHeader
;
265 } EFI_DEVICE_HANDLE_EXTENDED_DATA
;
268 EFI_STATUS_CODE_DATA DataHeader
;
270 } EFI_DEVICE_PATH_EXTENDED_DATA
;
273 EFI_STATUS_CODE_DATA DataHeader
;
274 EFI_HANDLE ControllerHandle
;
275 EFI_HANDLE DriverBindingHandle
;
276 UINT16 DevicePathSize
;
277 UINT8
*RemainingDevicePath
;
278 } EFI_STATUS_CODE_START_EXTENDED_DATA
;
281 /// Resource Allocation Failure Extended Error Data
286 EFI_STATUS_CODE_DATA DataHeader;
287 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
291 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
294 EFI_STATUS_CODE_DATA DataHeader
;
296 UINT16 DevicePathSize
;
302 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA
;
305 /// Extended Error Data for Assert
308 EFI_STATUS_CODE_DATA DataHeader
;
311 EFI_STATUS_CODE_STRING_DATA
*FileName
;
312 } EFI_DEBUG_ASSERT_DATA
;
315 /// System Context Data EBC/IA32/IPF
318 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc
;
319 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32
;
320 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf
;
321 } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT
;
324 EFI_STATUS_CODE_DATA DataHeader
;
325 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context
;
326 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA
;
329 /// Legacy Oprom extended data
332 EFI_STATUS_CODE_DATA DataHeader
;
333 EFI_HANDLE DeviceHandle
;
334 EFI_PHYSICAL_ADDRESS RomImageBase
;
335 } EFI_LEGACY_OPROM_EXTENDED_DATA
;