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> --- 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 (#58382): https://edk2.groups.io/g/devel/message/58382 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] -=-=-=-=-=-=-=-=-=-=-=-