[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 19/29] Ovmf/Xen: introduce XENIO_PROTOCOL



On 01/26/15 20:03, Ard Biesheuvel wrote:
> This introduces the abstract XENIO_PROTOCOL that will be used to
> communicate the Xen grant table address to drivers supporting this
> protocol. Primary purpose is allowing us to change the XenBusDxe
> implementation so that it can support non-PCI Xen implementations
> such as Xen on ARM.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
> ---
>  OvmfPkg/Include/Protocol/XenIo.h | 48 
> ++++++++++++++++++++++++++++++++++++++++++++++++
>  OvmfPkg/OvmfPkg.dec              |  1 +
>  2 files changed, 49 insertions(+)
> 
> diff --git a/OvmfPkg/Include/Protocol/XenIo.h 
> b/OvmfPkg/Include/Protocol/XenIo.h
> new file mode 100644
> index 000000000000..510391f3b3e8
> --- /dev/null
> +++ b/OvmfPkg/Include/Protocol/XenIo.h
> @@ -0,0 +1,48 @@
> +/** @file
> +  XenIo protocol to abstract arch specific details
> +
> +  The Xen implementations for the Intel and ARM archictures differ in the way
> +  the base address of the grant table is communicated to the guest. The 
> former
> +  uses a virtual PCI device, while the latter uses a device tree node.
> +  In order to allow the XenBusDxe UEFI driver to be reused for the non-PCI
> +  Xen implementation, this abstract protocol can be installed on a handle
> +  with the appropriate base address.
> +
> +  Copyright (C) 2014, Linaro Ltd.
> +
> +  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 __PROTOCOL_XENIO_H__
> +#define __PROTOCOL_XENIO_H__
> +
> +#include <IndustryStandard/Xen/xen.h>
> +
> +#define XENIO_PROTOCOL_GUID \
> +  {0x6efac84f, 0x0ab0, 0x4747, {0x81, 0xbe, 0x85, 0x55, 0x62, 0x59, 0x04, 
> 0x49}}
> +
> +///
> +/// Forward declaration
> +///
> +typedef struct _XENIO_PROTOCOL XENIO_PROTOCOL;
> +
> +///
> +/// Protocol structure
> +///
> +struct _XENIO_PROTOCOL {
> +  //
> +  // Protocol data fields
> +  //
> +  EFI_PHYSICAL_ADDRESS          GrantTableAddress;
> +};
> +
> +extern EFI_GUID gXenIoProtocolGuid;
> +
> +#endif
> diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec
> index 30a9fb1e9b42..3711fa922311 100644
> --- a/OvmfPkg/OvmfPkg.dec
> +++ b/OvmfPkg/OvmfPkg.dec
> @@ -58,6 +58,7 @@
>    gVirtioDeviceProtocolGuid       = {0xfa920010, 0x6785, 0x4941, {0xb6, 
> 0xec, 0x49, 0x8c, 0x57, 0x9f, 0x16, 0x0a}}
>    gBlockMmioProtocolGuid          = {0x6b558ce3, 0x69e5, 0x4c67, {0xa6, 
> 0x34, 0xf7, 0xfe, 0x72, 0xad, 0xbe, 0x84}}
>    gXenBusProtocolGuid             = {0x3d3ca290, 0xb9a5, 0x11e3, {0xb7, 
> 0x5d, 0xb8, 0xac, 0x6f, 0x7d, 0x65, 0xe6}}
> +  gXenIoProtocolGuid              = {0x6efac84f, 0x0ab0, 0x4747, {0x81, 
> 0xbe, 0x85, 0x55, 0x62, 0x59, 0x04, 0x49}}
>  
>  [PcdsFixedAtBuild]
>    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|0x0|UINT32|0
> 

Reviewed-by: Laszlo Ersek <lersek@xxxxxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.