[[edk2-devel] PATH v1 3/3] ArmVirtPkg: take PcdResizeXterm from the QEMU command line

Paweł Poławski posted 1 patch 1 year, 8 months ago
Failed in applying to current master (apply log)
ArmVirtPkg/ArmVirtQemu.dsc                                           |  7 +++-
ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf | 33 +++++++++++++++++++
ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c   | 34 ++++++++++++++++++++
3 files changed, 73 insertions(+), 1 deletion(-)
[[edk2-devel] PATH v1 3/3] ArmVirtPkg: take PcdResizeXterm from the QEMU command line
Posted by Paweł Poławski 1 year, 8 months ago
From: Laszlo Ersek <lersek@redhat.com>

Signed-off-by: Laszlo Ersek <lersek@redhat.com>

Pawel: Updated commit message for re-submission

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>

Signed-off-by: Paweł Poławski <ppolawsk@redhat.com>
---
 ArmVirtPkg/ArmVirtQemu.dsc                                           |  7 +++-
 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf | 33 +++++++++++++++++++
 ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c   | 34 ++++++++++++++++++++
 3 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index 9369a88858fd..7ed8870474d3 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -285,6 +285,8 @@
   gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0

 !endif

 

+  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE

+

 [PcdsDynamicHii]

   gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS

 

@@ -387,7 +389,10 @@
   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf

   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf

   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf

-  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf

+  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf {

+    <LibraryClasses>

+      NULL|ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf

+  }

   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf

 

   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf

diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
new file mode 100644
index 000000000000..a51dbd1670a8
--- /dev/null
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.inf
@@ -0,0 +1,33 @@
+## @file

+#  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg

+#

+#  Copyright (C) 2015-2020, Red Hat, Inc.

+#  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>

+#

+#  SPDX-License-Identifier: BSD-2-Clause-Patent

+##

+

+[Defines]

+  INF_VERSION                    = 0x00010005

+  BASE_NAME                      = TerminalPcdProducerLib

+  FILE_GUID                      = 4a0c5ed7-8c42-4c01-8f4c-7bf258316a96

+  MODULE_TYPE                    = BASE

+  VERSION_STRING                 = 1.0

+  LIBRARY_CLASS                  = NULL

+  CONSTRUCTOR                    = TerminalPcdProducerLibConstructor

+

+[Sources]

+  TerminalPcdProducerLib.c

+

+[Packages]

+  MdeModulePkg/MdeModulePkg.dec

+  MdePkg/MdePkg.dec

+  OvmfPkg/OvmfPkg.dec

+

+[LibraryClasses]

+  DebugLib

+  PcdLib

+  QemuFwCfgSimpleParserLib

+

+[Pcd]

+  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm ## SOMETIMES_PRODUCES

diff --git a/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
new file mode 100644
index 000000000000..bfd3a6a535f9
--- /dev/null
+++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
@@ -0,0 +1,34 @@
+/** @file

+*  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg

+*

+*  Copyright (C) 2015-2020, Red Hat, Inc.

+*  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>

+*

+*  SPDX-License-Identifier: BSD-2-Clause-Patent

+**/

+

+#include <Library/DebugLib.h>

+#include <Library/PcdLib.h>

+#include <Library/QemuFwCfgSimpleParserLib.h>

+

+#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName)                             \

+          do {                                                                \

+            BOOLEAN       Setting;                                            \

+            RETURN_STATUS PcdStatus;                                          \

+                                                                              \

+            if (!RETURN_ERROR (QemuFwCfgParseBool (                           \

+                    "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \

+              PcdStatus = PcdSetBoolS (TokenName, Setting);                   \

+              ASSERT_RETURN_ERROR (PcdStatus);                                \

+            }                                                                 \

+          } while (0)

+

+RETURN_STATUS

+EFIAPI

+TerminalPcdProducerLibConstructor (

+  VOID

+  )

+{

+  UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);

+  return RETURN_SUCCESS;

+}

-- 
2.37.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92630): https://edk2.groups.io/g/devel/message/92630
Mute This Topic: https://groups.io/mt/93195502/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [[edk2-devel] PATH v1 3/3] ArmVirtPkg: take PcdResizeXterm from the QEMU command line
Posted by Gerd Hoffmann 1 year, 8 months ago
> --- /dev/null
> +++ b/ArmVirtPkg/Library/TerminalPcdProducerLib/TerminalPcdProducerLib.c
> @@ -0,0 +1,34 @@
> +/** @file
> +*  Plugin library for setting up dynamic PCDs for TerminalDxe, from fw_cfg
> +*
> +*  Copyright (C) 2015-2020, Red Hat, Inc.
> +*  Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
> +*
> +*  SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <Library/DebugLib.h>
> +#include <Library/PcdLib.h>
> +#include <Library/QemuFwCfgSimpleParserLib.h>
> +
> +#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName)                             \
> +          do {                                                                \
> +            BOOLEAN       Setting;                                            \
> +            RETURN_STATUS PcdStatus;                                          \
> +                                                                              \
> +            if (!RETURN_ERROR (QemuFwCfgParseBool (                           \
> +                    "opt/org.tianocore.edk2.aavmf/" #TokenName, &Setting))) { \
> +              PcdStatus = PcdSetBoolS (TokenName, Setting);                   \
> +              ASSERT_RETURN_ERROR (PcdStatus);                                \
> +            }                                                                 \
> +          } while (0)
> +
> +RETURN_STATUS
> +EFIAPI
> +TerminalPcdProducerLibConstructor (
> +  VOID
> +  )
> +{
> +  UPDATE_BOOLEAN_PCD_FROM_FW_CFG (PcdResizeXterm);
> +  return RETURN_SUCCESS;
> +}

Oh, we have two variants of that code, with different fw_cfg file names
even.

I think we should:

  (1) Move this library to OvmfPkg.
  (2) Change the fw_cfg name to be consistent with other cases we have
      in the edk2 source tree (see OvmfPkg/Library/PxeBcPcdProducerLib),
      i.e.  read from 'opt/org.tianocore/ResizeXterm'.
  (3) Use the library for both OvmfPkg and ArmVirtPkg instead of having
      OVMF set the PCD in platform init code.

take care,
  Gerd



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92810): https://edk2.groups.io/g/devel/message/92810
Mute This Topic: https://groups.io/mt/93195502/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-