From: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
To: Leif Lindholm <leif.lindholm@linaro.org>
Cc: "ard.biesheuvel@linaro.org" <ard.biesheuvel@linaro.org>,
"michael.d.kinney@intel.com" <michael.d.kinney@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
Udit Kumar <udit.kumar@nxp.com>, Varun Sethi <V.Sethi@nxp.com>
Subject: Re: [PATCH v2 1/9] Platform/NXP: Add support for Big Endian Mmio APIs
Date: Mon, 27 Nov 2017 05:08:48 +0000 [thread overview]
Message-ID: <VI1PR04MB1005A6A6C97BDF34B27A0D7B8E250@VI1PR04MB1005.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20171126154849.s3npgw3t4cz5bkpm@bivouac.eciton.net>
Hi Leif,
I forgot to attach a cover letter for v2, sent v3 with cover letter and added --subject-prefix="PATCH edk2-platforms".
Thanks for the review.
Regards,
Meenakshi
> -----Original Message-----
> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]
> Sent: Sunday, November 26, 2017 9:19 PM
> To: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
> Cc: ard.biesheuvel@linaro.org; michael.d.kinney@intel.com; edk2-
> devel@lists.01.org; Udit Kumar <udit.kumar@nxp.com>; Varun Sethi
> <V.Sethi@nxp.com>
> Subject: Re: [PATCH v2 1/9] Platform/NXP: Add support for Big Endian Mmio
> APIs
>
> Hmm, was there a cover letter for this v2? I can only find the one from v1 in
> my inbox? Usually it is helpful to keep the cover letter and add comments on
> what has changed since the previous revision.
>
> Also, can you generate the patches with
> --subject-prefix="PATCH edk2-platforms"
> to ensure a predictable email header for edk2-platforms patches?
>
> Now, for this actual patch...
> This looks like a useful thing. It also looks like a very generic thing. I would
> think it could live in edk2/MdePkg, but perhaps we can simply migrate it
> there if we see additional users outside of the NXM platforms.
>
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>
> On Wed, Nov 22, 2017 at 09:18:52PM +0530, Meenakshi Aggarwal wrote:
> > This library add supports for BE read/write and other MMIO helper
> > function.
> > In this data swapped after reading from MMIO and before write using
> > MMIO.
> > It can be used by any module with BE address space.
> >
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
> > ---
> > Platform/NXP/Include/Library/BeIoLib.h | 332
> +++++++++++++++++++++++++
> > Platform/NXP/Library/BeIoLib/BeIoLib.c | 400
> +++++++++++++++++++++++++++++++
> > Platform/NXP/Library/BeIoLib/BeIoLib.inf | 31 +++
> > 3 files changed, 763 insertions(+)
> > create mode 100644 Platform/NXP/Include/Library/BeIoLib.h
> > create mode 100644 Platform/NXP/Library/BeIoLib/BeIoLib.c
> > create mode 100644 Platform/NXP/Library/BeIoLib/BeIoLib.inf
> >
> > diff --git a/Platform/NXP/Include/Library/BeIoLib.h
> > b/Platform/NXP/Include/Library/BeIoLib.h
> > new file mode 100644
> > index 0000000..a58883a
> > --- /dev/null
> > +++ b/Platform/NXP/Include/Library/BeIoLib.h
> > @@ -0,0 +1,332 @@
> > +/** BeIoLib.h
> > + *
> > + * Copyright 2017 NXP
> > + *
> > + * This program and the accompanying materials
> > + * are licensed and made available under the terms and conditions of
> > +the BSD License
> > + * which accompanies this distribution. The full text of the
> > +license may be found at
> > + *
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> e
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cmeenakshi.agg
> >
> +arwal%40nxp.com%7C88e69067b33644a1f74108d534e53282%7C686ea1d3bc
> 2b4c6f
> >
> +a92cd99c5c301635%7C0%7C0%7C636473081368216265&sdata=o8KmMYvlGT
> AzBP0rI
> > +bOQTOAWY3fJEpfkpCwnKHWZ9Y0%3D&reserved=0
> > + *
> > + * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS,
> > + * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> > + *
> > + **/
> > +
> > +#ifndef __BE_IOLIB_H__
> > +#define __BE_IOLIB_H__
> > +
> > +#include <Base.h>
> > +
> > +/**
> > + MmioRead8 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioRead8 (
> > + IN UINTN Address
> > + );
> > +
> > +/**
> > + MmioRead16 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT16
> > +EFIAPI
> > +BeMmioRead16 (
> > + IN UINTN Address
> > + );
> > +
> > +/**
> > + MmioRead32 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT32
> > +EFIAPI
> > +BeMmioRead32 (
> > + IN UINTN Address
> > + );
> > +
> > +/**
> > + MmioRead64 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT64
> > +EFIAPI
> > +BeMmioRead64 (
> > + IN UINTN Address
> > + );
> > +
> > +/**
> > + MmioWrite8 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to write.
> > + @param Value The value to write to the MMIO register.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioWrite8 (
> > + IN UINTN Address,
> > + IN UINT8 Value
> > + );
> > +
> > +/**
> > + MmioWrite16 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to write.
> > + @param Value The value to write to the MMIO register.
> > +
> > +**/
> > +UINT16
> > +EFIAPI
> > +BeMmioWrite16 (
> > + 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
> > +BeMmioWrite32 (
> > + 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
> > +BeMmioWrite64 (
> > + IN UINTN Address,
> > + IN UINT64 Value
> > + );
> > +
> > +/**
> > + MmioAndThenOr8 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.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioAndThenOr8 (
> > + IN UINTN Address,
> > + IN UINT8 AndData,
> > + IN UINT8 OrData
> > + );
> > +
> > +/**
> > + 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
> > +BeMmioAndThenOr16 (
> > + 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
> > +BeMmioAndThenOr32 (
> > + 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
> > +BeMmioAndThenOr64 (
> > + IN UINTN Address,
> > + IN UINT64 AndData,
> > + IN UINT64 OrData
> > + );
> > +
> > +/**
> > + MmioOr8 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.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioOr8 (
> > + IN UINTN Address,
> > + IN UINT8 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
> > +BeMmioOr16 (
> > + 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
> > +BeMmioOr32 (
> > + 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
> > +BeMmioOr64 (
> > + IN UINTN Address,
> > + IN UINT64 OrData
> > + );
> > +
> > +/**
> > + MmioAnd8 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.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioAnd8 (
> > + IN UINTN Address,
> > + IN UINT8 AndData
> > + );
> > +
> > +/**
> > + 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
> > +BeMmioAnd16 (
> > + 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
> > +BeMmioAnd32 (
> > + 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
> > +BeMmioAnd64 (
> > + IN UINTN Address,
> > + IN UINT64 AndData
> > + );
> > +
> > +#endif /* _BE_IOLIB_H */
> > diff --git a/Platform/NXP/Library/BeIoLib/BeIoLib.c
> > b/Platform/NXP/Library/BeIoLib/BeIoLib.c
> > new file mode 100644
> > index 0000000..b4b12ac
> > --- /dev/null
> > +++ b/Platform/NXP/Library/BeIoLib/BeIoLib.c
> > @@ -0,0 +1,400 @@
> > +/** BeIoLib.c
> > +
> > + Provide MMIO APIs for BE modules.
> > +
> > + Copyright 2017 NXP
> > +
> > + This program and the accompanying materials are licensed and made
> > + available under the terms and conditions of the BSD License which
> > + accompanies this distribution. The full text of the license may be
> > + found at
> > +
> > +
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> > + ensource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cmeenakshi.a
> > +
> ggarwal%40nxp.com%7C88e69067b33644a1f74108d534e53282%7C686ea1d3b
> c2b4
> > +
> c6fa92cd99c5c301635%7C0%7C0%7C636473081368216265&sdata=o8KmMYvl
> GTAzB
> > + P0rIbOQTOAWY3fJEpfkpCwnKHWZ9Y0%3D&reserved=0
> > +
> > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > + BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> > +
> > +**/
> > +
> > +#include <Base.h>
> > +#include <Library/BaseLib.h>
> > +#include <Library/IoLib.h>
> > +
> > +/**
> > + MmioRead8 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioRead8 (
> > + IN UINTN Address
> > + )
> > +{
> > + return MmioRead8 (Address);
> > +}
> > +
> > +/**
> > + MmioRead16 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT16
> > +EFIAPI
> > +BeMmioRead16 (
> > + IN UINTN Address
> > + )
> > +{
> > + return SwapBytes16 (MmioRead16 (Address)); }
> > +
> > +/**
> > + MmioRead32 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT32
> > +EFIAPI
> > +BeMmioRead32 (
> > + IN UINTN Address
> > + )
> > +{
> > + return SwapBytes32 (MmioRead32 (Address)); }
> > +
> > +/**
> > + MmioRead64 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to read.
> > +
> > + @return The value read.
> > +
> > +**/
> > +UINT64
> > +EFIAPI
> > +BeMmioRead64 (
> > + IN UINTN Address
> > + )
> > +{
> > + return SwapBytes64 (MmioRead64 (Address)); }
> > +
> > +/**
> > + MmioWrite8 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to write.
> > + @param Value The value to write to the MMIO register.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioWrite8 (
> > + IN UINTN Address,
> > + IN UINT8 Value
> > + )
> > +{
> > + return MmioWrite8 (Address, Value); }
> > +
> > +/**
> > + MmioWrite16 for Big-Endian modules.
> > +
> > + @param Address The MMIO register to write.
> > + @param Value The value to write to the MMIO register.
> > +
> > +**/
> > +UINT16
> > +EFIAPI
> > +BeMmioWrite16 (
> > + IN UINTN Address,
> > + IN UINT16 Value
> > + )
> > +{
> > + return MmioWrite16 (Address, SwapBytes16 (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
> > +BeMmioWrite32 (
> > + IN UINTN Address,
> > + IN UINT32 Value
> > + )
> > +{
> > + return MmioWrite32 (Address, SwapBytes32 (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
> > +BeMmioWrite64 (
> > + IN UINTN Address,
> > + IN UINT64 Value
> > + )
> > +{
> > + return MmioWrite64 (Address, SwapBytes64 (Value)); }
> > +
> > +/**
> > + MmioAndThenOr8 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.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioAndThenOr8 (
> > + IN UINTN Address,
> > + IN UINT8 AndData,
> > + IN UINT8 OrData
> > + )
> > +{
> > + return MmioAndThenOr8 (Address, AndData, OrData); }
> > +
> > +/**
> > + 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
> > +BeMmioAndThenOr16 (
> > + IN UINTN Address,
> > + IN UINT16 AndData,
> > + IN UINT16 OrData
> > + )
> > +{
> > + AndData = SwapBytes16 (AndData);
> > + OrData = SwapBytes16 (OrData);
> > +
> > + return MmioAndThenOr16 (Address, AndData, 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
> > +BeMmioAndThenOr32 (
> > + IN UINTN Address,
> > + IN UINT32 AndData,
> > + IN UINT32 OrData
> > + )
> > +{
> > + AndData = SwapBytes32 (AndData);
> > + OrData = SwapBytes32 (OrData);
> > +
> > + return MmioAndThenOr32 (Address, AndData, 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
> > +BeMmioAndThenOr64 (
> > + IN UINTN Address,
> > + IN UINT64 AndData,
> > + IN UINT64 OrData
> > + )
> > +{
> > + AndData = SwapBytes64 (AndData);
> > + OrData = SwapBytes64 (OrData);
> > +
> > + return MmioAndThenOr64 (Address, AndData, OrData); }
> > +
> > +/**
> > + MmioOr8 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.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioOr8 (
> > + IN UINTN Address,
> > + IN UINT8 OrData
> > + )
> > +{
> > + return MmioOr8 (Address, 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
> > +BeMmioOr16 (
> > + IN UINTN Address,
> > + IN UINT16 OrData
> > + )
> > +{
> > + return MmioOr16 (Address, SwapBytes16 (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
> > +BeMmioOr32 (
> > + IN UINTN Address,
> > + IN UINT32 OrData
> > + )
> > +{
> > + return MmioOr32 (Address, SwapBytes32 (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
> > +BeMmioOr64 (
> > + IN UINTN Address,
> > + IN UINT64 OrData
> > + )
> > +{
> > + return MmioOr64 (Address, SwapBytes64 (OrData)); }
> > +
> > +/**
> > + MmioAnd8 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.
> > +
> > +**/
> > +UINT8
> > +EFIAPI
> > +BeMmioAnd8 (
> > + IN UINTN Address,
> > + IN UINT8 AndData
> > + )
> > +{
> > + return MmioAnd8 (Address, AndData); }
> > +
> > +/**
> > + 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
> > +BeMmioAnd16 (
> > + IN UINTN Address,
> > + IN UINT16 AndData
> > + )
> > +{
> > + return MmioAnd16 (Address, SwapBytes16 (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
> > +BeMmioAnd32 (
> > + IN UINTN Address,
> > + IN UINT32 AndData
> > + )
> > +{
> > + return MmioAnd32 (Address, SwapBytes32 (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
> > +BeMmioAnd64 (
> > + IN UINTN Address,
> > + IN UINT64 AndData
> > + )
> > +{
> > + return MmioAnd64 (Address, SwapBytes64 (AndData)); }
> > diff --git a/Platform/NXP/Library/BeIoLib/BeIoLib.inf
> > b/Platform/NXP/Library/BeIoLib/BeIoLib.inf
> > new file mode 100644
> > index 0000000..8c466e8
> > --- /dev/null
> > +++ b/Platform/NXP/Library/BeIoLib/BeIoLib.inf
> > @@ -0,0 +1,31 @@
> > +## @BeIoLib.inf
> > +
> > +# Copyright 2017 NXP
> > +#
> > +# This program and the accompanying materials # are licensed and
> > +made available under the terms and conditions of the BSD License #
> > +which accompanies this distribution. The full text of the license
> > +may be found at #
> >
> +https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fop
> e
> > +nsource.org%2Flicenses%2Fbsd-
> license.php&data=02%7C01%7Cmeenakshi.agg
> >
> +arwal%40nxp.com%7C88e69067b33644a1f74108d534e53282%7C686ea1d3bc
> 2b4c6f
> >
> +a92cd99c5c301635%7C0%7C0%7C636473081368216265&sdata=o8KmMYvlGT
> AzBP0rI
> > +bOQTOAWY3fJEpfkpCwnKHWZ9Y0%3D&reserved=0
> > +#
> > +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > +BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
> EITHER EXPRESS OR IMPLIED.
> > +#
> > +##
> > +
> > +[Defines]
> > + INF_VERSION = 0x0001001A
> > + BASE_NAME = BeIoLib
> > + FILE_GUID = 28d77333-77eb-4faf-8735-130e5eb3e343
> > + MODULE_TYPE = BASE
> > + VERSION_STRING = 1.0
> > + LIBRARY_CLASS = BeIoLib
> > +
> > +[Packages]
> > + MdeModulePkg/MdeModulePkg.dec
> > + MdePkg/MdePkg.dec
> > +
> > +[LibraryClasses]
> > + IoLib
> > +
> > +[Sources.common]
> > + BeIoLib.c
> > --
> > 1.9.1
> >
next prev parent reply other threads:[~2017-11-27 5:04 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-07 14:42 [PATCH 00/10] edk2-platforms/Platform/NXP Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 01/10] Platform/NXP: Library to provide helper functions Meenakshi Aggarwal
2017-11-13 12:06 ` Ard Biesheuvel
2017-11-14 5:15 ` Meenakshi Aggarwal
2017-11-13 13:14 ` Leif Lindholm
2017-11-14 5:52 ` Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 02/10] Platform/NXP: Add support for system reset library Meenakshi Aggarwal
2017-11-13 12:09 ` Ard Biesheuvel
2017-11-14 5:19 ` Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 03/10] Platform/NXP: Add support for Big Endian Mmio APIs Meenakshi Aggarwal
2017-11-13 12:26 ` Ard Biesheuvel
2017-11-14 4:10 ` Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 04/10] Platform/NXP : Add support for Watchdog driver Meenakshi Aggarwal
2017-11-13 12:23 ` Ard Biesheuvel
2017-11-14 5:36 ` Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 05/10] Platform/NXP : Add support for DUART library Meenakshi Aggarwal
2017-11-13 12:28 ` Ard Biesheuvel
2017-11-14 4:12 ` Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 06/10] Platform/NXP: Add support for I2c operations library Meenakshi Aggarwal
2017-11-13 12:36 ` Ard Biesheuvel
2017-11-14 5:36 ` Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 07/10] Platform/NXP : Add support for DS1307 RTC library Meenakshi Aggarwal
2017-11-13 12:42 ` Ard Biesheuvel
2017-11-14 5:51 ` Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 08/10] Platform/NXP: Add support for ArmPlatformLib Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 09/10] SocLib : Add support for initialization of peripherals Meenakshi Aggarwal
2017-11-07 14:42 ` [PATCH 10/10] Compilation : Add the fdf, dsc and dec files Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 1/9] Platform/NXP: Add support for Big Endian Mmio APIs Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 2/9] Platform/NXP : Add support for Watchdog driver Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 3/9] SocLib : Add support for initialization of peripherals Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 4/9] Platform/NXP : Add support for DUART library Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 5/9] Platform/NXP: Add support for I2c driver Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 6/9] Silicon/Maxim : Add support for DS1307 RTC library Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 7/9] Platform/NXP: Add support for ArmPlatformLib Meenakshi Aggarwal
2017-11-22 15:48 ` [PATCH v2 8/9] Compilation : Add the fdf, dsc and dec files Meenakshi Aggarwal
2017-11-22 15:49 ` [PATCH v2 9/9] Build : Add build script and environment script Meenakshi Aggarwal
2017-11-26 15:48 ` [PATCH v2 1/9] Platform/NXP: Add support for Big Endian Mmio APIs Leif Lindholm
2017-11-27 5:08 ` Meenakshi Aggarwal [this message]
2017-11-27 7:10 ` Udit Kumar
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=VI1PR04MB1005A6A6C97BDF34B27A0D7B8E250@VI1PR04MB1005.eurprd04.prod.outlook.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