From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6F7B381F1C for ; Thu, 1 Dec 2016 12:48:54 -0800 (PST) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CF8557DCF5; Thu, 1 Dec 2016 20:48:53 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-138.phx2.redhat.com [10.3.116.138]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uB1KmqGE021612; Thu, 1 Dec 2016 15:48:52 -0500 To: Jordan Justen , edk2-devel-01 References: <20161201175633.2538-1-lersek@redhat.com> <20161201175633.2538-4-lersek@redhat.com> <148062086103.26637.11038536785691900096@jljusten-ivb> Cc: Ard Biesheuvel From: Laszlo Ersek Message-ID: <7b51a6a6-8d46-177c-9277-00c5af35816f@redhat.com> Date: Thu, 1 Dec 2016 21:48:51 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0 MIME-Version: 1.0 In-Reply-To: <148062086103.26637.11038536785691900096@jljusten-ivb> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 01 Dec 2016 20:48:53 +0000 (UTC) Subject: Re: [PATCH 3/5] OvmfPkg/IndustryStandard: add QemuFwCfgDma.h X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Dec 2016 20:48:54 -0000 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit 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 >> Cc: Jordan Justen >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Laszlo Ersek >> --- >> 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 >> + >> +// >> +// 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 >> >>