On 12/01/16 20:34, Jordan Justen wrote: > On 2016-12-01 09:56:31, Laszlo Ersek wrote: >> Add the type and macro definitions related to QEMU's DMA-like fw_cfg >> access method in a dedicated header file. >> >> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> >> Cc: Jordan Justen <jordan.l.jus...@intel.com> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Laszlo Ersek <ler...@redhat.com> >> --- >> OvmfPkg/Include/IndustryStandard/QemuFwCfgDma.h | 50 ++++++++++++++++++++ > > What do you think about just > OvmfPkg/Include/IndustryStandard/QemuFwCfg.h? > > Arguably, the FIRMWARE_CONFIG_ITEM enums could be moved there as > well... > > Then again, I think we could also just put this content into > OvmfPkg/Include/Library/QemuFwCfgLib.h.
Adding this stuff to "OvmfPkg/Include/Library/QemuFwCfgLib.h" sounds good to me; I'll do that in v2. Thanks! Laszlo > -Jordan > >> 1 file changed, 50 insertions(+) >> >> diff --git a/OvmfPkg/Include/IndustryStandard/QemuFwCfgDma.h >> b/OvmfPkg/Include/IndustryStandard/QemuFwCfgDma.h >> new file mode 100644 >> index 000000000000..37a5804adb05 >> --- /dev/null >> +++ b/OvmfPkg/Include/IndustryStandard/QemuFwCfgDma.h >> @@ -0,0 +1,50 @@ >> +/** @file >> + Macro and type definitions related to QEMU's DMA-like fw_cfg access >> method, >> + based on "docs/specs/fw_cfg.txt" in the QEMU tree. >> + >> + Copyright (C) 2016, Red Hat, Inc. >> + >> + This program and the accompanying materials are licensed and made >> available >> + under the terms and conditions of the BSD License which accompanies this >> + distribution. The full text of the license may be found at >> + http://opensource.org/licenses/bsd-license.php >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> WITHOUT >> + WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. >> +**/ >> + >> + >> +#ifndef __FW_CFG_DMA__ >> +#define __FW_CFG_DMA__ >> + >> +#include <Base.h> >> + >> +// >> +// If the following bit is set in the UINT32 fw_cfg revision / feature >> bitmap >> +// -- read from key 0x0001 with the basic IO Port or MMIO method --, then >> the >> +// DMA interface is available. >> +// >> +#define FW_CFG_F_DMA BIT1 >> + >> +// >> +// 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 () >> + >> +// >> +// 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 >> +#define FW_CFG_DMA_CTL_WRITE BIT4 >> + >> +#endif >> -- >> 2.9.2 >> >> _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel