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 EFI_EXP_BASE10_DATA Voltage
;
95 EFI_EXP_BASE10_DATA Threshold
;
96 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA_PAYLOAD
;
99 /// Microcode Update Extended Error Data
102 EFI_STATUS_CODE_DATA DataHeader
;
104 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA
;
108 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA_PAYLOAD
;
111 /// Asynchronous Timer Extended Error Data
114 EFI_STATUS_CODE_DATA DataHeader
;
115 EFI_EXP_BASE10_DATA TimerLimit
;
116 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA
;
119 EFI_EXP_BASE10_DATA TimerLimit
;
120 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA_PAYLOAD
;
123 /// Host Processor Mismatch Extended Error Data
126 EFI_STATUS_CODE_DATA DataHeader
;
129 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA
;
134 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA_PAYLOAD
;
137 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
138 // All other attributes are reserved for future use and
139 // must be initialized to 0.
141 #define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
142 #define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
143 #define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
144 #define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
145 #define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
146 #define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
147 #define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
148 #define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
149 #define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
150 #define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
153 /// Thermal Extended Error Data
156 EFI_STATUS_CODE_DATA DataHeader
;
157 EFI_EXP_BASE10_DATA Temperature
;
158 EFI_EXP_BASE10_DATA Threshold
;
159 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA
;
162 EFI_EXP_BASE10_DATA Temperature
;
163 EFI_EXP_BASE10_DATA Threshold
;
164 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA_PAYLOAD
;
167 /// Processor Disabled Extended Error Data
170 EFI_STATUS_CODE_DATA DataHeader
;
172 BOOLEAN SoftwareDisabled
;
173 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA
;
177 BOOLEAN SoftwareDisabled
;
178 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA_PAYLOAD
;
181 EfiInitCacheDataOnly
,
182 EfiInitCacheInstrOnly
,
184 EfiInitCacheUnspecified
185 } EFI_INIT_CACHE_TYPE
;
188 /// Embedded cache init extended data
191 EFI_STATUS_CODE_DATA DataHeader
;
193 EFI_INIT_CACHE_TYPE Type
;
194 } EFI_CACHE_INIT_DATA
;
198 EFI_INIT_CACHE_TYPE Type
;
199 } EFI_CACHE_INIT_DATA_PAYLOAD
;
202 // Memory Extended Error Data
206 /// Memory Error Granularity Definition
208 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY
;
211 /// Memory Error Operation Definition
213 typedef UINT8 EFI_MEMORY_ERROR_OPERATION
;
216 EFI_STATUS_CODE_DATA DataHeader
;
217 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
218 EFI_MEMORY_ERROR_OPERATION Operation
;
220 EFI_PHYSICAL_ADDRESS Address
;
222 } EFI_MEMORY_EXTENDED_ERROR_DATA
;
225 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
226 EFI_MEMORY_ERROR_OPERATION Operation
;
228 EFI_PHYSICAL_ADDRESS Address
;
230 } EFI_MEMORY_EXTENDED_ERROR_DATA_PAYLOAD
;
233 // Memory Error Granularities
235 #define EFI_MEMORY_ERROR_OTHER 0x01
236 #define EFI_MEMORY_ERROR_UNKNOWN 0x02
237 #define EFI_MEMORY_ERROR_DEVICE 0x03
238 #define EFI_MEMORY_ERROR_PARTITION 0x04
241 // Memory Error Operations
243 #define EFI_MEMORY_OPERATION_OTHER 0x01
244 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
245 #define EFI_MEMORY_OPERATION_READ 0x03
246 #define EFI_MEMORY_OPERATION_WRITE 0x04
247 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
250 // Define shorthands to describe Group Operations
251 // Many memory init operations are essentially group
254 /// A shorthand to describe that the operation is performed
255 /// on multiple devices within the array
257 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
259 /// A shorthand to describe that the operation is performed on all devices within the array
261 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
263 /// A shorthand to describe that the operation is performed on multiple arrays
265 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
267 /// A shorthand to describe that the operation is performed on all the arrays
269 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
276 EFI_STATUS_CODE_DATA DataHeader
;
279 } EFI_STATUS_CODE_DIMM_NUMBER
;
284 } EFI_STATUS_CODE_DIMM_NUMBER_PAYLOAD
;
288 /// Memory Module Mismatch Extended Error Data
291 EFI_STATUS_CODE_DATA DataHeader
;
292 EFI_STATUS_CODE_DIMM_NUMBER Instance
;
293 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA
;
296 EFI_STATUS_CODE_DIMM_NUMBER Instance
;
297 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA_PAYLOAD
;
300 /// Memory Range Extended Data
303 EFI_STATUS_CODE_DATA DataHeader
;
304 EFI_PHYSICAL_ADDRESS Start
;
305 EFI_PHYSICAL_ADDRESS Length
;
306 } EFI_MEMORY_RANGE_EXTENDED_DATA
;
309 EFI_PHYSICAL_ADDRESS Start
;
310 EFI_PHYSICAL_ADDRESS Length
;
311 } EFI_MEMORY_RANGE_EXTENDED_DATA_PAYLOAD
;
314 /// Device handle Extended Data. Used for many
315 /// errors and progress codes to point to the device.
318 EFI_STATUS_CODE_DATA DataHeader
;
320 } EFI_DEVICE_HANDLE_EXTENDED_DATA
;
323 EFI_STATUS_CODE_DATA DataHeader
;
325 } EFI_DEVICE_PATH_EXTENDED_DATA
;
328 EFI_STATUS_CODE_DATA DataHeader
;
329 EFI_HANDLE ControllerHandle
;
330 EFI_HANDLE DriverBindingHandle
;
331 UINT16 DevicePathSize
;
332 UINT8
*RemainingDevicePath
;
333 } EFI_STATUS_CODE_START_EXTENDED_DATA
;
337 } EFI_DEVICE_HANDLE_EXTENDED_DATA_PAYLOAD
;
341 } EFI_DEVICE_PATH_EXTENDED_DATA_PAYLOAD
;
344 EFI_HANDLE ControllerHandle
;
345 EFI_HANDLE DriverBindingHandle
;
346 UINT16 DevicePathSize
;
347 UINT8
*RemainingDevicePath
;
348 } EFI_STATUS_CODE_START_EXTENDED_DATA_PAYLOAD
;
351 /// Resource Allocation Failure Extended Error Data
356 EFI_STATUS_CODE_DATA DataHeader;
357 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
361 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
364 EFI_STATUS_CODE_DATA DataHeader
;
366 UINT16 DevicePathSize
;
372 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA
;
376 UINT16 DevicePathSize
;
382 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA_PAYLOAD
;
385 /// Extended Error Data for Assert
388 EFI_STATUS_CODE_DATA DataHeader
;
391 EFI_STATUS_CODE_STRING_DATA
*FileName
;
392 } EFI_DEBUG_ASSERT_DATA
;
397 EFI_STATUS_CODE_STRING_DATA
*FileName
;
398 } EFI_DEBUG_ASSERT_DATA_PAYLOAD
;
401 /// System Context Data EBC/IA32/IPF
404 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc
;
405 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32
;
406 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf
;
407 } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT
;
410 EFI_STATUS_CODE_DATA DataHeader
;
411 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context
;
412 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA
;
415 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context
;
416 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA_PAYLOAD
;
419 /// Legacy Oprom extended data
422 EFI_STATUS_CODE_DATA DataHeader
;
423 EFI_HANDLE DeviceHandle
;
424 EFI_PHYSICAL_ADDRESS RomImageBase
;
425 } EFI_LEGACY_OPROM_EXTENDED_DATA
;
428 EFI_HANDLE DeviceHandle
;
429 EFI_PHYSICAL_ADDRESS RomImageBase
;
430 } EFI_LEGACY_OPROM_EXTENDED_DATA_PAYLOAD
;