Re: [PATCH 2/4] MdeModulePkg/UiApp: Show test key warning info in FrontPage.


Dong, Eric
 

Jiewen,

For below code, the Banner is IN/OUT type. If the old value is not NULL, you should free the old buffer before point to new one.

+ if (TestKeyForRecovery && TestKeyForFirmwareUpdate) {
+ *BannerStr = HiiGetString(gFrontPagePrivate.HiiHandle,
STRING_TOKEN(STR_TEST_KEY_USED_RECOVERY_AND_FIRMWARE_UPDATE), NULL);
+ }
+ else if (TestKeyForRecovery) {
+ *BannerStr = HiiGetString(gFrontPagePrivate.HiiHandle, STRING_TOKEN(STR_TEST_KEY_USED_RECOVERY), NULL);
+ }
+ else if (TestKeyForFirmwareUpdate) {
+ *BannerStr = HiiGetString(gFrontPagePrivate.HiiHandle, STRING_TOKEN(STR_TEST_KEY_USED_FIRMWARE_UPDATE), NULL);
+ }
Thanks,
Eric

-----Original Message-----
From: Yao, Jiewen
Sent: Sunday, October 09, 2016 7:59 PM
To: edk2-devel@...
Cc: Dong, Eric; Ni, Ruiyu; Tian, Feng; Zeng, Star; Kinney, Michael D; Gao, Liming
Subject: [PATCH 2/4] MdeModulePkg/UiApp: Show test key warning info in FrontPage.

The UiApp is updated to consume PcdTestKeyUsed to know if there is any
test key used in current BIOS, such as recovery key,
or capsule update key.
Then UiApp show warning information in front page.

Cc: Eric Dong <eric.dong@...>
Cc: Ruiyu Ni <ruiyu.ni@...>
Cc: Feng Tian <feng.tian@...>
Cc: Star Zeng <star.zeng@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <liming.gao@...>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@...>
---
MdeModulePkg/Application/UiApp/FrontPageCustomizedUi.c | 34 ++++++++++++++++++++
MdeModulePkg/Application/UiApp/FrontPageStrings.uni | 8 ++++-
MdeModulePkg/Application/UiApp/UiApp.inf | 3 +-
3 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Application/UiApp/FrontPageCustomizedUi.c b/MdeModulePkg/Application/UiApp/FrontPageCustomizedUi.c
index 6e4f7b5..4070cd5 100644
--- a/MdeModulePkg/Application/UiApp/FrontPageCustomizedUi.c
+++ b/MdeModulePkg/Application/UiApp/FrontPageCustomizedUi.c
@@ -16,8 +16,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Protocol/HiiConfigAccess.h>
#include <Library/BaseLib.h>
#include <Library/MemoryAllocationLib.h>
+#include "FrontPage.h"
#include "FrontPageCustomizedUiSupport.h"

+#define TEST_KEY_USED_RECOVERY (BIT0 + BIT32)
+#define TEST_KEY_USED_FIRMWARE_UPDATE (BIT1 + BIT33)
+
+extern FRONT_PAGE_CALLBACK_DATA gFrontPagePrivate;
+
/**
Customize menus in the page.

@@ -129,4 +135,32 @@ UiCustomizeFrontPageBanner (
IN OUT EFI_STRING *BannerStr
)
{
+ UINT64 TestKeyUsed;
+ BOOLEAN TestKeyForRecovery;
+ BOOLEAN TestKeyForFirmwareUpdate;
+
+ if ((LineIndex == 5) && LeftOrRight) {
+ // Update STR_CUSTOMIZE_BANNER_LINE5_LEFT
+ TestKeyUsed = PcdGet64(PcdTestKeyUsed);
+ if ((TestKeyUsed & TEST_KEY_USED_RECOVERY) == TEST_KEY_USED_RECOVERY) {
+ TestKeyForRecovery = TRUE;
+ } else {
+ TestKeyForRecovery = FALSE;
+ }
+ if ((TestKeyUsed & TEST_KEY_USED_FIRMWARE_UPDATE) == TEST_KEY_USED_FIRMWARE_UPDATE) {
+ TestKeyForFirmwareUpdate = TRUE;
+ } else {
+ TestKeyForFirmwareUpdate = FALSE;
+ }
+ if (TestKeyForRecovery && TestKeyForFirmwareUpdate) {
+ *BannerStr = HiiGetString(gFrontPagePrivate.HiiHandle,
STRING_TOKEN(STR_TEST_KEY_USED_RECOVERY_AND_FIRMWARE_UPDATE), NULL);
+ }
+ else if (TestKeyForRecovery) {
+ *BannerStr = HiiGetString(gFrontPagePrivate.HiiHandle, STRING_TOKEN(STR_TEST_KEY_USED_RECOVERY), NULL);
+ }
+ else if (TestKeyForFirmwareUpdate) {
+ *BannerStr = HiiGetString(gFrontPagePrivate.HiiHandle, STRING_TOKEN(STR_TEST_KEY_USED_FIRMWARE_UPDATE), NULL);
+ }
+ }
+ return;
}
diff --git a/MdeModulePkg/Application/UiApp/FrontPageStrings.uni b/MdeModulePkg/Application/UiApp/FrontPageStrings.uni
index 71cb788..8ba19dc 100644
--- a/MdeModulePkg/Application/UiApp/FrontPageStrings.uni
+++ b/MdeModulePkg/Application/UiApp/FrontPageStrings.uni
@@ -2,7 +2,7 @@
//
// String definitions for BdsPlatform formset.
//
-// Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
+// Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>
// 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
@@ -68,5 +68,11 @@
#language fr-FR ""
#string STR_CUSTOMIZE_BANNER_LINE5_RIGHT #language en-US ""
#language fr-FR ""
+#string STR_TEST_KEY_USED_RECOVERY #language en-US "WARNING: Test key is used for recovery."
+ #language fr-FR "WARNING: Test key is used for recovery."
+#string STR_TEST_KEY_USED_FIRMWARE_UPDATE #language en-US "WARNING: Test key is used for firmware update."
+ #language fr-FR "WARNING: Test key is used for firmware update."
+#string STR_TEST_KEY_USED_RECOVERY_AND_FIRMWARE_UPDATE #language en-US "WARNING: Test key is used for recovery and
update."
+ #language fr-FR "WARNING: Test key is used for recovery and update."
#string STR_NULL_STRING #language en-US " "
#language fr-FR " "
diff --git a/MdeModulePkg/Application/UiApp/UiApp.inf b/MdeModulePkg/Application/UiApp/UiApp.inf
index 6df6e47..d144462 100644
--- a/MdeModulePkg/Application/UiApp/UiApp.inf
+++ b/MdeModulePkg/Application/UiApp/UiApp.inf
@@ -1,7 +1,7 @@
## @file
# UiApp module is driver for BDS phase.
#
-# Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
# 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
@@ -82,6 +82,7 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution ## CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution ## CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString ## CONSUMES
+ gEfiMdeModulePkgTokenSpaceGuid.PcdTestKeyUsed ## CONSUMES

[UserExtensions.TianoCore."ExtraFiles"]
UiAppExtra.uni
--
2.7.4.windows.1

Join devel@edk2.groups.io to automatically receive all group messages.