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
> Cc: Jordan Justen
> Cc: Leif Lindholm
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek
Ard may be back from holiday, but fwiw:
Reviewed-by: Leif Lindholm
> ---
>
> 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= 0x,
>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