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

Commit ae1659ee authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk
Browse files

Merge branch 'xenarm-for-linus' of...

Merge branch 'xenarm-for-linus' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm into stable/for-linus-3.7

* 'xenarm-for-linus' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm

:
  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
  arm: initial Xen support

Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parents c341ca45 bbd6eb29
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
@@ -7752,6 +7752,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
@@ -1897,6 +1897,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
@@ -251,6 +251,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/
+68 −0
Original line number Diff line number Diff line
/*
 * Xen Virtual Machine for unprivileged guests
 *
 * Based on ARM Ltd. Versatile Express CoreTile Express (single CPU)
 * Cortex-A15 MPCore (V2P-CA15)
 *
 */

/dts-v1/;

/ {
	model = "XENVM-4.2";
	compatible = "xen,xenvm-4.2", "xen,xenvm";
	interrupt-parent = <&gic>;
	#address-cells = <2>;
	#size-cells = <2>;

	chosen {
		/* this field is going to be adjusted by the hypervisor */
		bootargs = "console=hvc0 root=/dev/xvda";
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a15";
			reg = <0>;
		};
	};

	memory@80000000 {
		device_type = "memory";
		/* this field is going to be adjusted by the hypervisor */
		reg = <0 0x80000000 0 0x08000000>;
	};

	gic: interrupt-controller@2c001000 {
		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
		#interrupt-cells = <3>;
		#address-cells = <0>;
		interrupt-controller;
		reg = <0 0x2c001000 0 0x1000>,
		      <0 0x2c002000 0 0x100>;
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts = <1 13 0xf08>,
			     <1 14 0xf08>,
			     <1 11 0xf08>,
			     <1 10 0xf08>;
	};

	hypervisor {
		compatible = "xen,xen-4.2", "xen,xen";
		/* this field is going to be adjusted by the hypervisor */
		reg = <0 0xb0000000 0 0x20000>;
		/* this field is going to be adjusted by the hypervisor */
		interrupts = <1 15 0xf08>;
	};

	motherboard {
		arm,v2m-memory-map = "rs1";
	};
};
Loading