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

Hello everyone,
this is the fourth 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 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            |  212 +++++++++++
 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              |   36 ++
 xen/arch/arm/lib/changebit.S           |   18 +
 xen/arch/arm/lib/clearbit.S            |   19 +
 xen/arch/arm/lib/copy_template.S       |  266 ++++++++++++++
 xen/arch/arm/lib/div64.S               |  149 ++++++++
 xen/arch/arm/lib/findbit.S             |  115 ++++++
 xen/arch/arm/lib/lib1funcs.S           |  302 ++++++++++++++++
 xen/arch/arm/lib/memcpy.S              |   64 ++++
 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      |   28 ++-
 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           |  195 ++++++++++
 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           |  122 +++++++
 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/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 ++
 142 files changed, 10679 insertions(+), 62 deletions(-)


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

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


Cheers,

Stefano

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

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

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

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