Files
Michał Kopeć 0e9956b4eb Add S3 experimental disclaimer PCD
Signed-off-by: Michał Kopeć <michal.kopec@3mdeb.com>
2023-11-17 12:22:46 +01:00

408 lines
17 KiB
Plaintext

/** @file
The Dasharo system features implementation
Copyright (c) 2022, 3mdeb Sp. z o.o. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause
**/
#include "DasharoSystemFeaturesHii.h"
formset
guid = DASHARO_SYSTEM_FEATURES_GUID,
title = STRING_TOKEN(STR_EDKII_MENU_TITLE),
help = STRING_TOKEN(STR_EDKII_MENU_HELP),
classguid = gEfiIfrFrontPageGuid,
varstore DASHARO_FEATURES_DATA,
varid = DASHARO_FEATURES_DATA_VARSTORE_ID,
name = FeaturesData,
guid = DASHARO_SYSTEM_FEATURES_GUID;
form formid = DASHARO_SYSTEM_FEATURES_FORM_ID,
title = STRING_TOKEN(STR_EDKII_MENU_TITLE);
suppressif ideqval FeaturesData.ShowSecurityMenu == 0;
goto DASHARO_SECURITY_OPTIONS_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_SECURITY_OPTIONS_TITLE),
help = STRING_TOKEN(STR_DASHARO_SECURITY_OPTIONS_HELP);
endif;
suppressif ideqval FeaturesData.ShowNetworkMenu == 0;
goto DASHARO_NETWORK_OPTIONS_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_NETWORKING_OPTIONS_TITLE),
help = STRING_TOKEN(STR_DASHARO_NETWORKING_OPTIONS_HELP);
endif;
suppressif ideqval FeaturesData.ShowUsbMenu == 0;
goto DASHARO_USB_CONFIGURATION_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_USB_CONFIGURATION_TITLE),
help = STRING_TOKEN(STR_DASHARO_USB_CONFIGURATION_HELP);
endif;
suppressif ideqval FeaturesData.ShowIntelMeMenu == 0;
goto DASHARO_INTEL_ME_OPTIONS_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_INTEL_ME_OPTIONS_TITLE),
help = STRING_TOKEN(STR_DASHARO_INTEL_ME_OPTIONS_HELP);
endif;
suppressif ideqval FeaturesData.ShowChipsetMenu == 0;
goto DASHARO_CHIPSET_CONFIGURATION_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_CHIPSET_CONFIGURATION_TITLE),
help = STRING_TOKEN(STR_DASHARO_CHIPSET_CONFIGURATION_HELP);
endif;
suppressif ideqval FeaturesData.ShowPowerMenu == 0;
goto DASHARO_POWER_CONFIGURATION_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_POWER_CONFIGURATION_TITLE),
help = STRING_TOKEN(STR_DASHARO_POWER_CONFIGURATION_HELP);
endif;
suppressif ideqval FeaturesData.ShowPciMenu == 0;
goto DASHARO_PCI_CONFIGURATION_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_PCI_CONFIGURATION_TITLE),
help = STRING_TOKEN(STR_DASHARO_PCI_CONFIGURATION_HELP);
endif;
suppressif ideqval FeaturesData.ShowMemoryMenu == 0;
goto DASHARO_MEMORY_CONFIGURATION_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_MEMORY_CONFIGURATION_TITLE),
help = STRING_TOKEN(STR_DASHARO_MEMORY_CONFIGURATION_HELP);
endif;
suppressif ideqval FeaturesData.ShowSerialPortMenu == 0;
goto DASHARO_SERIAL_PORT_CONFIGURATION_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_SERIAL_PORT_CONFIGURATION_TITLE),
help = STRING_TOKEN(STR_DASHARO_SERIAL_PORT_CONFIGURATION_HELP);
endif;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_SECURITY_OPTIONS_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_SECURITY_OPTIONS_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
checkbox varid = FeaturesData.LockBios,
prompt = STRING_TOKEN(STR_LOCK_BIOS_PROMPT),
help = STRING_TOKEN(STR_LOCK_BIOS_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
checkbox varid = FeaturesData.SmmBwp,
prompt = STRING_TOKEN(STR_SMM_BWP_PROMPT),
help = STRING_TOKEN(STR_SMM_BWP_HELP),
flags = RESET_REQUIRED,
endcheckbox;
suppressif ideqval FeaturesData.SecurityMenuShowIommu == 0;
checkbox name = IommuEnable,
varid = FeaturesData.IommuConfig.IommuEnable,
prompt = STRING_TOKEN(STR_DMA_PROTECTION_PROMPT),
help = STRING_TOKEN(STR_DMA_PROTECTION_HELP),
flags = RESET_REQUIRED,
endcheckbox;
endif;
suppressif questionref(IommuEnable) == FALSE;
checkbox varid = FeaturesData.IommuConfig.IommuHandoff,
prompt = STRING_TOKEN(STR_IOMMU_HANDOFF_PROMPT),
help = STRING_TOKEN(STR_IOMMU_HANDOFF_HELP),
flags = RESET_REQUIRED,
endcheckbox;
endif;
suppressif ideqval FeaturesData.DasharoEnterprise == 0;
checkbox varid = FeaturesData.BootManagerEnabled,
prompt = STRING_TOKEN(STR_BOOT_MENU_ENABLED_PROMPT),
help = STRING_TOKEN(STR_BOOT_MENU_ENABLED_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
endif;
suppressif ideqval FeaturesData.SecurityMenuShowWiFiBt == 0;
checkbox varid = FeaturesData.EnableWifiBt,
prompt = STRING_TOKEN(STR_WIFI_BT_ENABLE_PROMPT),
help = STRING_TOKEN(STR_WIFI_BT_ENABLE_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
endif;
suppressif ideqval FeaturesData.SecurityMenuShowCamera == 0;
checkbox varid = FeaturesData.EnableCamera,
prompt = STRING_TOKEN(STR_ENABLE_CAMERA_PROMPT),
help = STRING_TOKEN(STR_ENABLE_CAMERA_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
endif;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
text
help = STRING_TOKEN(STR_FUM_HELP),
text = STRING_TOKEN(STR_FUM_PROMPT),
flags = INTERACTIVE,
key = FIRMWARE_UPDATE_MODE_QUESTION_ID;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_NETWORK_OPTIONS_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_NETWORKING_OPTIONS_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
checkbox varid = FeaturesData.NetworkBoot,
questionid = NETWORK_BOOT_QUESTION_ID,
prompt = STRING_TOKEN(STR_NETWORK_BOOT_ENABLE_PROMPT),
help = STRING_TOKEN(STR_NETWORK_BOOT_ENABLE_HELP),
flags = INTERACTIVE | RESET_REQUIRED,
endcheckbox;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_USB_CONFIGURATION_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_USB_CONFIGURATION_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
checkbox name = UsbStack,
varid = FeaturesData.UsbStack,
prompt = STRING_TOKEN(STR_USB_STACK_ENABLE_PROMPT),
help = STRING_TOKEN(STR_USB_STACK_ENABLE_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
suppressif questionref(UsbStack) == FALSE;
checkbox varid = FeaturesData.UsbMassStorage,
prompt = STRING_TOKEN(STR_USB_MASS_STORAGE_ENABLE_PROMPT),
help = STRING_TOKEN(STR_USB_MASS_STORAGE_ENABLE_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
endif;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_INTEL_ME_OPTIONS_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_INTEL_ME_OPTIONS_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
oneof varid = FeaturesData.MeMode,
questionid = INTEL_ME_MODE_QUESTION_ID,
prompt = STRING_TOKEN(STR_ME_MODE_PROMPT),
help = STRING_TOKEN(STR_ME_MODE_HELP),
flags = RESET_REQUIRED | INTERACTIVE,
option text = STRING_TOKEN(STR_ME_MODE_ENABLE), value = ME_MODE_ENABLE, flags = 0;
option text = STRING_TOKEN(STR_ME_MODE_DISABLE_HECI), value = ME_MODE_DISABLE_HECI, flags = 0;
suppressif ideqval FeaturesData.MeHapAvailable == 0;
option text = STRING_TOKEN(STR_ME_MODE_DISABLE_HAP), value = ME_MODE_DISABLE_HAP, flags = 0;
endif;
endoneof;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_CHIPSET_CONFIGURATION_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_CHIPSET_CONFIGURATION_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
checkbox varid = FeaturesData.Ps2Controller,
prompt = STRING_TOKEN(STR_PS2_CONTROLLER_ENABLE_PROMPT),
help = STRING_TOKEN(STR_PS2_CONTROLLER_ENABLE_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
suppressif ideqval FeaturesData.WatchdogState == 0;
checkbox varid = FeaturesData.WatchdogConfig.WatchdogEnable,
questionid = WATCHDOG_OPTIONS_QUESTION_ID,
prompt = STRING_TOKEN(STR_WATCHDOG_ENABLE_PROMPT),
help = STRING_TOKEN(STR_WATCHDOG_ENABLE_HELP),
flags = CHECKBOX_DEFAULT | RESET_REQUIRED,
endcheckbox;
suppressif ideqval FeaturesData.WatchdogConfig.WatchdogEnable == 0;
numeric varid = FeaturesData.WatchdogConfig.WatchdogTimeout,
questionid = WATCHDOG_TIMEOUT_QUESTION_ID,
prompt = STRING_TOKEN(STR_WATCHDOG_TIMEOUT_PROMPT),
help = STRING_TOKEN(STR_WATCHDOG_TIMEOUT_HELP),
flags = RESET_REQUIRED | INTERACTIVE,
minimum = 300,
maximum = 1024,
step = 0, // Stepping of 0 equates to a manual entering
// of a value, otherwise it will be adjusted by "+"/"-"
endnumeric;
endif;
endif;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_POWER_CONFIGURATION_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_POWER_CONFIGURATION_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
suppressif ideqval FeaturesData.PowerMenuShowFanCurve == 0;
oneof varid = FeaturesData.FanCurveOption,
prompt = STRING_TOKEN(STR_FAN_CURVE_PROMPT),
help = STRING_TOKEN(STR_FAN_CURVE_HELP),
flags = RESET_REQUIRED,
option text = STRING_TOKEN(STR_FAN_CURVE_SILENT), value = FAN_CURVE_OPTION_SILENT, flags = DEFAULT;
option text = STRING_TOKEN(STR_FAN_CURVE_PERFORMANCE), value = FAN_CURVE_OPTION_PERFORMANCE, flags = 0;
endoneof;
endif;
suppressif ideqval FeaturesData.PowerMenuShowSleepType == 0;
oneof varid = FeaturesData.SleepType,
prompt = STRING_TOKEN(STR_SLEEP_TYPE_PROMPT),
help = STRING_TOKEN(STR_SLEEP_TYPE_HELP),
flags = RESET_REQUIRED,
option text = STRING_TOKEN(STR_SLEEP_TYPE_S0IX), value = SLEEP_TYPE_S0IX, flags = DEFAULT;
suppressif ideqval FeaturesData.S3SupportExperimental == 1;
option text = STRING_TOKEN(STR_SLEEP_TYPE_S3), value = SLEEP_TYPE_S3, flags = 0;
endif;
suppressif ideqval FeaturesData.S3SupportExperimental == 0;
option text = STRING_TOKEN(STR_SLEEP_TYPE_S3_EXPERIMENTAL), value = SLEEP_TYPE_S3, flags = 0;
endif;
endoneof;
endif;
suppressif ideqval FeaturesData.PowerFailureState == POWER_FAILURE_STATE_HIDDEN;
oneof varid = FeaturesData.PowerFailureState,
questionid = POWER_FAILURE_STATE_QUESTION_ID,
prompt = STRING_TOKEN(STR_POWER_FAILURE_STATE_PROMPT),
help = STRING_TOKEN(STR_POWER_FAILURE_STATE_HELP),
flags = INTERACTIVE | RESET_REQUIRED,
option text = STRING_TOKEN(STR_POWER_FAILURE_STATE_OFF), value = POWER_FAILURE_STATE_OFF, flags = 0;
option text = STRING_TOKEN(STR_POWER_FAILURE_STATE_ON), value = POWER_FAILURE_STATE_ON, flags = 0;
option text = STRING_TOKEN(STR_POWER_FAILURE_STATE_KEEP), value = POWER_FAILURE_STATE_KEEP, flags = 0;
endoneof;
endif;
suppressif ideqval FeaturesData.PowerMenuShowBatteryThresholds == 0;
numeric varid = FeaturesData.BatteryConfig.StartThreshold,
questionid = BATTERY_START_THRESHOLD_QUESTION_ID,
prompt = STRING_TOKEN(STR_BATTERY_START_THRESHOLD_PROMPT),
help = STRING_TOKEN(STR_BATTERY_START_THRESHOLD_HELP),
flags = RESET_REQUIRED | INTERACTIVE,
minimum = 0,
maximum = 100,
step = 1,
nosubmitif prompt = STRING_TOKEN(STR_BATTERY_THRESHOLD_RANGE_ERROR),
ideqid FeaturesData.BatteryConfig.StartThreshold > FeaturesData.BatteryConfig.StopThreshold
endif
endnumeric;
numeric varid = FeaturesData.BatteryConfig.StopThreshold,
questionid = BATTERY_STOP_THRESHOLD_QUESTION_ID,
prompt = STRING_TOKEN(STR_BATTERY_STOP_THRESHOLD_PROMPT),
help = STRING_TOKEN(STR_BATTERY_STOP_THRESHOLD_HELP),
flags = RESET_REQUIRED | INTERACTIVE,
minimum = 0,
maximum = 100,
step = 1,
nosubmitif prompt = STRING_TOKEN(STR_BATTERY_THRESHOLD_RANGE_ERROR),
ideqid FeaturesData.BatteryConfig.StartThreshold > FeaturesData.BatteryConfig.StopThreshold
endif
endnumeric;
endif;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_PCI_CONFIGURATION_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_PCI_CONFIGURATION_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
suppressif ideqval FeaturesData.PciMenuShowResizeableBars == 0;
checkbox varid = FeaturesData.ResizeableBarsEnabled,
prompt = STRING_TOKEN(STR_RESIZEABLE_BARS_PROMPT),
help = STRING_TOKEN(STR_RESIZEABLE_BARS_HELP),
flags = RESET_REQUIRED,
endcheckbox;
endif;
oneof varid = FeaturesData.OptionRomExecution,
questionid = OPTION_ROM_STATE_QUESTION_ID,
prompt = STRING_TOKEN(STR_OPTION_ROM_PROMPT),
help = STRING_TOKEN(STR_OPTION_ROM_HELP),
flags = INTERACTIVE | RESET_REQUIRED,
option text = STRING_TOKEN(STR_OPTION_ROM_DISABLE), value = OPTION_ROM_POLICY_DISABLE_ALL, flags = 0;
option text = STRING_TOKEN(STR_OPTION_ROM_ENABLE), value = OPTION_ROM_POLICY_ENABLE_ALL, flags = 0;
option text = STRING_TOKEN(STR_OPTION_ROM_ENABLE_VGA), value = OPTION_ROM_POLICY_VGA_ONLY, flags = 0;
endoneof;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_MEMORY_CONFIGURATION_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_MEMORY_CONFIGURATION_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
oneof varid = FeaturesData.MemoryProfile,
prompt = STRING_TOKEN(STR_MEMORY_PROFILE_PROMPT),
help = STRING_TOKEN(STR_MEMORY_PROFILE_HELP),
flags = RESET_REQUIRED,
option text = STRING_TOKEN(STR_MEMORY_PROFILE_JEDEC), value = MEMORY_PROFILE_JEDEC, flags = DEFAULT;
option text = STRING_TOKEN(STR_MEMORY_PROFILE_XMP1), value = MEMORY_PROFILE_XMP1, flags = 0;
option text = STRING_TOKEN(STR_MEMORY_PROFILE_XMP2), value = MEMORY_PROFILE_XMP2, flags = 0;
option text = STRING_TOKEN(STR_MEMORY_PROFILE_XMP3), value = MEMORY_PROFILE_XMP3, flags = 0;
endoneof;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
form formid = DASHARO_SERIAL_PORT_CONFIGURATION_FORM_ID,
title = STRING_TOKEN(STR_DASHARO_SERIAL_PORT_CONFIGURATION_TITLE);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
checkbox varid = FeaturesData.SerialPortRedirection,
questionid = SERIAL_PORT_REDIR_QUESTION_ID,
prompt = STRING_TOKEN(STR_SERIAL_CONSOLE_REDIRECTION_PROMPT),
help = STRING_TOKEN(STR_SERIAL_CONSOLE_REDIRECTION_HELP),
flags = INTERACTIVE | RESET_REQUIRED,
endcheckbox;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
endformset;