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