summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Include/Library
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2016-11-30 11:35:00 +0100
committerLaszlo Ersek <lersek@redhat.com>2016-12-05 19:44:36 +0100
commitde01f72cc77d58162cb3ba7cd06f931fc9d13822 (patch)
tree18449caa3c6150f9f6ebef153a8476de58e4ff8f /OvmfPkg/Include/Library
parent5297c0bf832df31107d1e1681d72728a2caf5765 (diff)
downloadedk2-de01f72cc77d58162cb3ba7cd06f931fc9d13822.tar.gz
edk2-de01f72cc77d58162cb3ba7cd06f931fc9d13822.tar.bz2
edk2-de01f72cc77d58162cb3ba7cd06f931fc9d13822.zip
ArmVirtPkg, OvmfPkg: QemuFwCfgLib: move DMA-related defs to lib class
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> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'OvmfPkg/Include/Library')
-rw-r--r--OvmfPkg/Include/Library/QemuFwCfgLib.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/OvmfPkg/Include/Library/QemuFwCfgLib.h b/OvmfPkg/Include/Library/QemuFwCfgLib.h
index 7c29422fbd..40a07456c5 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