Mailing List Archive

[PATCH RFC 00/25] xen: ARMv7 with virtualization extensions
Hello everyone,
this is the very first 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.

Although I have been working on cleaning these patches for a week now,
this is just the first version of the series, so expect some rough
edges. You have been warned :-)
Also keep in mind that many functions still have only a dummy
implementation; we hope to fill the gaps as soon as possible.

Please read the patch series and let me know if you find any bugs, have
any comments or suggestions. With your help I am looking forward to
improving the quality of this work.


Stefano Stabellini (25):
Include some header files that are not automatically included on all archs
A collection of fixes to Xen common files
Move cpufreq option parsing to cpufreq.c
Replace "/" operand with div64
Introduce clear_user
libelf-loader: introduce elf_load_image and CONFIG_KERNEL_NO_RELOC
xen/common/Makefile: introduce HAS_CPUFREQ, HAS_PCI, HAS_PASSTHROUGH, HAS_NS16550
arm: makefiles
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


config/arm.mk | 18 +
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 | 211 ++++++++
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/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 | 274 +++++++++++
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/usercopy.c | 81 ++++
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 | 4 +
xen/arch/ia64/linux/memcpy_mck.S | 177 +++++++
xen/arch/x86/Rules.mk | 4 +
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 | 5 +-
xen/common/lib.c | 9 +-
xen/common/libelf/libelf-dominfo.c | 6 +
xen/common/libelf/libelf-loader.c | 21 +-
xen/common/memory.c | 4 +-
xen/common/sched_credit.c | 7 +-
xen/common/sched_credit2.c | 11 +-
xen/common/sched_sedf.c | 30 +-
xen/common/shutdown.c | 4 +
xen/common/spinlock.c | 1 +
xen/common/timer.c | 7 +-
xen/common/tmem.c | 3 +-
xen/common/tmem_xen.c | 6 +-
xen/common/wait.c | 1 +
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 | 212 ++++++++
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 | 124 +++++
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 | 241 ++++++++++
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 | 125 +++++
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/linux/asm-generic/div64.h | 6 +
xen/include/asm-ia64/uaccess.h | 12 +
xen/include/asm-x86/div64.h | 6 +
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/irq.h | 13 +
xen/include/xen/kernel.h | 12 +-
xen/include/xen/libelf.h | 2 +-
xen/include/xen/list.h | 1 +
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 +
135 files changed, 10358 insertions(+), 84 deletions(-)


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

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


Cheers,

Stefano

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel