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 <Framework/DataHubRecords.h>
25 #include <Protocol/DebugSupport.h>
28 /// The size of string
30 #define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
33 /// This is the max data size including all the headers which can be passed
34 /// as Status Code data. This data should be multiple of 8 byte
35 /// to avoid any kind of boundary issue. Also, sum of this data size (inclusive
36 /// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
39 #define EFI_STATUS_CODE_DATA_MAX_SIZE 200
49 EFI_HII_HANDLE Handle
;
51 } EFI_STATUS_CODE_STRING_TOKEN
;
56 EFI_STATUS_CODE_STRING_TOKEN Hii
;
57 } EFI_STATUS_CODE_STRING
;
60 EFI_STATUS_CODE_DATA DataHeader
;
61 EFI_STRING_TYPE StringType
;
62 EFI_STATUS_CODE_STRING String
;
63 } EFI_STATUS_CODE_STRING_DATA
;
72 // 12 * sizeof (UINT64) Var Arg stack
74 // ascii DEBUG () Format string
81 // declaration for EFI_EXP_DATA. This may change
83 // typedef UINTN EFI_EXP_DATA;
86 /// Voltage Extended Error Data
89 EFI_STATUS_CODE_DATA DataHeader
;
90 EFI_EXP_BASE10_DATA Voltage
;
91 EFI_EXP_BASE10_DATA Threshold
;
92 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA
;
95 /// Microcode Update Extended Error Data
98 EFI_STATUS_CODE_DATA DataHeader
;
100 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA
;
104 /// Asynchronous Timer Extended Error Data
107 EFI_STATUS_CODE_DATA DataHeader
;
108 EFI_EXP_BASE10_DATA TimerLimit
;
109 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA
;
112 /// Host Processor Mismatch Extended Error Data
115 EFI_STATUS_CODE_DATA DataHeader
;
118 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA
;
121 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
122 // All other attributes are reserved for future use and
123 // must be initialized to 0.
125 #define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
126 #define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
127 #define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
128 #define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
129 #define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
130 #define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
131 #define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
132 #define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
133 #define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
134 #define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
137 /// Thermal Extended Error Data
140 EFI_STATUS_CODE_DATA DataHeader
;
141 EFI_EXP_BASE10_DATA Temperature
;
142 EFI_EXP_BASE10_DATA Threshold
;
143 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA
;
146 /// Processor Disabled Extended Error Data
149 EFI_STATUS_CODE_DATA DataHeader
;
151 BOOLEAN SoftwareDisabled
;
152 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA
;
156 EfiInitCacheDataOnly
,
157 EfiInitCacheInstrOnly
,
159 EfiInitCacheUnspecified
160 } EFI_INIT_CACHE_TYPE
;
163 /// Embedded cache init extended data
166 EFI_STATUS_CODE_DATA DataHeader
;
168 EFI_INIT_CACHE_TYPE Type
;
169 } EFI_CACHE_INIT_DATA
;
172 // Memory Extended Error Data
176 /// Memory Error Granularity Definition
178 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY
;
181 /// Memory Error Operation Definition
183 typedef UINT8 EFI_MEMORY_ERROR_OPERATION
;
186 EFI_STATUS_CODE_DATA DataHeader
;
187 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
188 EFI_MEMORY_ERROR_OPERATION Operation
;
190 EFI_PHYSICAL_ADDRESS Address
;
192 } EFI_MEMORY_EXTENDED_ERROR_DATA
;
195 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
196 EFI_MEMORY_ERROR_OPERATION Operation
;
198 EFI_PHYSICAL_ADDRESS Address
;
200 } EFI_MEMORY_EXTENDED_ERROR_DATA_PAYLOAD
;
203 // Memory Error Granularities
205 #define EFI_MEMORY_ERROR_OTHER 0x01
206 #define EFI_MEMORY_ERROR_UNKNOWN 0x02
207 #define EFI_MEMORY_ERROR_DEVICE 0x03
208 #define EFI_MEMORY_ERROR_PARTITION 0x04
211 // Memory Error Operations
213 #define EFI_MEMORY_OPERATION_OTHER 0x01
214 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
215 #define EFI_MEMORY_OPERATION_READ 0x03
216 #define EFI_MEMORY_OPERATION_WRITE 0x04
217 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
220 // Define shorthands to describe Group Operations
221 // Many memory init operations are essentially group
224 /// A shorthand to describe that the operation is performed
225 /// on multiple devices within the array
227 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
229 /// A shorthand to describe that the operation is performed on all devices within the array
231 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
233 /// A shorthand to describe that the operation is performed on multiple arrays
235 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
237 /// A shorthand to describe that the operation is performed on all the arrays
239 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
246 EFI_STATUS_CODE_DATA DataHeader
;
249 } EFI_STATUS_CODE_DIMM_NUMBER
;
254 /// Memory Module Mismatch Extended Error Data
257 EFI_STATUS_CODE_DATA DataHeader
;
258 EFI_STATUS_CODE_DIMM_NUMBER Instance
;
259 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA
;
263 /// Memory Range Extended Data
266 EFI_STATUS_CODE_DATA DataHeader
;
267 EFI_PHYSICAL_ADDRESS Start
;
268 EFI_PHYSICAL_ADDRESS Length
;
269 } EFI_MEMORY_RANGE_EXTENDED_DATA
;
272 /// Device handle Extended Data. Used for many
273 /// errors and progress codes to point to the device.
276 EFI_STATUS_CODE_DATA DataHeader
;
278 } EFI_DEVICE_HANDLE_EXTENDED_DATA
;
281 EFI_STATUS_CODE_DATA DataHeader
;
283 } EFI_DEVICE_PATH_EXTENDED_DATA
;
286 EFI_STATUS_CODE_DATA DataHeader
;
287 EFI_HANDLE ControllerHandle
;
288 EFI_HANDLE DriverBindingHandle
;
289 UINT16 DevicePathSize
;
290 UINT8
*RemainingDevicePath
;
291 } EFI_STATUS_CODE_START_EXTENDED_DATA
;
295 } EFI_DEVICE_PATH_EXTENDED_DATA_PAYLOAD
;
299 EFI_STATUS_CODE_DATA DataHeader
;
301 UINT16 DevicePathSize
;
307 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA
;
310 /// Extended Error Data for Assert
313 EFI_STATUS_CODE_DATA DataHeader
;
316 EFI_STATUS_CODE_STRING_DATA
*FileName
;
317 } EFI_DEBUG_ASSERT_DATA
;
320 /// System Context Data EBC/IA32/IPF
323 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc
;
324 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32
;
325 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf
;
326 } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT
;
329 EFI_STATUS_CODE_DATA DataHeader
;
330 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context
;
331 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA
;
334 /// Legacy Oprom extended data
337 EFI_STATUS_CODE_DATA DataHeader
;
338 EFI_HANDLE DeviceHandle
;
339 EFI_PHYSICAL_ADDRESS RomImageBase
;
340 } EFI_LEGACY_OPROM_EXTENDED_DATA
;