1 /*++
2 
3   Copyright (c) 2004  - 2015, Intel Corporation. All rights reserved.<BR>
4 
5 
6   This program and the accompanying materials are licensed and made available under
7 
8   the terms and conditions of the BSD License that accompanies this distribution.
9 
10   The full text of the license may be found at
11 
12   http://opensource.org/licenses/bsd-license.php.
13 
14 
15 
16   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
17 
18   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 
20 
21 
22 
23 Module Name:
24 
25     SetupVariable.h
26 
27 Abstract:
28 
29     Driver configuration include file
30 
31 
32 --*/
33 
34 #ifndef _SETUP_VARIABLE_H
35 #define _SETUP_VARIABLE_H
36 
37 //
38 // ---------------------------------------------------------------------------
39 //
40 // Driver Configuration
41 //
42 // ---------------------------------------------------------------------------
43 //
44 
45 //
46 // {EC87D643-EBA4-4bb5-A1E5-3F3E36B20DA9}
47 //
48 #define SYSTEM_CONFIGURATION_GUID\
49   { \
50     0xec87d643, 0xeba4, 0x4bb5, 0xa1, 0xe5, 0x3f, 0x3e, 0x36, 0xb2, 0xd, 0xa9 \
51   }
52 
53 #define ROOT_SECURITY_GUID\
54   { \
55     0xd387d688, 0xeba4, 0x45b5, 0xa1, 0xe5, 0x3f, 0x3e, 0x36, 0xb2, 0xd, 0x37 \
56   }
57 
58 //
59 // {6936B3BD-4350-46d9-8940-1FA20961AEB1}
60 //
61 #define SYSTEM_ROOT_MAIN_GUID\
62   { \
63      0x6936b3bd, 0x4350, 0x46d9, 0x89, 0x40, 0x1f, 0xa2, 0x9, 0x61, 0xae, 0xb1 \
64   }
65 
66 //
67 // {21FEE8DB-0D29-477e-B5A9-96EB343BA99C}
68 //
69 #define ADDITIONAL_SYSTEM_INFO_GUID\
70   { \
71      0x21fee8db, 0xd29, 0x477e, 0xb5, 0xa9, 0x96, 0xeb, 0x34, 0x3b, 0xa9, 0x9c \
72   }
73 
74 #define SETUP_GUID { 0xEC87D643, 0xEBA4, 0x4BB5, 0xA1, 0xE5, 0x3F, 0x3E, 0x36, 0xB2, 0x0D, 0xA9 }
75 
76 // {1B838190-4625-4ead-ABC9-CD5E6AF18FE0}
77 #define EFI_HII_EXPORT_DATABASE_GUID { 0x1b838190, 0x4625, 0x4ead, 0xab, 0xc9, 0xcd, 0x5e, 0x6a, 0xf1, 0x8f, 0xe0 }
78 
79 #define PASSWORD_MAX_SIZE               20
80 
81 #define MAX_CUSTOM_VID_TABLE_STATES 6
82 //
83 // Overclocking Source Defines
84 //
85 #define OVERCLOCK_SOURCE_BIOS       0
86 #define OVERCLOCK_SOURCE_OS         1
87 
88 #define PCH_PCIE_MAX_ROOT_PORTS     4
89 
90 #pragma pack(1)
91 
92 // NOTE: When you add anything to this structure,
93 //   you MUST add it to the very bottom!!!!
94 //   You must make sure the structure size is able to divide by 32!
95 typedef struct {
96 
97   //
98   // Floppy
99   //
100   UINT8         Floppy;
101   UINT8         FloppyLockHide;
102 
103   UINT8         FloppyWriteProtect;
104   UINT8         FloppyWriteProtectLockHide;
105 
106   //
107   // System ports
108   //
109   UINT8         Serial;
110   UINT8         SerialLockHide;
111 
112   UINT8         Serial2;
113   UINT8         Serial2LockHide;
114 
115   UINT8         Parallel;
116   UINT8         ParallelLockHide;
117 
118   UINT8         ParallelMode;
119   UINT8         ParallelModeLockHide;
120 
121   UINT8         AllUsb;
122   UINT8         UsbPortsLockHide;
123 
124   UINT8         Usb2;
125   UINT8         Usb2LockHide;
126 
127   UINT8         UsbLegacy;
128   UINT8         UsbLegacyLockHide;
129 
130   UINT8         Audio;
131   UINT8         AudioLockHide;
132 
133   UINT8         Lan;
134   UINT8         LanLockHide;
135 
136   //
137   // Keyboard
138   //
139   UINT8         Numlock;
140   UINT8         NumlockLockHide;
141 
142   //
143   // ECIR
144   //
145   UINT8         ECIR;
146   UINT8         ECIRLockHide;
147 
148   //
149   // Power State
150   //
151   UINT8         PowerState;
152   UINT8         PowerStateLockHide;
153 
154   //
155   // Wake on RTC variables
156   //
157   UINT8         WakeOnRtcS5;
158   UINT8         WakeOnRtcS5LockHide;
159   UINT8         RTCWakeupDate;
160   UINT8         RTCWakeupDateLockHide;
161   UINT8         RTCWakeupTimeHour;
162   UINT8         RTCWakeupHourLockHide;
163   UINT8         RTCWakeupTimeMinute;
164   UINT8         RTCWakeupMinuteLockHide;
165   UINT8         RTCWakeupTimeSecond;
166   UINT8         RTCWakeupSecondLockHide;
167 
168   //
169   // Wake On Lan
170   //
171   UINT8         WakeOnLanS5;
172   UINT8         WakeOnLanS5LockHide;
173 
174   //Spread spectrum
175   UINT8         SpreadSpectrum;
176 
177   //
178   // Boot Order
179   //
180   UINT8         BootOrder[8];
181   UINT8         BootOrderLockHide;
182 
183   //
184   // Hard Drive Boot Order
185   //
186   UINT8         HardDriveBootOrder[8];
187   UINT8         HardDriveBootOrderLockHide;
188 
189   //
190   // CD Drive Boot Order
191   //
192   UINT8         CdDriveBootOrder[4];
193   UINT8         CdDriveBootOrderLockHide;
194 
195   //
196   // FDD Drive Boot Order
197   //
198   UINT8         FddDriveBootOrder[4];
199   UINT8         FddDriveBootOrderLockHide;
200 
201   //
202   // Drive Boot Order
203   //
204   UINT8         DriveBootOrder[16];
205   UINT8         DriveBootOrderLockHide;
206 
207   //
208   // Boot Menu Type
209   //
210   UINT8         BootMenuType;
211   UINT8         BootMenuTypeLockHide;
212 
213   //
214   // Boot from Removable Devices
215   //
216   UINT8         BootFloppy;
217   UINT8         BootFloppyLockHide;
218 
219   //
220   // Boot from Optical Devices
221   //
222   UINT8         BootCd;
223   UINT8         BootCdLockHide;
224 
225   //
226   // Boot from Network
227   //
228   UINT8         BootNetwork;
229   UINT8         BootNetworkLockHide;
230 
231   //
232   // Boot USB
233   //
234   UINT8         BootUsb;
235   UINT8         BootUsbLockHide;
236 
237   //
238   // USB Zip Emulation Type
239   //
240   UINT8         UsbZipEmulation;
241   UINT8         UsbZipEmulationLockHide;
242 
243   //
244   // USB Devices Boot First in Boot Order
245   //
246   UINT8         UsbDevicesBootFirst;
247   UINT8         UsbDevicesBootFirstLockHide;
248 
249   //
250   // USB Boot Device SETUP Emulation
251   //
252   UINT8         UsbSetupDeviceEmulation;
253   UINT8         UsbSetupDeviceEmulationLockHide;
254 
255   //
256   // BIOS INT13 Emulation for USB Mass Devices
257   //
258   UINT8         UsbBIOSINT13DeviceEmulation;
259   UINT8         UsbBIOSINT13DeviceEmulationLockHide;
260 
261   //
262   // BIOS INT13 Emulation Size for USB Mass Devices
263   //
264   UINT16        UsbBIOSINT13DeviceEmulationSize;
265   UINT8         UsbBIOSINT13DeviceEmulationSizeLockHide;
266 
267   //
268   // Dummy place holder to prevent VFR compiler problem.
269   //
270   UINT16        DummyDataForVfrBug;  // Don't change or use.
271 
272   //
273   // Language Select
274   //
275   UINT8         LanguageSelect;
276 
277   //
278   // SATA Type (Ide, Ahci, Raid)
279   //
280   UINT8         SataType;
281   UINT8         SataTypeLockHide;
282   UINT8         SataTestMode;
283 
284   //
285   // Fixed Disk Boot Sector (Fdbs)
286   //
287   UINT8         Fdbs;
288   UINT8         FdbsLockHide;
289 
290   //
291   // DisplaySetupPrompt
292   //
293   UINT8         DisplaySetupPrompt;
294   UINT8         DisplaySetupPromptLockHide;
295 
296   //
297   // ASF
298   //
299   UINT8         Asf;
300   UINT8         AsfLockHide;
301 
302   //
303   // Event Logging
304   //
305   UINT8         EventLogging;
306   UINT8         EventLoggingLockHide;
307 
308   //
309   // Clear Event Log
310   //
311   UINT8         ClearEvents;
312   UINT8         ClearEventsLockHide;
313 
314   //
315   // Expansion Card Text
316   //
317   UINT8         ExpansionCardText;
318   UINT8         ExpansionCardTextLockHide;
319 
320   //
321   // Video Adaptor
322   //
323   UINT8         PrimaryVideoAdaptor;
324   UINT8         PrimaryVideoAdaptorLockHide;
325 
326   //
327   // Chassis intrusion
328   //
329   UINT8         IntruderDetection;
330   UINT8         IntruderDetectionLockHide;
331 
332   //
333   // User Access Level
334   //
335   UINT8         UserPasswordLevel;
336   UINT8         UserPasswordLevelLockHide;
337 
338   //
339   // Maximum FSB Automatic/Disable
340   //
341   UINT8         MaxFsb;
342   UINT8         MaxFsbLockHide;
343 
344   //
345   // Hard Disk Pre-delay
346   //
347   UINT8         HddPredelay;
348   UINT8         HddPredelayLockHide;
349 
350   //
351   // S.M.A.R.T. Mode
352   //
353   UINT8         SmartMode;
354   UINT8         SmartModeLockHide;
355 
356   //
357   // ACPI Suspend State
358   //
359   UINT8         AcpiSuspendState;
360   UINT8         AcpiSuspendStateLockHide;
361 
362   //
363   // PCI Latency Timer
364   //
365   UINT8         PciLatency;
366   UINT8         PciLatencyLockHide;
367 
368   //
369   // Fan Control
370   //
371   UINT8         FanControl;
372   UINT8         FanControlLockHide;
373 
374   //
375   // CPU Fan Control
376   //
377   UINT8         CpuFanControl;
378   UINT8         CpuFanControlLockHide;
379 
380   //
381   // Lowest Fan Speed
382   //
383   UINT8         LowestFanSpeed;
384   UINT8         LowestFanSpeedLockHide;
385 
386   //
387   // Processor (CPU)
388   //
389   UINT8         CpuFlavor;
390 
391   UINT8         CpuidMaxValue;
392   UINT8         CpuidMaxValueLockHide;
393 
394   UINT8         ExecuteDisableBit;
395   UINT8         ExecuteDisableBitLockHide;
396 
397   //
398   // EIST or GV3 setup option
399   //
400   UINT8         ProcessorEistEnable;
401   UINT8         ProcessorEistEnableLockHide;
402 
403   //
404   // C1E Enable
405   //
406   UINT8         ProcessorC1eEnable;
407   UINT8         ProcessorC1eEnableLockHide;
408 
409   //
410   // Enabling CPU C-States of processor
411   //
412   UINT8         ProcessorCcxEnable;
413   UINT8         ProcessorCcxEnableLockHide;
414 
415   //
416   // Package C-State Limit
417   //
418   UINT8         PackageCState;
419   UINT8         PackageCStateLockHide;
420 
421   //
422   // Enable/Disable NHM C3(ACPI C2) report to OS
423   //
424   UINT8         OSC2Report;
425   UINT8         OSC2ReportLockHide;
426 
427   //
428   // Enable/Disable NHM C6(ACPI C3) report to OS
429   //
430   UINT8         C6Enable;
431   UINT8         C6EnableLockHide;
432 
433   //
434   // Enable/Disable NHM C7(ACPI C3) report to OS
435   //
436   UINT8         C7Enable;
437   UINT8         C7EnableLockHide;
438 
439   //
440   // EIST/PSD Function select option
441   //
442   UINT8         ProcessorEistPsdFunc;
443   UINT8         ProcessorEistPsdFuncLockHide;
444 
445   //
446   //
447   //
448   UINT8         CPU00;
449   UINT8         CPU01;
450 
451   //
452   //
453   //
454   UINT8         CPU02;
455   UINT8         CPU03;
456 
457   //
458   //
459   //
460   UINT8         CPU04;
461   UINT8         CPU05;
462 
463   //
464   //
465   //
466   UINT8         CPU06;
467   UINT8         CPU07;
468 
469   //
470   //
471   //
472   UINT8         CPU08;
473   UINT8         CPU09;
474 
475   //
476   //
477   //
478   UINT8         CPU10;
479   UINT8         CPU11;
480 
481   //
482   //
483   //
484   UINT8         CPU12;
485   UINT8         CPU13;
486 
487   //
488   //
489   //
490   UINT8         CPU14;
491   UINT8         CPU15;
492 
493   //
494   //
495   //
496   UINT8         CPU16;
497   UINT8         CPU17;
498 
499   //
500   //
501   //
502   UINT8         CPU18;
503   UINT8         CPU19;
504 
505   //
506   //
507   //
508   UINT8         CPU20;
509   UINT8         CPU21;
510 
511   //
512   //
513   //
514   UINT8         CPU22;
515   UINT8         CPU23;
516 
517   //
518   //
519   //
520   UINT8         CPU24;
521   UINT8         CPU25;
522 
523   //
524   //
525   //
526   UINT8         CPU26;
527   UINT8         CPU27;
528 
529   //
530   //
531   //
532   UINT8         CPU28;
533   UINT8         CPU29;
534 
535   //
536   //
537   //
538   UINT8         CPU30;
539   UINT8         CPU31;
540 
541   //
542   //
543   //
544   UINT8         CPU32;
545   UINT8         CPU33;
546 
547   //
548   //
549   //
550   UINT8         CPU34;
551   UINT8         CPU35;
552 
553   //
554   //
555   //
556   UINT8         CPU36;
557   UINT8         CPU37;
558 
559   //
560   //
561   //
562   UINT8         CPU38;
563   UINT8         CPU39;
564 
565   //
566   //
567   //
568   UINT16        CPU40;
569   UINT8         CPU41;
570 
571   //
572   //
573   //
574   UINT8         CPU42;
575   UINT8         CPU43;
576 
577   //
578   //
579   //
580   UINT16        CPU44;
581   UINT8         CPU45;
582 
583   //
584   //
585   //
586   UINT8         CPU46;
587   UINT8         CPU47;
588 
589   //
590   //
591   //
592   UINT8         CPU48;
593   UINT8         CPU49;
594 
595   //
596   //
597   //
598   UINT8         CPU50;
599   UINT8         CPU51;
600 
601   //
602   //
603   //
604   UINT8         CPU52;
605   UINT8         CPU53;
606 
607   //
608   //
609   //
610   UINT8         CPU54;
611   UINT8         CPU55;
612 
613   //
614   //
615   //
616   UINT8         CPU56;
617   UINT8         CPU57;
618 
619   //
620   //
621   //
622   UINT8         CPU58;
623   UINT8         CPU59;
624 
625   //
626   //
627   //
628   UINT8         CPU60;
629   UINT8         CPU61;
630 
631   //
632   //
633   //
634   UINT8         CPU62;
635   UINT8         CPU63;
636 
637   //
638   //
639   //
640   UINT8         CPU64;
641   UINT8         CPU65;
642 
643   //
644   //
645   //
646   UINT8         CPU66;
647   UINT8         CPU67;
648 
649   //
650   //
651   //
652   UINT16        CPU68;
653   UINT8         CPU69;
654 
655   //
656   //
657   //
658   UINT16        CPU70;
659 
660   //
661   //
662   //
663   UINT8         CPU71;
664 
665   //
666   //
667   //
668   UINT8         MEM00;
669   UINT8         MEM01;
670 
671   //
672   //
673   //
674   UINT8         MEM02;
675   UINT8         MEM03;
676 
677   UINT16        MEM04;
678   UINT8         MEM05;
679 
680   UINT8         MEM06;
681   UINT8         MEM07;
682 
683   UINT8         MEM08;
684   UINT8         MEM09;
685 
686   UINT8         MEM10;
687   UINT8         MEM11;
688 
689   UINT8         MEM12;
690   UINT8         MEM13;
691 
692   UINT8         MEM14;
693   UINT8         MEM15;
694 
695   UINT8         MEM16;
696   UINT8         MEM17;
697 
698   UINT16        MEM18;
699   UINT8         MEM19;
700 
701   UINT8         MEM20;
702   UINT8         MEM21;
703 
704   UINT8         MEM22;
705   UINT8         MEM23;
706 
707   UINT8         MEM24;
708   UINT8         MEM25;
709 
710   UINT8         MEM26;
711   UINT8         MEM27;
712 
713   UINT8         MEM28;
714   UINT8         MEM29;
715 
716   UINT8         MEM30;
717   UINT8         MEM31;
718 
719   UINT8         MEM32;
720   UINT8         MEM33;
721 
722   UINT8         MEM34;
723   UINT8         MEM35;
724 
725   //
726   //
727   //
728   UINT8         MEM36;
729   UINT8         MEM37;
730   UINT8         MEM38;
731   UINT8         MEM39;
732 
733   //
734   //
735   //
736   UINT8         MEM40;
737   UINT8         MEM41;
738   UINT8         MEM42;
739   UINT8         MEM43;
740   UINT8         MEM44;
741   UINT8         MEM45;
742   UINT8         MEM46;
743   UINT8         MEM47;
744 
745 
746   //
747   // Port 80 decode 0/1 - PCI/LPC
748   UINT8         Port80Route;
749   UINT8         Port80RouteLockHide;
750 
751   //
752   // ECC Event Logging
753   //
754   UINT8         EccEventLogging;
755   UINT8         EccEventLoggingLockHide;
756 
757   //
758   // TPM Enable/Disable
759   //
760   UINT8         ETpm;
761 
762   //
763   // TPM question  0 = Disabled, 1 = Enabled
764   //
765   UINT8         ETpmClear;
766 
767   //
768   // Secondary SATA Controller question  0 = Disabled, 1 = Enabled
769   //
770   UINT8         ExtSata;
771   UINT8         ExtSataLockHide;
772 
773   //
774   // Mode selection for Secondary SATA Controller (0=IDE, 1=RAID)
775   //
776   UINT8         ExtSataMode;
777   UINT8         ExtSataModeLockHide;
778 
779   //
780   // LT Technology 0/1 -> Disable/Enable
781   //
782   UINT8         LtTechnology;
783   UINT8         LtTechnologyLockHide;
784 
785   //
786   // HPET Support 0/1 -> Disable/Enable
787   //
788   UINT8         Hpet;
789   UINT8         HpetLockHide;
790 
791   //
792   // ICH Function Level Reset enable/disable
793   //
794   UINT8         FlrCapability;
795   UINT8         FlrCapabilityLockHide;
796 
797   // VT-d Option
798   UINT8         VTdSupport;
799   UINT8         VTdSupportLockHide;
800 
801   UINT8         InterruptRemap;
802   UINT8         InterruptRemapLockHide;
803 
804   UINT8         Isoc;
805   UINT8         IsocLockHide;
806 
807   UINT8         CoherencySupport;
808   UINT8         CoherencySupportLockHide;
809 
810   UINT8         ATS;
811   UINT8         ATSLockHide;
812 
813   UINT8         PassThroughDma;
814   UINT8         PassThroughDmaLockHide;
815 
816   //
817   // IGD option
818   //
819   UINT8         GraphicsDriverMemorySize;
820   UINT8         GraphicsDriverMemorySizeLockHide;
821 
822 
823   //
824   // Discrete SATA Type (Ide, Raid, Ahci)
825   //
826   UINT8         ExtSataMode2;
827   UINT8         ExtSataMode2LockHide;
828 
829   UINT8         ProcessorReserve00;
830   UINT8         ProcessorReserve01;
831 
832   //
833   // IGD Aperture Size question
834   //
835   UINT8         IgdApertureSize;
836   UINT8         IgdApertureSizeLockHide;
837 
838   //
839   // Boot Display Device
840   //
841   UINT8         BootDisplayDevice;
842   UINT8         BootDisplayDeviceLockHide;
843 
844 
845   //
846   // System fan speed duty cycle
847   //
848   UINT8         SystemFanDuty;
849   UINT8         SystemFanDutyLockHide;
850 
851 
852   //
853   // S3 state LED indicator
854   //
855   UINT8         S3StateIndicator;
856   UINT8         S3StateIndicatorLockHide;
857 
858   //
859   // S1 state LED indicator
860   //
861   UINT8         S1StateIndicator;
862   UINT8         S1StateIndicatorLockHide;
863 
864   //
865   // PS/2 Wake from S5
866   //
867   UINT8         WakeOnS5Keyboard;
868   UINT8         WakeOnS5KeyboardLockHide;
869 
870 
871   //
872   // SATA Controller question  0 = Disabled, 1 = Enabled
873   //
874   UINT8         Sata;
875   UINT8         SataLockHide;
876 
877   //
878   // PS2 port
879   //
880   UINT8         PS2;
881 
882   //
883   // No VideoBeep
884   //
885   UINT8         NoVideoBeepEnable;
886 
887   //
888   // Integrated Graphics Device
889   //
890   UINT8         Igd;
891 
892   //
893   // Video Device select order
894   //
895   UINT8         VideoSelectOrder[8];
896 
897   // Flash update sleep delay
898   UINT8         FlashSleepDelay;
899   UINT8         FlashSleepDelayLockHide;
900 
901   //
902   // Boot Display Device2
903   //
904   UINT8         BootDisplayDevice2;
905   UINT8         BootDisplayDevice2LockHide;
906 
907   //
908   // Flat Panel
909   //
910   UINT8         EdpInterfaceType;
911   UINT8         EdpInterfaceTypeLockHide;
912 
913   UINT8         LvdsInterfaceType;
914   UINT8         LvdsInterfaceTypeLockHide;
915 
916   UINT8         ColorDepth;
917   UINT8         ColorDepthLockHide;
918 
919   UINT8         EdidConfiguration;
920   UINT8         EdidConfigurationLockHide;
921 
922   UINT8         PwmReserved;
923   UINT8         MaxInverterPWMLockHide;
924 
925   UINT8         PreDefinedEdidConfiguration;
926   UINT8         PreDefinedEdidConfigurationLockHide;
927 
928   UINT16        ScreenBrightnessResponseTime;
929   UINT8         ScreenBrightnessResponseTimeLockHide;
930 
931   UINT8         Serial3;
932   UINT8         Serial3LockHide;
933 
934   UINT8         Serial4;
935   UINT8         Serial4LockHide;
936 
937   UINT8         CurrentSetupProfile;
938   UINT8         CurrentSetupProfileLockHide;
939 
940   //
941   // FSC system Variable
942   //
943   UINT8         CPUFanUsage;
944   UINT8         CPUFanUsageLockHide;
945   UINT16        CPUUnderSpeedthreshold;
946   UINT8         CPUUnderSpeedthresholdLockHide;
947   UINT8         CPUFanControlMode;
948   UINT8         CPUFanControlModeLockHide;
949   UINT16        Voltage12UnderVolts;
950   UINT8         Voltage12UnderVoltsLockHide;
951   UINT16        Voltage12OverVolts;
952   UINT8         Voltage12OverVoltsLockHide;
953   UINT16        Voltage5UnderVolts;
954   UINT8         Voltage5UnderVoltsLockHide;
955   UINT16        Voltage5OverVolts;
956   UINT8         Voltage5OverVoltsLockHide;
957   UINT16        Voltage3p3UnderVolts;
958   UINT8         Voltage3p3UnderVoltsLockHide;
959   UINT16        Voltage3p3OverVolts;
960   UINT8         Voltage3p3OverVoltsLockHide;
961   UINT16        Voltage2p5UnderVolts;
962   UINT8         Voltage2p5UnderVoltsLockHide;
963   UINT16        Voltage2p5OverVolts;
964   UINT8         Voltage2p5OverVoltsLockHide;
965   UINT16        VoltageVccpUnderVolts;
966   UINT8         VoltageVccpUnderVoltsLockHide;
967   UINT16        VoltageVccpOverVolts;
968   UINT8         VoltageVccpOverVoltsLockHide;
969   UINT16        Voltage5BackupUnderVolts;
970   UINT8         Voltage5BackupUnderVoltsLockHide;
971   UINT16        Voltage5BackupOverVolts;
972   UINT8         Voltage5BackupOverVoltsLockHide;
973   UINT16        VS3p3StbyUnderVolt;
974   UINT8         VS3p3StbyUnderVoltLockHide;
975   UINT16        VS3p3StbyOverVolt;
976   UINT8         VS3p3StbyOverVoltLockHide;
977   UINT8         CPUFanMinDutyCycle;
978   UINT8         CPUFanMinDutyCycleLockHide;
979   UINT8         CPUFanMaxDutyCycle;
980   UINT8         CPUFanMaxDutyCycleLockHide;
981   UINT8         CPUFanOnDutyCycle;
982   UINT8         CPUFanOnDutyCycleLockHide;
983   UINT16        CpuOverTemp;
984   UINT8         CpuOverTempLockHide;
985   UINT16        CpuControlTemp;
986   UINT8         CpuControlTempLockHide;
987   UINT16        CpuAllOnTemp;
988   UINT8         CpuAllOnTempLockHide;
989   UINT8         CpuResponsiveness;
990   UINT8         CpuResponsivenessLockHide;
991   UINT8         CpuDamping;
992   UINT8         CpuDampingLockHide;
993   UINT16        PchOverTemp;
994   UINT8         PchOverTempLockHide;
995   UINT16        PchControlTemp;
996   UINT8         PchControlTempLockHide;
997   UINT16        PchAllOnTemp;
998   UINT8         PchAllOnTempLockHide;
999   UINT8         PchResponsiveness;
1000   UINT8         PchResponsivenessLockHide;
1001   UINT8         PchDamping;
1002   UINT8         PchDampingLockHide;
1003   UINT16        MemoryOverTemp;
1004   UINT8         MemoryOverTempLockHide;
1005   UINT16        MemoryControlTemp;
1006   UINT8         MemoryControlTempLockHide;
1007   UINT16        MemoryAllOnTemp;
1008   UINT8         MemoryAllOnTempLockHide;
1009   UINT8         MemoryResponsiveness;
1010   UINT8         MemoryResponsivenessLockHide;
1011   UINT8         MemoryDamping;
1012   UINT8         MemoryDampingLockHide;
1013   UINT16        VROverTemp;
1014   UINT8         VROverTempLockHide;
1015   UINT16        VRControlTemp;
1016   UINT8         VRControlTempLockHide;
1017   UINT16        VRAllOnTemp;
1018   UINT8         VRAllOnTempLockHide;
1019   UINT8         VRResponsiveness;
1020   UINT8         VRResponsivenessLockHide;
1021   UINT8         VRDamping;
1022   UINT8         VRDampingLockHide;
1023 
1024   UINT8         LvdsBrightnessSteps;
1025   UINT8         LvdsBrightnessStepsLockHide;
1026   UINT8         EdpDataRate;
1027   UINT8         EdpDataRateLockHide;
1028   UINT16        LvdsPowerOnToBacklightEnableDelayTime;
1029   UINT8         LvdsPowerOnToBacklightEnableDelayTimeLockHide;
1030   UINT16        LvdsPowerOnDelayTime;
1031   UINT8         LvdsPowerOnDelayTimeLockHide;
1032   UINT16        LvdsBacklightOffToPowerDownDelayTime;
1033   UINT8         LvdsBacklightOffToPowerDownDelayTimeLockHide;
1034   UINT16        LvdsPowerDownDelayTime;
1035   UINT8         LvdsPowerDownDelayTimeLockHide;
1036   UINT16        LvdsPowerCycleDelayTime;
1037   UINT8         LvdsPowerCycleDelayTimeLockHide;
1038 
1039   UINT8         IgdFlatPanel;
1040   UINT8         IgdFlatPanelLockHide;
1041   UINT8         Lan2;
1042   UINT8         Lan2LockHide;
1043 
1044   UINT8         SwapMode;
1045   UINT8         SwapModeLockHide;
1046 
1047   UINT8         Sata0HotPlugCap;
1048   UINT8         Sata0HotPlugCapLockHide;
1049   UINT8         Sata1HotPlugCap;
1050   UINT8         Sata1HotPlugCapLockHide;
1051 
1052   UINT8         UsbCharging;
1053   UINT8         UsbChargingLockHide;
1054 
1055   UINT8         Cstates;
1056   UINT8         EnableC4;
1057   UINT8         EnableC6;
1058 
1059   UINT8          FastBoot;
1060   UINT8          EfiNetworkSupport;
1061   UINT8          PxeRom;
1062 
1063   //Add for PpmPlatformPlicy
1064   UINT8          PPM00;
1065   UINT8          PPM01;
1066   UINT8          PPM02;
1067   UINT8          PPM03;
1068   UINT8          PPM04;
1069   UINT8          PPM05;
1070   UINT8          PPM06;
1071   UINT8          PPM07;
1072   UINT8          PPM08;
1073   UINT8          PPM09;
1074   UINT8          PPM10;
1075   UINT8          QuietBoot;
1076   UINT8          LegacyUSBBooting;
1077 
1078   UINT8          PwmReserved02;
1079   //
1080   // Thermal Policy Values
1081   //
1082   UINT8           EnableDigitalThermalSensor;
1083   UINT8           PassiveThermalTripPoint;
1084   UINT8           PassiveTc1Value;
1085   UINT8           PassiveTc2Value;
1086   UINT8           PassiveTspValue;
1087   UINT8           DisableActiveTripPoints;
1088   UINT8           CriticalThermalTripPoint;
1089   UINT8           IchPciExp[4];
1090   UINT8           DeepStandby;
1091   UINT8           AlsEnable;
1092   UINT8           IgdLcdIBia;
1093   UINT8           LogBootTime;
1094 
1095 
1096   UINT8           PcieRootPortIOApic[4];
1097   UINT8           IffsEnable;
1098   UINT8           IffsOnS3RtcWake;
1099   UINT8           IffsS3WakeTimerMin;
1100   UINT8           IffsOnS3CritBattWake;
1101   UINT8           IffsCritBattWakeThreshold;
1102   UINT8           ScramblerSupport;
1103   UINT8           SecureBoot;
1104   UINT8           SecureBootCustomMode;
1105   UINT8           SecureBootUserPhysicalPresent;
1106   UINT8           CoreFreMultipSelect;
1107   UINT8           MaxCState;
1108   UINT8           PanelScaling;
1109   UINT8           IgdLcdIGmchBlc;
1110   UINT8           GfxBoost;
1111   UINT8           IgdThermal;
1112   UINT8           SEC00;
1113   UINT8           fTPM;
1114   UINT8           SEC02;
1115   UINT8           SEC03;
1116   UINT8           MeasuredBootEnable;
1117   UINT8           UseProductKey;
1118   //Image Signal Processor PCI Device Configuration
1119   //
1120   UINT8         ISPDevSel;
1121   UINT8         ISPEn;
1122   // Passwords
1123   UINT16          UserPassword[PASSWORD_MAX_SIZE];
1124   UINT16          AdminPassword[PASSWORD_MAX_SIZE];
1125   UINT8           Tdt;
1126   UINT8           Recovery;
1127   UINT8           Suspend;
1128   UINT8           TdtState;
1129   UINT8           TdtEnrolled;
1130   UINT8           PBAEnable;
1131 
1132   UINT8           HpetBootTime;
1133   UINT8           UsbDebug;
1134   UINT8           Lpe;
1135   //
1136   // LPSS Configuration
1137   //
1138   UINT8           LpssPciModeEnabled;
1139   //Scc
1140   UINT8           LpsseMMCEnabled;
1141   UINT8           LpssSdioEnabled;
1142   UINT8           LpssSdcardEnabled;
1143   UINT8           LpssSdCardSDR25Enabled;
1144   UINT8           LpssSdCardDDR50Enabled;
1145   UINT8           LpssMipiHsi;
1146   UINT8           LpsseMMC45Enabled;
1147   UINT8           LpsseMMC45DDR50Enabled;
1148   UINT8           LpsseMMC45HS200Enabled;
1149   UINT8           LpsseMMC45RetuneTimerValue;
1150   UINT8           eMMCBootMode;
1151 
1152   //LPSS2
1153   UINT8           LpssDma1Enabled;
1154   UINT8           LpssI2C0Enabled;
1155   UINT8           LpssI2C1Enabled;
1156   UINT8           LpssI2C2Enabled;
1157   UINT8           LpssI2C3Enabled;
1158   UINT8           LpssI2C4Enabled;
1159   UINT8           LpssI2C5Enabled;
1160   UINT8           LpssI2C6Enabled;
1161   //LPSS1
1162   UINT8           LpssDma0Enabled;
1163   UINT8           LpssPwm0Enabled;
1164   UINT8           LpssPwm1Enabled;
1165   UINT8           LpssHsuart0Enabled;
1166   UINT8           LpssHsuart1Enabled;
1167   UINT8           LpssSpiEnabled;
1168   UINT8           I2CTouchAd;
1169 
1170   UINT8   GTTSize;
1171   //
1172   // DVMT5.0 Graphic memory setting
1173   //
1174   UINT8   IgdDvmt50PreAlloc;
1175   UINT8   IgdDvmt50TotalAlloc;
1176   UINT8   IgdTurboEnabled;
1177 
1178   //
1179   // Usb Config
1180   //
1181   UINT8   UsbAutoMode;       // PCH controller Auto mode
1182   UINT8   UsbXhciSupport;
1183   UINT8   Hsic0;
1184   UINT8   PchUsb30Mode;
1185   UINT8   PchUsb30Streams;
1186   UINT8   PchUsb20;
1187   UINT8   PchUsbPerPortCtl;
1188   UINT8   PchUsbPort[8];
1189   UINT8   PchUsbRmh;
1190   UINT8   PchUsbOtg;
1191   UINT8   PchUsbVbusOn;       //OTG VBUS control
1192   UINT8   PchFSAOn;       //FSA control
1193   UINT8   EhciPllCfgEnable;
1194 
1195 
1196   //Gbe
1197   UINT8         PcieRootPortSpeed[PCH_PCIE_MAX_ROOT_PORTS];
1198   UINT8   SlpLanLowDc;
1199 
1200   UINT8   ISCT00;
1201   UINT8   ISCT01;
1202   UINT8   ISCT02;
1203   UINT8   ISCT03;
1204   UINT8	  ISCT04;
1205   UINT8	  ISCT05;
1206   UINT8	  ISCT06;
1207   UINT8	  ISCT07;
1208   //
1209   // Azalia Configuration
1210   //
1211   UINT8   PchAzalia;
1212   UINT8   AzaliaVCiEnable;
1213   UINT8   AzaliaDs;
1214   UINT8   AzaliaPme;
1215   UINT8   HdmiCodec;
1216 
1217   UINT8   UartInterface;
1218   UINT8   PcuUart1;
1219   //UINT8   PcuUart2;//for A0
1220   UINT8   StateAfterG3;
1221   UINT8   EnableClockSpreadSpec;
1222   UINT8   GraphicReserve00;
1223   UINT8   GOPEnable;
1224   UINT8   GOPBrightnessLevel;                     //Gop Brightness level
1225   UINT8   PavpMode;
1226   UINT8   SEC04;
1227   UINT8   SEC05;
1228   UINT8   SEC06;
1229   UINT8   SEC07;
1230 
1231   UINT8   HdmiCodecPortB;
1232   UINT8   HdmiCodecPortC;
1233   UINT8   HdmiCodecPortD;
1234   UINT8   LidStatus;
1235   UINT8   Reserved00;
1236   UINT8   Reserved01;
1237   UINT16  Reserved02;
1238   UINT16  Reserved03;
1239   UINT16  Reserved04;
1240   UINT16  Reserved05;
1241   UINT16  Reserved06;
1242   UINT16  Reserved07;
1243   UINT16  Reserved08;
1244   UINT16  Reserved09;
1245   UINT16  Reserved0A;
1246   UINT16  Reserved0B;
1247   UINT16  Reserved0C;
1248   UINT16  Reserved0D;
1249   UINT8   Reserved0E;
1250   UINT8   Reserved0F;
1251   UINT32  Reserved10;
1252   UINT32  Reserved11;
1253   UINT32  Reserved12;
1254   UINT32  Reserved13;
1255   UINT32  Reserved14;
1256   UINT8   Reserved15;
1257   UINT8   Reserved16;
1258   UINT8   Reserved17;
1259   UINT8   Reserved18;
1260   UINT8   Reserved19;
1261   UINT8   Reserved1A;
1262   UINT8   Reserved1B;
1263   UINT8   Reserved1C;
1264   UINT8   Reserved1D;
1265   UINT8   Reserved1E;
1266   UINT8   Reserved1F;
1267   UINT8   Reserved20;
1268   UINT8   PmicEnable;
1269   UINT8   IdleReserve;
1270   UINT8   TSEGSizeSel;
1271   UINT8   ACPIMemDbg;
1272   UINT8	  ExISupport;
1273   UINT8   BatteryChargingSolution;                 //0-non ULPMC 1-ULPMC
1274   UINT8   PnpSettings;
1275   UINT8   CfioPnpSettings;
1276   UINT8   PchEhciDebug;
1277   UINT8   CRIDSettings;
1278   UINT8   ULPMCFWLock;
1279   UINT8   SpiRwProtect;
1280   UINT8   GraphicReserve02;
1281   UINT8   PDMConfig;
1282   UINT16  LmMemSize;
1283   UINT8   PunitBIOSConfig;
1284   UINT8   LpssSdioMode;
1285   UINT8   ENDBG2;
1286   UINT8   WittEnable;
1287   UINT8   UtsEnable;
1288   UINT8   TristateLpc;
1289   UINT8   GraphicReserve05;
1290   UINT8   UsbXhciLpmSupport;
1291   UINT8   EnableAESNI;
1292   UINT8   SecureErase;
1293 
1294   UINT8   MmioSize;
1295 
1296 
1297   UINT8   SAR1;
1298 
1299   UINT8   DisableCodec262;
1300   UINT8   ReservedO;
1301   UINT8   PcieDynamicGating;        // Need PMC enable it first from PMC 0x3_12 MCU 318.
1302 
1303   UINT8   MipiDsi;
1304 
1305   //Added flow control item for UART1 and UART2
1306   UINT8  LpssHsuart0FlowControlEnabled;
1307   UINT8  LpssHsuart1FlowControlEnabled;
1308 
1309   UINT8   SdCardRemovable; // ACPI reporting MMC/SD media as: removable/non-removable
1310   UINT8   GpioWakeCapability;
1311   UINT8   RtcBattery;
1312 
1313 } SYSTEM_CONFIGURATION;
1314 #pragma pack()
1315 
1316 #ifndef PLATFORM_SETUP_VARIABLE_NAME
1317 #define PLATFORM_SETUP_VARIABLE_NAME             L"Setup"
1318 #endif
1319 
1320 #pragma pack(1)
1321 typedef struct{
1322   // Passwords
1323   UINT16        UserPassword[PASSWORD_MAX_SIZE];
1324   UINT16        AdminPassword[PASSWORD_MAX_SIZE];
1325   UINT16        DummyDataForVfrBug;  // Don't change or use
1326 
1327 } SYSTEM_PASSWORDS;
1328 #pragma pack()
1329 
1330 //
1331 // #defines for Drive Presence
1332 //
1333 #define EFI_HDD_PRESENT       0x01
1334 #define EFI_HDD_NOT_PRESENT   0x00
1335 #define EFI_CD_PRESENT        0x02
1336 #define EFI_CD_NOT_PRESENT    0x00
1337 
1338 #define EFI_HDD_WARNING_ON    0x01
1339 #define EFI_CD_WARNING_ON     0x02
1340 #define EFI_SMART_WARNING_ON  0x04
1341 #define EFI_HDD_WARNING_OFF   0x00
1342 #define EFI_CD_WARNING_OFF    0x00
1343 #define EFI_SMART_WARNING_OFF 0x00
1344 
1345 #ifndef VFRCOMPILE
1346 extern EFI_GUID gEfiSetupVariableGuid;
1347 #endif
1348 
1349 #define SETUP_DATA SYSTEM_CONFIGURATION
1350 
1351 #endif // #ifndef _SETUP_VARIABLE
1352