Hello everyone,
this is the third 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 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 +
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/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 | 17 +-
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 | 6 +-
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 | 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 | 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 | 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 +
xen/include/xen/xencomm.h | 24 ++
138 files changed, 10628 insertions(+), 56 deletions(-)
A git branch is available here, based on xen-unstable (git CS
367ababd691a023944d648a6d980ccf866b01169):
git://xenbits.xen.org/people/sstabellini/xen-unstable.git arm-v3
Cheers,
Stefano
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
this is the third 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 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 +
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/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 | 17 +-
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 | 6 +-
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 | 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 | 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 | 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 +
xen/include/xen/xencomm.h | 24 ++
138 files changed, 10628 insertions(+), 56 deletions(-)
A git branch is available here, based on xen-unstable (git CS
367ababd691a023944d648a6d980ccf866b01169):
git://xenbits.xen.org/people/sstabellini/xen-unstable.git arm-v3
Cheers,
Stefano
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel