On 01/02/15 11:45, Ard Biesheuvel wrote:
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
Some meta-requests first: - please rebase the series to SVN r16578 first (or at least verify please that the rebase leaves your patchset intact), - if it's necessary to repost, please add --stat=150 to git-format-patch; edk2 uses very long pathnames and the diffstat is mostly useless in the above (ellipsis) form.
Thanks! Laszlo