From 9a857a4343040f9386dc77de6851697e7ec57264 Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Fri, 23 Dec 2016 14:32:15 +0800 Subject: BroxtonPlatformPkg: Add PlatformSetupDxe Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang --- .../PlatformSetupDxe/AcpiSetup.vfi | 92 + .../PlatformSettings/PlatformSetupDxe/Boot.vfi | 96 + .../PlatformSetupDxe/Configuration.h | 74 + .../PlatformSettings/PlatformSetupDxe/Cpu.vfi | 132 + .../PlatformSettings/PlatformSetupDxe/CpuPower.vfi | 217 ++ .../PlatformSetupDxe/DebugConfig.vfi | 209 ++ .../PlatformSetupDxe/DptfPolicy.vfi | 69 + .../PlatformSetupDxe/FwVersionStrings.uni | Bin 0 -> 4222 bytes .../PlatformSettings/PlatformSetupDxe/Main.vfi | 333 ++ .../PlatformSetupDxe/PlatformSetupDxe.c | 879 ++++++ .../PlatformSetupDxe/PlatformSetupDxe.h | 95 + .../PlatformSetupDxe/PlatformSetupDxe.inf | 157 + .../PlatformSettings/PlatformSetupDxe/RtD3.vfi | 201 ++ .../PlatformSettings/PlatformSetupDxe/Security.vfi | 176 ++ .../PlatformSetupDxe/SetupFunctions.c | 69 + .../PlatformSetupDxe/SetupInfoRecords.c | 1894 ++++++++++++ .../PlatformSetupDxe/SetupPrivate.h | 127 + .../PlatformSetupDxe/SouthClusterConfig.vfi | 3198 ++++++++++++++++++++ .../PlatformSetupDxe/SystemComponent.vfi | 127 + .../PlatformSettings/PlatformSetupDxe/Thermal.vfi | 819 +++++ .../PlatformSettings/PlatformSetupDxe/UnCore.vfi | 325 ++ .../PlatformSettings/PlatformSetupDxe/UqiList.uni | Bin 0 -> 126596 bytes .../PlatformSettings/PlatformSetupDxe/Vfr.vfr | 121 + .../PlatformSetupDxe/VfrStrings.uni | Bin 0 -> 315770 bytes 24 files changed, 9410 insertions(+) create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/AcpiSetup.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Boot.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Configuration.h create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Cpu.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/CpuPower.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DebugConfig.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DptfPolicy.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/FwVersionStrings.uni create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Main.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.c create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.h create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.inf create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/RtD3.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Security.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupFunctions.c create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupInfoRecords.c create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupPrivate.h create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Thermal.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UnCore.vfi create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UqiList.uni create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Vfr.vfr create mode 100644 Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/VfrStrings.uni (limited to 'Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe') diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/AcpiSetup.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/AcpiSetup.vfi new file mode 100644 index 0000000000..6d918be3a6 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/AcpiSetup.vfi @@ -0,0 +1,92 @@ +// /** @file +// ACPI Setup formset. +// +// Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = ACPI_SETUP_FORM_ID, + title = STRING_TOKEN(STR_ACPI_SETUP_TITLE); + + suppressif ideqval SETUP_DATA.PcieRootPortEn[OFFSET_0] == 0x0; + oneof varid = SETUP_DATA.PciExpNative, + prompt = STRING_TOKEN(STR_ACPI_PCIE_NATIVE_PROMPT), + help = STRING_TOKEN(STR_ACPI_PCIE_NATIVE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; // suppressif + + suppressif ideqval SETUP_DATA.PciExpNative == 0x0; + oneof varid = SETUP_DATA.NativeAspmEnable, + prompt = STRING_TOKEN(STR_NATIVE_ASPM_PROMPT), + help = STRING_TOKEN(STR_NATIVE_ASPM_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | RESET_REQUIRED; + endoneof; + endif; // suppressif + + oneof varid = SETUP_DATA.IrmtConfiguration, + prompt = STRING_TOKEN(STR_IRMT), + help = STRING_TOKEN(STR_IRMT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LowPowerS0Idle, + prompt = STRING_TOKEN(STR_LOW_POWER_S0_IDLE), + help = STRING_TOKEN(STR_LOW_POWER_S0_IDLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval SETUP_DATA.LowPowerS0Idle == 1; + oneof varid = SETUP_DATA.TenSecondPowerButtonEnable, + prompt = STRING_TOKEN(STR_10SEC_POWER_BUTTON_ENABLE), + help = STRING_TOKEN(STR_10SEC_POWER_BUTTON_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.PciDelayOptimizationEcr, + prompt = STRING_TOKEN(STR_PCI_DELAY_OPTIMIZATION_ECR), + help = STRING_TOKEN(STR_PCI_DELAY_OPTIMIZATION_ECR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; // suppressif + + oneof varid = SETUP_DATA.CSNotifyEC, + prompt = STRING_TOKEN(STR_NOTIFY_EC), + help = STRING_TOKEN(STR_NOTIFY_EC_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval SETUP_DATA.CSNotifyEC == 1; + oneof varid = SETUP_DATA.CSDebugLightEC, + prompt = STRING_TOKEN(STR_DEBUG_LT_EC), + help = STRING_TOKEN(STR_DEBUG_LT_EC_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.EcLowPowerMode, + prompt = STRING_TOKEN(STR_EC_LOWPOWER_MODE), + help = STRING_TOKEN(STR_EC_LOWPOWER_MODE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; // suppressif + +endform; // ACPI_SETUP_FORM_ID + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Boot.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Boot.vfi new file mode 100644 index 0000000000..ad57c250e9 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Boot.vfi @@ -0,0 +1,96 @@ +// /** @file +// Boot Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = BOOT_CONFIGURATION_FORM_ID, + + title = STRING_TOKEN(STR_BOOT_CONFIGURATION_TITLE); + + suppressif TRUE; + oneof varid = Setup.PlatformSettingEn, + prompt = STRING_TOKEN(STR_PLAT_DEFAULT_PROMPT), + help = STRING_TOKEN(STR_PLAT_DEFAULT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=1, flags=0 | RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.FastBoot, + prompt = STRING_TOKEN(STR_FAST_BOOT_PROMPT), + help = STRING_TOKEN(STR_FAST_BOOT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=1, flags=0 | RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.FastBoot == 0; + oneof varid = Setup.ConInBehavior, + prompt = STRING_TOKEN(STR_FAST_BOOT_CONSOLE_BHVR), + help = STRING_TOKEN(STR_FAST_BOOT_CONIN_BHVR_HELP), + option text = STRING_TOKEN(STR_PS2_CONSOLE), value = 0, flags = DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LASTCONSOLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_WINDOWS_CONSOLE), value = 2, flags = RESET_REQUIRED; + endoneof; + endif; // suppressif + + oneof varid = Setup.SecureBoot, + prompt = STRING_TOKEN(STR_SECURITY_BOOT_PROMPT), + help = STRING_TOKEN(STR_SECURITY_BOOT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=1, flags=0 | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.QuietBoot, + prompt = STRING_TOKEN(STR_QUIETBOOT_PROMPT), + help = STRING_TOKEN(STR_QUIETBOOT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=1, flags=0 | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LogBootTime, + prompt = STRING_TOKEN(STR_LOG_BOOT_TIME_PROMPT), + help = STRING_TOKEN(STR_LOG_BOOT_TIME_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = 0 | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LogBootTime == 0x00; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_LOG_BOOT_TIME_RECORD), + text = STRING_TOKEN(STR_LOG_BOOT_TIME_VALUE), + flags = 0, + key = 0; + endif; + + oneof varid = Setup.EfiNetworkSupport, + prompt = STRING_TOKEN(STR_EFI_NETWORK_CONTROL), + help = STRING_TOKEN(STR_EFI_NETWORK_CONTROL_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTEn, + prompt = STRING_TOKEN(STR_RT_IDI_AGENT_PROMPT), + help = STRING_TOKEN(STR_RT_IDI_AGENT_HELP), + flags = INTERACTIVE, + option text = STRING_TOKEN(STR_RT_IDI_AGENT_DISABLE), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_RT_IDI_AGENT_DID1), value=2, flags=0 | RESET_REQUIRED; + endoneof; + +endform; + + + + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Configuration.h b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Configuration.h new file mode 100644 index 0000000000..aebf47faf1 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Configuration.h @@ -0,0 +1,74 @@ +/** @file + Driver configuration include file. + + Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef _CONFIGURATION_H +#define _CONFIGURATION_H + +// +// System Setup Page. Do not have to be sequential but have to be unique +// +#define ROOT_FORM_ID 1 +#define ROOT_MAIN_FORM_ID 2 +#define CPU_CONFIGURATION_FORM_ID 3 +#define CPU_PWR_CONFIGURATION_FORM_ID 4 +#define BOOT_CONFIGURATION_FORM_ID 5 +#define IGD_FORM_ID 6 +#define SECURITY_CONFIGURATION_FORM_ID 7 +#define SOUTH_CLUSTER_FORM_ID 8 +#define DPTF_FORM_ID 9 +#define PLATFORM_INFORMATION_FORM_ID 10 +#define SATA_CONFIGURATION_ID 11 +#define SENSOR_CONFIGURATION_ID 12 +#define LPSS_OPTIONS_FORM_ID 13 +#define UNCORE_FORM_ID 14 +#define TPM_FORM_ID 15 +#define THERMAL_FORM_ID 16 +#define PASSWORD_SETTING_ID 17 +#define LAN_OPTIONS_FORM_ID 18 +#define HDAUDIO_OPTIONS_FORM_ID 19 +#define MISC_OPTIONS_FORM_ID 20 +#define USB_OPTIONS_FORM_ID 21 +#define PCIE_DEVICE_OPTIONS_FORM_ID 22 +#define SYSTEM_COMPONENT_FORM_ID 23 +#define DEBUG_CONFIGURATION_FORM_ID 24 +#define SCC_OPTIONS_FORM_ID 25 +#define PCIERP1_OPTIONS_FORM_ID 26 +#define PCIERP2_OPTIONS_FORM_ID 27 +#define PCIERP3_OPTIONS_FORM_ID 28 +#define PCIERP4_OPTIONS_FORM_ID 29 +#define PCIERP5_OPTIONS_FORM_ID 30 +#define PCIERP6_OPTIONS_FORM_ID 31 +#define GMM_OPTIONS_FORM_ID 32 +#define ISH_OPTIONS_FORM_ID 33 +#define ACPI_SETUP_FORM_ID 34 +#define PEP_FORM_ID 35 +#define RTD3_FORM_ID 36 +#define DPTF_POLICY_FORM_ID 46 + +#define DEBUG_NPK_FORM_ID 42 + +// +// Other defines +// +#define OFFSET_0 0 +#define OFFSET_1 1 +#define OFFSET_2 2 +#define OFFSET_3 3 +#define OFFSET_4 4 +#define OFFSET_5 5 +#define OFFSET_6 6 +#define OFFSET_7 7 +#endif // #ifndef _CONFIGURATION_H + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Cpu.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Cpu.vfi new file mode 100644 index 0000000000..81c19bcd31 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Cpu.vfi @@ -0,0 +1,132 @@ +// /** @file +// CPU Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = CPU_CONFIGURATION_FORM_ID, + + title = STRING_TOKEN(STR_CPU_CONFIGURATION_TITLE); + + // + // Title on CPU Configuration Page + // + + subtitle text = STRING_TOKEN(STR_CPU_CONFIGURATION_TITLE); + + oneof varid = Setup.EnableProcHot, + prompt = STRING_TOKEN(STR_PROC_HOT_ENABLE), + help = STRING_TOKEN(STR_PROC_HOT_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags =MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ProcessorVmxEnable, + prompt = STRING_TOKEN(STR_VTX2_PROMPT), + help = STRING_TOKEN(STR_VTX2_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags =MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + grayoutif ideqval Setup.IpuEn == 1; + oneof varid = Setup.VTdEnable, + prompt = STRING_TOKEN(STR_VTD_PROMPT), + help = STRING_TOKEN(STR_VTD_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.EnableTm, + prompt = STRING_TOKEN(STR_TM1_PROMPT), + help = STRING_TOKEN(STR_TM1_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.EnableDigitalThermalSensor, + prompt = STRING_TOKEN(STR_DTS_PROMPT), + help = STRING_TOKEN(STR_DTS_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ActiveProcessorCores, + prompt = STRING_TOKEN(STR_ACTIVE_PROCESSOR_CORES_PROMPT), + help = STRING_TOKEN(STR_ACTIVE_PROCESSOR_CORES_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + grayoutif TRUE; + oneof varid = Setup.Core0, + prompt = STRING_TOKEN(STR_ACTIVE_CORE0_DISABLE_PROMPT), + help = STRING_TOKEN(STR_ACTIVE_CORE0_DISABLE_PROMPT_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + endif; + + suppressif ideqval Setup.ActiveProcessorCores == 0 OR ideqval Setup.NumOfProcessors == 2; + oneof varid = Setup.Core1, + prompt = STRING_TOKEN(STR_ACTIVE_CORE1_DISABLE_PROMPT), + help = STRING_TOKEN(STR_ACTIVE_CORE1_DISABLE_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + endif; + + suppressif ideqval Setup.ActiveProcessorCores == 0; + oneof varid = Setup.Core2, + prompt = STRING_TOKEN(STR_ACTIVE_CORE2_DISABLE_PROMPT), + help = STRING_TOKEN(STR_ACTIVE_CORE2_DISABLE_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + endif; + + suppressif ideqval Setup.ActiveProcessorCores == 0 OR ideqval Setup.NumOfProcessors == 2; + oneof varid = Setup.Core3, + prompt = STRING_TOKEN(STR_ACTIVE_CORE3_DISABLE_PROMPT), + help = STRING_TOKEN(STR_ACTIVE_CORE3_DISABLE_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + endif; + + text + help = STRING_TOKEN(STR_PROCESSOR_HT_MODE_HELP), + text = STRING_TOKEN(STR_PROCESSOR_HT_MODE), + text = STRING_TOKEN(STR_CAPABILITY_NOT_SUPPORT), + flags = 0, + key = 0; + + oneof varid = Setup.MonitorMwaitEnable, + prompt = STRING_TOKEN(STR_MONITOR_MWAIT_PROMPT), + help = STRING_TOKEN(STR_MONITOR_MWAIT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO), value = 2, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + // + // Jump to CPU Power Management Form + // + goto CPU_PWR_CONFIGURATION_FORM_ID, + prompt = STRING_TOKEN(STR_CPU_POWERMNG_TITLE), + help = STRING_TOKEN(STR_CPU_POWERMNG_HELP); + +endform; + +#include "CpuPower.vfi" \ No newline at end of file diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/CpuPower.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/CpuPower.vfi new file mode 100644 index 0000000000..e54fc46dd5 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/CpuPower.vfi @@ -0,0 +1,217 @@ +// /** @file +// CPU Power Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = CPU_PWR_CONFIGURATION_FORM_ID, + + title = STRING_TOKEN(STR_CPU_POWERMNG_TITLE); + + subtitle text = STRING_TOKEN(STR_SYSTEM_POWER_OPTIONS); + + oneof varid = Setup.EnableGv, + prompt = STRING_TOKEN(STR_CPU_IST_PROMPT), + help = STRING_TOKEN(STR_CPU_IST_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + //suppressif ideqval Setup.EnableGv == 0; + oneof varid = Setup.BootPState, + prompt = STRING_TOKEN (STR_BOOT_P_STATE), + help = STRING_TOKEN (STR_BOOT_P_STATE_HELP), + option text = STRING_TOKEN (STR_BOOT_P_STATE_MAX), value = 0, flags = MANUFACTURING |DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN (STR_BOOT_P_STATE_MIN), value = 1, flags = RESET_REQUIRED; + endoneof; + //endif; + + suppressif ideqval Setup.EnableGv == 0; + oneof varid = Setup.TurboModeEnable, + prompt = STRING_TOKEN(STR_PROCESSOR_TURBO_MODE), + help = STRING_TOKEN(STR_PROCESSOR_TURBO_MODE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING |DEFAULT | RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.EnableCx, + prompt = STRING_TOKEN(STR_CSTATE_PROMPT), + help = STRING_TOKEN(STR_CSTATE_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING |DEFAULT | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.EnableCx == 0 ; + oneof varid = Setup.EnableCxe, + prompt = STRING_TOKEN(STR_CXE_PROMPT), + help = STRING_TOKEN(STR_CXE_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + disableif ideqval Setup.PmicSetupDefault == 1; + oneof varid = Setup.MaxPkgCState, + prompt = STRING_TOKEN(STR_MAX_PKG_CSTATE_SUPPORT_PROMPT), + help = STRING_TOKEN(STR_MAX_PKG_CSTATE_STATE_SUPPORT_HELP), + option text = STRING_TOKEN(STR_MAX_PKG_CSTATE_C2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_PKG_CSTATE_C1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_PKG_CSTATE_C0), value = 0, flags = RESET_REQUIRED; + endoneof; + endif; + + suppressif NOT ideqval Setup.PmicSetupDefault == 1; + text + help = STRING_TOKEN(STR_MAX_PKG_CSTATE_STATE_SUPPORT_HELP), + text = STRING_TOKEN(STR_MAX_PKG_CSTATE_SUPPORT_PROMPT), + text = STRING_TOKEN(STR_MAX_PKG_CSTATE_C0), + flags = 0, + key = 0; + endif; + + oneof varid = Setup.MaxCoreCState, + prompt = STRING_TOKEN(STR_MAX_CORE_CSTATE_SUPPORT_PROMPT), + help = STRING_TOKEN(STR_MAX_CORE_CSTATE_SUPPORT_HELP), + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_FC), value = 8, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_C10), value = 7, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_C9), value = 6, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_C8), value = 5, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_C7), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_C6), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_C1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MAX_CORE_CSTATE_C0), value = 0, flags = RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.CStateAutoDemotion, + prompt = STRING_TOKEN(STR_CST_AUTO_DEMOTION), + help = STRING_TOKEN(STR_CST_AUTO_DEMOTION_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_C1_AUTO_DEMOTION), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_C3_AUTO_DEMOTION), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_C1_AND_C3_AUTO_DEMOTION), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.CStateUnDemotion, + prompt = STRING_TOKEN(STR_CST_UNDEMOTION), + help = STRING_TOKEN(STR_CST_UNDEMOTION_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_C1_AUTO_DEMOTION), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_C3_AUTO_DEMOTION), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_C1_AND_C3_AUTO_DEMOTION), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PkgCStateDemotion, + prompt = STRING_TOKEN(STR_PKG_CST_DEMOTION), + help = STRING_TOKEN(STR_PKG_CST_DEMOTION), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PkgCStateUnDemotion, + prompt = STRING_TOKEN(STR_PKG_CST_UNDEMOTION), + help = STRING_TOKEN(STR_PKG_CST_UNDEMOTION), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; + + suppressif ideqval Setup.EnableGv == 0; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_STRING), + text = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SHORT_DUR_PWR_LIMIT_STRING), + text = STRING_TOKEN(STR_SHORT_DUR_PWR_LIMIT_VALUE), + flags = 0, + key = 0; + + oneof varid = Setup.PowerLimit1Enable, + prompt = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_SUPPORT_PROMPT), + help = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_SUPPORT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; + + suppressif ideqval Setup.EnableGv == 0 + OR ideqval Setup.PowerLimit1Enable == 0; + oneof varid = Setup.PowerLimit1Clamp, + prompt = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_CLAMP_PROMPT), + help = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_CLAMP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PowerLimit1, + prompt = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_PROMPT), + help = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_HELP), + option text = STRING_TOKEN(STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_6), value = 6, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_7), value = 7, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_8), value = 8, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_9), value = 9, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_10), value = 10, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_11), value = 11, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_12), value = 12, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_13), value = 13, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_14), value = 14, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_15), value = 15, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_16), value = 16, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_17), value = 17, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_18), value = 18, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_19), value = 19, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_20), value = 20, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_21), value = 21, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_22), value = 22, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_23), value = 23, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_24), value = 24, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_25), value = 25, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PowerLimit1Time, + prompt = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_TIME_PROMPT), + help = STRING_TOKEN(STR_LONG_DUR_PWR_LIMIT_TIME_HELP), + option text = STRING_TOKEN(STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_2), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_5), value = 5, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_6), value = 6, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_7), value = 7, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_8), value = 8, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_10), value = 10, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_12), value = 12, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_14), value = 14, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_16), value = 16, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_20), value = 20, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_24), value = 24, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_28), value = 28, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_32), value = 32, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_40), value = 40, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_48), value = 48, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_56), value = 56, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_64), value = 64, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_80), value = 80, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_96), value = 96, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_112), value = 112, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_128), value = 128, flags = RESET_REQUIRED; + endoneof; + endif; + +endform; \ No newline at end of file diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DebugConfig.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DebugConfig.vfi new file mode 100644 index 0000000000..3c79f3b704 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DebugConfig.vfi @@ -0,0 +1,209 @@ +// /** @file +// Debug Configuration formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = DEBUG_CONFIGURATION_FORM_ID, + title = STRING_TOKEN(STR_DEBUG_CONFIGURATION_TITLE); + + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_OSDBG_STRING); + + oneof varid = Setup.OsDbgEnable, + prompt = STRING_TOKEN (STR_OSDBG_PROMPT), + help = STRING_TOKEN (STR_OSDBG_HELP), + option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_APEIBERT_STRING); + oneof varid = Setup.APEIBERT, + prompt = STRING_TOKEN (STR_APEIBERT_PROMPT), + help = STRING_TOKEN (STR_APEIBERT_HELP), + option text = STRING_TOKEN (STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = RESET_REQUIRED; + endoneof; + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_ACPIMEMDBG_STRING); + + oneof varid = Setup.ACPIMemDbg, + prompt = STRING_TOKEN (STR_ACPIMEMDBG_SWTICH), + help = STRING_TOKEN (STR_ACPIMEMDBG_SWTICH_HELP), + option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_TXE_DEBUG_OPTION_STRING); + + oneof varid = SETUP_DATA.SeCEOPEnable, + prompt = STRING_TOKEN(STR_TXE_END_OF_POST_PROMPT), + help = STRING_TOKEN(STR_TXE_END_OF_POST_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.SeCLockDir, + prompt = STRING_TOKEN(STR_TXE_LOCK_DIR_PROMPT), + help = STRING_TOKEN(STR_TXE_LOCK_DIR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_PTT_DEBUG_OPTION_STRING); + + oneof varid = SETUP_DATA.PttSuppressCommandSend, + prompt = STRING_TOKEN(STR_PTT_SUPPRESS_COMMAND_PROMPT), + help = STRING_TOKEN(STR_PTT_SUPPRESS_COMMAND_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_TDO_STRING); + oneof varid = Setup.TDO, + prompt = STRING_TOKEN(STR_TDO_PROMPT), + help = STRING_TOKEN(STR_TDO_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 2, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + oneof varid = Setup.SMRREnable, + prompt = STRING_TOKEN(STR_SMRR), + help = STRING_TOKEN(STR_SMRR_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + oneof varid = Setup.Max2G, + prompt = STRING_TOKEN(STR_MAX_MEM_2G), + help = STRING_TOKEN(STR_MAX_MEM_2G_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + +#ifdef PRAM_SUPPORT + subtitle text = STRING_TOKEN(STR_NULL_STRING); + oneof varid = Setup.Pram, + prompt = STRING_TOKEN (STR_PRAM_PROMPT), + help = STRING_TOKEN (STR_PRAM_HELP), + option text = STRING_TOKEN (STR_PRAM_64MB), value = 0x33, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_PRAM_16MB), value = 0x32, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_PRAM_4MB), value = 0x31, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_DISABLE), value = 0x30, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; +#endif + + + subtitle text = STRING_TOKEN(STR_OS_DNX_STRING); + + oneof varid = Setup.OSDnX, + prompt = STRING_TOKEN (STR_OS_DNX_ENABLE), + help = STRING_TOKEN (STR_OS_DNX_ENABLE_HELP), + option text = STRING_TOKEN (STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.IshI2c0PullUp, + prompt = STRING_TOKEN (STR_ISH_I2C0_GPIO_PULL_ENABLE_PROMPT), + help = STRING_TOKEN (STR_ISH_I2C0_GPIO_PULL_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.IshI2c1PullUp, + prompt = STRING_TOKEN (STR_ISH_I2C1_GPIO_PULL_ENABLE_PROMPT), + help = STRING_TOKEN (STR_ISH_I2C1_GPIO_PULL_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_PROC_TARCE_STRING); + + oneof varid = Setup.ProcTraceMemSize, + prompt = STRING_TOKEN(STR_PROC_TRACE_MEM_SIZE_PROMPT), + help = STRING_TOKEN(STR_PROC_TRACE_MEM_SIZE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0xFF, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_4KB), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_8KB), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_16KB), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_32KB), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_64KB), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_128KB), value = 5, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_256KB), value = 6, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_512KB), value = 7, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_1MB), value = 8, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_2MB), value = 9, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_4MB), value = 10, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_8MB), value = 11, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_16MB), value = 12, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_32MB), value = 13, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_64MB), value = 14, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_128MB), value = 15, flags = RESET_REQUIRED; + endoneof; + + + suppressif ideqval Setup.ProcTraceMemSize == 0xFF; + oneof varid = Setup.ProcTraceEnable, + prompt = STRING_TOKEN(STR_PROC_TRACE_ENABLE_PROMPT), + help = STRING_TOKEN(STR_PROC_TRACE_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLED_STRING), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED_STRING), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ProcTraceOutputScheme, + prompt = STRING_TOKEN(STR_PROC_TRACE_OUTPUT_SCHEME_PROMPT), + help = STRING_TOKEN(STR_PROC_TRACE_OUTPUT_SCHEME_HELP), + option text = STRING_TOKEN(STR_SINGLE_RANGE_OUTPUT), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_TOPA_OUTPUT), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; + +#ifdef CRASHDUMP_SUPPORT + subtitle text = STRING_TOKEN(STR_NULL_STRING); + oneof varid = Setup.CrashDump, + prompt = STRING_TOKEN(STR_CRASHDUMP_PROMPT), + help = STRING_TOKEN(STR_CRASHDUMP_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; +#endif + + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + subtitle text = STRING_TOKEN(STR_DATA_CLEAR_STRING); + text + help = STRING_TOKEN(STR_DATA_CLEAR_HELP), + text = STRING_TOKEN(STR_DATA_CLEAR), + text = STRING_TOKEN(STR_NULL_STRING), + flags = INTERACTIVE, + key = 0x1239; //KEY_DATA_CLEAR_KEYS; + + +endform; + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DptfPolicy.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DptfPolicy.vfi new file mode 100644 index 0000000000..4599e9fb33 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/DptfPolicy.vfi @@ -0,0 +1,69 @@ +// /** @file +// DPTF Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = DPTF_POLICY_FORM_ID, + + title = STRING_TOKEN(STR_DPTF_POLICY_TITLE); + + + subtitle text = STRING_TOKEN(STR_DPTF_POLICY_TITLE); + + oneof varid = SETUP_DATA.EnableActivePolicy, + prompt = STRING_TOKEN(STR_ACTIVE_POLICY_DPTF_PROMPT), + help = STRING_TOKEN(STR_ACTIVE_POLICY_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.EnablePassivePolicy, + prompt = STRING_TOKEN(STR_PASSIVE_POLICY_DPTF_PROMPT), + help = STRING_TOKEN(STR_PASSIVE_POLICY_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PASSIVE_POLICY_10_DPTF_HELP), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PASSIVE_POLICY_20_DPTF_HELP), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnablePassivePolicy == 0; + oneof varid = SETUP_DATA.TrtRevision, + prompt = STRING_TOKEN(STR_TRT_REVISION_OBJECTS), + help = STRING_TOKEN(STR_TRT_REVISION_OBJECTS_HELP), + option text = STRING_TOKEN(STR_TRT_TRADITIONAL),value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_TRT_PRIORITY), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; + + oneof varid = SETUP_DATA.EnableCriticalPolicy, + prompt = STRING_TOKEN(STR_CRITICAL_POLICY_DPTF_PROMPT), + help = STRING_TOKEN(STR_CRITICAL_POLICY_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.EnablePowerBossPolicy, + prompt = STRING_TOKEN(STR_POWER_BOSS_POLICY_DPTF_PROMPT), + help = STRING_TOKEN(STR_POWER_BOSS_POLICY_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.EnableVSPolicy, + prompt = STRING_TOKEN(STR_VS_POLICY_DPTF_PROMPT), + help = STRING_TOKEN(STR_VS_POLICY_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + +endform; \ No newline at end of file diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/FwVersionStrings.uni b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/FwVersionStrings.uni new file mode 100644 index 0000000000..94b4f22eed Binary files /dev/null and b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/FwVersionStrings.uni differ diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Main.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Main.vfi new file mode 100644 index 0000000000..9feeb8b5ae --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Main.vfi @@ -0,0 +1,333 @@ +// /** @file +// Main Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = ROOT_MAIN_FORM_ID, + + title = STRING_TOKEN(STR_MAIN_TITLE); + + subtitle text = STRING_TOKEN(STR_BIOS_INFORMATION_TITLE); + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_IFWI_VERSION_STRING), + text = STRING_TOKEN(STR_IFWI_VERSION_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_ZID_VERSION_STRING), + text = STRING_TOKEN(STR_ZID_VERSION_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_BIOS_VERSION_STRING), + text = STRING_TOKEN(STR_BIOS_VERSION_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_BIOS_VENDOR_STRING), + text = STRING_TOKEN(STR_BIOS_VENDOR_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_CORE_VERSION_STRING), + text = STRING_TOKEN(STR_CORE_VERSION_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_BIOS_BUILD_TIME_STRING), + text = STRING_TOKEN(STR_BIOS_BUILD_TIME_VALUE), + flags = 0, + key = 0; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_PROCESSOR_INFO_STRING); + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_VERSION_STRING), + text = STRING_TOKEN(STR_PROCESSOR_VERSION_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_SPEED_STRING), + text = STRING_TOKEN(STR_PROCESSOR_SPEED_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_ID_STRING), + text = STRING_TOKEN(STR_PROCESSOR_ID_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_MICROCODE_STRING), + text = STRING_TOKEN(STR_PROCESSOR_MICROCODE_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_CORE_STRING), + text = STRING_TOKEN(STR_PROCESSOR_CORE_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_EM64T_CAPABILITY_STRING), + text = STRING_TOKEN(STR_EM64T_CAPABILITY_VALUE), + flags = 0, + key = 0; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + goto PLATFORM_INFORMATION_FORM_ID, + prompt = STRING_TOKEN(STR_PLATFORM_INFORMATION_TITLE), + help = STRING_TOKEN(STR_PLATFORM_INFORMATION_HELP); + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + // + // Date and Time section + // + date year varid = Date.Year, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from + prompt = STRING_TOKEN(STR_DATE_PROMPT), + help = STRING_TOKEN(STR_DATE_YEAR_HELP), + minimum = 2003, + maximum = 2100, + step = 1, + default = 2003, + + month varid = Date.Month, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from + prompt = STRING_TOKEN(STR_DATE_PROMPT), + help = STRING_TOKEN(STR_DATE_MONTH_HELP), + minimum = 1, + maximum = 12, + step = 1, + default = 1, + + day varid = Date.Day, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from + prompt = STRING_TOKEN(STR_DATE_PROMPT), + help = STRING_TOKEN(STR_DATE_DAY_HELP), + minimum = 1, + maximum = 31, + step = 0x1, + default = 1, + + // If the day is 31 AND months is any of the following 2, 4, 6, 9, 11 + inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP), + ideqval Date.Day == 31 + AND + ideqvallist Date.Month == 2 4 6 9 11 + endif + + // If the day is 30 AND month is 2 + inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP), + ideqval Date.Day == 30 + AND + ideqval Date.Month == 2 + endif + + // If the day is 29 AND month is 2 AND it year is NOT a leapyear + inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP), + ideqval Date.Day == 0x29 + AND + ideqval Date.Month == 2 + AND + NOT + ideqvallist Date.Year == 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048 2052 2056 2060 2064 2068 2072 2076 2080 2084 2088 2092 2096 + endif + + enddate; + + time hour varid = Time.Hours, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from + prompt = STRING_TOKEN(STR_TIME_PROMPT), + help = STRING_TOKEN(STR_TIME_HOUR_HELP), + minimum = 0, + maximum = 23, + step = 1, + default = 0, + + minute varid = Time.Minutes, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from + prompt = STRING_TOKEN(STR_TIME_PROMPT), + help = STRING_TOKEN(STR_TIME_MINUTE_HELP), + minimum = 0, + maximum = 59, + step = 1, + default = 0, + + second varid = Time.Seconds, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from + prompt = STRING_TOKEN(STR_TIME_PROMPT), + help = STRING_TOKEN(STR_TIME_SECOND_HELP), + minimum = 0, + maximum = 59, + step = 1, + default = 0, + endtime; + +endform; + +form formid = PLATFORM_INFORMATION_FORM_ID, + + title = STRING_TOKEN(STR_PLATFORM_INFORMATION_TITLE); + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_PLATFORM_FIRMWARE_STRING); + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SOC_STRING), + text = STRING_TOKEN(STR_SOC_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_MRC_VERSION_STRING), + text = STRING_TOKEN(STR_MRC_VERSION_VALUE), + flags = 0, + key = 0; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PUNIT_FW_STRING), + text = STRING_TOKEN(STR_PUNIT_FW_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PMC_FW_STRING), + text = STRING_TOKEN(STR_PMC_FW_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_KSC_FW_STRING), + text = STRING_TOKEN(STR_KSC_FW_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_TXE_FW_STRING), + text = STRING_TOKEN(STR_TXE_FW_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_ISH_FW_STRING), + text = STRING_TOKEN(STR_ISH_FW_VALUE), + flags = 0, + key = 0; + + suppressif ideqval Setup.GOPEnable == 0; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_GOP_STRING), + text = STRING_TOKEN(STR_GOP_VALUE), + flags = 0, + key = 0; + endif; + + suppressif ideqval Setup.GOPEnable == 1; + text + help = STRING_TOKEN(STR_CHIP_IGD_VBIOS_REV_HELP), + text = STRING_TOKEN(STR_CHIP_IGD_VBIOS_REV_NAME), + text = STRING_TOKEN(STR_CHIP_IGD_VBIOS_REV_VALUE), + flags = 0, + key = 0; + endif; + + text + help = STRING_TOKEN(STR_CPU_FLAVOR_HELP), + text = STRING_TOKEN(STR_CPU_FLAVOR_NAME), + text = STRING_TOKEN(STR_CPU_FLAVOR_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_BOARD_ID_HELP), + text = STRING_TOKEN(STR_BOARD_ID_NAME), + text = STRING_TOKEN(STR_BOARD_ID_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_FAB_ID_HELP), + text = STRING_TOKEN(STR_FAB_ID_STRING), + text = STRING_TOKEN(STR_FAB_ID_VALUE), + flags = 0, + key = 0; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_MEMORY_INFORMATION_STRING); + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_TOTAL_MEMORY_SIZE_PROMPT), + text = STRING_TOKEN(STR_TOTAL_MEMORY_SIZE_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SYSTEM_MEMORY_SPEED_STRING), + text = STRING_TOKEN(STR_SYSTEM_MEMORY_SPEED_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_L1_DATA_CACHE_STRING), + text = STRING_TOKEN(STR_PROCESSOR_L1_DATA_CACHE_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_L1_INSTR_CACHE_STRING), + text = STRING_TOKEN(STR_PROCESSOR_L1_INSTR_CACHE_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_PROCESSOR_L2_CACHE_STRING), + text = STRING_TOKEN(STR_PROCESSOR_L2_CACHE_VALUE), + flags = 0, + key = 0; + +endform; + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.c b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.c new file mode 100644 index 0000000000..02b03ff22d --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.c @@ -0,0 +1,879 @@ +/** @file + This file also installs UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL. + + The main code offers a UI interface in device manager to let user configure + platform override protocol to override the default algorithm for matching + drivers to controllers. + + The main flow: + 1. It dynamically locates all controller device path. + 2. It dynamically locates all drivers which support binding protocol. + 3. It exports and dynamically updates two menu to let user select the + mapping between drivers to controllers. + 4. It save all the mapping info in NV variables which will be consumed + by platform override protocol driver to publish the platform override protocol. + + Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include "PlatformSetupDxe.h" +#include "Guid/SetupVariable.h" +#include +#include +#include + +#define EFI_CALLBACK_INFO_SIGNATURE SIGNATURE_32 ('C', 'l', 'b', 'k') +#define EFI_CALLBACK_INFO_FROM_THIS(a) CR (a, EFI_CALLBACK_INFO, ConfigAccess, EFI_CALLBACK_INFO_SIGNATURE) + +#define RESET_GENERATOR_PORT 0xCF9 + +typedef struct { + UINTN Signature; + EFI_HANDLE DriverHandle; + EFI_HII_HANDLE RegisteredHandle; + SYSTEM_CONFIGURATION FakeNvData; + EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting; + EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; +} EFI_CALLBACK_INFO; + +#pragma pack(1) + +// +// HII specific Vendor Device Path definition. +// +typedef struct { + VENDOR_DEVICE_PATH VendorDevicePath; + EFI_DEVICE_PATH_PROTOCOL End; +} HII_VENDOR_DEVICE_PATH; + +#pragma pack() + +// +// uni string and Vfr Binary data. +// +extern UINT8 VfrBin[]; +extern UINT8 PlatformSetupDxeStrings[]; + +EFI_HANDLE mImageHandle; + +// +// module global data +// +#define EFI_NORMAL_SETUP_GUID \ + { 0xec87d643, 0xeba4, 0x4bb5, 0xa1, 0xe5, 0x3f, 0x3e, 0x36, 0xb2, 0xd, 0xa9 } + +EFI_GUID mNormalSetupGuid = EFI_NORMAL_SETUP_GUID; + +EFI_GUID mSystemConfigGuid = SYSTEM_CONFIGURATION_GUID; +CHAR16 mVariableName[] = L"Setup"; +CHAR16 mSetupName[] = L"Setup"; +EFI_CALLBACK_INFO *mCallbackInfo; + +HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = { + { + { + HARDWARE_DEVICE_PATH, + HW_VENDOR_DP, + { + (UINT8) (sizeof (VENDOR_DEVICE_PATH)), + (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) + } + }, + EFI_CALLER_ID_GUID + }, + + { + END_DEVICE_PATH_TYPE, + END_ENTIRE_DEVICE_PATH_SUBTYPE, + { + (UINT8) (END_DEVICE_PATH_LENGTH), + (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8) + } + } +}; + +VOID +LoadOsDefaultValues ( + IN EFI_CALLBACK_INFO *Private + ) +{ + Private->FakeNvData.GOPEnable = TRUE; + Private->FakeNvData.SecureBoot = FALSE; + Private->FakeNvData.Cg8254 = FALSE; + Private->FakeNvData.LpssI2C7Enabled = 1; + Private->FakeNvData.LpssSpi1Enabled = 1; + Private->FakeNvData.I2cNfc = TRUE; + Private->FakeNvData.I2cPss = TRUE; + Private->FakeNvData.SelectBtDevice = TRUE; + Private->FakeNvData.I2s343A = TRUE; + Private->FakeNvData.I2s34C1 = TRUE; + Private->FakeNvData.UserCameraSel = TRUE; + Private->FakeNvData.WorldCameraSel = 2; +#if X64_BUILD_ENABLE + Private->FakeNvData.TPM = 1; +#else + Private->FakeNvData.TPM = 0; +#endif + Private->FakeNvData.MonitorMwaitEnable = 2; + Private->FakeNvData.I2C0Speed = 1; + Private->FakeNvData.I2C1Speed = 1; + Private->FakeNvData.I2C2Speed = 1; + Private->FakeNvData.I2C3Speed = 1; + Private->FakeNvData.I2C4Speed = 1; + Private->FakeNvData.I2C5Speed = 1; + Private->FakeNvData.I2C6Speed = 1; + Private->FakeNvData.I2C7Speed = 1; + Private->FakeNvData.TcoLock = 0; +} + + +VOID +LoadPlatformDefaultValues ( + IN EFI_CALLBACK_INFO *Private + ) +{ + switch (Private->FakeNvData.BoardId) { + case BOARD_ID_LFH_CRB: + case BOARD_ID_MINNOW: + if (Private->FakeNvData.PmicSetupDefault == 1) { + Private->FakeNvData.EnableRenderStandby = FALSE; + } + default: + break; + } + + Private->FakeNvData.PlatformSettingEn = 1; +} + +VOID +CheckSystemConfigLoad(SYSTEM_CONFIGURATION *SystemConfigPtr); + +VOID +CheckSystemConfigSave(SYSTEM_CONFIGURATION *SystemConfigPtr); + + +/** + This function allows a caller to extract the current configuration for one + or more named elements from the target driver. + + @param[in] This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. + @param[in] Request A null-terminated Unicode string in format. + @param[out] Progress On return, points to a character in the Request string. + Points to the string's null terminator if request was successful. + Points to the most recent '&' before the first failing name/value + pair (or the beginning of the string if the failure is in the + first name/value pair) if the request was not successful. + @param[out] Results A null-terminated Unicode string in format which + has all values filled in for the names in the Request string. + String to be allocated by the called function. + + @retval EFI_SUCCESS The Results is filled with the requested values. + @retval EFI_OUT_OF_RESOURCES Not enough memory to store the results. + @retval EFI_INVALID_PARAMETER Request is NULL, illegal syntax, or unknown name. + @retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver. + +**/ +EFI_STATUS +EFIAPI +SystemConfigExtractConfig ( + IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, + IN CONST EFI_STRING Request, + OUT EFI_STRING *Progress, + OUT EFI_STRING *Results + ) +{ + EFI_STATUS Status; + EFI_CALLBACK_INFO *Private; + EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting; + EFI_STRING ConfigRequestHdr; + EFI_STRING ConfigRequest; + BOOLEAN AllocatedRequest; + UINTN Size; + UINTN BufferSize; + VOID *SystemConfigPtr; + UINT32 VariableAttributes; + UINTN VariableSize = 0; + + if (Progress == NULL || Results == NULL) { + return EFI_INVALID_PARAMETER; + } + + *Progress = Request; + if ((Request != NULL) && !HiiIsConfigHdrMatch (Request, &mSystemConfigGuid, mVariableName)) { + return EFI_NOT_FOUND; + } + + ConfigRequestHdr = NULL; + ConfigRequest = NULL; + Size = 0; + AllocatedRequest = FALSE; + Private = EFI_CALLBACK_INFO_FROM_THIS (This); + + SetupInfo (); + + HiiConfigRouting = Private->HiiConfigRouting; + ConfigRequest = Request; + if ((Request == NULL) || (StrStr (Request, L"OFFSET") == NULL)) { + // + // Request has no request element, construct full request string. + // Allocate and fill a buffer large enough to hold the template + // followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator + // + ConfigRequestHdr = HiiConstructConfigHdr (&mSystemConfigGuid, mVariableName, Private->DriverHandle); + if (ConfigRequestHdr != NULL) { + Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16); + ConfigRequest = AllocateZeroPool (Size); + ASSERT (ConfigRequest != NULL); + if (ConfigRequest == NULL) { + return EFI_OUT_OF_RESOURCES; + } + AllocatedRequest = TRUE; + BufferSize = sizeof (SYSTEM_CONFIGURATION); + UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64) BufferSize); + FreePool (ConfigRequestHdr); + } + } + + VariableSize = sizeof (SYSTEM_CONFIGURATION); + SystemConfigPtr = AllocateZeroPool (VariableSize); + Status = gRT->GetVariable ( + L"Setup", + &gEfiSetupVariableGuid, + &VariableAttributes, + &VariableSize, + SystemConfigPtr + ); + + if (SystemConfigPtr == NULL) { + ZeroMem (&Private->FakeNvData, sizeof (SYSTEM_CONFIGURATION)); + } else { + CheckSystemConfigLoad (SystemConfigPtr); + CopyMem (&Private->FakeNvData, SystemConfigPtr, sizeof (SYSTEM_CONFIGURATION)); + FreePool (SystemConfigPtr); + } + + // + // Convert buffer data to by helper function BlockToConfig() + // + Status = HiiConfigRouting->BlockToConfig ( + HiiConfigRouting, + ConfigRequest, + (UINT8 *) &Private->FakeNvData, + sizeof (SYSTEM_CONFIGURATION), + Results, + Progress + ); + + // + // Free the allocated config request string. + // + if (AllocatedRequest) { + FreePool (ConfigRequest); + ConfigRequest = NULL; + } + // + // Set Progress string to the original request string. + // + if (Request == NULL) { + *Progress = NULL; + } else if (StrStr (Request, L"OFFSET") == NULL) { + *Progress = Request + StrLen (Request); + } + + return Status; +} + + +/** + This function processes the results of changes in configuration. + + @param[in] This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. + @param[in] Configuration A null-terminated Unicode string in format. + @param[out] Progress A pointer to a string filled in with the offset of the most + recent '&' before the first failing name/value pair (or the + beginning of the string if the failure is in the first + name/value pair) or the terminating NULL if all was successful. + + @retval EFI_SUCCESS The Results is processed successfully. + @retval EFI_INVALID_PARAMETER Configuration is NULL. + @retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver. + +**/ +EFI_STATUS +EFIAPI +SystemConfigRouteConfig ( + IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, + IN CONST EFI_STRING Configuration, + OUT EFI_STRING *Progress + ) +{ + EFI_CALLBACK_INFO *Private; + EFI_STATUS Status; + UINTN VariableSize; + UINT32 VariableAttributes; + + if (Configuration == NULL || Progress == NULL) { + return EFI_INVALID_PARAMETER; + } + *Progress = Configuration; + + if (!HiiIsConfigHdrMatch (Configuration, &mSystemConfigGuid, mVariableName)) { + return EFI_NOT_FOUND; + } + + Private = EFI_CALLBACK_INFO_FROM_THIS (This); + VariableSize = sizeof (SYSTEM_CONFIGURATION); + Status = gRT->GetVariable ( + L"Setup", + &gEfiSetupVariableGuid, + &VariableAttributes, + &VariableSize, + &Private->FakeNvData + ); + + Status = mCallbackInfo->HiiConfigRouting->ConfigToBlock (mCallbackInfo->HiiConfigRouting, Configuration, (UINT8 *)&Private->FakeNvData, &VariableSize, Progress); + if (EFI_ERROR (Status)) { + DEBUG ((EFI_D_INFO, "Error @ Function:%a Line:%d",__FUNCTION__, __LINE__)); + return Status; + } + VariableSize = sizeof (SYSTEM_CONFIGURATION); + + Status = gRT->SetVariable ( + L"Setup", + &gEfiSetupVariableGuid, + VariableAttributes, + VariableSize, + &Private->FakeNvData + ); + CheckSystemConfigSave (&Private->FakeNvData); + + return EFI_SUCCESS; +} + + +/** + This is the function that is called to provide results data to the driver. This data + consists of a unique key which is used to identify what data is either being passed back + or being asked for. + + @param[in] This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. + @param[in] Action A null-terminated Unicode string in format. + @param[in] KeyValue A unique Goto OpCode callback value which record user's selection. + 0x100 <= KeyValue <0x500 : user select a controller item in the first page; + KeyValue == 0x1234 : user select 'Refresh' in first page, or user select 'Go to Previous Menu' in second page + KeyValue == 0x1235 : user select 'Pci device filter' in first page + KeyValue == 0x1500 : user select 'order ... priority' item in second page + KeyValue == 0x1800 : user select 'commit changes' in third page + KeyValue == 0x2000 : user select 'Go to Previous Menu' in third page + @param[in] Type The type of value for the question. + @param[in] Value A pointer to the data being sent to the original exporting driver. + @param[out] ActionRequest On return, points to the action requested by the callback function. + + @retval EFI_SUCCESS The Results is processed successfully. + EFI_NOT_FOUND The Data can't be found. + EFI_OUT_OF_RESOURCES The memory resource not enough. + +**/ +EFI_STATUS +EFIAPI +SystemConfigCallback ( + IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, + IN EFI_BROWSER_ACTION Action, + IN EFI_QUESTION_ID KeyValue, + IN UINT8 Type, + IN EFI_IFR_TYPE_VALUE *Value, + OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest + ) +{ + EFI_CALLBACK_INFO *Private; + SYSTEM_CONFIGURATION *FakeNvData; + EFI_INPUT_KEY Key; + CHAR16 *StringBuffer1; + CHAR16 *StringBuffer2; + EFI_STATUS Status; + SEC_OPERATION_PROTOCOL *SeCOp; + + StringBuffer1 = AllocateZeroPool (200 * sizeof (CHAR16)); + ASSERT (StringBuffer1 != NULL); + StringBuffer2 = AllocateZeroPool (200 * sizeof (CHAR16)); + ASSERT (StringBuffer2 != NULL); + + if ((StringBuffer1 == NULL) || (StringBuffer2 == NULL)) { + return EFI_OUT_OF_RESOURCES; + } + + switch (Action) { + case EFI_BROWSER_ACTION_CHANGING: + case EFI_BROWSER_ACTION_CHANGED: + { + if (KeyValue == 0x1001) { + Private = EFI_CALLBACK_INFO_FROM_THIS (This); + FakeNvData = &Private->FakeNvData; + if (!HiiGetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData)) { + return EFI_NOT_FOUND; + } + + LoadOsDefaultValues (Private); + + // + // Pass changed uncommitted data back to Form Browser + // + HiiSetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData, NULL); + } else if (KeyValue == 0x1002 /*IpuEn Callback*/) { + DEBUG ((DEBUG_INFO,"IpuEn Callback.\n")); + Private = EFI_CALLBACK_INFO_FROM_THIS (This); + FakeNvData = &Private->FakeNvData; + if (!HiiGetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData)) { + return EFI_NOT_FOUND; + } + + if (Private->FakeNvData.IpuEn == 1) { + Private->FakeNvData.VTdEnable = 0; + } + // + // Pass changed uncommitted data back to Form Browser + // + HiiSetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData, NULL); + } else if (KeyValue == 0x1234) { + Status = gBS->LocateProtocol ( + &gEfiSeCOperationProtocolGuid, + NULL, + (VOID **) &SeCOp + ); + + if (EFI_ERROR (Status)) { + break; + } + StrCpyS (StringBuffer1, 200, L" Perform SeC UnConfiguration? "); + StrCpyS (StringBuffer2, 200, L"Enter (YES) / Esc (NO)"); + + // + // Popup a menu to notice user + // + do { + CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while ((Key.ScanCode != SCAN_ESC) && (Key.UnicodeChar != CHAR_CARRIAGE_RETURN)); + + // + // If the user hits the YES Response key, + // + if (Key.ScanCode == SCAN_ESC) { + break; + } + StrCpyS (StringBuffer1, 200, L" Performing SeC UnConfiguration... "); + StrCpyS (StringBuffer2, 200, L" "); + CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, NULL, StringBuffer1, StringBuffer2, NULL); + Status = SeCOp->PerformSeCOperation(SEC_OP_UNCONFIGURATION); + + } else if (KeyValue == 0x1235) { + StrCpyS (StringBuffer1, 200, L"Will you disable PTT ? "); + StrCpyS (StringBuffer2, 200, L"Enter (YES) / Esc (NO)"); + + // + // Popup a menu to notice user + // + do { + CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while ((Key.ScanCode != SCAN_ESC) && (Key.UnicodeChar != CHAR_CARRIAGE_RETURN)); + + // + // If the user hits the YES Response key, + // + if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) { + + } + } else if (KeyValue == 0x1236) { + StrCpyS (StringBuffer1, 200, L"Will you revoke trust ? "); + StrCpyS (StringBuffer2, 200, L"Enter (YES) / Esc (NO)"); + + // + // Popup a menu to notice user + // + do { + CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while ((Key.ScanCode != SCAN_ESC) && (Key.UnicodeChar != CHAR_CARRIAGE_RETURN)); + + // + // If the user hits the YES Response key, + // + if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) { + + } + } else if (KeyValue == 0x1237 /*KEY_CLEAR_KEK_AND_PK*/ ) { + // + //Delete PK, KEK, DB, DBx + // + EnableCustomMode (); + DeleteKeys (); + StrCpyS (StringBuffer1, 200, L"Clear Keys Completed"); + StrCpyS (StringBuffer2, 200, L"Please Restart System"); + + // + // Popup a menu to notice user + // + do { + CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while ((Key.ScanCode != SCAN_ESC) && (Key.UnicodeChar != CHAR_CARRIAGE_RETURN)); + + gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL); + } else if (KeyValue == 0x1238 /*KEY_LOAD_DEFAULTS_KEYS*/ ) { + // + // Enroll PK, KEK, DB and DBx + // + EnrollKeys (); + StrCpyS (StringBuffer1, 200, L"Restore Keys Completed"); + StrCpyS (StringBuffer2, 200, L"Please Restart System"); + + // + // Popup a notification menu + // + do { + CreatePopUp(EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while ((Key.ScanCode != SCAN_ESC) && (Key.UnicodeChar != CHAR_CARRIAGE_RETURN)); + + // + // Reset the system + // + gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL); + + } else if (KeyValue == 0x1239) { + // + // Popup a notification menu + // + StrCpyS (StringBuffer1, 200, L"Do you want to clear NVM / RPMB data region?"); + StrCpyS (StringBuffer2, 200, L"Enter (YES) / Esc (NO)"); + + do { + CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while ((Key.ScanCode != SCAN_ESC) && (Key.UnicodeChar != CHAR_CARRIAGE_RETURN)); + + // + // If the user hits the Enter (YES) Response key + // + if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) { + // + // CSE to Clear RPMB (NVM storage), it requires to receive the commands in sequence + // i.e., from Host side, 'IFWI Prepare For Update' command should be issued first for the + // purpose of keeping CSE in reset state and then 'Data Clear' Command to clear NVM. + // If CSE is not in reset state, then Data clear will not happen. + // + Status = HeciIfwiPrepareForUpdate (); + if (Status == EFI_SUCCESS) { + // + // CSE Data Clear Command for TXE Compliance Test + // + Status = HeciDataClear (); + + // + // Popup a notification menu + // + if (Status == EFI_SUCCESS) { + StrCpyS (StringBuffer1, 200, L"NVM / RPMB Data region Cleared SUCCESSFULLY"); + StrCpyS (StringBuffer2, 200, L"Press Enter to restart the system"); + } else { + StrCpyS (StringBuffer1, 200, L"NVM / RPMB Data Clear FAILED"); + StrCpyS (StringBuffer2, 200, L"System still needs to restart, Press Enter"); + } + + do { + CreatePopUp(EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN); + + // + // Reset the system (EfiResetCold) + // Note: At this point, 'IFWI Prepare for Update' command is given to CSE and CSE is in reset state. + // Invoking gRT->ResetSystem(EfiResetCold, EFI_SUCCESS, 0, NULL); Notifies HECI_SYSTEM_RESET by writing + // into port 0xB2, this causes system hang and should not be issued. Hence directly writing into port 0xCF9 + // + IoWrite8(RESET_GENERATOR_PORT, 0x2); + IoWrite8(RESET_GENERATOR_PORT, 0xE); + + } else { + StrCpyS (StringBuffer1, 200, L"NVM / RPMB Data Clear FAILED, CSE not in Reset State"); + StrCpyS (StringBuffer2, 200, L"Press Enter to Continue"); + do { + CreatePopUp(EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL); + } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN); + } + } + + } + break; + } + + + case EFI_BROWSER_ACTION_DEFAULT_STANDARD: + { + Private = EFI_CALLBACK_INFO_FROM_THIS (This); + FakeNvData = &Private->FakeNvData; + if (!HiiGetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData)) { + return EFI_NOT_FOUND; + } + + LoadPlatformDefaultValues (Private); + // + // Pass changed uncommitted data back to Form Browser + // + HiiSetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData, NULL); + + break; + } + + default: + break; + } + + FreePool (StringBuffer1); + FreePool (StringBuffer2); + + if ((Action == EFI_BROWSER_ACTION_FORM_OPEN) || (Action == EFI_BROWSER_ACTION_FORM_CLOSE)) { + // + // Do nothing for UEFI OPEN/CLOSE Action + // + return EFI_SUCCESS; + } + + Private = EFI_CALLBACK_INFO_FROM_THIS (This); + FakeNvData = &Private->FakeNvData; + if (!HiiGetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData)) { + return EFI_NOT_FOUND; + } + + // + // Pass changed uncommitted data back to Form Browser + // + HiiSetBrowserData (&mSystemConfigGuid, mVariableName, sizeof (SYSTEM_CONFIGURATION), (UINT8 *) FakeNvData, NULL); + + return EFI_SUCCESS; +} + + +VOID +EFIAPI +SetupStringUpdate ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + DEBUG ((EFI_D_ERROR, "SetupStringUpdate Event is Signalled \n")); + + gBS->CloseEvent (Event); + SetupInfo (); +} + + +/** + The driver Entry Point. The function will export a disk device class formset and + its callback function to hii database. + + @param[in] ImageHandle The firmware allocated handle for the EFI image. + @param[in] SystemTable A pointer to the EFI System Table. + + @retval EFI_SUCCESS The entry point is executed successfully. + @retval other Some error occurs when executing this entry point. + +**/ +EFI_STATUS +EFIAPI +PlatformSetupDxeInit ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2; + SYSTEM_CONFIG SystemConfig; + UINTN DataSize; + BOOLEAN HiiDataExport; + EFI_EVENT Event; + VOID *Registration; + VOID *Interface; + + mImageHandle = ImageHandle; + + // + // There should only be one Form Configuration protocol + // + Status = gBS->LocateProtocol ( + &gEfiFormBrowser2ProtocolGuid, + NULL, + (VOID **) &FormBrowser2 + ); + + if (EFI_ERROR (Status)) { + return Status; + } + + mCallbackInfo = AllocateZeroPool (sizeof (EFI_CALLBACK_INFO)); + if (mCallbackInfo == NULL) { + return EFI_BAD_BUFFER_SIZE; + } + + mCallbackInfo->Signature = EFI_CALLBACK_INFO_SIGNATURE; + mCallbackInfo->ConfigAccess.ExtractConfig = SystemConfigExtractConfig; + mCallbackInfo->ConfigAccess.RouteConfig = SystemConfigRouteConfig; + mCallbackInfo->ConfigAccess.Callback = SystemConfigCallback; + + // + // Install Device Path Protocol and Config Access protocol to driver handle + // Install Platform Driver Override Protocol to driver handle + // + Status = gBS->InstallMultipleProtocolInterfaces ( + &mCallbackInfo->DriverHandle, + &gEfiDevicePathProtocolGuid, + &mHiiVendorDevicePath, + &gEfiHiiConfigAccessProtocolGuid, + &mCallbackInfo->ConfigAccess, + NULL + ); + + if (EFI_ERROR (Status)) { + goto Finish; + } + + // + // Publish our HII data + // + mCallbackInfo->RegisteredHandle = HiiAddPackages ( + &mSystemConfigGuid, + mCallbackInfo->DriverHandle, + VfrBin, + PlatformSetupDxeStrings, + NULL + ); + + if (mCallbackInfo->RegisteredHandle == NULL) { + Status = EFI_OUT_OF_RESOURCES; + goto Finish; + } + + mHiiHandle = mCallbackInfo->RegisteredHandle; + // + // Locate ConfigRouting protocol + // + Status = gBS->LocateProtocol ( + &gEfiHiiConfigRoutingProtocolGuid, + NULL, + (VOID **) &mCallbackInfo->HiiConfigRouting + ); + if (EFI_ERROR (Status)) { + goto Finish; + } + + // + // Clear all the global variable + // + HiiDataExport = 0; + Status = gBS->LocateProtocol (&gEfiVariableArchProtocolGuid, NULL, &Interface); + if (!EFI_ERROR (Status)) { + DEBUG ((DEBUG_INFO, " PlatformSetupDxeInit(): Get SystemConfig Variable \n")); + ZeroMem (&SystemConfig, sizeof (SystemConfig)); + DataSize = sizeof (SYSTEM_CONFIG); + + Status = gRT->GetVariable ( + SYSTEM_CONFIG_NAME, + &gSystemConfigGuid, + NULL, + &DataSize, + &SystemConfig + ); + + if (!EFI_ERROR (Status)) { + DEBUG ((DEBUG_INFO, " PlatformSetupDxeInit(): GetVariable Success assigning hiiexport flag \n")); + HiiDataExport = (BOOLEAN) SystemConfig.HiiExport; + } + } + DEBUG ((DEBUG_INFO, " PlatformSetupDxeInit(): HiiDataExport = 0x%x \n", HiiDataExport)); + if (HiiDataExport) { + Status = gBS->CreateEvent ( + EVT_NOTIFY_SIGNAL, + TPL_CALLBACK, + (EFI_EVENT_NOTIFY)SetupStringUpdate, + NULL, + &Event + ); + + if (!EFI_ERROR (Status)) { + DEBUG ((EFI_D_ERROR, " PlatformSetupDxeInit(): Successfully Registered the Callback:SetupStringUpdate\n")); + Status = gBS->RegisterProtocolNotify ( + &gEfiDxeSmmReadyToLockProtocolGuid, + Event, + &Registration + ); + + if (!EFI_ERROR (Status)) { + DEBUG ((EFI_D_ERROR, " PlatformSetupDxeInit(): DxeSmmReadyToLock Protocol Notify Registration is done:SetupStringUpdate\n")); + } + } + } + return EFI_SUCCESS; + +Finish: + if (mCallbackInfo->DriverHandle != NULL) { + gBS->UninstallMultipleProtocolInterfaces ( + mCallbackInfo->DriverHandle, + &gEfiDevicePathProtocolGuid, + &mHiiVendorDevicePath, + &gEfiHiiConfigAccessProtocolGuid, + &mCallbackInfo->ConfigAccess, + NULL + ); + } + + if (mCallbackInfo->RegisteredHandle != NULL) { + HiiRemovePackages (mCallbackInfo->RegisteredHandle); + } + + if (mCallbackInfo != NULL) { + FreePool (mCallbackInfo); + } + + return Status; +} + + +/** + Unload its installed protocol. + + @param[in] ImageHandle Handle that identifies the image to be unloaded. + + @retval EFI_SUCCESS The image has been unloaded. + +**/ +EFI_STATUS +EFIAPI +PlatformSetupDxeUnload ( + IN EFI_HANDLE ImageHandle + ) +{ + if (mCallbackInfo != NULL) { + if (mCallbackInfo->DriverHandle != NULL) { + gBS->UninstallMultipleProtocolInterfaces ( + mCallbackInfo->DriverHandle, + &gEfiDevicePathProtocolGuid, + &mHiiVendorDevicePath, + &gEfiHiiConfigAccessProtocolGuid, + &mCallbackInfo->ConfigAccess, + NULL + ); + } + + if (mCallbackInfo->RegisteredHandle != NULL) { + HiiRemovePackages (mCallbackInfo->RegisteredHandle); + } + + FreePool (mCallbackInfo); + } + + return EFI_SUCCESS; +} + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.h b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.h new file mode 100644 index 0000000000..89a7877248 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.h @@ -0,0 +1,95 @@ +/** @file + The defintions are required both by Source code and Vfr file. + The PLAT_OVER_MNGR_DATA structure, form guid and Ifr question ID are defined. + + Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef _PLAT_OVER_MNGR_H_ +#define _PLAT_OVER_MNGR_H_ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "Guid/SetupVariable.h" +#include + +#include +#include +#include + +extern EFI_HII_HANDLE mHiiHandle; + +UINT32 +ConvertBase10ToRaw ( + IN EFI_EXP_BASE10_DATA *Data + ); + +UINT32 +ConvertBase2ToRaw ( + IN EFI_EXP_BASE2_DATA *Data + ); + +EFI_STATUS +GetStringFromToken ( + IN EFI_GUID *ProducerGuid, + IN STRING_REF Token, + OUT CHAR16 **String + ); + +VOID +SwapEntries ( + IN CHAR8 *Data + ); + +VOID +EFIAPI +SetupInfo ( + ); + +extern EFI_HANDLE mImageHandle; + +#endif + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.inf b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.inf new file mode 100644 index 0000000000..09a16c8c1e --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/PlatformSetupDxe.inf @@ -0,0 +1,157 @@ +## @file +# This driver produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist. +# It doesn't install again if this protocol exists. +# It only implements one interface GetDriver of PLATFORM_DRIVER_OVERRIDE_PROTOCOL protocol +# and doesn't support other two interfaces GetDriverPath, DriverLoaded. +# +# This driver also offers an UI interface in device manager to let user configure +# platform override protocol to override the default algorithm for matching +# drivers to controllers. +# +# The main flow: +# 1. It dynamically locate all controller device path. +# 2. It dynamically locate all drivers which support binding protocol. +# 3. It export and dynamically update two menu to let user select the +# mapping between drivers to controllers. +# 4. It save all the mapping info in NV variables for the following boot, +# which will be consumed by GetDriver API of the produced the platform override protocol. +# +# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php. +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = PlatformSetupDxe + FILE_GUID = C1A69A12-8653-4fde-A215-48FCD95288C3 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = PlatformSetupDxeInit + UNLOAD_IMAGE = PlatformSetupDxeUnload + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources] + VfrStrings.uni + FwVersionStrings.uni + Vfr.vfr + Main.vfi + Boot.vfi + Cpu.vfi + CpuPower.vfi + PlatformSetupDxe.c + SetupInfoRecords.c + PlatformSetupDxe.h + Security.vfi + SouthClusterConfig.vfi + Thermal.vfi + DptfPolicy.vfi + SetupFunctions.c + UnCore.vfi + SystemComponent.vfi + DebugConfig.vfi + UqiList.uni + AcpiSetup.vfi + RtD3.vfi + +[Packages] + BroxtonPlatformPkg/PlatformPkg.dec + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + IntelFrameworkPkg/IntelFrameworkPkg.dec + BroxtonSiPkg/BroxtonSiPkg.dec + SecurityPkg/SecurityPkg.dec + BroxtonSiPkg/NorthCluster/MemoryInit/MemoryInit.dec + IntelFsp2Pkg/IntelFsp2Pkg.dec + +[LibraryClasses] + BaseLib + DebugLib + UefiLib + UefiDriverEntryPoint + UefiBootServicesTableLib + HiiLib + BaseMemoryLib + MemoryAllocationLib + DevicePathLib + DxeServicesTableLib + UefiRuntimeServicesTableLib + PrintLib + BiosIdLib + CpuIA32Lib + IoLib + PlatformSecureDefaultsLib + BaseIpcLib + HeciMsgLib + SteppingLib + SeCLib + +[Guids] + gEfiIfrTianoGuid ## CONSUMES ## Guid + gEfiProcessorSubClassGuid + gEfiMiscSubClassGuid + gEfiCacheSubClassGuid + gEfiMemorySubClassGuid + gEfiSetupVariableGuid + gEfiPlatformInfoGuid + gEfiNormalSetupGuid + gEfiSecureBootEnableDisableGuid + gIFWIVersionHobGuid + gEfiMemoryConfigDataGuid + gEfiHobListGuid + gSystemConfigGuid + gFspNonVolatileStorageHobGuid ##CONSUMES + gPlatformModuleTokenSpaceGuid + +[Protocols] + gEfiComponentName2ProtocolGuid ## SOMETIMES_CONSUMED (Get Driver Name if ComponentName2Protocol exists) + gEfiComponentNameProtocolGuid ## SOMETIMES_CONSUMED (Get Driver Name if ComponentNameProtocol exists and ComponentName2Protocol doesn't exist) + gEfiFirmwareVolume2ProtocolGuid ## SOMETIMES_CONSUMED (Get Driver Name from EFI UI section if ComponentName2Protocol and ComponentNameProtocol don't exist) + gEfiPciIoProtocolGuid ## SOMETIMES_CONSUMED (Find the PCI device if PciIo protocol is installed) + gEfiPciRootBridgeIoProtocolGuid + gEfiBusSpecificDriverOverrideProtocolGuid ## SOMETIMES_CONSUMED (Check whether the PCI device contains one or more efi drivers in its option rom by this protocol) + gEfiDriverBindingProtocolGuid ## SOMETIMES_CONSUMED + gEfiLoadedImageProtocolGuid ## SOMETIMES_CONSUMED + gEfiLoadedImageDevicePathProtocolGuid ## SOMETIMES_CONSUMED (Show the drivers in the second page that support DriverBindingProtocol, LoadedImageProtocol and LoadedImageDevicePathProtocol) + gEfiDevicePathProtocolGuid ## SOMETIMES_CONSUMED (Show the controller device in the first page that support DevicePathProtocol) + gEfiFormBrowser2ProtocolGuid ## CONSUMED + gEfiHiiConfigRoutingProtocolGuid ## CONSUMED + gEfiHiiConfigAccessProtocolGuid ## PRODUCED + gEfiDevicePathToTextProtocolGuid ## CONSUMED + gEfiDataHubProtocolGuid + gEfiLegacyBiosProtocolGuid + gEfiSimpleNetworkProtocolGuid + gEfiDiskInfoProtocolGuid ## CONSUMED + gEfiMpServiceProtocolGuid + gDxePlatformPolicyProtocolGuid + gEfiSeCOperationProtocolGuid + gEfiTcg2ProtocolGuid + gEfiI2cBusProtocolGuid + gCpuInfoProtocolGuid + gEfiDxeSmmReadyToLockProtocolGuid + gEfiVariableArchProtocolGuid + +[Pcd.common] + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress + +[Pcd] + gPlatformModuleTokenSpaceGuid.PcdIfwiZid + gPlatformModuleTokenSpaceGuid.PcdGetBoardNameFunc + +[Depex] + gEfiFormBrowser2ProtocolGuid AND + gEfiHiiConfigRoutingProtocolGuid AND + gEfiVariableArchProtocolGuid + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/RtD3.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/RtD3.vfi new file mode 100644 index 0000000000..0c870f6188 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/RtD3.vfi @@ -0,0 +1,201 @@ +// /** @file +// RtD3 Setup formset. +// +// Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + + form formid = RTD3_FORM_ID, + + title = STRING_TOKEN(STR_RTD3_FORM_TITLE); + + oneof varid = Setup.Rtd3Support, + prompt = STRING_TOKEN(STR_RTD3), + help = STRING_TOKEN(STR_RTD3_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.Rtd3Support == 0x0; + + oneof varid = Setup.ConsolidatedPR, + prompt = STRING_TOKEN(STR_CONSOLIDATED_POWER_RESOURCE_PROMPT), + help = STRING_TOKEN(STR_CONSOLIDATED_POWER_RESOURCE_PROMPT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + + numeric varid = Setup.VRStaggeringDelay, + prompt = STRING_TOKEN(STR_VR_STAGGERING_DELAY), + help = STRING_TOKEN(STR_VR_STAGGERING_DELAY_HELP), + minimum = 0, + maximum = 100, + step = 16 , + default = 16, + endnumeric; + + numeric varid = Setup.VRRampUpDelay, + prompt = STRING_TOKEN(STR_VR_RAMP_DELAY), + help = STRING_TOKEN(STR_VR_RAMP_DELAY_HELP), + minimum = 0, + maximum = 100, + step = 16 , + default = 16, + endnumeric; + + numeric varid = Setup.Rtd3P0dl, + prompt = STRING_TOKEN(STR_PEP0), + help = STRING_TOKEN(STR_PEP0_HELP), + minimum = 0, + maximum = 100, + + step = 16 , + default = 100, + endnumeric; + + numeric varid = Setup.Rtd3P3dl, + prompt = STRING_TOKEN(STR_PEP3), + help = STRING_TOKEN(STR_PEP3_HELP), + minimum = 0, + maximum = 10, + step = 1 , + default = 10, + endnumeric; + + // + // Do not allow changing Azalia/ADSP delay for DVT2 or older rev + // Delay is hard coded to 500ms (in AcpiPlatform.c) to workaround HW issue + // + numeric varid = Setup.RTD3AudioDelay, + prompt = STRING_TOKEN(STR_AUDIO_DELAY), + help = STRING_TOKEN(STR_AUDIO_DELAY_HELP), + minimum = 0, + maximum = 1000, + step = 16 , + default = 200, + endnumeric; + + numeric varid = Setup.RTD3I2C0ControllerPS0Delay, + prompt = STRING_TOKEN(STR_I2C0_CONTROLLER_PS0_DELAY), + help = STRING_TOKEN(STR_I2C0_CONTROLLER_PS0_DELAY_HELP), + minimum = 0, + maximum = 1000, + step = 16, + default = 0, + endnumeric; + + numeric varid = Setup.RTD3SensorHub, + prompt = STRING_TOKEN(STR_SENSORHUB), + help = STRING_TOKEN(STR_SENSORHUB_HELP), + minimum = 0, + maximum = 1000, + step = 16 , + default = 68, + endnumeric; + + numeric varid = Setup.RTD3I2C1ControllerPS0Delay, + prompt = STRING_TOKEN(STR_I2C1_CONTROLLER_PS0_DELAY), + help = STRING_TOKEN(STR_I2C1_CONTROLLER_PS0_DELAY_HELP), + minimum = 0, + maximum = 1000, + step = 16, + default = 0, + endnumeric; + + numeric varid = Setup.RTD3TouchPadDelay, + prompt = STRING_TOKEN(STR_TOUCHPAD), + help = STRING_TOKEN(STR_TOUCHPAD_HELP), + minimum = 0, + maximum = 1000, + step = 16 , + default = 68, + endnumeric; + + numeric varid = Setup.RTD3TouchPanelDelay, + prompt = STRING_TOKEN(STR_TOUCHPANEL), + help = STRING_TOKEN(STR_TOUCHPANEL_HELP), + minimum = 0, + maximum = 1000, + step = 16 , + default = 68, + endnumeric; + + oneof varid = Setup.PstateCapping, + prompt = STRING_TOKEN(STR_RTD3_PSTATE_CAPPING), + help = STRING_TOKEN(STR_RTD3_PSTATE_CAPPING_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3UsbPt1, + prompt = STRING_TOKEN(STR_RTD3_USB_PORT1), + help = STRING_TOKEN(STR_RTD3_USB_PORT_HELP), + option text = STRING_TOKEN(STR_HIGHSPEED), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SUPERSPEED), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3UsbPt2, + prompt = STRING_TOKEN(STR_RTD3_USB_PORT2), + help = STRING_TOKEN(STR_RTD3_USB_PORT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_HIGHSPEED), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SUPERSPEED), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3I2C0SensorHub, + prompt = STRING_TOKEN(STR_RTD3_I2C0_SENSOR), + help = STRING_TOKEN(STR_RTD3_I2C0_SENSOR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3ZPODD, + prompt = STRING_TOKEN(STR_RTD3_ZPODD), + help = STRING_TOKEN(STR_RTD3_ZPODD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3Camera, + prompt = STRING_TOKEN(STR_RTD3_CAMERA), + help = STRING_TOKEN(STR_RTD3_CAMERA_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3SataPort1, + prompt = STRING_TOKEN(STR_RTD3_SATAPORT1), + help = STRING_TOKEN(STR_RTD3_SATAPORT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3SataPort2, + prompt = STRING_TOKEN(STR_RTD3_SATAPORT2), + help = STRING_TOKEN(STR_RTD3_SATAPORT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.RTD3SataPort3, + prompt = STRING_TOKEN(STR_RTD3_SATAPORT3), + help = STRING_TOKEN(STR_RTD3_SATAPORT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_MINICARD15), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MINICARD33), value = 2, flags = RESET_REQUIRED; + endoneof; + + endif; // Rtd3Support + + endform; //RTD3 \ No newline at end of file diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Security.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Security.vfi new file mode 100644 index 0000000000..da103b2ed2 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Security.vfi @@ -0,0 +1,176 @@ +// /** @file +// Security Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +// +// Security Configuration Form +// + +form formid = SECURITY_CONFIGURATION_FORM_ID, + title = STRING_TOKEN(STR_SECURITY_CONFIGURATION_TITLE); + + // + // SeC related + // + subtitle text = STRING_TOKEN(STR_SEC_CONFIGURATION_SUBTITLE); + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SEC_VERSION_STRING), + text = STRING_TOKEN(STR_TXE_FW_VALUE), + flags = 0, + key = 0; + + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SEC_CAPABILITY_STRING), + text = STRING_TOKEN(STR_SEC_CAPABILITY_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SEC_FEATURE_STRING), + text = STRING_TOKEN(STR_SEC_FEATURE_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SEC_OEMTAG_STRING), + text = STRING_TOKEN(STR_SEC_OEMTAG_VALUE), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_SEC_TEMP_DISABLE_HELP), + text = STRING_TOKEN(STR_SEC_TEMP_DISABLE_STRING), + text = STRING_TOKEN(STR_SEC_TEMP_DISABLE_PROMPT), + flags = 0, + key = 0; + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + suppressif ideqval Setup.SeCModeEnable == 0x00; + grayoutif ideqval Setup.SeCEOPEnable == 1; + oneof varid = Setup.SecEnable, + prompt = STRING_TOKEN(STR_SEC_SETTING_PROMPT), + help = STRING_TOKEN(STR_SEC_SETTING_HELP), + option text = STRING_TOKEN(STR_DISABLED), value=0x00, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value=0x01, flags=DEFAULT | RESET_REQUIRED; + endoneof; + endif; + endif; + + suppressif ideqval Setup.SeCOpEnable == 0x00; + grayoutif ideqval Setup.SeCEOPEnable == 1; + oneof varid = Setup.SecFlashUpdate, + prompt = STRING_TOKEN(STR_SEC_FLASH_UPDATE_PROMPT), + help = STRING_TOKEN(STR_SEC_FLASH_UPDATE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value=0x00, flags=DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value=0x01, flags=RESET_REQUIRED; + endoneof; + + oneof varid = Setup.SecFirmwareUpdate, + prompt = STRING_TOKEN(STR_SEC_FIRMWARE_UPDATE_PROMPT), + help = STRING_TOKEN(STR_SEC_FIRMWARE_UPDATE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value=0x00, flags=DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value=0x01, flags=RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.SeCEOPEnable, + prompt = STRING_TOKEN(STR_SEC_EOP_PROMPT), + help = STRING_TOKEN(STR_SEC_EOP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value=0x00, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value=0x01, flags = DEFAULT | RESET_REQUIRED; + endoneof; + + grayoutif ideqval Setup.SeCEOPEnable == 1; + text + help = STRING_TOKEN(STR_SEC_TEMP_DISABLE_HELP), + text = STRING_TOKEN(STR_SEC_UNCONFIGURATION_PROMPT), + flags = INTERACTIVE, + key = 0x1234; + endif; + endif; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + oneof varid = Setup.SecureBootCustomMode, + prompt = STRING_TOKEN(STR_SECURE_BOOT_MODE_PROMPT), + help = STRING_TOKEN(STR_SECURE_BOOT_MODE_HELP), + option text = STRING_TOKEN(STR_SB_STANDARD_MODE), value=0x00, flags = DEFAULT | MANUFACTURING; + option text = STRING_TOKEN(STR_SB_CUSTOM_MODE), value=0x01, flags = 0; + endoneof; + oneof varid = Setup.UseProductKey, + prompt = STRING_TOKEN(STR_SECURE_BOOT_PRO_KEY_PROMPT), + help = STRING_TOKEN(STR_SECURE_BOOT_PRO_KEY_HELP), + option text = STRING_TOKEN(STR_DEV_KEY), value=0x00, flags = DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_PRO_KEY), value=0x01, flags = RESET_REQUIRED; + endoneof; + text + help = STRING_TOKEN(STR_CLEAR_ALL_KEYS_HELP), + text = STRING_TOKEN(STR_CLEAR_ALL_KEYS), + text = STRING_TOKEN(STR_NULL_STRING), + flags = INTERACTIVE, + key = 0x1237; //KEY_CLEAR_KEK_AND_PK; + + text + help = STRING_TOKEN(STR_LOAD_DEFAULTS_KEYS_HELP), + text = STRING_TOKEN(STR_LOAD_DEFAULTS_KEYS), + text = STRING_TOKEN(STR_NULL_STRING), + flags = INTERACTIVE, + key = 0x1238; //KEY_LOAD_DEFAULTS_KEYS; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + // + //TPM related + // + subtitle text = STRING_TOKEN(STR_TPM_CONFIGURATION_PROMPT); + + oneof varid = Setup.TPM, + prompt = STRING_TOKEN(STR_TPM_PROMPT), + help = STRING_TOKEN(STR_TPM_HELP), +#if (X64_BUILD_ENABLE == FALSE) + option text = STRING_TOKEN(STR_DISABLE), value = 0x00, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM_PTT), value = 0x01, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM_DTPM_1_2), value = 0x02, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM_DTPM_2_0), value = 0x03, flags = RESET_REQUIRED; +#else + option text = STRING_TOKEN(STR_DISABLE), value = 0x00, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM_PTT), value = 0x01, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM_DTPM_1_2), value = 0x02, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM_DTPM_2_0), value = 0x03, flags = RESET_REQUIRED; +#endif + endoneof; + + suppressif NOT ideqval Setup.TPM == 1; + oneof varid = Setup.TPMSupportedBanks, + prompt = STRING_TOKEN(STR_TPM2_PCR_ALLOCATE_PROMPT), + help = STRING_TOKEN(STR_TPM2_PCR_ALLOCATE_HELP), + option text = STRING_TOKEN(STR_TPM2_PCR_ALLOCATE_NULL), value = TPM2_SUPPORTED_BANK_NULL, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM2_PCR_ALLOCATE_SHA1), value = TPM2_SUPPORTED_BANK_SHA1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM2_PCR_ALLOCATE_SHA2), value = TPM2_SUPPORTED_BANK_SHA2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_TPM2_PCR_ALLOCATE_BOTH), value = TPM2_SUPPORTED_BANK_BOTH, flags = RESET_REQUIRED; + endoneof; + endif; + +endform; + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupFunctions.c b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupFunctions.c new file mode 100644 index 0000000000..02e1812d29 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupFunctions.c @@ -0,0 +1,69 @@ +/** @file + Setup Function Driver. + + Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include "PlatformSetupDxe.h" + +VOID +SwapEntries ( + IN CHAR8 *Data + ) +{ + UINT16 Index; + CHAR8 Temp8; + + Index = 0; + while (Data[Index] != 0 && Data[Index+1] != 0) { + Temp8 = Data[Index]; + Data[Index] = Data[Index+1]; + Data[Index+1] = Temp8; + Index +=2; + } + + return; +} + + +UINT32 +ConvertBase10ToRaw ( + IN EFI_EXP_BASE10_DATA *Data + ) +{ + UINTN Index; + UINT32 RawData; + + RawData = Data->Value; + for (Index = 0; Index < (UINTN) Data->Exponent; Index++) { + RawData *= 10; + } + + return RawData; +} + +UINT32 +ConvertBase2ToRaw ( + IN EFI_EXP_BASE2_DATA *Data + ) +{ + UINTN Index; + UINT32 RawData; + + RawData = Data->Value; + for (Index = 0; Index < (UINTN) Data->Exponent; Index++) { + RawData <<= 1; + } + + return RawData; +} + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupInfoRecords.c b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupInfoRecords.c new file mode 100644 index 0000000000..8f7a5345fa --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupInfoRecords.c @@ -0,0 +1,1894 @@ +/** @file + To retrieve various platform info data for Setup menu. + + Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include "PlatformSetupDxe.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#undef SET + +#include +#include +#include + +#define MRC_DATA_REQUIRED_FROM_OUTSIDE +#include + +#include "ScAccess.h" +#include "SetupMode.h" + +#define EFI_CUSTOM_MODE_NAME L"CustomMode" +extern EFI_GUID gEfiCustomModeEnableGuid; + +#define LEFT_JUSTIFY 0x01 +#define PREFIX_SIGN 0x02 +#define PREFIX_BLANK 0x04 +#define COMMA_TYPE 0x08 +#define LONG_TYPE 0x10 +#define PREFIX_ZERO 0x20 + +BOOLEAN mSetupInfoDone = FALSE; +EFI_EXP_BASE10_DATA mProcessorFrequency; +EFI_EXP_BASE10_DATA mProcessorFsbFrequency; + +EFI_GUID mProcessorProducerGuid; +EFI_HII_HANDLE mHiiHandle; +SYSTEM_CONFIGURATION mSystemConfiguration; +EFI_PLATFORM_INFO_HOB *mPlatformInfo; +UINT8 mUseProductKey = 0; + +#define memset SetMem + +UINT16 mMemorySpeed = 0xffff; +EFI_PHYSICAL_ADDRESS mMemorySizeChannelASlot0 = 0; +UINT16 mMemorySpeedChannelASlot0 = 0xffff; +EFI_PHYSICAL_ADDRESS mMemorySizeChannelASlot1 = 0; +UINT16 mMemorySpeedChannelASlot1 = 0xffff; +EFI_PHYSICAL_ADDRESS mMemorySizeChannelBSlot0 = 0; +UINT16 mMemorySpeedChannelBSlot0 = 0xffff; +EFI_PHYSICAL_ADDRESS mMemorySizeChannelBSlot1 = 0; +UINT16 mMemorySpeedChannelBSlot1 = 0xffff; +EFI_PHYSICAL_ADDRESS mMemorySizeChannelCSlot0 = 0; +UINT16 mMemorySpeedChannelCSlot0 = 0xffff; +EFI_PHYSICAL_ADDRESS mMemorySizeChannelCSlot1 = 0; +UINT16 mMemorySpeedChannelCSlot1 = 0xffff; +UINTN mMemoryMode = 0xff; + +#define CHARACTER_NUMBER_FOR_VALUE 30 +typedef struct { + EFI_STRING_TOKEN MemoryDeviceLocator; + EFI_STRING_TOKEN MemoryBankLocator; + EFI_STRING_TOKEN MemoryManufacturer; + EFI_STRING_TOKEN MemorySerialNumber; + EFI_STRING_TOKEN MemoryAssetTag; + EFI_STRING_TOKEN MemoryPartNumber; + EFI_INTER_LINK_DATA MemoryArrayLink; + EFI_INTER_LINK_DATA MemorySubArrayLink; + UINT16 MemoryTotalWidth; + UINT16 MemoryDataWidth; + UINT64 MemoryDeviceSize; + EFI_MEMORY_FORM_FACTOR MemoryFormFactor; + UINT8 MemoryDeviceSet; + EFI_MEMORY_ARRAY_TYPE MemoryType; + EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail; + UINT16 MemorySpeed; + EFI_MEMORY_STATE MemoryState; +} EFI_MEMORY_ARRAY_LINK; + + +typedef struct { + EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress; + EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress; + EFI_INTER_LINK_DATA PhysicalMemoryArrayLink; + UINT16 MemoryArrayPartitionWidth; +} EFI_MEMORY_ARRAY_START_ADDRESS; + + +/** + VSPrint worker function that prints a Value as a decimal number in Buffer + + @param[in] Buffer Location to place ASCII decimal number string of Value. + @param[in] Value Decimal value to convert to a string in Buffer. + @param[in] Flags Flags to use in printing decimal string, see file header for details. + @param[in] Width Width of hex value. + + @return Number of characters printed. + +**/ +UINTN +EfiValueToString ( + IN OUT CHAR16 *Buffer, + IN INT64 Value, + IN UINTN Flags, + IN UINTN Width + ) +{ + CHAR16 TempBuffer[CHARACTER_NUMBER_FOR_VALUE]; + CHAR16 *TempStr; + CHAR16 *BufferPtr; + UINTN Count; + UINTN ValueCharNum; + UINTN Remainder; + CHAR16 Prefix; + UINTN Index; + BOOLEAN ValueIsNegative; + UINT64 TempValue; + + TempStr = TempBuffer; + BufferPtr = Buffer; + Count = 0; + ValueCharNum = 0; + ValueIsNegative = FALSE; + + if (Width > CHARACTER_NUMBER_FOR_VALUE - 1) { + Width = CHARACTER_NUMBER_FOR_VALUE - 1; + } + + if (Value < 0) { + Value = -Value; + ValueIsNegative = TRUE; + } + + do { + TempValue = Value; + Value = (INT64) DivU64x32 ((UINT64) Value, 10); + Remainder = (UINTN) ((UINT64) TempValue - 10 * Value); + *(TempStr++) = (CHAR16) (Remainder + '0'); + ValueCharNum++; + Count++; + if ((Flags & COMMA_TYPE) == COMMA_TYPE) { + if (ValueCharNum % 3 == 0 && Value != 0) { + *(TempStr++) = ','; + Count++; + } + } + } while (Value != 0); + + if (ValueIsNegative) { + *(TempStr++) = '-'; + Count++; + } + + if ((Flags & PREFIX_ZERO) && !ValueIsNegative) { + Prefix = '0'; + } else { + Prefix = ' '; + } + + Index = Count; + if (!(Flags & LEFT_JUSTIFY)) { + for (; Index < Width; Index++) { + *(TempStr++) = Prefix; + } + } + + // + // Reverse temp string into Buffer. + // + if (Width > 0 && (UINTN) (TempStr - TempBuffer) > Width) { + TempStr = TempBuffer + Width; + } + Index = 0; + while (TempStr != TempBuffer) { + *(BufferPtr++) = *(--TempStr); + Index++; + } + + *BufferPtr = 0; + return Index; +} + +static CHAR16 mHexStr[] = { L'0', L'1', L'2', L'3', L'4', L'5', L'6', L'7', + L'8', L'9', L'A', L'B', L'C', L'D', L'E', L'F' }; + +/** + VSPrint worker function that prints a Value as a hex number in Buffer + + @param[in] Buffer Location to place ASCII hex string of Value. + @param[in] Value Hex value to convert to a string in Buffer. + @param[in] Flags Flags to use in printing Hex string, see file header for details. + @param[in] Width Width of hex value. + + @return Number of characters printed. + +**/ +UINTN +EfiValueToHexStr ( + IN OUT CHAR16 *Buffer, + IN UINT64 Value, + IN UINTN Flags, + IN UINTN Width + ) +{ + CHAR16 TempBuffer[CHARACTER_NUMBER_FOR_VALUE]; + CHAR16 *TempStr; + CHAR16 Prefix; + CHAR16 *BufferPtr; + UINTN Count; + UINTN Index; + + TempStr = TempBuffer; + BufferPtr = Buffer; + + // + // Count starts at one since we will null terminate. Each iteration of the + // loop picks off one nibble. Oh yea TempStr ends up backwards + // + Count = 0; + + if (Width > CHARACTER_NUMBER_FOR_VALUE - 1) { + Width = CHARACTER_NUMBER_FOR_VALUE - 1; + } + + do { + Index = ((UINTN)Value & 0xf); + *(TempStr++) = mHexStr[Index]; + Value = RShiftU64 (Value, 4); + Count++; + } while (Value != 0); + + if (Flags & PREFIX_ZERO) { + Prefix = '0'; + } else { + Prefix = ' '; + } + + Index = Count; + if (!(Flags & LEFT_JUSTIFY)) { + for (; Index < Width; Index++) { + *(TempStr++) = Prefix; + } + } + + // + // Reverse temp string into Buffer. + // + if (Width > 0 && (UINTN) (TempStr - TempBuffer) > Width) { + TempStr = TempBuffer + Width; + } + Index = 0; + while (TempStr != TempBuffer) { + *(BufferPtr++) = *(--TempStr); + Index++; + } + + *BufferPtr = 0; + return Index; +} + + +/** + Converts MAC address to Unicode string. + The value is 64-bit and the resulting string will be 12 + digit hex number in pairs of digits separated by dashes. + + @param[in] String String that will contain the value + @param[in] MacAddr MAC Address + @param[in] AddrSize The size of MAC Address. + + @return The Unicode String. + +**/ +CHAR16 * +StrMacToString ( + OUT CHAR16 *String, + IN EFI_MAC_ADDRESS *MacAddr, + IN UINT32 AddrSize + ) +{ + UINT32 i; + + for (i = 0; i < AddrSize; i++) { + EfiValueToHexStr ( + &String[2 * i], + MacAddr->Addr[i] & 0xFF, + PREFIX_ZERO, + 2 + ); + } + + // + // Terminate the string. + // + String[2 * AddrSize] = L'\0'; + + return String; +} + + +VOID +UpdateLatestBootTime ( + ) +{ + UINTN VarSize; + EFI_STATUS Status; + UINT64 TimeValue; + CHAR16 Buffer[40]; + + if (mSystemConfiguration.LogBootTime != 1) { + return; + } + + VarSize = sizeof (TimeValue); + Status = gRT->GetVariable ( + BOOT_TIME_NAME, + &gEfiNormalSetupGuid, + NULL, + &VarSize, + &TimeValue + ); + + if (EFI_ERROR (Status)) { + return; + } + + UnicodeSPrint (Buffer, sizeof (Buffer), L"%d ms", (UINT32) TimeValue); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_LOG_BOOT_TIME_VALUE), Buffer, NULL); +} + + +/** + Get Cache Type for the specified Cache. This function is invoked when there is data records + available in the Data Hub. + + @param[in] Instance The instance number of the subclass with the same ProducerName.. + @param[in] SubInstance The instance number of the RecordType for the same Instance. + @param[in] CacheType Cache type, see definition of EFI_CACHE_TYPE_DATA. + + @retval EFI_STATUS + +**/ +EFI_STATUS +GetCacheType ( + IN UINT16 Instance, + IN UINT16 SubInstance, + IN EFI_CACHE_TYPE_DATA* CacheType + ) +{ + EFI_STATUS Status; + EFI_DATA_HUB_PROTOCOL *DataHub; + EFI_DATA_RECORD_HEADER *Record; + UINT64 MonotonicCount; + EFI_CACHE_VARIABLE_RECORD* CacheVariableRecord; + EFI_SUBCLASS_TYPE1_HEADER *DataHeader; + + Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, (VOID **) &DataHub); + ASSERT_EFI_ERROR (Status); + + // + // Get all available data records from data hub + // + MonotonicCount = 0; + Record = NULL; + + do { + Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record); + if (!EFI_ERROR (Status)) { + if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) { + DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1); + if (CompareGuid(&Record->DataRecordGuid, &gEfiCacheSubClassGuid) && + (DataHeader->RecordType == CacheTypeRecordType) && + (DataHeader->Instance == Instance) && + (DataHeader->SubInstance == SubInstance)) { + CacheVariableRecord = (EFI_CACHE_VARIABLE_RECORD *) (DataHeader + 1); + if(CacheType){ + *CacheType = CacheVariableRecord->CacheType; + return EFI_SUCCESS; + } + } + } + } + } while (!EFI_ERROR (Status) && (MonotonicCount != 0)); + + return EFI_NOT_FOUND; +} + + +VOID +PrepareSetupInformation ( + ) +{ + EFI_STATUS Status; + EFI_DATA_HUB_PROTOCOL *DataHub; + EFI_DATA_RECORD_HEADER *Record; + UINT8 *SrcData; + UINT32 SrcDataSize; + EFI_SUBCLASS_TYPE1_HEADER *DataHeader; + CHAR16 *NewString; + CHAR16 *NewString2; + STRING_REF TokenToUpdate; + UINTN Index; + UINT16 EeState; + UINTN DataOutput; + CPU_INFO *GetCpuInfo; + CPU_INFO_PROTOCOL *DxeCpuInfo; + MSR_REGISTER MicroCodeVersion; + EFI_MEMORY_ARRAY_START_ADDRESS *MemoryArray; + EFI_MEMORY_ARRAY_LINK *MemoryArrayLink; + UINT64 MonotonicCount; + CHAR16 Version[100]; //Assuming that strings are < 100 UCHAR + CHAR16 ReleaseDate[100]; //Assuming that strings are < 100 UCHAR + CHAR16 ReleaseTime[100]; //Assuming that strings are < 100 UCHAR + VOID *HobList; + VOID *HobData; + UINTN DataSize; + MRC_PARAMS_SAVE_RESTORE *MemInfoHob; + UINT32 MrcVersion; + CHAR16 Buffer[0x10]; + UINT16 MemFreqTable[11] = {800, 1066, 1333, 1600, 1866, 2133, 2400, 2666, 3200, 0000, 3777}; + HobData = NULL; + MemInfoHob = NULL; + UINT32 Zid; + UINT16 ZidUnicode[11]; + + NewString = AllocateZeroPool (0x100); + if (NewString == NULL) + return; + + NewString2 = AllocateZeroPool (0x100); + if (NewString2 == NULL) + return; + + SetMem (Version, sizeof (Version), 0); + SetMem (ReleaseDate, sizeof (ReleaseDate), 0); + SetMem (ReleaseTime, sizeof (ReleaseTime), 0); + + // + // Initialize EE state for not to show EE related setup options + // + EeState = 0; + + // + // Get the Data Hub Protocol. Assume only one instance + // + Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, (VOID **) &DataHub); + ASSERT_EFI_ERROR(Status); + + // + // Get all available data records from data hub + // + MonotonicCount = 0; + Record = NULL; + + do { + Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record); + if (!EFI_ERROR (Status)) { + if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) { + DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1); + SrcData = (UINT8 *) (DataHeader + 1); + SrcDataSize = Record->RecordSize - Record->HeaderSize - sizeof (EFI_SUBCLASS_TYPE1_HEADER); + + // + // Memory + // + if (CompareGuid (&Record->DataRecordGuid, &gEfiMemorySubClassGuid)) { + switch (DataHeader->RecordType) { + case EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER: + MemoryArrayLink = (EFI_MEMORY_ARRAY_LINK *) SrcData; + if (MemoryArrayLink->MemorySpeed > 0) { + // + // Save the lowest speed memory module + // + if (MemoryArrayLink->MemorySpeed < mMemorySpeed) { + mMemorySpeed = MemoryArrayLink->MemorySpeed; + } + switch (DataHeader->SubInstance) { + case 1: + mMemorySpeedChannelASlot0 = MemoryArrayLink->MemorySpeed; + mMemorySizeChannelASlot0 = MemoryArrayLink->MemoryDeviceSize; + break; + + case 2: + mMemorySpeedChannelASlot1 = MemoryArrayLink->MemorySpeed; + mMemorySizeChannelASlot1 = MemoryArrayLink->MemoryDeviceSize; + break; + + case 3: + mMemorySpeedChannelBSlot0 = MemoryArrayLink->MemorySpeed; + mMemorySizeChannelBSlot0 = MemoryArrayLink->MemoryDeviceSize; + break; + + case 4: + mMemorySpeedChannelBSlot1 = MemoryArrayLink->MemorySpeed; + mMemorySizeChannelBSlot1 = MemoryArrayLink->MemoryDeviceSize; + break; + + case 5: + mMemorySpeedChannelCSlot0 = MemoryArrayLink->MemorySpeed; + mMemorySizeChannelCSlot0 = MemoryArrayLink->MemoryDeviceSize; + break; + + case 6: + mMemorySpeedChannelCSlot1 = MemoryArrayLink->MemorySpeed; + mMemorySizeChannelCSlot1 = MemoryArrayLink->MemoryDeviceSize; + break; + + default: + break; + } + } + break; + + case EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER: + MemoryArray = (EFI_MEMORY_ARRAY_START_ADDRESS *) SrcData; + if (MemoryArray->MemoryArrayEndAddress - MemoryArray->MemoryArrayStartAddress) { + DataOutput = (UINTN) RShiftU64 ((MemoryArray->MemoryArrayEndAddress - MemoryArray->MemoryArrayStartAddress + 1), 20); + EfiValueToString (NewString, DataOutput / 1024, PREFIX_ZERO, 0); + if (DataOutput % 1024) { + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"."); + DataOutput = ((DataOutput % 1024) * 1000) / 1024; + while (!(DataOutput % 10)) + DataOutput = DataOutput / 10; + EfiValueToString (NewString2, DataOutput, PREFIX_ZERO, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), NewString2); + } + StrCatS (NewString, 0x100 / sizeof (CHAR16), L" GB"); + TokenToUpdate = (STRING_REF) STR_TOTAL_MEMORY_SIZE_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + } + break; + + default: + break; + } + } + } + } + } while (!EFI_ERROR (Status) && (MonotonicCount != 0)); + + // + // Update Cache data + // + // + // Locate DxeCpuInfo protocol instance and gather CPU information + // + Status = gBS->LocateProtocol (&gCpuInfoProtocolGuid, NULL, (VOID **) &DxeCpuInfo); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR,"Failed to locate DxeCpuInfo Protocol\n")); + return; + } + + GetCpuInfo = DxeCpuInfo->CpuInfo; + GetCpuInfo->BrandString = DxeCpuInfo->CpuInfo->BrandString; + GetCpuInfo->CacheInfo = DxeCpuInfo->CpuInfo->CacheInfo; + + for (Index = 0; Index <= GetCpuInfo->MaxCacheSupported; ++ Index){ + switch (GetCpuInfo->CacheInfo[Index].Level) { + case 1: + if (GetCpuInfo->CacheInfo[Index].Type == 1) { + EfiValueToString (NewString, GetCpuInfo->CacheInfo[Index].Size, PREFIX_ZERO, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16) , L" KB"); + TokenToUpdate = (STRING_REF) STR_PROCESSOR_L1_DATA_CACHE_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + } else if (GetCpuInfo->CacheInfo[Index].Type == 2) { + EfiValueToString (NewString, GetCpuInfo->CacheInfo[Index].Size, PREFIX_ZERO, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), L" KB"); + TokenToUpdate = (STRING_REF) STR_PROCESSOR_L1_INSTR_CACHE_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + } + break; + + case 2: + EfiValueToString (NewString, GetCpuInfo->CacheInfo[Index].Size, PREFIX_ZERO, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), L" KB"); + TokenToUpdate = (STRING_REF) STR_PROCESSOR_L2_CACHE_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + break; + + case 3: + break; + + case 4: + break; + } + } + + // + // Update processor information + // + EfiValueToString (NewString, GetCpuInfo->IntendedFreq, PREFIX_ZERO, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), L" MHz"); + TokenToUpdate = (STRING_REF) STR_PROCESSOR_SPEED_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + + AsciiStrToUnicodeStr (GetCpuInfo->BrandString, NewString); + TokenToUpdate = (STRING_REF) STR_PROCESSOR_VERSION_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + + // + // Get PCD ZID and update String + // + Zid = PcdGet32 (PcdIfwiZid); + TokenToUpdate = (STRING_REF) STR_ZID_VERSION_VALUE; + UnicodeValueToString (ZidUnicode, PREFIX_ZERO | RADIX_HEX, Zid, 8); + HiiSetString (mHiiHandle, TokenToUpdate, ZidUnicode, NULL); + + // + // Update the Microcode Revision + // + MicroCodeVersion.Qword = AsmReadMsr64 (0x8b); + EfiValueToHexStr (NewString, MicroCodeVersion.Dwords.High, PREFIX_ZERO, 8); + TokenToUpdate = (STRING_REF) STR_PROCESSOR_MICROCODE_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + + Status = GetBiosVersionDateTime (Version, ReleaseDate, ReleaseTime); + + DEBUG ((EFI_D_INFO, "GetBiosVersionDateTime :%s %s %s \n", Version, ReleaseDate, ReleaseTime)); + if (!EFI_ERROR (Status)) { + UINTN Length = 0; + CHAR16 *BuildDateTime; + + Length = StrLen (ReleaseDate) + StrLen (ReleaseTime); + + BuildDateTime = AllocateZeroPool ((Length + 2) * sizeof (CHAR16)); + if (BuildDateTime == NULL) + return; + + StrCpyS (BuildDateTime, (Length + 2), ReleaseDate); + StrCatS (BuildDateTime, (Length + 2), L" "); + StrCatS (BuildDateTime, (Length + 2), ReleaseTime); + + TokenToUpdate = (STRING_REF) STR_BIOS_VERSION_VALUE; + DEBUG ((EFI_D_INFO, "update STR_BIOS_VERSION_VALUE\n")); + HiiSetString (mHiiHandle, TokenToUpdate, Version, NULL); + + TokenToUpdate = (STRING_REF) STR_BIOS_BUILD_TIME_VALUE; + DEBUG ((EFI_D_INFO, "update STR_BIOS_BUILD_TIME_VALUE\n")); + HiiSetString (mHiiHandle, TokenToUpdate, BuildDateTime, NULL); + } + + // + // Update UEFI Core Version in Main Page + // + UnicodeSPrint (Buffer, sizeof (Buffer), L"UEFI v%d.%02d", (gST->Hdr.Revision & 0xFFFF0000) >> 16, (gST->Hdr.Revision & 0x0000FFFF)); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_CORE_VERSION_VALUE), Buffer, NULL); + + // + // Get the HOB list. If it is not present, then ASSERT. + // + Status = EfiGetSystemConfigurationTable (&gEfiHobListGuid, &HobList); + ASSERT_EFI_ERROR (Status); + + // + // Search for the Memory Configuration GUID HOB. If it is not present, then + // there's nothing we can do. It may not exist on the update path. + // +#ifndef FSP_WRAPPER_FLAG + if ((HobList = GetNextGuidHob (&gEfiMemoryConfigDataGuid, HobList)) != NULL) { + HobData = GET_GUID_HOB_DATA (HobList); + DataSize = GET_GUID_HOB_DATA_SIZE (HobList); + MemInfoHob = (MRC_PARAMS_SAVE_RESTORE *) HobData; + } +#else + if ((HobList = GetNextGuidHob (&gFspNonVolatileStorageHobGuid, HobList)) != NULL) { + HobData = GET_GUID_HOB_DATA (HobList); + DataSize = GET_GUID_HOB_DATA_SIZE (HobList); + MemInfoHob = (MRC_PARAMS_SAVE_RESTORE *) HobData; + } +#endif + + // + // Calculate and update memory speed display in Main Page + // + if (!EFI_ERROR (Status) && NULL != HobData ) { + EfiValueToString (NewString, MemFreqTable[(UINT8) (MemInfoHob->CurrentFrequency)], PREFIX_ZERO, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), L" MHz"); + TokenToUpdate = (STRING_REF) STR_SYSTEM_MEMORY_SPEED_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + DEBUG ((EFI_D_INFO, "update memory speed:MRC_ID = %d, %dMHz\n", MemInfoHob->CurrentFrequency, MemFreqTable[(UINT8)(MemInfoHob->CurrentFrequency)])); + } + + // + // update memory size display in Main Page + // + if (!EFI_ERROR (Status) && NULL != HobData ) { + EfiValueToString (NewString, (MemInfoHob->SystemMemorySize / 1024), PREFIX_ZERO, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), L" GB"); + TokenToUpdate = (STRING_REF) STR_TOTAL_MEMORY_SIZE_VALUE; + HiiSetString (mHiiHandle, TokenToUpdate, NewString, NULL); + DEBUG ((EFI_D_INFO, "update total memory size:%dMB, %dGB\n", MemInfoHob->SystemMemorySize, MemInfoHob->SystemMemorySize/1024)); + } + + // + //Update MRC Version + // + if (!EFI_ERROR (Status) && NULL != HobData ) { + MrcVersion = MemInfoHob->MrcVer >> 16; + MrcVersion &= 0xffff; + Index = EfiValueToString (Buffer, MrcVersion/256, PREFIX_ZERO, 0); + StrCatS (Buffer, sizeof (Buffer) / sizeof (CHAR16), L"."); + EfiValueToString (Buffer + Index + 1, MrcVersion%256, PREFIX_ZERO, 0); + HiiSetString (mHiiHandle,STRING_TOKEN (STR_MRC_VERSION_VALUE), Buffer, NULL); + DEBUG ((EFI_D_INFO, "update MRC version:%x, %s\n", MemInfoHob->MrcVer, Buffer)); + } + + gBS->FreePool(NewString); + gBS->FreePool(NewString2); + + return; +} + + +EFI_STATUS +UpdateAdditionalInformation ( + ) +{ + EFI_STATUS Status; + UINT64 MonotonicCount; + EFI_DATA_HUB_PROTOCOL *DataHub; + EFI_DATA_RECORD_HEADER *Record; + EFI_SUBCLASS_TYPE1_HEADER *DataHeader; + EFI_MISC_SYSTEM_MANUFACTURER *SystemManufacturer; + UINTN Size; + + Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, (VOID **) &DataHub); + + ASSERT_EFI_ERROR (Status); + + Size = 3; + + MonotonicCount = 0; + Record = NULL; + do { + Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record); + if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) { + DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1); + + if (CompareGuid(&Record->DataRecordGuid, &gEfiMiscSubClassGuid) && + (DataHeader->RecordType == EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER)) { + // + // System Information + // + SystemManufacturer = (EFI_MISC_SYSTEM_MANUFACTURER *) (DataHeader + 1); + + } + } + } while (!EFI_ERROR (Status) && (MonotonicCount != 0)); + + UpdateLatestBootTime (); + + return EFI_SUCCESS; +} + + +VOID +UpdateCPUInformation ( + ) +{ + CHAR16 Buffer[40]; + UINT16 FamilyId; + UINT8 Model; + UINT8 SteppingId; + UINT8 ProcessorType; + EFI_STATUS Status; + EFI_MP_SERVICES_PROTOCOL *MpService; + UINTN MaximumNumberOfCPUs; + UINTN NumberOfEnabledCPUs; + EFI_CPUID_REGISTER CpuidRegs; + + AsmCpuid (1, &(CpuidRegs.RegEax), &(CpuidRegs.RegEbx), &(CpuidRegs.RegEcx), &(CpuidRegs.RegEdx)); + FamilyId = ((CpuidRegs.RegEax >> 8 )& 0xF); + Model = ((CpuidRegs.RegEax >> 4) & 0xF); + SteppingId = (CpuidRegs.RegEax & 0xF); + ProcessorType = ((CpuidRegs.RegEax>> 12) & 0x3); + // + // we need raw Model data + // + Model = Model & 0xf; + // + // Family/Model/Step + // + UnicodeSPrint (Buffer, sizeof (Buffer), L"%d/%d/%d", FamilyId, Model, SteppingId); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_PROCESSOR_ID_VALUE), Buffer, NULL); + + Status = gBS->LocateProtocol ( + &gEfiMpServiceProtocolGuid, + NULL, + (VOID **) &MpService + ); + if (!EFI_ERROR (Status)) { + // + // Determine the number of processors + // + MpService->GetNumberOfProcessors ( + MpService, + &MaximumNumberOfCPUs, + &NumberOfEnabledCPUs + ); + + UnicodeSPrint (Buffer, sizeof (Buffer), L"%d", MaximumNumberOfCPUs); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_PROCESSOR_CORE_VALUE), Buffer, NULL); + } +} + + +EFI_STATUS +SearchChildHandle ( + EFI_HANDLE Father, + EFI_HANDLE *Child + ) +{ + EFI_STATUS Status; + UINTN HandleIndex; + EFI_GUID **ProtocolGuidArray = NULL; + UINTN ArrayCount; + UINTN ProtocolIndex; + UINTN OpenInfoCount; + UINTN OpenInfoIndex; + EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenInfo = NULL; + UINTN HandleCount; + EFI_HANDLE *HandleBuffer= NULL; + + // + // Retrieve the list of all handles from the handle database + // + Status = gBS->LocateHandleBuffer ( + AllHandles, + NULL, + NULL, + &HandleCount, + &HandleBuffer + ); + + for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) { + // + // Retrieve the list of all the protocols on each handle + // + Status = gBS->ProtocolsPerHandle ( + HandleBuffer[HandleIndex], + &ProtocolGuidArray, + &ArrayCount + ); + + if (!EFI_ERROR (Status)) { + for (ProtocolIndex = 0; ProtocolIndex < ArrayCount; ProtocolIndex++) { + Status = gBS->OpenProtocolInformation ( + HandleBuffer[HandleIndex], + ProtocolGuidArray[ProtocolIndex], + &OpenInfo, + &OpenInfoCount + ); + + if (!EFI_ERROR (Status)) { + for (OpenInfoIndex = 0; OpenInfoIndex < OpenInfoCount; OpenInfoIndex++) { + if (OpenInfo[OpenInfoIndex].AgentHandle == Father) { + if ((OpenInfo[OpenInfoIndex].Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) == EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) { + *Child = HandleBuffer[HandleIndex]; + Status = EFI_SUCCESS; + goto TryReturn; + } + } + } + Status = EFI_NOT_FOUND; + } + } + if (OpenInfo != NULL) { + FreePool(OpenInfo); + OpenInfo = NULL; + } + } + FreePool (ProtocolGuidArray); + ProtocolGuidArray = NULL; + } + +TryReturn: + if (OpenInfo != NULL) { + FreePool (OpenInfo); + OpenInfo = NULL; + } + if (ProtocolGuidArray != NULL) { + FreePool (ProtocolGuidArray); + ProtocolGuidArray = NULL; + } + if (HandleBuffer != NULL) { + FreePool (HandleBuffer); + HandleBuffer = NULL; + } + return Status; +} + + +EFI_STATUS +JudgeHandleIsPCIDevice( + EFI_HANDLE Handle, + UINT8 Device, + UINT8 Funs + ) +{ + EFI_STATUS Status; + EFI_DEVICE_PATH *DPath; + EFI_DEVICE_PATH *DevicePath; + + Status = gBS->HandleProtocol ( + Handle, + &gEfiDevicePathProtocolGuid, + (VOID **) &DPath + ); + + if (!EFI_ERROR (Status)) { + DevicePath = DPath; + while (!IsDevicePathEnd (DPath)) { + if ((DPath->Type == HARDWARE_DEVICE_PATH) && (DPath->SubType == HW_PCI_DP)) { + PCI_DEVICE_PATH *PCIPath; + + PCIPath = (PCI_DEVICE_PATH *) DPath; + DPath = NextDevicePathNode (DPath); + if (IsDevicePathEnd (DPath) && (PCIPath->Device == Device) && (PCIPath->Function == Funs)) { + return EFI_SUCCESS; + } + } else { + DPath = NextDevicePathNode (DPath); + } + } + } + + return EFI_UNSUPPORTED; +} + + +EFI_STATUS +GetDriverName ( + EFI_HANDLE Handle, + CHAR16 *Name + ) +{ + EFI_DRIVER_BINDING_PROTOCOL *BindHandle = NULL; + EFI_STATUS Status; + UINT32 Version; + UINT32 *Ptr; + + Status = gBS->OpenProtocol( + Handle, + &gEfiDriverBindingProtocolGuid, + (VOID**) &BindHandle, + NULL, + NULL, + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + + if (EFI_ERROR (Status)) { + return EFI_NOT_FOUND; + } + + Version = BindHandle->Version; + Ptr = (UINT32 *) &Version; + UnicodeSPrint (Name, 40, L"%d.%d.%04d", (*(Ptr) & 0xff000000) >> 24, (*(Ptr) & 0x00ff0000) >> 16, (*Ptr) & 0x0000ffff); + + return EFI_SUCCESS; +} + + +EFI_STATUS +GetGOPDriverName ( + CHAR16 *Name + ) +{ + UINTN HandleCount; + EFI_HANDLE *Handles= NULL; + UINTN Index; + EFI_STATUS Status; + EFI_HANDLE Child = 0; + + Status = gBS->LocateHandleBuffer( + ByProtocol, + &gEfiDriverBindingProtocolGuid, + NULL, + &HandleCount, + &Handles + ); + + for (Index = 0; Index < HandleCount ; Index++) { + Status = SearchChildHandle (Handles[Index], &Child); + if (!EFI_ERROR (Status)) { + Status = JudgeHandleIsPCIDevice (Child, 0x02, 0x00); + if (!EFI_ERROR (Status)) { + return GetDriverName (Handles[Index], Name); + } + } + } + + return EFI_UNSUPPORTED; +} + + +EFI_STATUS +GetImageFwVersion ( + VOID + ) +{ + EFI_STATUS Status; + FW_VERSION_CMD_RESP_DATA MsgGetFwVersionRespData; + UINT8 Index; + CHAR16 Buffer[40]; + CHAR8 *CseManName; + CHAR8 *IshManName; + + DEBUG ((EFI_D_INFO, "Executing GetImageFwVersion().\n")); + SetMem (&MsgGetFwVersionRespData, sizeof (FW_VERSION_CMD_RESP_DATA), 0x0); + SetMem (Buffer, sizeof (Buffer), 0x0); + CseManName = "FTPR.man"; //CSE manifest file name + IshManName = "ISHC.man"; //ISH manifest file name + + Status = HeciGetImageFwVerMsg (&MsgGetFwVersionRespData); + if (EFI_ERROR (Status)) { + return Status; + } + + for (Index = 0; Index < MAX_IMAGE_MODULE_NUMBER; Index++) { + if (!CompareMem (MsgGetFwVersionRespData.ModuleEntries[Index].EntryName, CseManName, AsciiStrLen (CseManName))) { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%d.%d.%d.%d", + MsgGetFwVersionRespData.ModuleEntries[Index].Major, + MsgGetFwVersionRespData.ModuleEntries[Index].Minor, + MsgGetFwVersionRespData.ModuleEntries[Index].Hotfix, + MsgGetFwVersionRespData.ModuleEntries[Index].Build); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_TXE_FW_VALUE), Buffer, NULL); + } + + if (!CompareMem (MsgGetFwVersionRespData.ModuleEntries[Index].EntryName, IshManName, AsciiStrLen (IshManName))) { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%d.%d.%d.%d", + MsgGetFwVersionRespData.ModuleEntries[Index].Major, + MsgGetFwVersionRespData.ModuleEntries[Index].Minor, + MsgGetFwVersionRespData.ModuleEntries[Index].Hotfix, + MsgGetFwVersionRespData.ModuleEntries[Index].Build); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_ISH_FW_VALUE), Buffer, NULL); + } + } + + return EFI_SUCCESS; +} + + +EFI_STATUS +UpdatePlatformInformation ( + ) +{ + UINT32 MicroCodeVersion; + CHAR16 Buffer[40]; + UINT8 IgdVbiosRevH; + UINT8 IgdVbiosRevL; + UINT16 Edx; + EFI_IA32_REGISTER_SET RegSet; + EFI_LEGACY_BIOS_PROTOCOL *LegacyBios = NULL; + EFI_STATUS Status; + UINT8 CpuFlavor = 0; + EFI_PEI_HOB_POINTERS GuidHob; + EFI_PLATFORM_INFO_HOB *PlatformInfo = NULL; + UINT8 Data8; + CHAR16 Name[40]; + UINT32 SocVersion; + UINT8 PMCVersion[8]; + EFI_CPUID_REGISTER CpuidRegs; + GET_BOARD_NAME GetBoardNameFunc; + + Data8 = 0; + // + // Get the HOB list. If it is not present, then ASSERT. + // + GuidHob.Raw = GetHobList (); + if (GuidHob.Raw != NULL) { + if ((GuidHob.Raw = GetNextGuidHob (&gEfiPlatformInfoGuid, GuidHob.Raw)) != NULL) { + PlatformInfo = GET_GUID_HOB_DATA (GuidHob.Guid); + } + } + + // + // Update VBIOS version in Setup + // + Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, &LegacyBios); + if (!EFI_ERROR (Status)) { + RegSet.X.AX = 0x5f01; + Status = LegacyBios->Int86 (LegacyBios, 0x10, &RegSet); + ASSERT_EFI_ERROR(Status); + + // + // Simulate int15 (AX = 5f01) handler + // + Edx = (UINT16) ((RegSet.E.EBX >> 16) & 0xffff); + IgdVbiosRevH = (UINT8) (((Edx & 0x0F00) >> 4) | (Edx & 0x000F)); + IgdVbiosRevL = (UINT8) (((RegSet.X.BX & 0x0F00) >> 4) | (RegSet.X.BX & 0x000F)); + + if ((IgdVbiosRevH == 0) && (IgdVbiosRevL == 0)) { + HiiSetString (mHiiHandle, STRING_TOKEN (STR_CHIP_IGD_VBIOS_REV_VALUE), L"N/A", NULL); + } else { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%02X%02X", IgdVbiosRevH, IgdVbiosRevL); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_CHIP_IGD_VBIOS_REV_VALUE), Buffer, NULL); + } + } + + Status = GetGOPDriverName (Name); + + if (!EFI_ERROR (Status)) { + HiiSetString (mHiiHandle, STRING_TOKEN (STR_GOP_VALUE), Name, NULL); + } + + AsmCpuid (1, &(CpuidRegs.RegEax), &(CpuidRegs.RegEbx), &(CpuidRegs.RegEcx), &(CpuidRegs.RegEdx)); + CpuFlavor = (UINT8) ((CpuidRegs.RegEax) & 0x8) >> 3; + + switch (CpuFlavor) { + case 0x0: + UnicodeSPrint (Buffer, sizeof (Buffer), L"%s (%01x)", L"BXT IVI", CpuFlavor); + break; + + case 0x1: + UnicodeSPrint (Buffer, sizeof (Buffer), L"%s (%01x)", L"BXT Notebook/Desktop", CpuFlavor); + break; + + default: + UnicodeSPrint (Buffer, sizeof (Buffer), L"%s (%01x)", L"Unknown CPU", CpuFlavor); + break; + } + HiiSetString (mHiiHandle, STRING_TOKEN (STR_CPU_FLAVOR_VALUE), Buffer, NULL); + + if (PlatformInfo != NULL) { + // + // BoardId + // + DEBUG ((EFI_D_INFO, "UpdatePlatformInformation(): calling GetBoardName()\n")); + GetBoardNameFunc = (GET_BOARD_NAME) (UINTN) PcdGet64 (PcdGetBoardNameFunc); + UnicodeSPrint (Buffer, sizeof (Buffer), GetBoardNameFunc (PlatformInfo->BoardId)); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_BOARD_ID_VALUE), Buffer, NULL); + + // + // FAB ID is read from EC, 0x00 means FAB1 + // + if (mPlatformInfo->BoardRev == 0x00) { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%s", L"FAB A"); + } else if (mPlatformInfo->BoardRev == 0x01) { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%s", L"FAB B"); + } else { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%s", L"FAB C"); + } + HiiSetString (mHiiHandle,STRING_TOKEN(STR_FAB_ID_VALUE), Buffer, NULL); + } + // + // Update SOC Version + // + switch (BxtStepping()) { + case BxtPA0: + SocVersion = 0xA0; + break; + + case BxtPB0: + SocVersion = 0xB0; + break; + + case BxtPB1: + SocVersion = 0xB1; + break; + + case BxtPB2: + SocVersion = 0xB2; + break; + + default: + SocVersion = 0x00; + break; + } + UnicodeSPrint (Buffer, sizeof (Buffer), L"%x", SocVersion); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_SOC_VALUE), Buffer, NULL); + + + // + // Microcode Revision + // + MicroCodeVersion = (UINT32) RShiftU64 (AsmReadMsr64 (MSR_IA32_BIOS_SIGN_ID), 32); + UnicodeSPrint (Buffer, sizeof (Buffer), L"%x", MicroCodeVersion); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_PROCESSOR_MICROCODE_VALUE), Buffer, NULL); + + // + // Punit Revision + // + HiiSetString (mHiiHandle, STRING_TOKEN (STR_PUNIT_FW_VALUE), Buffer, NULL); + + // + // PMC FW Revision + // + IpcSendCommandEx (IPC_CMD_ID_PMC_VER, IPC_SUBCMD_ID_PMC_VER_READ, PMCVersion, 8); + UnicodeSPrint (Buffer, sizeof (Buffer), L"%02x.%02x", PMCVersion[1], PMCVersion[0]); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_PMC_FW_VALUE), Buffer, NULL); + + // + // CSE and ISH FW Revision + // + Status = GetImageFwVersion (); + + return EFI_SUCCESS; +} + + +#ifdef SATA_SUPPORT +/** + Update SATA Drive size Strings for Setup and Boot order + + @param[in] NewString Pointer to string. + @param[in] DeviceSpeed Speed of drive. + + @retval + +**/ +VOID +GetDeviceSpeedString ( + CHAR16 *NewString, + IN UINTN DeviceSpeed + ) +{ + if (DeviceSpeed == 0x01) { + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"1.5Gb/s"); + } else if (DeviceSpeed == 0x02) { + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"3.0Gb/s"); + } else if (DeviceSpeed == 0x03) { + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"6.0Gb/s"); + } else if (DeviceSpeed == 0x0) { + } +} + + +UINT8 +GetChipsetSataPortSpeed ( + UINTN PortNum + ) +{ + UINT32 DeviceSpeed; + UINT8 DeviceConfigStatus; + UINT32 IdeAhciBar; + EFI_PHYSICAL_ADDRESS MemBaseAddress = 0; + UINT8 FunNum; + EFI_STATUS Status; + + DeviceSpeed = 0x01; // generation 1 + + // + // Allocate the AHCI BAR + // + FunNum = PCI_FUNCTION_NUMBER_SATA; + MemBaseAddress = 0x0ffffffff; + Status = gDS->AllocateMemorySpace ( + EfiGcdAllocateMaxAddressSearchBottomUp, + EfiGcdMemoryTypeMemoryMappedIo, + N_SATA_AHCI_BAR_ALIGNMENT, // 2^11: 2K Alignment + V_SATA_AHCI_BAR_LENGTH, // 2K Length + &MemBaseAddress, + mImageHandle, + NULL + ); + + IdeAhciBar = MmioRead32 ( + MmPciAddress (0, + 0, + PCI_DEVICE_NUMBER_SATA, + FunNum, + R_SATA_AHCI_BAR + ) + ); + IdeAhciBar &= 0xFFFFF800; + DeviceConfigStatus = 0; + if (IdeAhciBar == 0) { + DeviceConfigStatus = 1; + IdeAhciBar = (UINT32)MemBaseAddress; + MmioWrite32 (MmPciAddress (0, 0, PCI_DEVICE_NUMBER_SATA, FunNum, R_SATA_AHCI_BAR), IdeAhciBar); + MmioOr16 (MmPciAddress (0, 0, PCI_DEVICE_NUMBER_SATA, FunNum, R_SATA_COMMAND), B_SATA_COMMAND_MSE); + } + + switch (PortNum) { + case 0: + DeviceSpeed = *(volatile UINT32 *) (UINTN) (IdeAhciBar + R_SATA_AHCI_P0SSTS); + break; + case 1: + DeviceSpeed = *(volatile UINT32 *) (UINTN) (IdeAhciBar + R_SATA_AHCI_P1SSTS); + break; + } + + if (MemBaseAddress) { + gDS->FreeMemorySpace ( + MemBaseAddress, + V_SATA_AHCI_BAR_LENGTH + ); + } + + if (DeviceConfigStatus) { + IdeAhciBar = 0; + MmioWrite32 (MmPciAddress (0, 0, PCI_DEVICE_NUMBER_SATA, FunNum, R_SATA_AHCI_BAR), IdeAhciBar); + } + + DeviceSpeed = (UINT8)((DeviceSpeed >> 4) & 0x0F); + + return (UINT8)DeviceSpeed; +} + + +VOID +IdeDataFilter ( + VOID + ) +{ + EFI_STATUS Status; + UINTN HandleCount; + EFI_HANDLE *HandleBuffer; + EFI_DISK_INFO_PROTOCOL *DiskInfo; + EFI_DEVICE_PATH_PROTOCOL *DevicePath, *DevicePathNode; + PCI_DEVICE_PATH *PciDevicePath; + UINTN Index; + UINT8 Index1; + UINT32 BufferSize; + UINT32 DriveSize; + UINT32 IdeChannel; + UINT32 IdeDevice; + EFI_ATA_IDENTIFY_DATA *IdentifyDriveInfo; + CHAR16 *NewString; + CHAR16 SizeString[20]; + STRING_REF NameToUpdate; + CHAR8 StringBuffer[0x100]; + UINT32 DeviceSpeed; + UINTN PortNumber; + + // + // Assume no line strings is longer than 256 bytes. + // + NewString = AllocateZeroPool (0x100); + if (NewString == NULL) + return; + + PciDevicePath = NULL; + // + // Fill IDE Infomation + // + Status = gBS->LocateHandleBuffer ( + ByProtocol, + &gEfiDiskInfoProtocolGuid, + NULL, + &HandleCount, + &HandleBuffer + ); + + if (EFI_ERROR (Status)) { + return; + } + + for (Index = 0; Index < HandleCount; Index++) { + Status = gBS->HandleProtocol ( + HandleBuffer[Index], + &gEfiDevicePathProtocolGuid, + (VOID **) &DevicePath + ); + ASSERT_EFI_ERROR (Status); + + DevicePathNode = DevicePath; + while (!IsDevicePathEnd (DevicePathNode) ) { + if ((DevicePathType (DevicePathNode) == HARDWARE_DEVICE_PATH) && + ( DevicePathSubType (DevicePathNode) == HW_PCI_DP)) { + PciDevicePath = (PCI_DEVICE_PATH *) DevicePathNode; + break; + } + DevicePathNode = NextDevicePathNode (DevicePathNode); + } + + if (PciDevicePath == NULL) { + continue; + } + + // + // Check for onboard IDE + // + if (PciDevicePath->Device== PCI_DEVICE_NUMBER_SATA) { + Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiDiskInfoProtocolGuid, (VOID **) &DiskInfo); + ASSERT_EFI_ERROR (Status); + + Status = DiskInfo->WhichIde ( + DiskInfo, + &IdeChannel, + &IdeDevice + ); + + ASSERT_EFI_ERROR (Status); + IdentifyDriveInfo = NULL; + IdentifyDriveInfo = AllocatePool (sizeof (EFI_ATA_IDENTIFY_DATA)); + if (IdentifyDriveInfo == NULL) + return; + + BufferSize = sizeof (EFI_ATA_IDENTIFY_DATA); + Status = DiskInfo->Identify ( + DiskInfo, + IdentifyDriveInfo, + &BufferSize + ); + ASSERT_EFI_ERROR(Status); + + // + // Onboard SATA Devices + // + if (PciDevicePath->Function == PCI_FUNCTION_NUMBER_SATA) { + if (IdeChannel == 0 && IdeDevice == 0) { + NameToUpdate = (STRING_REF)STR_SATA0_NAME; + } else if (IdeChannel == 1 && IdeDevice == 0) { + NameToUpdate = (STRING_REF)STR_SATA1_NAME; + } else { + continue; + } + } else { + continue; + } + + ZeroMem (StringBuffer, sizeof (StringBuffer)); + CopyMem (StringBuffer, (CHAR8 *) &IdentifyDriveInfo->ModelName, sizeof (IdentifyDriveInfo->ModelName)); + SwapEntries(StringBuffer); + AsciiStrToUnicodeStr(StringBuffer, NewString); + + // + // Chap it off after 16 characters + // + NewString[16] = 0; + + // + // For HardDisk append the size. Otherwise display atapi + // + if ((IdentifyDriveInfo->config & 0x8000) == 00) { + // + // 48 bit address feature set is supported, get maximum capacity + // + if ((IdentifyDriveInfo->command_set_supported_83 & 0x0400) == 0) { + DriveSize = (((((IdentifyDriveInfo->user_addressable_sectors_hi << 16) + + IdentifyDriveInfo->user_addressable_sectors_lo) / 1000) * 512) / 1000); + } else { + DriveSize = IdentifyDriveInfo->maximum_lba_for_48bit_addressing[0]; + for (Index1 = 1; Index1 < 4; Index1++) { + // + // Lower byte goes first: word[100] is the lowest word, word[103] is highest + // + DriveSize |= LShiftU64 (IdentifyDriveInfo->maximum_lba_for_48bit_addressing[Index1], 16 * Index1); + } + DriveSize = (UINT32) DivU64x32 (MultU64x32 (DivU64x32 (DriveSize, 1000), 512), 1000); + } + + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"("); + EfiValueToString (SizeString, DriveSize / 1000, PREFIX_BLANK, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), SizeString); + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"."); + EfiValueToString (SizeString, (DriveSize % 1000) / 100, PREFIX_BLANK, 0); + StrCatS (NewString, 0x100 / sizeof (CHAR16), SizeString); + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"GB"); + } else { + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"(ATAPI"); + } + + // + // Update SPEED. + // + PortNumber = (IdeDevice << 1) + IdeChannel; + DeviceSpeed = GetChipsetSataPortSpeed (PortNumber); + + if (DeviceSpeed) { + StrCatS (NewString, 0x100 / sizeof (CHAR16), L"-"); + GetDeviceSpeedString (NewString, DeviceSpeed); + } + + StrCatS (NewString, 0x100 / sizeof (CHAR16), L")"); + HiiSetString (mHiiHandle, NameToUpdate, NewString, NULL); + + } + } + + if (HandleBuffer != NULL) { + gBS->FreePool (HandleBuffer); + } + + gBS->FreePool (NewString); + + return; +} +#endif + + +VOID +UpdateSeCInformation ( + ) +{ + EFI_STATUS Status; + CHAR16 Buffer[20]; + GEN_GET_FW_CAPSKU MsgGenGetFwCapsSku; + GEN_GET_FW_CAPS_SKU_ACK MsgGenGetFwCapsSkuAck; + SECFWCAPS_SKU RuleData; + UINT32 OEMTag; + HECI_FWS_REGISTER SeCFirmwareStatus; + CHAR16 *FwStatus; + + DEBUG ((EFI_D_INFO, "UpdateSeCInformation ++\n")); + + SetMem (Buffer, sizeof (Buffer), 0x0); + + // + // Get Firmware Capability SKU + // + Status = HeciGetFwCapsSkuMsg (&MsgGenGetFwCapsSku, &MsgGenGetFwCapsSkuAck); + if (!EFI_ERROR (Status)) { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%08X", MsgGenGetFwCapsSkuAck.Data.FWCapSku.Data); + } else { + StrCpyS (Buffer, sizeof (Buffer) / sizeof (CHAR16), L"N/A"); + } + HiiSetString(mHiiHandle, STRING_TOKEN(STR_SEC_CAPABILITY_VALUE), Buffer, NULL); + + // + // Get FW Feature Status Message + // + Status = HeciGetFwFeatureStateMsg (&RuleData); + if (!EFI_ERROR (Status)) { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%08X", RuleData.Data); + } else { + StrCpyS (Buffer, sizeof (Buffer) / sizeof (CHAR16), L"N/A"); + } + HiiSetString (mHiiHandle, STRING_TOKEN (STR_SEC_FEATURE_VALUE), Buffer, NULL); + + // + // Get OEM TAG message + // + Status = HeciGetOemTagMsg (&OEMTag); + if (!EFI_ERROR (Status)) { + UnicodeSPrint (Buffer, sizeof (Buffer), L"%08X", OEMTag); + } else { + StrCpyS (Buffer, sizeof (Buffer) / sizeof (CHAR16), L"N/A"); + } + HiiSetString(mHiiHandle, STRING_TOKEN(STR_SEC_OEMTAG_VALUE), Buffer, NULL); + + SeCFirmwareStatus.ul = PciRead32 (PCI_LIB_ADDRESS (SEC_BUS, SEC_DEVICE_NUMBER, HECI_FUNCTION_NUMBER, R_SEC_FW_STS0)); + switch (SeCFirmwareStatus.r.SeCOperationMode) { + case SEC_OPERATION_MODE_NORMAL: + FwStatus = L"Normal"; + break; + + case SEC_OPERATION_MODE_ALT_DISABLED: + FwStatus = L"DEBUG MODE"; + break; + + case SEC_OPERATION_MODE_SOFT_TEMP_DISABLE: + FwStatus = L"Soft Temporary Disable"; + break; + + default: + FwStatus = L"Unknown"; + break; + } + HiiSetString (mHiiHandle, STRING_TOKEN (STR_SEC_TEMP_DISABLE_PROMPT), FwStatus, NULL); + + DEBUG ((EFI_D_INFO, "UpdateSeCInformation --\n")); +} + + +VOID +UpdatePLInformation ( + ) +{ + CHAR16 Buffer[40]; + MSR_REGISTER PackagePowerLimitMsr; + UINT16 PowerLimit1; + UINT16 PowerLimit2; + UINT16 PowerUnitWatts; + + PowerUnitWatts = 256; + + PackagePowerLimitMsr.Qword = AsmReadMsr64 (MSR_PACKAGE_POWER_LIMIT); + PowerLimit1 = (UINT16) PackagePowerLimitMsr.Dwords.Low & POWER_LIMIT_MASK; + PowerLimit1 /= PowerUnitWatts; + PowerLimit2 = (UINT16) PackagePowerLimitMsr.Dwords.High & POWER_LIMIT_MASK; + PowerLimit2 /= PowerUnitWatts; + + UnicodeSPrint (Buffer, sizeof (Buffer), L"%d", (UINT32) PowerLimit1); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_LONG_DUR_PWR_LIMIT_VALUE), Buffer, NULL); + UnicodeSPrint (Buffer, sizeof (Buffer), L"%d", (UINT32) PowerLimit2); + HiiSetString (mHiiHandle, STRING_TOKEN (STR_SHORT_DUR_PWR_LIMIT_VALUE), Buffer, NULL); +} + + +EFI_STATUS +SaveTpmDeviceSelection ( + SYSTEM_CONFIGURATION *SystemConfigPtr + ) +{ + EFI_STATUS Status; + BOOLEAN PttEnabledState; + BOOLEAN ResetRequired; + EFI_INPUT_KEY Key; + CHAR16 *StringBuffer1 = L"Perform TPM Device Selection is Changed."; + CHAR16 *StringBuffer2 = L"System will Restart!"; + CHAR16 *StringBuffer3 = L"Press Enter Key To Continue"; + + ResetRequired = FALSE; + // + // TPM Device Selector Override + // + Status = PttHeciGetState (&PttEnabledState); + if (EFI_ERROR (Status)) { + return Status; + } + + if (SystemConfigPtr->TPM == TPM_PTT) { + DEBUG ((EFI_D_INFO, "TPM Device Selection is PTT.\n")); + if (!PttEnabledState) { + ResetRequired = TRUE; + PttHeciSetState (TRUE); + } + } else if ((SystemConfigPtr->TPM == TPM_DTPM_1_2) || (SystemConfigPtr->TPM == TPM_DTPM_2_0)) { + DEBUG ((EFI_D_INFO, "TPM Device Selection is dTPM.\n")); + if (PttEnabledState) { + ResetRequired = TRUE; + PttHeciSetState (FALSE); + } + } else if (SystemConfigPtr->TPM == TPM_DISABLE) { + DEBUG ((EFI_D_INFO, "TPM Device Selection is Disable.\n")); + if (PttEnabledState) { + ResetRequired = TRUE; + PttHeciSetState (FALSE); + } + } + + if (ResetRequired) { + DEBUG ((EFI_D_INFO, "Trigger cold reset to take effect.\n")); + // + // Popup a menu to notice user + // + do { + CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, StringBuffer3, NULL); + } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN); + + gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL); + } + + return EFI_SUCCESS; +} + + +VOID +EFIAPI +SetupInfo ( + VOID + ) +{ + EFI_STATUS Status; + UINTN VarSize; + EFI_PEI_HOB_POINTERS GuidHob; + + if (mSetupInfoDone) { + return; + } + + VarSize = sizeof (SYSTEM_CONFIGURATION); + + Status = gRT->GetVariable ( + L"Setup", + &gEfiSetupVariableGuid, + NULL, + &VarSize, + &mSystemConfiguration + ); + + ASSERT_EFI_ERROR (Status); + + // + // Update HOB variable for PCI resource information + // Get the HOB list. If it is not present, then ASSERT. + // + GuidHob.Raw = GetHobList (); + if (GuidHob.Raw != NULL) { + if ((GuidHob.Raw = GetNextGuidHob (&gEfiPlatformInfoGuid, GuidHob.Raw)) != NULL) { + mPlatformInfo = GET_GUID_HOB_DATA (GuidHob.Guid); + } + } + + PrepareSetupInformation (); + UpdateAdditionalInformation (); + UpdatePlatformInformation (); + UpdateCPUInformation (); + UpdateSeCInformation (); + +#ifdef SATA_SUPPORT + IdeDataFilter (); +#endif + UpdatePLInformation (); + mSetupInfoDone = TRUE; + + return; +} + + +VOID +CheckSystemConfigLoad ( + SYSTEM_CONFIGURATION *SystemConfigPtr + ) +{ + EFI_STATUS Status; + SEC_OPERATION_PROTOCOL *SeCOp; + SEC_INFOMATION SeCInfo; + + mUseProductKey = SystemConfigPtr->UseProductKey; + Status = gBS->LocateProtocol ( + &gEfiSeCOperationProtocolGuid, + NULL, + (VOID **) &SeCOp + ); + if (EFI_ERROR (Status)) { + return; + } + + Status = SeCOp->GetPlatformSeCInfo (&SeCInfo); + SystemConfigPtr->SecEnable = (UINT8) SeCInfo.SeCEnable; + SystemConfigPtr->SeCOpEnable = (UINT8) SystemConfigPtr->SecEnable; + SystemConfigPtr->SeCModeEnable = (UINT8) SeCInfo.SeCOpEnable; + SystemConfigPtr->SecFirmwareUpdate = (UINT8) SeCInfo.FwUpdate; + SystemConfigPtr->SecFlashUpdate = (UINT8) SeCInfo.HmrfpoEnable; + +} + + +// +// "SecureBootEnable" variable for the Secure boot feature enable/disable. +// +#define EFI_SECURE_BOOT_ENABLE_NAME L"SecureBootEnable" +extern EFI_GUID gEfiSecureBootEnableDisableGuid; + +EFI_STATUS +CheckTPMActivePcrBanks ( + IN UINT32 PcrBanks + ) +{ + UINT32 CurrentActivePcrBanks; + EFI_TCG2_PROTOCOL *Tcg2Protocol; + EFI_STATUS Status; + + Status = gBS->LocateProtocol ( + &gEfiTcg2ProtocolGuid, + NULL, + (VOID **) &Tcg2Protocol + ); + + if (EFI_ERROR(Status)) { + return Status; + } + Status = Tcg2Protocol->GetActivePcrBanks (Tcg2Protocol, &CurrentActivePcrBanks); + if (EFI_ERROR (Status)) { + return Status; + } + if (CurrentActivePcrBanks == PcrBanks) { + return EFI_SUCCESS; + } + + Status = Tcg2Protocol->SetActivePcrBanks (Tcg2Protocol, PcrBanks); + + return Status; +} + + +VOID +CheckSystemConfigSave ( + SYSTEM_CONFIGURATION *SystemConfigPtr + ) +{ + EFI_STATUS Status; + SEC_OPERATION_PROTOCOL *SeCOp; + SEC_INFOMATION SeCInfo; + UINT8 SecureBootCfg; + UINTN DataSize; + UINT8 CustomMode; + + if (mUseProductKey != SystemConfigPtr->UseProductKey) { + EnableCustomMode (); + DeleteKeys (); + EnrollKeys (); + } + DataSize = sizeof (CustomMode); + Status = gRT->GetVariable ( + EFI_CUSTOM_MODE_NAME, + &gEfiCustomModeEnableGuid, + NULL, + &DataSize, + &CustomMode + ); + + if (EFI_ERROR (Status)) { + DeleteKeys (); + EnrollKeys (); + DataSize = sizeof (CustomMode); + Status = gRT->GetVariable ( + EFI_CUSTOM_MODE_NAME, + &gEfiCustomModeEnableGuid, + NULL, + &DataSize, + &CustomMode + ); + } + + if (CustomMode != SystemConfigPtr->SecureBootCustomMode) { + if (CustomMode == 1) { + DeleteKeys (); + EnrollKeys (); + CustomMode = 0; + } else { + CustomMode = 1; + Status = gRT->SetVariable ( + EFI_CUSTOM_MODE_NAME, + &gEfiCustomModeEnableGuid, + EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, + sizeof (UINT8), + &CustomMode + ); + } + } + + Status = gBS->LocateProtocol ( + &gEfiSeCOperationProtocolGuid, + NULL, + (VOID **) &SeCOp + ); + + if (EFI_ERROR (Status)) { + return; + } + + Status = SeCOp->GetPlatformSeCInfo (&SeCInfo); + SeCInfo.SeCEnable = SystemConfigPtr->SecEnable; + SeCInfo.FwUpdate = SystemConfigPtr->SecFirmwareUpdate; + SeCInfo.HmrfpoEnable = SystemConfigPtr->SecFlashUpdate; + + Status = SeCOp->SetPlatformSeCInfo (&SeCInfo); + + // + // Secure Boot configuration changes + // + Status = gRT->GetVariable ( + EFI_SECURE_BOOT_ENABLE_NAME, + &gEfiSecureBootEnableDisableGuid, + NULL, + &DataSize, + &SecureBootCfg + ); + + if (EFI_ERROR (Status)) { + SecureBootCfg = 0; + } + + if ((SecureBootCfg) != SystemConfigPtr->SecureBoot) { + SecureBootCfg = !SecureBootCfg; + + Status = gRT->SetVariable ( + EFI_SECURE_BOOT_ENABLE_NAME, + &gEfiSecureBootEnableDisableGuid, + EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, + sizeof (UINT8), + &SecureBootCfg + ); + } + + CheckTPMActivePcrBanks (SystemConfigPtr->TPMSupportedBanks); + // + // Save TPM device selection and trigger a cold reset to take effect. + // + SaveTpmDeviceSelection (SystemConfigPtr); +} + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupPrivate.h b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupPrivate.h new file mode 100644 index 0000000000..6ce9d485d4 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SetupPrivate.h @@ -0,0 +1,127 @@ +/** @file + Header file for Setup Private data. + + Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __SetupPrivate__H__ +#define __SetupPrivate__H__ +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef VFRCOMPILE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void InitString (EFI_HII_HANDLE HiiHandle, EFI_STRING_ID StrRef, CHAR16 *sFormat, ...); + +EFI_STATUS +HiiLibGetString ( + IN EFI_HII_HANDLE PackageList, + IN EFI_STRING_ID StringId, + OUT EFI_STRING String, + IN OUT UINTN *StringSize + ); +EFI_STRING +EFIAPI +HiiConstructRequestString ( + IN EFI_STRING RequestString, OPTIONAL + IN UINTN Offset, + IN UINTN Width + ); + +typedef struct { + EFI_GUID *pGuid; + EFI_HII_CONFIG_ACCESS_PROTOCOL *pFormCallback; + UINT16 Class, SubClass; + EFI_HII_HANDLE HiiHandle; +} CALLBACK_INFO; + +extern EFI_GUID mSetupGuid; +extern EFI_GUID mSetupNvramUpdateGuid; +extern EFI_GUID mSetupEnterGuid; +extern EFI_GUID mSystemAccessGuid; +#define INVALID_HII_HANDLE NULL + +#endif + +#define PLATFORM_SETUP_VARSTORE_NAME PLATFORM_SETUP_VARIABLE_NAME + +#define MAIN_FORM_SET_GUID { 0x985eee91, 0xbcac, 0x4238, 0x87, 0x78, 0x57, 0xef, 0xdc, 0x93, 0xf2, 0x4e } +#define ADVANCED_FORM_SET_GUID { 0xe14f04fa, 0x8706, 0x4353, 0x92, 0xf2, 0x9c, 0x24, 0x24, 0x74, 0x6f, 0x9f } +#define CHIPSET_FORM_SET_GUID { 0xadfe34c8, 0x9ae1, 0x4f8f, 0xbe, 0x13, 0xcf, 0x96, 0xa2, 0xcb, 0x2c, 0x5b } +#define BOOT_FORM_SET_GUID { 0x8b33ffe0, 0xd71c, 0x4f82, 0x9c, 0xeb, 0xc9, 0x70, 0x58, 0xc1, 0x3f, 0x8e } +#define SECURITY_FORM_SET_GUID { 0x981ceaee, 0x931c, 0x4a17, 0xb9, 0xc8, 0x66, 0xc7, 0xbc, 0xfd, 0x77, 0xe1 } +#define EXIT_FORM_SET_GUID { 0xa43b03dc, 0xc18a, 0x41b1, 0x91, 0xc8, 0x3f, 0xf9, 0xaa, 0xa2, 0x57, 0x13 } +#define RESET_FORM_SET_GUID { 0x46975fe8, 0x64f6, 0x4692, { 0x8d, 0x64, 0xd5, 0x6a, 0xa7, 0x52, 0xea, 0xa9 } } + +#define MAIN_FORM_SET_CLASS 0x01 +#define ADVANCED_FORM_SET_CLASS 0x02 +#define CHIPSET_FORM_SET_CLASS 0x04 +#define BOOT_FORM_SET_CLASS 0x08 +#define SECURITY_FORM_SET_CLASS 0x10 +#define EXIT_FORM_SET_CLASS 0x20 +#define RESET_FORM_SET_CLASS 0x40 + +#define DEFAULT_BOOT_TIME_OUT 5 +#define LABEL_CPU_RATIO 1 + +typedef struct { + UINT8 SerialDebug; + UINT8 SerialDebugBaudRate; + UINT8 RamDebugInterface; + UINT8 UartDebugInterface; + UINT8 Usb2DebugInterface; + UINT8 Usb3DebugInterface; + UINT8 SerialIoDebugInterface; + UINT8 TraceHubDebugInterface; +} DEBUG_CONFIG_DATA; + +// +// DO NOT WRITE BELOW THIS LINE +// +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi new file mode 100644 index 0000000000..84ae466730 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi @@ -0,0 +1,3198 @@ +// /** @file +// South Cluster Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +// +// South Cluster Configuration Form +// + +form formid = SOUTH_CLUSTER_FORM_ID, + title = STRING_TOKEN(STR_SOUTH_CLUSTER_TITLE); + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + // + // Jump to HD-Audio Configuration Form + // + goto HDAUDIO_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_HDAUDIO_OPTIONS_FORM_TITLE), + help = STRING_TOKEN(STR_HDAUDIO_OPTIONS_FORM_HELP); + + // + // Jump to GMM Configuration Form + // + goto GMM_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_GMM_OPTIONS_FORM_TITLE), + help = STRING_TOKEN(STR_GMM_OPTIONS_FORM_HELP); + + // + // Jump to ISH Configuration Form + // + goto ISH_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_ISH_OPTIONS_FORM_TITLE), + help = STRING_TOKEN(STR_ISH_OPTIONS_FORM_HELP); + + // + // Jump to LPSS Configuration Form + // + goto LPSS_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_LPSS_FORM_TITLE), + help = STRING_TOKEN(STR_LPSS_FORM_HELP); + + // + // Jump to PCIe Configuration Form + // + goto PCIE_DEVICE_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_PCIE_OPTIONS_FORM_TITLE), + help = STRING_TOKEN(STR_PCIE_OPTIONS_FORM_HELP); + + // + // Jump to SATA Configuration Form + // + goto SATA_CONFIGURATION_ID, + prompt = STRING_TOKEN(STR_SATA_FORM_TITLE), + help = STRING_TOKEN(STR_SATA_FORM_HELP); + // + // Jump to SCC Configuration Form + // + goto SCC_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_SCC_OPTIONS_FORM_TITLE), + help = STRING_TOKEN(STR_SCC_OPTIONS_FORM_HELP); + + // + // Jump to USB Configuration Form + // + goto USB_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_USB_OPTIONS_FORM_TITLE), + help = STRING_TOKEN(STR_USB_OPTIONS_FORM_HELP); + + // + // Jump to Misc Configuration Form + // + goto MISC_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_MISC_OPTION_FORM_TITLE), + help = STRING_TOKEN(STR_MISC_OPTION_FORM_HELP); + +endform; + +// +// Misc Configurations +// +form formid = MISC_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_MISC_OPTION_FORM_TITLE); + subtitle text = STRING_TOKEN(STR_MISC_OPTION_FORM_TITLE); + + oneof varid = Setup.Hpet, + prompt = STRING_TOKEN(STR_HPET_PROMPT), + help = STRING_TOKEN(STR_HPET_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.Cg8254, + prompt = STRING_TOKEN(STR_8254CG_PROMPT), + help = STRING_TOKEN(STR_8254CG_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.StateAfterG3, + prompt = STRING_TOKEN(STR_STATE_AFTER_G3), + help = STRING_TOKEN(STR_STATE_AFTER_G3_HELP), + option text = STRING_TOKEN(STR_S0_AFTER_G3_STRING), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_S5_AFTER_G3_STRING), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PowerButterDebounceMode, + prompt = STRING_TOKEN(STR_POWER_BUTTON_DEBOUNCE_MODE), + help = STRING_TOKEN(STR_POWER_BUTTON_DEBOUNCE_MODE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.EnableClockSpreadSpec, + prompt = STRING_TOKEN(STR_CLOCK_SPREAD_SPEC_ENABLE), + help = STRING_TOKEN(STR_CLOCK_SPREAD_SPEC_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.UartInterface, + prompt = STRING_TOKEN(STR_PCH_UART_SELECT), + help = STRING_TOKEN(STR_PCH_UART_SELECT_HELP), + option text = STRING_TOKEN(STR_UART_SELECT_PCU), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_UART_SELECT_SIO), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.Wol, + prompt = STRING_TOKEN(STR_WAKE_ON_LAN_PROMPT), + help = STRING_TOKEN(STR_WAKE_ON_LAN_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + oneof varid = Setup.ScBiosLock, + prompt = STRING_TOKEN(STR_PCH_BLE_PROMPT), + help = STRING_TOKEN(STR_PCH_BLE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.RtcLock, + prompt = STRING_TOKEN(STR_PCH_RTC_LOCK_PROMPT), + help = STRING_TOKEN(STR_PCH_RTC_LOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.FprrEnable, + prompt = STRING_TOKEN(STR_FPRR_ENABLE), + help = STRING_TOKEN(STR_FPRR_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.TcoLock, + prompt = STRING_TOKEN(STR_TCO_LOCK_PROMPT), + help = STRING_TOKEN(STR_TCO_LOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.DciEn, + prompt = STRING_TOKEN(STR_DCI_HDCIEN_PROMPT), + help = STRING_TOKEN(STR_DCI_HDCIEN_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.DciEn == 1; + oneof varid = Setup.DciAutoDetect, + prompt = STRING_TOKEN(STR_DCI_AUTO_PROMPT), + help = STRING_TOKEN(STR_DCI_AUTO_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.GpioLock, + prompt = STRING_TOKEN(STR_GPIOLOCK_PROMPT), + help = STRING_TOKEN(STR_GPIOLOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + subtitle text = STRING_TOKEN(STR_LPSS_DEVICE_SETTING_SUBTITLE); + + oneof varid = SETUP_DATA.SelectBtDevice, + prompt = STRING_TOKEN(STR_PCH_SERIAL_IO_BLUETOOTH_DEVICE), + help = STRING_TOKEN(STR_PCH_SERIAL_IO_BLUETOOTH_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_BT_BCM2E40), value = 1, flags = RESET_REQUIRED; +// option text = STRING_TOKEN(STR_BT_BCM2EA1), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.I2s343A, + prompt = STRING_TOKEN(STR_I2C_DEVICE_CODEC_INT343A_PROMPT), + help = STRING_TOKEN(STR_I2C_DEVICE_CODEC_INT343A_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.I2s34C1, + prompt = STRING_TOKEN(STR_I2C_DEVICE_CODEC_INT34C1_PROMPT), + help = STRING_TOKEN(STR_I2C_DEVICE_CODEC_INT34C1_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.I2cNfc, + prompt = STRING_TOKEN(STR_I2C_DEVICE_NFC_PROMPT), + help = STRING_TOKEN(STR_I2C_DEVICE_NFC_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.I2cPss, + prompt = STRING_TOKEN(STR_I2C_DEVICE_PSS_PROMPT), + help = STRING_TOKEN(STR_I2C_DEVICE_PSS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.UartGps, + prompt = STRING_TOKEN(STR_UART_DEVICE_GPS_PROMPT), + help = STRING_TOKEN(STR_UART_DEVICE_GPS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.Spi1SensorDevice, + prompt = STRING_TOKEN(STR_SPI1_FPS_PROMPT), + help = STRING_TOKEN(STR_SPI1_FPS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_SPI1_FPS_FPC1020), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SPI1_FPS_FPC1021), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.I2cTouchPanel, + prompt = STRING_TOKEN(STR_I2C_DEVICE_TOUCHPANEL_PROMPT), + help = STRING_TOKEN(STR_I2C_DEVICE_TOUCHPANEL_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.I2cTouchPad, + prompt = STRING_TOKEN(STR_I2C_DEVICE_TOUCHPAD_PROMPT), + help = STRING_TOKEN(STR_I2C_DEVICE_TOUCHPAD_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + +endform; + +// +// LAN Configurations +// +// +// ISH Configurations +// +form formid = ISH_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_ISH_OPTIONS_FORM_TITLE); + subtitle text = STRING_TOKEN(STR_ISH_OPTIONS_FORM_TITLE); + + oneof varid = Setup.ScIshEnabled, + prompt = STRING_TOKEN(STR_ISH_PROMPT), + help = STRING_TOKEN(STR_ISH_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + +endform; // End of ISH Configurations + +// +// LPSS Configurations +// +form formid = LPSS_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_LPSS_FORM_TITLE); + subtitle text = STRING_TOKEN(STR_LPSS_SETTING_SUBTITLE); + + oneof varid = Setup.LpssI2C0Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C0_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C0_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C0Enabled == 0; + oneof varid = Setup.I2C0Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C0_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C0_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.LpssI2C1Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C1_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C1_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C1Enabled == 0; + oneof varid = Setup.I2C1Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C1_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C1_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.LpssI2C2Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C2_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C2_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C2Enabled == 0; + oneof varid = Setup.I2C2Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C2_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C2_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.LpssI2C3Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C3_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C3_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C3Enabled == 0; + oneof varid = Setup.I2C3Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C3_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C3_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.LpssI2C4Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C4_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C4_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C4Enabled == 0; + oneof varid = Setup.I2C4Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C4_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C4_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.LpssI2C5Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C5_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C5_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C5Enabled == 0; + oneof varid = Setup.I2C5Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C5_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C5_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.LpssI2C6Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C6_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C6_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C6Enabled == 0; + oneof varid = Setup.I2C6Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C6_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C6_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.LpssI2C7Enabled, + prompt = STRING_TOKEN(STR_LPSS_I2C7_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C7_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.LpssI2C7Enabled == 0; + oneof varid = Setup.I2C7Speed, + prompt = STRING_TOKEN(STR_LPSS_I2C7_SPEED), + help = STRING_TOKEN(STR_LPSS_I2C7_SPEED_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_SSCN), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FMCN), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_FPCN), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_I2C_SPEED_HSCN), value = 4, flags = RESET_REQUIRED; + endoneof; + endif; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + oneof varid = Setup.LpssHsuart0Enabled, + prompt = STRING_TOKEN(STR_LPSS_HSUART0_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART0_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssHsuart1Enabled, + prompt = STRING_TOKEN(STR_LPSS_HSUART1_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART1_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssHsuart2Enabled, + prompt = STRING_TOKEN(STR_LPSS_HSUART2_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART2_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssHsuart3Enabled, + prompt = STRING_TOKEN(STR_LPSS_HSUART3_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART3_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssSpi0Enabled, + prompt = STRING_TOKEN(STR_LPSS_SPI0_PROMPT), + help = STRING_TOKEN(STR_LPSS_SPI0_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssSpi1Enabled, + prompt = STRING_TOKEN(STR_LPSS_SPI1_PROMPT), + help = STRING_TOKEN(STR_LPSS_SPI1_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssSpi2Enabled, + prompt = STRING_TOKEN(STR_LPSS_SPI2_PROMPT), + help = STRING_TOKEN(STR_LPSS_SPI2_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + oneof varid = Setup.LpssNFCSelect, + prompt = STRING_TOKEN(STR_LPSS_NFC_PROMPT), + help = STRING_TOKEN(STR_LPSS_NFC_HELP), + option text = STRING_TOKEN(STR_AUTO), value=0, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LPSS_NFC1), value=1, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LPSS_NFC2), value=2, flags=0 | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GpsModeSel, + prompt = STRING_TOKEN(STR_GPS_MODE_PROMPT), + help = STRING_TOKEN(STR_LPSS_GPS_HELP), + option text = STRING_TOKEN(STR_LPSS_GPS), value=0, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ISH_GPS), value=1, flags= 0 | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.S0ixEnable, + prompt = STRING_TOKEN(STR_LPSS_PMCTL_S0IX_PROMPT), + help = STRING_TOKEN(STR_LPSS_PMCTL_S0IX_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0, flags= RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_LPSS_CLOCK_GATE_SETTING_SUBTITLE); + + oneof varid = Setup.LpssI2cClkGateCfg[0], + prompt = STRING_TOKEN(STR_LPSS_I2C0_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C0_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssI2cClkGateCfg[1], + prompt = STRING_TOKEN(STR_LPSS_I2C1_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C1_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssI2cClkGateCfg[2], + prompt = STRING_TOKEN(STR_LPSS_I2C2_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C2_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssI2cClkGateCfg[3], + prompt = STRING_TOKEN(STR_LPSS_I2C3_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C3_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssI2cClkGateCfg[4], + prompt = STRING_TOKEN(STR_LPSS_I2C4_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C4_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssI2cClkGateCfg[5], + prompt = STRING_TOKEN(STR_LPSS_I2C5_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C5_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssI2cClkGateCfg[6], + prompt = STRING_TOKEN(STR_LPSS_I2C6_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C6_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssI2cClkGateCfg[7], + prompt = STRING_TOKEN(STR_LPSS_I2C7_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_I2C7_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssHsuartClkGateCfg[0], + prompt = STRING_TOKEN(STR_LPSS_HSUART0_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART0_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssHsuartClkGateCfg[1], + prompt = STRING_TOKEN(STR_LPSS_HSUART1_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART1_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssHsuartClkGateCfg[2], + prompt = STRING_TOKEN(STR_LPSS_HSUART2_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART2_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssHsuartClkGateCfg[3], + prompt = STRING_TOKEN(STR_LPSS_HSUART3_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_HSUART3_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssSpiClkGateCfg[0], + prompt = STRING_TOKEN(STR_LPSS_SPI0_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_SPI0_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssSpiClkGateCfg[1], + prompt = STRING_TOKEN(STR_LPSS_SPI1_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_SPI1_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.LpssSpiClkGateCfg[2], + prompt = STRING_TOKEN(STR_LPSS_SPI2_CLK_GATING_PROMPT), + help = STRING_TOKEN(STR_LPSS_SPI2_CLK_GATING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + +endform; // End of LPSS_OPTIONS_FORM_ID + +form formid = SCC_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_SCC_OPTIONS_FORM_TITLE); + + oneof varid = Setup.SccSdcardEnabled, + prompt = STRING_TOKEN(STR_SCC_SDCARD_PROMPT), + help = STRING_TOKEN(STR_SCC_SDCARD_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScceMMCEnabled, + prompt = STRING_TOKEN(STR_SCC_EMMC_PROMPT), + help = STRING_TOKEN(STR_SCC_EMMC_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.ScceMMCEnabled == 0; + oneof varid = SETUP_DATA.ScceMMCHostMaxSpeed, + prompt = STRING_TOKEN(STR_SCC_EMMC_SPEED_PROMPT), + help = STRING_TOKEN(STR_SCC_EMMC_SPEED_HELP), + option text = STRING_TOKEN(STR_HS400), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_HS200), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DDR50), value = 2, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.SccSdioEnabled, + prompt = STRING_TOKEN(STR_SCC_SDIO_PROMPT), + help = STRING_TOKEN(STR_SCC_SDIO_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + +endform; // End of SCC_OPTIONS_FORM_ID + +// +// PCIe Configurations +// +form formid = PCIE_DEVICE_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_PCIE_OPTIONS_FORM_TITLE); + subtitle text = STRING_TOKEN(STR_PCIE_OPTIONS_FORM_TITLE); + + oneof varid = Setup.PcieClockGatingDisabled, + prompt = STRING_TOKEN(STR_PCIE_CKG_PROMPT), + help = STRING_TOKEN(STR_PCIE_CKG_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_PCIE_LAN_PROMPT), + text = STRING_TOKEN(STR_PCIE_LAN_VALUE), + flags = 0, key = 0; + + oneof varid = Setup.PcieRootPort8xhDecode, + prompt = STRING_TOKEN(STR_PCH_PCIE_PORT8XH_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PORT8XH_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.PcieRootPort8xhDecode == 0; + numeric varid = Setup.Pcie8xhDecodePortIndex, + prompt = STRING_TOKEN (STR_PCH_PCIE_PORT8XH_PORT_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_PORT8XH_PORT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 20, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 0, // PCIe Port0 as default + endnumeric; + endif; + + oneof varid = Setup.PcieRootPortPeerMemoryWriteEnable, + prompt = STRING_TOKEN(STR_PCH_PCIE_PEERMEMORYWRITE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PEERMEMORYWRITE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieComplianceMode, + prompt = STRING_TOKEN(STR_PCIE_COMPLIANCE_MODE_PROMPT), + help = STRING_TOKEN(STR_PCIE_COMPLIANCE_MODE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + goto PCIERP1_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_PCH_PCIERP1_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP); + + goto PCIERP2_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_PCH_PCIERP2_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP); + + goto PCIERP3_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_PCH_PCIERP3_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP); + + goto PCIERP4_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_PCH_PCIERP4_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP); + + goto PCIERP5_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_PCH_PCIERP5_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP); + + goto PCIERP6_OPTIONS_FORM_ID, + prompt = STRING_TOKEN(STR_PCH_PCIERP6_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP); + +endform; //End of PCIE_DEVICE_OPTIONS_FORM_ID + +//------------------------------------------------------------------------------------ + +form formid = PCIERP1_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_PCH_PCIERP1_PROMPT); + + oneof varid = Setup.PcieRootPortEn[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIERP1_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 2, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_DIS_TO_EN_HELP), + flags = 0, + key = 0; + + suppressif ideqval Setup.PcieRootPortEn[OFFSET_0] == 0x0; + oneof varid = Setup.PcieRootPortAspm[OFFSET_0], + prompt = STRING_TOKEN(STR_PCIE_ASPM_PROMPT), + help = STRING_TOKEN(STR_PCIE_ASPM_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0S_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L1_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0SL1_STRING), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortL1SubStates[OFFSET_0], + prompt = STRING_TOKEN(STR_PCIE_L1SUB_PROMPT), + help = STRING_TOKEN(STR_PCIE_L1SUB_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_2_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_2_STRING), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortACS[OFFSET_0], + prompt = STRING_TOKEN(STR_PCIE_ACS_PROMPT), + help = STRING_TOKEN(STR_PCIE_ACS_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortURE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_URE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_URE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortFEE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_FEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_FEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortNFE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_NFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCEE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_CEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCTD[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_CTD_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CTD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSFE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_SFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSNE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_SNE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SNE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSCE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_SCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortPMCE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_PMCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PMCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortHPE[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_HPE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_HPE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSpeed[OFFSET_0], + prompt = STRING_TOKEN (STR_PCIE_SPEED_PROMPT), + help = STRING_TOKEN (STR_PCIE_SPEED_HELP), + option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN3), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortTHS[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_THS_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_THS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + numeric varid = Setup.PcieExtraBusRsvd[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_RBUS_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RBUS_HELP), + minimum = 0, + maximum = 7, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 0, // default no extra bus reserved + endnumeric; + + numeric varid = Setup.PcieMemRsvd[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_RMEM_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RMEM_HELP), + minimum = 1, + maximum = 20, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 10, // Default 10MB Memory Reserved + endnumeric; + + numeric varid = Setup.PcieIoRsvd[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_RVIO_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RVIO_HELP), + minimum = 4, + maximum = 20, + step = 4, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 4, // Default 4K IO Reserved + endnumeric; + + subtitle text = STRING_TOKEN(STR_PCH_PCIE_LTR_CONFIG); + + oneof varid = Setup.PchPcieLtrEnable[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTR_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.PchPcieLtrEnable[OFFSET_0] == 0; + oneof varid = Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_0] == 1; + numeric varid = Setup.PchPcieSnoopLatencyOverrideValue[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieSnoopLatencyOverrideMultiplier[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_0] == 1; + numeric varid = Setup.PchPcieNonSnoopLatencyOverrideValue[0], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMultiplier[OFFSET_0], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + endif; + + oneof varid = Setup.PchPcieLtrConfigLock[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + oneof varid = Setup.PcieRootPortSelectableDeemphasis[OFFSET_0], + prompt = STRING_TOKEN (STR_PCH_PCIE_SD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; +endform; //End of PCIERP1_OPTIONS_FORM_ID + +//------------------------------------------------------------------------------------ + +form formid = PCIERP2_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_PCH_PCIERP2_PROMPT); + + + oneof varid = Setup.PcieRootPortEn[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIERP2_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 2, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_DIS_TO_EN_HELP), + flags = 0, + key = 0; + + suppressif ideqval Setup.PcieRootPortEn[OFFSET_1] == 0x0; + oneof varid = Setup.PcieRootPortAspm[OFFSET_1], + prompt = STRING_TOKEN(STR_PCIE_ASPM_PROMPT), + help = STRING_TOKEN(STR_PCIE_ASPM_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0S_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L1_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0SL1_STRING), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortL1SubStates[OFFSET_1], + prompt = STRING_TOKEN(STR_PCIE_L1SUB_PROMPT), + help = STRING_TOKEN(STR_PCIE_L1SUB_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_2_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_2_STRING), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortACS[OFFSET_1], + prompt = STRING_TOKEN(STR_PCIE_ACS_PROMPT), + help = STRING_TOKEN(STR_PCIE_ACS_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortURE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_URE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_URE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortFEE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_FEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_FEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortNFE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_NFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCEE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_CEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCTD[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_CTD_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CTD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSFE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_SFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSNE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_SNE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SNE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSCE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_SCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortPMCE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_PMCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PMCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortHPE[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_HPE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_HPE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSpeed[OFFSET_1], + prompt = STRING_TOKEN (STR_PCIE_SPEED_PROMPT), + help = STRING_TOKEN (STR_PCIE_SPEED_HELP), + option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortTHS[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_THS_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_THS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + numeric varid = Setup.PcieExtraBusRsvd[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_RBUS_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RBUS_HELP), + minimum = 0, + maximum = 7, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 0, // default no extra bus reserved + endnumeric; + + numeric varid = Setup.PcieMemRsvd[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_RMEM_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RMEM_HELP), + minimum = 1, + maximum = 20, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 10, // Default 10MB Memory Reserved + endnumeric; + + numeric varid = Setup.PcieIoRsvd[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_RVIO_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RVIO_HELP), + minimum = 4, + maximum = 20, + step = 4, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 4, // Default 4K IO Reserved + endnumeric; + + subtitle text = STRING_TOKEN(STR_PCH_PCIE_LTR_CONFIG); + + oneof varid = Setup.PchPcieLtrEnable[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTR_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.PchPcieLtrEnable[OFFSET_1] == 0; + oneof varid = Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_1] == 1; + numeric varid = Setup.PchPcieSnoopLatencyOverrideValue[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieSnoopLatencyOverrideMultiplier[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_1] == 1; + numeric varid = Setup.PchPcieNonSnoopLatencyOverrideValue[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMultiplier[OFFSET_1], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + endif; + + oneof varid = Setup.PchPcieLtrConfigLock[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + oneof varid = Setup.PcieRootPortSelectableDeemphasis[OFFSET_1], + prompt = STRING_TOKEN (STR_PCH_PCIE_SD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; +endform; //End of PCIERP2_OPTIONS_FORM_ID + +//------------------------------------------------------------------------------------ + +form formid = PCIERP3_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_PCH_PCIERP3_PROMPT); + + + oneof varid = Setup.PcieRootPortEn[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIERP3_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 2, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_DIS_TO_EN_HELP), + flags = 0, + key = 0; + + suppressif ideqval Setup.PcieRootPortEn[OFFSET_2] == 0x0; + oneof varid = Setup.PcieRootPortAspm[OFFSET_2], + prompt = STRING_TOKEN(STR_PCIE_ASPM_PROMPT), + help = STRING_TOKEN(STR_PCIE_ASPM_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0S_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L1_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0SL1_STRING), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortL1SubStates[OFFSET_2], + prompt = STRING_TOKEN(STR_PCIE_L1SUB_PROMPT), + help = STRING_TOKEN(STR_PCIE_L1SUB_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_2_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_2_STRING), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortACS[OFFSET_2], + prompt = STRING_TOKEN(STR_PCIE_ACS_PROMPT), + help = STRING_TOKEN(STR_PCIE_ACS_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortURE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_URE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_URE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortFEE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_FEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_FEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortNFE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_NFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCEE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_CEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCTD[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_CTD_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CTD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSFE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_SFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSNE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_SNE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SNE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSCE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_SCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortPMCE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_PMCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PMCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortHPE[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_HPE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_HPE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSpeed[OFFSET_2], + prompt = STRING_TOKEN (STR_PCIE_SPEED_PROMPT), + help = STRING_TOKEN (STR_PCIE_SPEED_HELP), + option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN3), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortTHS[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_THS_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_THS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + numeric varid = Setup.PcieExtraBusRsvd[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_RBUS_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RBUS_HELP), + minimum = 0, + maximum = 7, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 0, // default no extra bus reserved + endnumeric; + + numeric varid = Setup.PcieMemRsvd[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_RMEM_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RMEM_HELP), + minimum = 1, + maximum = 20, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 10, // Default 10MB Memory Reserved + endnumeric; + + numeric varid = Setup.PcieIoRsvd[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_RVIO_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RVIO_HELP), + minimum = 4, + maximum = 20, + step = 4, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 4, // Default 4K IO Reserved + endnumeric; + + subtitle text = STRING_TOKEN(STR_PCH_PCIE_LTR_CONFIG); + + oneof varid = Setup.PchPcieLtrEnable[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTR_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.PchPcieLtrEnable[OFFSET_2] == 0; + oneof varid = Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_2] == 1; + numeric varid = Setup.PchPcieSnoopLatencyOverrideValue[0], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieSnoopLatencyOverrideMultiplier[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_2] == 1; + numeric varid = Setup.PchPcieNonSnoopLatencyOverrideValue[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMultiplier[OFFSET_2], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + endif; + + oneof varid = Setup.PchPcieLtrConfigLock[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + oneof varid = Setup.PcieRootPortSelectableDeemphasis[OFFSET_2], + prompt = STRING_TOKEN (STR_PCH_PCIE_SD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; +endform; //End of PCIERP3_OPTIONS_FORM_ID + +//------------------------------------------------------------------------------------ + +form formid = PCIERP4_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_PCH_PCIERP4_PROMPT); + + + oneof varid = Setup.PcieRootPortEn[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIERP4_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 2, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_DIS_TO_EN_HELP), + flags = 0, + key = 0; + + suppressif ideqval Setup.PcieRootPortEn[OFFSET_3] == 0x0; + oneof varid = Setup.PcieRootPortAspm[OFFSET_3], + prompt = STRING_TOKEN(STR_PCIE_ASPM_PROMPT), + help = STRING_TOKEN(STR_PCIE_ASPM_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0S_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L1_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0SL1_STRING), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortL1SubStates[OFFSET_3], + prompt = STRING_TOKEN(STR_PCIE_L1SUB_PROMPT), + help = STRING_TOKEN(STR_PCIE_L1SUB_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_2_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_2_STRING), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortACS[OFFSET_3], + prompt = STRING_TOKEN(STR_PCIE_ACS_PROMPT), + help = STRING_TOKEN(STR_PCIE_ACS_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortURE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_URE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_URE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortFEE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_FEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_FEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortNFE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_NFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCEE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_CEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCTD[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_CTD_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CTD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSFE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_SFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSNE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_SNE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SNE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSCE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_SCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortPMCE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_PMCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PMCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortHPE[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_HPE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_HPE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSpeed[OFFSET_3], + prompt = STRING_TOKEN (STR_PCIE_SPEED_PROMPT), + help = STRING_TOKEN (STR_PCIE_SPEED_HELP), + option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortTHS[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_THS_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_THS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + numeric varid = Setup.PcieExtraBusRsvd[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_RBUS_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RBUS_HELP), + minimum = 0, + maximum = 7, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 0, // default no extra bus reserved + endnumeric; + + numeric varid = Setup.PcieMemRsvd[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_RMEM_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RMEM_HELP), + minimum = 1, + maximum = 20, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 10, // Default 10MB Memory Reserved + endnumeric; + + numeric varid = Setup.PcieIoRsvd[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_RVIO_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RVIO_HELP), + minimum = 4, + maximum = 20, + step = 4, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 4, // Default 4K IO Reserved + endnumeric; + + subtitle text = STRING_TOKEN(STR_PCH_PCIE_LTR_CONFIG); + + oneof varid = Setup.PchPcieLtrEnable[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTR_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.PchPcieLtrEnable[OFFSET_3] == 0; + oneof varid = Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_3] == 1; + numeric varid = Setup.PchPcieSnoopLatencyOverrideValue[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieSnoopLatencyOverrideMultiplier[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_3] == 1; + numeric varid = Setup.PchPcieNonSnoopLatencyOverrideValue[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMultiplier[OFFSET_3], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + endif; + + oneof varid = Setup.PchPcieLtrConfigLock[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + oneof varid = Setup.PcieRootPortSelectableDeemphasis[OFFSET_3], + prompt = STRING_TOKEN (STR_PCH_PCIE_SD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; +endform; //End of PCIERP4_OPTIONS_FORM_ID + +//-------------------------------------------------------------------------------- + +form formid = PCIERP5_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_PCH_PCIERP5_PROMPT); + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + oneof varid = Setup.PcieRootPortEn[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIERP5_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 2, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_DIS_TO_EN_HELP), + flags = 0, + key = 0; + + suppressif ideqval Setup.PcieRootPortEn[OFFSET_4] == 0x0; + oneof varid = Setup.PcieRootPortAspm[OFFSET_4], + prompt = STRING_TOKEN(STR_PCIE_ASPM_PROMPT), + help = STRING_TOKEN(STR_PCIE_ASPM_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0S_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L1_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0SL1_STRING), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortL1SubStates[OFFSET_4], + prompt = STRING_TOKEN(STR_PCIE_L1SUB_PROMPT), + help = STRING_TOKEN(STR_PCIE_L1SUB_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_2_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_2_STRING), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortACS[OFFSET_4], + prompt = STRING_TOKEN(STR_PCIE_ACS_PROMPT), + help = STRING_TOKEN(STR_PCIE_ACS_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortURE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_URE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_URE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortFEE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_FEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_FEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortNFE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_NFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCEE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_CEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCTD[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_CTD_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CTD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSFE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_SFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSNE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_SNE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SNE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSCE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_SCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortPMCE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_PMCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PMCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortHPE[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_HPE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_HPE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSpeed[OFFSET_4], + prompt = STRING_TOKEN (STR_PCIE_SPEED_PROMPT), + help = STRING_TOKEN (STR_PCIE_SPEED_HELP), + option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortTHS[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_THS_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_THS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + numeric varid = Setup.PcieExtraBusRsvd[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_RBUS_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RBUS_HELP), + minimum = 0, + maximum = 7, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 0, // default no extra bus reserved + endnumeric; + + numeric varid = Setup.PcieMemRsvd[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_RMEM_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RMEM_HELP), + minimum = 1, + maximum = 20, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 10, // Default 10MB Memory Reserved + endnumeric; + + numeric varid = Setup.PcieIoRsvd[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_RVIO_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RVIO_HELP), + minimum = 4, + maximum = 20, + step = 4, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 4, // Default 4K IO Reserved + endnumeric; + + subtitle text = STRING_TOKEN(STR_PCH_PCIE_LTR_CONFIG); + + oneof varid = Setup.PchPcieLtrEnable[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTR_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.PchPcieLtrEnable[OFFSET_4] == 0; + oneof varid = Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_4] == 1; + numeric varid = Setup.PchPcieSnoopLatencyOverrideValue[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieSnoopLatencyOverrideMultiplier[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_4] == 1; + numeric varid = Setup.PchPcieNonSnoopLatencyOverrideValue[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMultiplier[OFFSET_4], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + endif; + + oneof varid = Setup.PchPcieLtrConfigLock[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + oneof varid = Setup.PcieRootPortSelectableDeemphasis[OFFSET_4], + prompt = STRING_TOKEN (STR_PCH_PCIE_SD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; +endform; //End of PCIERP5_OPTIONS_FORM_ID + +//------------------------------------------------------------------------------ + +form formid = PCIERP6_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_PCH_PCIERP6_PROMPT); + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + oneof varid = Setup.PcieRootPortEn[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIERP6_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIERP_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 2, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_DIS_TO_EN_HELP), + flags = 0, + key = 0; + + suppressif ideqval Setup.PcieRootPortEn[OFFSET_5] == 0x0; + oneof varid = Setup.PcieRootPortAspm[OFFSET_5], + prompt = STRING_TOKEN(STR_PCIE_ASPM_PROMPT), + help = STRING_TOKEN(STR_PCIE_ASPM_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0S_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L1_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_ASPM_L0SL1_STRING), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTOMATIC), value = 4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortL1SubStates[OFFSET_5], + prompt = STRING_TOKEN(STR_PCIE_L1SUB_PROMPT), + help = STRING_TOKEN(STR_PCIE_L1SUB_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_2_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCIE_L1SUB_1_2_STRING), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortACS[OFFSET_5], + prompt = STRING_TOKEN(STR_PCIE_ACS_PROMPT), + help = STRING_TOKEN(STR_PCIE_ACS_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortURE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_URE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_URE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortFEE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_FEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_FEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortNFE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_NFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCEE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_CEE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CEE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortCTD[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_CTD_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_CTD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSFE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_SFE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SFE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSNE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_SNE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SNE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSCE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_SCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortPMCE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_PMCE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_PMCE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortHPE[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_HPE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_HPE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortSpeed[OFFSET_5], + prompt = STRING_TOKEN (STR_PCIE_SPEED_PROMPT), + help = STRING_TOKEN (STR_PCIE_SPEED_HELP), + option text = STRING_TOKEN (STR_AUTO), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_GEN2), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PcieRootPortTHS[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_THS_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_THS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + numeric varid = Setup.PcieExtraBusRsvd[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_RBUS_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RBUS_HELP), + minimum = 0, + maximum = 7, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 0, // default no extra bus reserved + endnumeric; + + numeric varid = Setup.PcieMemRsvd[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_RMEM_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RMEM_HELP), + minimum = 1, + maximum = 20, + step = 1, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 10, // Default 10MB Memory Reserved + endnumeric; + + numeric varid = Setup.PcieIoRsvd[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_RVIO_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_RVIO_HELP), + minimum = 4, + maximum = 20, + step = 4, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 4, // Default 4K IO Reserved + endnumeric; + + subtitle text = STRING_TOKEN(STR_PCH_PCIE_LTR_CONFIG); + + oneof varid = Setup.PchPcieLtrEnable[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTR_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTR_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.PchPcieLtrEnable[OFFSET_5] == 0; + oneof varid = Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieSnoopLatencyOverrideMode[OFFSET_5] == 1; + numeric varid = Setup.PchPcieSnoopLatencyOverrideValue[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieSnoopLatencyOverrideMultiplier[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_SL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_NSL_OVRD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_MANUAL_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO_STRING), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval Setup.PchPcieNonSnoopLatencyOverrideMode[OFFSET_5] == 1; + numeric varid = Setup.PchPcieNonSnoopLatencyOverrideValue[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 1, + default = 60, + endnumeric; + + oneof varid = Setup.PchPcieNonSnoopLatencyOverrideMultiplier[OFFSET_5], + prompt = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_PROMPT), + help = STRING_TOKEN(STR_PCH_PCIE_NSL_SCALE_HELP), + option text = STRING_TOKEN(STR_LTR_SCALE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_1), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_2), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_3), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_4), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_LTR_SCALE_5), value = 5, flags = RESET_REQUIRED; + endoneof; + endif; + endif; + + oneof varid = Setup.PchPcieLtrConfigLock[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_LTRLOCK_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + oneof varid = Setup.PcieRootPortSelectableDeemphasis[OFFSET_5], + prompt = STRING_TOKEN (STR_PCH_PCIE_SD_PROMPT), + help = STRING_TOKEN (STR_PCH_PCIE_SD_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; +endform; //End of PCIERP6_OPTIONS_FORM_ID + +// +// USB Configurations +// +form formid = USB_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_USB_OPTIONS_FORM_TITLE); + subtitle text = STRING_TOKEN(STR_NULL_STRING); + // + // XHCI support + // + oneof varid = Setup.UsbXhciSupport, + prompt = STRING_TOKEN(STR_USB_XHCI_SUPPORT_PROMPT), + help = STRING_TOKEN(STR_USB_XHCI_SUPPORT_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScUsb30Mode, + prompt = STRING_TOKEN(STR_PCH_USB30_MODE_PROMPT), + help = STRING_TOKEN(STR_PCH_USB30_MODE_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = MANUFACTURING | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + oneof varid = Setup.ScUsbVbusOn, + prompt = STRING_TOKEN(STR_PCH_USB_VBUS_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_VBUS_HELP), + option text = STRING_TOKEN(STR_OFF), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ON), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.Hsic1Support, + prompt = STRING_TOKEN(STR_USB_HSIC1_PROMPT), + help = STRING_TOKEN(STR_USB_HSIC1_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.Ssic1Support, + prompt = STRING_TOKEN(STR_USB_SSIC1_PROMPT), + help = STRING_TOKEN(STR_USB_SSIC1_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + // This default is updated on FirstBoot via SMIP/MultiBom + suppressif ideqval Setup.Ssic1Support == 0; + oneof varid = Setup.Ssic1Rate, + prompt = STRING_TOKEN(STR_USB_SSIC1_RATE_PROMPT), + help = STRING_TOKEN(STR_USB_SSIC1_RATE_HELP), + option text = STRING_TOKEN(STR_SSIC_A_RATE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSIC_B_RATE), value = 2, flags = RESET_REQUIRED; + endoneof; + endif; + + // This default is updated on FirstBoot via SMIP/MultiBom + suppressif ideqval Setup.Ssic1Support == 0; + oneof varid = Setup.SsicDlanePg, + prompt = STRING_TOKEN(STR_USB_SSIC_DLANE_PG_PROMPT), + help = STRING_TOKEN(STR_USB_SSIC_DLANE_PG_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + endoneof; + endif; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + // + // EHCI support + // + // + // Usb ports disable control enable + // + oneof varid = Setup.ScUsbPortDisable, + prompt = STRING_TOKEN(STR_PCH_USB_PORT_DISABLE_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DISABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.ScUsbPortDisable == 0x0; + oneof varid = Setup.PortUsb20[0], + prompt = STRING_TOKEN(STR_PCH_USB_PORT0_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PortUsb20[1], + prompt = STRING_TOKEN(STR_PCH_USB_PORT1_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PortUsb20[2], + prompt = STRING_TOKEN(STR_PCH_USB_PORT2_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.PortUsb20[3], + prompt = STRING_TOKEN(STR_PCH_USB_PORT3_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.PortUsb20[4], + prompt = STRING_TOKEN(STR_PCH_USB_PORT4_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PortUsb20[5], + prompt = STRING_TOKEN(STR_PCH_USB_PORT5_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PortUsb20[6], + prompt = STRING_TOKEN(STR_PCH_USB_PORT6_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.PortUsb20[7], + prompt = STRING_TOKEN(STR_PCH_USB_PORT7_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PortUsb30[0], + prompt = STRING_TOKEN(STR_PCH_USB3_PORT0_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PortUsb30[1], + prompt = STRING_TOKEN(STR_PCH_USB3_PORT1_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PortUsb30[2], + prompt = STRING_TOKEN(STR_PCH_USB3_PORT2_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.PortUsb30[3], + prompt = STRING_TOKEN(STR_PCH_USB3_PORT3_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.PortUsb30[4], + prompt = STRING_TOKEN(STR_PCH_USB3_PORT4_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + oneof varid = Setup.PortUsb30[5], + prompt = STRING_TOKEN(STR_PCH_USB3_PORT5_PROMPT), + help = STRING_TOKEN(STR_PCH_USB_PORT_DIS_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + endif; + + oneof varid = Setup.ScUsbOtg, + prompt = STRING_TOKEN(STR_USB_XDCI_PROMPT), + help = STRING_TOKEN(STR_USB_XDCI_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_MODE_STRING), value = 1, flags = RESET_REQUIRED; +// option text = STRING_TOKEN(STR_ACPI_MODE_STRING), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.DisableComplianceMode, + prompt = STRING_TOKEN(STR_XHCI_COMPLIANCE_PROMPT), + help = STRING_TOKEN(STR_XHCI_COMPLIANCE_HELP), + option text = STRING_TOKEN(STR_XHCI_COMPLIANCE_FALSE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_XHCI_COMPLIANCE_TRUE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.IddigComp, + prompt = STRING_TOKEN(STR_USB_IDDIG_PROMPT), + help = STRING_TOKEN(STR_USB_IDDIG_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + +endform; // end of USB_OPTIONS_FORM_ID + +// +// SATA Configurations +// +form formid = SATA_CONFIGURATION_ID, + + title = STRING_TOKEN(STR_SATA_FORM_TITLE); + + // + // Title on Drive Configuration Page + // + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_SATA_FORM_TITLE), + text = STRING_TOKEN(STR_NULL_STRING), + flags = 0, + key = 0; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + subtitle text = STRING_TOKEN(STR_CHIPSET_SATA_STRING); + + oneof varid = Setup.Sata, + prompt = STRING_TOKEN(STR_SATA_PROMPT), + help = STRING_TOKEN(STR_SATA_HELP), + option text = STRING_TOKEN(STR_ENABLE), value=1, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.SataInterfaceMode, + prompt = STRING_TOKEN(STR_SATA_MODE_SELECTION_PROMPT), + help = STRING_TOKEN(STR_SATA_MODE_SELECTION_HELP), + option text = STRING_TOKEN(STR_SATA_AHCI), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_SATA_RAID), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.SataTestMode, + prompt = STRING_TOKEN(STR_SATA_TEST_MODE_PROMPT), + help = STRING_TOKEN(STR_SATA_TEST_MODE_HELP), + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + + oneof varid = Setup.SataSalp, + prompt = STRING_TOKEN(STR_SATA_AHCI_SALP), + help = STRING_TOKEN(STR_SATA_AHCI_SALP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_SATA0_STRING), + text = STRING_TOKEN(STR_SATA0_NAME), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_SOFT_PRESERVE), + text = STRING_TOKEN(STR_SATA0_SOFT_PRESERVE_STATUS), + flags = 0, + key = 0; + + + oneof varid = Setup.SataPort[0], + prompt = STRING_TOKEN(STR_SATA_PORT_0), + help = STRING_TOKEN(STR_SATA_PORT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + + suppressif ideqval Setup.SataExternal[0] == 1; + oneof varid = Setup.SataHotPlug[0], + prompt = STRING_TOKEN(STR_SATA0_HOTPLUG_CAP_PROMPT), + help = STRING_TOKEN(STR_SATA_HOTPLUG_CAP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_SATA_ESATA), + text = STRING_TOKEN(STR_SATA_HOTPLUG_SUPPORT), + flags = 0, + key = 0; + endif; + + + oneof varid = Setup.SataMechanicalSw[0], + prompt = STRING_TOKEN(STR_SATA_MECHANICAL_SW0), + help = STRING_TOKEN(STR_SATA_MECHANICAL_SW_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + + oneof varid = Setup.SataSpinUp[0], + prompt = STRING_TOKEN(STR_SATA_SPIN_UP0), + help = STRING_TOKEN(STR_SATA_SPIN_UP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.SataType[0], + prompt = STRING_TOKEN(STR_SATA_TYPE0), + help = STRING_TOKEN(STR_SATA_TYPE_HELP), + option text = STRING_TOKEN(STR_SATA_HDD_STRING), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_SATA_SSD_STRING), value = 1, flags = RESET_REQUIRED; + endoneof; + + + oneof varid = Setup.PxDevSlp[0], + prompt = STRING_TOKEN(STR_PCH_P0DEVSLP_PROMPT), + help = STRING_TOKEN(STR_PCH_P0DEVSLP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.EnableDitoConfig[0], + prompt = STRING_TOKEN(STR_PCH_ENABLE_DITO_CONFIG_PROMPT), + help = STRING_TOKEN(STR_PCH_ENABLE_DITO_CONFIG_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + grayoutif ideqval Setup.EnableDitoConfig[0] == 0; + numeric varid = Setup.DitoVal[0], + prompt = STRING_TOKEN(STR_PCH_DITO_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_DITO_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 0, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 625, // 625 by default + endnumeric; + + numeric varid = Setup.DmVal[0], + prompt = STRING_TOKEN(STR_PCH_DM_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_DM_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 15, + step = 0, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 15, // 15 by default + endnumeric; + endif; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_SATA1_STRING), + text = STRING_TOKEN(STR_SATA1_NAME), + flags = 0, + key = 0; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_SOFT_PRESERVE), + text = STRING_TOKEN(STR_SATA1_SOFT_PRESERVE_STATUS), + flags = 0, + key = 0; + +//TODO suppressif ideqvallist Setup.SataTestMode == SATA_TEST_MODE_ENABLE; + oneof varid = Setup.SataPort[1], + prompt = STRING_TOKEN(STR_SATA_PORT_1), + help = STRING_TOKEN(STR_SATA_PORT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.SataExternal[1] == 1; + oneof varid = Setup.SataHotPlug[1], + prompt = STRING_TOKEN(STR_SATA1_HOTPLUG_CAP_PROMPT), + help = STRING_TOKEN(STR_SATA_HOTPLUG_CAP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_SATA_ESATA), + text = STRING_TOKEN(STR_SATA_HOTPLUG_SUPPORT), + flags = 0, + key = 0; + endif; + + + oneof varid = Setup.SataMechanicalSw[1], + prompt = STRING_TOKEN(STR_SATA_MECHANICAL_SW1), + help = STRING_TOKEN(STR_SATA_MECHANICAL_SW_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + + oneof varid = Setup.SataSpinUp[1], + prompt = STRING_TOKEN(STR_SATA_SPIN_UP1), + help = STRING_TOKEN(STR_SATA_SPIN_UP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.SataType[1], + prompt = STRING_TOKEN(STR_SATA_TYPE1), + help = STRING_TOKEN(STR_SATA_TYPE_HELP), + option text = STRING_TOKEN(STR_SATA_HDD_STRING), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_SATA_SSD_STRING), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PxDevSlp[1], + prompt = STRING_TOKEN(STR_PCH_P1DEVSLP_PROMPT), + help = STRING_TOKEN(STR_PCH_P1DEVSLP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.EnableDitoConfig[1], + prompt = STRING_TOKEN(STR_PCH_ENABLE_DITO_CONFIG_PROMPT), + help = STRING_TOKEN(STR_PCH_ENABLE_DITO_CONFIG_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + grayoutif ideqval Setup.EnableDitoConfig[1] == 0; + numeric varid = Setup.DitoVal[1], + prompt = STRING_TOKEN(STR_PCH_DITO_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_DITO_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1023, + step = 0, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 625, // 625 by default + endnumeric; + + numeric varid = Setup.DmVal[1], + prompt = STRING_TOKEN(STR_PCH_DM_VAL_PROMPT), + help = STRING_TOKEN(STR_PCH_DM_VAL_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 15, + step = 0, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 15, // 15 by default + endnumeric; + endif; + +endform; //End of SATA +// +// HD-Audio Configuration +// +form formid = HDAUDIO_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_HDAUDIO_OPTIONS_FORM_TITLE); + subtitle text = STRING_TOKEN(STR_HDAUDIO_OPTIONS_FORM_TITLE); + + oneof varid = Setup.ScHdAudio, + prompt = STRING_TOKEN(STR_HDA_PROMPT), + help = STRING_TOKEN(STR_HDA_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value= 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioDsp, + prompt = STRING_TOKEN(STR_HDA_DSP_PROMPT), + help = STRING_TOKEN(STR_HDA_DSP_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value= 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.ScHdAudioDsp == 0; + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_HDA_FEATURE_TITLE), + text = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = 0, + key = 0; + + // Wake on Voice (WoV) support + checkbox varid = Setup.ScHdAudioFeature[0], + prompt = STRING_TOKEN(STR_HDA_FEATURE_0_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // BT Sideband support + checkbox varid = Setup.ScHdAudioFeature[1], + prompt = STRING_TOKEN(STR_HDA_FEATURE_1_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = CHECKBOX_DEFAULT | RESET_REQUIRED, + key = 0, + endcheckbox; + + // SRAM Reclaim + checkbox varid = Setup.ScHdAudioFeature[3], + prompt = STRING_TOKEN(STR_HDA_FEATURE_3_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = CHECKBOX_DEFAULT | RESET_REQUIRED, + key = 0, + default = TRUE, + endcheckbox; + + suppressif ideqval Setup.ScHdAudioFeature[1] == 0; + // BT Intel HFP SCO + checkbox varid = Setup.ScHdAudioFeature[5], + prompt = STRING_TOKEN(STR_HDA_FEATURE_5_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = CHECKBOX_DEFAULT | RESET_REQUIRED, + key = 0, + endcheckbox; + + // BT Intel A2DP + checkbox varid = Setup.ScHdAudioFeature[6], + prompt = STRING_TOKEN(STR_HDA_FEATURE_6_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + endif; + + // Context Aware + checkbox varid = Setup.ScHdAudioFeature[9], + prompt = STRING_TOKEN(STR_HDA_FEATURE_9_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // NHLT Endpoints selection + text + help = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_TITLE), + text = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_TITLE), + flags = 0, + key = 0; + + oneof varid = Setup.ScHdAudioNhltEndpointDmic, + prompt = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_DMIC), + help = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_DMIC_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_HDA_DMIC_2CH), value = 1, flags = DEFAULT |RESET_REQUIRED; + option text = STRING_TOKEN(STR_HDA_DMIC_4CH), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioNhltEndpointBt, + prompt = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_BT), + help = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_BT_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | RESET_REQUIRED; + endoneof; + + grayoutif ideqval Setup.ScHdAudioIoBufferOwnership == 0; + oneof varid = Setup.ScHdAudioNhltEndpointI2sSKP, + prompt = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_I2S_SKP), + help = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_I2S_SKP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioNhltEndpointI2sHP, + prompt = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_I2S_HP), + help = STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_I2S_HP_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | RESET_REQUIRED; + endoneof; + endif; + + // Codec based Voice Activity Detection (VAD) support + checkbox varid = Setup.ScHdAudioFeature[2], + prompt = STRING_TOKEN(STR_HDA_FEATURE_2_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // DSP-based speech pre-processing disabled + checkbox varid = Setup.ScHdAudioFeature[7], + prompt = STRING_TOKEN(STR_HDA_FEATURE_7_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + grayoutif ideqval Setup.ScHdAudioFeature[7] == 0x0; + // Support for Windows 10 Hardware Voice Activation for Cortana or Intel WoV + // (can be enabled only for DSP-based speech pre-processing in disabled state) + // 0 == Intel Wake on Voice, 1 == Windows Voice Activation + oneof varid = Setup.ScHdAudioFeature[8], + prompt = STRING_TOKEN(STR_HDA_FEATURE_8_PROMPT), + help = STRING_TOKEN(STR_HDA_FEATURE_HELP), + option text = STRING_TOKEN(STR_INTEL_WAKE_ON_VOICE), value = 0, flags = DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_WIN_VOICE_ACTIVATION), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; // Speech pre-processing disabled check + + // DSP Pre/Post Processing module support selection + text + help = STRING_TOKEN(STR_EMPTY_STRING), + text = STRING_TOKEN(STR_HDA_PP_MODULE_TITLE), + text = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0, + key = 0; + + // Post Processing Module 0 - Waves + checkbox varid = Setup.ScHdAudioPostProcessingMod[0], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_0_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 1 - DTS + checkbox varid = Setup.ScHdAudioPostProcessingMod[1], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_1_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 2 - Spatial + checkbox varid = Setup.ScHdAudioPostProcessingMod[2], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_2_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 3 - Dolby + checkbox varid = Setup.ScHdAudioPostProcessingMod[3], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_3_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 4 - Samsung SoundAlive + checkbox varid = Setup.ScHdAudioPostProcessingMod[4], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_4_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 5 - Samsung SoundBooster + checkbox varid = Setup.ScHdAudioPostProcessingMod[5], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_5_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 6 - Samsung EQ/DRC + checkbox varid = Setup.ScHdAudioPostProcessingMod[6], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_6_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 7 - ForteMedia SAMSoft + checkbox varid = Setup.ScHdAudioPostProcessingMod[7], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_7_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + // Check WoV support status in DspFeatureMask + grayoutif ideqval Setup.ScHdAudioFeature[0] == 0x0; + // Post Processing Module 8 - WoV Intel + checkbox varid = Setup.ScHdAudioPostProcessingMod[8], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_8_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 9 - WoV Sensory + checkbox varid = Setup.ScHdAudioPostProcessingMod[9], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_9_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + endif; // WoV Support + // Post Processing Module 10 - Conexant Pre-Process + checkbox varid = Setup.ScHdAudioPostProcessingMod[10], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_10_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + + // Post Processing Module 11 - Context Aware + grayoutif ideqval Setup.ScHdAudioFeature[9] == 0x0; + checkbox varid = Setup.ScHdAudioPostProcessingMod[11], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_11_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + endif; // Context Aware Support + + // Custom Pre/Post-Processing modules with GUID entered by user + checkbox varid = Setup.ScHdAudioPostProcessingMod[29], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_29_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + suppressif ideqval Setup.ScHdAudioPostProcessingMod[29] == 0x0; + string varid = Setup.ScHdAudioPostProcessingModCustomGuid1, + prompt = STRING_TOKEN(STR_HDA_PP_CUSTOM_GUID_29_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_CUSTOM_GUID_HELP), + flags = 0 | RESET_REQUIRED, //INTERACTIVE, + key = 0, + minsize = 36, // GUID characters number in format 11111111-2222-3333-4444-1234567890ab (without ending null) + maxsize = 36, + endstring; + endif; // Custom module 29 disabled + + checkbox varid = Setup.ScHdAudioPostProcessingMod[30], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_30_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + suppressif ideqval Setup.ScHdAudioPostProcessingMod[30] == 0x0; + string varid = Setup.ScHdAudioPostProcessingModCustomGuid2, + prompt = STRING_TOKEN(STR_HDA_PP_CUSTOM_GUID_30_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_CUSTOM_GUID_HELP), + flags = 0 | RESET_REQUIRED, //INTERACTIVE, + key = 0, + minsize = 36, // GUID characters number in format 11111111-2222-3333-4444-1234567890ab (without ending null) + maxsize = 36, + endstring; + endif; // Custom module 30 disabled + + checkbox varid = Setup.ScHdAudioPostProcessingMod[31], + prompt = STRING_TOKEN(STR_HDA_PP_MODULE_31_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_MODULE_HELP), + flags = 0 | RESET_REQUIRED, + key = 0, + endcheckbox; + suppressif ideqval Setup.ScHdAudioPostProcessingMod[31] == 0x0; + string varid = Setup.ScHdAudioPostProcessingModCustomGuid3, + prompt = STRING_TOKEN(STR_HDA_PP_CUSTOM_GUID_31_PROMPT), + help = STRING_TOKEN(STR_HDA_PP_CUSTOM_GUID_HELP), + flags = 0 | RESET_REQUIRED, //INTERACTIVE, + key = 0, + minsize = 36, // GUID characters number in format 11111111-2222-3333-4444-1234567890ab (without ending null) + maxsize = 36, + endstring; + endif; // Custom module 31 disabled + endif; + + oneof varid = Setup.ScHdAudioMmt, + prompt = STRING_TOKEN(STR_HDA_CSME_MEM_TRANS_PROMPT), + help = STRING_TOKEN(STR_HDA_CSME_MEM_TRANS_HELP), + option text = STRING_TOKEN(STR_HDA_VC0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_HDA_VC2), value= 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioHmt, + prompt = STRING_TOKEN(STR_HDA_HOST_MEM_TRANS_PROMPT), + help = STRING_TOKEN(STR_HDA_HOST_MEM_TRANS_HELP), + option text = STRING_TOKEN(STR_HDA_VC0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_HDA_VC2), value= 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioIoBufferOwnership, + prompt = STRING_TOKEN(STR_HDA_IO_BUFF_PROMPT), + help = STRING_TOKEN(STR_HDA_IO_BUFF_HELP), + option text = STRING_TOKEN(STR_HDA_HDALINK), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_HDA_I2S), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioBiosCfgLockDown, + prompt = STRING_TOKEN(STR_HDA_BIOS_CONFIG_LOCK_DOWN_PROMPT), + help = STRING_TOKEN(STR_HDA_BIOS_CONFIG_LOCK_DOWN_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioClkGate, + prompt = STRING_TOKEN(STR_HDA_CLOCK_GATE_PROMPT), + help = STRING_TOKEN(STR_HDA_CLOCK_GATE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioPwrGate, + prompt = STRING_TOKEN(STR_HDA_POWER_GATE_PROMPT), + help = STRING_TOKEN(STR_HDA_POWER_GATE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ScHdAudioPme, + prompt = STRING_TOKEN(STR_HDA_PME_PROMPT), + help = STRING_TOKEN(STR_HDA_PME_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + oneof varid = Setup.HdAudioLinkFrequency, + prompt = STRING_TOKEN(STR_HDA_HDAUDIO_LINK_FREQ), + help = STRING_TOKEN(STR_HDA_HDAUDIO_LINK_FREQ_HELP), + option text = STRING_TOKEN(STR_6MHZ), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_12MHZ), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_24MHZ), value = 2, flags = DEFAULT | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.IDispLinkFrequency, + prompt = STRING_TOKEN(STR_HDA_IDISP_LINK_FREQ), + help = STRING_TOKEN(STR_HDA_IDISP_LINK_FREQ_HELP), + option text = STRING_TOKEN(STR_48MHZ), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_96MHZ), value = 4, flags = DEFAULT | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.IDispLinkFrequency == 0x4; + oneof varid = Setup.IDispLinkTmode, + prompt = STRING_TOKEN(STR_HDA_IDISP_LINK_TMODE), + help = STRING_TOKEN(STR_HDA_IDISP_LINK_TMODE_HELP), + option text = STRING_TOKEN(STR_HDA_IDISP_2T_MODE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_HDA_IDISP_1T_MODE), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; // Setup.IDisplayLinkFreq == 0x4; + + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + +endform; // End of HDAUDIO_OPTIONS_FORM_ID + +// +// GMM Configurations +// +form formid = GMM_OPTIONS_FORM_ID, + title = STRING_TOKEN(STR_GMM_OPTIONS_FORM_TITLE); + subtitle text = STRING_TOKEN(STR_GMM_OPTIONS_FORM_TITLE); + + oneof varid = Setup.Gmm, + prompt = STRING_TOKEN(STR_GMM_PROMPT), + help = STRING_TOKEN(STR_GMM_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_GMM_CLOCK_GATE_SETTING_SUBTITLE); + + oneof varid = Setup.GmmCgPGCBEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_PGCB_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_PGCB_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgSBDEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_SBD_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_SBD_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgSBTEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_SBT_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_SBT_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgSBPEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_SBP_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_SBP_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgCoreEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_CORE_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_CORE_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgDmaEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_DMA_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_DMA_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgRAEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_RA_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_RA_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgHostEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_HOST_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_HOST_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgPEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_PARTITION_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_PARTITION_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmCgTEnabled, + prompt = STRING_TOKEN(STR_GMM_CG_TRUNK_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_CG_TRUNK_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_GMM_POWER_GATE_SETTING_SUBTITLE); + + oneof varid = Setup.GmmPgHwAutoEnabled, + prompt = STRING_TOKEN(STR_GMM_PG_HW_AUTO_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_PG_HW_AUTO_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + grayoutif ideqval Setup.GmmPgHwAutoEnabled == 1; + oneof varid = Setup.GmmPgD3HotEnabled, + prompt = STRING_TOKEN(STR_GMM_PG_D3_HOT_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_PG_D3_HOT_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmPgI3Enabled, + prompt = STRING_TOKEN(STR_GMM_PG_I3_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_PG_I3_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GmmPgPMCREnabled, + prompt = STRING_TOKEN(STR_GMM_PG_PMCR_ENABLE_PROMPT), + help = STRING_TOKEN(STR_GMM_PG_PMCR_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + endif; + +endform; // End of GMM_OPTIONS_FORM_ID \ No newline at end of file diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi new file mode 100644 index 0000000000..0893b59c51 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SystemComponent.vfi @@ -0,0 +1,127 @@ +// /** @file +// System Component Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = SYSTEM_COMPONENT_FORM_ID, + + title = STRING_TOKEN(STR_SYSTEM_COMPONENT_TITLE); + + oneof varid = Setup.CRIDSettings, + prompt = STRING_TOKEN(STR_CRID_PROMPT), + help = STRING_TOKEN(STR_CRID_SETTING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_CRID_0_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_CRID_1_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_CRID_2_STRING), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PmicEnable, + prompt = STRING_TOKEN(STR_PMIC_ACPI_OBJECT_PROMPT), + help = STRING_TOKEN(STR_PMIC_ACPI_OBJECT_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PnpSettings, + prompt = STRING_TOKEN(STR_PNP_SETTING_PROMPT), + help = STRING_TOKEN(STR_PNP_SETTING_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; +#if (PNP_DEBUG == 1) + option text = STRING_TOKEN(STR_PNP_POWER_STRING), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_PNP_PERFORMANCE_STRING), value = 2, flags = RESET_REQUIRED; +#endif + option text = STRING_TOKEN(STR_PNP_POWER_PERFORMANCE_STRING), value = 3, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ResetSelect, + prompt = STRING_TOKEN(STR_RESET_SELECT), + help = STRING_TOKEN(STR_RESET_SELECT_HELP), + option text = STRING_TOKEN(STR_WARM_RESET), value = 0x6, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_COLD_RESET), value = 0xE, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + // Embedded Power Instrumentation + oneof varid = Setup.EPIEnable, + prompt = STRING_TOKEN(STR_EPI_ENABLE_PROMPT), + help = STRING_TOKEN(STR_EPI_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.TypeCEnable, + prompt = STRING_TOKEN(STR_TYPEC_ENABLE_PROMPT), + help = STRING_TOKEN(STR_TYPEC_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_AUTO), value = 2, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + +//SSC + subtitle text = STRING_TOKEN(STR_NULL_STRING); + subtitle text = STRING_TOKEN(STR_SSC_SETTING_SUBTITLE); + + oneof varid = Setup.DDRSSCEnable, + prompt = STRING_TOKEN(STR_DDR_SSC_ENABLE_PROMPT), + help = STRING_TOKEN(STR_DDR_SSC_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.DDRSSCEnable == 0; + oneof varid = Setup.DDRSSCSelection, + prompt = STRING_TOKEN(STR_DDR_SSC_SELECTION_TABLE_PROMPT), + help = STRING_TOKEN(STR_DDR_SSC_SELECTION_TABLE_HELP), + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M01), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M02), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M03), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M04), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M05), value = 5, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING; + endoneof; + endif; + + oneof varid = Setup.DDRCLKBending, + prompt = STRING_TOKEN(STR_DDR_CLK_BENDING_SELECTION_TABLE_PROMPT), + help = STRING_TOKEN(STR_DDR_CLK_BENDING_SELECTION_TABLE_HELP), + option text = STRING_TOKEN(STR_CLK_BENDING_SELECTION_TABLE_13), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_CLK_BENDING_SELECTION_TABLE_06), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_CLK_BENDING_SELECTION_TABLE_0), value = 2, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING; + option text = STRING_TOKEN(STR_CLK_BENDING_SELECTION_TABLE_M09), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.HSSIOSSCEnable, + prompt = STRING_TOKEN(STR_HSSIO_SSC_ENABLE_PROMPT), + help = STRING_TOKEN(STR_HSSIO_SSC_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.HSSIOSSCEnable == 0; + oneof varid = Setup.HSSIOSSCSelection, + prompt = STRING_TOKEN(STR_HSSIO_SSC_SELECTION_TABLE_PROMPT), + help = STRING_TOKEN(STR_HSSIO_SSC_SELECTION_TABLE_HELP), + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_0), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M01), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M02), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M03), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M04), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_SSC_SELECTION_TABLE_M05), value = 5, flags = RESET_REQUIRED | DEFAULT | MANUFACTURING; + endoneof; + endif; + +endform; + + + diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Thermal.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Thermal.vfi new file mode 100644 index 0000000000..7c3c80edce --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Thermal.vfi @@ -0,0 +1,819 @@ +// /** @file +// Thermal Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = THERMAL_FORM_ID, + + title = STRING_TOKEN(STR_THERMAL_TITLE); + + subtitle text = STRING_TOKEN(STR_THERMAL_CONFIGURATION_HELP); + + oneof varid = Setup.AutoThermalReporting, + prompt = STRING_TOKEN(STR_THERMAL_REPORTING_PROMPT), + help = STRING_TOKEN(STR_THERMAL_REPORTING_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.EnableDptf == 0x1 OR ideqval Setup.AutoThermalReporting == 0x1; + oneof varid = Setup.CriticalThermalTripPoint, + prompt = STRING_TOKEN(STR_ACPI_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_ACPI_CRITICAL_THERMAL_TRIP_POINT_HELP), + option text = STRING_TOKEN (STR_POR), value = 100, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_15_C), value = 15, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_23_C), value = 23, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_31_C), value = 31, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_39_C), value = 39, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_47_C), value = 47, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_55_C), value = 55, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_63_C), value = 63, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_71_C), value = 71, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_79_C), value = 79, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_87_C), value = 87, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_95_C), value = 95, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_103_C), value = 103, flags=0 | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PassiveThermalTripPoint, + prompt = STRING_TOKEN (STR_ACPI_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_ACPI_PASSIVE_THERMAL_TRIP_POINT_HELP), + option text = STRING_TOKEN (STR_95_C), value = 95, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_DISABLE), value = 127, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_15_C), value = 15, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_23_C), value = 23, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_31_C), value = 31, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_39_C), value = 39, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_47_C), value = 47, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_55_C), value = 55, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_63_C), value = 63, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_71_C), value = 71, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_79_C), value = 79, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_87_C), value = 87, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_103_C), value = 103, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_111_C), value = 111, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_119_C), value = 119, flags=0 | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.ActiveTripPoint, + prompt = STRING_TOKEN(STR_ACPI_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_ACPI_ACTIVE_THERMAL_TRIP_POINT_HELP), + option text = STRING_TOKEN (STR_15_C), value = 15, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_23_C), value = 23, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_31_C), value = 31, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_39_C), value = 39, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_47_C), value = 47, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_55_C), value = 55, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_60_C), value = 60, flags=DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_63_C), value = 63, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_71_C), value = 71, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_79_C), value = 79, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_87_C), value = 87, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_95_C), value = 95, flags=0 | RESET_REQUIRED; + option text = STRING_TOKEN (STR_103_C), value = 103, flags=0 | RESET_REQUIRED; + endoneof; + + suppressif TRUE; + numeric varid = Setup.PassiveTc1Value, + prompt = STRING_TOKEN (STR_ACPI_PASSIVE_TC1_VALUE), + help = STRING_TOKEN (STR_ACPI_PASSIVE_TC1_VALUE_HELP), + flags = 0 | RESET_REQUIRED, + minimum = 1, + maximum = 16, + step = 1, + default = 1, + endnumeric; + + numeric varid = Setup.PassiveTc2Value, + prompt = STRING_TOKEN (STR_ACPI_PASSIVE_TC2_VALUE), + help = STRING_TOKEN (STR_ACPI_PASSIVE_TC2_VALUE_HELP), + flags = 0 | RESET_REQUIRED, + minimum = 1, + maximum = 16, + step = 1, + default = 5, + endnumeric; + + numeric varid = Setup.PassiveTspValue, + prompt = STRING_TOKEN (STR_ACPI_PASSIVE_TSP_VALUE), + help = STRING_TOKEN (STR_ACPI_PASSIVE_TSP_VALUE_HELP), + flags = 0 | RESET_REQUIRED, + minimum = 2, + maximum = 32, + step = 2, + default = 10, + endnumeric; + endif; + endif; + // + // DPTF Configuration + // + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_DYNAMIC_PLATFORM_THER_FRAME_PROMPT); + + oneof varid = Setup.EnableDptf, + prompt = STRING_TOKEN(STR_DPTF_PROMPT), + help = STRING_TOKEN(STR_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0x00, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=0x01, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.EnableDptf == 0x0; + numeric varid = Setup.EnableDCFG, + prompt = STRING_TOKEN (STR_DPTF_CONFIG_PROMPT), + help = STRING_TOKEN (STR_DPTF_CONFIG_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 255, + step = 1, + default = 0, + endnumeric; + + oneof varid = Setup.DptfProcessor, + prompt = STRING_TOKEN(STR_PROCESSOR_DPTF_PROMPT), + help = STRING_TOKEN(STR_PROCESSOR_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0x00, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=0x01, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.DptfProcessor == 0x0; + numeric varid = Setup.DptfProcActiveTemperature, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 90, + endnumeric; + + numeric varid = Setup.DptfProcPassiveTemperature, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 100, + endnumeric; + + numeric varid = SETUP_DATA.DptfProcCriticalTemperatureS3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 110, + endnumeric; + + numeric varid = SETUP_DATA.DptfProcHotThermalTripPoint, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 110, + endnumeric; + + numeric varid = Setup.DptfProcCriticalTemperature, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 105, + endnumeric; + + numeric varid = SETUP_DATA.ThermalSamplingPeriodTCPU, + prompt = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD), + help = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 100, + step = 1, + default = 0, + endnumeric; + endif; + + oneof varid = Setup.DptfDisplayDevice, + prompt = STRING_TOKEN(STR_DPTF_DISPLAY_PROMPT), + help = STRING_TOKEN(STR_DPTF_DISPLAY_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.DptfFanDevice, + prompt = STRING_TOKEN(STR_FAN_DPTF_PROMPT), + help = STRING_TOKEN(STR_FAN_DPTF_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.EnableSen1Participant, + prompt = STRING_TOKEN(STR_SEN1_DEVICE_PROMPT), + help = STRING_TOKEN(STR_PROC_MEMORY_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.EnableSen1Participant == 0; + numeric varid = Setup.ActiveThermalTripPointSen1, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = Setup.PassiveThermalTripPointSen1, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 65, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointSen1S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointSen1, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 75, + endnumeric; + + numeric varid = Setup.CriticalThermalTripPointSen1, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 127, + step = 1, + default = 80, + endnumeric; + + numeric varid = SETUP_DATA.SensorSamplingPeriodSen1, + prompt = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD), + help = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 100, + step = 1, + default = 10, + endnumeric; + endif; + + oneof varid = Setup.DptfChargerDevice, + prompt = STRING_TOKEN(STR_DPTF_CHARGER_PROMPT), + help = STRING_TOKEN(STR_DPTF_CHARGER_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0x00, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=0x01, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.EnablePowerParticipant, + prompt = STRING_TOKEN(STR_POWER_DEVICE), + help = STRING_TOKEN(STR_POWER_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnablePowerParticipant == 0; + numeric varid = SETUP_DATA.PowerParticipantPollingRate, + prompt = STRING_TOKEN(STR_DPTF_PPPR), + help = STRING_TOKEN(STR_DPTF_PPPR_HELP), + flags = RESET_REQUIRED, + minimum = 0, + maximum = 1000, + step = 1, + default = 0, + endnumeric; + endif; + + // + // Gen Participants 1 to 4 + // + + oneof varid = SETUP_DATA.EnableGen1Participant, + prompt = STRING_TOKEN(STR_GEN1_DEVICE), + help = STRING_TOKEN(STR_GEN1_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnableGen1Participant == 0; + numeric varid = SETUP_DATA.ActiveThermalTripPointGen1, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = SETUP_DATA.PassiveThermalTripPointGen1, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 65, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen1S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointGen1, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 75, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen1, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 80, + endnumeric; + + numeric varid = SETUP_DATA.ThermistorSamplingPeriodGen1, + prompt = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD), + help = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD_HELP), + minimum = 0, + maximum = 100, + step = 1, + default = 10, + endnumeric; + endif; // end of Gen1 Participant + + oneof varid = SETUP_DATA.EnableGen2Participant, + prompt = STRING_TOKEN(STR_GEN2_DEVICE), + help = STRING_TOKEN(STR_GEN2_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnableGen2Participant == 0; + numeric varid = SETUP_DATA.ActiveThermalTripPointGen2, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = SETUP_DATA.PassiveThermalTripPointGen2, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 65, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen2S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointGen2, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 75, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen2, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 80, + endnumeric; + + numeric varid = SETUP_DATA.ThermistorSamplingPeriodGen2, + prompt = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD), + help = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD_HELP), + minimum = 0, + maximum = 100, + step = 1, + default = 10, + endnumeric; + endif; //end of Gen2 Participant + + oneof varid = SETUP_DATA.EnableGen3Participant, + prompt = STRING_TOKEN(STR_GEN3_DEVICE), + help = STRING_TOKEN(STR_GEN3_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnableGen3Participant == 0; + numeric varid = SETUP_DATA.ActiveThermalTripPointGen3, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = SETUP_DATA.PassiveThermalTripPointGen3, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 65, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen3S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointGen3, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 75, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 80, + endnumeric; + + numeric varid = SETUP_DATA.ThermistorSamplingPeriodGen3, + prompt = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD), + help = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD_HELP), + minimum = 0, + maximum = 100, + step = 1, + default = 10, + endnumeric; + endif; //end of Gen3 Participant + + oneof varid = SETUP_DATA.EnableGen4Participant, + prompt = STRING_TOKEN(STR_GEN4_DEVICE), + help = STRING_TOKEN(STR_GEN4_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnableGen4Participant == 0; + numeric varid = SETUP_DATA.ActiveThermalTripPointGen4, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = SETUP_DATA.PassiveThermalTripPointGen4, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 65, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen4S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointGen4, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 75, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointGen4, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 80, + endnumeric; + + numeric varid = SETUP_DATA.ThermistorSamplingPeriodGen4, + prompt = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD), + help = STRING_TOKEN (STR_DPTF_SAMPLING_PERIOD_HELP), + minimum = 0, + maximum = 100, + step = 1, + default = 10, + endnumeric; + endif; // end of Gen4 Participant + + // + // OEM Design Variables 0 to 5 + // + + numeric varid = SETUP_DATA.OemDesignVariable0, + prompt = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_0), + help = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_HELP), + minimum = 0, + maximum = 255, + step = 1, + default = 0, + endnumeric; + + numeric varid = SETUP_DATA.OemDesignVariable1, + prompt = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_1), + help = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_HELP), + minimum = 0, + maximum = 255, + step = 1, + default = 0, + endnumeric; + + numeric varid = SETUP_DATA.OemDesignVariable2, + prompt = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_2), + help = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_HELP), + minimum = 0, + maximum = 255, + step = 1, + default = 0, + endnumeric; + + numeric varid = SETUP_DATA.OemDesignVariable3, + prompt = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_3), + help = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_HELP), + minimum = 0, + maximum = 255, + step = 1, + default = 0, + endnumeric; + + numeric varid = SETUP_DATA.OemDesignVariable4, + prompt = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_4), + help = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_HELP), + minimum = 0, + maximum = 255, + step = 1, + default = 0, + endnumeric; + + numeric varid = SETUP_DATA.OemDesignVariable5, + prompt = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_5), + help = STRING_TOKEN (STR_DPTF_OEM_DESIGN_VARIABLE_HELP), + minimum = 0, + maximum = 255, + step = 1, + default = 0, + endnumeric; + + // + // Virtual Sensors + // + oneof varid = SETUP_DATA.EnableVS1Participant, + prompt = STRING_TOKEN(STR_VIRTUAL_SENSOR_DEVICE1), + help = STRING_TOKEN(STR_VIRTUAL_SENSOR_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnableVS1Participant == 0; + numeric varid = SETUP_DATA.ActiveThermalTripPointVS1, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + minimum = 40, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = SETUP_DATA.PassiveThermalTripPointVS1, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointVS1S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 90, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointVS1, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 95, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointVS1, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 105, + endnumeric; + endif; // end of Vir1 Participant + + oneof varid = SETUP_DATA.EnableVS2Participant, + prompt = STRING_TOKEN(STR_VIRTUAL_SENSOR_DEVICE2), + help = STRING_TOKEN(STR_VIRTUAL_SENSOR_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnableVS2Participant == 0; + numeric varid = SETUP_DATA.ActiveThermalTripPointVS2, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + minimum = 40, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = SETUP_DATA.PassiveThermalTripPointVS2, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointVS2S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 90, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointVS2, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 95, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointVS2, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 105, + endnumeric; + endif; // end of Vir2 Participant + + oneof varid = SETUP_DATA.EnableVS3Participant, + prompt = STRING_TOKEN(STR_VIRTUAL_SENSOR_DEVICE3), + help = STRING_TOKEN(STR_VIRTUAL_SENSOR_DEVICE_HELP), + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; + endoneof; + + suppressif ideqval SETUP_DATA.EnableVS3Participant == 0; + numeric varid = SETUP_DATA.ActiveThermalTripPointVS3, + prompt = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN(STR_DPTF_ACTIVE_THERMAL_TRIP_POINT_HELP), + minimum = 40, + maximum = 127, + step = 1, + default = 60, + endnumeric; + + numeric varid = SETUP_DATA.PassiveThermalTripPointVS3, + prompt = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_PASSIVE_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 70, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointVS3S3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_S3_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 90, + endnumeric; + + numeric varid = SETUP_DATA.HotThermalTripPointVS3, + prompt = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_HOT_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 95, + endnumeric; + + numeric varid = SETUP_DATA.CriticalThermalTripPointVS3, + prompt = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT), + help = STRING_TOKEN (STR_DPTF_CRITICAL_THERMAL_TRIP_POINT_HELP), + minimum = 0, + maximum = 127, + step = 1, + default = 105, + endnumeric; + endif; // end of Vir3 Participant + + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + // + // Jump to DPTF Policy Form + // + goto DPTF_POLICY_FORM_ID, + prompt = STRING_TOKEN(STR_DPTF_POLICY_TITLE), + help = STRING_TOKEN(STR_DPTF_POLICY_HELP); + // + // + // + + endif; // supress if EnableDPTF + +endform; + +#include "DptfPolicy.vfi" diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UnCore.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UnCore.vfi new file mode 100644 index 0000000000..32eea2005d --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UnCore.vfi @@ -0,0 +1,325 @@ +// /** @file +// UnCore Setup formset. +// +// Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + + +form formid = UNCORE_FORM_ID, + title = STRING_TOKEN(STR_UNCORE_CONFIGURATION_TITLE); + + subtitle text = STRING_TOKEN(STR_GOP_TITLE); + + oneof varid = Setup.GOPEnable, + prompt = STRING_TOKEN(STR_GOP_VBIOS_SWITCH), + help = STRING_TOKEN(STR_GOP_VBIOS_SWITCH_HELP), + option text = STRING_TOKEN(STR_ENABLE), value =1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PeiGraphicsPeimInit, + prompt = STRING_TOKEN(STR_PEI_DISPLAY), + help = STRING_TOKEN(STR_PEI_DISPLAY_HELP), + option text = STRING_TOKEN (STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GOPBrightnessLevel, + prompt = STRING_TOKEN(STR_GOP_BRIGHTNESS_LEVEL), + help = STRING_TOKEN(STR_GOP_BRIGHTNESS_LEVEL_HELP), + option text = STRING_TOKEN(STR_GOP_BRIGHT_20), value =2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_40), value =3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_60), value =4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_80), value =5, flags = DEFAULT | MANUFACTURING| RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_100), value =6, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_120), value =7, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_140), value =8, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_160), value =9, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_180), value =10, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_200), value =11, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_220), value =12, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_240), value =13, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_GOP_BRIGHT_255), value =14, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.VbtSelect, + prompt = STRING_TOKEN(STR_VBT_SELECT_PROMPT), + help = STRING_TOKEN(STR_VBT_SELECT_HELP), + option text = STRING_TOKEN(STR_VBT_EDP), value = 0, flags = DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_VBT_MIPI_AUO), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_VBT_MIPI_SHARP), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_VBT_MIPI_JDI), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_VBT_LSPCON), value = 4, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + subtitle text = STRING_TOKEN(STR_IGD_TITLE); + + oneof varid = Setup.Igd, + prompt = STRING_TOKEN (STR_IGD_PROMPT), + help = STRING_TOKEN (STR_IGD_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0, flags= RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.PrimaryVideoAdaptor, + prompt = STRING_TOKEN(STR_PRIMARY_DISPLAY), + help = STRING_TOKEN(STR_PRIMARY_DISPLAY_HELP), + option text = STRING_TOKEN(STR_IGD_STRING), value = 0, flags = DEFAULT | MANUFACTURING |RESET_REQUIRED; + option text = STRING_TOKEN(STR_PCI_STRING), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_HG_STRING) , value = 4, flags = RESET_REQUIRED; + endoneof; + + suppressif NOT ideqval SETUP_DATA.PrimaryVideoAdaptor == 4; + numeric varid = SETUP_DATA.DelayAfterPwrEn, + prompt = STRING_TOKEN (STR_HG_DELAY_AFTR_PWR_EN), + help = STRING_TOKEN (STR_HG_DELAY_AFTR_PWR_EN_HELP), + minimum = 0, + maximum = 1000, + step = 0, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 300, + endnumeric; + endif; + + suppressif NOT ideqval SETUP_DATA.PrimaryVideoAdaptor == 4; + numeric varid = SETUP_DATA.DelayAfterHoldReset, + prompt = STRING_TOKEN (STR_HG_DELAY_AFTR_HLD_RST), + help = STRING_TOKEN (STR_HG_DELAY_AFTR_HLD_RST_HELP), + minimum = 0, + maximum = 1000, + step = 0, // Stepping of 0 equates to a manual entering of a value, otherwise it will auto-increment with a left/right arrow + default = 100, + endnumeric; + endif; + + oneof varid = Setup.EnableRenderStandby, + prompt = STRING_TOKEN(STR_VIDEO_RS2_PROMPT), + help = STRING_TOKEN(STR_VIDEO_RS2_HELP), + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.GTTSize, + prompt = STRING_TOKEN(STR_GTT_SIZE), + help = STRING_TOKEN(STR_GTT_SIZE_HELP), + option text = STRING_TOKEN(GTT_SIZE_2MB), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(GTT_SIZE_4MB), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(GTT_SIZE_8MB), value = 3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.IgdApertureSize, + prompt = STRING_TOKEN(STR_APERTURE_SIZE), + help = STRING_TOKEN(STR_APERTURE_SIZE_HELP), + option text = STRING_TOKEN(APERTURE_SIZE_128MB), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(APERTURE_SIZE_256MB), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(APERTURE_SIZE_512MB), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.IgdDvmt50PreAlloc, + prompt = STRING_TOKEN(STR_DVMT50_PRE_ALLOC), + help = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_HELP), + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_64M), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_96M), value = 3, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_128M), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_160M), value = 5, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_192M), value = 6, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_224M), value = 7, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_256M), value = 8, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_288M), value = 9, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_320M), value = 10, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_352M), value = 11, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_384M), value = 12, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_416M), value = 13, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_448M), value = 14, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_480M), value = 15, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_PRE_ALLOC_512M), value = 16, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.IgdDvmt50TotalAlloc, + prompt = STRING_TOKEN(STR_DVMT50_DVMT ), + help = STRING_TOKEN(STR_DVMT50_DVMT_HELP), + option text = STRING_TOKEN(STR_DVMT50_ALLOC_128), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_ALLOC_256), value = 2, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DVMT50_ALLOC_MAX), value = 3, flags = RESET_REQUIRED; + endoneof; + + oneof varid = SETUP_DATA.CdClock, + prompt = STRING_TOKEN(STR_CD_CLOCK), + help = STRING_TOKEN(STR_CD_CLOCK_HELP), + option text = STRING_TOKEN(STR_CD_CLOCK_144), value= 0, flags= RESET_REQUIRED; + option text = STRING_TOKEN(STR_CD_CLOCK_288), value= 1, flags= RESET_REQUIRED; + option text = STRING_TOKEN(STR_CD_CLOCK_384), value= 2, flags= RESET_REQUIRED; + option text = STRING_TOKEN(STR_CD_CLOCK_576), value= 3, flags= RESET_REQUIRED; + option text = STRING_TOKEN(STR_CD_CLOCK_624), value= 4, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + // + //Gt Config + // + oneof varid = Setup.PmSupport, + prompt = STRING_TOKEN(STR_PM_SUPPORT), + help = STRING_TOKEN(STR_PM_SUPPORT_HELP), + option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value=0, flags= RESET_REQUIRED; + endoneof; + + // + //Gt Config - PAVP + // + oneof varid = Setup.PavpEnable, + prompt = STRING_TOKEN(STR_PAVP_ENABLE), + help = STRING_TOKEN(STR_PAVP_ENABLE_HELP), + option text = STRING_TOKEN(STR_ENABLE), value=1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_DISABLE), value=0, flags = RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + subtitle text = STRING_TOKEN(STR_IGD_LCD_CONTROL); + + oneof varid = Setup.IgdLcdIBia, + prompt = STRING_TOKEN(STR_VIDEO_LCD_IBIA), + help = STRING_TOKEN(STR_VIDEO_LCD_IBIAHLP), + option text = STRING_TOKEN(STR_VIDEO_LCD_IBIAA), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IBIAD), value = 1, flags = 0| RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IBIAL1), value = 2, flags = 0| RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IBIAL2), value = 3, flags = 0| RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IBIAL3), value = 4, flags = 0| RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IBIAL4), value = 5, flags = 0| RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IBIAL5), value = 6, flags = 0| RESET_REQUIRED; + endoneof; + + oneof varid = Setup.AlsEnable, + prompt = STRING_TOKEN (STR_ACPI_ALS_ENABLE), + help = STRING_TOKEN (STR_ACPI_ALS_ENABLE_HELP), + option text = STRING_TOKEN(STR_DISABLE), value=0, flags= 0 | RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value=1, flags= DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + + oneof varid = Setup.IgdFlatPanel, + prompt = STRING_TOKEN(STR_IGD_FLAT_PANEL_PROMPT), + help = STRING_TOKEN(STR_NULL_STRING), + option text = STRING_TOKEN(STR_AUTOMATIC), value=0x00, flags=DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_640X480), value=0x01, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_800X600), value=0x02, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_1024X768), value=0x03, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_1280X1024), value=0x04, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_1366X768), value=0x05, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_1680X1050), value=0x06, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_1920X1200), value=0x07, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_1280X800), value=0x08, flags=RESET_REQUIRED; + endoneof; + + oneof varid = Setup.BootDisplayDevice, + prompt = STRING_TOKEN(STR_BOOT_DISPLAY_DEVICE_PROMPT), + help = STRING_TOKEN(STR_BOOT_DISPLAY_DEVICE_HELP), + option text = STRING_TOKEN(STR_AUTOMATIC), value=0x00, flags=DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_VGAPORT), value=0x01, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_HDMIPORTB), value=0x02, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_DPPORTB), value=0x03, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_DPPORTC), value=0x04, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_EDPPORTC), value=0x05, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_DSIPORTA), value=0x06, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_DSIPORTC), value=0x07, flags=RESET_REQUIRED; + + endoneof; + + // + //Panel Scaling + // + oneof varid = Setup.PanelScaling, + prompt = STRING_TOKEN(STR_PANEL_SCALING_PROMPT), + help = STRING_TOKEN(STR_PANEL_SCALING_HELP), + option text = STRING_TOKEN(STR_AUTOMATIC), value=0x00, flags=DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_PANEL_SCALING_STRETCH), value=0x01, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_PANEL_SCALING_CENTER), value=0x02, flags=RESET_REQUIRED; + endoneof; + + // + //GMCH BLC Control + // + oneof varid = Setup.IgdLcdIGmchBlc, + prompt = STRING_TOKEN(STR_VIDEO_LCD_IGMCHBLC_PROMPT), + help = STRING_TOKEN(STR_VIDEO_LCD_IGMCHBLC_HELP), + option text = STRING_TOKEN(STR_VIDEO_LCD_IGMCHBLC1), value=0x00, flags=DEFAULT | RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IGMCHBLC2), value=0x01, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IGMCHBLC3), value=0x02, flags=RESET_REQUIRED; + option text = STRING_TOKEN(STR_VIDEO_LCD_IGMCHBLC4), value=0x03, flags=RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + + // + //Memory Configuration + // + subtitle text = STRING_TOKEN(STR_MEMORY_CONFIGURATION_TITLE); + + oneof varid = Setup.ScramblerSupport, + prompt = STRING_TOKEN (STR_MEMORY_SCRAMBLER_PROMPT), + help = STRING_TOKEN (STR_MEMORY_SCRAMBLER_HELP), + option text = STRING_TOKEN (STR_ENABLE), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN (STR_DISABLE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + endoneof; + + subtitle text = STRING_TOKEN(STR_NULL_STRING); + // + //IPU Configuration + // + subtitle text = STRING_TOKEN(STR_IPU_CONFIGURATION_TITLE); + + oneof varid = Setup.IpuEn, + questionid = 0x1002, + prompt = STRING_TOKEN(STR_IPU_ENABLED), + help = STRING_TOKEN(STR_IPU_ENABLED_HELP), + flags = INTERACTIVE, + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_ENABLE), value = 1, flags = DEFAULT | RESET_REQUIRED; + endoneof; + + suppressif ideqval Setup.IpuEn == 0; + oneof varid = Setup.IpuAcpiMode, + prompt = STRING_TOKEN (STR_IPU_ACPI_PROMPT), + help = STRING_TOKEN (STR_IPU_ACPI_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_IPU_ACPI_IGFX), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_IPU_ACPI_NOIGFX), value = 2, flags = RESET_REQUIRED; + endoneof; + + oneof varid = Setup.WorldCameraSel, + prompt = STRING_TOKEN(STR_WORLDCAMERA_SELECTION_PROMPT), + help = STRING_TOKEN(STR_WORLDCAMERA_SELECTION_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_IMX214), value = 1, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_IMX135), value = 2, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + oneof varid = Setup.UserCameraSel, + prompt = STRING_TOKEN(STR_USERCAMERA_SELECTION_PROMPT), + help = STRING_TOKEN(STR_USERCAMERA_SELECTION_HELP), + option text = STRING_TOKEN(STR_DISABLE), value = 0, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_OV2740), value = 1, flags = MANUFACTURING | DEFAULT | RESET_REQUIRED; + endoneof; + + // Rotation + oneof varid = Setup.CameraRotationAngle, + prompt = STRING_TOKEN(STR_CAM_DEGREE), + help = STRING_TOKEN(STR_CAM_DEGREE_HELP), + option text = STRING_TOKEN(STR_CAM_DEGREE_0), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; + option text = STRING_TOKEN(STR_CAM_DEGREE_90), value = 2, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_CAM_DEGREE_180), value = 4, flags = RESET_REQUIRED; + option text = STRING_TOKEN(STR_CAM_DEGREE_270), value = 6, flags = RESET_REQUIRED; + endoneof; + + endif; + +endform; diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UqiList.uni b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UqiList.uni new file mode 100644 index 0000000000..df597460ee Binary files /dev/null and b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/UqiList.uni differ diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Vfr.vfr b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Vfr.vfr new file mode 100644 index 0000000000..63d5e7f23f --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/Vfr.vfr @@ -0,0 +1,121 @@ +// /** @file +// +// Copyright (c) 2016, Intel Corporation. All rights reserved.
+// +// This program and the accompanying materials +// are licensed and made available under the terms and conditions of the BSD License +// which accompanies this distribution. The full text of the license may be found at +// http://opensource.org/licenses/bsd-license.php. +// +// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +// +// **/ + +#include "Configuration.h" +#include "PlatformSetupDxeStrDefs.h" +#include "Guid/SetupVariable.h" + + +formset + guid = SYSTEM_CONFIGURATION_GUID, + title = STRING_TOKEN(STR_SYSTEM_SETUP_TITLE), + help = STRING_TOKEN(STR_SYSTEM_SETUP_HELP), + class = 1, + subclass = 0, + + + varstore SYSTEM_CONFIGURATION, name = Setup, guid = SYSTEM_CONFIGURATION_GUID; + form formid = ROOT_FORM_ID, + title = STRING_TOKEN(STR_SYSTEM_SETUP_TITLE); + + // + // Jump to 1)Main Form + // + goto ROOT_MAIN_FORM_ID, + prompt = STRING_TOKEN(STR_MAIN_TITLE), + help = STRING_TOKEN(STR_MAIN_HELP); + + // + // Jump to 2)CPU Configuration Form + // + goto CPU_CONFIGURATION_FORM_ID, + prompt = STRING_TOKEN(STR_CPU_CONFIGURATION_TITLE), + help = STRING_TOKEN(STR_CPU_CONFIGURATION_HELP); + + // + // Jump to 3)Uncore Configuration Form + // + goto UNCORE_FORM_ID, + prompt = STRING_TOKEN(STR_UNCORE_CONFIGURATION_TITLE), + help = STRING_TOKEN(STR_UNCORE_CONFIGURATION_HELP); + + // + // Jump to 4)South Cluster Configuration Form + // + goto SOUTH_CLUSTER_FORM_ID, + prompt = STRING_TOKEN(STR_SOUTH_CLUSTER_TITLE), + help = STRING_TOKEN(STR_SOUTH_CLUSTER_HELP); + + // Jump to 5)Boot Form + // + goto BOOT_CONFIGURATION_FORM_ID, + prompt = STRING_TOKEN(STR_BOOT_CONFIGURATION_TITLE), + help = STRING_TOKEN(STR_BOOT_CONFIGURATION_HELP); + + // + // Jump to 6)Security Configuration Form + // + goto SECURITY_CONFIGURATION_FORM_ID, + prompt = STRING_TOKEN(STR_SECURITY_CONFIGURATION_TITLE), + help = STRING_TOKEN(STR_SECURITY_CONFIGURATION_HELP); + + // + // Jump to 7)Thermal Form + // + goto THERMAL_FORM_ID, + prompt = STRING_TOKEN(STR_THERMAL_TITLE), + help = STRING_TOKEN(STR_THERMAL_HELP); + + // + // Jump to 8) System Component Form + goto SYSTEM_COMPONENT_FORM_ID, + prompt = STRING_TOKEN(STR_SYSTEM_COMPONENT_TITLE), + help = STRING_TOKEN(STR_SYSTEM_COMPONENT_HELP); + + // + // Jump to 10)Debug Configuration Form + // + goto DEBUG_CONFIGURATION_FORM_ID, + prompt = STRING_TOKEN(STR_DEBUG_CONFIGURATION_TITLE), + help = STRING_TOKEN(STR_DEBUG_CONFIGURATION_HELP); + + // + // Jump to 11)ACPI Configuration Form + // + goto ACPI_SETUP_FORM_ID, + prompt = STRING_TOKEN(STR_ACPI_SETUP_TITLE), + help = STRING_TOKEN(STR_ACPI_SETUP_HELP); + + // + // Jump to 12)RTD3 Configuration Form + // + goto RTD3_FORM_ID, + prompt = STRING_TOKEN(STR_RTD3_FORM), + help = STRING_TOKEN(STR_RTD3_FORM_HELP); + + endform; + + #include "Main.vfi" + #include "Cpu.vfi" + #include "UnCore.vfi" + #include "SouthClusterConfig.vfi" + #include "Boot.vfi" + #include "Security.vfi" + #include "Thermal.vfi" + #include "SystemComponent.vfi" + #include "DebugConfig.vfi" + #include "AcpiSetup.Vfi" + #include "RTD3.Vfi" + +endformset; diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/VfrStrings.uni b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/VfrStrings.uni new file mode 100644 index 0000000000..47b84ee6a0 Binary files /dev/null and b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/VfrStrings.uni differ -- cgit v1.2.3