public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Pankaj Bansal" <pankaj.bansal@nxp.com>
To: Leif Lindholm <leif@nuviainc.com>,
	Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>,
	Michael D Kinney <michael.d.kinney@intel.com>,
	devel@edk2.groups.io, Varun Sethi <V.Sethi@nxp.com>,
	Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>,
	Jon Nettleton <jon@solid-run.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: [PATCH edk2-platforms v3 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs
Date: Wed, 15 Apr 2020 17:43:33 +0530	[thread overview]
Message-ID: <20200415121342.9246-16-pankaj.bansal@oss.nxp.com> (raw)
In-Reply-To: <20200415121342.9246-1-pankaj.bansal@oss.nxp.com>

From: Pankaj Bansal <pankaj.bansal@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@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


  parent reply	other threads:[~2020-04-14 12:15 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-15 12:13 [PATCH edk2-platforms v3 00/24] Add PEI phase to LS1043ARDB Platform Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 01/24] Silicon/NXP: Add I2c lib Pankaj Bansal
2020-04-22 16:38   ` Leif Lindholm
2020-04-24  6:53     ` Pankaj Bansal
2020-04-24 11:47       ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 02/24] Silicon/NXP: changes to use I2clib in i2cdxe Pankaj Bansal
2020-04-22 16:41   ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 03/24] Silicon/NXP/I2cDxe: Fix I2c Timeout with RTC Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 04/24] Silicon/Maxim: Fix bug in RtcWrite in Ds1307RtcLib Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 05/24] Silicon/Maxim: Add comments " Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 06/24] NXP/LS1043aRdb: Move Soc specific components to soc files Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 07/24] Silicon/NXP: remove print information from Soc lib Pankaj Bansal
2020-04-22 16:51   ` [PATCH edk2-platforms v3 07/24] Silicon/NXP: remove print information from Soc Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 08/24] Silicon/NXP: remove not needed components Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 09/24] Silicon/NXP: Remove unnecessary PCDs Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 10/24] Silicon/NXP: Move dsc file Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 11/24] Platform/NXP: rename the ArmPlatformLib as per ArmPlatformPkg Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 12/24] Silicon/NXP: Move RAM retrieval from SocLib Pankaj Bansal
2020-04-23  9:15   ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 13/24] Platform/NXP/LS1043aRdbPkg: Add Clock retrieval APIs Pankaj Bansal
2020-04-23  9:19   ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 14/24] Silicon/NXP: Use Clock retrieval PPI in modules Pankaj Bansal
2020-04-23  9:25   ` Leif Lindholm
2020-04-15 12:13 ` Pankaj Bansal [this message]
2020-04-23  9:27   ` [PATCH edk2-platforms v3 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs Leif Lindholm
2020-04-23 10:11   ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 16/24] Silicon/NXP: Add Chassis2 Package Pankaj Bansal
2020-04-23 10:27   ` Leif Lindholm
2020-04-23 11:38     ` Pankaj Bansal
2020-04-23 11:57       ` Leif Lindholm
2020-04-23 12:02         ` Pankaj Bansal
2020-04-23 12:05           ` Leif Lindholm
2020-04-23 13:41             ` Pankaj Bansal
2020-04-23 14:18               ` Leif Lindholm
2020-04-23 14:45                 ` Pankaj Bansal
2020-04-23 15:26                   ` Leif Lindholm
2020-04-24  2:42                     ` Pankaj Bansal
2020-04-24 15:51                       ` Leif Lindholm
2020-04-28 17:46                         ` [edk2-devel] " Ard Biesheuvel
2020-04-28 17:50                           ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 17/24] Silicon/NXP/LS1043A: Use ChassisLib from Chassis2 Pkg Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 18/24] Silicon/NXP/LS1043A: Move SocLib to Soc Package Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 19/24] NXP/LS1043aRdbPkg/ArmPlatformLib: Remove extern SocInit Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 20/24] NXP: LS1043aRdbPkg: Use ArmPlatformHelper.S from ArmPlatformPkg Pankaj Bansal
2020-04-23 10:28   ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 21/24] Platform/NXP: Use FV rules from ArmVirtPkg Pankaj Bansal
2020-04-23 10:31   ` Leif Lindholm
2020-04-24  6:24     ` Pankaj Bansal
2020-04-24 11:43       ` Leif Lindholm
2020-04-15 12:13 ` [PATCH edk2-platforms v3 22/24] Platform/NXP/LS1043aRdbPkg: Add VarStore Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 23/24] Silicon/NXP: move MemoryInitPeiLib as per PEIM structures Pankaj Bansal
2020-04-15 12:13 ` [PATCH edk2-platforms v3 24/24] Platform/NXP/LS1043aRdbPkg: Add PEI Phase Pankaj Bansal
2020-04-23 10:33   ` Leif Lindholm
2020-04-22 10:46 ` [PATCH edk2-platforms v3 00/24] Add PEI phase to LS1043ARDB Platform Leif Lindholm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200415121342.9246-16-pankaj.bansal@oss.nxp.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox