]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h
ShellPkg: update smbiosview for SMBIOS 3.0.
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / SmbiosView / PrintInfo.h
1 /** @file
2 Module to clarify the element info of the smbios structure.
3
4 Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>
5 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
9
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.
12
13 **/
14
15 #ifndef _SMBIOS_PRINT_INFO_H_
16 #define _SMBIOS_PRINT_INFO_H_
17
18 #include <IndustryStandard/SmBios.h>
19
20 extern UINT8 SmbiosMajorVersion;
21 extern UINT8 SmbiosMinorVersion;
22
23 #define SHOW_NONE 0x00
24 #define SHOW_OUTLINE 0x01
25 #define SHOW_NORMAL 0x02
26 #define SHOW_DETAIL 0x03
27 //
28 // SHOW_ALL: WaitEnter() not wait input.
29 //
30 #define SHOW_ALL 0x04
31 #define SHOW_STATISTICS 0x05
32
33 #define AS_UINT16(pData) (*((UINT16 *) pData))
34 #define AS_UINT32(pData) (*((UINT32 *) pData))
35 #define AS_UINT64(pData) (*((UINT64 *) pData))
36
37 /**
38 Print the info of EPS(Entry Point Structure).
39
40 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
41 @param[in] Option Display option.
42 **/
43 VOID
44 SmbiosPrintEPSInfo (
45 IN SMBIOS_TABLE_ENTRY_POINT *SmbiosTable,
46 IN UINT8 Option
47 );
48
49 /**
50 Print the info of 64-bit EPS(Entry Point Structure).
51
52 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
53 @param[in] Option Display option.
54 **/
55 VOID
56 Smbios64BitPrintEPSInfo (
57 IN SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTable,
58 IN UINT8 Option
59 );
60
61 /**
62 This function print the content of the structure pointed by Struct.
63
64 @param[in] Struct Point to the structure to be printed.
65 @param[in] Option Print option of information detail.
66
67 @retval EFI_SUCCESS Successfully Printing this function.
68 @retval EFI_INVALID_PARAMETER Invalid Structure.
69 @retval EFI_UNSUPPORTED Unsupported.
70 **/
71 EFI_STATUS
72 SmbiosPrintStructure (
73 IN SMBIOS_STRUCTURE_POINTER *Struct,
74 IN UINT8 Option
75 );
76
77 /**
78 Display BIOS Information (Type 0) information.
79
80 @param[in] Chara The information bits.
81 @param[in] Option The optional information.
82 **/
83 VOID
84 DisplayBiosCharacteristics (
85 IN UINT64 Chara,
86 IN UINT8 Option
87 );
88
89 /**
90 Display Bios Characteristice extensions1 information.
91
92 @param[in] Byte1 The information.
93 @param[in] Option The optional information.
94 **/
95 VOID
96 DisplayBiosCharacteristicsExt1 (
97 IN UINT8 Byte1,
98 IN UINT8 Option
99 );
100
101 /**
102 Display Bios Characteristice extensions2 information.
103
104 @param[in] Byte2 The information.
105 @param[in] Option The optional information.
106 **/
107 VOID
108 DisplayBiosCharacteristicsExt2 (
109 IN UINT8 Byte2,
110 IN UINT8 Option
111 );
112
113 /**
114 Display Processor Information (Type 4) information.
115
116 @param[in] Family The family value.
117 @param[in] Option The option value.
118 **/
119 VOID
120 DisplayProcessorFamily (
121 UINT8 Family,
122 UINT8 Option
123 );
124
125 /**
126 Display processor family information.
127
128 @param[in] Family2 The family value.
129 @param[in] Option The option value.
130 **/
131 VOID
132 DisplayProcessorFamily2 (
133 IN UINT16 Family2,
134 IN UINT8 Option
135 );
136
137 /**
138 Display processor voltage information.
139
140 @param[in] Voltage The Voltage.
141 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
142 Bits 6:4 Reserved, must be zero
143 Bits 3:0 Voltage Capability.
144 A Set bit indicates that the voltage is supported.
145 Bit 0 - 5V
146 Bit 1 - 3.3V
147 Bit 2 - 2.9V
148 Bit 3 - Reserved, must be zero.
149
150 Note:
151 Setting of multiple bits indicates the socket is configurable
152 If bit 7 is set to 1, the remaining seven bits of the field are set to
153 contain the processor's current voltage times 10.
154 For example, the field value for a processor voltage of 1.8 volts would be
155 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
156
157 @param[in] Option The option.
158 **/
159 VOID
160 DisplayProcessorVoltage (
161 IN UINT8 Voltage,
162 IN UINT8 Option
163 );
164
165 /**
166 Display processor information.
167
168 @param[in] Status The status.
169 Bit 7 Reserved, must be 0
170 Bit 6 CPU Socket Populated
171 1 - CPU Socket Populated
172 0 - CPU Socket Unpopulated
173 Bits 5:3 Reserved, must be zero
174 Bits 2:0 CPU Status
175 0h - Unknown
176 1h - CPU Enabled
177 2h - CPU Disabled by User via BIOS Setup
178 3h - CPU Disabled By BIOS (POST Error)
179 4h - CPU is Idle, waiting to be enabled.
180 5-6h - Reserved
181 7h - Other
182
183 @param[in] Option The option
184 **/
185 VOID
186 DisplayProcessorStatus (
187 IN UINT8 Status,
188 IN UINT8 Option
189 );
190
191 /**
192 Display information about Memory Controller Information (Type 5).
193
194 @param[in] Size Memory size.
195 @param[in] SlotNum Which slot is this about.
196 @param[in] Option Option for the level of detail output required.
197 **/
198 VOID
199 DisplayMaxMemoryModuleSize (
200 IN UINT8 Size,
201 IN UINT8 SlotNum,
202 IN UINT8 Option
203 );
204
205 /**
206 Display information about memory configuration handles.
207
208 @param[in] Handles The buffer of handles to output info on.
209 @param[in] SlotNum The number of handles in the above buffer.
210 @param[in] Option Option for the level of detail output required.
211 **/
212 VOID
213 DisplayMemoryModuleConfigHandles (
214 IN UINT16 *Handles,
215 IN UINT8 SlotNum,
216 IN UINT8 Option
217 );
218
219 /**
220 Display Memory Module Information (Type 6).
221
222 @param[in] BankConnections
223 @param[in] Option
224 **/
225 VOID
226 DisplayMmBankConnections (
227 IN UINT8 BankConnections,
228 IN UINT8 Option
229 );
230
231 /**
232 Display memory informcation.
233
234 Bits 0:6 Size (n),
235 where 2**n is the size in MB with three special-case values:
236 7Dh Not determinable (Installed Size only)
237 7Eh Module is installed, but no memory has been enabled
238 7Fh Not installed
239 Bit 7 Defines whether the memory module has a single- (0)
240 or double-bank (1) connection.
241
242 @param[in] Size - The size
243 @param[in] Option - The option
244 **/
245 VOID
246 DisplayMmMemorySize (
247 IN UINT8 Size,
248 IN UINT8 Option
249 );
250
251 /**
252 Display Cache Configuration.
253
254 @param[in] CacheConfiguration Cache Configuration.
255 Bits 15:10 Reserved, must be 0
256 Bits 9:8 Operational Mode
257 0h - Write Through
258 1h - Write Back
259 2h - Varies with Memory Address
260 3h - Unknown
261 Bit 7 Enabled/Disabled
262 1 - Enabled
263 0 - Disabled
264 Bits 6:5 Location
265 0h - Internal
266 1h - External
267 2h - Reserved
268 3h - Unknown
269 Bit 4 Reserved, must be zero
270 Bit 3 Cache Socketed
271 1 - Socketed
272 0 - Unsocketed
273 Bits 2:0 Cache Level
274 1 through 8 (For example, an L1 cache would
275 use value 000b and an L3 cache would use 010b.)
276
277 @param[in] Option The option
278 **/
279 VOID
280 DisplayCacheConfiguration (
281 IN UINT16 CacheConfiguration,
282 IN UINT8 Option
283 );
284
285 /**
286 The Slot ID field of the System Slot structure provides a mechanism to
287 correlate the physical attributes of the slot to its logical access method
288 (which varies based on the Slot Type field).
289
290 @param[in] SlotId - The slot ID
291 @param[in] SlotType - The slot type
292 @param[in] Option - The Option
293 **/
294 VOID
295 DisplaySystemSlotId (
296 IN UINT16 SlotId,
297 IN UINT8 SlotType,
298 IN UINT8 Option
299 );
300
301 /**
302 Display Portable Battery (Type 22) information.
303
304 The date the cell pack was manufactured, in packed format:
305 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
306 Bits 8:5 Month, in the range 1 to 12.
307 Bits 4:0 Date, in the range 1 to 31.
308 For example, 01 February 2000 would be identified as
309 0010 1000 0100 0001b (0x2841).
310
311 @param[in] Date The date
312 @param[in] Option The option
313 **/
314 VOID
315 DisplaySBDSManufactureDate (
316 IN UINT16 Date,
317 IN UINT8 Option
318 );
319
320 /**
321 Display System Reset (Type 23) information.
322
323 Routine Description:
324 Identifies the system-reset capabilities for the system.
325 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
326 Bit 5 System contains a watchdog timer, either True (1) or False (0).
327 Bits 4:3 Boot Option on Limit.
328 Identifies the system action to be taken when the Reset Limit is reached, one of:
329 00b Reserved, do not use.
330 01b Operating system
331 10b System utilities
332 11b Do not rebootBits
333 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
334 00b Reserved, do not use.
335 01b Operating system
336 10b System utilities
337 11b Do not reboot
338 Bit 0 Status.
339 1b The system reset is enabled by the user
340 0b The system reset is not enabled by the user
341
342 @param[in] Reset Reset
343 @param[in] Option The option
344 **/
345 VOID
346 DisplaySystemResetCapabilities (
347 IN UINT8 Reset,
348 IN UINT8 Option
349 );
350
351 /**
352 Display Hardware Security (Type 24) information.
353
354 Routine Description:
355 Identifies the password and reset status for the system:
356
357 Bits 7:6 Power-on Password Status, one of:
358 00b Disabled
359 01b Enabled
360 10b Not Implemented
361 11b Unknown
362 Bits 5:4 Keyboard Password Status, one of:
363 00b Disabled
364 01b Enabled
365 10b Not Implemented
366 11b Unknown
367 Bits 3:2 Administrator Password Status, one of:
368 00b Disabled
369 01b Enabled
370 10b Not Implemented
371 11b Unknown
372 Bits 1:0 Front Panel Reset Status, one of:
373 00b Disabled
374 01b Enabled
375 10b Not Implemented
376 11b Unknown
377
378 @param[in] Settings The device settings.
379 @param[in] Option The device options.
380 **/
381 VOID
382 DisplayHardwareSecuritySettings (
383 IN UINT8 Settings,
384 IN UINT8 Option
385 );
386
387 /**
388 Display Out-of-Band Remote Access (Type 30) information.
389
390 @param[in] Connections The device characteristics.
391 @param[in] Option The device options.
392 **/
393 VOID
394 DisplayOBRAConnections (
395 IN UINT8 Connections,
396 IN UINT8 Option
397 );
398
399 /**
400 Display System Boot Information (Type 32) information.
401
402 @param[in] Parameter The parameter.
403 @param[in] Option The options.
404 **/
405 VOID
406 DisplaySystemBootStatus (
407 IN UINT8 Parameter,
408 IN UINT8 Option
409 );
410
411 /**
412 Display System Power Supply (Type 39) information.
413
414 @param[in] Characteristics The device characteristics.
415 @param[in] Option The device options.
416 **/
417 VOID
418 DisplaySPSCharacteristics (
419 IN UINT16 Characteristics,
420 IN UINT8 Option
421 );
422
423 #endif