ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib

This removes the following ArmLib implementation, which were, apart from
the fact that they targeted either ARM or AARCH64, fully identical:

  ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
  ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf
  ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
  ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
  ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
  ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
  ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf

Only ArmBaseLib remains, which can fulfil the dependencies upon each of
the listed flavors.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index 012c5c8..6a8ff7e 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -89,12 +89,6 @@
   ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf

   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf

 

-[LibraryClasses.ARM]

-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf

-

-[LibraryClasses.AARCH64]

-  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf

-

 [LibraryClasses.common.PEIM]

   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf

   PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf

@@ -154,12 +148,6 @@
   ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf

   ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf

 

-  ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf

-  ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf

-

 [Components.AARCH64]

   ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf

   ArmPkg/Drivers/ArmCpuLib/ArmCortexA5xLib/ArmCortexA5xLib.inf

-

-  ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf

-  ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf

diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf b/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
deleted file mode 100644
index f0de4aa..0000000
--- a/ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
+++ /dev/null
@@ -1,43 +0,0 @@
-#/** @file

-#

-# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>

-# Portions copyright (c) 2011 - 2014, ARM 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                      = AArch64Lib

-  FILE_GUID                      = ef20ddf5-b334-47b3-94cf-52ff44c29138

-  MODULE_TYPE                    = BASE

-  VERSION_STRING                 = 1.0

-  LIBRARY_CLASS                  = ArmLib

-

-[Sources.AARCH64]

-  AArch64Lib.c

-  AArch64ArchTimer.c

-  ArmLibSupportV8.S

-  AArch64Support.S

-  AArch64ArchTimerSupport.S

-

-  ../Common/AArch64/ArmLibSupport.S

-  ../Common/ArmLib.c

-

-[Packages]

-  ArmPkg/ArmPkg.dec

-  MdePkg/MdePkg.dec

-

-[LibraryClasses]

-  MemoryAllocationLib

-  CacheMaintenanceLib

-

-[Protocols]

-  gEfiCpuArchProtocolGuid

diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf b/ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf
deleted file mode 100644
index c8f0b97..0000000
--- a/ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf
+++ /dev/null
@@ -1,43 +0,0 @@
-#/** @file

-#

-# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>

-# Portions copyright (c) 2011 - 2014, ARM 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                      = AArch64Lib

-  FILE_GUID                      = ef20ddf5-b334-47b3-94cf-52ff44c29138

-  MODULE_TYPE                    = PEIM

-  VERSION_STRING                 = 1.0

-  LIBRARY_CLASS                  = ArmLib|PEIM PEI_CORE

-  CONSTRUCTOR                    = AArch64LibConstructor

-

-[Sources.AARCH64]

-  AArch64Lib.c

-  AArch64Mmu.c

-  AArch64ArchTimer.c

-  ArmLibSupportV8.S

-  AArch64Support.S

-  AArch64ArchTimerSupport.S

-

-  ../Common/AArch64/ArmLibSupport.S

-  ../Common/ArmLib.c

-  AArch64PeiLibConstructor.c

-

-[Packages]

-  ArmPkg/ArmPkg.dec

-  MdePkg/MdePkg.dec

-

-[LibraryClasses]

-  MemoryAllocationLib

-  CacheMaintenanceLib

diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf b/ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
deleted file mode 100644
index e41ef08..0000000
--- a/ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
+++ /dev/null
@@ -1,44 +0,0 @@
-#/** @file

-#

-#  Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>

-#  Portions copyright (c) 2011-2013, ARM Ltd. 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

-#  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                      = AArch64LibPrePi

-  FILE_GUID                      = fd72688d-dbd8-4cf2-91a3-15171dea7816

-  MODULE_TYPE                    = BASE

-  VERSION_STRING                 = 1.0

-  LIBRARY_CLASS                  = ArmLib

-

-[Sources.common]

-  ArmLibSupportV8.S

-  AArch64Support.S

-

-  ../Common/AArch64/ArmLibSupport.S

-  ../Common/ArmLib.c

-

-  AArch64Lib.c

-

-  AArch64ArchTimer.c

-  AArch64ArchTimerSupport.S

-

-[Packages]

-  ArmPkg/ArmPkg.dec

