xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/25] xen: ARMv7 with virtualization extensions
@ 2012-01-11 16:17 Stefano Stabellini
  2012-01-11 16:18 ` [PATCH v5 01/25] Move cpufreq option parsing to cpufreq.c stefano.stabellini
                   ` (24 more replies)
  0 siblings, 25 replies; 35+ messages in thread
From: Stefano Stabellini @ 2012-01-11 16:17 UTC (permalink / raw)
  To: xen-devel@lists.xensource.com
  Cc: Stefano Stabellini, Ian Campbell, Tim Deegan (3P)

Hello everyone,
this is the fifth version of the patch series that introduces ARMv7
with virtualization extensions support in Xen.
The series allows Xen and Dom0 to boot on a Cortex-A15 based Versatile
Express simulator.
See the following announce email for more informations about what we
are trying to achieve, as well as the original git history:

See http://marc.info/?l=xen-devel&m=132257857628098&w=2


The first 7 patches affect generic Xen code and are not ARM specific;
often they fix real issues, hidden in the default X86 configuration.

The following 18 patches introduce ARMv7 with virtualization extensions
support: makefiles first, then the asm-arm header files and finally
everything else, ordered in a way that should make the patches easier
to read.


Changes in v5:

- fix compilation after rebase;

- route interrupt 34 (peripheral timer) to dom0;

- GICD_ICFGR ... GICD_ICFGRN return 1;

- expand tabs;

- keep the diff of arch/arm/lib with Linux's equivalents small;

- check the size of the arguments of elf_load_image;


Changes in v4:

- fix arm build after rebasing on xen-unstable
87c607efbfece009360f615b2bf98959f4ea48e8;

- use ABS() in __ldivmod_helper;

- return a negative integer in case of errors in elf_load_image.


Changes in v3:

- introduce clear_guest for x86 and ia64 (I kept ia64 version of
  clear_user for symmetry but it is not actually used anywhere);

- rename the current ARM *_user functions to *_guest;

- use raw_clear_guest and raw_copy_to_guest in elf_load_image.


Changes in v2:

- introduce CONFIG_XENOPROF;

- make _srodata and  _erodata const char[];

- do not include p2m.h ifdef __ia64__;

- remove wrong comment about pfn.h;

- introduce HAS_KEXEC and CONFIG_KEXEC;

- use long in __do_clear_user;

- remove the div64 patch, implement __aeabi_ldivmod and __aeabi_uldivmod
instead;

- move "arm: makefiles" at the end of the series.



