[edk2,v2,3/6] ArmVirtPkg, OvmfPkg: QemuFwCfgLib: move DMA-related defs to lib class

Message ID 20161202202059.5061-4-lersek@redhat.com
State New
Headers show

Commit Message

Laszlo Ersek Dec. 2, 2016, 8:20 p.m.
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

Comments

Leif Lindholm Dec. 5, 2016, 10:29 a.m. | #1
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

Patch hide | download patch | download mbox

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