xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>
To: Stefano Stabellini
	<stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
Cc: xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR@public.gmane.org,
	linaro-dev-cunTk1MwBs8s++Sfvej+rw@public.gmane.org,
	Ian.Campbell-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org,
	arnd-r2nGTMty4D4@public.gmane.org,
	konrad.wilk-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
	catalin.marinas-5wv7dgnIgG8@public.gmane.org,
	tim-LM2mM/qkH7s@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [Xen-devel] [PATCH v2 07/23] xen/arm: Xen detection and shared_info page mapping
Date: Mon, 6 Aug 2012 17:23:01 +0100	[thread overview]
Message-ID: <501FEF65.1000304@citrix.com> (raw)
In-Reply-To: <1344263246-28036-7-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>

On 06/08/12 15:27, Stefano Stabellini wrote:
> Check for a "/xen" node in the device tree, if it is present set
> xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
> 
> Map the real shared info page using XENMEM_add_to_physmap with
> XENMAPSPACE_shared_info.
> 
> Changes in v2:
> 
> - replace pr_info with pr_debug.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
> ---
>  arch/arm/xen/enlighten.c |   52 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 52 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> index d27c2a6..102d823 100644
> --- a/arch/arm/xen/enlighten.c
> +++ b/arch/arm/xen/enlighten.c
> @@ -5,6 +5,9 @@
>  #include <asm/xen/hypervisor.h>
>  #include <asm/xen/hypercall.h>
>  #include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/of_irq.h>
> +#include <linux/of_address.h>
>  
>  struct start_info _xen_start_info;
>  struct start_info *xen_start_info = &_xen_start_info;
> @@ -33,3 +36,52 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
>  	return -ENOSYS;
>  }
>  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
> +
> +/*
> + * == Xen Device Tree format ==
> + * - /xen node;
> + * - compatible "arm,xen";
> + * - one interrupt for Xen event notifications;
> + * - one memory region to map the grant_table.
> + */

These needs to be documented in Documentation/devicetree/bindings/ and
should be sent to the devicetree-discuss mailing list for review.

The node should be called 'hypervisor' I think.

The first word of the compatible string is the vendor/organization that
defined the binding so should be "xen" here.  This does give a odd
looking "xen,xen" but we'll have to live with that.

I'd suggest that the DT provided by the hypervisor or tools give the
hypercall ABI version in the compatible string as well.  e.g.,

hypervisor {
    compatible = "xen,xen-4.3", "xen,xen"
};

I missed the Xen patch that adds this node for dom0.  Can you point me
to it?

David

> +static int __init xen_guest_init(void)
> +{
> +	struct xen_add_to_physmap xatp;
> +	static struct shared_info *shared_info_page = 0;
> +	struct device_node *node;
> +
> +	node = of_find_compatible_node(NULL, NULL, "arm,xen");
> +	if (!node) {
> +		pr_debug("No Xen support\n");
> +		return 0;
> +	}
> +	xen_domain_type = XEN_HVM_DOMAIN;
> +
> +	if (!shared_info_page)
> +		shared_info_page = (struct shared_info *)
> +			get_zeroed_page(GFP_KERNEL);
> +	if (!shared_info_page) {
> +		pr_err("not enough memory\n");
> +		return -ENOMEM;
> +	}
> +	xatp.domid = DOMID_SELF;
> +	xatp.idx = 0;
> +	xatp.space = XENMAPSPACE_shared_info;
> +	xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
> +	if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
> +		BUG();
> +
> +	HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
> +
> +	/* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
> +	 * page, we use it in the event channel upcall and in some pvclock
> +	 * related functions. We don't need the vcpu_info placement
> +	 * optimizations because we don't use any pv_mmu or pv_irq op on
> +	 * HVM.
> +	 * The shared info contains exactly 1 CPU (the boot CPU). The guest
> +	 * is required to use VCPUOP_register_vcpu_info to place vcpu info
> +	 * for secondary CPUs as they are brought up. */
> +	per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
> +	return 0;
> +}
> +core_initcall(xen_guest_init);

  parent reply	other threads:[~2012-08-06 16:23 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-06 14:25 [PATCH v2 00/23] Introduce Xen support on ARM Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 01/23] arm: initial Xen support Stefano Stabellini
2012-08-07 18:10   ` Konrad Rzeszutek Wilk
2012-08-08 16:31     ` Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 02/23] xen/arm: hypercalls Stefano Stabellini
2012-08-08 12:41   ` Dave Martin
2012-08-09 15:37     ` Stefano Stabellini
2012-08-09 16:50       ` Dave Martin
2012-08-06 14:27 ` [PATCH v2 06/23] xen: missing includes Stefano Stabellini
2012-08-07 18:14   ` Konrad Rzeszutek Wilk
2012-08-08 16:38     ` Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 10/23] xen/arm: compile and run xenbus Stefano Stabellini
2012-08-07 18:21   ` Konrad Rzeszutek Wilk
2012-08-07 18:44     ` Daniel De Graaf
2012-08-08 16:51       ` Stefano Stabellini
2012-08-08 17:01         ` Daniel De Graaf
     [not found]           ` <50229B70.3090507-+05T5uksL2qpZYMLLGbcSA@public.gmane.org>
2012-08-08 17:19             ` Stefano Stabellini
2012-08-08 17:33               ` Daniel De Graaf
2012-08-08 17:42                 ` Stefano Stabellini
2012-08-09 16:54                   ` Konrad Rzeszutek Wilk
     [not found] ` <alpine.DEB.2.02.1208061428060.4645-7Z66fg9igcxYtxbxJUhB2Dgeux46jI+i@public.gmane.org>
