diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index f50d30388cf2..cc2c5a50c925 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -48,7 +48,6 @@ [LibraryClasses.common]
   QemuFwCfgLib|ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
   QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf
 
-  ArmPlatformLib|ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuRelocatablePlatformLib.inf
   ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf
 
   TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
index 3df684d13cb0..11e073287a84 100644
--- a/ArmVirtPkg/ArmVirtXen.dsc
+++ b/ArmVirtPkg/ArmVirtXen.dsc
@@ -43,7 +43,6 @@ [LibraryClasses]
   VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
   VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
 
-  ArmPlatformLib|ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlatformLib.inf
   ArmVirtMemInfoLib|ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib.inf
 
   TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/AARCH64/RelocatableVirtHelper.S b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/AARCH64/RelocatableVirtHelper.S
deleted file mode 100644
index ec6955cf0af8..000000000000
--- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/AARCH64/RelocatableVirtHelper.S
+++ /dev/null
@@ -1,141 +0,0 @@
-#
-#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-#  Copyright (c) 2016, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#
-
-#include <AsmMacroIoLibV8.h>
-#include <Library/ArmLib.h>
-
-// VOID
-// ArmPlatformPeiBootAction (
-//   VOID   *DeviceTreeBaseAddress,   // passed by loader in x0
-//   VOID   *ImageBase                // passed by FDF trampoline in x1
-//   );
-ASM_FUNC(ArmPlatformPeiBootAction)
-  //
-  // If we are booting from RAM using the Linux kernel boot protocol, x0 will
-  // point to the DTB image in memory. Otherwise, use the default value defined
-  // by the platform.
-  //
-  cbnz  x0, 0f
-  ldr   x0, PcdGet64 (PcdDeviceTreeInitialBaseAddress)
-
-0:mov   x29, x30            // preserve LR
-  mov   x28, x0             // preserve DTB pointer
-  mov   x27, x1             // preserve base of image pointer
-
-  //
-  // The base of the runtime image has been preserved in x1. Check whether
-  // the expected magic number can be found in the header.
-  //
-  ldr   w8, .LArm64LinuxMagic
-  ldr   w9, [x1, #0x38]
-  cmp   w8, w9
-  bne   .Lout
-
-  //
-  //
-  // OK, so far so good. We have confirmed that we likely have a DTB and are
-  // booting via the arm64 Linux boot protocol. Update the base-of-image PCD
-  // to the actual relocated value, and add the shift of PcdFdBaseAddress to
-  // PcdFvBaseAddress as well
-  //
-  adr   x8, PcdGet64 (PcdFdBaseAddress)
-  adr   x9, PcdGet64 (PcdFvBaseAddress)
-  ldr   x6, [x8]
-  ldr   x7, [x9]
-  sub   x7, x7, x6
-  add   x7, x7, x1
-  str   x1, [x8]
-  str   x7, [x9]
-
-  //
-  // Discover the memory size and offset from the DTB, and record in the
-  // respective PCDs. This will also return false if a corrupt DTB is
-  // encountered. Since we are calling a C function, use the window at the
-  // beginning of the FD image as a temp stack.
-  //
-  adr   x1, PcdGet64 (PcdSystemMemoryBase)
-  adr   x2, PcdGet64 (PcdSystemMemorySize)
-  mov   sp, x7
-  bl    FindMemnode
-  cbz   x0, .Lout
-
-  //
-  // Copy the DTB to the slack space right after the 64 byte arm64/Linux style
-  // image header at the base of this image (defined in the FDF), and record the
-  // pointer in PcdDeviceTreeInitialBaseAddress.
-  //
-  adr   x8, PcdGet64 (PcdDeviceTreeInitialBaseAddress)
-  add   x27, x27, #0x40
-  str   x27, [x8]
-
-  mov   x0, x27
-  mov   x1, x28
-  bl    CopyFdt
-
-.Lout:
-  ret    x29
-
-.LArm64LinuxMagic:
-  .byte   0x41, 0x52, 0x4d, 0x64
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
-  MOV32  (w0, FixedPcdGet32 (PcdArmPrimaryCore))
-  ret
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ASM_FUNC(ArmPlatformIsPrimaryCore)
-  mov   x0, #1
-  ret
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ASM_FUNC(ArmPlatformGetCorePosition)
-  and   x1, x0, #ARM_CORE_MASK
-  and   x0, x0, #ARM_CLUSTER_MASK
-  add   x0, x1, x0, LSR #6
-  ret
-
-//EFI_PHYSICAL_ADDRESS
-//GetPhysAddrTop (
-//  VOID
-//  );
-ASM_FUNC(ArmGetPhysAddrTop)
-  mrs   x0, id_aa64mmfr0_el1
-  adr   x1, .LPARanges
-  and   x0, x0, #7
-  ldrb  w1, [x1, x0]
-  mov   x0, #1
-  lsl   x0, x0, x1
-  ret
-
-//
-// Bits 0..2 of the AA64MFR0_EL1 system register encode the size of the
-// physical address space support on this CPU:
-// 0 == 32 bits, 1 == 36 bits, etc etc
-// 6 and 7 are reserved
-//
-.LPARanges:
-  .byte 32, 36, 40, 42, 44, 48, -1, -1
-
-ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ARM/RelocatableVirtHelper.S b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ARM/RelocatableVirtHelper.S
deleted file mode 100644
index 27af98970c16..000000000000
--- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ARM/RelocatableVirtHelper.S
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-#  Copyright (c) 2014-2016, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#
-
-#include <AsmMacroIoLib.h>
-#include <Library/ArmLib.h>
-
-ASM_FUNC(ArmPlatformPeiBootAction)
-  //
-  // If we are booting from RAM using the Linux kernel boot protocol, r0 will
-  // point to the DTB image in memory. Otherwise, use the default value defined
-  // by the platform.
-  //
-  teq   r0, #0
-  bne   0f
-  LDRL  (r0, PcdGet64 (PcdDeviceTreeInitialBaseAddress))
-
-0:mov   r11, r14            // preserve LR
-  mov   r10, r0             // preserve DTB pointer
-  mov   r9, r1              // preserve base of image pointer
-
-  //
-  // The base of the runtime image has been preserved in r1. Check whether
-  // the expected magic number can be found in the header.
-  //
-  ldr   r8, .LArm32LinuxMagic
-  ldr   r7, [r1, #0x24]
-  cmp   r7, r8
-  bne   .Lout
-
-  //
-  //
-  // OK, so far so good. We have confirmed that we likely have a DTB and are
-  // booting via the ARM Linux boot protocol. Update the base-of-image PCD
-  // to the actual relocated value, and add the shift of PcdFdBaseAddress to
-  // PcdFvBaseAddress as well
-  //
-  ADRL  (r8, PcdGet64 (PcdFdBaseAddress))
-  ADRL  (r7, PcdGet64 (PcdFvBaseAddress))
-  ldr   r6, [r8]
-  ldr   r5, [r7]
-  sub   r5, r5, r6
-  add   r5, r5, r1
-  str   r1, [r8]
-  str   r5, [r7]
-
-  //
-  // Discover the memory size and offset from the DTB, and record in the
-  // respective PCDs. This will also return false if a corrupt DTB is
-  // encountered. Since we are calling a C function, use the window at the
-  // beginning of the FD image as a temp stack.
-  //
-  ADRL  (r1, PcdGet64 (PcdSystemMemoryBase))
-  ADRL  (r2, PcdGet64 (PcdSystemMemorySize))
-  mov   sp, r5
-  bl    FindMemnode
-  teq   r0, #0
-  beq   .Lout
-
-  //
-  // Copy the DTB to the slack space right after the 64 byte arm64/Linux style
-  // image header at the base of this image (defined in the FDF), and record the
-  // pointer in PcdDeviceTreeInitialBaseAddress.
-  //
-  ADRL  (r8, PcdGet64 (PcdDeviceTreeInitialBaseAddress))
-  add   r9, r9, #0x40
-  str   r9, [r8]
-
-  mov   r0, r9
-  mov   r1, r10
-  bl    CopyFdt
-
-.Lout:
-  bx    r11
-
-.LArm32LinuxMagic:
-  .byte   0x18, 0x28, 0x6f, 0x01
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
-  MOV32  (r0, FixedPcdGet32 (PcdArmPrimaryCore))
-  bx     lr
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ASM_FUNC(ArmPlatformIsPrimaryCore)
-  mov   r0, #1
-  bx    lr
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ASM_FUNC(ArmPlatformGetCorePosition)
-  and   r1, r0, #ARM_CORE_MASK
-  and   r0, r0, #ARM_CLUSTER_MASK
-  add   r0, r1, r0, LSR #6
-  bx    lr
-
-//EFI_PHYSICAL_ADDRESS
-//GetPhysAddrTop (
-//  VOID
-//  );
-ASM_FUNC(ArmGetPhysAddrTop)
-  mov   r0, #0x00000000
-  mov   r1, #0x10000
-  bx    lr
diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuRelocatablePlatformLib.inf b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuRelocatablePlatformLib.inf
deleted file mode 100644
index acd523bbd2ce..000000000000
--- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuRelocatablePlatformLib.inf
+++ /dev/null
@@ -1,64 +0,0 @@
-#/* @file
-#  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
-#  Copyright (c) 2014, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#*/
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = ArmXenRelocatablePlatformLib
-  FILE_GUID                      = c8602718-4faa-4119-90ca-cae72509ac4c
-  MODULE_TYPE                    = BASE
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = ArmPlatformLib|SEC PEIM
-
-[Packages]
-  MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
-  EmbeddedPkg/EmbeddedPkg.dec
-  ArmPkg/ArmPkg.dec
-  ArmPlatformPkg/ArmPlatformPkg.dec
-  ArmVirtPkg/ArmVirtPkg.dec
-
-[LibraryClasses]
-  IoLib
-  ArmLib
-  PrintLib
-  FdtLib
-
-[Sources.common]
-  RelocatableVirt.c
-  QemuVirtMem.c
-  FdtParser.c
-
-[Sources.AARCH64]
-  AARCH64/RelocatableVirtHelper.S
-
-[Sources.ARM]
-  ARM/RelocatableVirtHelper.S
-
-[FeaturePcd]
-  gEmbeddedTokenSpaceGuid.PcdCacheEnable
-  gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec
-
-[PatchPcd]
-  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress
-  gArmTokenSpaceGuid.PcdFdBaseAddress
-  gArmTokenSpaceGuid.PcdFvBaseAddress
-  gArmTokenSpaceGuid.PcdSystemMemoryBase
-  gArmTokenSpaceGuid.PcdSystemMemorySize
-
-[FixedPcd]
-  gArmPlatformTokenSpaceGuid.PcdCoreCount
-  gArmTokenSpaceGuid.PcdArmPrimaryCoreMask
-  gArmTokenSpaceGuid.PcdArmPrimaryCore
-  gArmTokenSpaceGuid.PcdFdSize
-  gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize
diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c
deleted file mode 100644
index afdc81a8839d..000000000000
--- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2015, Linaro Ltd. All rights reserved.
- *
- * 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
- * http://opensource.org/licenses/bsd-license.php
- *
- * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- */
-
-#include <Uefi.h>
-#include <Include/libfdt.h>
-
-BOOLEAN
-FindMemnode (
-  IN  VOID    *DeviceTreeBlob,
-  OUT UINT64  *SystemMemoryBase,
-  OUT UINT64  *SystemMemorySize
-  )
-{
-  INT32         MemoryNode;
-  INT32         AddressCells;
-  INT32         SizeCells;
-  INT32         Length;
-  CONST INT32   *Prop;
-
-  if (fdt_check_header (DeviceTreeBlob) != 0) {
-    return FALSE;
-  }
-
-  //
-  // Look for a node called "memory" at the lowest level of the tree
-  //
-  MemoryNode = fdt_path_offset (DeviceTreeBlob, "/memory");
-  if (MemoryNode <= 0) {
-    return FALSE;
-  }
-
-  //
-  // Retrieve the #address-cells and #size-cells properties
-  // from the root node, or use the default if not provided.
-  //
-  AddressCells = 1;
-  SizeCells = 1;
-
-  Prop = fdt_getprop (DeviceTreeBlob, 0, "#address-cells", &Length);
-  if (Length == 4) {
-    AddressCells = fdt32_to_cpu (*Prop);
-  }
-
-  Prop = fdt_getprop (DeviceTreeBlob, 0, "#size-cells", &Length);
-  if (Length == 4) {
-    SizeCells = fdt32_to_cpu (*Prop);
-  }
-
-  //
-  // Now find the 'reg' property of the /memory node, and read the first
-  // range listed.
-  //
-  Prop = fdt_getprop (DeviceTreeBlob, MemoryNode, "reg", &Length);
-
-  if (Length < (AddressCells + SizeCells) * sizeof (INT32)) {
-    return FALSE;
-  }
-
-  *SystemMemoryBase = fdt32_to_cpu (Prop[0]);
-  if (AddressCells > 1) {
-    *SystemMemoryBase = (*SystemMemoryBase << 32) | fdt32_to_cpu (Prop[1]);
-  }
-  Prop += AddressCells;
-
-  *SystemMemorySize = fdt32_to_cpu (Prop[0]);
-  if (SizeCells > 1) {
-    *SystemMemorySize = (*SystemMemorySize << 32) | fdt32_to_cpu (Prop[1]);
-  }
-
-  return TRUE;
-}
-
-VOID
-CopyFdt (
-  IN    VOID    *FdtDest,
-  IN    VOID    *FdtSource
-  )
-{
-  fdt_pack(FdtSource);
-  CopyMem (FdtDest, FdtSource, fdt_totalsize (FdtSource));
-}
diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/QemuVirtMem.c b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/QemuVirtMem.c
deleted file mode 100644
index 2ce5c48d52cf..000000000000
--- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/QemuVirtMem.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2014, Linaro Limited. All rights reserved.
-*
-*  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
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#include <Library/ArmPlatformLib.h>
-#include <Library/DebugLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/PcdLib.h>
-#include <Library/IoLib.h>
-#include <Library/MemoryAllocationLib.h>
-
-// Number of Virtual Memory Map Descriptors
-#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS          5
-
-// DDR attributes
-#define DDR_ATTRIBUTES_CACHED    ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK
-#define DDR_ATTRIBUTES_UNCACHED  ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED
-
-EFI_PHYSICAL_ADDRESS
-ArmGetPhysAddrTop (
-  VOID
-  );
-
-/**
-  Return the Virtual Memory Map of your platform
-
-  This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU
-  on your platform.
-
-  @param[out]   VirtualMemoryMap    Array of ARM_MEMORY_REGION_DESCRIPTOR
-                                    describing a Physical-to-Virtual Memory
-                                    mapping. This array must be ended by a
-                                    zero-filled entry
-
-**/
-VOID
-ArmPlatformGetVirtualMemoryMap (
-  IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap
-  )
-{
-  ARM_MEMORY_REGION_DESCRIPTOR  *VirtualMemoryTable;
-
-  ASSERT (VirtualMemoryMap != NULL);
-
-  VirtualMemoryTable = AllocatePages (
-                         EFI_SIZE_TO_PAGES (
-                           sizeof (ARM_MEMORY_REGION_DESCRIPTOR)
-                           * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS
-                           )
-                         );
-
-  if (VirtualMemoryTable == NULL) {
-    DEBUG ((EFI_D_ERROR, "%a: Error: Failed AllocatePages()\n", __FUNCTION__));
-    return;
-  }
-
-  // System DRAM
-  VirtualMemoryTable[0].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
-  VirtualMemoryTable[0].VirtualBase  = VirtualMemoryTable[0].PhysicalBase;
-  VirtualMemoryTable[0].Length       = PcdGet64 (PcdSystemMemorySize);
-  VirtualMemoryTable[0].Attributes   = DDR_ATTRIBUTES_CACHED;
-
-  DEBUG ((EFI_D_INFO, "%a: Dumping System DRAM Memory Map:\n"
-      "\tPhysicalBase: 0x%lX\n"
-      "\tVirtualBase: 0x%lX\n"
-      "\tLength: 0x%lX\n",
-      __FUNCTION__,
-      VirtualMemoryTable[0].PhysicalBase,
-      VirtualMemoryTable[0].VirtualBase,
-      VirtualMemoryTable[0].Length));
-
-  // Peripheral space before DRAM
-  VirtualMemoryTable[1].PhysicalBase = 0x0;
-  VirtualMemoryTable[1].VirtualBase  = 0x0;
-  VirtualMemoryTable[1].Length       = VirtualMemoryTable[0].PhysicalBase;
-  VirtualMemoryTable[1].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
-
-  // Peripheral space after DRAM
-  VirtualMemoryTable[2].PhysicalBase = VirtualMemoryTable[0].Length + VirtualMemoryTable[1].Length;
-  VirtualMemoryTable[2].VirtualBase  = VirtualMemoryTable[2].PhysicalBase;
-  VirtualMemoryTable[2].Length       = MIN (1ULL << FixedPcdGet8 (PcdPrePiCpuMemorySize),
-                                         ArmGetPhysAddrTop ()) -
-                                       VirtualMemoryTable[2].PhysicalBase;
-  VirtualMemoryTable[2].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
-
-  // Remap the FD region as normal executable memory
-  VirtualMemoryTable[3].PhysicalBase = PcdGet64 (PcdFdBaseAddress);
-  VirtualMemoryTable[3].VirtualBase  = VirtualMemoryTable[3].PhysicalBase;
-  VirtualMemoryTable[3].Length       = FixedPcdGet32 (PcdFdSize);
-  VirtualMemoryTable[3].Attributes   = DDR_ATTRIBUTES_CACHED;
-
-  // End of Table
-  ZeroMem (&VirtualMemoryTable[4], sizeof (ARM_MEMORY_REGION_DESCRIPTOR));
-
-  *VirtualMemoryMap = VirtualMemoryTable;
-}
diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/RelocatableVirt.c b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/RelocatableVirt.c
deleted file mode 100644
index 6df207733ab2..000000000000
--- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/RelocatableVirt.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-*  Copyright (c) 2014, Linaro Limited. All rights reserved.
-*  Copyright (c) 2014, Red Hat, Inc.
-*
-*
-*  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
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#include <Library/IoLib.h>
-#include <Library/ArmPlatformLib.h>
-#include <Library/DebugLib.h>
-#include <Pi/PiBootMode.h>
-
-/**
-  Return the current Boot Mode
-
-  This function returns the boot reason on the platform
-
-  @return   Return the current Boot Mode of the platform
-
-**/
-EFI_BOOT_MODE
-ArmPlatformGetBootMode (
-  VOID
-  )
-{
-  return BOOT_WITH_FULL_CONFIGURATION;
-}
-
-/**
-  This function is called by PrePeiCore, in the SEC phase.
-**/
-RETURN_STATUS
-ArmPlatformInitialize (
-  IN  UINTN                     MpId
-  )
-{
-  //
-  // We are relying on ArmPlatformInitializeSystemMemory () being called from
-  // InitializeMemory (), which only occurs if the following feature is disabled
-  //
-  ASSERT (!FeaturePcdGet (PcdSystemMemoryInitializeInSec));
-  return RETURN_SUCCESS;
-}
-
-VOID
-ArmPlatformInitializeSystemMemory (
-  VOID
-  )
-{
-}
-
-VOID
-ArmPlatformGetPlatformPpiList (
-  OUT UINTN                   *PpiListSize,
-  OUT EFI_PEI_PPI_DESCRIPTOR  **PpiList
-  )
-{
-  *PpiListSize = 0;
-  *PpiList = NULL;
-}
diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/AARCH64/VirtHelper.S b/ArmVirtPkg/Library/ArmVirtPlatformLib/AARCH64/VirtHelper.S
deleted file mode 100644
index 1d8fe25928d8..000000000000
--- a/ArmVirtPkg/Library/ArmVirtPlatformLib/AARCH64/VirtHelper.S
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-#  Copyright (c) 2016, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#
-
-#include <AsmMacroIoLibV8.h>
-#include <Library/ArmLib.h>
-
-ASM_FUNC(ArmPlatformPeiBootAction)
-  ret
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
-  MOV32  (w0, FixedPcdGet32 (PcdArmPrimaryCore))
-  ret
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ASM_FUNC(ArmPlatformIsPrimaryCore)
-  mov   x0, #1
-  ret
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ASM_FUNC(ArmPlatformGetCorePosition)
-  and   x1, x0, #ARM_CORE_MASK
-  and   x0, x0, #ARM_CLUSTER_MASK
-  add   x0, x1, x0, LSR #6
-  ret
-
-//EFI_PHYSICAL_ADDRESS
-//GetPhysAddrTop (
-//  VOID
-//  );
-ASM_FUNC(ArmGetPhysAddrTop)
-  mrs   x0, id_aa64mmfr0_el1
-  adr   x1, .LPARanges
-  and   x0, x0, #7
-  ldrb  w1, [x1, x0]
-  mov   x0, #1
-  lsl   x0, x0, x1
-  ret
-
-//
-// Bits 0..2 of the AA64MFR0_EL1 system register encode the size of the
-// physical address space support on this CPU:
-// 0 == 32 bits, 1 == 36 bits, etc etc
-// 6 and 7 are reserved
-//
-.LPARanges:
-  .byte 32, 36, 40, 42, 44, 48, -1, -1
-
-ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.S b/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.S
deleted file mode 100644
index 4a4db3721072..000000000000
--- a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.S
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-#  Copyright (c) 2014-2016, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#
-
-#include <AsmMacroIoLib.h>
-#include <Library/ArmLib.h>
-
-ASM_FUNC(ArmPlatformPeiBootAction)
-  bx    lr
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
-  MOV32  (r0, FixedPcdGet32 (PcdArmPrimaryCore))
-  bx     lr
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ASM_FUNC(ArmPlatformIsPrimaryCore)
-  mov   r0, #1
-  bx    lr
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ASM_FUNC(ArmPlatformGetCorePosition)
-  and   r1, r0, #ARM_CORE_MASK
-  and   r0, r0, #ARM_CLUSTER_MASK
-  add   r0, r1, r0, LSR #6
-  bx    lr
-
-//EFI_PHYSICAL_ADDRESS
-//GetPhysAddrTop (
-//  VOID
-//  );
-ASM_FUNC(ArmGetPhysAddrTop)
-  mov   r0, #0x00000000
-  mov   r1, #0x10000
-  bx    lr
-
-ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.asm b/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.asm
deleted file mode 100644
index b476516f2115..000000000000
--- a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.asm
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-//  Copyright (c) 2011-2014, ARM Limited. All rights reserved.
-//  Copyright (c) 2014, Linaro Limited. All rights reserved.
-//
-//  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
-//  http://opensource.org/licenses/bsd-license.php
-//
-//  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-//
-
-#include <Library/ArmLib.h>
-#include <AutoGen.h>
-
-  INCLUDE AsmMacroIoLib.inc
-
-  EXPORT  ArmPlatformPeiBootAction
-  EXPORT  ArmPlatformIsPrimaryCore
-  EXPORT  ArmPlatformGetPrimaryCoreMpId
-  EXPORT  ArmPlatformGetCorePosition
-  EXPORT  ArmGetPhysAddrTop
-
-  AREA VirtHelper, CODE, READONLY
-
-ArmPlatformPeiBootAction FUNCTION
-  bx    lr
-  ENDFUNC
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ArmPlatformGetPrimaryCoreMpId FUNCTION
-  MOV32  r0, FixedPcdGet32 (PcdArmPrimaryCore)
-  bx     lr
-  ENDFUNC
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ArmPlatformIsPrimaryCore FUNCTION
-  mov   r0, #1
-  bx    lr
-  ENDFUNC
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ArmPlatformGetCorePosition FUNCTION
-  and   r1, r0, #ARM_CORE_MASK
-  and   r0, r0, #ARM_CLUSTER_MASK
-  add   r0, r1, r0, LSR #6
-  bx    lr
-  ENDFUNC
-
-//EFI_PHYSICAL_ADDRESS
-//GetPhysAddrTop (
-//  VOID
-//  );
-ArmGetPhysAddrTop FUNCTION
-  mov   r0, #0x00000000
-  mov   r1, #0x10000
-  bx    lr
-  ENDFUNC
-
-  END
diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf b/ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf
deleted file mode 100644
index 3cb3fb1f3aea..000000000000
--- a/ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf
+++ /dev/null
@@ -1,64 +0,0 @@
-#/* @file
-#  Copyright (c) 2011-2014, ARM Limited. All rights reserved.
-#  Copyright (c) 2014, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#*/
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = ArmVirtPlatformLib
-  FILE_GUID                      = 00214cc1-06d1-45fe-9700-dca5726ad7bf
-  MODULE_TYPE                    = BASE
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = ArmPlatformLib|SEC PEIM
-
-[Packages]
-  MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
-  EmbeddedPkg/EmbeddedPkg.dec
-  ArmPkg/ArmPkg.dec
-  ArmPlatformPkg/ArmPlatformPkg.dec
-  ArmVirtPkg/ArmVirtPkg.dec
-
-[LibraryClasses]
-  IoLib
-  MemoryAllocationLib
-  ArmLib
-  PrintLib
-  FdtLib
-
-[Sources.common]
-  Virt.c
-  VirtMem.c
-
-[Sources.AARCH64]
-  AARCH64/VirtHelper.S
-
-[Sources.ARM]
-  ARM/VirtHelper.S          | GCC
-  ARM/VirtHelper.asm        | RVCT
-
-[FeaturePcd]
-  gEmbeddedTokenSpaceGuid.PcdCacheEnable
-  gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec
-
-[Pcd]
-  gArmTokenSpaceGuid.PcdSystemMemorySize
-
-[FixedPcd]
-  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress
-  gArmPlatformTokenSpaceGuid.PcdCoreCount
-  gArmTokenSpaceGuid.PcdSystemMemoryBase
-  gArmTokenSpaceGuid.PcdArmPrimaryCoreMask
-  gArmTokenSpaceGuid.PcdArmPrimaryCore
-  gArmTokenSpaceGuid.PcdFdBaseAddress
-  gArmTokenSpaceGuid.PcdFdSize
-  gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize
diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/Virt.c b/ArmVirtPkg/Library/ArmVirtPlatformLib/Virt.c
deleted file mode 100644
index 140bdde8b2ac..000000000000
--- a/ArmVirtPkg/Library/ArmVirtPlatformLib/Virt.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-*  Copyright (c) 2014, Linaro Limited. All rights reserved.
-*  Copyright (c) 2014, Red Hat, Inc.
-*
-*
-*  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
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#include <Library/IoLib.h>
-#include <Library/ArmPlatformLib.h>
-#include <Library/DebugLib.h>
-#include <Library/PcdLib.h>
-#include <libfdt.h>
-#include <Pi/PiBootMode.h>
-#include <Uefi/UefiBaseType.h>
-#include <Uefi/UefiMultiPhase.h>
-
-/**
-  Return the current Boot Mode
-
-  This function returns the boot reason on the platform
-
-  @return   Return the current Boot Mode of the platform
-
-**/
-EFI_BOOT_MODE
-ArmPlatformGetBootMode (
-  VOID
-  )
-{
-  return BOOT_WITH_FULL_CONFIGURATION;
-}
-
-/**
-  This function is called by PrePeiCore, in the SEC phase.
-**/
-RETURN_STATUS
-ArmPlatformInitialize (
-  IN  UINTN                     MpId
-  )
-{
-  //
-  // We are relying on ArmPlatformInitializeSystemMemory () being called from
-  // InitializeMemory (), which only occurs if the following feature is disabled
-  //
-  ASSERT (!FeaturePcdGet (PcdSystemMemoryInitializeInSec));
-  return RETURN_SUCCESS;
-}
-
-/**
-  Initialize the system (or sometimes called permanent) memory
-
-  This memory is generally represented by the DRAM.
-
-  This function is called from InitializeMemory() in MemoryInitPeim, in the PEI
-  phase.
-**/
-VOID
-ArmPlatformInitializeSystemMemory (
-  VOID
-  )
-{
-  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;
-
-  DeviceTreeBase = (VOID *)(UINTN)PcdGet64 (PcdDeviceTreeInitialBaseAddress);
-  ASSERT (DeviceTreeBase != NULL);
-
-  //
-  // Make sure we have a valid device tree blob
-  //
-  ASSERT (fdt_check_header (DeviceTreeBase) == 0);
-
-  //
-  // Look for the lowest memory node
-  //
-  for (Prev = 0;; Prev = Node) {
-    Node = fdt_next_node (DeviceTreeBase, Prev, NULL);
-    if (Node < 0) {
-      break;
-    }
-
-    //
-    // Check for memory node
-    //
-    Type = fdt_getprop (DeviceTreeBase, Node, "device_type", &Len);
-    if (Type && AsciiStrnCmp (Type, "memory", Len) == 0) {
-      //
-      // Get the 'reg' property of this node. For now, we will assume
-      // two 8 byte quantities for base and size, respectively.
-      //
-      RegProp = fdt_getprop (DeviceTreeBase, Node, "reg", &Len);
-      if (RegProp != 0 && Len == (2 * sizeof (UINT64))) {
-
-        CurBase = fdt64_to_cpu (ReadUnaligned64 (RegProp));
-        CurSize = fdt64_to_cpu (ReadUnaligned64 (RegProp + 1));
-
-        DEBUG ((EFI_D_INFO, "%a: System RAM @ 0x%lx - 0x%lx\n",
-               __FUNCTION__, CurBase, CurBase + CurSize - 1));
-
-        if (NewBase > CurBase || NewBase == 0) {
-          NewBase = CurBase;
-          NewSize = CurSize;
-        }
-      } else {
-        DEBUG ((EFI_D_ERROR, "%a: Failed to parse FDT memory node\n",
-               __FUNCTION__));
-      }
-    }
-  }
-
-  //
-  // Make sure the start of DRAM matches our expectation
-  //
-  ASSERT (FixedPcdGet64 (PcdSystemMemoryBase) == NewBase);
-  PcdStatus = PcdSet64S (PcdSystemMemorySize, NewSize);
-  ASSERT_RETURN_ERROR (PcdStatus);
-
-  //
-  // We need to make sure that the machine we are running on has at least
-  // 128 MB of memory configured, and is currently executing this binary from
-  // NOR flash. This prevents a device tree image in DRAM from getting
-  // clobbered when our caller installs permanent PEI RAM, before we have a
-  // chance of marking its location as reserved or copy it to a freshly
-  // allocated block in the permanent PEI RAM in the platform PEIM.
-  //
-  ASSERT (NewSize >= SIZE_128MB);
-  ASSERT (
-    (((UINT64)PcdGet64 (PcdFdBaseAddress) +
-      (UINT64)PcdGet32 (PcdFdSize)) <= NewBase) ||
-    ((UINT64)PcdGet64 (PcdFdBaseAddress) >= (NewBase + NewSize)));
-}
-
-VOID
-ArmPlatformGetPlatformPpiList (
-  OUT UINTN                   *PpiListSize,
-  OUT EFI_PEI_PPI_DESCRIPTOR  **PpiList
-  )
-{
-  *PpiListSize = 0;
-  *PpiList = NULL;
-}
diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c b/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c
deleted file mode 100644
index 4368d05f76ef..000000000000
--- a/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2014, Linaro Limited. All rights reserved.
-*
-*  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
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#include <Library/ArmPlatformLib.h>
-#include <Library/DebugLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/PcdLib.h>
-#include <Library/IoLib.h>
-#include <Library/MemoryAllocationLib.h>
-
-// Number of Virtual Memory Map Descriptors
-#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS          5
-
-EFI_PHYSICAL_ADDRESS
-ArmGetPhysAddrTop (
-  VOID
-  );
-
-/**
-  Return the Virtual Memory Map of your platform
-
-  This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU
-  on your platform.
-
-  @param[out]   VirtualMemoryMap    Array of ARM_MEMORY_REGION_DESCRIPTOR
-                                    describing a Physical-to-Virtual Memory
-                                    mapping. This array must be ended by a
-                                    zero-filled entry
-
-**/
-VOID
-ArmPlatformGetVirtualMemoryMap (
-  IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap
-  )
-{
-  ARM_MEMORY_REGION_DESCRIPTOR  *VirtualMemoryTable;
-
-  ASSERT (VirtualMemoryMap != NULL);
-
-  VirtualMemoryTable = AllocatePages (
-                         EFI_SIZE_TO_PAGES (
-                           sizeof (ARM_MEMORY_REGION_DESCRIPTOR)
-                           * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS
-                           )
-                         );
-
-  if (VirtualMemoryTable == NULL) {
-    DEBUG ((EFI_D_ERROR, "%a: Error: Failed AllocatePages()\n", __FUNCTION__));
-    return;
-  }
-
-  // System DRAM
-  VirtualMemoryTable[0].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
-  VirtualMemoryTable[0].VirtualBase  = VirtualMemoryTable[0].PhysicalBase;
-  VirtualMemoryTable[0].Length       = PcdGet64 (PcdSystemMemorySize);
-  VirtualMemoryTable[0].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
-
-  DEBUG ((EFI_D_INFO, "%a: Dumping System DRAM Memory Map:\n"
-      "\tPhysicalBase: 0x%lX\n"
-      "\tVirtualBase: 0x%lX\n"
-      "\tLength: 0x%lX\n",
-      __FUNCTION__,
-      VirtualMemoryTable[0].PhysicalBase,
-      VirtualMemoryTable[0].VirtualBase,
-      VirtualMemoryTable[0].Length));
-
-  // Peripheral space before DRAM
-  VirtualMemoryTable[1].PhysicalBase = 0x0;
-  VirtualMemoryTable[1].VirtualBase  = 0x0;
-  VirtualMemoryTable[1].Length       = VirtualMemoryTable[0].PhysicalBase;
-  VirtualMemoryTable[1].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
-
-  // Peripheral space after DRAM
-  VirtualMemoryTable[2].PhysicalBase = VirtualMemoryTable[0].Length + VirtualMemoryTable[1].Length;
-  VirtualMemoryTable[2].VirtualBase  = VirtualMemoryTable[2].PhysicalBase;
-  VirtualMemoryTable[2].Length       = MIN (1ULL << FixedPcdGet8 (PcdPrePiCpuMemorySize),
-                                         ArmGetPhysAddrTop ()) -
-                                       VirtualMemoryTable[2].PhysicalBase;
-  VirtualMemoryTable[2].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
-
-  // Remap the FD region as normal executable memory
-  VirtualMemoryTable[3].PhysicalBase = FixedPcdGet64 (PcdFdBaseAddress);
-  VirtualMemoryTable[3].VirtualBase  = VirtualMemoryTable[3].PhysicalBase;
-  VirtualMemoryTable[3].Length       = FixedPcdGet32 (PcdFdSize);
-  VirtualMemoryTable[3].Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
-
-  // End of Table
-  ZeroMem (&VirtualMemoryTable[4], sizeof (ARM_MEMORY_REGION_DESCRIPTOR));
-
-  *VirtualMemoryMap = VirtualMemoryTable;
-}
diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/AARCH64/RelocatableVirtHelper.S b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/AARCH64/RelocatableVirtHelper.S
deleted file mode 100644
index ce886378eae6..000000000000
--- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/AARCH64/RelocatableVirtHelper.S
+++ /dev/null
@@ -1,140 +0,0 @@
-#
-#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-#  Copyright (c) 2016, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#
-
-#include <AsmMacroIoLibV8.h>
-#include <Library/ArmLib.h>
-
-// VOID
-// ArmPlatformPeiBootAction (
-//   VOID   *DeviceTreeBaseAddress,   // passed by loader in x0
-//   VOID   *ImageBase                // passed by FDF trampoline in x1
-//   );
-ASM_FUNC(ArmPlatformPeiBootAction)
-  mov   x29, x30            // preserve LR
-  mov   x28, x0             // preserve DTB pointer
-  mov   x27, x1             // preserve base of image pointer
-
-  //
-  // If we are booting from RAM using the Linux kernel boot protocol, x0 will
-  // point to the DTB image in memory. Otherwise, we are just coming out of
-  // reset, and x0 will be 0.
-  //
-  cbz   x0, .Lout
-
-  //
-  // The base of the runtime image has been preserved in x1. Check whether
-  // the expected magic number can be found in the header.
-  //
-  ldr   w8, .LArm64LinuxMagic
-  ldr   w9, [x1, #0x38]
-  cmp   w8, w9
-  bne   .Lout
-
-  //
-  //
-  // OK, so far so good. We have confirmed that we likely have a DTB and are
-  // booting via the arm64 Linux boot protocol. Update the base-of-image PCD
-  // to the actual relocated value, and add the shift of PcdFdBaseAddress to
-  // PcdFvBaseAddress as well
-  //
-  adr   x8, PcdGet64 (PcdFdBaseAddress)
-  adr   x9, PcdGet64 (PcdFvBaseAddress)
-  ldr   x6, [x8]
-  ldr   x7, [x9]
-  sub   x7, x7, x6
-  add   x7, x7, x1
-  str   x1, [x8]
-  str   x7, [x9]
-
-  //
-  // Discover the memory size and offset from the DTB, and record in the
-  // respective PCDs. This will also return false if a corrupt DTB is
-  // encountered. Since we are calling a C function, use the window at the
-  // beginning of the FD image as a temp stack.
-  //
-  adr   x1, PcdGet64 (PcdSystemMemoryBase)
-  adr   x2, PcdGet64 (PcdSystemMemorySize)
-  mov   sp, x7
-  bl    FindMemnode
-  cbz   x0, .Lout
-
-  //
-  // Copy the DTB to the slack space right after the 64 byte arm64/Linux style
-  // image header at the base of this image (defined in the FDF), and record the
-  // pointer in PcdDeviceTreeInitialBaseAddress.
-  //
-  adr   x8, PcdGet64 (PcdDeviceTreeInitialBaseAddress)
-  add   x27, x27, #0x40
-  str   x27, [x8]
-
-  mov   x0, x27
-  mov   x1, x28
-  bl    CopyFdt
-
-.Lout:
-  ret    x29
-
-.LArm64LinuxMagic:
-  .byte   0x41, 0x52, 0x4d, 0x64
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
-  MOV32  (w0, FixedPcdGet32 (PcdArmPrimaryCore))
-  ret
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ASM_FUNC(ArmPlatformIsPrimaryCore)
-  mov   x0, #1
-  ret
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ASM_FUNC(ArmPlatformGetCorePosition)
-  and   x1, x0, #ARM_CORE_MASK
-  and   x0, x0, #ARM_CLUSTER_MASK
-  add   x0, x1, x0, LSR #6
-  ret
-
-//EFI_PHYSICAL_ADDRESS
-//GetPhysAddrTop (
-//  VOID
-//  );
-ASM_FUNC(ArmGetPhysAddrTop)
-  mrs   x0, id_aa64mmfr0_el1
-  adr   x1, .LPARanges
-  and   x0, x0, #7
-  ldrb  w1, [x1, x0]
-  mov   x0, #1
-  lsl   x0, x0, x1
-  ret
-
-//
-// Bits 0..2 of the AA64MFR0_EL1 system register encode the size of the
-// physical address space support on this CPU:
-// 0 == 32 bits, 1 == 36 bits, etc etc
-// 6 and 7 are reserved
-//
-.LPARanges:
-  .byte 32, 36, 40, 42, 44, 48, -1, -1
-
-ASM_FUNCTION_REMOVE_IF_UNREFERENCED
diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ARM/RelocatableVirtHelper.S b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ARM/RelocatableVirtHelper.S
deleted file mode 100644
index f264fa1cf731..000000000000
--- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ARM/RelocatableVirtHelper.S
+++ /dev/null
@@ -1,123 +0,0 @@
-#
-#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-#  Copyright (c) 2014-2016, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#
-
-#include <AsmMacroIoLib.h>
-#include <Library/ArmLib.h>
-
-ASM_FUNC(ArmPlatformPeiBootAction)
-  mov   r11, r14            // preserve LR
-  mov   r10, r0             // preserve DTB pointer
-  mov   r9, r1              // preserve base of image pointer
-
-  //
-  // If we are booting from RAM using the Linux kernel boot protocol, r0 will
-  // point to the DTB image in memory. Otherwise, we are just coming out of
-  // reset, and r0 will be 0.
-  //
-  teq   r0, #0
-  beq   .Lout
-
-  //
-  // The base of the runtime image has been preserved in r1. Check whether
-  // the expected magic number can be found in the header.
-  //
-  ldr   r8, .LArm32LinuxMagic
-  ldr   r7, [r1, #0x24]
-  cmp   r7, r8
-  bne   .Lout
-
-  //
-  //
-  // OK, so far so good. We have confirmed that we likely have a DTB and are
-  // booting via the ARM Linux boot protocol. Update the base-of-image PCD
-  // to the actual relocated value, and add the shift of PcdFdBaseAddress to
-  // PcdFvBaseAddress as well
-  //
-  ADRL  (r8, PcdGet64 (PcdFdBaseAddress))
-  ADRL  (r7, PcdGet64 (PcdFvBaseAddress))
-  ldr   r6, [r8]
-  ldr   r5, [r7]
-  sub   r5, r5, r6
-  add   r5, r5, r1
-  str   r1, [r8]
-  str   r5, [r7]
-
-  //
-  // Discover the memory size and offset from the DTB, and record in the
-  // respective PCDs. This will also return false if a corrupt DTB is
-  // encountered. Since we are calling a C function, use the window at the
-  // beginning of the FD image as a temp stack.
-  //
-  ADRL  (r1, PcdGet64 (PcdSystemMemoryBase))
-  ADRL  (r2, PcdGet64 (PcdSystemMemorySize))
-  mov   sp, r5
-  bl    FindMemnode
-  teq   r0, #0
-  beq   .Lout
-
-  //
-  // Copy the DTB to the slack space right after the 64 byte arm64/Linux style
-  // image header at the base of this image (defined in the FDF), and record the
-  // pointer in PcdDeviceTreeInitialBaseAddress.
-  //
-  ADRL  (r8, PcdGet64 (PcdDeviceTreeInitialBaseAddress))
-  add   r9, r9, #0x40
-  str   r9, [r8]
-
-  mov   r0, r9
-  mov   r1, r10
-  bl    CopyFdt
-
-.Lout:
-  bx    r11
-
-.LArm32LinuxMagic:
-  .byte   0x18, 0x28, 0x6f, 0x01
-
-//UINTN
-//ArmPlatformGetPrimaryCoreMpId (
-//  VOID
-//  );
-ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)
-  MOV32  (r0, FixedPcdGet32 (PcdArmPrimaryCore))
-  bx     lr
-
-//UINTN
-//ArmPlatformIsPrimaryCore (
-//  IN UINTN MpId
-//  );
-ASM_FUNC(ArmPlatformIsPrimaryCore)
-  mov   r0, #1
-  bx    lr
-
-//UINTN
-//ArmPlatformGetCorePosition (
-//  IN UINTN MpId
-//  );
-// With this function: CorePos = (ClusterId * 4) + CoreId
-ASM_FUNC(ArmPlatformGetCorePosition)
-  and   r1, r0, #ARM_CORE_MASK
-  and   r0, r0, #ARM_CLUSTER_MASK
-  add   r0, r1, r0, LSR #6
-  bx    lr
-
-//EFI_PHYSICAL_ADDRESS
-//GetPhysAddrTop (
-//  VOID
-//  );
-ASM_FUNC(ArmGetPhysAddrTop)
-  mov   r0, #0x00000000
-  mov   r1, #0x10000
-  bx    lr
-
diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlatformLib.inf b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlatformLib.inf
deleted file mode 100644
index b8cb24514d4c..000000000000
--- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlatformLib.inf
+++ /dev/null
@@ -1,63 +0,0 @@
-#/* @file
-#  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
-#  Copyright (c) 2014, Linaro Limited. All rights reserved.
-#
-#  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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-#*/
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = ArmXenRelocatablePlatformLib
-  FILE_GUID                      = c8602718-4faa-4119-90ca-cae72509ac4c
-  MODULE_TYPE                    = BASE
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = ArmPlatformLib|SEC PEIM
-
-[Packages]
-  MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
-  EmbeddedPkg/EmbeddedPkg.dec
-  ArmPkg/ArmPkg.dec
-  ArmPlatformPkg/ArmPlatformPkg.dec
-  ArmVirtPkg/ArmVirtPkg.dec
-
-[LibraryClasses]
-  IoLib
-  ArmLib
-  PrintLib
-  FdtLib
-
-[Sources.common]
-  RelocatableVirt.c
-  XenVirtMem.c
-  FdtParser.c
-
-[Sources.AARCH64]
-  AARCH64/RelocatableVirtHelper.S
-
-[Sources.ARM]
-  ARM/RelocatableVirtHelper.S
-
-[FeaturePcd]
-  gEmbeddedTokenSpaceGuid.PcdCacheEnable
-  gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec
-
-[PatchPcd]
-  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress
-  gArmTokenSpaceGuid.PcdFdBaseAddress
-  gArmTokenSpaceGuid.PcdFvBaseAddress
-  gArmTokenSpaceGuid.PcdSystemMemoryBase
-  gArmTokenSpaceGuid.PcdSystemMemorySize
-
-[FixedPcd]
-  gArmPlatformTokenSpaceGuid.PcdCoreCount
-  gArmTokenSpaceGuid.PcdArmPrimaryCoreMask
-  gArmTokenSpaceGuid.PcdArmPrimaryCore
-  gArmTokenSpaceGuid.PcdFdSize
diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c
deleted file mode 100644
index 38fd5d3ed00c..000000000000
--- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2015, Linaro Ltd. All rights reserved.
- *
- * 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
- * http://opensource.org/licenses/bsd-license.php
- *
- * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- */
-
-#include <Uefi.h>
-#include <Include/libfdt.h>
-
-BOOLEAN
-FindMemnode (
-  IN  VOID    *DeviceTreeBlob,
-  OUT UINT64  *SystemMemoryBase,
-  OUT UINT64  *SystemMemorySize
-  )
-{
-  INT32         MemoryNode;
-  INT32         AddressCells;
-  INT32         SizeCells;
-  INT32         Length;
-  CONST INT32   *Prop;
-
-  if (fdt_check_header (DeviceTreeBlob) != 0) {
-    return FALSE;
-  }
-
-  //
-  // Look for a node called "memory" at the lowest level of the tree
-  //
-  MemoryNode = fdt_path_offset (DeviceTreeBlob, "/memory");
-  if (MemoryNode <= 0) {
-    return FALSE;
-  }
-
-  //
-  // Retrieve the #address-cells and #size-cells properties
-  // from the root node, or use the default if not provided.
-  //
-  AddressCells = 1;
-  SizeCells = 1;
-
-  Prop = fdt_getprop (DeviceTreeBlob, 0, "#address-cells", &Length);
-  if (Length == 4) {
-    AddressCells = fdt32_to_cpu (*Prop);
-  }
-
-  Prop = fdt_getprop (DeviceTreeBlob, 0, "#size-cells", &Length);
-  if (Length == 4) {
-    SizeCells = fdt32_to_cpu (*Prop);
-  }
-
-  //
-  // Now find the 'reg' property of the /memory node, and read the first
-  // range listed.
-  //
-  Prop = fdt_getprop (DeviceTreeBlob, MemoryNode, "reg", &Length);
-
-  if (Length < (AddressCells + SizeCells) * sizeof (INT32)) {
-    return FALSE;
-  }
-
-  *SystemMemoryBase = fdt32_to_cpu (Prop[0]);
-  if (AddressCells > 1) {
-    *SystemMemoryBase = (*SystemMemoryBase << 32) | fdt32_to_cpu (Prop[1]);
-  }
-  Prop += AddressCells;
-
-  *SystemMemorySize = fdt32_to_cpu (Prop[0]);
-  if (SizeCells > 1) {
-    *SystemMemorySize = (*SystemMemorySize << 32) | fdt32_to_cpu (Prop[1]);
-  }
-
-  return TRUE;
-}
-
-VOID
-CopyFdt (
-  IN    VOID    *FdtDest,
-  IN    VOID    *FdtSource
-  )
-{
-  CopyMem (FdtDest, FdtSource, fdt_totalsize (FdtSource));
-}
diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/RelocatableVirt.c b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/RelocatableVirt.c
deleted file mode 100644
index 6df207733ab2..000000000000
--- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/RelocatableVirt.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
-*  Copyright (c) 2014, Linaro Limited. All rights reserved.
-*  Copyright (c) 2014, Red Hat, Inc.
-*
-*
-*  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
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#include <Library/IoLib.h>
-#include <Library/ArmPlatformLib.h>
-#include <Library/DebugLib.h>
-#include <Pi/PiBootMode.h>
-
-/**
-  Return the current Boot Mode
-
-  This function returns the boot reason on the platform
-
-  @return   Return the current Boot Mode of the platform
-
-**/
-EFI_BOOT_MODE
-ArmPlatformGetBootMode (
-  VOID
-  )
-{
-  return BOOT_WITH_FULL_CONFIGURATION;
-}
-
-/**
-  This function is called by PrePeiCore, in the SEC phase.
-**/
-RETURN_STATUS
-ArmPlatformInitialize (
-  IN  UINTN                     MpId
-  )
-{
-  //
-  // We are relying on ArmPlatformInitializeSystemMemory () being called from
-  // InitializeMemory (), which only occurs if the following feature is disabled
-  //
-  ASSERT (!FeaturePcdGet (PcdSystemMemoryInitializeInSec));
-  return RETURN_SUCCESS;
-}
-
-VOID
-ArmPlatformInitializeSystemMemory (
-  VOID
-  )
-{
-}
-
-VOID
-ArmPlatformGetPlatformPpiList (
-  OUT UINTN                   *PpiListSize,
-  OUT EFI_PEI_PPI_DESCRIPTOR  **PpiList
-  )
-{
-  *PpiListSize = 0;
-  *PpiList = NULL;
-}
diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/XenVirtMem.c b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/XenVirtMem.c
deleted file mode 100644
index 63090586cf8b..000000000000
--- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/XenVirtMem.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2014, Linaro Limited. All rights reserved.
-*
-*  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
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#include <Library/ArmPlatformLib.h>
-#include <Library/DebugLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/PcdLib.h>
-#include <Library/IoLib.h>
-#include <Library/MemoryAllocationLib.h>
-
-// Number of Virtual Memory Map Descriptors
-#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS          2
-
-// DDR attributes
-#define DDR_ATTRIBUTES_CACHED    ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK
-#define DDR_ATTRIBUTES_UNCACHED  ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED
-
-EFI_PHYSICAL_ADDRESS
-ArmGetPhysAddrTop (
-  VOID
-  );
-
-/**
-  Return the Virtual Memory Map of your platform
-
-  This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU
-  on your platform.
-
-  @param[out]   VirtualMemoryMap    Array of ARM_MEMORY_REGION_DESCRIPTOR
-                                    describing a Physical-to-Virtual Memory
-                                    mapping. This array must be ended by a
-                                    zero-filled entry
-
-**/
-VOID
-ArmPlatformGetVirtualMemoryMap (
-  IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap
-  )
-{
-  ARM_MEMORY_REGION_DESCRIPTOR  *VirtualMemoryTable;
-
-  ASSERT (VirtualMemoryMap != NULL);
-
-  VirtualMemoryTable = AllocatePages (
-                         EFI_SIZE_TO_PAGES (
-                           sizeof (ARM_MEMORY_REGION_DESCRIPTOR)
-                           * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS
-                           )
-                         );
-
-  if (VirtualMemoryTable == NULL) {
-    DEBUG ((EFI_D_ERROR, "%a: Error: Failed AllocatePages()\n", __FUNCTION__));
-    return;
-  }
-
-  //
-  // Map the entire physical memory space as cached. The only device
-  // we care about is the GIC, which will be stage 2 mapped as a device
-  // by the hypervisor, which will override the cached mapping we install
-  // here.
-  //
-  VirtualMemoryTable[0].PhysicalBase = 0x0;
-  VirtualMemoryTable[0].VirtualBase  = 0x0;
-  VirtualMemoryTable[0].Length       = ArmGetPhysAddrTop ();
-  VirtualMemoryTable[0].Attributes   = DDR_ATTRIBUTES_CACHED;
-
-  // End of Table
-  ZeroMem (&VirtualMemoryTable[1], sizeof (ARM_MEMORY_REGION_DESCRIPTOR));
-
-  *VirtualMemoryMap = VirtualMemoryTable;
-}
