[edk2-devel] [PATCH edk2-platforms v3 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs

Pankaj Bansal pankaj.bansal at nxp.com
Wed Apr 15 12:13:33 UTC 2020


From: Pankaj Bansal <pankaj.bansal at nxp.com>

The SwapMmio** APIs are supposed to be called indirectly via
GetMmioOperations** APIs.
Therefore, remove the SwapMmio** APIs from IoAccessLib.h and make
these APIs STATIC to IoAccessLib.c, so that no accidental call can
be made to these.

Signed-off-by: Pankaj Bansal <pankaj.bansal at nxp.com>
---

Notes:
    - New commit

 Silicon/NXP/Include/Library/IoAccessLib.h     | 236 +-------------------
 Silicon/NXP/Library/IoAccessLib/IoAccessLib.c |  17 +-
 Silicon/NXP/Library/SocLib/Chassis.c          |  10 +-
 3 files changed, 22 insertions(+), 241 deletions(-)

diff --git a/Silicon/NXP/Include/Library/IoAccessLib.h b/Silicon/NXP/Include/Library/IoAccessLib.h
index 0b708d544fa7..7b490744382c 100644
--- a/Silicon/NXP/Include/Library/IoAccessLib.h
+++ b/Silicon/NXP/Include/Library/IoAccessLib.h
@@ -1,6 +1,6 @@
 /** @file
  *
- *  Copyright 2017-2019 NXP
+ *  Copyright 2017-2020 NXP
  *
  * SPDX-License-Identifier: BSD-2-Clause-Patent
  *
@@ -89,238 +89,4 @@ GetMmioOperations64  (
   IN  BOOLEAN  Swap
   );
 
-/**
-  MmioRead16 for Big-Endian modules.
-
-  @param  Address The MMIO register to read.
-
-  @return The value read.
-
-**/
-UINT16
-EFIAPI
-SwapMmioRead16 (
-  IN  UINTN     Address
-  );
-
-/**
-  MmioRead32 for Big-Endian modules.
-
-  @param  Address The MMIO register to read.
-
-  @return The value read.
-
-**/
-UINT32
-EFIAPI
-SwapMmioRead32 (
-  IN  UINTN     Address
-  );
-
-/**
-  MmioRead64 for Big-Endian modules.
-
-  @param  Address The MMIO register to read.
-
-  @return The value read.
-
-**/
-UINT64
-EFIAPI
-SwapMmioRead64 (
-  IN  UINTN     Address
-  );
-
-/**
-  MmioWrite16 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  Value   The value to write to the MMIO register.
-
-**/
-UINT16
-EFIAPI
-SwapMmioWrite16 (
-  IN  UINTN     Address,
-  IN  UINT16    Value
-  );
-
-/**
-  MmioWrite32 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  Value   The value to write to the MMIO register.
-
-**/
-UINT32
-EFIAPI
-SwapMmioWrite32 (
-  IN  UINTN     Address,
-  IN  UINT32    Value
-  );
-
-/**
-  MmioWrite64 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  Value   The value to write to the MMIO register.
-
-**/
-UINT64
-EFIAPI
-SwapMmioWrite64 (
-  IN  UINTN     Address,
-  IN  UINT64    Value
-  );
-
-/**
-  MmioAndThenOr16 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  AndData The value to AND with the read value from the MMIO register.
-  @param  OrData  The value to OR with the result of the AND operation.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT16
-EFIAPI
-SwapMmioAndThenOr16 (
-  IN  UINTN     Address,
-  IN  UINT16    AndData,
-  IN  UINT16    OrData
-  );
-
-/**
-  MmioAndThenOr32 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  AndData The value to AND with the read value from the MMIO register.
-  @param  OrData  The value to OR with the result of the AND operation.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT32
-EFIAPI
-SwapMmioAndThenOr32 (
-  IN  UINTN     Address,
-  IN  UINT32    AndData,
-  IN  UINT32    OrData
-  );
-
-/**
-  MmioAndThenOr64 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  AndData The value to AND with the read value from the MMIO register.
-  @param  OrData  The value to OR with the result of the AND operation.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT64
-EFIAPI
-SwapMmioAndThenOr64 (
-  IN  UINTN     Address,
-  IN  UINT64    AndData,
-  IN  UINT64    OrData
-  );
-
-/**
-  MmioOr16 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  OrData  The value to OR with the read value from the MMIO register.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT16
-EFIAPI
-SwapMmioOr16 (
-  IN  UINTN     Address,
-  IN  UINT16    OrData
-  );
-
-/**
-  MmioOr32 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  OrData  The value to OR with the read value from the MMIO register.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT32
-EFIAPI
-SwapMmioOr32 (
-  IN  UINTN     Address,
-  IN  UINT32    OrData
-  );
-
-/**
-  MmioOr64 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  OrData  The value to OR with the read value from the MMIO register.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT64
-EFIAPI
-SwapMmioOr64 (
-  IN  UINTN     Address,
-  IN  UINT64    OrData
-  );
-
-/**
-  MmioAnd16 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  AndData The value to AND with the read value from the MMIO register.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT16
-EFIAPI
-SwapMmioAnd16 (
-  IN  UINTN     Address,
-  IN  UINT16    AndData
-  );
-
-/**
-  MmioAnd32 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  AndData The value to AND with the read value from the MMIO register.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT32
-EFIAPI
-SwapMmioAnd32 (
-  IN  UINTN     Address,
-  IN  UINT32    AndData
-  );
-
-/**
-  MmioAnd64 for Big-Endian modules.
-
-  @param  Address The MMIO register to write.
-  @param  AndData The value to AND with the read value from the MMIO register.
-
-  @return The value written back to the MMIO register.
-
-**/
-UINT64
-EFIAPI
-SwapMmioAnd64 (
-  IN  UINTN     Address,
-  IN  UINT64    AndData
-  );
-
 #endif /* IO_ACCESS_LIB_H_ */
diff --git a/Silicon/NXP/Library/IoAccessLib/IoAccessLib.c b/Silicon/NXP/Library/IoAccessLib/IoAccessLib.c
index 6ed83d019a6e..bb4a93b6f09a 100644
--- a/Silicon/NXP/Library/IoAccessLib/IoAccessLib.c
+++ b/Silicon/NXP/Library/IoAccessLib/IoAccessLib.c
@@ -2,7 +2,7 @@
 
   Provide MMIO APIs for BE modules.
 
-  Copyright 2017-2019 NXP
+  Copyright 2017-2020 NXP
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -21,6 +21,7 @@
   @return The value read.
 
 **/
+STATIC
 UINT16
 EFIAPI
 SwapMmioRead16 (
@@ -38,6 +39,7 @@ SwapMmioRead16 (
   @return The value read.
 
 **/
+STATIC
 UINT32
 EFIAPI
 SwapMmioRead32 (
@@ -55,6 +57,7 @@ SwapMmioRead32 (
   @return The value read.
 
 **/
+STATIC
 UINT64
 EFIAPI
 SwapMmioRead64 (
@@ -71,6 +74,7 @@ SwapMmioRead64 (
   @param  Value   The value to write to the MMIO register.
 
 **/
+STATIC
 UINT16
 EFIAPI
 SwapMmioWrite16 (
@@ -88,6 +92,7 @@ SwapMmioWrite16 (
   @param  Value   The value to write to the MMIO register.
 
 **/
+STATIC
 UINT32
 EFIAPI
 SwapMmioWrite32 (
@@ -105,6 +110,7 @@ SwapMmioWrite32 (
   @param  Value   The value to write to the MMIO register.
 
 **/
+STATIC
 UINT64
 EFIAPI
 SwapMmioWrite64 (
@@ -125,6 +131,7 @@ SwapMmioWrite64 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT16
 EFIAPI
 SwapMmioAndThenOr16 (
@@ -149,6 +156,7 @@ SwapMmioAndThenOr16 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT32
 EFIAPI
 SwapMmioAndThenOr32 (
@@ -173,6 +181,7 @@ SwapMmioAndThenOr32 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT64
 EFIAPI
 SwapMmioAndThenOr64 (
@@ -196,6 +205,7 @@ SwapMmioAndThenOr64 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT16
 EFIAPI
 SwapMmioOr16 (
@@ -215,6 +225,7 @@ SwapMmioOr16 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT32
 EFIAPI
 SwapMmioOr32 (
@@ -234,6 +245,7 @@ SwapMmioOr32 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT64
 EFIAPI
 SwapMmioOr64 (
@@ -253,6 +265,7 @@ SwapMmioOr64 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT16
 EFIAPI
 SwapMmioAnd16 (
@@ -272,6 +285,7 @@ SwapMmioAnd16 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT32
 EFIAPI
 SwapMmioAnd32 (
@@ -291,6 +305,7 @@ SwapMmioAnd32 (
   @return The value written back to the MMIO register.
 
 **/
+STATIC
 UINT64
 EFIAPI
 SwapMmioAnd64 (
diff --git a/Silicon/NXP/Library/SocLib/Chassis.c b/Silicon/NXP/Library/SocLib/Chassis.c
index 90677f0f36ca..d7bc55c9d275 100644
--- a/Silicon/NXP/Library/SocLib/Chassis.c
+++ b/Silicon/NXP/Library/SocLib/Chassis.c
@@ -30,11 +30,11 @@ GurRead (
   IN  UINTN     Address
   )
 {
-  if (FixedPcdGetBool (PcdGurBigEndian)) {
-    return SwapMmioRead32 (Address);
-  } else {
-    return MmioRead32 (Address);
-  }
+  MMIO_OPERATIONS_32  *GurOps;
+
+  GurOps = GetMmioOperations32 (FixedPcdGetBool (PcdGurBigEndian));
+
+  return GurOps->Read32 (Address);
 }
 
 /*
-- 
2.17.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#57321): https://edk2.groups.io/g/devel/message/57321
Mute This Topic: https://groups.io/mt/73008825/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list