diff mbox series

[2/6] arm/edk2: move 202211 recipe to meta-arm-bsp

Message ID 20230807151620.3597527-2-jon.mason@arm.com
State New
Headers show
Series [1/6] arm-toolchain/gcc-aarch64-none-elf: upgrade to 12.3.rel1 | expand

Commit Message

Jon Mason Aug. 7, 2023, 3:16 p.m. UTC
202211 is only used in meta-arm-bsp, and all other users should be using
the latest version.  Move it there until n1sdp can be updated to the
latest.

Signed-off-by: Jon Mason <jon.mason@arm.com>
---
 .../recipes-bsp/uefi/edk2-firmware_202211.bb  |   2 +-
 ...g-QemuVirtMemInfoLib-use-HOB-not-PCD.patch | 290 ++++++++++++++++++
 ...g-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch |  89 ++++++
 .../recipes-bsp/uefi/files/default.patch      |  23 ++
 4 files changed, 403 insertions(+), 1 deletion(-)
 rename {meta-arm => meta-arm-bsp}/recipes-bsp/uefi/edk2-firmware_202211.bb (76%)
 create mode 100644 meta-arm-bsp/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch
 create mode 100644 meta-arm-bsp/recipes-bsp/uefi/files/default.patch
diff mbox series

Patch

diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202211.bb
similarity index 76%
rename from meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb
rename to meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202211.bb
index 386bed4b..378f5854 100644
--- a/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202211.bb
@@ -1,4 +1,4 @@ 
 SRCREV_edk2           ?= "fff6d81270b57ee786ea18ad74f43149b9f03494"
 SRCREV_edk2-platforms ?= "982212662c71b6c734b7578526071d6b78da3bcc"
 