-  MdePkg/MdePkg.dec

-

-[LibraryClasses]

-  PrePiLib

-

-[Protocols]

-  gEfiCpuArchProtocolGuid

diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf b/ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
deleted file mode 100644
index 302c09a..0000000
--- a/ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
+++ /dev/null
@@ -1,40 +0,0 @@
-#/* @file

-#

-#  Copyright (c) 2011-2014, ARM 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                      = AArch64Lib

-  FILE_GUID                      = eb7441e4-3ddf-48b8-a009-14f428b19e49

-  MODULE_TYPE                    = BASE

-  VERSION_STRING                 = 1.0

-  LIBRARY_CLASS                  = ArmLib

-

-[Sources.common]

-  ArmLibSupportV8.S

-  AArch64Support.S

-

-  ../Common/AArch64/ArmLibSupport.S

-  ../Common/ArmLib.c

-

-  AArch64Lib.c

-

-  AArch64ArchTimer.c

-  AArch64ArchTimerSupport.S

-

-[Packages]

-  ArmPkg/ArmPkg.dec

-  MdePkg/MdePkg.dec

-

-[Protocols]

-  gEfiCpuArchProtocolGuid

diff --git a/ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c b/ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c
deleted file mode 100644
index 2de9c7c..0000000
--- a/ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#/* @file

-#

-#  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 <Base.h>

-

-#include <Library/ArmLib.h>

-#include <Library/CacheMaintenanceLib.h>

-#include <Library/DebugLib.h>

-

-//

-// This is a hack. We define a weak symbol with external linkage, which may or

-// may not be overridden by a non-weak alternative that is defined with a non

-// zero value in the object that contains the MMU routines. Since static

-// libraries are pulled in on a per-object basis, and since the MMU object will

-// only be pulled in if any of its other symbols are referenced by the client

-// module, we can use the value below to figure out whether the MMU routines are

-// in use by this module, and decide whether cache maintenance of the function

-// ArmReplaceLiveTranslationEntry () is required.

-//

-INT32 __attribute__((weak)) HaveMmuRoutines;

-

-EFI_STATUS

-EFIAPI

-AArch64LibConstructor (

-  IN       EFI_PEI_FILE_HANDLE       FileHandle,

-  IN CONST EFI_PEI_SERVICES          **PeiServices

-  )

-{

-  extern UINT32             ArmReplaceLiveTranslationEntrySize;

-

-  EFI_FV_FILE_INFO          FileInfo;

-  EFI_STATUS                Status;

-

-  if (HaveMmuRoutines == 0) {

-    return RETURN_SUCCESS;

-  }

-

-  ASSERT (FileHandle != NULL);

-

-  Status = (*PeiServices)->FfsGetFileInfo (FileHandle, &FileInfo);

-  ASSERT_EFI_ERROR (Status);

-

-  //

-  // Some platforms do not cope very well with cache maintenance being

-  // performed on regions backed by NOR flash. Since the cache maintenance

-  // is unnecessary to begin with in that case, perform it only when not

-  // executing in place.

-  //

-  if ((UINTN)FileInfo.Buffer <= (UINTN)ArmReplaceLiveTranslationEntry &&

-      ((UINTN)FileInfo.Buffer + FileInfo.BufferSize >=

-       (UINTN)ArmReplaceLiveTranslationEntry + ArmReplaceLiveTranslationEntrySize)) {

-    DEBUG ((EFI_D_INFO, "ArmLib: skipping cache maintence on XIP PEIM\n"));

-  } else {

-    DEBUG ((EFI_D_INFO, "ArmLib: performing cache maintence on shadowed PEIM\n"));

-    //

-    // The ArmReplaceLiveTranslationEntry () helper function may be invoked

-    // with the MMU off so we have to ensure that it gets cleaned to the PoC

-    //

-    WriteBackDataCacheRange (ArmReplaceLiveTranslationEntry,

-      ArmReplaceLiveTranslationEntrySize);

-  }

-

-  return RETURN_SUCCESS;

-}

diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf b/ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
deleted file mode 100644
index 024784d..0000000
--- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
+++ /dev/null
@@ -1,52 +0,0 @@
-#/** @file

