]> xenbits.xensource.com Git - xen.git/log
xen.git
11 years agoMerge branch 'staging' of ssh://xenbits.xen.org/home/xen/git/xen into staging
Ian Campbell [Thu, 23 May 2013 13:23:32 +0000 (14:23 +0100)]
Merge branch 'staging' of ssh://xenbits.xen.org/home/xen/git/xen into staging

11 years agodrivers/exynos4210: Return -ENOMEM when ioremap has failed
Julien Grall [Wed, 22 May 2013 11:43:12 +0000 (12:43 +0100)]
drivers/exynos4210: Return -ENOMEM when ioremap has failed

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Disable interrupts for the entire duration of the context switch
Jaeyong Yoo [Wed, 22 May 2013 02:34:18 +0000 (02:34 +0000)]
xen/arm: Disable interrupts for the entire duration of the context switch

Not just while saving state. Otherwise there is a race between interrupts
arriving and updating the LR state and gic_restore_state overwriting them with
the saved state.

With this change we no longer need to disable interrupts in gic_restore_state.

Signed-off-by: Jaeyong Yoo <jaeyong.yoo@samsung.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
[ ijc -- rewrote commit message ]

11 years agox86/EFI: fix boot for pre-UEFI systems
Eric Shelton [Thu, 23 May 2013 11:08:51 +0000 (13:08 +0200)]
x86/EFI: fix boot for pre-UEFI systems

efi/boot.c makes a call to QueryVariableInfo on all systems.  However,
as it is only promised for UEFI 2.0+ systems, pre-UEFI systems can
hang or crash on this call.  The below patch adds a version check, a
technique used in other parts of the Xen EFI codebase.

Signed-off-by: Eric Shelton <eshelton@pobox.com>
Check runtime services version instead of EFI version (while generally
they would be in sync, nothing requires them to be).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
11 years agox86: fix boot time APIC mode detection
Jan Beulich [Thu, 23 May 2013 11:08:32 +0000 (13:08 +0200)]
x86: fix boot time APIC mode detection

current_cpu_data becomes valid only relatively late in the boot
process, so looking there for a particular feature early in the game
would generally give the appearance of the feature being unavailable.

Getting this wrong means that at kexec time the system would get
returned to xAPIC mode, causing disconnect_bsp_APIC() to try to access
the APIC page, which on systems with x2APIC pre-enabled will never get
set up.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
11 years agohotplug/Linux: xendomains compatibility with xl
Ian Murray [Thu, 23 May 2013 10:33:34 +0000 (11:33 +0100)]
hotplug/Linux: xendomains compatibility with xl

The xl save file uses a different header string to the xm one. Teach the
xendomains script about it.

Signed-off-by: Ian MURRAY <murrayie@yahoo.co.uk>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
[ ijc -- rewrote commit message ]

11 years agoxen/arm: Remove leading +1 when hypervisor compat property is created
Julien Grall [Thu, 16 May 2013 22:34:11 +0000 (23:34 +0100)]
xen/arm: Remove leading +1 when hypervisor compat property is created

When a static array with string is created, the size of this array contains
the \0.

This error was raised with gcc 4.7 because, the local variables are not always
initialized to 0.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
11 years agonetif: document feature-split-event-channel
Wei Liu [Wed, 22 May 2013 14:44:45 +0000 (16:44 +0200)]
netif: document feature-split-event-channel

This is a new feature to separate TX and RX notification. Document it in
canonical header for future reference.

For reference implementation, please see Xen network driver in Linux kernel.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
11 years agoAMD/iommu: SR56x0 Erratum 64 - Reset all head & tail pointers
Andrew Cooper [Wed, 22 May 2013 13:26:52 +0000 (15:26 +0200)]
AMD/iommu: SR56x0 Erratum 64 - Reset all head & tail pointers

Reference at time of patch:
http://support.amd.com/us/ChipsetMotherboard_TechDocs/46303.pdf

Erratum 64 states that the head and tail pointers for the Command buffer and
Event log are only reset on a cold boot, not a warm boot.

While the erratum is limited to systems using SR56xx chipsets (such as Family
10h CPUs), resetting the pointers is a sensible action in all cases, including
the PPR log for consistency.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
11 years agox86: Use explicit widths for MMIO read/write, and add 64bit variants
Andrew Cooper [Wed, 22 May 2013 13:25:37 +0000 (15:25 +0200)]
x86: Use explicit widths for MMIO read/write, and add 64bit variants

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
11 years agoQEMU_TAG update
Ian Jackson [Tue, 21 May 2013 14:00:01 +0000 (15:00 +0100)]
QEMU_TAG update

11 years agoQEMU_TAG update
Ian Jackson [Tue, 21 May 2013 10:50:57 +0000 (11:50 +0100)]
QEMU_TAG update

11 years agofix XSA-46 regression with xend/xm
Jan Beulich [Tue, 21 May 2013 09:32:34 +0000 (11:32 +0200)]
fix XSA-46 regression with xend/xm

The hypervisor side changes for XSA-46 require the tool stack to now
always map the guest pIRQ before granting access permission to the
underlying host IRQ (GSI). This in particular requires that pciif.py
no longer can skip this step (assuming qemu would do it) for HVM
guests.

