From: "Leif Lindholm" <leif@nuviainc.com>
To: Pankaj Bansal <pankaj.bansal@oss.nxp.com>
Cc: 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: Re: [PATCH edk2-platforms v3 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs
Date: Thu, 23 Apr 2020 10:27:59 +0100 [thread overview]
Message-ID: <20200423092759.GU14075@vanye> (raw)
In-Reply-To: <20200415121342.9246-16-pankaj.bansal@oss.nxp.com>
On Wed, Apr 15, 2020 at 17:43:33 +0530, Pankaj Bansal wrote:
> 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
Thanks!
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
>
> 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
>
next prev parent reply other threads:[~2020-04-23 9:28 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 ` [PATCH edk2-platforms v3 15/24] Silicon: NXP: Remove direct calls to SwapMmio* APIs Pankaj Bansal
2020-04-23 9:27 ` Leif Lindholm [this message]
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=20200423092759.GU14075@vanye \
--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