Ovmf/Xen: introduce XENIO_PROTOCOL
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Sat, 28 Feb 2015 20:32:50 +0000 (20:32 +0000)
committerlersek <lersek@Edk2>
Sat, 28 Feb 2015 20:32:50 +0000 (20:32 +0000)
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
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16971 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/Include/Protocol/XenIo.h [new file with mode: 0644]

diff --git a/OvmfPkg/Include/Protocol/XenIo.h b/OvmfPkg/Include/Protocol/XenIo.h
new file mode 100644 (file)
index 0000000..510391f
--- /dev/null
@@ -0,0 +1,48 @@
+/** @file\r
+  XenIo protocol to abstract arch specific details\r
+  The Xen implementations for the Intel and ARM archictures differ in the way\r
+  the base address of the grant table is communicated to the guest. The former\r
+  uses a virtual PCI device, while the latter uses a device tree node.\r
+  In order to allow the XenBusDxe UEFI driver to be reused for the non-PCI\r
+  Xen implementation, this abstract protocol can be installed on a handle\r
+  with the appropriate base address.\r
+  Copyright (C) 2014, Linaro Ltd.\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+#ifndef __PROTOCOL_XENIO_H__\r
+#define __PROTOCOL_XENIO_H__\r
+#include <IndustryStandard/Xen/xen.h>\r
+  {0x6efac84f, 0x0ab0, 0x4747, {0x81, 0xbe, 0x85, 0x55, 0x62, 0x59, 0x04, 0x49}}\r
+/// Forward declaration\r
+/// Protocol structure\r
+struct _XENIO_PROTOCOL {\r
+  //\r
+  // Protocol data fields\r
+  //\r
+  EFI_PHYSICAL_ADDRESS          GrantTableAddress;\r
+extern EFI_GUID gXenIoProtocolGuid;\r
index 30a9fb1e9b420cc423b268841e8ed5b3d2d2e776..3711fa922311b388ab6f8e5e9c2d11545a1be013 100644 (file)
@@ -58,6 +58,7 @@
   gVirtioDeviceProtocolGuid       = {0xfa920010, 0x6785, 0x4941, {0xb6, 0xec, 0x49, 0x8c, 0x57, 0x9f, 0x16, 0x0a}}\r
   gBlockMmioProtocolGuid          = {0x6b558ce3, 0x69e5, 0x4c67, {0xa6, 0x34, 0xf7, 0xfe, 0x72, 0xad, 0xbe, 0x84}}\r
   gXenBusProtocolGuid             = {0x3d3ca290, 0xb9a5, 0x11e3, {0xb7, 0x5d, 0xb8, 0xac, 0x6f, 0x7d, 0x65, 0xe6}}\r
+  gXenIoProtocolGuid              = {0x6efac84f, 0x0ab0, 0x4747, {0x81, 0xbe, 0x85, 0x55, 0x62, 0x59, 0x04, 0x49}}\r