[GIT PULL] Introduce Xen support to ARM64
Hi Catalin, the following changes since commit dcdbe33add56cb659ebf21fb9b6577507e21d952: Merge branch 'mn10300' (mn10300 fixes from David Howells) (2013-05-30 13:39:01 +0900) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen.git xen-arm64-3.1-tag Stefano Stabellini (6): arm/xen: define xen_remap as ioremap_cached arm64/xen: introduce asm/xen header files on arm64 arm64/xen: implement ioremap_cached on arm64 arm64/xen: use XEN_IO_PROTO_ABI_ARM on ARM64 arm64/xen: introduce CONFIG_XEN and hypercall.S on ARM64 MAINTAINERS: add myself as arm64/xen maintainer MAINTAINERS |7 ++ arch/arm/include/asm/xen/page.h |3 +- arch/arm64/Kconfig | 10 +++ arch/arm64/Makefile |1 + arch/arm64/include/asm/hypervisor.h |6 ++ arch/arm64/include/asm/io.h |2 + arch/arm64/include/asm/sync_bitops.h| 26 + arch/arm64/include/asm/xen/events.h | 21 +++ arch/arm64/include/asm/xen/hypercall.h |1 + arch/arm64/include/asm/xen/hypervisor.h |1 + arch/arm64/include/asm/xen/interface.h |1 + arch/arm64/include/asm/xen/page.h |1 + arch/arm64/xen/Makefile |2 + arch/arm64/xen/hypercall.S | 92 +++ include/xen/interface/io/protocols.h|2 +- 15 files changed, 173 insertions(+), 3 deletions(-) create mode 100644 arch/arm64/include/asm/hypervisor.h create mode 100644 arch/arm64/include/asm/sync_bitops.h create mode 100644 arch/arm64/include/asm/xen/events.h create mode 100644 arch/arm64/include/asm/xen/hypercall.h create mode 100644 arch/arm64/include/asm/xen/hypervisor.h create mode 100644 arch/arm64/include/asm/xen/interface.h create mode 100644 arch/arm64/include/asm/xen/page.h create mode 100644 arch/arm64/xen/Makefile create mode 100644 arch/arm64/xen/hypercall.S This is v3 of the series with a couple of Acked-by more in the commit messages and two lines better aligned with tabs equal to 8 characters. Full diff below. diff --git a/MAINTAINERS b/MAINTAINERS index fd3a495..95a6a51 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9096,6 +9096,13 @@ S: Supported F: arch/arm/xen/ F: arch/arm/include/asm/xen/ +XEN HYPERVISOR ARM64 +M: Stefano Stabellini +L: xen-de...@lists.xensource.com (moderated for non-subscribers) +S: Supported +F: arch/arm64/xen/ +F: arch/arm64/include/asm/xen/ + XEN NETWORK BACKEND DRIVER M: Ian Campbell L: xen-de...@lists.xensource.com (moderated for non-subscribers) diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h index 30cdacb..359a7b5 100644 --- a/arch/arm/include/asm/xen/page.h +++ b/arch/arm/include/asm/xen/page.h @@ -1,7 +1,6 @@ #ifndef _ASM_ARM_XEN_PAGE_H #define _ASM_ARM_XEN_PAGE_H -#include #include #include @@ -88,6 +87,6 @@ static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn) return __set_phys_to_machine(pfn, mfn); } -#define xen_remap(cookie, size) __arm_ioremap((cookie), (size), MT_MEMORY); +#define xen_remap(cookie, size) ioremap_cached((cookie), (size)); #endif /* _ASM_ARM_XEN_PAGE_H */ diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 56b3f6d..b5d6ada 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -182,6 +182,16 @@ config HW_PERF_EVENTS source "mm/Kconfig" +config XEN_DOM0 + def_bool y + depends on XEN + +config XEN + bool "Xen guest support on ARM64 (EXPERIMENTAL)" + depends on ARM64 && OF + help + Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64. + endmenu menu "Boot options" diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index c95c5cb..79dd13d 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -37,6 +37,7 @@ TEXT_OFFSET := 0x0008 export TEXT_OFFSET GZFLAGS core-y += arch/arm64/kernel/ arch/arm64/mm/ +core-$(CONFIG_XEN) += arch/arm64/xen/ libs-y := arch/arm64/lib/ $(libs-y) libs-y += $(LIBGCC) diff --git a/arch/arm64/include/asm/hypervisor.h b/arch/arm64/include/asm/hypervisor.h new file mode 100644 index 000..d2c7904 --- /dev/null +++ b/arch/arm64/include/asm/hypervisor.h @@ -0,0 +1,6 @@ +#ifndef _ASM_ARM64_HYPERVISOR_H +#define _ASM_ARM64_HYPERVISOR_H + +#include + +#endif diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h index 2e12258..1d12f89 100644 --- a/arch/arm64/include/asm/io.h +++ b/arch/arm64/include/asm/io.h @@ -228,10 +228,12 @@ extern void __iounmap(volatile void __iomem *addr); #define PROT_DEFAULT (PTE_TYPE_PAGE | PTE_AF | PTE_DIRTY) #define PROT_DEVICE_nGnRE (PROT_DEFAULT | PTE_PXN | PTE_UXN | PTE_ATTRINDX(MT_DEVICE_nGnRE)) #define PROT_NORMAL_NC (PROT_DEFAULT | PTE_ATTRINDX(MT_NORMAL_NC)) +#define PROT_NORMAL
[GIT PULL] Introduce Xen support to ARM64
Hi Catalin, the following changes since commit dcdbe33add56cb659ebf21fb9b6577507e21d952: Merge branch 'mn10300' (mn10300 fixes from David Howells) (2013-05-30 13:39:01 +0900) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen.git xen-arm64-3.1-tag Stefano Stabellini (6): arm/xen: define xen_remap as ioremap_cached arm64/xen: introduce asm/xen header files on arm64 arm64/xen: implement ioremap_cached on arm64 arm64/xen: use XEN_IO_PROTO_ABI_ARM on ARM64 arm64/xen: introduce CONFIG_XEN and hypercall.S on ARM64 MAINTAINERS: add myself as arm64/xen maintainer MAINTAINERS |7 ++ arch/arm/include/asm/xen/page.h |3 +- arch/arm64/Kconfig | 10 +++ arch/arm64/Makefile |1 + arch/arm64/include/asm/hypervisor.h |6 ++ arch/arm64/include/asm/io.h |2 + arch/arm64/include/asm/sync_bitops.h| 26 + arch/arm64/include/asm/xen/events.h | 21 +++ arch/arm64/include/asm/xen/hypercall.h |1 + arch/arm64/include/asm/xen/hypervisor.h |1 + arch/arm64/include/asm/xen/interface.h |1 + arch/arm64/include/asm/xen/page.h |1 + arch/arm64/xen/Makefile |2 + arch/arm64/xen/hypercall.S | 92 +++ include/xen/interface/io/protocols.h|2 +- 15 files changed, 173 insertions(+), 3 deletions(-) create mode 100644 arch/arm64/include/asm/hypervisor.h create mode 100644 arch/arm64/include/asm/sync_bitops.h create mode 100644 arch/arm64/include/asm/xen/events.h create mode 100644 arch/arm64/include/asm/xen/hypercall.h create mode 100644 arch/arm64/include/asm/xen/hypervisor.h create mode 100644 arch/arm64/include/asm/xen/interface.h create mode 100644 arch/arm64/include/asm/xen/page.h create mode 100644 arch/arm64/xen/Makefile create mode 100644 arch/arm64/xen/hypercall.S This is v3 of the series with a couple of Acked-by more in the commit messages and two lines better aligned with tabs equal to 8 characters. Full diff below. diff --git a/MAINTAINERS b/MAINTAINERS index fd3a495..95a6a51 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9096,6 +9096,13 @@ S: Supported F: arch/arm/xen/ F: arch/arm/include/asm/xen/ +XEN HYPERVISOR ARM64 +M: Stefano Stabellini stefano.stabell...@eu.citrix.com +L: xen-de...@lists.xensource.com (moderated for non-subscribers) +S: Supported +F: arch/arm64/xen/ +F: arch/arm64/include/asm/xen/ + XEN NETWORK BACKEND DRIVER M: Ian Campbell ian.campb...@citrix.com L: xen-de...@lists.xensource.com (moderated for non-subscribers) diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h index 30cdacb..359a7b5 100644 --- a/arch/arm/include/asm/xen/page.h +++ b/arch/arm/include/asm/xen/page.h @@ -1,7 +1,6 @@ #ifndef _ASM_ARM_XEN_PAGE_H #define _ASM_ARM_XEN_PAGE_H -#include asm/mach/map.h #include asm/page.h #include asm/pgtable.h @@ -88,6 +87,6 @@ static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn) return __set_phys_to_machine(pfn, mfn); } -#define xen_remap(cookie, size) __arm_ioremap((cookie), (size), MT_MEMORY); +#define xen_remap(cookie, size) ioremap_cached((cookie), (size)); #endif /* _ASM_ARM_XEN_PAGE_H */ diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 56b3f6d..b5d6ada 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -182,6 +182,16 @@ config HW_PERF_EVENTS source mm/Kconfig +config XEN_DOM0 + def_bool y + depends on XEN + +config XEN + bool Xen guest support on ARM64 (EXPERIMENTAL) + depends on ARM64 OF + help + Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64. + endmenu menu Boot options diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index c95c5cb..79dd13d 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -37,6 +37,7 @@ TEXT_OFFSET := 0x0008 export TEXT_OFFSET GZFLAGS core-y += arch/arm64/kernel/ arch/arm64/mm/ +core-$(CONFIG_XEN) += arch/arm64/xen/ libs-y := arch/arm64/lib/ $(libs-y) libs-y += $(LIBGCC) diff --git a/arch/arm64/include/asm/hypervisor.h b/arch/arm64/include/asm/hypervisor.h new file mode 100644 index 000..d2c7904 --- /dev/null +++ b/arch/arm64/include/asm/hypervisor.h @@ -0,0 +1,6 @@ +#ifndef _ASM_ARM64_HYPERVISOR_H +#define _ASM_ARM64_HYPERVISOR_H + +#include asm/xen/hypervisor.h + +#endif diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h index 2e12258..1d12f89 100644 --- a/arch/arm64/include/asm/io.h +++ b/arch/arm64/include/asm/io.h @@ -228,10 +228,12 @@ extern void __iounmap(volatile void __iomem *addr); #define PROT_DEFAULT (PTE_TYPE_PAGE | PTE_AF | PTE_DIRTY) #define PROT_DEVICE_nGnRE (PROT_DEFAULT | PTE_PXN | PTE_UXN |