3 Copyright (c) 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.
21 #include "SerialStatusCode.h"
24 UINT16 gComBase
= 0x3f8;
32 // All of the lookup tables are only needed in debug.
38 } STATUS_CODE_LOOKUP_TABLE
;
40 STATUS_CODE_LOOKUP_TABLE mSeverityToken
[] = {
41 { EFI_ERROR_MINOR
, "ERROR_MINOR" },
42 { EFI_ERROR_MAJOR
, "ERROR_MAJOR" },
43 { EFI_ERROR_UNRECOVERED
, "ERROR_UNRECOVERED" },
44 { EFI_ERROR_UNCONTAINED
, "ERROR_UNCONTAINED" },
45 { 0xFFFFFFFF, "ERROR_UNRECOGNIZED" }
48 STATUS_CODE_LOOKUP_TABLE mClassSubClassToken
[] = {
49 { EFI_COMPUTING_UNIT_UNSPECIFIED
, "COMPUTING_UNIT_UNSPECIFIED" },
50 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
, "COMPUTING_UNIT_HOST_PROCESSOR" },
51 { EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR
, "COMPUTING_UNIT_FIRMWARE_PROCESSOR" },
52 { EFI_COMPUTING_UNIT_IO_PROCESSOR
, "COMPUTING_UNIT_IO_PROCESSOR" },
53 { EFI_COMPUTING_UNIT_CACHE
, "COMPUTING_UNIT_CACHE" },
54 { EFI_COMPUTING_UNIT_MEMORY
, "COMPUTING_UNIT_MEMORY" },
55 { EFI_COMPUTING_UNIT_CHIPSET
, "COMPUTING_UNIT_CHIPSET" },
56 { EFI_PERIPHERAL_UNSPECIFIED
, "PERIPHERAL_UNSPECIFIED" },
57 { EFI_PERIPHERAL_KEYBOARD
, "PERIPHERAL_KEYBOARD" },
58 { EFI_PERIPHERAL_MOUSE
, "PERIPHERAL_MOUSE" },
59 { EFI_PERIPHERAL_LOCAL_CONSOLE
, "PERIPHERAL_LOCAL_CONSOLE" },
60 { EFI_PERIPHERAL_REMOTE_CONSOLE
, "PERIPHERAL_REMOTE_CONSOLE" },
61 { EFI_PERIPHERAL_SERIAL_PORT
, "PERIPHERAL_SERIAL_PORT" },
62 { EFI_PERIPHERAL_PARALLEL_PORT
, "PERIPHERAL_PARALLEL_PORT" },
63 { EFI_PERIPHERAL_FIXED_MEDIA
, "PERIPHERAL_FIXED_MEDIA" },
64 { EFI_PERIPHERAL_REMOVABLE_MEDIA
, "PERIPHERAL_REMOVABLE_MEDIA" },
65 { EFI_PERIPHERAL_AUDIO_INPUT
, "PERIPHERAL_AUDIO_INPUT" },
66 { EFI_PERIPHERAL_AUDIO_OUTPUT
, "PERIPHERAL_AUDIO_OUTPUT" },
67 { EFI_PERIPHERAL_LCD_DEVICE
, "PERIPHERAL_LCD_DEVICE" },
68 { EFI_IO_BUS_UNSPECIFIED
, "IO_BUS_UNSPECIFIED" },
69 { EFI_IO_BUS_PCI
, "IO_BUS_PCI" },
70 { EFI_IO_BUS_USB
, "IO_BUS_USB" },
71 { EFI_IO_BUS_IBA
, "IO_BUS_IBA" },
72 { EFI_IO_BUS_AGP
, "IO_BUS_AGP" },
73 { EFI_IO_BUS_PC_CARD
, "IO_BUS_PC_CARD" },
74 { EFI_IO_BUS_LPC
, "IO_BUS_LPC" },
75 { EFI_IO_BUS_SCSI
, "IO_BUS_SCSI" },
76 { EFI_IO_BUS_ATA_ATAPI
, "IO_BUS_ATA_ATAPI" },
77 { EFI_IO_BUS_FC
, "IO_BUS_FC" },
78 { EFI_IO_BUS_IP_NETWORK
, "IO_BUS_IP_NETWORK" },
79 { EFI_IO_BUS_SMBUS
, "IO_BUS_SMBUS" },
80 { EFI_IO_BUS_I2C
, "IO_BUS_I2C" },
81 { EFI_SOFTWARE_UNSPECIFIED
, "SOFTWARE_UNSPECIFIED" },
82 { EFI_SOFTWARE_SEC
, "SOFTWARE_SEC" },
83 { EFI_SOFTWARE_PEI_CORE
, "SOFTWARE_PEI_CORE" },
84 { EFI_SOFTWARE_PEI_MODULE
, "SOFTWARE_PEI_MODULE" },
85 { EFI_SOFTWARE_DXE_CORE
, "SOFTWARE_DXE_CORE" },
86 { EFI_SOFTWARE_EFI_BOOT_SERVICE
, "SOFTWARE_EFI_BOOT_SERVICE" },
87 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
, "SOFTWARE_EFI_RUNTIME_SERVICE" },
88 { EFI_SOFTWARE_DXE_BS_DRIVER
, "SOFTWARE_DXE_BS_DRIVER" },
89 { EFI_SOFTWARE_DXE_RT_DRIVER
, "SOFTWARE_DXE_RT_DRIVER" },
90 { EFI_SOFTWARE_SMM_DRIVER
, "SOFTWARE_SMM_DRIVER" },
91 { EFI_SOFTWARE_RT
, "SOFTWARE_EFI_RT" },
92 { EFI_SOFTWARE_AL
, "SOFTWARE_EFI_AL" },
93 { EFI_SOFTWARE_EFI_APPLICATION
, "SOFTWARE_EFI_APPLICATION" },
94 { EFI_SOFTWARE_EFI_OS_LOADER
, "SOFTWARE_EFI_OS_LOADER" },
95 { 0xFFFFFFFF, "ERROR_UNRECOGNIZED" }
98 STATUS_CODE_LOOKUP_TABLE mOperationToken
[] = {
99 { EFI_COMPUTING_UNIT_UNSPECIFIED
| EFI_CU_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
100 { EFI_COMPUTING_UNIT_UNSPECIFIED
| EFI_CU_EC_DISABLED
, "DISABLED" },
101 { EFI_COMPUTING_UNIT_UNSPECIFIED
| EFI_CU_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
102 { EFI_COMPUTING_UNIT_UNSPECIFIED
| EFI_CU_EC_NOT_DETECTED
, "NOT_DETECTED" },
103 { EFI_COMPUTING_UNIT_UNSPECIFIED
| EFI_CU_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
104 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
105 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_EC_DISABLED
, "DISABLED" },
106 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
107 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_EC_NOT_DETECTED
, "NOT_DETECTED" },
108 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
109 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_INVALID_TYPE
, "INVALID_TYPE" },
110 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_INVALID_SPEED
, "INVALID_SPEED" },
111 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_MISMATCH
, "MISMATCH" },
112 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_TIMER_EXPIRED
, "TIMER_EXPIRED" },
113 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_SELF_TEST
, "SELF_TEST" },
114 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_INTERNAL
, "INTERNAL" },
115 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_THERMAL
, "THERMAL" },
116 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_LOW_VOLTAGE
, "LOW_VOLTAGE" },
117 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_HIGH_VOLTAGE
, "HIGH_VOLTAGE" },
118 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_CACHE
, "CACHE" },
119 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_MICROCODE_UPDATE
, "MICROCODE_UPDATE" },
120 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_NO_MICROCODE_UPDATE
, "NO_MICROCODE_UPDATE" },
121 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_CORRECTABLE
, "1XECC" },
122 { EFI_COMPUTING_UNIT_HOST_PROCESSOR
| EFI_CU_HP_EC_UNCORRECTABLE
, "2XECC" },
123 { EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR
| EFI_CU_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
124 { EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR
| EFI_CU_EC_DISABLED
, "DISABLED" },
125 { EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR
| EFI_CU_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
126 { EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR
| EFI_CU_EC_NOT_DETECTED
, "NOT_DETECTED" },
127 { EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR
| EFI_CU_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
128 { EFI_COMPUTING_UNIT_IO_PROCESSOR
| EFI_CU_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
129 { EFI_COMPUTING_UNIT_IO_PROCESSOR
| EFI_CU_EC_DISABLED
, "DISABLED" },
130 { EFI_COMPUTING_UNIT_IO_PROCESSOR
| EFI_CU_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
131 { EFI_COMPUTING_UNIT_IO_PROCESSOR
| EFI_CU_EC_NOT_DETECTED
, "NOT_DETECTED" },
132 { EFI_COMPUTING_UNIT_IO_PROCESSOR
| EFI_CU_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
133 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
134 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_EC_DISABLED
, "DISABLED" },
135 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
136 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_EC_NOT_DETECTED
, "NOT_DETECTED" },
137 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
138 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_CACHE_EC_INVALID_TYPE
, "INVALID_TYPE" },
139 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_CACHE_EC_INVALID_SPEED
, "INVALID_SPEED" },
140 { EFI_COMPUTING_UNIT_CACHE
| EFI_CU_CACHE_EC_INVALID_SIZE
, "INVALID_SIZE" },
141 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
142 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_EC_DISABLED
, "DISABLED" },
143 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
144 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_EC_NOT_DETECTED
, "NOT_DETECTED" },
145 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
146 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_INVALID_TYPE
, "INVALID_TYPE" },
147 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_INVALID_SPEED
, "INVALID_SPEED" },
148 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_CORRECTABLE
, "1XECC" },
149 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_UNCORRECTABLE
, "2XECC" },
150 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_SPD_FAIL
, "SPD_FAIL" },
151 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_INVALID_SIZE
, "INVALID_SIZE" },
152 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_MISMATCH
, "MISMATCH" },
153 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_S3_RESUME_FAIL
, "S3_RESUME_FAIL" },
154 { EFI_COMPUTING_UNIT_MEMORY
| EFI_CU_MEMORY_EC_UPDATE_FAIL
, "UPDATE_FAIL" },
155 { EFI_COMPUTING_UNIT_CHIPSET
| EFI_CU_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
156 { EFI_COMPUTING_UNIT_CHIPSET
| EFI_CU_EC_DISABLED
, "DISABLED" },
157 { EFI_COMPUTING_UNIT_CHIPSET
| EFI_CU_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
158 { EFI_COMPUTING_UNIT_CHIPSET
| EFI_CU_EC_NOT_DETECTED
, "NOT_DETECTED" },
159 { EFI_COMPUTING_UNIT_CHIPSET
| EFI_CU_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
160 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
161 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_DISABLED
, "DISABLED" },
162 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
163 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
164 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
165 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
166 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
167 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
168 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
169 { EFI_PERIPHERAL_UNSPECIFIED
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
170 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
171 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_DISABLED
, "DISABLED" },
172 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
173 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
174 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
175 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
176 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
177 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
178 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
179 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
180 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_KEYBOARD_EC_LOCKED
, "LOCKED" },
181 { EFI_PERIPHERAL_KEYBOARD
| EFI_P_KEYBOARD_EC_STUCK_KEY
, "STUCK_KEY" },
182 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
183 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_DISABLED
, "DISABLED" },
184 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
185 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
186 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
187 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
188 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
189 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
190 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
191 { EFI_PERIPHERAL_MOUSE
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
192 { EFI_PERIPHERAL_MOUSE
| EFI_P_MOUSE_EC_LOCKED
, "LOCKED" },
193 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
194 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_DISABLED
, "DISABLED" },
195 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
196 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
197 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
198 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
199 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
200 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
201 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
202 { EFI_PERIPHERAL_LOCAL_CONSOLE
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
203 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
204 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_DISABLED
, "DISABLED" },
205 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
206 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
207 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
208 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
209 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
210 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
211 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
212 { EFI_PERIPHERAL_REMOTE_CONSOLE
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
213 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
214 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_DISABLED
, "DISABLED" },
215 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
216 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
217 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
218 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
219 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
220 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
221 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
222 { EFI_PERIPHERAL_SERIAL_PORT
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
223 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
224 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_DISABLED
, "DISABLED" },
225 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
226 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
227 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
228 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
229 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
230 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
231 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
232 { EFI_PERIPHERAL_PARALLEL_PORT
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
233 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
234 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_DISABLED
, "DISABLED" },
235 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
236 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
237 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
238 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
239 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
240 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
241 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
242 { EFI_PERIPHERAL_FIXED_MEDIA
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
243 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
244 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_DISABLED
, "DISABLED" },
245 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
246 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
247 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
248 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
249 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
250 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
251 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
252 { EFI_PERIPHERAL_REMOVABLE_MEDIA
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
253 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
254 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_DISABLED
, "DISABLED" },
255 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
256 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
257 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
258 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
259 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
260 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
261 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
262 { EFI_PERIPHERAL_AUDIO_INPUT
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
263 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
264 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_DISABLED
, "DISABLED" },
265 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
266 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
267 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
268 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
269 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
270 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
271 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
272 { EFI_PERIPHERAL_AUDIO_OUTPUT
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
273 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
274 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_DISABLED
, "DISABLED" },
275 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
276 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_NOT_DETECTED
, "NOT_DETECTED" },
277 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
278 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
279 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
280 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_INPUT_ERROR
, "INPUT_ERROR" },
281 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_OUTPUT_ERROR
, "OUTPUT_ERROR" },
282 { EFI_PERIPHERAL_LCD_DEVICE
| EFI_P_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
283 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
284 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_DISABLED
, "DISABLED" },
285 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
286 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
287 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
288 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
289 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
290 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
291 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
292 { EFI_IO_BUS_UNSPECIFIED
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
293 { EFI_IO_BUS_PCI
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
294 { EFI_IO_BUS_PCI
| EFI_IOB_EC_DISABLED
, "DISABLED" },
295 { EFI_IO_BUS_PCI
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
296 { EFI_IO_BUS_PCI
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
297 { EFI_IO_BUS_PCI
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
298 { EFI_IO_BUS_PCI
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
299 { EFI_IO_BUS_PCI
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
300 { EFI_IO_BUS_PCI
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
301 { EFI_IO_BUS_PCI
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
302 { EFI_IO_BUS_PCI
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
303 { EFI_IO_BUS_PCI
| EFI_IOB_PCI_EC_PERR
, "PERR" },
304 { EFI_IO_BUS_PCI
| EFI_IOB_PCI_EC_SERR
, "SERR" },
305 { EFI_IO_BUS_USB
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
306 { EFI_IO_BUS_USB
| EFI_IOB_EC_DISABLED
, "DISABLED" },
307 { EFI_IO_BUS_USB
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
308 { EFI_IO_BUS_USB
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
309 { EFI_IO_BUS_USB
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
310 { EFI_IO_BUS_USB
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
311 { EFI_IO_BUS_USB
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
312 { EFI_IO_BUS_USB
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
313 { EFI_IO_BUS_USB
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
314 { EFI_IO_BUS_USB
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
315 { EFI_IO_BUS_IBA
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
316 { EFI_IO_BUS_IBA
| EFI_IOB_EC_DISABLED
, "DISABLED" },
317 { EFI_IO_BUS_IBA
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
318 { EFI_IO_BUS_IBA
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
319 { EFI_IO_BUS_IBA
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
320 { EFI_IO_BUS_IBA
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
321 { EFI_IO_BUS_IBA
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
322 { EFI_IO_BUS_IBA
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
323 { EFI_IO_BUS_IBA
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
324 { EFI_IO_BUS_IBA
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
325 { EFI_IO_BUS_AGP
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
326 { EFI_IO_BUS_AGP
| EFI_IOB_EC_DISABLED
, "DISABLED" },
327 { EFI_IO_BUS_AGP
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
328 { EFI_IO_BUS_AGP
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
329 { EFI_IO_BUS_AGP
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
330 { EFI_IO_BUS_AGP
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
331 { EFI_IO_BUS_AGP
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
332 { EFI_IO_BUS_AGP
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
333 { EFI_IO_BUS_AGP
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
334 { EFI_IO_BUS_AGP
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
335 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
336 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_DISABLED
, "DISABLED" },
337 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
338 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
339 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
340 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
341 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
342 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
343 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
344 { EFI_IO_BUS_PC_CARD
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
345 { EFI_IO_BUS_LPC
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
346 { EFI_IO_BUS_LPC
| EFI_IOB_EC_DISABLED
, "DISABLED" },
347 { EFI_IO_BUS_LPC
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
348 { EFI_IO_BUS_LPC
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
349 { EFI_IO_BUS_LPC
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
350 { EFI_IO_BUS_LPC
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
351 { EFI_IO_BUS_LPC
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
352 { EFI_IO_BUS_LPC
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
353 { EFI_IO_BUS_LPC
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
354 { EFI_IO_BUS_LPC
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
355 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
356 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_DISABLED
, "DISABLED" },
357 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
358 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
359 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
360 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
361 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
362 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
363 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
364 { EFI_IO_BUS_SCSI
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
365 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
366 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_DISABLED
, "DISABLED" },
367 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
368 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
369 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
370 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
371 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
372 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
373 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
374 { EFI_IO_BUS_ATA_ATAPI
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
375 { EFI_IO_BUS_FC
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
376 { EFI_IO_BUS_FC
| EFI_IOB_EC_DISABLED
, "DISABLED" },
377 { EFI_IO_BUS_FC
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
378 { EFI_IO_BUS_FC
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
379 { EFI_IO_BUS_FC
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
380 { EFI_IO_BUS_FC
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
381 { EFI_IO_BUS_FC
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
382 { EFI_IO_BUS_FC
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
383 { EFI_IO_BUS_FC
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
384 { EFI_IO_BUS_FC
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
385 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
386 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_DISABLED
, "DISABLED" },
387 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
388 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
389 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
390 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
391 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
392 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
393 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
394 { EFI_IO_BUS_IP_NETWORK
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
395 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
396 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_DISABLED
, "DISABLED" },
397 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
398 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
399 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
400 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
401 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
402 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
403 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
404 { EFI_IO_BUS_SMBUS
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
405 { EFI_IO_BUS_I2C
| EFI_IOB_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
406 { EFI_IO_BUS_I2C
| EFI_IOB_EC_DISABLED
, "DISABLED" },
407 { EFI_IO_BUS_I2C
| EFI_IOB_EC_NOT_SUPPORTED
, "NOT_SUPPORTED" },
408 { EFI_IO_BUS_I2C
| EFI_IOB_EC_NOT_DETECTED
, "NOT_DETECTED" },
409 { EFI_IO_BUS_I2C
| EFI_IOB_EC_NOT_CONFIGURED
, "NOT_CONFIGURED" },
410 { EFI_IO_BUS_I2C
| EFI_IOB_EC_INTERFACE_ERROR
, "INTERFACE_ERROR" },
411 { EFI_IO_BUS_I2C
| EFI_IOB_EC_CONTROLLER_ERROR
, "CONTROLLER_ERROR" },
412 { EFI_IO_BUS_I2C
| EFI_IOB_EC_READ_ERROR
, "READ_ERROR" },
413 { EFI_IO_BUS_I2C
| EFI_IOB_EC_WRITE_ERROR
, "WRITE_ERROR" },
414 { EFI_IO_BUS_I2C
| EFI_IOB_EC_RESOURCE_CONFLICT
, "RESOURCE_CONFLICT" },
415 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
416 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
417 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
418 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
419 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
420 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
421 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_ABORTED
, "ABORTED" },
422 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
423 { EFI_SOFTWARE_UNSPECIFIED
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
424 { EFI_SOFTWARE_SEC
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
425 { EFI_SOFTWARE_SEC
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
426 { EFI_SOFTWARE_SEC
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
427 { EFI_SOFTWARE_SEC
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
428 { EFI_SOFTWARE_SEC
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
429 { EFI_SOFTWARE_SEC
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
430 { EFI_SOFTWARE_SEC
| EFI_SW_EC_ABORTED
, "ABORTED" },
431 { EFI_SOFTWARE_SEC
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
432 { EFI_SOFTWARE_SEC
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
433 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
434 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
435 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
436 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
437 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
438 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
439 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_ABORTED
, "ABORTED" },
440 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
441 { EFI_SOFTWARE_PEI_CORE
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
442 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
443 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
444 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
445 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
446 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
447 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
448 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_ABORTED
, "ABORTED" },
449 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
450 { EFI_SOFTWARE_PEI_MODULE
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
451 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
452 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
453 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
454 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
455 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
456 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
457 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_ABORTED
, "ABORTED" },
458 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
459 { EFI_SOFTWARE_DXE_CORE
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
460 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
461 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
462 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
463 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
464 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
465 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
466 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_ABORTED
, "ABORTED" },
467 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
468 { EFI_SOFTWARE_EFI_BOOT_SERVICE
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
469 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
470 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
471 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
472 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
473 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
474 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
475 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_ABORTED
, "ABORTED" },
476 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
477 { EFI_SOFTWARE_EFI_RUNTIME_SERVICE
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
478 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
479 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
480 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
481 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
482 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
483 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
484 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_ABORTED
, "ABORTED" },
485 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
486 { EFI_SOFTWARE_DXE_BS_DRIVER
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
487 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
488 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
489 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
490 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
491 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
492 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
493 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_ABORTED
, "ABORTED" },
494 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
495 { EFI_SOFTWARE_DXE_RT_DRIVER
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
496 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
497 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
498 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
499 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
500 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
501 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
502 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_ABORTED
, "ABORTED" },
503 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
504 { EFI_SOFTWARE_SMM_DRIVER
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
505 { EFI_SOFTWARE_RT
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
506 { EFI_SOFTWARE_RT
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
507 { EFI_SOFTWARE_RT
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
508 { EFI_SOFTWARE_RT
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
509 { EFI_SOFTWARE_RT
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
510 { EFI_SOFTWARE_RT
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
511 { EFI_SOFTWARE_RT
| EFI_SW_EC_ABORTED
, "ABORTED" },
512 { EFI_SOFTWARE_RT
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
513 { EFI_SOFTWARE_RT
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
514 { EFI_SOFTWARE_AL
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
515 { EFI_SOFTWARE_AL
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
516 { EFI_SOFTWARE_AL
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
517 { EFI_SOFTWARE_AL
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
518 { EFI_SOFTWARE_AL
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
519 { EFI_SOFTWARE_AL
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
520 { EFI_SOFTWARE_AL
| EFI_SW_EC_ABORTED
, "ABORTED" },
521 { EFI_SOFTWARE_AL
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
522 { EFI_SOFTWARE_AL
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
523 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
524 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
525 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
526 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
527 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
528 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
529 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_ABORTED
, "ABORTED" },
530 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
531 { EFI_SOFTWARE_EFI_APPLICATION
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
532 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_NON_SPECIFIC
, "NON_SPECIFIC" },
533 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_LOAD_ERROR
, "LOAD_ERROR" },
534 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_INVALID_PARAMETER
, "INVALID_PARAMETER" },
535 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_UNSUPPORTED
, "NOT_SUPPORTED" },
536 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_INVALID_BUFFER
, "INVALID_BUFFER" },
537 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_OUT_OF_RESOURCES
, "OUT_OF_RESOURCES" },
538 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_ABORTED
, "ABORTED" },
539 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
, "ILLEGAL_SOFTWARE_STATE" },
540 { EFI_SOFTWARE_EFI_OS_LOADER
| EFI_SW_EC_ILLEGAL_HARDWARE_STATE
, "ILLEGAL_HARDWARE_STATE" },
541 { 0xFFFFFFFF, "ERROR_UNRECOGNIZED" }
547 IN STATUS_CODE_LOOKUP_TABLE
*Table
,
553 // Function implemenations
557 // Match is only needed for debug.
562 IN STATUS_CODE_LOOKUP_TABLE
*Table
,
570 Search the input table for a matching value and return the token associated
571 with that value. Well formed tables will have the last value == 0 and will
572 return a default token.
576 Table Pointer to first entry in an array of table entries.
577 Value Value to look up.
578 Token String to return.
582 EFI_SUCCESS The function always returns success.
593 // Found token if values match or current entry is the last entry.
595 if ((Table
[Current
].Value
== (-1)) ||
596 (Table
[Current
].Value
== Value
)) {
597 *Token
= Table
[Current
].Token
;
614 DebugSerialWrite - Outputs a character to the Serial port
616 Repeatedly polls the TXRDY bit of the Line Status Register
617 until the Transmitter Holding Register is empty. The character
618 is then written to the Serial port.
622 Character - Character to write
633 // Wait for the serail port to be ready.
636 Data
= IoRead8 (gComBase
+ LSR_OFFSET
);
637 } while ((Data
& LSR_TXRDY
) == 0);
639 IoWrite8 (gComBase
, Character
);
644 IN CHAR8
*OutputString
650 Prints a string to the Serial port
654 OutputString - Ascii string to print to serial port.
662 for ( ; *OutputString
!= 0; OutputString
++) {
663 DebugSerialWrite (*OutputString
);
669 SerialReportStatusCode (
670 IN EFI_STATUS_CODE_TYPE CodeType
,
671 IN EFI_STATUS_CODE_VALUE Value
,
673 IN EFI_GUID
*CallerId
,
674 IN EFI_STATUS_CODE_DATA
*Data OPTIONAL
680 Provide a serial port print
684 PeiServices - General purpose services available to every PEIM.
688 Status - EFI_SUCCESS if the interface could be successfully
693 CHAR8 Buffer
[EFI_STATUS_CODE_DATA_MAX_SIZE
];
705 ReportStatusCodeExtractAssertInfo (CodeType
, Value
, Data
, &Filename
, &Description
, &LineNumber
)) {
707 // Processes PEI_ASSERT ()
712 "\nPEI_ASSERT!: %a (%d): %a\n",
718 } else if (Data
!= NULL
&&
719 ReportStatusCodeExtractDebugInfo (Data
, &ErrorLevel
, &Marker
, &Format
)) {
721 // Process PEI_DEBUG () macro to Serial
723 AsciiBSPrint (Buffer
, sizeof (Buffer
), Format
, Marker
);
725 } else if ((CodeType
& EFI_STATUS_CODE_TYPE_MASK
) == EFI_ERROR_CODE
) {
729 CharCount
= AsciiSPrint (Buffer
, sizeof (Buffer
), "ERROR: C%x:V%x I%x", CodeType
, Value
, Instance
);
731 // Make sure we don't try to print values that weren't intended to be printed, especially NULL GUID pointers.
734 CharCount
+= AsciiSPrint (&Buffer
[CharCount
- 1], (sizeof (Buffer
) - (sizeof(Buffer
[0]) * CharCount
)), " %g", CallerId
);
737 CharCount
+= AsciiSPrint (&Buffer
[CharCount
- 1], (sizeof (Buffer
) - (sizeof(Buffer
[0]) * CharCount
)), " %x", Data
);
739 CharCount
+= AsciiSPrint (&Buffer
[CharCount
- 1], (sizeof (Buffer
) - (sizeof(Buffer
[0]) * CharCount
)), "\n");
743 if (Buffer
[0] != '\0') {
745 // Callout to platform Lib function to do print.
747 DebugSerialPrint (Buffer
);
751 // Debug code to display human readable code information.
754 CHAR8
*SeverityToken
;
755 CHAR8
*SubClassToken
;
756 CHAR8
*OperationToken
;
758 if ((CodeType
& EFI_STATUS_CODE_TYPE_MASK
) == EFI_ERROR_CODE
) {
760 // Get the severity token
764 (CodeType
& EFI_STATUS_CODE_SEVERITY_MASK
),
769 // Get the Class/SubClass token
773 (Value
& (EFI_STATUS_CODE_CLASS_MASK
| EFI_STATUS_CODE_SUBCLASS_MASK
)),
778 // Get the operation token
782 (Value
& (EFI_STATUS_CODE_CLASS_MASK
| EFI_STATUS_CODE_SUBCLASS_MASK
| EFI_STATUS_CODE_OPERATION_MASK
)),
787 // Concatenate the instance
799 DebugSerialPrint (Buffer
);
808 InstallSerialStatusCode (
809 IN EFI_REPORT_STATUS_CODE
*ReportStatusCode
815 Initialize Serial Port
817 The Baud Rate Divisor registers are programmed and the LCR
818 is used to configure the communications format. Hard coded
819 UART config comes from globals in DebugSerialPlatform lib.
836 // Some init is done by the platform status code initialization.
842 Data
= (UINT8
) (gData
- (UINT8
)5);
845 // Calculate divisor for baud generator
847 Divisor
= 115200 / gBps
;
850 // Set communications format
852 OutputData
= (UINT8
)((DLAB
<< 7) | ((gBreakSet
<< 6) | ((gParity
<< 3) | ((gStop
<< 2) | Data
))));
853 IoWrite8 (gComBase
+ LCR_OFFSET
, OutputData
);
856 // Configure baud rate
858 IoWrite8 (gComBase
+ BAUD_HIGH_OFFSET
, (UINT8
)(Divisor
>> 8));
859 IoWrite8 (gComBase
+ BAUD_LOW_OFFSET
, (UINT8
)(Divisor
& 0xff));
862 // Switch back to bank 0
864 OutputData
= (UINT8
)((~DLAB
<<7)|((gBreakSet
<<6)|((gParity
<<3)|((gStop
<<2)| Data
))));
865 IoWrite8 (gComBase
+ LCR_OFFSET
, OutputData
);
867 *ReportStatusCode
= SerialReportStatusCode
;