This in turn exposes, however, an inconsistency between xend and qemu:
The former wants to always establish 1:1 mappings between pIRQ and host
IRQ (for non-MSI only of course), while the latter always wants to
allocate an arbitrary mapping. Since the whole tool stack obviously
should always agree on the mapping model, make libxc enforce the 1:1
mapping as the more natural one (as well as being the one that allows
for easier debugging, since there no need to find out the extra
mapping). Users of libxc that want to establish a particular (rather
than an allocated) mapping are still free to do so, as well as tool
stacks not based on libxc wanting to implement an allocation based
model (which is why it's not the hypervisor that's being changed to
enforce either model).

Since libxl, like xend, already uses a 1:1 model, it's unaffected by
the libxc change (and it being unaffected by the original hypervisor
side changes is - afaict - simply due to qemu getting spawned at a
later point in time compared to the xend event flow).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Andreas Falck <falck.andreas.lists@gmail.com> (on 4.1)
Tested-by: Gordan Bobic <gordan@bobich.net> (on 4.2)
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
11 years agotools: fix dependency file generation
Jan Beulich [Tue, 21 May 2013 08:16:30 +0000 (10:16 +0200)]
tools: fix dependency file generation

There is a small set of places where files in subdirectories get
compiled from the parent directory. Dependency file wise this is no
problem as long as the files use names distinct without regard to the
directories they sit in, and tools/console/ violates this (in having
two main.c files). Hence we need to avoid losing the directory name,
both to ensure the two compiler instances don't simultaneously write
to the same file (happening of which is what triggered me looking
into this) and to guarantee dependencies for all files will be seen
by make on an incremental rebuild.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agox86/HVM: RTC code must be in line with WAET flags passed by hvmloader
Jan Beulich [Tue, 21 May 2013 08:15:13 +0000 (10:15 +0200)]
x86/HVM: RTC code must be in line with WAET flags passed by hvmloader

With hvmloader telling the guest that it may skip REG_C reads during
the processing of RTC interrupts, the emulation code must not depend
upon these reads to occur. Introduce two modes of operation for the
emulation code, and short of a HVM parameter (too late to be
introduced for 4.3) hard code the mode determination to always assume
that Windows-conforming one for the time being.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Roger Pau Monné <roger.pau@citrix.com> (FreeBSD guest)
11 years agox86/HVM: properly handle RTC periodic timer even when !RTC_PIE
Jan Beulich [Tue, 21 May 2013 08:14:21 +0000 (10:14 +0200)]
x86/HVM: properly handle RTC periodic timer even when !RTC_PIE

Since in that case the processing it pt_intr_post() won't occur, we
need to do some additional work in pt_update_irq(). Additionally we
must not pay attention to the respective IRQ being masked.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Roger Pau Monné <roger.pau@citrix.com> (FreeBSD guest)
11 years agox86/HVM: adjust IRQ (de-)assertion
Jan Beulich [Tue, 21 May 2013 08:12:50 +0000 (10:12 +0200)]
x86/HVM: adjust IRQ (de-)assertion

De-assertion should only happen when RTC_IRQF gets cleared, i.e. upon
REG_C reads. Assertion should be done only when the flag transitions
from 0 to 1.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Roger Pau Monné <roger.pau@citrix.com> (FreeBSD guest)
11 years agox86/hvm: avoid p2m lookups for vlapic accesses. 4.3.0-rc2 xen-4.3.0-rc2
Tim Deegan [Thu, 9 May 2013 12:06:53 +0000 (13:06 +0100)]
x86/hvm: avoid p2m lookups for vlapic accesses.

The LAPIC base address is a known GFN, so we can skip looking up the
p2m: we know it should be handled as emulated MMIO.  That helps
performance in older Windows OSes, which make a _lot_ of TPR accesses.

This will change the behaviour of any OS that maps other
memory/devices at its LAPIC address; the new behaviour (the LAPIC
mapping always wins) is closer to actual hardware behaviour.

Signed-off-by: Tim Deegan <tim@xen.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
11 years agox86/vMCE: remove is_vmce_ready check
Liu Jinsong [Thu, 16 May 2013 08:34:42 +0000 (10:34 +0200)]
x86/vMCE: remove is_vmce_ready check

Remove is_vmce_ready() check since
1. it's problematic and overkilled: it checks if virq bind to dom0 mcelog
driver. That's not correct, since mcelog is just a dom0 driver used to log
error info, irrelated to dom0 vmce injection. It's also overkilled, defaulty
dom0 disabled mcelog driver, under such case this checking would resulting
in system crash:
(XEN) MCE: This error page is ownded by DOM 0
(XEN) DOM0 not ready for vMCE
(XEN) domain_crash called from mcaction.c:133
(XEN) Domain 0 reported crashed by domain 32767 on cpu#31:
(XEN) Domain 0 crashed: rebooting machine in 5 seconds.
(XEN) Resetting with ACPI MEMORY or I/O RESET_REG.

2. it's redundant: hypervisor in fact has checked
1). whether dom0 vmce ready or not (at inject_vmce()), via checking
    vmce trap callback, to make sure vmce injection OK;
2). whether dom0 mcelog driver ready or not (at mce_softirq()), via
    virq binding, to make sure error log works;

3. it's deprecated: for hvm, it checks whether guest vcpu has different
virtual family/model with that of host pcpu --> that's deprecated, since
vMCE has changed a lot, not bound to host MCE any more.