-require edk2-firmware.inc
+require recipes-bsp/uefi/edk2-firmware.inc
diff --git a/meta-arm-bsp/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch b/meta-arm-bsp/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch
new file mode 100644
index 00000000..824c6ccb
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/uefi/files/0001-Revert-ArmVirtPkg-QemuVirtMemInfoLib-use-HOB-not-PCD.patch
@@ -0,0 +1,290 @@ 
+From 44b69c8d7c8ed665b4f8d8a9953ea23a731d221f Mon Sep 17 00:00:00 2001
+From: Your Name <you@example.com>
+Date: Fri, 10 Mar 2023 18:46:49 +0000
+Subject: [PATCH] Revert "ArmVirtPkg/QemuVirtMemInfoLib: use HOB not PCD to
+ record the memory size"
+
+This reverts commit 7136d5491e225c57f1d73e4a1b7ac27ed656ff72.
+
+Upstream-Status: Inappropriate [other]
+Signed-off-by: Jon Mason <jon.mason@arm.com>
+
+---
+ ArmVirtPkg/ArmVirtPkg.dec                     |  1 -
+ ArmVirtPkg/ArmVirtQemu.dsc                    |  6 ++--
+ .../ArmVirtMemoryInitPeiLib.c                 | 14 ++------
+ .../ArmVirtMemoryInitPeiLib.inf               |  1 -
+ .../QemuVirtMemInfoLib/QemuVirtMemInfoLib.c   | 35 ++-----------------
+ .../QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf |  5 +--
+ .../QemuVirtMemInfoPeiLib.inf                 |  8 ++---
+ .../QemuVirtMemInfoPeiLibConstructor.c        | 30 +++++++---------
+ 8 files changed, 25 insertions(+), 75 deletions(-)
+
+diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec
+index 4645c91a83..d2d325d71e 100644
+--- a/ArmVirtPkg/ArmVirtPkg.dec
++++ b/ArmVirtPkg/ArmVirtPkg.dec
+@@ -32,7 +32,6 @@
+   gArmVirtTokenSpaceGuid = { 0x0B6F5CA7, 0x4F53, 0x445A, { 0xB7, 0x6E, 0x2E, 0x36, 0x5B, 0x80, 0x63, 0x66 } }
+   gEarlyPL011BaseAddressGuid       = { 0xB199DEA9, 0xFD5C, 0x4A84, { 0x80, 0x82, 0x2F, 0x41, 0x70, 0x78, 0x03, 0x05 } }
+   gEarly16550UartBaseAddressGuid   = { 0xea67ca3e, 0x1f54, 0x436b, { 0x97, 0x88, 0xd4, 0xeb, 0x29, 0xc3, 0x42, 0x67 } }
+-  gArmVirtSystemMemorySizeGuid     = { 0x504eccb9, 0x1bf0, 0x4420, { 0x86, 0x5d, 0xdc, 0x66, 0x06, 0xd4, 0x13, 0xbf } }
+ 
+ [PcdsFeatureFlag]
+   #
+diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
+index 72a0cacab4..2e786dad12 100644
+--- a/ArmVirtPkg/ArmVirtQemu.dsc
++++ b/ArmVirtPkg/ArmVirtQemu.dsc
+@@ -226,9 +226,6 @@
+   # Shadowing PEI modules is absolutely pointless when the NOR flash is emulated
+   gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnBoot|FALSE
+ 
+-  # System Memory Size -- 128 MB initially, actual size will be fetched from DT
+-  gArmTokenSpaceGuid.PcdSystemMemorySize|0x8000000
+-
+ [PcdsFixedAtBuild.AARCH64]
+   # Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
+   # if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
+@@ -245,6 +242,9 @@
+   #  enumeration to complete before installing ACPI tables.
+   gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
+ 
++  # System Memory Size -- 1 MB initially, actual size will be fetched from DT
++  gArmTokenSpaceGuid.PcdSystemMemorySize|0x00100000
++
+   gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0
+   gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0
+   gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0
+diff --git a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c
+index 72e5c65af7..98d90ad420 100644
+--- a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c
++++ b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c
+@@ -52,19 +52,10 @@ MemoryPeim (
+ {
+   EFI_RESOURCE_ATTRIBUTE_TYPE  ResourceAttributes;
+   UINT64                       SystemMemoryTop;
+-  UINT64                       SystemMemorySize;
+-  VOID                         *Hob;
+ 
+   // Ensure PcdSystemMemorySize has been set
+   ASSERT (PcdGet64 (PcdSystemMemorySize) != 0);
+ 
+-  SystemMemorySize = PcdGet64 (PcdSystemMemorySize);
+-
+-  Hob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid);
+-  if (Hob != NULL) {
+-    SystemMemorySize = *(UINT64 *)GET_GUID_HOB_DATA (Hob);
+-  }
+-
+   //
+   // Now, the permanent memory has been installed, we can call AllocatePages()
+   //
+@@ -75,7 +66,8 @@ MemoryPeim (
+                         EFI_RESOURCE_ATTRIBUTE_TESTED
+                         );
+ 
+-  SystemMemoryTop = PcdGet64 (PcdSystemMemoryBase) + SystemMemorySize;
++  SystemMemoryTop = PcdGet64 (PcdSystemMemoryBase) +
++                    PcdGet64 (PcdSystemMemorySize);
+ 
+   if (SystemMemoryTop - 1 > MAX_ALLOC_ADDRESS) {
+     BuildResourceDescriptorHob (
+@@ -95,7 +87,7 @@ MemoryPeim (
+       EFI_RESOURCE_SYSTEM_MEMORY,
+       ResourceAttributes,
+       PcdGet64 (PcdSystemMemoryBase),
+-      SystemMemorySize
++      PcdGet64 (PcdSystemMemorySize)
+       );
+   }
+ 
+diff --git a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf
+index 48d9c66b22..21327f79f4 100644
+--- a/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf
++++ b/ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf
+@@ -34,7 +34,6 @@
+   CacheMaintenanceLib
+ 
+ [Guids]
+-  gArmVirtSystemMemorySizeGuid
+   gEfiMemoryTypeInformationGuid
+ 
+ [FeaturePcd]
+diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c
+index 9cf43f06c0..cf569bed99 100644
+--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c
++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c
+@@ -6,12 +6,10 @@
+ 
+ **/
+ 
+-#include <Uefi.h>
+-#include <Pi/PiMultiPhase.h>
++#include <Base.h>
+ #include <Library/ArmLib.h>
+ #include <Library/BaseMemoryLib.h>
+ #include <Library/DebugLib.h>
+-#include <Library/HobLib.h>
+ #include <Library/MemoryAllocationLib.h>
+ 
+ // Number of Virtual Memory Map Descriptors
+@@ -26,28 +24,6 @@
+ #define MACH_VIRT_PERIPH_BASE  0x08000000
+ #define MACH_VIRT_PERIPH_SIZE  SIZE_128MB
+ 
+-/**
+-  Default library constructur that obtains the memory size from a PCD.
+-
+-  @return  Always returns RETURN_SUCCESS
+-
+-**/
+-RETURN_STATUS
+-EFIAPI
+-QemuVirtMemInfoLibConstructor (
+-  VOID
+-  )
+-{
+-  UINT64  Size;
+-  VOID    *Hob;
+-
+-  Size = PcdGet64 (PcdSystemMemorySize);
+-  Hob  = BuildGuidDataHob (&gArmVirtSystemMemorySizeGuid, &Size, sizeof Size);
+-  ASSERT (Hob != NULL);
+-
+-  return RETURN_SUCCESS;
+-}
+-
+ /**
+   Return the Virtual Memory Map of your platform
+ 
+@@ -67,16 +43,9 @@ ArmVirtGetMemoryMap (
+   )
+ {
+   ARM_MEMORY_REGION_DESCRIPTOR  *VirtualMemoryTable;
+-  VOID                          *MemorySizeHob;
+ 
+   ASSERT (VirtualMemoryMap != NULL);
+ 
+-  MemorySizeHob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid);
+-  ASSERT (MemorySizeHob != NULL);
+-  if (MemorySizeHob == NULL) {
+-    return;
+-  }
+-
+   VirtualMemoryTable = AllocatePool (
+                          sizeof (ARM_MEMORY_REGION_DESCRIPTOR) *
+                          MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS
+@@ -90,7 +59,7 @@ ArmVirtGetMemoryMap (
+   // System DRAM
+   VirtualMemoryTable[0].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
+   VirtualMemoryTable[0].VirtualBase  = VirtualMemoryTable[0].PhysicalBase;
+-  VirtualMemoryTable[0].Length       = *(UINT64 *)GET_GUID_HOB_DATA (MemorySizeHob);
++  VirtualMemoryTable[0].Length       = PcdGet64 (PcdSystemMemorySize);
+   VirtualMemoryTable[0].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
+ 
+   DEBUG ((
+diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf
+index 6acad8bbd7..7150de6c10 100644
+--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf
++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf
+@@ -14,7 +14,6 @@
+   MODULE_TYPE                    = BASE
+   VERSION_STRING                 = 1.0
+   LIBRARY_CLASS                  = ArmVirtMemInfoLib
+-  CONSTRUCTOR                    = QemuVirtMemInfoLibConstructor
+ 
+ [Sources]
+   QemuVirtMemInfoLib.c
+@@ -31,9 +30,7 @@
+   BaseMemoryLib
+   DebugLib
+   MemoryAllocationLib
+-
+-[Guids]
+-  gArmVirtSystemMemorySizeGuid
++  PcdLib
+ 
+ [Pcd]
+   gArmTokenSpaceGuid.PcdFvBaseAddress
+diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
+index f045e39a41..7ecf6dfbb7 100644
+--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
+@@ -32,16 +32,16 @@
+   BaseMemoryLib
+   DebugLib
+   FdtLib
++  PcdLib
+   MemoryAllocationLib
+ 
+-[Guids]
+-  gArmVirtSystemMemorySizeGuid
+-
+-[FixedPcd]
++[Pcd]
+   gArmTokenSpaceGuid.PcdFdBaseAddress
+   gArmTokenSpaceGuid.PcdFvBaseAddress
+   gArmTokenSpaceGuid.PcdSystemMemoryBase
+   gArmTokenSpaceGuid.PcdSystemMemorySize
++
++[FixedPcd]
+   gArmTokenSpaceGuid.PcdFdSize
+   gArmTokenSpaceGuid.PcdFvSize
+   gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress
+diff --git a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c
+index c47ab82966..33d3597d57 100644
+--- a/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c
++++ b/ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c
+@@ -6,10 +6,9 @@
+ 
+ **/
+ 
+-#include <Uefi.h>
+-#include <Pi/PiMultiPhase.h>
++#include <Base.h>
+ #include <Library/DebugLib.h>
+-#include <Library/HobLib.h>
++#include <Library/PcdLib.h>
+ #include <libfdt.h>
+ 
+ RETURN_STATUS
+@@ -18,14 +17,14 @@ QemuVirtMemInfoPeiLibConstructor (
+   VOID
+   )
+ {
+-  VOID          *DeviceTreeBase;
+-  INT32         Node, Prev;
+-  UINT64        NewBase, CurBase;
+-  UINT64        NewSize, CurSize;
+-  CONST CHAR8   *Type;
+-  INT32         Len;
+-  CONST UINT64  *RegProp;
+-  VOID          *Hob;
++  VOID           *DeviceTreeBase;
++  INT32          Node, Prev;
++  UINT64         NewBase, CurBase;
++  UINT64         NewSize, CurSize;
++  CONST CHAR8    *Type;
++  INT32          Len;
++  CONST UINT64   *RegProp;
++  RETURN_STATUS  PcdStatus;
+ 
+   NewBase = 0;
+   NewSize = 0;
+@@ -87,13 +86,8 @@ QemuVirtMemInfoPeiLibConstructor (
+   // Make sure the start of DRAM matches our expectation
+   //
+   ASSERT (FixedPcdGet64 (PcdSystemMemoryBase) == NewBase);
+-
+-  Hob = BuildGuidDataHob (
+-          &gArmVirtSystemMemorySizeGuid,
+-          &NewSize,
+-          sizeof NewSize
+-          );
+-  ASSERT (Hob != NULL);
++  PcdStatus = PcdSet64S (PcdSystemMemorySize, NewSize);
++  ASSERT_RETURN_ERROR (PcdStatus);
+ 
+   //
+   // We need to make sure that the machine we are running on has at least
diff --git a/meta-arm-bsp/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch b/meta-arm-bsp/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch
new file mode 100644
index 00000000..64e85ab1
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/uefi/files/0002-Revert-ArmVirtPkg-ArmVirtQemu-omit-PCD-PEIM-unless-T.patch
@@ -0,0 +1,89 @@ 
+From caef501f2c05ba2170d0a449856900919021d6f6 Mon Sep 17 00:00:00 2001
+From: Your Name <you@example.com>
+Date: Fri, 10 Mar 2023 18:47:09 +0000
+Subject: [PATCH] Revert "ArmVirtPkg/ArmVirtQemu: omit PCD PEIM unless TPM
+ support is enabled"
+
+This reverts commit b6efc505e4d6eb2055a39afd0a1ee67846a1e5f9.
+
+Upstream-Status: Inappropriate [other]
+Signed-off-by: Jon Mason <jon.mason@arm.com>
+
+---
+ ArmVirtPkg/ArmVirtQemu.dsc | 22 +++++-----------------
+ ArmVirtPkg/ArmVirtQemu.fdf |  2 +-
+ 2 files changed, 6 insertions(+), 18 deletions(-)
+
+diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
+index 2e786dad12..0f8157a032 100644
+--- a/ArmVirtPkg/ArmVirtQemu.dsc
++++ b/ArmVirtPkg/ArmVirtQemu.dsc
+@@ -293,15 +293,10 @@
+   #
+   # TPM2 support
+   #
+-!if $(TPM2_ENABLE) == TRUE
+   gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0
++!if $(TPM2_ENABLE) == TRUE
+   gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid|{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+   gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask|0
+-!else
+-[PcdsPatchableInModule]
+-  # make this PCD patchable instead of dynamic when TPM support is not enabled
+-  # this permits setting the PCD in unreachable code without pulling in dynamic PCD support
+-  gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0
+ !endif
+ 
+ [PcdsDynamicHii]
+@@ -314,13 +309,6 @@
+ 
+   gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5
+ 
+-[LibraryClasses.common.PEI_CORE, LibraryClasses.common.PEIM]
+-!if $(TPM2_ENABLE) == TRUE
+-  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+-!else
+-  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
+-!endif
+-
+ ################################################################################
+ #
+ # Components Section - list of all EDK II Modules needed by this Platform
+@@ -332,6 +320,10 @@
+   #
+   ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
+   MdeModulePkg/Core/Pei/PeiMain.inf
++  MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
++    <LibraryClasses>
++      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
++  }
+   ArmPlatformPkg/PlatformPei/PlatformPeim.inf
+   ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf {
+     <LibraryClasses>
+@@ -342,10 +334,6 @@
+   ArmPkg/Drivers/CpuPei/CpuPei.inf
+ 
+ !if $(TPM2_ENABLE) == TRUE
+-  MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
+-    <LibraryClasses>
+-      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
+-  }
+   MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf {
+     <LibraryClasses>
+       ResetSystemLib|ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib/ArmVirtPsciResetSystemPeiLib.inf
+diff --git a/ArmVirtPkg/ArmVirtQemu.fdf b/ArmVirtPkg/ArmVirtQemu.fdf
+index 764f652afd..c85e36b185 100644
+--- a/ArmVirtPkg/ArmVirtQemu.fdf
++++ b/ArmVirtPkg/ArmVirtQemu.fdf
+@@ -109,10 +109,10 @@ READ_LOCK_STATUS   = TRUE
+   INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
+   INF ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf
+   INF ArmPkg/Drivers/CpuPei/CpuPei.inf
++  INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
+   INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
+ 
+ !if $(TPM2_ENABLE) == TRUE
+-  INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
+   INF MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf
+   INF OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf
+   INF SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf
diff --git a/meta-arm-bsp/recipes-bsp/uefi/files/default.patch b/meta-arm-bsp/recipes-bsp/uefi/files/default.patch
new file mode 100644
index 00000000..fca232f0
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/uefi/files/default.patch
@@ -0,0 +1,23 @@ 
+Platform/ARM: fix uninitialized variable FileSize in RunAxf
+
+Clang 14 detects a potentially uninitialized variable FileSize:
+
+RunAxf.c:216:11: error: variable 'FileSize' is used uninitialized
+                        whenever 'if' condition is false
+RunAxf.c:281:38: note: uninitialized use occurs here
+WriteBackDataCacheRange (FileData, FileSize);
+                                    ^~~~~~~~
+
+Reading the code it doesn't look like this can actually happen, but we
+can keep clang happy by initialising FileSize to 0.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c b/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c
+index d23739ad38..fba5e0ba30 100644
+--- a/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c
++++ b/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c
+@@ -136,1 +136,1 @@ ShellDynCmdRunAxfHandler (
+-  UINTN                       FileSize;
++  UINTN                       FileSize = 0;