Blame SOURCES/0014-ArmVirtPkg-take-PcdResizeXterm-from-the-QEMU-command.patch

75d8e7
From 2ea50cb9ad392b2df09bfb20d64c7c3c1863e867 Mon Sep 17 00:00:00 2001
c4e3b2
From: Laszlo Ersek <lersek@redhat.com>
c4e3b2
Date: Sun, 26 Jul 2015 08:02:50 +0000
c4e3b2
Subject: ArmVirtPkg: take PcdResizeXterm from the QEMU command line (RH only)
c4e3b2
c4e3b2
Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] ->
c4e3b2
RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase:
c4e3b2
c4e3b2
- no change
c4e3b2
c4e3b2
Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] ->
c4e3b2
RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase:
c4e3b2
c4e3b2
- Resolve leading context divergence in "ArmVirtPkg/ArmVirtQemu.dsc",
c4e3b2
  arising from upstream commits:
c4e3b2
c4e3b2
  - 82662a3b5f56 ("ArmVirtPkg/PlatformPeiLib: discover the TPM base
c4e3b2
                  address from the DT", 2020-03-04)
c4e3b2
c4e3b2
  - ddd34a818315 ("ArmVirtPkg/ArmVirtQemu: enable TPM2 support in the PEI
c4e3b2
                  phase", 2020-03-04)
c4e3b2
c4e3b2
  - cdc3fa54184a ("ArmVirtPkg: control PXEv4 / PXEv6 boot support from the
c4e3b2
                  QEMU command line", 2020-04-28)
c4e3b2
c4e3b2
- Rework the downstream patch quite a bit, paralleling the upstream work
c4e3b2
  done for <https://bugzilla.tianocore.org/show_bug.cgi?id=2681> in commit
c4e3b2
  range 64ab457d1f21..cdc3fa54184a:
c4e3b2
c4e3b2
  - Refresh copyright year in TerminalPcdProducerLib.{inf,c}. Also replace
c4e3b2
    open-coded BSDL with "SPDX-License-Identifier: BSD-2-Clause-Patent".
c4e3b2
c4e3b2
  - Simplify LIBRARY_CLASS: this lib instance is meant to be consumed only
c4e3b2
    via NULL class resolution (basically: as a plugin), so use NULL for
c4e3b2
    LIBRARY_CLASS, not "TerminalPcdProducerLib|DXE_DRIVER".
c4e3b2
c4e3b2
  - Sort the [Packages] section alphabetically in the INF file.
c4e3b2
c4e3b2
  - Replace the open-coded GetNamedFwCfgBoolean() function with a call to
c4e3b2
    QemuFwCfgParseBool(), from QemuFwCfgSimpleParserLib.
c4e3b2
c4e3b2
  - Add the SOMETIMES_PRODUCES usage comment in the [Pcd] section of the
c4e3b2
    INF file.
c4e3b2
c4e3b2
Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] ->
c4e3b2
RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase:
c4e3b2
c4e3b2
- no change
c4e3b2
c4e3b2
Notes about the RHEL-8.0/20180508-ee3198e672e2 ->
c4e3b2
RHEL-8.1/20190308-89910a39dcfd rebase:
c4e3b2
c4e3b2
- no change
c4e3b2
c4e3b2
Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 ->
c4e3b2
RHEL-8.0/20180508-ee3198e672e2 rebase:
c4e3b2
c4e3b2
- reorder the rebase changelog in the commit message so that it reads like
c4e3b2
  a blog: place more recent entries near the top
c4e3b2
- no changes to the patch body
c4e3b2
c4e3b2
Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase:
c4e3b2
c4e3b2
- no change
c4e3b2
c4e3b2
Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase:
c4e3b2
c4e3b2
- Refresh downstream-only commit d4564d39dfdb against context changes in
c4e3b2
  "ArmVirtPkg/ArmVirtQemu.dsc" from upstream commit 7e5f1b673870
c4e3b2
  ("ArmVirtPkg/PlatformHasAcpiDtDxe: allow guest level ACPI disable
c4e3b2
  override", 2017-03-29).
c4e3b2
c4e3b2
Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase:
c4e3b2
c4e3b2
- Adapt commit 6b97969096a3 to the fact that upstream has deprecated such
c4e3b2
  setter functions for dynamic PCDs that don't return a status code (such
c4e3b2
  as PcdSetBool()). Employ PcdSetBoolS(), and assert that it succeeds --
c4e3b2
  there's really no circumstance in this case when it could fail.
c4e3b2
c4e3b2
Contributed-under: TianoCore Contribution Agreement 1.0
c4e3b2
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
c4e3b2
(cherry picked from commit d4564d39dfdbf74e762af43314005a2c026cb262)
c4e3b2
(cherry picked from commit c9081ebe3bcd28e5cce4bf58bd8d4fca12f9af7c)
c4e3b2
(cherry picked from commit 8e92730c8e1cdb642b3b3e680e643ff774a90c65)
c4e3b2
(cherry picked from commit 9448b6b46267d8d807fac0c648e693171bb34806)
c4e3b2
(cherry picked from commit 232fcf06f6b3048b7c2ebd6931f23186b3852f04)
c4e3b2
(cherry picked from commit 8338545260fbb423f796d5196faaaf8ff6e1ed99)
c4e3b2
(cherry picked from commit a5f7a57bf390f1f340ff1d1f1884a73716817ef1)
c4e3b2
---
c4e3b2
 ArmVirtPkg/ArmVirtQemu.dsc                    |  7 +++-
c4e3b2
 .../TerminalPcdProducerLib.c                  | 34 +++++++++++++++++++
c4e3b2
 .../TerminalPcdProducerLib.inf                | 33 ++++++++++++++++++
c4e3b2
 3 files changed, 73 insertions(+), 1 deletion(-)
c4e3b2
 create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
c4e3b2
 create mode 100644 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
c4e3b2
c4e3b2
diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
75d8e7
index 891e065311..e0476ede4f 100644
c4e3b2
--- a/ArmVirtPkg/ArmVirtQemu.dsc
c4e3b2
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
75d8e7
@@ -282,6 +282,8 @@
c4e3b2
   gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0
c4e3b2
 !endif
c4e3b2
 
c4e3b2
+  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
c4e3b2
+
c4e3b2
 [PcdsDynamicHii]
c4e3b2
   gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS
c4e3b2
 
75d8e7
@@ -384,7 +386,10 @@
c4e3b2
   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
c4e3b2
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
c4e3b2
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
c4e3b2
-  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
c4e3b2
+  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf {
c4e3b2
+    <LibraryClasses>
c4e3b2
+      NULL|ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
c4e3b2
+  }
c4e3b2
   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
c4e3b2
 
c4e3b2
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
c4e3b2
diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
c4e3b2
new file mode 100644
c4e3b2
index 0000000000..bfd3a6a535
c4e3b2
--- /dev/null
c4e3b2
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
c4e3b2
@@ -0,0 +1,34 @@
c4e3b2
+/** @file
c4e3b2
+*  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
c4e3b2
+*
c4e3b2
+*  Copyright (C) 2015-2020, Red Hat, Inc.
c4e3b2
+*  Copyright (c) 2014, Linaro Ltd. All rights reserved.
c4e3b2
+*
c4e3b2
+*  SPDX-License-Identifier: BSD-2-Clause-Patent
c4e3b2
+**/
c4e3b2
+
c4e3b2
+#include <Library/DebugLib.h>
c4e3b2
+#include <Library/PcdLib.h>
c4e3b2
+#include <Library/QemuFwCfgSimpleParserLib.h>
c4e3b2
+
c4e3b2
+#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName)                             \
c4e3b2
+          do {                                                                \
c4e3b2
+            BOOLEAN       Setting;                                            \
c4e3b2
+            RETURN_STATUS PcdStatus;                                          \
c4e3b2
+                                                                              \
c4e3b2
+            if (!RETURN_ERROR (QemuFwCfgParseBool (                           \
c4e3b2
+                    "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \
c4e3b2
+              PcdStatus = PcdSetBoolS (TokenName, Setting);                   \
c4e3b2
+              ASSERT_RETURN_ERROR (PcdStatus);                                \
c4e3b2
+            }                                                                 \
c4e3b2
+          } while (0)
c4e3b2
+
c4e3b2
+RETURN_STATUS
c4e3b2
+EFIAPI
c4e3b2
+TerminalPcdProducerLibConstructor (
c4e3b2
+  VOID
c4e3b2
+  )
c4e3b2
+{
c4e3b2
+  UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);
c4e3b2
+  return RETURN_SUCCESS;
c4e3b2
+}
c4e3b2
diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
c4e3b2
new file mode 100644
c4e3b2
index 0000000000..a51dbd1670
c4e3b2
--- /dev/null
c4e3b2
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
c4e3b2
@@ -0,0 +1,33 @@
c4e3b2
+## @file
c4e3b2
+#  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
c4e3b2
+#
c4e3b2
+#  Copyright (C) 2015-2020, Red Hat, Inc.
c4e3b2
+#  Copyright (c) 2014, Linaro Ltd. All rights reserved.
c4e3b2
+#
c4e3b2
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
c4e3b2
+##
c4e3b2
+
c4e3b2
+[Defines]
c4e3b2
+  INF_VERSION                    = 0x00010005
c4e3b2
+  BASE_NAME                      = TerminalPcdProducerLib
c4e3b2
+  FILE_GUID                      = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96
c4e3b2
+  MODULE_TYPE                    = BASE
c4e3b2
+  VERSION_STRING                 = 1.0
c4e3b2
+  LIBRARY_CLASS                  = NULL
c4e3b2
+  CONSTRUCTOR                    = TerminalPcdProducerLibConstructor
c4e3b2
+
c4e3b2
+[Sources]
c4e3b2
+  TerminalPcdProducerLib.c
c4e3b2
+
c4e3b2
+[Packages]
c4e3b2
+  MdeModulePkg/MdeModulePkg.dec
c4e3b2
+  MdePkg/MdePkg.dec
c4e3b2
+  OvmfPkg/OvmfPkg.dec
c4e3b2
+
c4e3b2
+[LibraryClasses]
c4e3b2
+  DebugLib
c4e3b2
+  PcdLib
c4e3b2
+  QemuFwCfgSimpleParserLib
c4e3b2
+
c4e3b2
+[Pcd]
c4e3b2
+  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## SOMETIMES_PRODUCES
c4e3b2
-- 
c4e3b2
2.27.0
c4e3b2