Signed-off-by: Liu Jinsong <jinsong.liu@intel.com>
Acked-by: Christoph Egger <chegger@amazon.de>
11 years agox86/shadow: fix off-by-one in MMIO permission check
Jan Beulich [Wed, 15 May 2013 12:34:05 +0000 (14:34 +0200)]
x86/shadow: fix off-by-one in MMIO permission check

iomem_access_permitted() wants an inclusive range as input.

Also use pfn_to_paddr() in nearby code instead of open coding it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Tim Deegan <tim@xen.org>
11 years agox86/IO-APIC: fix guest RTE write corner cases
Jan Beulich [Wed, 15 May 2013 08:52:02 +0000 (10:52 +0200)]
x86/IO-APIC: fix guest RTE write corner cases

This fixes two regressions from c/s 20143:a7de5bd776ca ("x86: Make the
hypercall PHYSDEVOP_alloc_irq_vector hypercall dummy"):

For one, IRQs that had their vector set up by Xen internally without a
handler ever having got set (e.g. via "com<n>=..." without a matching
consumer option like "console=com<n>") would wrongly call
add_pin_to_irq() here, triggering the BUG_ON() in that function.

Second, when assign_irq_vector() fails this addition to irq_2_pin[]
needs to be undone.

In the context of this I'm also surprised that the irq_2_pin[]
manipulations here occur without any lock, i.e. rely on Dom0 to do
some sort of serialization.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
11 years agoXen Power Management Maintainer
Liu Jinsong [Wed, 15 May 2013 08:51:20 +0000 (10:51 +0200)]
Xen Power Management Maintainer

Separate Xen ACPI and Xen Power Management, co-maintain Xen Power Management.

Signed-off-by: Liu Jinsong <jinsong.liu@intel.com>
Acked-by: "Wang, Winston L" <winston.l.wang@intel.com>
Acked-by: "Wei, Gang" <gang.wei@intel.com>
Make the affected file lists a little more precise.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
11 years agoXen Machine Check (MCA) & RAS Maintainer
Liu Jinsong [Wed, 15 May 2013 08:48:26 +0000 (10:48 +0200)]
Xen Machine Check (MCA) & RAS Maintainer

Co-maintain Xen Machine Check (MCA) & RAS

Signed-off-by: Liu Jinsong <jinsong.liu@intel.com>
Acked-by: Christoph Egger <chegger@amazon.de>
Acked-by: Yunhong Jiang <yunhong.jiang@intel.com>
11 years agoxen/arm: support "arm, armv8-timer" DTS compatibility.
Ian Campbell [Mon, 13 May 2013 16:23:01 +0000 (17:23 +0100)]
xen/arm: support "arm, armv8-timer" DTS compatibility.

On v8 the compatibility name differs but the node is otherwise specified the
same. See linux/Documentation/devicetree/bindings/arm/arch_timer.txt

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
11 years agoxen/arm64: do not clobber callee saved register in early_putch
Ian Campbell [Mon, 13 May 2013 16:23:00 +0000 (17:23 +0100)]
xen/arm64: do not clobber callee saved register in early_putch

x23 is callee saved in the ARM 64 bit calling convention. Use x15 instead
which is a temporary register which need not be preserved.

Fixes a random crash during boot.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
11 years agoxen/arm: Add emacs magic blocks to asm files
Ian Campbell [Mon, 13 May 2013 16:22:59 +0000 (17:22 +0100)]
xen/arm: Add emacs magic blocks to asm files

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
11 years agolibxl: Make 'xl vcpu-set' work properly on overcommited hosts with an override.
Konrad Rzeszutek Wilk [Mon, 13 May 2013 19:29:14 +0000 (15:29 -0400)]
libxl: Make 'xl vcpu-set' work properly on overcommited hosts with an override.

The libxl_cpu_bitmap_alloc(..) function, if provided with a zero
value for max CPUs will call xc_get_max_cpus() which will retrieve
the number of physical CPUs the host has. This is usually
OK if the guest's maxvcpus <= host pcpus. But if the value
is different, then the bitmap for VCPUs is limited by the
number of CPUs the host has.

This is incorrect as what we want is to hotplug in the guest
the amount of CPUs that the user specified on the command line
and not be limited by the amount of physical CPUs.

This means that a guest config like this:

vcpus=8
maxvcpus=32

and on a 4 PCPU machine doing

xl vcpu-set <guest name> 16

won't work. This is b/c the the size of the bitmap is one byte
so it can only hold up to 8 VCPUs. Hence anything above that
is going to be ignored.

Note that this patch also fixes the bitmap setting - as it
would set all of the bits allowed. Meaning if the user had a 4PCPU
host we would still allow the user to set 8VCPUs. This second
iteration of the patch fixes this.

Note that all of the libxl_cpu_bitmap_[test|set] silently ignore
any test or sets above its size:

     if (bit >= bitmap->size * 8)
         return 0;

so we were never notified off this bug.

This patch warns the user if they are trying to do this. If the
user really wants to do this they have to provide the --ignore-host
parameter to bypass this check.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
11 years agolibxl: claim: Print the values in 'xl info' unconditionally
Konrad Rzeszutek Wilk [Mon, 13 May 2013 19:29:13 +0000 (15:29 -0400)]
libxl: claim: Print the values in 'xl info' unconditionally

During the review of "libxl: Change claim_mode from bool to int."
Ian Campbell suggested that the xl info should print the
claim information irregardless of the global claim_mode value.

Suggested-by: Ian Campbell <Ian.Campbell@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
11 years agolibxl: Change claim_mode from bool to int.
Konrad Rzeszutek Wilk [Mon, 13 May 2013 19:29:12 +0000 (15:29 -0400)]
libxl: Change claim_mode from bool to int.

During the review it was noticed that it would be better if internally
the claim_mode was held as an 'int' instead of a 'bool'. The reason
is that during the startup of xl, one has call the libxl_defbool_setdefault.
otherwise any usage of claim_mode would result in assert break.

The assert is due to the fact that using defbool without any set
values (either true of false) will cause it hit an assertion.

If we use an 'int' we don't have to worry about it and by default
the value of zero will suffice for checks whether the claim is
enabled or disabled.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
11 years agohypervisor/xen/tools: Remove the XENMEM_get_oustanding_pages and provide the data...
Konrad Rzeszutek Wilk [Mon, 13 May 2013 19:29:11 +0000 (15:29 -0400)]
hypervisor/xen/tools: Remove the XENMEM_get_oustanding_pages and provide the data via xc_phys_info

During the review of the patches it was noticed that there exists
a race wherein the 'free_memory' value consists of information from
two hypercalls. That is the XEN_SYSCTL_physinfo and XENMEM_get_outstanding_pages.

The free memory the host has available for guest is the difference between
the 'free_pages' (from XEN_SYSCTL_physinfo) and 'outstanding_pages'. As they
are two hypercalls many things can happen in between the execution of them.

This patch resolves this by eliminating the XENMEM_get_outstanding_pages
hypercall and providing the free_pages and outstanding_pages information
via the xc_phys_info structure.

It also removes the XSM hooks and adds locking as needed.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Reviewed-by: Tim Deegan <tim@xen.org>
Acked-by: Keir Fraser <keir.xen@gmail.com>
11 years agoUpdate SEABIOS_UPSTREAM_TAG
Ian Campbell [Fri, 10 May 2013 11:09:24 +0000 (12:09 +0100)]
Update SEABIOS_UPSTREAM_TAG

Pull in two fixes for newer IASL compilers.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
11 years agoUse {git, hg, svn} commit id if available for xen_changeset
Marek Marczykowski [Wed, 8 May 2013 23:07:05 +0000 (01:07 +0200)]
Use {git, hg, svn} commit id if available for xen_changeset

As Xen uses git as primary repository, get git commit id for
xen_changeset info.

Signed-off-by: Marek Marczykowski <marmarek@invisiblethingslab.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
11 years agoalso move compat mode VCPUOP_register_vcpu_info into common code
Jan Beulich [Mon, 13 May 2013 12:36:06 +0000 (14:36 +0200)]
also move compat mode VCPUOP_register_vcpu_info into common code

Otherwise, with arch_compat_vcpu_op() calling arch_do_vcpu_op() to
handle it, it results in -ENOSYS after 6ff9e4f7 ("xen: move
VCPUOP_register_vcpu_info to common code") for 32-bit x86 domains.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
11 years agoxen/arm64: Remove hardcoded value for gic in assembly code
Julien Grall [Sun, 28 Apr 2013 20:14:21 +0000 (21:14 +0100)]
xen/arm64: Remove hardcoded value for gic in assembly code

- arm64: use V2M_GIC_BASE_ADDRESS
- only expose GIC_*_ADDRESS to assembly. The C code uses base addresses
provide by the device tree

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: WORKAROUND Support kick cpus and switch to hypervisor for the exynos5
Julien Grall [Sun, 28 Apr 2013 20:07:20 +0000 (21:07 +0100)]
xen/arm: WORKAROUND Support kick cpus and switch to hypervisor for the exynos5

Use machine ID to know what is the current board. This value is only given
to the first CPU by the bootloader.

When the exynos 5 starts, there is only one CPU up. Xen needs to start the
secondary cpu. The latter boots in secure mode.

Theses modifications aim to be removed as soon as possible. It should
be moved either in a platform specific boot-wrapper (which will be start
before Xen), or in the bootloader (assuming U-Boot/Grub will support SMP).

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add platform specific code for the exynos5
Julien Grall [Sun, 28 Apr 2013 19:57:44 +0000 (20:57 +0100)]
xen/arm: Add platform specific code for the exynos5

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add Exynos 4210 UART support for early printk
Anthony PERARD [Sun, 28 Apr 2013 19:56:40 +0000 (20:56 +0100)]
xen/arm: Add Exynos 4210 UART support for early printk

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add Exynos 4210 UART support
Anthony PERARD [Sun, 28 Apr 2013 19:47:52 +0000 (20:47 +0100)]
xen/arm: Add Exynos 4210 UART support

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Don't use pl011 UART by default for early printk
Julien Grall [Sun, 28 Apr 2013 19:14:12 +0000 (20:14 +0100)]
xen/arm: Don't use pl011 UART by default for early printk

Add CONFIG_EARLY_PRINTK options in configs/arm{32,64}.mk to let the user
to choose if he wants to have early output, ie before the console is initialized.

This code is specific for each UART. When CONFIG_EARLY_PRINTK is enabled,
Xen will only be able to run on a board with this UART.

If a developper wants to add support for a new UART, he must implement the
following assembly macro/define:
   - EALY_UART_BASE_ADDRESS: variable which contains the physical base address
   for the UART
   - early_uart_init: initialize the UART
   - early_uart_ready: check and wait until the UART can transmit a new
   character
   - early_uart_transmit: transmit a character

For more details about the parameters of each function,
see arm{32,64}/debug-pl011.inc comments.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Remove setup_irq
Julien Grall [Tue, 7 May 2013 23:20:38 +0000 (00:20 +0100)]
xen/arm: Remove setup_irq

All calls to this function in ARM code have been removed. This function SHOULD
not be used. If someone calls this function, a linking error will occur.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Remove request_irq
Julien Grall [Tue, 7 May 2013 23:18:29 +0000 (00:18 +0100)]
xen/arm: Remove request_irq

All calls to this function in ARM code have been removed. This function SHOULD
not be used. If someone calls this function, a linking error will occur.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add versatile express platform
Julien Grall [Sun, 28 Apr 2013 18:48:29 +0000 (19:48 +0100)]
xen/arm: Add versatile express platform

This platform contains nearly nothing specific except the reset function.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: WORKAROUND 1:1 memory mapping for dom0
Julien Grall [Sat, 27 Apr 2013 21:52:44 +0000 (22:52 +0100)]
xen/arm: WORKAROUND 1:1 memory mapping for dom0

Currently xen doesn't implement SYS MMU. When a device will talk with dom0
with DMA request the domain will use GFN instead of MFN.
For instance on the arndale board, without this patch the network doesn't
work.

The 1:1 mapping is a workaround and MUST be remove as soon as a SYS MMU is
implemented in XEN.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Allow Xen to run on multiple platform without recompilation
Julien Grall [Sat, 27 Apr 2013 22:03:25 +0000 (23:03 +0100)]
xen/arm: Allow Xen to run on multiple platform without recompilation

Xen can include various platform support (ie: exynos5, versatile express...)
and choose during boot time a set of callbacks for the current board.
These callbacks will be called in places where each board can have specific
code. For the moment the callbacks are:
    - platform_init: additional initialization for the platform
    - platform_init_time: some platform (ie: Exynos 5) needs to initialize
    the timer with an uncommon way
    - platform_specific_mapping: add mapping to dom0 which are not specified
    in the device tree
    - platform_reset: reset the platform
    - platform_poweroff: poweroff the platform
    - platform_quirks: list of quirks for a specific board.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Use the device tree to map the address range and IRQ to dom0
Julien Grall [Sat, 27 Apr 2013 21:43:35 +0000 (22:43 +0100)]
xen/arm: Use the device tree to map the address range and IRQ to dom0

- gic_route_irq_to_guest takes a dt_irq instead of an IRQ number
- remove hardcoded address/IRQ

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Use device tree API in pl011 UART driver
Julien Grall [Sat, 27 Apr 2013 20:52:07 +0000 (21:52 +0100)]
xen/arm: Use device tree API in pl011 UART driver

Allow UART driver to retrieve all its information in the device tree.
It's possible to choose the pl011 driver via the Xen command line.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add generic UART to get the device in the device tree
Julien Grall [Sat, 27 Apr 2013 20:02:04 +0000 (21:02 +0100)]
xen/arm: Add generic UART to get the device in the device tree

This generic UART will find the right UART via xen command line
with dtuart=myserial.

"myserial" is the alias of the UART in the device tree. Xen will retrieve
the information via the device tree and call the initialization function for
this specific UART thanks to the device API.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
11 years agoxen/arm: New callback in uart_driver to get device tree interrupt structure
Julien Grall [Fri, 26 Apr 2013 19:36:35 +0000 (20:36 +0100)]
xen/arm: New callback in uart_driver to get device tree interrupt structure

The existing function serial_irq doesn't allow to retrieve if the interrupt
is edge or level trigger.

Use this function to routes IRQs for all serial ports which Xen is using
to Xen.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Introduce a generic way to use a device from the device tree
Julien Grall [Fri, 26 Apr 2013 19:14:50 +0000 (20:14 +0100)]
xen/arm: Introduce a generic way to use a device from the device tree

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Don't hardcode virtual timer IRQs
Julien Grall [Thu, 9 May 2013 17:11:02 +0000 (18:11 +0100)]
xen/arm: Don't hardcode virtual timer IRQs

Define virtual timer IRQs per VCPU

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Don't hardcode VGIC informations
Julien Grall [Fri, 26 Apr 2013 18:53:17 +0000 (19:53 +0100)]
xen/arm: Don't hardcode VGIC informations

- Define VGIC base address per domain. For the moment the base addresses
to dom0 base addresses.
- The number of interrupt lines (ie number of SPIs) is equal to:
    * 0 for guests
    * number of host SPIs for dom0

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Retrieve timer interrupts from the device tree
Julien Grall [Fri, 26 Apr 2013 18:45:26 +0000 (19:45 +0100)]
xen/arm: Retrieve timer interrupts from the device tree

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Use hierarchical device tree to retrieve GIC information
Julien Grall [Fri, 26 Apr 2013 18:14:10 +0000 (19:14 +0100)]
xen/arm: Use hierarchical device tree to retrieve GIC information

- Remove early parsing for GIC addresses
- Remove hard coded maintenance IRQ number

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Introduce request_dt_irq
Julien Grall [Tue, 7 May 2013 23:04:07 +0000 (00:04 +0100)]
xen/arm: Introduce request_dt_irq

This function will replace request_irq in a later patch. It takes a dt_irq
as first argument instead of an unsigned int.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Introduce setup_dt_irq
Julien Grall [Tue, 7 May 2013 23:03:07 +0000 (00:03 +0100)]
xen/arm: Introduce setup_dt_irq

This function will replace setup_irq in later patch. It takes a dt_irq
as first argument instead of an unsigned int.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Introduce gic_irq_xlate
Julien Grall [Fri, 26 Apr 2013 16:58:18 +0000 (17:58 +0100)]
xen/arm: Introduce gic_irq_xlate

This function translates an interrupt specifier to an IRQ number and IRQ
type (ie: level trigger, edge trigger,...). It's GIC specific.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Introduce gic_route_dt_irq
Julien Grall [Fri, 26 Apr 2013 16:51:26 +0000 (17:51 +0100)]
xen/arm: Introduce gic_route_dt_irq

This function routes an IRQ to a specific cpu. The IRQ is retrieved via
the device tree.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add helpers to retrieve an interrupt description from the device tree
Julien Grall [Fri, 26 Apr 2013 16:33:01 +0000 (17:33 +0100)]
xen/arm: Add helpers to retrieve an interrupt description from the device tree

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add helpers to retrieve an address from the device tree
Julien Grall [Fri, 26 Apr 2013 16:28:21 +0000 (17:28 +0100)]
xen/arm: Add helpers to retrieve an address from the device tree

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add helpers to use the device tree
Julien Grall [Fri, 26 Apr 2013 16:09:25 +0000 (17:09 +0100)]
xen/arm: Add helpers to use the device tree

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Create a hierarchical device tree
Julien Grall [Fri, 26 Apr 2013 14:57:22 +0000 (15:57 +0100)]
xen/arm: Create a hierarchical device tree

Add function to parse the device tree and create a hierarchical tree.

This code is based on drivers/of/base.c in linux source.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Add helpers ioreadl/iowritel
Julien Grall [Fri, 10 May 2013 16:24:33 +0000 (17:24 +0100)]
xen/arm: Add helpers ioreadl/iowritel

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/arm: Introduce ioremap_attr, ioremap_cache, ioremap_nocache, ioremap_wc
Julien Grall [Wed, 8 May 2013 22:33:23 +0000 (23:33 +0100)]
xen/arm: Introduce ioremap_attr, ioremap_cache, ioremap_nocache, ioremap_wc

Map physical range in virtual memory with a specific mapping attribute.
Also add new mapping attributes for ARM: PAGE_HYPERVISOR_NOCACHE
and PAGE_HYPERVISOR_WC.

This function replaces early_ioremap which is only able to deal with 2Mb
aligned mapping. Therefore, vmap initialization has been moved earlier.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoxen/mm: Align virtual address on PAGE_SIZE in iounmap
Julien Grall [Fri, 10 May 2013 16:22:16 +0000 (17:22 +0100)]
xen/mm: Align virtual address on PAGE_SIZE in iounmap

ioremap function can unlikely return an unaligned virtual address if
the physical address itself is unaligned on a page size.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
[ ijc -- include asm/page.h to fix build error on x86 ]

11 years agoxen/arm: Extend create_xen_entries prototype to take mapping attribute
Julien Grall [Wed, 8 May 2013 22:59:58 +0000 (23:59 +0100)]
xen/arm: Extend create_xen_entries prototype to take mapping attribute

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agoMerge branch 'staging' of ssh://xenbits.xen.org/home/xen/git/xen into staging
Ian Campbell [Mon, 13 May 2013 10:44:02 +0000 (11:44 +0100)]
Merge branch 'staging' of ssh://xenbits.xen.org/home/xen/git/xen into staging

11 years agox86/EFI: fix build
Jan Beulich [Mon, 13 May 2013 10:07:40 +0000 (12:07 +0200)]
x86/EFI: fix build

... after f6254405 ("xen/arm: compile and initialize vmap") moving the
map_pages_to_xen() declaration.

Reported-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
11 years agotools/libfsimage: Fix clean and distclean make targets
Daniel Kiper [Fri, 10 May 2013 15:33:54 +0000 (17:33 +0200)]
tools/libfsimage: Fix clean and distclean make targets

If there is a single colon for a given target and the target
is redefined in another place (e.g. in included file) then
make executes only new target and displays following warning:

Makefile:35: warning: overriding commands for target `clean'
tools/libfsimage/common/../../../tools/libfsimage/Rules.mk:25:
warning: ignoring old commands for target `clean'

To cope with that issue define all required targets as double-colon
rules. Additionally, remove some redundant stuff.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
11 years agodocs: make 'gmake dist-docs' work
Christoph Egger [Fri, 10 May 2013 14:07:44 +0000 (16:07 +0200)]
docs: make 'gmake dist-docs' work

doc: buildsystem fixes

- use correct pathes (make gmake dist-docs from toplevel directory work)
- configure detects perl as tools/configure does

Signed-off-by: Christoph Egger <chegger@amazon.de>
Reviewed-by: Matthew Wilson <msw@amazon.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
[ ijc -- reran autogen.sh ]

12 years agoxen/arm: gic_disable_cpu must be called with interrupts disabled
Julien Grall [Tue, 16 Apr 2013 13:38:27 +0000 (14:38 +0100)]
xen/arm: gic_disable_cpu must be called with interrupts disabled

gic_disable_cpu is only called with interrupt disabled.
Use spin_lock instead of spin_lock_irq and check the function is
called with interrupts disabled.

Signed-off-by: Julien Grall <julien.grall@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agodocs: Change cd-insert docs to match behavior
George Dunlap [Fri, 10 May 2013 11:26:14 +0000 (12:26 +0100)]
docs: Change cd-insert docs to match behavior

xl cd-insert takes a plain file.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: Switch to SYS_STATE_boot right after console setup
Julien Grall [Fri, 10 May 2013 02:17:53 +0000 (03:17 +0100)]
xen/arm: Switch to SYS_STATE_boot right after console setup

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: Load dtb after dom0 kernel
Julien Grall [Fri, 10 May 2013 02:17:52 +0000 (03:17 +0100)]
xen/arm: Load dtb after dom0 kernel

On some setup, the first linux page table is at 0x40004000. Xen will load
dom0 device tree at 0x4000100. In case of the device tree is big, linux will
corrupt the device tree.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: Fix early_panic when EARLY_PRINTK is disabled
Julien Grall [Fri, 10 May 2013 02:17:51 +0000 (03:17 +0100)]
xen/arm: Fix early_panic when EARLY_PRINTK is disabled

Even if EARLY_PRINTK is not enabled, early_panic must never return.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: Bump early printk internal buffer to 512
Julien Grall [Fri, 10 May 2013 02:17:50 +0000 (03:17 +0100)]
xen/arm: Bump early printk internal buffer to 512

When debug is enabled in device tree code, some lines
are bigger than 80 characters.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: Remove duplicated GICD_ICPIDR2 definition
Julien Grall [Fri, 10 May 2013 02:17:49 +0000 (03:17 +0100)]
xen/arm: Remove duplicated GICD_ICPIDR2 definition

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: Don't allow dom0 to access to vpl011 UART0 memory range
Julien Grall [Fri, 10 May 2013 02:17:48 +0000 (03:17 +0100)]
xen/arm: Don't allow dom0 to access to vpl011 UART0 memory range

As vpl011 UART is not initialized for dom 0, when the domain tries to access to
this range, a segfault will occur in Xen. The right behaviour should be a data
abort for the guest.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: lr must be included in range [0-nr_lr(
Julien Grall [Fri, 10 May 2013 02:17:47 +0000 (03:17 +0100)]
xen/arm: lr must be included in range [0-nr_lr(

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoarm: cast int<->pointer via uintptr_t
Ian Campbell [Fri, 10 May 2013 13:13:52 +0000 (14:13 +0100)]
arm: cast int<->pointer via uintptr_t

Fixes build on arm64:

gic.c: In function ‘gic_irq_eoi’:
        gic.c:726:16: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
        gic.c: In function ‘maintenance_interrupt’:
        gic.c:776:29: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
        gic.c:778:64: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
        cc1: all warnings being treated as errors
        make[3]: *** [gic.o] Error 1

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
12 years ago.gitignore: Add vim swap files
Julien Grall [Thu, 9 May 2013 16:17:03 +0000 (17:17 +0100)]
.gitignore: Add vim swap files

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
[ ijc -- corrected .hgignore regex syntax ]

12 years agoMAINTAINERS: Change tmem maintainer
Konrad Rzeszutek Wilk [Fri, 10 May 2013 08:44:17 +0000 (10:44 +0200)]
MAINTAINERS: Change tmem maintainer

Konrad has graduated to becoming an maintainer in the Xen hypervisor.

Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agox86/mm/shadow: remove dead code for avoiding Xen entries on 32-bit tables.
Tim Deegan [Thu, 2 May 2013 10:37:56 +0000 (11:37 +0100)]
x86/mm/shadow: remove dead code for avoiding Xen entries on 32-bit tables.

All non-external-mode (==PV) guests have 4-level pagetables now that
the PAE build of Xen is gone.

This patch should have no effect, since the condition it removes could
never be true anyway: the l2 offset of HYPERVISOR_VIRT_START on 64-bit
Xen is much higher than any l2 offset we could have seen in the
tables (and indeed bigger than the 'int' type, which clang was
complaining about).  Actual compat PV guest xen entries are handled by
the equivalent test in the 64-bit SHADOW_FOREACH_L2E() below.

Reported-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Tim Deegan <tim@xen.org>
12 years agoxen/arm: handle the runstate_memory_area
Stefano Stabellini [Wed, 1 May 2013 19:32:28 +0000 (20:32 +0100)]
xen/arm: handle the runstate_memory_area

Support VCPUOP_register_runstate_memory_area on ARM.
Update_runstate_area on context switch.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen: move VCPUOP_register_runstate_memory_area to common code
Stefano Stabellini [Wed, 1 May 2013 19:32:27 +0000 (20:32 +0100)]
xen: move VCPUOP_register_runstate_memory_area to common code

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
12 years agoxen/arm: initialize vtimer offset to CNTPCT
Stefano Stabellini [Wed, 8 May 2013 11:41:15 +0000 (12:41 +0100)]
xen/arm: initialize vtimer offset to CNTPCT

Currently we initialize the vtimer offset to

CNTVCT + CNTVOFF = CNTPCT - CNTVOFF + CNTVOFF = CNTPCT

Simply initialize vtimer offset to CNTPCT.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: clear pending irq queues on do_psci_cpu_on
Stefano Stabellini [Wed, 8 May 2013 11:41:14 +0000 (12:41 +0100)]
xen/arm: clear pending irq queues on do_psci_cpu_on

Don't inject irqs to vcpus that are down.

Also when (re)activating a vcpu, clear the vgic and gic irq queues: we
don't want to inject any irqs that couldn't be handled by the vcpu right
before going offline.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: initialize virt_timer and phys_timer with the same values on all vcpus
Stefano Stabellini [Wed, 8 May 2013 11:41:13 +0000 (12:41 +0100)]
xen/arm: initialize virt_timer and phys_timer with the same values on all vcpus

Introduce a domain wide vtimer initialization function to initialize
the phys_timer and the virt_timer offsets.

Use the domain phys_timer and virt_timer offsets throughout the vtimer
code instead of the per-vcpu offsets.

Remove the per-vcpu offsets from struct vtimer altogether.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: run the vtimer Xen timers on the pcpu the vcpu is running on
Stefano Stabellini [Wed, 8 May 2013 11:41:12 +0000 (12:41 +0100)]
xen/arm: run the vtimer Xen timers on the pcpu the vcpu is running on

The Xen physical timer emulator and virtual timer driver use two
internal Xen timers: initialize them on the pcpu the vcpu is running on,
rather than the processor that it's creating the vcpu.

On vcpu restore migrate the phys_timer and the virt_timer to the
pcpu the vcpu is running on.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: send IPIs to inject irqs into guest vcpus running on different pcpus
Stefano Stabellini [Wed, 8 May 2013 11:41:11 +0000 (12:41 +0100)]
xen/arm: send IPIs to inject irqs into guest vcpus running on different pcpus

If we need to inject an irq into a VCPU that is running on a different
processor, we shouldn't just enqueue the irq into the lr_pending and
inflight lists and wait for something to interrupt the guest execution.
Send an IPI to the target pcpu so that Xen can inject the new interrupt
returning to guest.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen/arm: support VCPUOP_register_vcpu_info.
Stefano Stabellini [Wed, 8 May 2013 11:41:10 +0000 (12:41 +0100)]
xen/arm: support VCPUOP_register_vcpu_info.

We don't want to support the full vcpu_op hypercall interface, just
VCPUOP_register_vcpu_info: introduce an internal ARM-only
do_arm_vcpu_op function to filter out the vcpu_op hypercalls that
we don't want to support.
Call do_arm_vcpu_op instead of do_vcpu_op from traps.c.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
12 years agoxen: move VCPUOP_register_vcpu_info to common code
Stefano Stabellini [Wed, 8 May 2013 11:41:09 +0000 (12:41 +0100)]
xen: move VCPUOP_register_vcpu_info to common code

Move the implementation of VCPUOP_register_vcpu_info from x86 specific
to commmon code.

Move vcpu_info_mfn from an arch specific vcpu sub-field to the common
vcpu struct.
Move the initialization of vcpu_info_mfn to common code.

Move unmap_vcpu_info and the call to unmap_vcpu_info at domain
destruction time to common code.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
12 years agoRemove traces of IA-64 architecture support
Daniel Kiper [Tue, 7 May 2013 11:51:48 +0000 (13:51 +0200)]
Remove traces of IA-64 architecture support

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
12 years agoRemove tools/libaio/src/syscall-ia64.h file
Daniel Kiper [Tue, 7 May 2013 11:51:47 +0000 (13:51 +0200)]
Remove tools/libaio/src/syscall-ia64.h file

There is no support for IA-64 architecture in Xen.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
12 years agoSilently ignore rm and include errors during make distclean
Daniel Kiper [Tue, 7 May 2013 11:51:46 +0000 (13:51 +0200)]
Silently ignore rm and include errors during make distclean

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
12 years agodocs: Remove tmp files during make clean
Daniel Kiper [Tue, 7 May 2013 11:51:45 +0000 (13:51 +0200)]
docs: Remove tmp files during make clean

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
12 years agostubdom/vtpm: Silently ignore rm errors during make clean
Daniel Kiper [Tue, 7 May 2013 11:51:44 +0000 (13:51 +0200)]
stubdom/vtpm: Silently ignore rm errors during make clean

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
12 years agostubdom: Do not create dangling links
Daniel Kiper [Tue, 7 May 2013 11:51:43 +0000 (13:51 +0200)]
stubdom: Do not create dangling links

There is not architecture dependent files in libxc
hence do not create dangling links.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
12 years agostubdom: Remove xenstore directory during make crossclean
Daniel Kiper [Tue, 7 May 2013 11:51:42 +0000 (13:51 +0200)]
stubdom: Remove xenstore directory during make crossclean

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
12 years agostubdom: Clean extras/mini-os directory during make clean
Daniel Kiper [Tue, 7 May 2013 11:51:41 +0000 (13:51 +0200)]
stubdom: Clean extras/mini-os directory during make clean

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
12 years agotools/xenstat/libxenstat: Remove src/libxenstat.a file during make clean
Daniel Kiper [Tue, 7 May 2013 11:51:40 +0000 (13:51 +0200)]
tools/xenstat/libxenstat: Remove src/libxenstat.a file during make clean

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>