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.biesheu...@linaro.org>
> Cc: Jordan Justen <jordan.l.jus...@intel.com>
> Cc: Leif Lindholm <leif.lindh...@linaro.org>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>

Ard may be back from holiday, but fwiw:
Reviewed-by: Leif Lindholm <leif.lindh...@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

Reply via email to