Set RTC initial time to be BIOS Release time.
[mirror_edk2.git] / Vlv2TbltDevicePkg / PlatformDxe / PlatformDxe.h
CommitLineData
3cbfba02
DW
1/*++\r
2\r
d71c25cf
DW
3 Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>\r
4 \r
5 This program and the accompanying materials are licensed and made available under\r
6 the terms and conditions of the BSD License that accompanies this distribution. \r
7 The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php. \r
9 \r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12 \r
3cbfba02
DW
13\r
14\r
15Module Name:\r
16\r
17 PlatformDxe.h\r
18\r
19Abstract:\r
20\r
21 Header file for Platform Initialization Driver.\r
22\r
23\r
24\r
25++*/\r
26\r
27#ifndef _PLATFORM_DRIVER_H\r
28#define _PLATFORM_DRIVER_H\r
29\r
30#include <PiDxe.h>\r
31#include <Library/BaseLib.h>\r
32#include <Library/DebugLib.h>\r
33#include <Library/UefiLib.h>\r
34#include <Library/UefiDriverEntryPoint.h>\r
35#include <Library/PcdLib.h>\r
36#include <Library/HobLib.h>\r
37#include <Library/MemoryAllocationLib.h>\r
38#include <Library/UefiBootServicesTableLib.h>\r
39#include <Library/BaseMemoryLib.h>\r
40#include <Library/UefiRuntimeServicesTableLib.h>\r
41#include <Library/IoLib.h>\r
42#include <Library/ReportStatusCodeLib.h>\r
43#include <Library/HobLib.h>\r
44#include <Library/EfiRegTableLib.h>\r
45#include <Library/Tpm2CommandLib.h>\r
46#include <Library/Tpm2DeviceLib.h>\r
47#include <Library/BaseCryptLib.h>\r
d71c25cf 48#include <Library/BiosIdLib.h>\r
3cbfba02
DW
49#include <Protocol/GlobalNvsArea.h>\r
50#include <Protocol/PciRootBridgeIo.h>\r
51#include <Protocol/IsaAcpi.h>\r
52#include <Framework/FrameworkInternalFormRepresentation.h>\r
53#include <Protocol/FrameworkHii.h>\r
54#include <Protocol/FrameworkFormCallback.h>\r
55#include <Protocol/CpuIo.h>\r
56#include <Protocol/BootScriptSave.h>\r
57#include <Framework/BootScript.h>\r
58#include <Guid/GlobalVariable.h>\r
59#include <Guid/BoardFeatures.h>\r
60#include <Guid/DataHubRecords.h>\r
61#include <Protocol/DataHub.h>\r
62#include <Protocol/PciIo.h>\r
63#include <Protocol/Speaker.h>\r
d71c25cf 64#include <Protocol/ExitPmAuth.h>\r
3cbfba02
DW
65#include <IndustryStandard/Pci22.h>\r
66#include <Guid/SetupVariable.h>\r
67#include <Guid/PlatformInfo.h>\r
68#include "Configuration.h"\r
69#define _EFI_H_ //skip efi.h\r
70#include "PchAccess.h"\r
71#include "VlvAccess.h"\r
72#include "BoardIdDecode.h"\r
73#include "PlatformBaseAddresses.h"\r
74#include "SetupMode.h"\r
75#include "PlatformBootMode.h"\r
76#include "CpuType.h"\r
77\r
78#define PCAT_RTC_ADDRESS_REGISTER 0x74\r
79#define PCAT_RTC_DATA_REGISTER 0x75\r
80\r
81#define RTC_ADDRESS_SECOND_ALARM 0x01\r
82#define RTC_ADDRESS_MINUTE_ALARM 0x03\r
83#define RTC_ADDRESS_HOUR_ALARM 0x05\r
84\r
85#define RTC_ADDRESS_REGISTER_A 0x0A\r
86#define RTC_ADDRESS_REGISTER_B 0x0B\r
87#define RTC_ADDRESS_REGISTER_C 0x0C\r
88#define RTC_ADDRESS_REGISTER_D 0x0D\r
89\r
90#define B_RTC_ALARM_INT_ENABLE 0x20\r
91#define B_RTC_ALARM_INT_STATUS 0x20\r
92\r
93#define B_RTC_DATE_ALARM_MASK 0x3F\r
94\r
95//\r
96// Default CPU Alternate Duty Cycle (255=100%, 0=0%)\r
97//\r
98#define DEF_CPU_ALT_DUTY_CYCLE 0xFF\r
99\r
100#define MAX_ONBOARD_SATA_DEVICE 2\r
101\r
102#define DXE_DEVICE_ENABLED 1\r
103#define DXE_DEVICE_DISABLED 0\r
104\r
105#define AZALIA_MAX_LOOP_TIME 0x10000\r
106\r
107//\r
108// Platform driver GUID\r
109//\r
110#define EFI_PLATFORM_DRIVER_GUID \\r
111 { 0x056E7324, 0xA718, 0x465b, 0x9A, 0x84, 0x22, 0x8F, 0x06, 0x64, 0x2B, 0x4F }\r
112\r
113#define PASSWORD_MAX_SIZE 20\r
114#define PLATFORM_NORMAL_MODE 0x01\r
115#define PLATFORM_SAFE_MODE 0x02\r
116#define PLATFORM_RECOVERY_MODE 0x04\r
117#define PLATFORM_MANUFACTURING_MODE 0x08\r
118#define PLATFORM_BACK_TO_BIOS_MODE 0x10\r
119\r
120#define EFI_OEM_SPECIFIC 0x8000\r
121#define EFI_CU_PLATFORM_DXE_INIT (EFI_OEM_SPECIFIC | 0x00000011)\r
122#define EFI_CU_PLATFORM_DXE_STEP1 (EFI_OEM_SPECIFIC | 0x00000012)\r
123#define EFI_CU_PLATFORM_DXE_STEP2 (EFI_OEM_SPECIFIC | 0x00000013)\r
124#define EFI_CU_PLATFORM_DXE_STEP3 (EFI_OEM_SPECIFIC | 0x00000014)\r
125#define EFI_CU_PLATFORM_DXE_STEP4 (EFI_OEM_SPECIFIC | 0x00000015)\r
126#define EFI_CU_PLATFORM_DXE_INIT_DONE (EFI_OEM_SPECIFIC | 0x00000016)\r
127\r
128\r
129#define EFI_SECTION_STRING 0x1C\r
130#define EFI_FORWARD_DECLARATION(x) typedef struct _##x x\r
131#define PREFIX_BLANK 0x04\r
132\r
133#pragma pack(1)\r
134\r
135typedef UINT64 EFI_BOARD_FEATURES;\r
136\r
137//\r
138//BUGBUG: should remove these EDK hii definition once Hii transtion is done\r
139//\r
140typedef UINT16 STRING_REF;\r
141typedef UINT16 EFI_FORM_LABEL;\r
142\r
143typedef enum {\r
144 EfiUserPassword,\r
145 EfiAdminPassword\r
146} EFI_PASSWORD_TYPE;\r
147\r
148typedef struct {\r
149 CHAR16 TempPassword[PASSWORD_MAX_SIZE];\r
150 CHAR16 EncodedPassword[PASSWORD_MAX_SIZE];\r
151 VOID *PasswordLocation;\r
152 EFI_PASSWORD_TYPE PasswordType;\r
153} EFI_PASSWORD_DATA;\r
154\r
155typedef struct {\r
156 CHAR8 AaNumber[7];\r
157 UINT8 BoardId;\r
158 EFI_BOARD_FEATURES Features;\r
159 UINT16 SubsystemDeviceId;\r
160 UINT16 AudioSubsystemDeviceId;\r
161 UINT64 AcpiOemTableId;\r
162} BOARD_ID_DECODE;\r
163\r
164typedef\r
165EFI_STATUS\r
166(EFIAPI *EFI_FORM_ROUTINE) (\r
167 SYSTEM_CONFIGURATION *SetupBuffer\r
168 );\r
169\r
170typedef struct{\r
171 UINT16 DeviceNumber;\r
172 UINT16 FunctionNumber;\r
173}PCI_DEVICE_FUNC_INFO;\r
174\r
175typedef struct{\r
176 CHAR16 PortNumber[4];\r
177 STRING_REF SataDeviceInfoStringId;\r
178}SATA_DEVICE_STRING_INFO;\r
179\r
180typedef struct {\r
181 UINT16 Signature;\r
182 UINT8 Size;\r
183 UINT32 EntryPoint;\r
184 UINT8 Reserve[17];\r
185 UINT16 PciDataOff;\r
186 UINT16 ExpansionOff;\r
187} PNP_OPTION_ROM_HEADER;\r
188\r
189typedef struct {\r
190 UINT32 Signature;\r
191 UINT8 Revision;\r
192 UINT8 Length;\r
193 UINT16 NextHeader;\r
194 UINT8 Reserve;\r
195 UINT8 CheckSum;\r
196 UINT32 DeviceId;\r
197 UINT16 ManufactureStrOff;\r
198 UINT16 ProductStrOff;\r
199} PNP_EXPANSION_HEADER;\r
200\r
201typedef struct {\r
202 BOOLEAN Enable;\r
203 UINT8 VerbTableNum;\r
204 UINT16 CodecSSID;\r
205 EFI_PHYSICAL_ADDRESS HDABar;\r
206 EFI_PHYSICAL_ADDRESS UpperHDABar;\r
207 UINT8 SDIPresent;\r
208 BOOLEAN Pme;\r
209 BOOLEAN LegacyFrontPanelAudio;\r
210 BOOLEAN HighDefinitionFrontPanelAudio;\r
211} EFI_AZALIA_S3;\r
212\r
213//\r
214//following structs are from R8. Remove them once R8->R9 transition is done\r
215//\r
216typedef struct {\r
217 CHAR16 *OptionString; // Passed in string to generate a token for in a truly dynamic form creation\r
218 STRING_REF StringToken; // This is used when creating a single op-code without generating a StringToken (have one already)\r
219 UINT16 Value;\r
220 UINT8 Flags;\r
221 UINT16 Key;\r
222} IFR_OPTION;\r
223\r
224\r
225\r
226typedef struct {\r
227 UINT8 Number;\r
228 UINT32 HorizontalResolution;\r
229 UINT32 VerticalResolution;\r
230} PANEL_RESOLUTION;\r
231\r
232#pragma pack()\r
233\r
234//\r
235// Prototypes\r
236//\r
237EFI_STATUS\r
238EFIAPI\r
239EfiMain (\r
240 IN EFI_HANDLE ImageHandle,\r
241 IN EFI_SYSTEM_TABLE *SystemTable\r
242 );\r
243\r
244EFI_STATUS\r
245ProcessEventLog (\r
246 );\r
247\r
248EFI_STATUS\r
249FindDataRecords (\r
250 );\r
251\r
252EFI_STATUS\r
253ProcessPasswords(\r
254 );\r
255\r
256VOID\r
257MemorySetup(\r
258 );\r
259\r
260\r
261UINTN\r
262EfiValueToString (\r
263 IN OUT CHAR16 *Buffer,\r
264 IN INT64 Value,\r
265 IN UINTN Flags,\r
266 IN UINTN Width\r
267 );\r
268\r
269VOID\r
270EFIAPI\r
271ReadyToBootFunction (\r
272 EFI_EVENT Event,\r
273 VOID *Context\r
274 );\r
275\r
276VOID\r
277InstallHiiDataAndGetSettings(\r
278 IN EFI_HII_STRING_PACK *StringPack,\r
279 //\r
280 ... // 0 or more of => IN EFI_HII_IFR_PACK *IfrPack,\r
281 // Terminate list with NULL\r
282 //\r
283 );\r
284\r
285EFI_STATUS\r
286ReadOrInitSetupVariable(\r
287 IN UINTN RequiredVariableSize,\r
288 IN UINTN RequiredPasswordSize,\r
289 IN VOID *DefaultData,\r
290 IN VOID *MfgDefaultData,\r
291 OUT VOID *SetupVariableData,\r
292 OUT VOID *SystemPassword\r
293 );\r
294\r
295VOID\r
296EfiLogicalOrMem(\r
297 IN VOID *Destination,\r
298 IN VOID *Source,\r
299 IN UINTN Length\r
300 );\r
301\r
302EFI_STATUS\r
303GetStringFromToken (\r
304 IN EFI_GUID *ProducerGuid,\r
305 IN STRING_REF Token,\r
306 OUT CHAR16 **String\r
307 );\r
308\r
309UINT32\r
310ConvertBase2ToRaw (\r
311 IN EFI_EXP_BASE2_DATA *Data);\r
312\r
313UINT32\r
314ConvertBase10ToRaw (\r
315 IN EFI_EXP_BASE10_DATA *Data);\r
316\r
317CHAR16 *\r
318GetStringById (\r
319 IN STRING_REF Id,\r
320 EFI_HII_HANDLE StringPackHandle\r
321 );\r
322\r
323VOID\r
324EFIAPI\r
325SetupDataFilter (\r
326 IN EFI_EVENT Event,\r
327 IN VOID* Context\r
328 );\r
329\r
330VOID\r
331EFIAPI\r
332IdeDataFilter (\r
333 IN EFI_EVENT Event,\r
334 IN VOID* Context\r
335 );\r
336\r
337VOID\r
338EFIAPI\r
339UpdateAhciRaidDiskInfo (\r
340 IN EFI_EVENT Event,\r
341 IN VOID* Context\r
342 );\r
343\r
344VOID\r
345EFIAPI\r
346EventLogFilter (\r
347 IN EFI_EVENT Event,\r
348 IN VOID* Context\r
349 );\r
350\r
351VOID\r
352SwapEntries (\r
353 IN CHAR8 *Data\r
354 );\r
355\r
356VOID\r
357AsciiToUnicode (\r
358 IN CHAR8 *AsciiString,\r
359 IN CHAR16 *UnicodeString\r
360 );\r
361\r
362UINT16\r
363ConfigModeStateGet();\r
364\r
365VOID\r
366SetSkus();\r
367\r
368VOID\r
369CPUSetupItems();\r
370\r
371EFI_STATUS\r
372SecurityDriverCallback (\r
373 IN EFI_FORM_CALLBACK_PROTOCOL *This,\r
374 IN UINT16 KeyValue,\r
375 IN EFI_IFR_DATA_ARRAY *Data,\r
376 OUT EFI_HII_CALLBACK_PACKET **Packet\r
377 );\r
378\r
379VOID\r
380SetPasswordState (\r
381 );\r
382\r
383VOID\r
384EncodePassword (\r
385 IN CHAR16 *Password\r
386 );\r
387\r
388VOID\r
389EFIAPI\r
390PciBusEvent (\r
391 IN EFI_EVENT Event,\r
392 IN VOID* Context\r
393 );\r
394VOID\r
395AsfInitialize(\r
396 );\r
397\r
398VOID\r
399InitializeAsf (\r
400 );\r
401\r
402UINT8\r
403ReadCmosBank1Byte (\r
404 IN EFI_CPU_IO_PROTOCOL *CpuIo,\r
405 IN UINT8 Index\r
406 );\r
407\r
408VOID\r
409WriteCmosBank1Byte (\r
410 IN EFI_CPU_IO_PROTOCOL *CpuIo,\r
411 IN UINT8 Index,\r
412 IN UINT8 Data\r
413 );\r
414\r
415VOID\r
416InitializeBoardId (\r
417 );\r
418\r
419EFI_STATUS\r
420InstallBootCallbackRoutine(\r
421 );\r
422\r
423EFI_STATUS\r
424InstallConfigurationCallbackRoutine(\r
425 );\r
426\r
427EFI_STATUS\r
428InstallPerformanceCallbackRoutine(\r
429 );\r
430\r
431EFI_STATUS\r
432InstallSecurityCallbackRoutine (\r
433 );\r
434\r
435EFI_STATUS\r
436InstallMainCallbackRoutine (\r
437 );\r
438\r
439EFI_STATUS\r
440MemoryConfigurationUpdate (\r
441 UINT16 *Key,\r
442 EFI_FORM_LABEL *Label,\r
443 UINT16 *OpcodeCount,\r
444 UINT8 **OpcodeData,\r
445 EFI_FORM_ROUTINE *Routine\r
446 );\r
447\r
448EFI_STATUS\r
449MemoryConfigurationCallbackRoutine (\r
450 SYSTEM_CONFIGURATION *SetupBuffer\r
451 );\r
452\r
453EFI_STATUS\r
454MemoryConfigurationCalculateSpeed(\r
455 SYSTEM_CONFIGURATION *SetupBuffer\r
456 );\r
457\r
458VOID\r
459UpdateMemoryString(\r
460 IN STRING_REF TokenToUpdate,\r
461 IN CHAR16 *NewString\r
462 );\r
463\r
464VOID\r
465InitFeaturePolicy (\r
466 IN EFI_PLATFORM_INFO_HOB *PlatformInfo\r
467 );\r
468\r
469VOID\r
470InitializeSetupVarHide (\r
471 );\r
472\r
473VOID\r
474PreparePCIePCISlotInformation(\r
475 VOID\r
476 );\r
477\r
478\r
479EFI_STATUS\r
480BootConfigurationUpdate (\r
481 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
482 );\r
483\r
484EFI_STATUS\r
485InitializeBootConfiguration(\r
486 VOID\r
487 );\r
488\r
489UINT16\r
490GetStringSize(\r
491 IN CHAR16 *ThisString\r
492 );\r
493\r
494UINT16\r
495GetDriveCount (\r
496 IN STRING_REF *BootMap\r
497 );\r
498\r
499CHAR16 *\r
500GetBootString (\r
501 IN STRING_REF Id,\r
502 OUT UINTN *Length\r
503 );\r
504\r
505EFI_STATUS\r
506BootCfgCreateTwoOptionOneOf(\r
507 IN UINT16 QuestionId,\r
508 IN EFI_FORM_LABEL Label,\r
509 IN STRING_REF OptionPrompt,\r
510 IN STRING_REF OptionHelp,\r
511 IN STRING_REF OptionOneString,\r
512 IN STRING_REF OptionTwoString,\r
513 IN UINT8 OptionOneFlags,\r
514 IN UINT8 OptionTwoFlags,\r
515 IN UINT16 KeyValueOne,\r
516 IN UINT16 KeyValueTwo\r
517 );\r
518\r
519EFI_STATUS\r
520ReplaceOpcodeWithText(\r
521 IN STRING_REF OptionPrompt,\r
522 IN STRING_REF OptionHelp,\r
523 IN STRING_REF OptionOneString,\r
524 IN EFI_FORM_LABEL Label\r
525 );\r
526\r
527EFI_STATUS\r
528CreateDriveBootOrderOpcode(\r
529 IN VOID *Data,\r
530 IN STRING_REF *BootMap,\r
531 IN EFI_FORM_LABEL Label,\r
532 IN UINT16 QuestionId,\r
533 IN STRING_REF OptionOneString,\r
534 IN STRING_REF OptionTwoString\r
535 );\r
536\r
537VOID\r
538SetHyperBootCfgFlags(\r
539 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
540 );\r
541\r
542VOID\r
543GetHyperBootCfgFlags(\r
544 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
545 );\r
546\r
547VOID\r
548PrepareBootCfgForHyperBoot(\r
549 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
550 );\r
551\r
552BOOLEAN\r
553BootCfgChanged(\r
554 IN SYSTEM_CONFIGURATION *SystemConfiguration\r
555 );\r
556\r
557EFI_STATUS\r
558InsertOpcodeAtIndex(\r
559 IN SYSTEM_CONFIGURATION *SystemConfiguration,\r
560 IN OUT IFR_OPTION *OptionList,\r
561 IN IFR_OPTION IfrOption,\r
562 IN UINT16 OptionCount\r
563 );\r
564\r
565VOID\r
566ConfigureBootOrderStrings(\r
567 IN SYSTEM_CONFIGURATION *SystemConfiguration\r
568 );\r
569\r
570VOID\r
571InitializeAllBootStrings(\r
572 VOID\r
573 );\r
574\r
575VOID\r
576SaveUsbCfgSettings(\r
577 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
578 );\r
579\r
580VOID\r
581RestoreUsbCfgSettings(\r
582 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
583 );\r
584\r
585EFI_STATUS\r
586UpdateBootDevicePriority(\r
587 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
588 );\r
589\r
590EFI_STATUS\r
591DisableHyperBoot(\r
592 IN OUT SYSTEM_CONFIGURATION *SystemConfiguration\r
593 );\r
594\r
595BOOLEAN\r
596CheckForUserPassword(\r
597 VOID\r
598 );\r
599\r
600EFI_STATUS\r
601EFIAPI\r
602HyperBootPasswordCallback(\r
603 IN OUT VOID* Data\r
604 );\r
605\r
606EFI_STATUS\r
607EFIAPI\r
608HyperBootF9Callback (\r
609 IN VOID* Data\r
610 );\r
611\r
612EFI_STATUS\r
613InstallHiiEvents(\r
614 VOID\r
615 );\r
616\r
617EFI_STATUS\r
618EFIAPI\r
619ProgramToneFrequency (\r
620 IN EFI_SPEAKER_IF_PROTOCOL *This,\r
621 IN UINT16 Frequency\r
622 );\r
623\r
624EFI_STATUS\r
625EFIAPI\r
626GenerateBeepTone (\r
627 IN EFI_SPEAKER_IF_PROTOCOL *This,\r
628 IN UINTN NumberOfBeeps,\r
629 IN UINTN BeepDuration,\r
630 IN UINTN TimeInterval\r
631 );\r
632\r
633EFI_STATUS\r
634InitializeObservableProtocol();\r
635\r
636EFI_STATUS\r
637PciBusDriverHook();\r
638\r
d71c25cf
DW
639VOID\r
640EFIAPI\r
641AdjustDefaultRtcTimeCallback (\r
642 IN EFI_EVENT Event,\r
643 IN VOID *Context\r
644 );\r
645\r
3cbfba02
DW
646typedef struct _GOP_DISPLAY_BRIGHTNESS_PROTOCOL GOP_DISPLAY_BRIGHTNESS_PROTOCOL;\r
647\r
648typedef\r
649EFI_STATUS\r
650(EFIAPI *GET_MAXIMUM_BRIGHTNESS_LEVEL) (\r
651 IN GOP_DISPLAY_BRIGHTNESS_PROTOCOL *This,\r
652 OUT UINT32 *MaxBrightnessLevel\r
653 );\r
654\r
655\r
656typedef\r
657EFI_STATUS\r
658(EFIAPI *GET_CURRENT_BRIGHTNESS_LEVEL) (\r
659 IN GOP_DISPLAY_BRIGHTNESS_PROTOCOL *This,\r
660 OUT UINT32 *MaxBrightnessLevel\r
661 );\r
662\r
663typedef\r
664EFI_STATUS\r
665(EFIAPI *SET_BRIGHTNESS_LEVEL) (\r
666 IN GOP_DISPLAY_BRIGHTNESS_PROTOCOL *This,\r
667 IN UINT32 BrightnessLevel\r
668 );\r
669\r
670struct _GOP_DISPLAY_BRIGHTNESS_PROTOCOL {\r
671 UINT32 Revision;\r
672 GET_MAXIMUM_BRIGHTNESS_LEVEL GetMaxBrightnessLevel;\r
673 GET_CURRENT_BRIGHTNESS_LEVEL GetCurrentBrightnessLevel;\r
674 SET_BRIGHTNESS_LEVEL SetBrightnessLevel;\r
675};\r
676\r
677//\r
678// Global externs\r
679//\r
680extern UINT8 MaintenanceBin[];\r
681extern UINT8 MainBin[];\r
682extern UINT8 ConfigurationBin[];\r
683extern UINT8 MemoryConfigurationBin[];\r
684extern UINT8 PerformanceBin[];\r
685extern UINT8 SecurityBin[];\r
686extern UINT8 BootBin[];\r
687extern UINT8 PowerBin[];\r
688extern UINT8 SystemSetupBin[];\r
689\r
690extern VOID *mDxePlatformStringPack;\r
691extern EFI_HII_PROTOCOL *mHii;\r
692extern SYSTEM_CONFIGURATION mSystemConfiguration;\r
693extern FRAMEWORK_EFI_HII_HANDLE mMaintenanceHiiHandle;\r
694extern FRAMEWORK_EFI_HII_HANDLE mMainHiiHandle;\r
695extern FRAMEWORK_EFI_HII_HANDLE mConfigurationHiiHandle;\r
696extern FRAMEWORK_EFI_HII_HANDLE mPerformanceHiiHandle;\r
697extern FRAMEWORK_EFI_HII_HANDLE mPowerHiiHandle;\r
698extern FRAMEWORK_EFI_HII_HANDLE mBootHiiHandle;\r
699extern FRAMEWORK_EFI_HII_HANDLE mSecurityHiiHandle;\r
700\r
701extern SYSTEM_PASSWORDS mSystemPassword;\r
702extern EFI_PASSWORD_DATA mAdminPassword;\r
703extern EFI_PASSWORD_DATA mUserPassword;\r
704\r
705extern EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *mPciRootBridgeIo;\r
706\r
707//\r
708//extern EFI_REG_TABLE mSubsystemIdRegs[];\r
709//\r
710extern UINT32 mSubsystemVidDid;\r
711extern UINT32 mSubsystemAudioVidDid;\r
712\r
713extern UINT8 mBoardIdIndex;\r
714extern BOOLEAN mFoundAANum;\r
715extern EFI_BOARD_FEATURES mBoardFeatures;\r
716extern UINT16 mSubsystemDeviceId;\r
717extern UINT16 mSubsystemAudioDeviceId;\r
718extern BOARD_ID_DECODE mBoardIdDecodeTable[];\r
719extern UINTN mBoardIdDecodeTableSize;\r
720\r
721extern UINT8 mSmbusRsvdAddresses[];\r
722extern UINT8 mNumberSmbusAddress;\r
723extern BOOLEAN mMfgMode;\r
724extern UINT32 mPlatformBootMode;\r
725extern CHAR8 BoardAaNumber[];\r
726\r
727extern EFI_GUID gEfiGlobalNvsAreaProtocolGuid;\r
728#endif\r