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 v4 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs
Date: Fri, 1 May 2020 11:19:46 +0530 [thread overview]
Message-ID: <20200501054955.13025-16-pankaj.bansal@oss.nxp.com> (raw)
In-Reply-To: <20200501054955.13025-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:
V4:
- Use GetMmioOperations in place of GetMmioOperations32
- Use MMIO_OPERATIONS in place of MMIO_OPERATIONS_32
V3:
- 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 0f5b19dcf149..3dbb35d2ce5a 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
*
@@ -47,238 +47,4 @@ GetMmioOperations (
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 33039afda40f..2c6160e8acef 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..05c5462446a4 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 *GurOps;
+
+ GurOps = GetMmioOperations (FixedPcdGetBool (PcdGurBigEndian));
+
+ return GurOps->Read32 (Address);
}
/*
--
2.17.1
next prev parent reply other threads:[~2020-04-30 5:51 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-01 5:49 [PATCH edk2-platforms v4 00/24] Add PEI phase to LS1043ARDB Platform Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 01/24] Silicon/NXP: Add I2c lib Pankaj Bansal
2020-05-05 15:11 ` Leif Lindholm
2020-05-01 5:49 ` [PATCH edk2-platforms v4 02/24] Silicon/NXP: changes to use I2clib in i2cdxe Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 03/24] Silicon/NXP/I2cDxe: Fix I2c Timeout with RTC Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 04/24] Silicon/Maxim: Fix bug in RtcWrite in Ds1307RtcLib Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 05/24] Silicon/Maxim: Add comments " Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 06/24] NXP/LS1043aRdb: Move Soc specific components to soc files Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 07/24] Silicon/NXP: remove print information from Soc lib Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 08/24] Silicon/NXP: remove not needed components Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 09/24] Silicon/NXP: Remove unnecessary PCDs Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 10/24] Silicon/NXP: Move dsc file Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 11/24] Platform/NXP: rename the ArmPlatformLib as per ArmPlatformPkg Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 12/24] Silicon/NXP: Move RAM retrieval from SocLib Pankaj Bansal
2020-05-06 10:44 ` Leif Lindholm
2020-05-07 7:28 ` Pankaj Bansal
2020-05-07 10:15 ` Leif Lindholm
2020-05-08 5:31 ` Pankaj Bansal
2020-05-11 10:27 ` Leif Lindholm
2020-05-01 5:49 ` [PATCH edk2-platforms v4 13/24] Platform/NXP/LS1043aRdbPkg: Add Clock retrieval APIs Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 14/24] Silicon/NXP: Use Clock retrieval PPI in modules Pankaj Bansal
2020-05-01 5:49 ` Pankaj Bansal [this message]
2020-05-06 10:48 ` [PATCH edk2-platforms v4 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs Leif Lindholm
2020-05-01 5:49 ` [PATCH edk2-platforms v4 16/24] Silicon/NXP: Add Chassis2 Package Pankaj Bansal
2020-05-06 10:52 ` Leif Lindholm
2020-05-01 5:49 ` [PATCH edk2-platforms v4 17/24] Silicon/NXP/LS1043A: Use ChassisLib from Chassis2 Pkg Pankaj Bansal
2020-05-06 10:54 ` Leif Lindholm
2020-05-01 5:49 ` [PATCH edk2-platforms v4 18/24] Silicon/NXP/LS1043A: Move SocLib to Soc Package Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 19/24] NXP/LS1043aRdbPkg/ArmPlatformLib: Remove extern SocInit Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 20/24] NXP: LS1043aRdbPkg: Use ArmPlatformHelper.S from ArmPlatformPkg Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 21/24] Platform/NXP: Use FV rules from ArmVirtPkg Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 22/24] Platform/NXP/LS1043aRdbPkg: Add VarStore Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 23/24] Silicon/NXP: move MemoryInitPeiLib as per PEIM structures Pankaj Bansal
2020-05-01 5:49 ` [PATCH edk2-platforms v4 24/24] Platform/NXP/LS1043aRdbPkg: Add PEI Phase Pankaj Bansal
2020-05-06 10:57 ` 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=20200501054955.13025-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