public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations
@ 2016-09-05 11:06 Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 1/5] ArmPkg/ArmLib: remove NullArmLib Ard Biesheuvel
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-05 11:06 UTC (permalink / raw)
  To: edk2-devel, leif.lindholm, lersek; +Cc: Ard Biesheuvel

Now that the MMU manipulation routines have been moved out of ArmLib into
ArmMmuLib, we are left with the following implementations of ArmLib which
are all identical except for the fact that they target either ARM or AARCH64
but not both.

  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

So implement a new version 'ArmBaseLib' which does target both ARM and AARCH64,
and replace all ArmLib references with ArmBaseLib.

NOTE: this requires changes for existing out of tree users of ArmLib

Ard Biesheuvel (5):
  ArmPkg/ArmLib: remove NullArmLib
  ArmPkg/ArmLib: introduce ArmBaseLib
  ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib
  BeagleBoardPkg EmbeddedPkg Omap35xxPkg: move to ArmBaseLib
  ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib

 ArmPkg/ArmPkg.dsc                                                |  14 +--
 ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf                  |  43 -------
 ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf                |  44 --------
 ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf                  |  40 -------
 ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c         |  75 -------------
 ArmPkg/Library/ArmLib/{AArch64/AArch64Lib.inf => ArmBaseLib.inf} |  39 +++++--
 ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf                         |  52 ---------
 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf                    |  52 ---------
 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf                      |  44 --------
 ArmPkg/Library/ArmLib/Null/NullArmLib.c                          | 117 --------------------
 ArmPkg/Library/ArmLib/Null/NullArmLib.inf                        |  41 -------
 ArmVirtPkg/ArmVirtQemu.dsc                                       |   9 +-
 ArmVirtPkg/ArmVirtQemuKernel.dsc                                 |   6 +-
 ArmVirtPkg/ArmVirtXen.dsc                                        |  12 +-
 BeagleBoardPkg/BeagleBoardPkg.dsc                                |   4 +-
 EmbeddedPkg/EmbeddedPkg.dsc                                      |   7 +-
 Omap35xxPkg/Omap35xxPkg.dsc                                      |   2 +-
 17 files changed, 36 insertions(+), 565 deletions(-)
 delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf
 delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
 delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
 delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c
 rename ArmPkg/Library/ArmLib/{AArch64/AArch64Lib.inf => ArmBaseLib.inf} (50%)
 delete mode 100644 ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
 delete mode 100644 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
 delete mode 100644 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
 delete mode 100644 ArmPkg/Library/ArmLib/Null/NullArmLib.c
 delete mode 100644 ArmPkg/Library/ArmLib/Null/NullArmLib.inf