Stefano Stabellini (25):
      Move cpufreq option parsing to cpufreq.c
      Include some header files that are not automatically included on all archs
      A collection of fixes to Xen common files
      xen: implement an signed 64 bit division helper function
      Introduce clear_user and clear_guest
      libelf-loader: introduce elf_load_image
      xen/common/Makefile: introduce HAS_CPUFREQ, HAS_PCI, HAS_PASSTHROUGH, HAS_NS16550, HAS_KEXEC
      arm: compile tmem
      arm: header files
      arm: bit manipulation, copy and division libraries
      arm: entry.S and head.S
      arm: domain
      arm: domain_build
      arm: driver for CoreLink GIC-400 Generic Interrupt Controller
      arm: mmio handlers
      arm: irq
      arm: mm and p2m
      arm: pl011 UART driver
      arm: early setup code
      arm: shutdown, smp and smpboot
      arm: driver for the generic timer for ARMv7
      arm: trap handlers
      arm: vgic emulation
      arm: vtimer
      arm: makefiles

 config/arm.mk                          |   18 +
 tools/libxc/xc_dom_elfloader.c         |    8 +-
 tools/libxc/xc_hvm_build.c             |    5 +-
 xen/arch/arm/Makefile                  |   76 ++++
 xen/arch/arm/Rules.mk                  |   29 ++
 xen/arch/arm/asm-offsets.c             |   76 ++++
 xen/arch/arm/domain.c                  |  269 ++++++++++++++
 xen/arch/arm/domain_build.c            |  213 +++++++++++
 xen/arch/arm/dummy.S                   |   72 ++++
 xen/arch/arm/entry.S                   |  107 ++++++
 xen/arch/arm/gic.c                     |  473 +++++++++++++++++++++++++
 xen/arch/arm/gic.h                     |  154 ++++++++
 xen/arch/arm/guestcopy.c               |   81 +++++
 xen/arch/arm/head.S                    |  298 ++++++++++++++++
 xen/arch/arm/io.c                      |   51 +++
 xen/arch/arm/io.h                      |   55 +++
 xen/arch/arm/irq.c                     |  180 ++++++++++
 xen/arch/arm/lib/Makefile              |    5 +
 xen/arch/arm/lib/assembler.h           |   49 +++
 xen/arch/arm/lib/bitops.h              |   87 +++++
 xen/arch/arm/lib/changebit.S           |   18 +
 xen/arch/arm/lib/clearbit.S            |   19 +
 xen/arch/arm/lib/copy_template.S       |  267 ++++++++++++++
 xen/arch/arm/lib/div64.S               |  211 +++++++++++
 xen/arch/arm/lib/findbit.S             |  198 +++++++++++
 xen/arch/arm/lib/lib1funcs.S           |  389 ++++++++++++++++++++
 xen/arch/arm/lib/memcpy.S              |   63 ++++
 xen/arch/arm/lib/memmove.S             |  200 +++++++++++
 xen/arch/arm/lib/memset.S              |  129 +++++++
 xen/arch/arm/lib/memzero.S             |  127 +++++++
 xen/arch/arm/lib/setbit.S              |   18 +
 xen/arch/arm/lib/testchangebit.S       |   18 +
 xen/arch/arm/lib/testclearbit.S        |   18 +
 xen/arch/arm/lib/testsetbit.S          |   18 +
 xen/arch/arm/mm.c                      |  321 +++++++++++++++++
 xen/arch/arm/p2m.c                     |  214 +++++++++++
 xen/arch/arm/setup.c                   |  206 +++++++++++
 xen/arch/arm/shutdown.c                |   23 ++
 xen/arch/arm/smp.c                     |   29 ++
 xen/arch/arm/smpboot.c                 |   50 +++
 xen/arch/arm/time.c                    |  181 ++++++++++
 xen/arch/arm/traps.c                   |  609 ++++++++++++++++++++++++++++++++
 xen/arch/arm/vgic.c                    |  605 +++++++++++++++++++++++++++++++
 xen/arch/arm/vtimer.c                  |  148 ++++++++
 xen/arch/arm/vtimer.h                  |   35 ++
 xen/arch/arm/xen.lds.S                 |  141 ++++++++
 xen/arch/ia64/Rules.mk                 |    5 +
 xen/arch/ia64/linux/memcpy_mck.S       |  177 +++++++++
 xen/arch/x86/Rules.mk                  |    5 +
 xen/arch/x86/domain_build.c            |    7 +-
 xen/arch/x86/hvm/hvm.c                 |  107 ++++++
 xen/arch/x86/usercopy.c                |   36 ++
 xen/common/Makefile                    |    2 +-
 xen/common/domain.c                    |   37 +--
 xen/common/domctl.c                    |    1 +
 xen/common/grant_table.c               |    1 +
 xen/common/irq.c                       |    1 +
 xen/common/kernel.c                    |    2 +-
 xen/common/keyhandler.c                |    1 +
 xen/common/lib.c                       |   19 +
 xen/common/libelf/libelf-dominfo.c     |    6 +
 xen/common/libelf/libelf-loader.c      |   30 ++-
 xen/common/memory.c                    |    4 +-
 xen/common/sched_credit2.c             |    6 -
 xen/common/shutdown.c                  |    4 +
 xen/common/spinlock.c                  |    1 +
 xen/common/tmem.c                      |    3 +-
 xen/common/tmem_xen.c                  |    4 +-
 xen/common/wait.c                      |    1 +
 xen/common/xencomm.c                   |  111 ++++++
 xen/drivers/Makefile                   |    6 +-
 xen/drivers/char/Makefile              |    3 +-
 xen/drivers/char/console.c             |    5 +
 xen/drivers/char/pl011.c               |  266 ++++++++++++++
 xen/drivers/cpufreq/cpufreq.c          |   31 ++
 xen/include/asm-arm/asm_defns.h        |   18 +
 xen/include/asm-arm/atomic.h           |  236 ++++++++++++
 xen/include/asm-arm/bitops.h           |  213 +++++++++++
 xen/include/asm-arm/bug.h              |   15 +
 xen/include/asm-arm/byteorder.h        |   16 +
 xen/include/asm-arm/cache.h            |   20 +
 xen/include/asm-arm/config.h           |  125 +++++++
 xen/include/asm-arm/cpregs.h           |  207 +++++++++++
 xen/include/asm-arm/current.h          |   60 ++++
 xen/include/asm-arm/debugger.h         |   15 +
 xen/include/asm-arm/delay.h            |   15 +
 xen/include/asm-arm/desc.h             |   12 +
 xen/include/asm-arm/div64.h            |  235 ++++++++++++
 xen/include/asm-arm/domain.h           |   82 +++++
 xen/include/asm-arm/elf.h              |   33 ++
 xen/include/asm-arm/event.h            |   41 +++
 xen/include/asm-arm/flushtlb.h         |   31 ++
 xen/include/asm-arm/grant_table.h      |   35 ++
 xen/include/asm-arm/guest_access.h     |  131 +++++++
 xen/include/asm-arm/hardirq.h          |   28 ++
 xen/include/asm-arm/hypercall.h        |   24 ++
 xen/include/asm-arm/init.h             |   12 +
 xen/include/asm-arm/io.h               |   12 +
 xen/include/asm-arm/iocap.h            |   20 +
 xen/include/asm-arm/irq.h              |   30 ++
 xen/include/asm-arm/mm.h               |  315 +++++++++++++++++
 xen/include/asm-arm/multicall.h        |   23 ++
 xen/include/asm-arm/nmi.h              |   15 +
 xen/include/asm-arm/numa.h             |   21 ++
 xen/include/asm-arm/p2m.h              |   88 +++++
 xen/include/asm-arm/page.h             |  335 ++++++++++++++++++
 xen/include/asm-arm/paging.h           |   13 +
 xen/include/asm-arm/pci.h              |    7 +
 xen/include/asm-arm/percpu.h           |   28 ++
 xen/include/asm-arm/processor.h        |  269 ++++++++++++++
 xen/include/asm-arm/regs.h             |   43 +++
 xen/include/asm-arm/setup.h            |   20 +
 xen/include/asm-arm/smp.h              |   25 ++
 xen/include/asm-arm/softirq.h          |   15 +
 xen/include/asm-arm/spinlock.h         |  144 ++++++++
 xen/include/asm-arm/string.h           |   38 ++
 xen/include/asm-arm/system.h           |  202 +++++++++++
 xen/include/asm-arm/time.h             |   26 ++
 xen/include/asm-arm/trace.h            |   12 +
 xen/include/asm-arm/types.h            |   57 +++
 xen/include/asm-arm/xenoprof.h         |   12 +
 xen/include/asm-ia64/config.h          |    2 +
 xen/include/asm-ia64/uaccess.h         |   12 +
 xen/include/asm-x86/config.h           |    3 +
 xen/include/asm-x86/guest_access.h     |   18 +
 xen/include/asm-x86/hvm/guest_access.h |    1 +
 xen/include/asm-x86/uaccess.h          |    1 +
 xen/include/public/arch-arm.h          |  125 +++++++
 xen/include/public/xen.h               |    2 +
 xen/include/xen/domain.h               |    2 +
 xen/include/xen/grant_table.h          |    1 +
 xen/include/xen/guest_access.h         |    6 +
 xen/include/xen/irq.h                  |   13 +
 xen/include/xen/kernel.h               |   12 +-
 xen/include/xen/libelf.h               |    4 +-
 xen/include/xen/list.h                 |    1 +
 xen/include/xen/paging.h               |    2 +-
 xen/include/xen/sched.h                |    4 +
 xen/include/xen/serial.h               |    2 +
 xen/include/xen/time.h                 |    1 +
 xen/include/xen/timer.h                |    1 +
 xen/include/xen/tmem_xen.h             |    1 +
 xen/include/xen/xencomm.h              |   24 ++
 143 files changed, 10993 insertions(+), 62 deletions(-)

