Message ID | 20161202202059.5061-4-lersek@redhat.com |
---|---|
State | New |
Headers | show |
On Fri, Dec 02, 2016 at 09:20:56PM +0100, Laszlo Ersek wrote: > Move the type and macro definitions related to QEMU's DMA-like fw_cfg > access method to the library class header. > > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Cc: Jordan Justen <jordan.l.justen@intel.com> > Cc: Leif Lindholm <leif.lindholm@linaro.org> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Laszlo Ersek <lersek@redhat.com> Ard may be back from holiday, but fwiw: Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> > --- > > Notes: > v2: > - move definitions to lib class header rather than to a new > IndustryStandard include [Jordan] > - because ArmVirtPkg's library instance already includes the lib class > header, the code movement must be atomic and straddle both packages > - restrict patch to code movement solely; FW_CFG_F_DMA and > FW_CFG_DMA_CTL_WRITE will be added separately > > OvmfPkg/Include/Library/QemuFwCfgLib.h | 19 +++++++++++++++++++ > ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c | 20 -------------------- > 2 files changed, 19 insertions(+), 20 deletions(-) > > diff --git a/OvmfPkg/Include/Library/QemuFwCfgLib.h b/OvmfPkg/Include/Library/QemuFwCfgLib.h > index 7c29422fbd72..40a07456c530 100644 > --- a/OvmfPkg/Include/Library/QemuFwCfgLib.h > +++ b/OvmfPkg/Include/Library/QemuFwCfgLib.h > @@ -23,6 +23,14 @@ > // > #define QEMU_FW_CFG_FNAME_SIZE 56 > > +// > +// Macros for the FW_CFG_DMA_ACCESS.Control bitmap (in native encoding). > +// > +#define FW_CFG_DMA_CTL_ERROR BIT0 > +#define FW_CFG_DMA_CTL_READ BIT1 > +#define FW_CFG_DMA_CTL_SKIP BIT2 > +#define FW_CFG_DMA_CTL_SELECT BIT3 > + > typedef enum { > QemuFwCfgItemSignature = 0x0000, > QemuFwCfgItemInterfaceVersion = 0x0001, > @@ -59,6 +67,17 @@ typedef enum { > > } FIRMWARE_CONFIG_ITEM; > > +// > +// Communication structure for the DMA access method. All fields are encoded in > +// big endian. > +// > +#pragma pack (1) > +typedef struct { > + UINT32 Control; > + UINT32 Length; > + UINT64 Address; > +} FW_CFG_DMA_ACCESS; > +#pragma pack () > > /** > Returns a boolean indicating if the firmware configuration interface > diff --git a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c > index 2fd8d9050566..6033a2a14c42 100644 > --- a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c > +++ b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c > @@ -53,26 +53,6 @@ STATIC READ_BYTES_FUNCTION DmaReadBytes; > // > STATIC READ_BYTES_FUNCTION *InternalQemuFwCfgReadBytes = MmioReadBytes; > > -// > -// Communication structure for DmaReadBytes(). All fields are encoded in big > -// endian. > -// > -#pragma pack (1) > -typedef struct { > - UINT32 Control; > - UINT32 Length; > - UINT64 Address; > -} FW_CFG_DMA_ACCESS; > -#pragma pack () > - > -// > -// Macros for the FW_CFG_DMA_ACCESS.Control bitmap (in native encoding). > -// > -#define FW_CFG_DMA_CTL_ERROR BIT0 > -#define FW_CFG_DMA_CTL_READ BIT1 > -#define FW_CFG_DMA_CTL_SKIP BIT2 > -#define FW_CFG_DMA_CTL_SELECT BIT3 > - > > /** > Returns a boolean indicating if the firmware configuration interface > -- > 2.9.2 > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
diff --git a/OvmfPkg/Include/Library/QemuFwCfgLib.h b/OvmfPkg/Include/Library/QemuFwCfgLib.h index 7c29422fbd72..40a07456c530 100644 --- a/OvmfPkg/Include/Library/QemuFwCfgLib.h +++ b/OvmfPkg/Include/Library/QemuFwCfgLib.h @@ -23,6 +23,14 @@ // #define QEMU_FW_CFG_FNAME_SIZE 56 +// +// Macros for the FW_CFG_DMA_ACCESS.Control bitmap (in native encoding). +// +#define FW_CFG_DMA_CTL_ERROR BIT0 +#define FW_CFG_DMA_CTL_READ BIT1 +#define FW_CFG_DMA_CTL_SKIP BIT2 +#define FW_CFG_DMA_CTL_SELECT BIT3 + typedef enum { QemuFwCfgItemSignature = 0x0000, QemuFwCfgItemInterfaceVersion = 0x0001, @@ -59,6 +67,17 @@ typedef enum { } FIRMWARE_CONFIG_ITEM; +// +// Communication structure for the DMA access method. All fields are encoded in +// big endian. +// +#pragma pack (1) +typedef struct { + UINT32 Control; + UINT32 Length; + UINT64 Address; +} FW_CFG_DMA_ACCESS; +#pragma pack () /** Returns a boolean indicating if the firmware configuration interface diff --git a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c index 2fd8d9050566..6033a2a14c42 100644 --- a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c +++ b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c @@ -53,26 +53,6 @@ STATIC READ_BYTES_FUNCTION DmaReadBytes; // STATIC READ_BYTES_FUNCTION *InternalQemuFwCfgReadBytes = MmioReadBytes; -// -// Communication structure for DmaReadBytes(). All fields are encoded in big -// endian. -// -#pragma pack (1) -typedef struct { - UINT32 Control; - UINT32 Length; - UINT64 Address; -} FW_CFG_DMA_ACCESS; -#pragma pack () - -// -// Macros for the FW_CFG_DMA_ACCESS.Control bitmap (in native encoding). -// -#define FW_CFG_DMA_CTL_ERROR BIT0 -#define FW_CFG_DMA_CTL_READ BIT1 -#define FW_CFG_DMA_CTL_SKIP BIT2 -#define FW_CFG_DMA_CTL_SELECT BIT3 - /** Returns a boolean indicating if the firmware configuration interface
Move the type and macro definitions related to QEMU's DMA-like fw_cfg access method to the library class header. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Leif Lindholm <leif.lindholm@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> --- Notes: v2: - move definitions to lib class header rather than to a new IndustryStandard include [Jordan] - because ArmVirtPkg's library instance already includes the lib class header, the code movement must be atomic and straddle both packages - restrict patch to code movement solely; FW_CFG_F_DMA and FW_CFG_DMA_CTL_WRITE will be added separately OvmfPkg/Include/Library/QemuFwCfgLib.h | 19 +++++++++++++++++++ ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c | 20 -------------------- 2 files changed, 19 insertions(+), 20 deletions(-) -- 2.9.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel