3 Copyright (c) 2004 - 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 StatusCodeDataTypeId.h
18 GUID used to identify id for the caller who is initiating the Status Code.
22 #ifndef _STATUS_CODE_DATA_TYPE_ID_H__
23 #define _STATUS_CODE_DATA_TYPE_ID_H__
26 #include "EfiStatusCode.h"
27 #include EFI_PROTOCOL_DEFINITION (DebugSupport)
28 #include EFI_PROTOCOL_DEFINITION (Hii)
32 #define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150
35 // This is the max data size including all the headers which can be passed
36 // as Status Code data. This data should be multiple of 8 byte
37 // to avoid any kind of boundary issue. Also, sum of this data size (inclusive
38 // of size of EFI_STATUS_CODE_DATA should not exceed the max record size of
41 #define EFI_STATUS_CODE_DATA_MAX_SIZE 200
44 // String Data Type defintion. This is part of Status Code Specification
46 #define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \
48 0x92D11080, 0x496F, 0x4D95, 0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A \
51 extern EFI_GUID gEfiStatusCodeDataTypeStringGuid
;
54 // This GUID indicates that the format of the accompanying data depends
55 // upon the Status Code Value, but follows this Specification
57 #define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \
59 0x335984bd, 0xe805, 0x409a, 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6 \
62 extern EFI_GUID gEfiStatusCodeSpecificDataGuid
;
76 EFI_HII_HANDLE Handle
;
78 } EFI_STATUS_CODE_STRING_TOKEN
;
83 EFI_STATUS_CODE_STRING_TOKEN Hii
;
84 } EFI_STATUS_CODE_STRING
;
87 EFI_STATUS_CODE_DATA DataHeader
;
88 EFI_STRING_TYPE StringType
;
89 EFI_STATUS_CODE_STRING String
;
90 } EFI_STATUS_CODE_STRING_DATA
;
94 // Debug Assert Data. This is part of Status Code Specification
96 #define EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID \
98 0xDA571595, 0x4D99, 0x487C, 0x82, 0x7C, 0x26, 0x22, 0x67, 0x7D, 0x33, 0x07 \
101 extern EFI_GUID gEfiStatusCodeDataTypeAssertGuid
;
104 // Exception Data type (CPU REGS)
106 #define EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID \
108 0x3BC2BD12, 0xAD2E, 0x11D5, 0x87, 0xDD, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 \
111 extern EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid
;
114 // Debug DataType defintions. User Defined Data Types.
116 #define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \
118 0x9A4E9246, 0xD553, 0x11D5, 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9 \
126 // 12 * sizeof (UINT64) Var Arg stack
128 // ascii DEBUG () Format string
134 extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid
;
137 // Progress Code. User Defined Data Type Guid.
139 #define EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID \
141 0xAB359CE3, 0x99B3, 0xAE18, 0xC8, 0x9D, 0x95, 0xD3, 0xB0, 0x72, 0xE1, 0x9B \
144 extern EFI_GUID gEfiStatusCodeDataTypeErrorGuid
;
147 // declaration for EFI_EXP_DATA. This may change
149 typedef UINTN EFI_EXP_DATA
;
152 // Voltage Extended Error Data
155 EFI_STATUS_CODE_DATA DataHeader
;
156 EFI_EXP_DATA Voltage
;
157 EFI_EXP_DATA Threshold
;
158 } EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA
;
161 // Microcode Update Extended Error Data
164 EFI_STATUS_CODE_DATA DataHeader
;
166 } EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA
;
169 // Asynchronous Timer Extended Error Data
172 EFI_STATUS_CODE_DATA DataHeader
;
173 EFI_EXP_DATA TimerLimit
;
174 } EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA
;
177 // Host Processor Mismatch Extended Error Data
180 EFI_STATUS_CODE_DATA DataHeader
;
183 } EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA
;
186 // EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES
187 // All other attributes are reserved for future use and
188 // must be initialized to 0.
190 #define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001
191 #define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002
192 #define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004
193 #define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008
194 #define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010
195 #define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020
196 #define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000
197 #define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000
198 #define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000
199 #define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000
202 // Thermal Extended Error Data
205 EFI_STATUS_CODE_DATA DataHeader
;
206 EFI_EXP_DATA Temperature
;
207 EFI_EXP_DATA Threshold
;
208 } EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA
;
211 // Processor Disabled Extended Error Data
214 EFI_STATUS_CODE_DATA DataHeader
;
216 BOOLEAN SoftwareDisabled
;
217 } EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA
;
220 EfiInitCacheDataOnly
,
221 EfiInitCacheInstrOnly
,
223 EfiInitCacheUnspecified
224 } EFI_INIT_CACHE_TYPE
;
227 // Embedded cache init extended data
230 EFI_STATUS_CODE_DATA DataHeader
;
232 EFI_INIT_CACHE_TYPE Type
;
233 } EFI_CACHE_INIT_DATA
;
236 // Memory Extended Error Data
239 // Memory Error Granularity Definition
241 typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY
;
244 // Memory Error Operation Definition
246 typedef UINT8 EFI_MEMORY_ERROR_OPERATION
;
249 EFI_STATUS_CODE_DATA DataHeader
;
250 EFI_MEMORY_ERROR_GRANULARITY Granularity
;
251 EFI_MEMORY_ERROR_OPERATION Operation
;
253 EFI_PHYSICAL_ADDRESS Address
;
255 } EFI_MEMORY_EXTENDED_ERROR_DATA
;
258 // Memory Error Granularities
260 #define EFI_MEMORY_ERROR_OTHER 0x01
261 #define EFI_MEMORY_ERROR_UNKNOWN 0x02
262 #define EFI_MEMORY_ERROR_DEVICE 0x03
263 #define EFI_MEMORY_ERROR_PARTITION 0x04
266 // Memory Error Operations
268 #define EFI_MEMORY_OPERATION_OTHER 0x01
269 #define EFI_MEMORY_OPERATION_UNKNOWN 0x02
270 #define EFI_MEMORY_OPERATION_READ 0x03
271 #define EFI_MEMORY_OPERATION_WRITE 0x04
272 #define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05
275 // Define shorthands to describe Group Operations
276 // Many memory init operations are essentially group
278 // A shorthand to describe that the operation is performed
279 // on multiple devices within the array
281 #define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
283 // A shorthand to describe that the operation is performed // on all devices within the array
285 #define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
287 // A shorthand to describe that the operation is performed // on multiple arrays
289 #define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
291 // A shorthand to describe that the operation is performed // on all the arrays
293 #define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
300 EFI_STATUS_CODE_DATA DataHeader
;
303 } EFI_STATUS_CODE_DIMM_NUMBER
;
306 // Memory Module Mismatch Extended Error Data
309 EFI_STATUS_CODE_DATA DataHeader
;
310 EFI_STATUS_CODE_DIMM_NUMBER Instance
;
311 } EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA
;
314 // Memory Range Extended Data
317 EFI_STATUS_CODE_DATA DataHeader
;
318 EFI_PHYSICAL_ADDRESS Start
;
319 EFI_PHYSICAL_ADDRESS Length
;
320 } EFI_MEMORY_RANGE_EXTENDED_DATA
;
323 // Device handle Extended Data. Used for many
324 // errors and progress codes to point to the device.
327 EFI_STATUS_CODE_DATA DataHeader
;
329 } EFI_DEVICE_HANDLE_EXTENDED_DATA
;
332 // Resource Allocation Failure Extended Error Data
335 EFI_STATUS_CODE_DATA DataHeader
;
336 EFI_DEVICE_PATH_PROTOCOL
*DevicePath
;
340 } EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA
;
343 // Extended Error Data for Assert
346 EFI_STATUS_CODE_DATA DataHeader
;
349 EFI_STATUS_CODE_STRING_DATA
*FileName
;
350 } EFI_DEBUG_ASSERT_DATA
;
353 // System Context Data EBC/IA32/IPF
356 EFI_SYSTEM_CONTEXT_EBC SystemContextEbc
;
357 EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32
;
358 EFI_SYSTEM_CONTEXT_IPF SystemContextIpf
;
359 } EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT
;
362 EFI_STATUS_CODE_DATA DataHeader
;
363 EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context
;
364 } EFI_STATUS_CODE_EXCEP_EXTENDED_DATA
;
367 // Legacy Oprom extended data
370 EFI_STATUS_CODE_DATA DataHeader
;
371 EFI_HANDLE DeviceHandle
;
372 EFI_PHYSICAL_ADDRESS RomImageBase
;
373 } EFI_LEGACY_OPROM_EXTENDED_DATA
;
376 // Progress Code. User Defined Data Type Guid.
378 #define EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID \
380 0xA356AB39, 0x35C4, 0x35DA, 0xB3, 0x7A, 0xF8, 0xEA, 0x9E, 0x8B, 0x36, 0xA3 \
383 extern EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid
;