This series adds ARM support to the XenBusDxe driver. It consists of
an implementation of the hypercall interface, changes to work around
the lack of PCI, and a bugfix. Finally, patch #5 wires it up to the
VirtFdtDxe driver that is used in the ARM VM port, and will also be
used by the Xen/ARM targeted port.

Note that this is build tested only, both on ARM and x86. I am struggling
to get access to suitable ARM hardware, and running Xen on my Macbook has
proven to be a discouraging experience, hence the 'RFC' status of this patches.
If anyone feels adventurous and bored, it would be good to know that I did not
break x86 support in this series, so any testing is highly appreciated.

Ard Biesheuvel (5):
  Ovmf/Xen: move arch specific hypercall implementation to
    XenHypercallLib
  Ovmf/Xen: allow non-PCI usage of XenBusDxe
  Ovmf/Xen: add ARM and AArch64 support to XenBusDxe
  Ovmf/Xen: fix pointer to int cast in XenBusDxe
  ArmVirtualizationPkg/VirtFdtDxe: wire up XenBusDxe to "xen,xen" DT
    node

 .../ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c   |  33 ++
 .../ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf |   1 +
 .../Include/IndustryStandard/Xen/arch-arm/xen.h    | 436 +++++++++++++++++++++
 OvmfPkg/Include/IndustryStandard/Xen/xen.h         |   2 +-
 OvmfPkg/Include/Library/XenHypercallLib.h          |  36 ++
 OvmfPkg/Include/Protocol/XenIo.h                   |  48 +++
 .../Library/XenHypercallLib/Aarch64/Hypercall.S    |  26 ++
 OvmfPkg/Library/XenHypercallLib/Arm/Hypercall.S    |  25 ++
 .../XenHypercallLib}/Ia32/hypercall.nasm           |   6 +-
 .../XenHypercallLib}/X64/hypercall.nasm            |   6 +-
 .../Library/XenHypercallLib/XenHypercallLibArm.inf |  37 ++
 .../Library/XenHypercallLib/XenHypercallLibIntel.c |  77 ++++
 .../XenHypercallLib/XenHypercallLibIntel.inf       |  48 +++
 OvmfPkg/OvmfPkg.dec                                |   5 +
 OvmfPkg/OvmfPkgIa32.dsc                            |   1 +
 OvmfPkg/OvmfPkgIa32X64.dsc                         |   1 +
 OvmfPkg/OvmfPkgX64.dsc                             |   1 +
 OvmfPkg/XenBusDxe/AtomicsGcc.c                     |  44 +++
 OvmfPkg/XenBusDxe/ComponentName.c                  |   2 +-
 OvmfPkg/XenBusDxe/GrantTable.c                     |   9 +-
 OvmfPkg/XenBusDxe/GrantTable.h                     |   3 +-
 OvmfPkg/XenBusDxe/XenBus.c                         |   6 +-
 OvmfPkg/XenBusDxe/XenBusDxe.c                      | 192 +++++++--
 OvmfPkg/XenBusDxe/XenBusDxe.h                      |   3 +-
 OvmfPkg/XenBusDxe/XenBusDxe.inf                    |  13 +-
 OvmfPkg/XenBusDxe/XenHypercall.c                   |  30 +-
 OvmfPkg/XenBusDxe/XenHypercall.h                   |  31 --
 27 files changed, 1002 insertions(+), 120 deletions(-)
 create mode 100644 OvmfPkg/Include/IndustryStandard/Xen/arch-arm/xen.h
 create mode 100644 OvmfPkg/Include/Library/XenHypercallLib.h
 create mode 100644 OvmfPkg/Include/Protocol/XenIo.h
 create mode 100644 OvmfPkg/Library/XenHypercallLib/Aarch64/Hypercall.S
 create mode 100644 OvmfPkg/Library/XenHypercallLib/Arm/Hypercall.S
 rename OvmfPkg/{XenBusDxe => Library/XenHypercallLib}/Ia32/hypercall.nasm (81%)
 rename OvmfPkg/{XenBusDxe => Library/XenHypercallLib}/X64/hypercall.nasm (78%)
 create mode 100644 OvmfPkg/Library/XenHypercallLib/XenHypercallLibArm.inf
 create mode 100644 OvmfPkg/Library/XenHypercallLib/XenHypercallLibIntel.c
 create mode 100644 OvmfPkg/Library/XenHypercallLib/XenHypercallLibIntel.inf
 create mode 100644 OvmfPkg/XenBusDxe/AtomicsGcc.c

-- 
1.8.3.2


------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to