-- 
2.7.4



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/5] ArmPkg/ArmLib: remove NullArmLib
  2016-09-05 11:06 [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Ard Biesheuvel
@ 2016-09-05 11:06 ` Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 2/5] ArmPkg/ArmLib: introduce ArmBaseLib Ard Biesheuvel
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-05 11:06 UTC (permalink / raw)
  To: edk2-devel, leif.lindholm, lersek; +Cc: Ard Biesheuvel

Remove the NULL instance of ArmLib: it is not currently used, and its
usefulness its dubious.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPkg/ArmPkg.dsc                         |   1 -
 ArmPkg/Library/ArmLib/Null/NullArmLib.c   | 117 --------------------
 ArmPkg/Library/ArmLib/Null/NullArmLib.inf |  41 -------
 3 files changed, 159 deletions(-)

diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index 6f9fc661fbdc..e26ca035f555 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -111,7 +111,6 @@ [Components.common]
   ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
   ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
   ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
-  ArmPkg/Library/ArmLib/Null/NullArmLib.inf
   ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
   ArmPkg/Library/BdsLib/BdsLib.inf
   ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
diff --git a/ArmPkg/Library/ArmLib/Null/NullArmLib.c b/ArmPkg/Library/ArmLib/Null/NullArmLib.c
deleted file mode 100644
index e7e9c52547d7..000000000000
--- a/ArmPkg/Library/ArmLib/Null/NullArmLib.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/** @file
-
-  Copyright (c) 2008 - 2009, 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.
-
-**/
-
-#include <Uefi.h>
-#include <Library/ArmLib.h>
-#include <Library/DebugLib.h>
-
-VOID
-EFIAPI
-ArmCleanInvalidateDataCache (
-  VOID
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmCleanDataCache (
-  VOID
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmInvalidateInstructionCache (
-  VOID
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmInvalidateDataCacheEntryByMVA (
-  IN  UINTN Address
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmCleanDataCacheEntryByMVA (
-  IN  UINTN Address
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmCleanInvalidateDataCacheEntryByMVA (
-  IN  UINTN Address
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmEnableDataCache (
-  VOID
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmDisableDataCache (
-  VOID
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmEnableInstructionCache (
-  VOID
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
-
-VOID
-EFIAPI
-ArmDisableInstructionCache (
-  VOID
-  )
-{
-  // Do not run code using the Null cache library.
-  ASSERT(FALSE);
-}
diff --git a/ArmPkg/Library/ArmLib/Null/NullArmLib.inf b/ArmPkg/Library/ArmLib/Null/NullArmLib.inf
deleted file mode 100644
index 6cfb2c4eac8f..000000000000
--- a/ArmPkg/Library/ArmLib/Null/NullArmLib.inf
+++ /dev/null
@@ -1,41 +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                      = NullArmLib
-  FILE_GUID                      = 00586300-0E06-4790-AC44-86C56ACBB942
-  MODULE_TYPE                    = DXE_DRIVER
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = ArmLib
-
-[Sources.common]
-  ../Common/ArmLib.c
-
-  NullArmLib.c
-
-[Sources.ARM]
-  ../Common/Arm/ArmLibSupport.S    | GCC
-  ../Common/Arm/ArmLibSupport.asm  | RVCT
-
-[Sources.AARCH64]
-  ../Common/AArch64/ArmLibSupport.S
-
-[Packages]
-  ArmPkg/ArmPkg.dec
-  MdePkg/MdePkg.dec
-
-[Protocols]
-  gEfiCpuArchProtocolGuid
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/5] ArmPkg/ArmLib: introduce ArmBaseLib
  2016-09-05 11:06 [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 1/5] ArmPkg/ArmLib: remove NullArmLib Ard Biesheuvel
@ 2016-09-05 11:06 ` Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib Ard Biesheuvel
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-05 11:06 UTC (permalink / raw)
  To: edk2-devel, leif.lindholm, lersek; +Cc: Ard Biesheuvel

Introduce a new ArmLib version ArmBaseLib, which encapsulates the ARM
version ArmV7Lib and the AArch64 version AArch64Lib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPkg/ArmPkg.dsc                    |  1 +
 ArmPkg/Library/ArmLib/ArmBaseLib.inf | 62 ++++++++++++++++++++
 2 files changed, 63 insertions(+)

diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index e26ca035f555..012c5c835f4e 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -86,6 +86,7 @@ [LibraryClasses.common]
 
   IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
 
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
 
 [LibraryClasses.ARM]
diff --git a/ArmPkg/Library/ArmLib/ArmBaseLib.inf b/ArmPkg/Library/ArmLib/ArmBaseLib.inf
new file mode 100644
index 000000000000..670be4d836a5
--- /dev/null
+++ b/ArmPkg/Library/ArmLib/ArmBaseLib.inf
@@ -0,0 +1,62 @@
+#/** @file
+#
+# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
+# Portions copyright (c) 2011 - 2014, ARM Limited. All rights reserved.
+# Copyright (c) 2016, 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.
+#
+#
+#**/
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = ArmBaseLib
+  FILE_GUID                      = f1d943b6-99c5-46d5-af5a-66ec67662700
+  MODULE_TYPE                    = BASE
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = ArmLib
+
+[Sources]
+  Common/ArmLib.c
+
+[Sources.ARM]
+  ArmV7/ArmV7Lib.c
+  ArmV7/ArmV7ArchTimer.c
+
+  ArmV7/ArmLibSupportV7.S         | GCC
+  ArmV7/ArmV7Support.S            | GCC
+  ArmV7/ArmV7ArchTimerSupport.S   | GCC
+  Common/Arm/ArmLibSupport.S      | GCC
+
+  ArmV7/ArmLibSupportV7.asm       | RVCT
+  ArmV7/ArmV7Support.asm          | RVCT
+  ArmV7/ArmV7ArchTimerSupport.asm | RVCT
+  Common/Arm/ArmLibSupport.asm    | RVCT
+
+[Sources.AARCH64]
+  AArch64/AArch64Lib.c
+  AArch64/AArch64ArchTimer.c
+
+  AArch64/ArmLibSupportV8.S
+  AArch64/AArch64Support.S
+  AArch64/AArch64ArchTimerSupport.S
+  Common/AArch64/ArmLibSupport.S
+
+[Packages]
+  ArmPkg/ArmPkg.dec
+  MdePkg/MdePkg.dec
+
+[LibraryClasses]
+  MemoryAllocationLib
+
+[Protocols]
+  gEfiCpuArchProtocolGuid
+
+[FeaturePcd.ARM]
+  gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib
  2016-09-05 11:06 [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 1/5] ArmPkg/ArmLib: remove NullArmLib Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 2/5] ArmPkg/ArmLib: introduce ArmBaseLib Ard Biesheuvel
