15d73d92f560b079f41f62e91d15ddc1fda897867jcarsey/** @file
25d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  Module to clarify the element info of the smbios structure.
35d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
4ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li  Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>
55d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  This program and the accompanying materials
65d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  are licensed and made available under the terms and conditions of the BSD License
75d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  which accompanies this distribution.  The full text of the license may be found at
85d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  http://opensource.org/licenses/bsd-license.php
95d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
105d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
115d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
125d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
135d73d92f560b079f41f62e91d15ddc1fda897867jcarsey**/
145d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
15a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey#ifndef _SMBIOS_PRINT_INFO_H_
16a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey#define _SMBIOS_PRINT_INFO_H_
175d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
18187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng#include <IndustryStandard/SmBios.h>
195d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
205d73d92f560b079f41f62e91d15ddc1fda897867jcarseyextern UINT8  SmbiosMajorVersion;
215d73d92f560b079f41f62e91d15ddc1fda897867jcarseyextern UINT8  SmbiosMinorVersion;
225d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
235d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define SHOW_NONE     0x00
245d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define SHOW_OUTLINE  0x01
255d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define SHOW_NORMAL   0x02
265d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define SHOW_DETAIL   0x03
275d73d92f560b079f41f62e91d15ddc1fda897867jcarsey//
285d73d92f560b079f41f62e91d15ddc1fda897867jcarsey// SHOW_ALL: WaitEnter() not wait input.
295d73d92f560b079f41f62e91d15ddc1fda897867jcarsey//
305d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define SHOW_ALL          0x04
315d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define SHOW_STATISTICS   0x05
325d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
335d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define AS_UINT16(pData)  (*((UINT16 *) pData))
345d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define AS_UINT32(pData)  (*((UINT32 *) pData))
355d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#define AS_UINT64(pData)  (*((UINT64 *) pData))
365d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
37a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
38a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Print the info of EPS(Entry Point Structure).
39a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
40a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] SmbiosTable    Pointer to the SMBIOS table entry point.
41a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option         Display option.
42a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
435d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
445d73d92f560b079f41f62e91d15ddc1fda897867jcarseySmbiosPrintEPSInfo (
45187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  IN  SMBIOS_TABLE_ENTRY_POINT  *SmbiosTable,
46187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  IN  UINT8                     Option
47ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li  );
48ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li
49ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li/**
50ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li  Print the info of 64-bit EPS(Entry Point Structure).
51ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li
52ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li  @param[in] SmbiosTable    Pointer to the SMBIOS table entry point.
53ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li  @param[in] Option         Display option.
54ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li**/
55ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin LiVOID
56ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin LiSmbios64BitPrintEPSInfo (
57ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li  IN  SMBIOS_TABLE_3_0_ENTRY_POINT  *SmbiosTable,
58ec8a502e66fe190a77546e82820e921cfa9d05e0Elvin Li  IN  UINT8                         Option
595d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
605d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
61a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
62a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  This function print the content of the structure pointed by Struct.
63a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
64a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Struct       Point to the structure to be printed.
65a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option       Print option of information detail.
66a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
67a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @retval EFI_SUCCESS               Successfully Printing this function.
68a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @retval EFI_INVALID_PARAMETER     Invalid Structure.
69a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @retval EFI_UNSUPPORTED           Unsupported.
70a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
715d73d92f560b079f41f62e91d15ddc1fda897867jcarseyEFI_STATUS
725d73d92f560b079f41f62e91d15ddc1fda897867jcarseySmbiosPrintStructure (
73a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN  SMBIOS_STRUCTURE_POINTER  *Struct,
745d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  IN  UINT8                     Option
755d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
765d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
77a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
78a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display BIOS Information (Type 0) information.
79a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
80a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Chara    The information bits.
81a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   The optional information.
82a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
835d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
845d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayBiosCharacteristics (
85a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT64  Chara,
86a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8   Option
875d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
88a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
89a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
90a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display Bios Characteristice extensions1 information.
91a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
92a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Byte1    The information.
93a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   The optional information.
94a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
955d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
965d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayBiosCharacteristicsExt1 (
97a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Byte1,
98a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
995d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
100a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
101a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
102a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display Bios Characteristice extensions2 information.
103a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
104a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Byte2    The information.
105a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   The optional information.
106a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
1075d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
1085d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayBiosCharacteristicsExt2 (
109a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Byte2,
110a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
1115d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
1125d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
113a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
114a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display Processor Information (Type 4) information.
115a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
116a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Family       The family value.
117a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option       The option value.
118a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
1195d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
1205d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayProcessorFamily (
1215d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  UINT8 Family,
1225d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  UINT8 Option
1235d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
1245d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
125a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
126a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display processor family information.
127a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
128a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Family2      The family value.
129a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option       The option value.
130a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
1315d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
1325d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayProcessorFamily2 (
133a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT16 Family2,
134a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8  Option
1355d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
1365d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
137a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
138a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display processor voltage information.
139a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
140a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Voltage      The Voltage.
141a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                      Bit 7 Set to 0, indicating 'legacy' mode for processor voltage
142a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                      Bits 6:4  Reserved, must be zero
143a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                      Bits 3:0  Voltage Capability.
144a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                                A Set bit indicates that the voltage is supported.
145a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        Bit 0 - 5V
146a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        Bit 1 - 3.3V
147a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        Bit 2 - 2.9V
148a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        Bit 3 - Reserved, must be zero.
149a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
150a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                      Note:
151a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        Setting of multiple bits indicates the socket is configurable
152a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        If bit 7 is set to 1, the remaining seven bits of the field are set to
153a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        contain the processor's current voltage times 10.
154a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        For example, the field value for a processor voltage of 1.8 volts would be
155a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey                        92h = 80h + (1.8 * 10) = 80h + 18 = 80h +12h.
156a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
157a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option       The option.
158a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
1595d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
1605d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayProcessorVoltage (
161a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Voltage,
162a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
1635d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
164a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
165a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
166a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display processor information.
167a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
168a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Status   The status.
169187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBit 7 Reserved, must be 0
170187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBit 6 CPU Socket Populated
171187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  1 - CPU Socket Populated
172187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  0 - CPU Socket Unpopulated
173187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBits 5:3 Reserved, must be zero
174187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBits 2:0 CPU Status
175187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  0h - Unknown
176187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  1h - CPU Enabled
177187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  2h - CPU Disabled by User via BIOS Setup
178187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  3h - CPU Disabled By BIOS (POST Error)
179187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  4h - CPU is Idle, waiting to be enabled.
180187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  5-6h - Reserved
181187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  7h - Other
182a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
183a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   The option
184a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
1855d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
1865d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayProcessorStatus (
187a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Status,
188a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
1895d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
1905d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
191a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
192a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display information about Memory Controller Information (Type 5).
193a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
194a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Size     Memory size.
195a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] SlotNum  Which slot is this about.
196a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   Option for the level of detail output required.
197a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
1985d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
1995d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayMaxMemoryModuleSize (
200a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Size,
201a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 SlotNum,
202a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
2035d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
204a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
205a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
206a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display information about memory configuration handles.
207a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
208a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Handles  The buffer of handles to output info on.
209a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] SlotNum  The number of handles in the above buffer.
210a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   Option for the level of detail output required.
211a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
2125d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
2135d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayMemoryModuleConfigHandles (
214a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT16 *Handles,
215a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8  SlotNum,
216a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8  Option
2175d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
2185d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
219a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
220a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display Memory Module Information (Type 6).
221a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
222a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] BankConnections
223a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option
224a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
2255d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
2265d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayMmBankConnections (
227a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 BankConnections,
228a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
2295d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
230a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
231a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
232a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display memory informcation.
233a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
234a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Bits 0:6  Size (n),
235a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      where 2**n is the size in MB with three special-case values:
236a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      7Dh Not determinable (Installed Size only)
237a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      7Eh Module is installed, but no memory has been enabled
238a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      7Fh Not installed
239a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Bit  7  Defines whether the memory module has a single- (0)
240a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey          or double-bank (1) connection.
241a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
242a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Size   - The size
243a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option - The option
244a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
2455d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
2465d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayMmMemorySize (
247a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Size,
248a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
2495d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
2505d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
251a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
252187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  Display Cache Configuration.
253187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng
254187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  @param[in] CacheConfiguration   Cache Configuration.
255187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBits 15:10 Reserved, must be 0
256187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBits 9:8 Operational Mode
257187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  0h - Write Through
258187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  1h - Write Back
259187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  2h - Varies with Memory Address
260187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  3h - Unknown
261187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBit 7 Enabled/Disabled
262187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  1 - Enabled
263187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  0 - Disabled
264187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBits 6:5 Location
265187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  0h - Internal
266187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  1h - External
267187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  2h - Reserved
268187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  3h - Unknown
269187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBit 4 Reserved, must be zero
270187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBit 3 Cache Socketed
271187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  1 - Socketed
272187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  0 - Unsocketed
273187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengBits 2:0 Cache Level
274187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  1 through 8 (For example, an L1 cache would
275187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  use value 000b and an L3 cache would use 010b.)
276187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng
277187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  @param[in] Option   The option
278187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng**/
279187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengVOID
280187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzengDisplayCacheConfiguration (
281187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  IN UINT16 CacheConfiguration,
282187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  IN UINT8 Option
283187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng  );
284187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng
285187cb3dd8d665619ff489ad8a8dc58c6aeab5aeclzeng/**
286a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  The Slot ID field of the System Slot structure provides a mechanism to
287a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  correlate the physical attributes of the slot to its logical access method
288a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  (which varies based on the Slot Type field).
289a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
290a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] SlotId   - The slot ID
291a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] SlotType - The slot type
292a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   - The Option
293a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
2945d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
2955d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplaySystemSlotId (
296a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT16  SlotId,
297a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8   SlotType,
298a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8   Option
2995d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
3005d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
301a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
302a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display Portable Battery (Type 22) information.
303a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
304a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  The date the cell pack was manufactured, in packed format:
305a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   Bits 15:9  Year, biased by 1980, in the range 0 to 127.
306a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   Bits 8:5 Month, in the range 1 to 12.
307a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   Bits 4:0 Date, in the range 1 to 31.
308a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  For example, 01 February 2000 would be identified as
309a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  0010 1000 0100 0001b (0x2841).
310a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
311a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Date     The date
312a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   The option
313a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
3145d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
3155d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplaySBDSManufactureDate (
316a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT16  Date,
317a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8   Option
3185d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
3195d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
320a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
321a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display System Reset  (Type 23) information.
322a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
323a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Routine Description:
324a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Identifies the system-reset capabilities for the system.
325a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   Bits 7:6 Reserved for future assignment via this specification, set to 00b.
326a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   Bit 5  System contains a watchdog timer, either True (1) or False (0).
327a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   Bits 4:3 Boot Option on Limit.
328a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    Identifies the system action to be taken when the Reset Limit is reached, one of:
329a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    00b Reserved, do not use.
330a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    01b Operating system
331a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    10b System utilities
332a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    11b Do not rebootBits
333a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   2:1  Boot Option.  Indicates the action to be taken following a watchdog reset, one of:
334a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    00b Reserved, do not use.
335a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    01b Operating system
336a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    10b System utilities
337a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    11b Do not reboot
338a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey   Bit 0  Status.
339a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    1b The system reset is enabled by the user
340a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    0b The system reset is not enabled by the user
341a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
342a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Reset   Reset
343a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option  The option
344a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
3455d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
3465d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplaySystemResetCapabilities (
347a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Reset,
348a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
3495d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
3505d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
351a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
352a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display Hardware Security (Type 24) information.
353a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
354a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    Routine Description:
355a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    Identifies the password and reset status for the system:
356a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
357a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    Bits 7:6    Power-on Password Status, one of:
358a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      00b Disabled
359a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      01b Enabled
360a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      10b Not Implemented
361a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      11b Unknown
362a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    Bits 5:4    Keyboard Password Status, one of:
363a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      00b Disabled
364a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      01b Enabled
365a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      10b Not Implemented
366a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      11b Unknown
367a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    Bits 3:2    Administrator Password Status, one  of:
368a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      00b Disabled
369a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      01b Enabled
370a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      10b Not Implemented
371a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      11b Unknown
372a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey    Bits 1:0    Front Panel Reset Status, one of:
373a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      00b Disabled
374a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      01b Enabled
375a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      10b Not Implemented
376a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey      11b Unknown
377a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
378a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Settings The device settings.
379a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option   The device options.
380a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
3815d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
3825d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayHardwareSecuritySettings (
383a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Settings,
384a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
3855d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
3865d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
387a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
388a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display Out-of-Band Remote Access (Type 30) information.
389a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
390a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Connections        The device characteristics.
391a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option             The device options.
392a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
3935d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
3945d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplayOBRAConnections (
395a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8   Connections,
396a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8   Option
3975d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
3985d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
399a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
400a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display System Boot Information (Type 32) information.
401a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
402a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Parameter      The parameter.
403a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option         The options.
404a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
4055d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
4065d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplaySystemBootStatus (
407a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Parameter,
408a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8 Option
4095d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
4105d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
411a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey/**
412a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  Display System Power Supply (Type 39) information.
413a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey
414a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Characteristics    The device characteristics.
415a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  @param[in] Option             The device options.
416a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey**/
4175d73d92f560b079f41f62e91d15ddc1fda897867jcarseyVOID
4185d73d92f560b079f41f62e91d15ddc1fda897867jcarseyDisplaySPSCharacteristics (
419a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT16  Characteristics,
420a1d4bfcc3f58a9ed0ce6118556016c7c058d01b1jcarsey  IN UINT8   Option
4215d73d92f560b079f41f62e91d15ddc1fda897867jcarsey  );
4225d73d92f560b079f41f62e91d15ddc1fda897867jcarsey
4235d73d92f560b079f41f62e91d15ddc1fda897867jcarsey#endif
424