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