Library/DasharoSystemFeaturesUiLib: add PS2 Controller option

Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
This commit is contained in:
Michał Żygowski
2022-11-10 12:36:14 +01:00
parent 84f055a8dc
commit 2e1b771c58
4 changed files with 73 additions and 6 deletions

View File

@@ -16,12 +16,14 @@ STATIC CHAR16 mMeModeEfiVar[] = L"MeMode";
STATIC CHAR16 mNetworkBootEfiVar[] = L"NetworkBoot";
STATIC CHAR16 mUsbStackEfiVar[] = L"UsbDriverStack";
STATIC CHAR16 mUsbMassStorageEfiVar[] = L"UsbMassStorage";
STATIC CHAR16 mPs2ControllerEfiVar[] = L"Ps2Controller";
STATIC BOOLEAN mUsbStackDefault = TRUE;
STATIC BOOLEAN mUsbMassStorageDefault = TRUE;
STATIC BOOLEAN mLockBiosDefault = TRUE;
STATIC BOOLEAN mSmmBwpDefault = FALSE;
STATIC BOOLEAN mNetworkBootDefault = FALSE;
STATIC UINT8 mMeModeDefault = ME_MODE_ENABLE;
STATIC BOOLEAN mPs2ControllerDefault = FALSE;
STATIC DASHARO_SYSTEM_FEATURES_PRIVATE_DATA mDasharoSystemFeaturesPrivate = {
DASHARO_SYSTEM_FEATURES_PRIVATE_DATA_SIGNATURE,
@@ -236,6 +238,30 @@ DasharoSystemFeaturesUiLibConstructor (
return Status;
}
BufferSize = sizeof (mDasharoSystemFeaturesPrivate.DasharoFeaturesData.Ps2Controller);
Status = gRT->GetVariable (
mPs2ControllerEfiVar,
&gDasharoSystemFeaturesGuid,
NULL,
&BufferSize,
&mDasharoSystemFeaturesPrivate.DasharoFeaturesData.Ps2Controller
);
if (Status == EFI_NOT_FOUND) {
Status = gRT->SetVariable (
mPs2ControllerEfiVar,
&gDasharoSystemFeaturesGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,
sizeof (mPs2ControllerDefault),
&mPs2ControllerDefault
);
mDasharoSystemFeaturesPrivate.DasharoFeaturesData.Ps2Controller = mPs2ControllerDefault;
}
if (EFI_ERROR(Status)) {
return Status;
}
return EFI_SUCCESS;
}
@@ -500,6 +526,19 @@ DasharoSystemFeaturesRouteConfig (
}
}
if (Private->DasharoFeaturesData.Ps2Controller != DasharoFeaturesData.Ps2Controller) {
Status = gRT->SetVariable (
mPs2ControllerEfiVar,
&gDasharoSystemFeaturesGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,
sizeof (DasharoFeaturesData.Ps2Controller),
&DasharoFeaturesData.Ps2Controller
);
if (EFI_ERROR (Status)) {
return Status;
}
}
Private->DasharoFeaturesData = DasharoFeaturesData;
return EFI_SUCCESS;
}

View File

@@ -12,13 +12,14 @@ SPDX-License-Identifier: BSD-2-Clause
#define DASHARO_SYSTEM_FEATURES_GUID \
{ 0xd15b327e, 0xff2d, 0x4fc1, {0xab, 0xf6, 0xc1, 0x2b, 0xd0, 0x8c, 0x13, 0x59} }
#define DASHARO_SYSTEM_FEATURES_FORM_ID 0x1000
#define DASHARO_SECURITY_OPTIONS_FORM_ID 0x1001
#define DASHARO_NETWORK_OPTIONS_FORM_ID 0x1002
#define DASHARO_USB_CONFIGURATION_FORM_ID 0x1003
#define DASHARO_INTEL_ME_OPTIONS_FORM_ID 0x1004
#define DASHARO_SYSTEM_FEATURES_FORM_ID 0x1000
#define DASHARO_SECURITY_OPTIONS_FORM_ID 0x1001
#define DASHARO_NETWORK_OPTIONS_FORM_ID 0x1002
#define DASHARO_USB_CONFIGURATION_FORM_ID 0x1003
#define DASHARO_INTEL_ME_OPTIONS_FORM_ID 0x1004
#define DASHARO_CHIPSET_CONFIGURATION_FORM_ID 0x1005
#define DASHARO_FEATURES_DATA_VARSTORE_ID 0x0001
#define DASHARO_FEATURES_DATA_VARSTORE_ID 0x0001
typedef struct {
BOOLEAN LockBios;
@@ -27,6 +28,7 @@ typedef struct {
BOOLEAN UsbStack;
BOOLEAN UsbMassStorage;
UINT8 MeMode;
BOOLEAN Ps2Controller;
} DASHARO_FEATURES_DATA;
#define ME_MODE_ENABLE 0

View File

@@ -26,6 +26,9 @@
#string STR_DASHARO_USB_CONFIGURATION_TITLE #language en-US "USB Configuration"
#string STR_DASHARO_USB_CONFIGURATION_HELP #language en-US "USB-related options"
#string STR_DASHARO_CHIPSET_CONFIGURATION_TITLE #language en-US "Chipset Configuration"
#string STR_DASHARO_CHIPSET_CONFIGURATION_HELP #language en-US "Chipset-related options"
#string STR_LOCK_BIOS_PROMPT #language en-US "Lock the BIOS boot medium"
#string STR_LOCK_BIOS_HELP #language en-US "Locks the recovery partition of vboot"
@@ -54,3 +57,6 @@
#string STR_ME_MODE_ENABLE #language en-US "Enabled"
#string STR_ME_MODE_DISABLE_HECI #language en-US "Disabled (Soft)"
#string STR_ME_MODE_DISABLE_HAP #language en-US "Disabled (HAP)"
#string STR_PS2_CONTROLLER_ENABLE_PROMPT #language en-US "Enable PS2 Controller"
#string STR_PS2_CONTROLLER_ENABLE_HELP #language en-US "Enables/disables the PS2 Controller. When enabled, PS/2 keyboards and mice will be detected in the firmware and operating system."

View File

@@ -38,6 +38,10 @@ formset
prompt = STRING_TOKEN(STR_DASHARO_INTEL_ME_OPTIONS_TITLE),
help = STRING_TOKEN(STR_DASHARO_INTEL_ME_OPTIONS_HELP);
goto DASHARO_CHIPSET_CONFIGURATION_FORM_ID,
prompt = STRING_TOKEN(STR_DASHARO_CHIPSET_CONFIGURATION_TITLE),
help = STRING_TOKEN(STR_DASHARO_CHIPSET_CONFIGURATION_HELP);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
@@ -126,4 +130,20 @@ formset
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 = INTERACTIVE,
endcheckbox;
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EMPTY_STRING);
subtitle text = STRING_TOKEN(STR_EXIT_STRING);
endform;
endformset;