@ 2016-09-05 11:06 ` Ard Biesheuvel
  2016-09-08  8:19   ` Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 4/5] BeagleBoardPkg EmbeddedPkg Omap35xxPkg: move to ArmBaseLib Ard Biesheuvel
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-05 11:06 UTC (permalink / raw)
  To: edk2-devel, leif.lindholm, lersek; +Cc: Ard Biesheuvel

The various ArmLib flavors are identical in practice, and a new
ArmBaseLib has been introduced that can replace all of them. So replace
all occurrences with ArmBaseLib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmVirtPkg/ArmVirtQemu.dsc       |  9 +--------
 ArmVirtPkg/ArmVirtQemuKernel.dsc |  6 +-----
 ArmVirtPkg/ArmVirtXen.dsc        | 12 +-----------
 3 files changed, 3 insertions(+), 24 deletions(-)

diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
index c503ef243f9a..a3beb4654072 100644
--- a/ArmVirtPkg/ArmVirtQemu.dsc
+++ b/ArmVirtPkg/ArmVirtQemu.dsc
@@ -39,14 +39,13 @@ [Defines]
 !include ArmVirtPkg/ArmVirt.dsc.inc
 
 [LibraryClasses.AARCH64]
-  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
 
 [LibraryClasses.ARM]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
 
 [LibraryClasses.common]
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
 
   # Virtio Support
@@ -75,12 +74,6 @@ [LibraryClasses.common]
 [LibraryClasses.common.UEFI_DRIVER]
   UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
 
-[LibraryClasses.AARCH64.SEC]
-  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
-
-[LibraryClasses.ARM.SEC]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
-
 [BuildOptions]
   RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
   GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index 383d9b7d2c0b..e0dcf4300338 100644
--- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
+++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
@@ -38,17 +38,13 @@ [Defines]
 !include ArmVirtPkg/ArmVirt.dsc.inc
 
 [LibraryClasses.AARCH64]
-  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
 
 [LibraryClasses.ARM]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
 
-[LibraryClasses.ARM.SEC]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
-
 [LibraryClasses.common]
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
 
   # Virtio Support
diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
index 191b615785d3..3422d1e5d996 100644
--- a/ArmVirtPkg/ArmVirtXen.dsc
+++ b/ArmVirtPkg/ArmVirtXen.dsc
@@ -37,17 +37,13 @@ [LibraryClasses]
   XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
 
 [LibraryClasses.AARCH64]
-  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
 
 [LibraryClasses.ARM]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
 
-[LibraryClasses.ARM.SEC]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
-
 [LibraryClasses.common]
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
 
   # Virtio Support
@@ -69,12 +65,6 @@ [LibraryClasses.common]
 [LibraryClasses.common.UEFI_DRIVER]
   UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
 