A git branch is available here, based on xen-unstable (git CS
775163293ff2933a5ffafb97045aa4962b75165b):

git://xenbits.xen.org/people/sstabellini/xen-unstable.git arm-v5


Cheers,

Stefano

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2012-01-20 17:50 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-11 16:17 [PATCH v5 00/25] xen: ARMv7 with virtualization extensions Stefano Stabellini
2012-01-11 16:18 ` [PATCH v5 01/25] Move cpufreq option parsing to cpufreq.c stefano.stabellini
2012-01-11 16:18 ` [PATCH v5 02/25] Include some header files that are not automatically included on all archs stefano.stabellini
2012-01-11 16:18 ` [PATCH v5 03/25] A collection of fixes to Xen common files stefano.stabellini
2012-01-11 16:18 ` [PATCH v5 04/25] xen: implement an signed 64 bit division helper function stefano.stabellini
2012-01-11 16:18 ` [PATCH v5 05/25] Introduce clear_user and clear_guest stefano.stabellini
2012-01-19 16:46   ` Jan Beulich
2012-01-19 16:57     ` Jan Beulich
2012-01-20 11:28       ` Stefano Stabellini
2012-01-20 15:20         ` Stefano Stabellini
2012-01-20 15:35           ` Jan Beulich
2012-01-20 15:46             ` Stefano Stabellini
2012-01-20 17:50               ` Keir Fraser
2012-01-11 16:18 ` [PATCH v5 06/25] libelf-loader: introduce elf_load_image stefano.stabellini
2012-01-11 16:18 ` [PATCH v5 07/25] xen/common/Makefile: introduce HAS_CPUFREQ, HAS_PCI, HAS_PASSTHROUGH, HAS_NS16550, HAS_KEXEC stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 08/25] arm: compile tmem stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 09/25] arm: header files stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 10/25] arm: bit manipulation, copy and division libraries stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 11/25] arm: entry.S and head.S stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 12/25] arm: domain stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 13/25] arm: domain_build stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 14/25] arm: driver for CoreLink GIC-400 Generic Interrupt Controller stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 15/25] arm: mmio handlers stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 16/25] arm: irq stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 17/25] arm: mm and p2m stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 19/25] arm: early setup code stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 20/25] arm: shutdown, smp and smpboot stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 21/25] arm: driver for the generic timer for ARMv7 stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 22/25] arm: trap handlers stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 23/25] arm: vgic emulation stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 24/25] arm: vtimer stefano.stabellini
2012-01-11 16:19 ` [PATCH v5 25/25] arm: makefiles stefano.stabellini
2012-01-11 21:34 ` [PATCH v5 00/25] xen: ARMv7 with virtualization extensions James Harper
2012-01-12  6:45   ` Ian Campbell
2012-01-12 10:21     ` Stefano Stabellini

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).