2 This file defines the data structures to support Status Code Data.
4 Copyright (c) 2006, 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: StatusCodeDataTypeId.h
15 @par Revision Reference:
16 These definitions are from Framework of EFI Status Code Spec
21 #ifndef __STATUS_CODE_DATA_TYPE_ID_H__
22 #define __STATUS_CODE_DATA_TYPE_ID_H__
26 /// The size of string
28 #define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
31 /// This is the max data size including all the headers which can be passed
32 /// as Status Code data. This data should be multiple of 8 byte
33 /// to avoid any kind of boundary issue. Also, sum of this data size (inclusive
34 /// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
37 #define EFI_STATUS_CODE_DATA_MAX_SIZE 200
47 EFI_HII_HANDLE Handle
;
49 } EFI_STATUS_CODE_STRING_TOKEN
;
54 EFI_STATUS_CODE_STRING_TOKEN Hii
;
55 } EFI_STATUS_CODE_STRING
;
58 EFI_STATUS_CODE_DATA DataHeader
;
59 EFI_STRING_TYPE StringType
;
60 EFI_STATUS_CODE_STRING String
;
61 } EFI_STATUS_CODE_STRING_DATA
;
70 // 12 * sizeof (UINT64) Var Arg stack
72 // ascii DEBUG () Format string
79 // declaration for EFI_EXP_DATA. This may change
81 // typedef UINTN EFI_EXP_DATA;
84 /// Voltage Extended Error Data
87 EFI_STATUS_CODE_DATA DataHeader
;
88 EFI_EXP_BASE10_DATA Voltage
;
89 EFI_EXP_BASE10_DATA Threshold
;
90 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA
;
93 /// Microcode Update Extended Error Data
96 EFI_STATUS_CODE_DATA DataHeader
;
98 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA
;
101 /// Asynchronous Timer Extended Error Data
104 EFI_STATUS_CODE_DATA DataHeader
;
105 EFI_EXP_BASE10_DATA TimerLimit
;
106 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA
;
109 /// Host Processor Mismatch Extended Error Data
112 EFI_STATUS_CODE_DATA DataHeader
;
115 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA
;
118 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
119 // All other attributes are reserved for future use and
120 // must be initialized to 0.
122 #define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
123 #define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
124 #define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
125 #define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
126 #define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
127 #define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
128 #define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
129 #define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
130 #define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
131 #define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
134 /// Thermal Extended Error Data
137 EFI_STATUS_CODE_DATA DataHeader
;
138 EFI_EXP_BASE10_DATA Temperature
;
139 EFI_EXP_BASE10_DATA Threshold
;
140 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA
;
143 /// Processor Disabled Extended Error Data
146 EFI_STATUS_CODE_DATA DataHeader
;
148 BOOLEAN SoftwareDisabled
;
149 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA
;
152 EfiInitCacheDataOnly
,
153 EfiInitCacheInstrOnly
,
155 EfiInitCacheUnspecified
156 } EFI_INIT_CACHE_TYPE
;
159 /// Embedded cache init extended data
162 EFI_STATUS_CODE_DATA DataHeader
;
164 EFI_INIT_CACHE_TYPE Type
;
165 } EFI_CACHE_INIT_DATA
;
168 // Memory Extended Error Data
172 /// Memory Error Granularity Definition
174 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY
;
177 /// Memory Error Operation Definition
179 typedef UINT8 EFI_MEMORY_ERROR_OPERATION
;
182 EFI_STATUS_CODE_DATA DataHeader
;
183 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
184 EFI_MEMORY_ERROR_OPERATION Operation
;
186 EFI_PHYSICAL_ADDRESS Address
;
188 } EFI_MEMORY_EXTENDED_ERROR_DATA
;
191 // Memory Error Granularities
193 #define EFI_MEMORY_ERROR_OTHER 0x01
194 #define EFI_MEMORY_ERROR_UNKNOWN 0x02
195 #define EFI_MEMORY_ERROR_DEVICE 0x03
196 #define EFI_MEMORY_ERROR_PARTITION 0x04
199 // Memory Error Operations
201 #define EFI_MEMORY_OPERATION_OTHER 0x01
202 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
203 #define EFI_MEMORY_OPERATION_READ 0x03
204 #define EFI_MEMORY_OPERATION_WRITE 0x04
205 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
208 // Define shorthands to describe Group Operations
209 // Many memory init operations are essentially group
212 /// A shorthand to describe that the operation is performed
213 /// on multiple devices within the array
215 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
217 /// A shorthand to describe that the operation is performed on all devices within the array
219 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
221 /// A shorthand to describe that the operation is performed on multiple arrays
223 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
225 /// A shorthand to describe that the operation is performed on all the arrays
227 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
234 EFI_STATUS_CODE_DATA DataHeader
;
237 } EFI_STATUS_CODE_DIMM_NUMBER
;
241 /// Memory Module Mismatch Extended Error Data
244 EFI_STATUS_CODE_DATA DataHeader
;
245 EFI_STATUS_CODE_DIMM_NUMBER Instance
;
246 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA
;
249 /// Memory Range Extended Data
252 EFI_STATUS_CODE_DATA DataHeader
;
253 EFI_PHYSICAL_ADDRESS Start
;
254 EFI_PHYSICAL_ADDRESS Length
;
255 } EFI_MEMORY_RANGE_EXTENDED_DATA
;
258 /// Device handle Extended Data. Used for many
259 /// errors and progress codes to point to the device.
262 EFI_STATUS_CODE_DATA DataHeader
;
264 } EFI_DEVICE_HANDLE_EXTENDED_DATA
;
267 EFI_STATUS_CODE_DATA DataHeader
;
269 } EFI_DEVICE_PATH_EXTENDED_DATA
;
272 EFI_STATUS_CODE_DATA DataHeader
;
273 EFI_HANDLE ControllerHandle
;
274 EFI_HANDLE DriverBindingHandle
;
275 UINT16 DevicePathSize
;
276 UINT8
*RemainingDevicePath
;
277 } EFI_STATUS_CODE_START_EXTENDED_DATA
;
280 /// Resource Allocation Failure Extended Error Data
285 EFI_STATUS_CODE_DATA DataHeader;
286 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
290 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
293 EFI_STATUS_CODE_DATA DataHeader
;
295 UINT16 DevicePathSize
;
301 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA
;
304 /// Extended Error Data for Assert
307 EFI_STATUS_CODE_DATA DataHeader
;
310 EFI_STATUS_CODE_STRING_DATA
*FileName
;
311 } EFI_DEBUG_ASSERT_DATA
;
314 /// System Context Data EBC/IA32/IPF
317 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc
;
318 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32
;
319 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf
;
320 } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT
;
323 EFI_STATUS_CODE_DATA DataHeader
;
324 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context
;
325 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA
;
328 /// Legacy Oprom extended data
331 EFI_STATUS_CODE_DATA DataHeader
;
332 EFI_HANDLE DeviceHandle
;
333 EFI_PHYSICAL_ADDRESS RomImageBase
;
334 } EFI_LEGACY_OPROM_EXTENDED_DATA
;