Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1c6872e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'stable/for-linus-3.7-arm-tag' of...

Merge tag 'stable/for-linus-3.7-arm-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen

Pull ADM Xen support from Konrad Rzeszutek Wilk:

  Features:
   * Allow a Linux guest to boot as initial domain and as normal guests
     on Xen on ARM (specifically ARMv7 with virtualized extensions).  PV
     console, block and network frontend/backends are working.
  Bug-fixes:
   * Fix compile linux-next fallout.
   * Fix PVHVM bootup crashing.

  The Xen-unstable hypervisor (so will be 4.3 in a ~6 months), supports
  ARMv7 platforms.

  The goal in implementing this architecture is to exploit the hardware
  as much as possible.  That means use as little as possible of PV
  operations (so no PV MMU) - and use existing PV drivers for I/Os
  (network, block, console, etc).  This is similar to how PVHVM guests
  operate in X86 platform nowadays - except that on ARM there is no need
  for QEMU.  The end result is that we share a lot of the generic Xen
  drivers and infrastructure.

  Details on how to compile/boot/etc are available at this Wiki:

    http://wiki.xen.org/wiki/Xen_ARMv7_with_Virtualization_Extensions

  and this blog has links to a technical discussion/presentations on the
  overall architecture:

    http://blog.xen.org/index.php/2012/09/21/xensummit-sessions-new-pvh-virtualisation-mode-for-arm-cortex-a15arm-servers-and-x86/

* tag 'stable/for-linus-3.7-arm-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: (21 commits)
  xen/xen_initial_domain: check that xen_start_info is initialized
  xen: mark xen_init_IRQ __init
  xen/Makefile: fix dom-y build
  arm: introduce a DTS for Xen unprivileged virtual machines
  MAINTAINERS: add myself as Xen ARM maintainer
  xen/arm: compile netback
  xen/arm: compile blkfront and blkback
  xen/arm: implement alloc/free_xenballooned_pages with alloc_pages/kfree
  xen/arm: receive Xen events on ARM
  xen/arm: initialize grant_table on ARM
  xen/arm: get privilege status
  xen/arm: introduce CONFIG_XEN on ARM
  xen: do not compile manage, balloon, pci, acpi, pcpu and cpu_hotplug on ARM
  xen/arm: Introduce xen_ulong_t for unsigned long
  xen/arm: Xen detection and shared_info page mapping
  docs: Xen ARM DT bindings
  xen/arm: empty implementation of grant_table arch specific functions
  xen/arm: sync_bitops
  xen/arm: page.h definitions
  xen/arm: hypercalls
  ...
parents 5f3d2f2e 4ed5978b
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
* Xen hypervisor device tree bindings

Xen ARM virtual platforms shall have a top-level "hypervisor" node with
the following properties:

- compatible:
	compatible = "xen,xen-<version>", "xen,xen";
  where <version> is the version of the Xen ABI of the platform.

- reg: specifies the base physical address and size of a region in
  memory where the grant table should be mapped to, using an
  HYPERVISOR_memory_op hypercall. The memory region is large enough to map
  the whole grant table (it is larger or equal to gnttab_max_grant_frames()).

- interrupts: the interrupt used by Xen to inject event notifications.
  A GIC node is also required.


Example (assuming #address-cells = <2> and #size-cells = <2>):

hypervisor {
	compatible = "xen,xen-4.3", "xen,xen";
	reg = <0 0xb0000000 0 0x20000>;
	interrupts = <1 15 0xf08>;
};
+7 −0
Original line number Diff line number Diff line
@@ -7803,6 +7803,13 @@ F: drivers/xen/
F:	arch/x86/include/asm/xen/
F:	include/xen/

XEN HYPERVISOR ARM
M:	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
L:	xen-devel@lists.xensource.com (moderated for non-subscribers)
S:	Supported
F:	arch/arm/xen/
F:	arch/arm/include/asm/xen/

XEN NETWORK BACKEND DRIVER
M:	Ian Campbell <ian.campbell@citrix.com>
L:	xen-devel@lists.xensource.com (moderated for non-subscribers)
+10 −0
Original line number Diff line number Diff line
@@ -1829,6 +1829,16 @@ config DEPRECATED_PARAM_STRUCT
	  This was deprecated in 2001 and announced to live on for 5 years.
	  Some old boot loaders still use this way.

config XEN_DOM0
	def_bool y
	depends on XEN

config XEN
	bool "Xen guest support on ARM (EXPERIMENTAL)"
	depends on EXPERIMENTAL && ARM && OF
	help
	  Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.

endmenu

menu "Boot options"
+1 −0
Original line number Diff line number Diff line
@@ -250,6 +250,7 @@ endif
core-$(CONFIG_FPE_NWFPE)	+= arch/arm/nwfpe/
core-$(CONFIG_FPE_FASTFPE)	+= $(FASTFPE_OBJ)
core-$(CONFIG_VFP)		+= arch/arm/vfp/
core-$(CONFIG_XEN)		+= arch/arm/xen/

# If we have a machine-specific directory, then include it in the build.
core-y				+= arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
+2 −1
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
	vexpress-v2p-ca9.dtb \
	vexpress-v2p-ca15-tc1.dtb \
	vexpress-v2p-ca15_a7.dtb
	vexpress-v2p-ca15_a7.dtb \
	xenvm-4.2.dtb

endif
Loading