On Fri, May 01, 2020 at 11:19:46 +0530, Pankaj Bansal wrote: > From: Pankaj Bansal <pankaj.ban...@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.ban...@nxp.com>
Reviewed-by: Leif Lindholm <l...@nuviainc.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 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58700): https://edk2.groups.io/g/devel/message/58700 Mute This Topic: https://groups.io/mt/73370135/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-