-#

-# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>

-# Copyright (c) 2011, ARM 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                      = ArmV7Lib

-  FILE_GUID                      = 411cdfd8-f964-4b9d-a3e3-1719a9c15559

-  MODULE_TYPE                    = DXE_DRIVER

-  VERSION_STRING                 = 1.0

-  LIBRARY_CLASS                  = ArmLib

-

-[Sources.common]

-  ArmLibSupportV7.S    | GCC

-  ArmLibSupportV7.asm  | RVCT

-

-  ../Common/Arm/ArmLibSupport.S    | GCC

-  ../Common/Arm/ArmLibSupport.asm  | RVCT

-  ../Common/ArmLib.c

-

-  ArmV7Support.S    | GCC

-  ArmV7Support.asm  | RVCT

-

-  ArmV7Lib.c

-

-  ArmV7ArchTimer.c

-  ArmV7ArchTimerSupport.S    | GCC

-  ArmV7ArchTimerSupport.asm    | RVCT

-

-[Packages]

-  ArmPkg/ArmPkg.dec

-  MdePkg/MdePkg.dec

-

-[LibraryClasses]

-  MemoryAllocationLib

-

-[Protocols]

-  gEfiCpuArchProtocolGuid

-

-[FeaturePcd.ARM]

-  gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride

diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf b/ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
deleted file mode 100644
index 5710f50..0000000
--- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
+++ /dev/null
@@ -1,52 +0,0 @@
-#/** @file

-# Semihosting  serail port lib

-#

-# Copyright (c) 2008 - 2010, Apple Inc. 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

-#  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                      = ArmV7LibPrePi

-  FILE_GUID                      = A150FA0C-F4E8-4207-9BEB-CD6DFB430D73

-  MODULE_TYPE                    = BASE

-  VERSION_STRING                 = 1.0

-  LIBRARY_CLASS                  = ArmLib

-

-[Sources.common]

-  ArmLibSupportV7.S    | GCC

-  ArmLibSupportV7.asm  | RVCT

-

-  ../Common/Arm/ArmLibSupport.S    | GCC

-  ../Common/Arm/ArmLibSupport.asm  | RVCT

-  ../Common/ArmLib.c

-

-  ArmV7Support.S    | GCC

-  ArmV7Support.asm  | RVCT

-

-  ArmV7Lib.c

-

-  ArmV7ArchTimer.c

-  ArmV7ArchTimerSupport.S    | GCC

-  ArmV7ArchTimerSupport.asm  | RVCT

-

-[Packages]

-  ArmPkg/ArmPkg.dec

-  MdePkg/MdePkg.dec

-

-[LibraryClasses]

-  PrePiLib

-

-[Protocols]

-  gEfiCpuArchProtocolGuid

-

-[FeaturePcd.ARM]

-  gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride

diff --git a/ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf b/ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
deleted file mode 100644
index 5ed325d..0000000
--- a/ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
+++ /dev/null
@@ -1,44 +0,0 @@
-#/* @file

-#  Copyright (c) 2011-2015, ARM 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                      = ArmV7LibSec

-  FILE_GUID                      = addd46ad-156a-4309-b134-46a1b14a61bf

-  MODULE_TYPE                    = BASE

-  VERSION_STRING                 = 1.0

-  LIBRARY_CLASS                  = ArmLib

-

-[Sources.common]

-  ArmLibSupportV7.S    | GCC

-  ArmLibSupportV7.asm  | RVCT

-

-  ../Common/Arm/ArmLibSupport.S    | GCC

-  ../Common/Arm/ArmLibSupport.asm  | RVCT

-  ../Common/ArmLib.c

-

-  ArmV7Support.S    | GCC

-  ArmV7Support.asm  | RVCT

-

-  ArmV7Lib.c

-

-  ArmV7ArchTimer.c

-  ArmV7ArchTimerSupport.S    | GCC

-  ArmV7ArchTimerSupport.asm    | RVCT

-

-[Packages]

-  ArmPkg/ArmPkg.dec

-  MdePkg/MdePkg.dec

-

-[Protocols]

-  gEfiCpuArchProtocolGuid