-[LibraryClasses.AARCH64.SEC]
-  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
-
-[LibraryClasses.ARM.SEC]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
-
 [BuildOptions]
   RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
   GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/5] BeagleBoardPkg EmbeddedPkg Omap35xxPkg: move to ArmBaseLib
  2016-09-05 11:06 [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Ard Biesheuvel
                   ` (2 preceding siblings ...)
  2016-09-05 11:06 ` [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib Ard Biesheuvel
@ 2016-09-05 11:06 ` Ard Biesheuvel
  2016-09-05 11:06 ` [PATCH 5/5] ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib Ard Biesheuvel
  2016-09-05 11:21 ` [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Leif Lindholm
  5 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-05 11:06 UTC (permalink / raw)
  To: edk2-devel, leif.lindholm, lersek; +Cc: Ard Biesheuvel

The various ArmLib flavors are identical in practice, and a new
ArmBaseLib has been introduced that can replace all of them. So replace
all occurrences with ArmBaseLib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 BeagleBoardPkg/BeagleBoardPkg.dsc | 4 +---
 EmbeddedPkg/EmbeddedPkg.dsc       | 7 +------
 Omap35xxPkg/Omap35xxPkg.dsc       | 2 +-
 3 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/BeagleBoardPkg/BeagleBoardPkg.dsc b/BeagleBoardPkg/BeagleBoardPkg.dsc
index b4a645ba9149..e4f229e3bf67 100644
--- a/BeagleBoardPkg/BeagleBoardPkg.dsc
+++ b/BeagleBoardPkg/BeagleBoardPkg.dsc
@@ -32,7 +32,7 @@ [Defines]
 
 
 [LibraryClasses.common]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
   ArmPlatformLib|BeagleBoardPkg/Library/BeagleBoardLib/BeagleBoardLib.inf
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA8Lib/ArmCortexA8Lib.inf
@@ -132,8 +132,6 @@ [LibraryClasses.common]
   FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
 
 [LibraryClasses.common.SEC]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
-
   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
diff --git a/EmbeddedPkg/EmbeddedPkg.dsc b/EmbeddedPkg/EmbeddedPkg.dsc
index a5507ed220d5..cd1f6df06b24 100644
--- a/EmbeddedPkg/EmbeddedPkg.dsc
+++ b/EmbeddedPkg/EmbeddedPkg.dsc
@@ -134,12 +134,7 @@ [LibraryClasses.ARM, LibraryClasses.AARCH64]
   # Add support for GCC stack protector
   NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
 
-[LibraryClasses.ARM]
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
-
-[LibraryClasses.AARCH64]
-  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
-
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
 
 ################################################################################
 #
diff --git a/Omap35xxPkg/Omap35xxPkg.dsc b/Omap35xxPkg/Omap35xxPkg.dsc
index f3366cabe8a1..11259191e1aa 100644
--- a/Omap35xxPkg/Omap35xxPkg.dsc
+++ b/Omap35xxPkg/Omap35xxPkg.dsc
@@ -33,7 +33,7 @@ [Defines]
 [LibraryClasses.common]
   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
 
-  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
+  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
 
   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 5/5] ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib
  2016-09-05 11:06 [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Ard Biesheuvel
                   ` (3 preceding siblings ...)
  2016-09-05 11:06 ` [PATCH 4/5] BeagleBoardPkg EmbeddedPkg Omap35xxPkg: move to ArmBaseLib Ard Biesheuvel
@ 2016-09-05 11:06 ` Ard Biesheuvel
  2016-09-05 11:21 ` [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Leif Lindholm
  5 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-05 11:06 UTC (permalink / raw)
  To: edk2-devel, leif.lindholm, lersek; +Cc: Ard Biesheuvel

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>
---
 ArmPkg/ArmPkg.dsc                                        | 12 ----
 ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf             | 43 -----------
 ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf          | 43 -----------
 ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf        | 44 ------------
 ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf          | 40 -----------
 ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c | 75 --------------------
 ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf                 | 52 --------------
 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf            | 52 --------------
 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf              | 44 ------------
 9 files changed, 405 deletions(-)

diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index 012c5c835f4e..6a8ff7e621d7 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -89,12 +89,6 @@ [LibraryClasses.common]
   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 @@ [Components.ARM]
   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 f0de4aa7dfb4..000000000000
--- 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 c8f0b97750d4..000000000000
--- 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 e41ef0815581..000000000000
--- 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 302c09af49dd..000000000000
--- 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 2de9c7c54ed9..000000000000
--- 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 024784d19e75..000000000000
--- 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 5710f5044c8c..000000000000
--- 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 5ed325d4ad69..000000000000
--- 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
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations
  2016-09-05 11:06 [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Ard Biesheuvel
                   ` (4 preceding siblings ...)
  2016-09-05 11:06 ` [PATCH 5/5] ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib Ard Biesheuvel
@ 2016-09-05 11:21 ` Leif Lindholm
  2016-09-08  9:41   ` Ard Biesheuvel
  5 siblings, 1 reply; 11+ messages in thread
From: Leif Lindholm @ 2016-09-05 11:21 UTC (permalink / raw)
  To: Ard Biesheuvel; +Cc: edk2-devel, lersek

On Mon, Sep 05, 2016 at 12:06:01PM +0100, Ard Biesheuvel wrote:
> Now that the MMU manipulation routines have been moved out of ArmLib into
> ArmMmuLib, we are left with the following implementations of ArmLib which
> are all identical except for the fact that they target either ARM or AARCH64
> but not both.
> 
>   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
> 
> So implement a new version 'ArmBaseLib' which does target both ARM and AARCH64,
> and replace all ArmLib references with ArmBaseLib.
> 
> NOTE: this requires changes for existing out of tree users of ArmLib

I like this one. However, given the invasiveness, I would quite like
to see a couple of Tested-by:s for out-of-tree platforms. With that:
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

> Ard Biesheuvel (5):
>   ArmPkg/ArmLib: remove NullArmLib
>   ArmPkg/ArmLib: introduce ArmBaseLib
>   ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib
>   BeagleBoardPkg EmbeddedPkg Omap35xxPkg: move to ArmBaseLib
>   ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib
> 
>  ArmPkg/ArmPkg.dsc                                                |  14 +--
>  ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf                  |  43 -------
>  ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf                |  44 --------
>  ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf                  |  40 -------
>  ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c         |  75 -------------
>  ArmPkg/Library/ArmLib/{AArch64/AArch64Lib.inf => ArmBaseLib.inf} |  39 +++++--
>  ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf                         |  52 ---------
>  ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf                    |  52 ---------
>  ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf                      |  44 --------
>  ArmPkg/Library/ArmLib/Null/NullArmLib.c                          | 117 --------------------
>  ArmPkg/Library/ArmLib/Null/NullArmLib.inf                        |  41 -------
>  ArmVirtPkg/ArmVirtQemu.dsc                                       |   9 +-
>  ArmVirtPkg/ArmVirtQemuKernel.dsc                                 |   6 +-
>  ArmVirtPkg/ArmVirtXen.dsc                                        |  12 +-
>  BeagleBoardPkg/BeagleBoardPkg.dsc                                |   4 +-
>  EmbeddedPkg/EmbeddedPkg.dsc                                      |   7 +-
>  Omap35xxPkg/Omap35xxPkg.dsc                                      |   2 +-
>  17 files changed, 36 insertions(+), 565 deletions(-)
>  delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64LibPei.inf
>  delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
>  delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
>  delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64PeiLibConstructor.c
>  rename ArmPkg/Library/ArmLib/{AArch64/AArch64Lib.inf => ArmBaseLib.inf} (50%)
>  delete mode 100644 ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>  delete mode 100644 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
>  delete mode 100644 ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
>  delete mode 100644 ArmPkg/Library/ArmLib/Null/NullArmLib.c
>  delete mode 100644 ArmPkg/Library/ArmLib/Null/NullArmLib.inf
> 
> -- 
> 2.7.4
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib
  2016-09-05 11:06 ` [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib Ard Biesheuvel
@ 2016-09-08  8:19   ` Ard Biesheuvel
  2016-09-08  8:49     ` Laszlo Ersek
  0 siblings, 1 reply; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-08  8:19 UTC (permalink / raw)
  To: edk2-devel-01, Leif Lindholm, Laszlo Ersek; +Cc: Ard Biesheuvel

On 5 September 2016 at 12:06, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> The various ArmLib flavors are identical in practice, and a new
> ArmBaseLib has been introduced that can replace all of them. So replace
> all occurrences with ArmBaseLib.
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  ArmVirtPkg/ArmVirtQemu.dsc       |  9 +--------
>  ArmVirtPkg/ArmVirtQemuKernel.dsc |  6 +-----
>  ArmVirtPkg/ArmVirtXen.dsc        | 12 +-----------
>  3 files changed, 3 insertions(+), 24 deletions(-)
>
> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
> index c503ef243f9a..a3beb4654072 100644
> --- a/ArmVirtPkg/ArmVirtQemu.dsc
> +++ b/ArmVirtPkg/ArmVirtQemu.dsc
> @@ -39,14 +39,13 @@ [Defines]
>  !include ArmVirtPkg/ArmVirt.dsc.inc
>
>  [LibraryClasses.AARCH64]
> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>
>  [LibraryClasses.ARM]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>
>  [LibraryClasses.common]
> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>
>    # Virtio Support
> @@ -75,12 +74,6 @@ [LibraryClasses.common]
>  [LibraryClasses.common.UEFI_DRIVER]
>    UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
>
> -[LibraryClasses.AARCH64.SEC]
> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
> -
> -[LibraryClasses.ARM.SEC]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
> -
>  [BuildOptions]
>    RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
>    GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
> diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
> index 383d9b7d2c0b..e0dcf4300338 100644
> --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
> +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
> @@ -38,17 +38,13 @@ [Defines]
>  !include ArmVirtPkg/ArmVirt.dsc.inc
>
>  [LibraryClasses.AARCH64]
> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>
>  [LibraryClasses.ARM]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>
> -[LibraryClasses.ARM.SEC]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
> -
>  [LibraryClasses.common]
> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>
>    # Virtio Support
> diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
> index 191b615785d3..3422d1e5d996 100644
> --- a/ArmVirtPkg/ArmVirtXen.dsc
> +++ b/ArmVirtPkg/ArmVirtXen.dsc
> @@ -37,17 +37,13 @@ [LibraryClasses]
>    XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
>
>  [LibraryClasses.AARCH64]
> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>
>  [LibraryClasses.ARM]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>
> -[LibraryClasses.ARM.SEC]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
> -
>  [LibraryClasses.common]
> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>
>    # Virtio Support
> @@ -69,12 +65,6 @@ [LibraryClasses.common]
>  [LibraryClasses.common.UEFI_DRIVER]
>    UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
>
> -[LibraryClasses.AARCH64.SEC]
> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
> -
> -[LibraryClasses.ARM.SEC]
> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
> -
>  [BuildOptions]
>    RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
>    GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
> --
> 2.7.4
>

Laszlo,

Any objections?

Thanks,
Ard.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib
  2016-09-08  8:19   ` Ard Biesheuvel
@ 2016-09-08  8:49     ` Laszlo Ersek
  2016-09-08  8:50       ` Ard Biesheuvel
  0 siblings, 1 reply; 11+ messages in thread
From: Laszlo Ersek @ 2016-09-08  8:49 UTC (permalink / raw)
  To: Ard Biesheuvel, edk2-devel-01, Leif Lindholm

On 09/08/16 10:19, Ard Biesheuvel wrote:
> On 5 September 2016 at 12:06, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>> The various ArmLib flavors are identical in practice, and a new
>> ArmBaseLib has been introduced that can replace all of them. So replace
>> all occurrences with ArmBaseLib.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> ---
>>  ArmVirtPkg/ArmVirtQemu.dsc       |  9 +--------
>>  ArmVirtPkg/ArmVirtQemuKernel.dsc |  6 +-----
>>  ArmVirtPkg/ArmVirtXen.dsc        | 12 +-----------
>>  3 files changed, 3 insertions(+), 24 deletions(-)
>>
>> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
>> index c503ef243f9a..a3beb4654072 100644
>> --- a/ArmVirtPkg/ArmVirtQemu.dsc
>> +++ b/ArmVirtPkg/ArmVirtQemu.dsc
>> @@ -39,14 +39,13 @@ [Defines]
>>  !include ArmVirtPkg/ArmVirt.dsc.inc
>>
>>  [LibraryClasses.AARCH64]
>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>>
>>  [LibraryClasses.ARM]
>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>>
>>  [LibraryClasses.common]
>> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>>
>>    # Virtio Support
>> @@ -75,12 +74,6 @@ [LibraryClasses.common]
>>  [LibraryClasses.common.UEFI_DRIVER]
>>    UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
>>
>> -[LibraryClasses.AARCH64.SEC]
>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
>> -
>> -[LibraryClasses.ARM.SEC]
>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
>> -
>>  [BuildOptions]
>>    RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
>>    GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
>> diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
>> index 383d9b7d2c0b..e0dcf4300338 100644
>> --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
>> +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
>> @@ -38,17 +38,13 @@ [Defines]
>>  !include ArmVirtPkg/ArmVirt.dsc.inc
>>
>>  [LibraryClasses.AARCH64]
>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>>
>>  [LibraryClasses.ARM]
>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>>
>> -[LibraryClasses.ARM.SEC]
>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
>> -
>>  [LibraryClasses.common]
>> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>>
>>    # Virtio Support
>> diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
>> index 191b615785d3..3422d1e5d996 100644
>> --- a/ArmVirtPkg/ArmVirtXen.dsc
>> +++ b/ArmVirtPkg/ArmVirtXen.dsc
>> @@ -37,17 +37,13 @@ [LibraryClasses]
>>    XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
>>
>>  [LibraryClasses.AARCH64]
>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>>
>>  [LibraryClasses.ARM]
>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>>
>> -[LibraryClasses.ARM.SEC]
>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
>> -
>>  [LibraryClasses.common]
>> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>>
>>    # Virtio Support
>> @@ -69,12 +65,6 @@ [LibraryClasses.common]
>>  [LibraryClasses.common.UEFI_DRIVER]
>>    UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
>>
>> -[LibraryClasses.AARCH64.SEC]
>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
>> -
>> -[LibraryClasses.ARM.SEC]
>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
>> -
>>  [BuildOptions]
>>    RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
>>    GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
>> --
>> 2.7.4
>>
> 
> Laszlo,
> 
> Any objections?
> 
> Thanks,
> Ard.
> 

I guess I could verify the coverage with a "git grep", but I'm pretty
sure that's what you used anyway, for locating what needed to be
replaced. What I see in the patch looks good. So,

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

Sorry about missing this.

Laszlo


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib
  2016-09-08  8:49     ` Laszlo Ersek
@ 2016-09-08  8:50       ` Ard Biesheuvel
  0 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-08  8:50 UTC (permalink / raw)
  To: Laszlo Ersek; +Cc: edk2-devel-01, Leif Lindholm

On 8 September 2016 at 09:49, Laszlo Ersek <lersek@redhat.com> wrote:
> On 09/08/16 10:19, Ard Biesheuvel wrote:
>> On 5 September 2016 at 12:06, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
>>> The various ArmLib flavors are identical in practice, and a new
>>> ArmBaseLib has been introduced that can replace all of them. So replace
>>> all occurrences with ArmBaseLib.
>>>
>>> Contributed-under: TianoCore Contribution Agreement 1.0
>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>> ---
>>>  ArmVirtPkg/ArmVirtQemu.dsc       |  9 +--------
>>>  ArmVirtPkg/ArmVirtQemuKernel.dsc |  6 +-----
>>>  ArmVirtPkg/ArmVirtXen.dsc        | 12 +-----------
>>>  3 files changed, 3 insertions(+), 24 deletions(-)
>>>
>>> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
>>> index c503ef243f9a..a3beb4654072 100644
>>> --- a/ArmVirtPkg/ArmVirtQemu.dsc
>>> +++ b/ArmVirtPkg/ArmVirtQemu.dsc
>>> @@ -39,14 +39,13 @@ [Defines]
>>>  !include ArmVirtPkg/ArmVirt.dsc.inc
>>>
>>>  [LibraryClasses.AARCH64]
>>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>>>
>>>  [LibraryClasses.ARM]
>>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>>>
>>>  [LibraryClasses.common]
>>> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>>>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>>>
>>>    # Virtio Support
>>> @@ -75,12 +74,6 @@ [LibraryClasses.common]
>>>  [LibraryClasses.common.UEFI_DRIVER]
>>>    UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
>>>
>>> -[LibraryClasses.AARCH64.SEC]
>>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
>>> -
>>> -[LibraryClasses.ARM.SEC]
>>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
>>> -
>>>  [BuildOptions]
>>>    RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
>>>    GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
>>> diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
>>> index 383d9b7d2c0b..e0dcf4300338 100644
>>> --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc
>>> +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc
>>> @@ -38,17 +38,13 @@ [Defines]
>>>  !include ArmVirtPkg/ArmVirt.dsc.inc
>>>
>>>  [LibraryClasses.AARCH64]
>>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>>>
>>>  [LibraryClasses.ARM]
>>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>>>
>>> -[LibraryClasses.ARM.SEC]
>>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
>>> -
>>>  [LibraryClasses.common]
>>> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>>>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>>>
>>>    # Virtio Support
>>> diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc
>>> index 191b615785d3..3422d1e5d996 100644
>>> --- a/ArmVirtPkg/ArmVirtXen.dsc
>>> +++ b/ArmVirtPkg/ArmVirtXen.dsc
>>> @@ -37,17 +37,13 @@ [LibraryClasses]
>>>    XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
>>>
>>>  [LibraryClasses.AARCH64]
>>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>>>
>>>  [LibraryClasses.ARM]
>>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
>>>    ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
>>>
>>> -[LibraryClasses.ARM.SEC]
>>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
>>> -
>>>  [LibraryClasses.common]
>>> +  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
>>>    ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>>>
>>>    # Virtio Support
>>> @@ -69,12 +65,6 @@ [LibraryClasses.common]
>>>  [LibraryClasses.common.UEFI_DRIVER]
>>>    UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
>>>
>>> -[LibraryClasses.AARCH64.SEC]
>>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
>>> -
>>> -[LibraryClasses.ARM.SEC]
>>> -  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
>>> -
>>>  [BuildOptions]
>>>    RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
>>>    GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
>>> --
>>> 2.7.4
>>>
>>
>> Laszlo,
>>
>> Any objections?
>>
>> Thanks,
>> Ard.
>>
>
> I guess I could verify the coverage with a "git grep", but I'm pretty
> sure that's what you used anyway, for locating what needed to be
> replaced. What I see in the patch looks good. So,
>
> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
>

Thanks

> Sorry about missing this.
>

No worries!


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations
  2016-09-05 11:21 ` [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Leif Lindholm
@ 2016-09-08  9:41   ` Ard Biesheuvel
  0 siblings, 0 replies; 11+ messages in thread
From: Ard Biesheuvel @ 2016-09-08  9:41 UTC (permalink / raw)
  To: Leif Lindholm; +Cc: edk2-devel-01, Laszlo Ersek

On 5 September 2016 at 12:21, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Mon, Sep 05, 2016 at 12:06:01PM +0100, Ard Biesheuvel wrote:
>> Now that the MMU manipulation routines have been moved out of ArmLib into
>> ArmMmuLib, we are left with the following implementations of ArmLib which
>> are all identical except for the fact that they target either ARM or AARCH64
>> but not both.
>>
>>   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
>>
>> So implement a new version 'ArmBaseLib' which does target both ARM and AARCH64,
>> and replace all ArmLib references with ArmBaseLib.
>>
>> NOTE: this requires changes for existing out of tree users of ArmLib
>
> I like this one. However, given the invasiveness, I would quite like
> to see a couple of Tested-by:s for out-of-tree platforms. With that:
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>

As discussed off-ML, pushed as

2ede1ac0cc74 ArmPkg/ArmLib: remove NullArmLib
c52c592a0318 ArmPkg/ArmLib: introduce ArmBaseLib
4af5227cdefb BeagleBoardPkg EmbeddedPkg Omap35xxPkg: move to ArmBaseLib
550eaa4a76fc ArmVirtPkg: replace all ArmLib resolutions with ArmBaseLib
2bdf3f2ca78e ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib

I will follow up with a couple of cleanup patches


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-09-08  9:41 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-05 11:06 [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Ard Biesheuvel
2016-09-05 11:06 ` [PATCH 1/5] ArmPkg/ArmLib: remove NullArmLib Ard Biesheuvel
2016-09-05 11:06 ` [PATCH 2/5] ArmPkg/ArmLib: introduce ArmBaseLib Ard Biesheuvel
2016-09-05 11:06 ` [PATCH 3/5] ArmVirtPkg: remove all ArmLib resolutions with ArmBaseLib Ard Biesheuvel
2016-09-08  8:19   ` Ard Biesheuvel
2016-09-08  8:49     ` Laszlo Ersek
2016-09-08  8:50       ` Ard Biesheuvel
2016-09-05 11:06 ` [PATCH 4/5] BeagleBoardPkg EmbeddedPkg Omap35xxPkg: move to ArmBaseLib Ard Biesheuvel
2016-09-05 11:06 ` [PATCH 5/5] ArmPkg/ArmLib: remove all ArmLib flavors except ArmBaseLib Ard Biesheuvel
2016-09-05 11:21 ` [PATCH 0/5] ArmPkg ArmVirtPkg etc: consolidate ArmLib implementations Leif Lindholm
2016-09-08  9:41   ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox