2 Module to clarify the element info of the smbios structure.
4 Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>
5 (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development LP<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
10 #ifndef _SMBIOS_PRINT_INFO_H_
11 #define _SMBIOS_PRINT_INFO_H_
13 #include <IndustryStandard/SmBios.h>
15 extern UINT8 SmbiosMajorVersion
;
16 extern UINT8 SmbiosMinorVersion
;
18 #define SHOW_NONE 0x00
19 #define SHOW_OUTLINE 0x01
20 #define SHOW_NORMAL 0x02
21 #define SHOW_DETAIL 0x03
23 // SHOW_ALL: WaitEnter() not wait input.
26 #define SHOW_STATISTICS 0x05
28 #define AS_UINT16(pData) (*((UINT16 *) pData))
29 #define AS_UINT32(pData) (*((UINT32 *) pData))
30 #define AS_UINT64(pData) (*((UINT64 *) pData))
33 Print the info of EPS(Entry Point Structure).
35 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
36 @param[in] Option Display option.
40 IN SMBIOS_TABLE_ENTRY_POINT
*SmbiosTable
,
45 Print the info of 64-bit EPS(Entry Point Structure).
47 @param[in] SmbiosTable Pointer to the SMBIOS table entry point.
48 @param[in] Option Display option.
51 Smbios64BitPrintEPSInfo (
52 IN SMBIOS_TABLE_3_0_ENTRY_POINT
*SmbiosTable
,
57 This function print the content of the structure pointed by Struct.
59 @param[in] Struct Point to the structure to be printed.
60 @param[in] Option Print option of information detail.
62 @retval EFI_SUCCESS Successfully Printing this function.
63 @retval EFI_INVALID_PARAMETER Invalid Structure.
64 @retval EFI_UNSUPPORTED Unsupported.
67 SmbiosPrintStructure (
68 IN SMBIOS_STRUCTURE_POINTER
*Struct
,
73 Display BIOS Information (Type 0) information.
75 @param[in] Chara The information bits.
76 @param[in] Option The optional information.
79 DisplayBiosCharacteristics (
85 Display Bios Characteristice extensions1 information.
87 @param[in] Byte1 The information.
88 @param[in] Option The optional information.
91 DisplayBiosCharacteristicsExt1 (
97 Display Bios Characteristice extensions2 information.
99 @param[in] Byte2 The information.
100 @param[in] Option The optional information.
103 DisplayBiosCharacteristicsExt2 (
109 Display Processor Information (Type 4) information.
111 @param[in] Family The family value.
112 @param[in] Option The option value.
115 DisplayProcessorFamily (
121 Display processor family information.
123 @param[in] Family2 The family value.
124 @param[in] Option The option value.
127 DisplayProcessorFamily2 (
133 Display processor voltage information.
135 @param[in] Voltage The Voltage.
136 Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
137 Bits 6:4 Reserved, must be zero
138 Bits 3:0 Voltage Capability.
139 A Set bit indicates that the voltage is supported.
143 Bit 3 - Reserved, must be zero.
146 Setting of multiple bits indicates the socket is configurable
147 If bit 7 is set to 1, the remaining seven bits of the field are set to
148 contain the processor's current voltage times 10.
149 For example, the field value for a processor voltage of 1.8 volts would be
150 92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
152 @param[in] Option The option.
155 DisplayProcessorVoltage (
161 Display processor information.
163 @param[in] Status The status.
164 Bit 7 Reserved, must be 0
165 Bit 6 CPU Socket Populated
166 1 - CPU Socket Populated
167 0 - CPU Socket Unpopulated
168 Bits 5:3 Reserved, must be zero
172 2h - CPU Disabled by User via BIOS Setup
173 3h - CPU Disabled By BIOS (POST Error)
174 4h - CPU is Idle, waiting to be enabled.
178 @param[in] Option The option
181 DisplayProcessorStatus (
187 Display information about Memory Controller Information (Type 5).
189 @param[in] Size Memory size.
190 @param[in] SlotNum Which slot is this about.
191 @param[in] Option Option for the level of detail output required.
194 DisplayMaxMemoryModuleSize (
201 Display information about memory configuration handles.
203 @param[in] Handles The buffer of handles to output info on.
204 @param[in] SlotNum The number of handles in the above buffer.
205 @param[in] Option Option for the level of detail output required.
208 DisplayMemoryModuleConfigHandles (
215 Display Memory Module Information (Type 6).
217 @param[in] BankConnections
221 DisplayMmBankConnections (
222 IN UINT8 BankConnections
,
227 Display memory informcation.
230 where 2**n is the size in MB with three special-case values:
231 7Dh Not determinable (Installed Size only)
232 7Eh Module is installed, but no memory has been enabled
234 Bit 7 Defines whether the memory module has a single- (0)
235 or double-bank (1) connection.
237 @param[in] Size - The size
238 @param[in] Option - The option
241 DisplayMmMemorySize (
247 Display Cache Configuration.
249 @param[in] CacheConfiguration Cache Configuration.
250 Bits 15:10 Reserved, must be 0
251 Bits 9:8 Operational Mode
254 2h - Varies with Memory Address
256 Bit 7 Enabled/Disabled
264 Bit 4 Reserved, must be zero
269 1 through 8 (For example, an L1 cache would
270 use value 000b and an L3 cache would use 010b.)
272 @param[in] Option The option
275 DisplayCacheConfiguration (
276 IN UINT16 CacheConfiguration
,
281 The Slot ID field of the System Slot structure provides a mechanism to
282 correlate the physical attributes of the slot to its logical access method
283 (which varies based on the Slot Type field).
285 @param[in] SlotId - The slot ID
286 @param[in] SlotType - The slot type
287 @param[in] Option - The Option
290 DisplaySystemSlotId (
297 Display Portable Battery (Type 22) information.
299 The date the cell pack was manufactured, in packed format:
300 Bits 15:9 Year, biased by 1980, in the range 0 to 127.
301 Bits 8:5 Month, in the range 1 to 12.
302 Bits 4:0 Date, in the range 1 to 31.
303 For example, 01 February 2000 would be identified as
304 0010 1000 0100 0001b (0x2841).
306 @param[in] Date The date
307 @param[in] Option The option
310 DisplaySBDSManufactureDate (
316 Display System Reset (Type 23) information.
319 Identifies the system-reset capabilities for the system.
320 Bits 7:6 Reserved for future assignment via this specification, set to 00b.
321 Bit 5 System contains a watchdog timer, either True (1) or False (0).
322 Bits 4:3 Boot Option on Limit.
323 Identifies the system action to be taken when the Reset Limit is reached, one of:
324 00b Reserved, do not use.
327 11b Do not rebootBits
328 2:1 Boot Option. Indicates the action to be taken following a watchdog reset, one of:
329 00b Reserved, do not use.
334 1b The system reset is enabled by the user
335 0b The system reset is not enabled by the user
337 @param[in] Reset Reset
338 @param[in] Option The option
341 DisplaySystemResetCapabilities (
347 Display Hardware Security (Type 24) information.
350 Identifies the password and reset status for the system:
352 Bits 7:6 Power-on Password Status, one of:
357 Bits 5:4 Keyboard Password Status, one of:
362 Bits 3:2 Administrator Password Status, one of:
367 Bits 1:0 Front Panel Reset Status, one of:
373 @param[in] Settings The device settings.
374 @param[in] Option The device options.
377 DisplayHardwareSecuritySettings (
383 Display Out-of-Band Remote Access (Type 30) information.
385 @param[in] Connections The device characteristics.
386 @param[in] Option The device options.
389 DisplayOBRAConnections (
390 IN UINT8 Connections
,
395 Display System Boot Information (Type 32) information.
397 @param[in] Parameter The parameter.
398 @param[in] Option The options.
401 DisplaySystemBootStatus (
407 Display System Power Supply (Type 39) information.
409 @param[in] Characteristics The device characteristics.
410 @param[in] Option The device options.
413 DisplaySPSCharacteristics (
414 IN UINT16 Characteristics
,
419 Display TPM Device (Type 43) Characteristics.
421 @param[in] Chara The information bits.
422 @param[in] Option The optional information.
425 DisplayTpmDeviceCharacteristics (
431 Display Processor Architecture Type (Type 44).
433 @param[in] Key The key of the structure.
434 @param[in] Option The optional information.
437 DisplayProcessorArchitectureType (