2012-08-06 14:27   ` [PATCH v2 03/23] xen/arm: page.h definitions Stefano Stabellini
     [not found]     ` <1344263246-28036-3-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:13       ` Konrad Rzeszutek Wilk
2012-08-08 16:33         ` Stefano Stabellini
2012-08-06 14:27   ` [PATCH v2 04/23] xen/arm: sync_bitops Stefano Stabellini
     [not found]     ` <1344263246-28036-4-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:13       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 05/23] xen/arm: empty implementation of grant_table arch specific functions Stefano Stabellini
     [not found]     ` <1344263246-28036-5-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:13       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 07/23] xen/arm: Xen detection and shared_info page mapping Stefano Stabellini
     [not found]     ` <1344263246-28036-7-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-06 16:23       ` David Vrabel [this message]
2012-08-08 16:24         ` [Xen-devel] " Stefano Stabellini
2012-08-07 18:17       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 08/23] xen/arm: Introduce xen_pfn_t for pfn and mfn types Stefano Stabellini
     [not found]     ` <1344263246-28036-8-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:18       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 09/23] xen/arm: Introduce xen_ulong_t for unsigned long Stefano Stabellini
     [not found]     ` <1344263246-28036-9-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:18       ` Konrad Rzeszutek Wilk
2012-08-08 16:42         ` Stefano Stabellini
2012-08-06 14:27   ` [PATCH v2 11/23] xen: do not compile manage, balloon, pci, acpi and cpu_hotplug on ARM Stefano Stabellini
     [not found]     ` <1344263246-28036-11-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:23       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 12/23] xen/arm: introduce CONFIG_XEN " Stefano Stabellini
     [not found]     ` <1344263246-28036-12-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:23       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 13/23] xen/arm: get privilege status Stefano Stabellini
     [not found]     ` <1344263246-28036-13-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:24       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 14/23] xen/arm: initialize grant_table on ARM Stefano Stabellini
2012-08-06 14:27   ` [PATCH v2 15/23] xen/arm: receive Xen events " Stefano Stabellini
2012-08-07 18:30     ` Konrad Rzeszutek Wilk
     [not found]       ` <20120807183036.GR15053-6K5HmflnPlqSPmnEAIUT9EEOCMrvLtNR@public.gmane.org>
2012-08-08 18:05         ` Stefano Stabellini
2012-08-06 14:27   ` [PATCH v2 16/23] xen: clear IRQ_NOAUTOEN and IRQ_NOREQUEST Stefano Stabellini
     [not found]     ` <1344263246-28036-16-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:31       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 18/23] xen: allow privcmd for HVM guests Stefano Stabellini
     [not found]     ` <1344263246-28036-18-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:31       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 19/23] xen/arm: compile blkfront and blkback Stefano Stabellini
     [not found]     ` <1344263246-28036-19-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:32       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 20/23] xen/arm: compile netback Stefano Stabellini
     [not found]     ` <1344263246-28036-20-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:32       ` Konrad Rzeszutek Wilk
2012-08-06 14:27   ` [PATCH v2 21/23] xen: update xen_add_to_physmap interface Stefano Stabellini
     [not found]     ` <1344263246-28036-21-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:33       ` Konrad Rzeszutek Wilk
2012-08-08 17:22         ` Stefano Stabellini
2012-08-06 14:27   ` [PATCH v2 22/23] arm/v2m: initialize arch_timers even if v2m_timer is not present Stefano Stabellini
2012-08-06 14:27   ` [PATCH v2 23/23] [HACK] xen/arm: implement xen_remap_domain_mfn_range Stefano Stabellini
     [not found]     ` <1344263246-28036-23-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:39       ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 17/23] xen/arm: implement alloc/free_xenballooned_pages with alloc_pages/kfree Stefano Stabellini
     [not found]   ` <1344263246-28036-17-git-send-email-stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org>
2012-08-07 18:31     ` Konrad Rzeszutek Wilk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=501FEF65.1000304@citrix.com \
    --to=david.vrabel-sxgqhf6nn4dqt0dzr+alfa@public.gmane.org \
    --cc=Ian.Campbell-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
    --cc=konrad.wilk-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=linaro-dev-cunTk1MwBs8s++Sfvej+rw@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ@public.gmane.org \
    --cc=tim-LM2mM/qkH7s@public.gmane.org \
    --cc=xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).