|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 0/38] arm: boot a dom1 to "Calibrating delay loop" then hang
Sorry for the enormous dump, I seem to have accumulated a boat load of
stuff in my tree...
There's actually a bunch of random guff in here, but the main bit is
xc_dom code in libxc to build a dom1 from a ARM zImage and enough
hypervisor support to run it to:
[ 0.000000] Linux version 3.2.0-rc5-arm-native+ (ianc@drall) (gcc
version 4.6.0 (GCC) ) #174 Thu May 24 15:44:30 BST 2012
[ 0.000000] CPU: ARMv7 Processor [410fc0f0] revision 0 (ARMv7),
cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[ 0.000000] Machine: ARM Versatile Express, model: V2P-AEMv7A
[ 0.000000] bootconsole [xenboot0] enabled
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] Architected local timer running at 100.00MHz.
[ 0.000000] sched_clock: 32 bits at 100MHz, resolution 10ns, wraps
every 42949ms
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 32512
[ 0.000000] Kernel command line: earlyprintk=xen console=hvc0
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536
bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768
bytes)
[ 0.000000] Memory: 128MB = 128MB total
[ 0.000000] Memory: 126256k/126256k available, 4816k reserved, 0K
highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xc8800000 - 0xf8000000 ( 760 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc032cce0 (3220 kB)
[ 0.000000] .init : 0xc032d000 - 0xc034e000 ( 132 kB)
[ 0.000000] .data : 0xc034e000 - 0xc036f400 ( 133 kB)
[ 0.000000] .bss : 0xc036f424 - 0xc038e0ec ( 124 kB)
[ 0.000000] NR_IRQS:256
[ 0.000000] Console: colour dummy device 80x30
[ 0.191514] Calibrating delay loop...
(Stefano is looking at virtual timers and interrupt injection as we
speak...)
There is some non-ARM impact, specifically teaching xc_dom_* about the
idea that RAM might not start at 0x000 (on the ARM platform we are
similar too RAM starts at 0x80000000), I think that makes at least the
libxc parts non-4.2 material at this stage.
There are also three (more than usually) hacky patches needed to get to
this point:
HACK: arm: initial XENMAPSPACE_gmfn_foreign
HACK: add simple xcbuild
HACK: arm: disable hypercall continuations.
which I'm not proposing but I'm including because it doesn't work
without them ;-).
The rest I think is fair game for acking and cherry-picking the
acceptable bits for commit.
I still need to cleanup the Linux side of this, that probably won't
happen today and these patches probably don't work without those
changes... FWIW the XENMAPSPACE_gmfn_foreign thing is an even bigger
hack there. Ultimately we should do the same thing as hybrid x86
Ian.
The following changes since commit 5fcec8e92ea02240c2737c4fa982027cef053401:
libxl: fix typos in libxl_cpuid_parse_config (2012-06-01 12:06:22 +0100)
are available in the git repository at:
git://xenbits.xen.org/people/ianc/xen-unstable.git devel/arm
for you to fetch changes up to 5177d39f17feb3d5ccdedb976074cb0eee62ee69:
HACK: arm: disable hypercall continuations. (2012-06-01 15:14:28 +0000)
----------------------------------------------------------------
Ian Campbell (38):
arm: allocate top level p2m page for all non-idle domains
arm: handy function to print a walk of the hypervisor page tables
arm: handy function to print a walk of a domain's p2m.
arm: correct and expand TLB flush CP15 registers
arm: restore stack on return from trap.
arm: enable interrupts while handling traps
arm: hook up domctl and memory_op
arm: allocate and setup a guest vcpu.
arm: print domid as part of debug trap
arm: remove unnecessarily verbose print from p2m_load_VTTBR
arm: implement p2m lookup
arm: remove hard tabs from init_idle_domain
arm: stub out sync_vcpu_execstate
arm: do not set max_vcpus = 8 in arch_domain_create.
arm: implement stub version of flush_tlb_mask.
arm: Add simple cpu_{sibling,core}_mask
arm: allow p2m to be created with specific MATTR.
arm: implement vpl011 (UART) emulator.
arm: context switch a bunch of guest state.
arm: dump a page table walk when va_to_par fails.
arm: dump guest s1 walk on data abort which is not a stage 2 issue.
arm: implement vcpu_show_execution_state
arm: use correct attributes for mappings in copy_from_paddr()
arm: map fixmaps non-executable.
arm: remove old identity map of boot paddr when we are done with it.
arm: fix locking in create_p2m_entries
arm: split pending SPIs (global) out from pending PPIs and SGIs (per CPU)
arm: map GICV in all domains, not just dom0.
arm: delay enabling data-cache until paging enabled.
arm: Upgrade guest barriers to Outer-Shareable. Enable Protected Table
Walk.
arm: gic.lock can be taken in interrupt context, so lock appropriately.
arm: context switch virtual timer registers
arm: the hyp timer seems to work now, default to using it.
HACK: arm: initial XENMAPSPACE_gmfn_foreign
arm: move PSR flag definitions into interface, for tools use.
libxc: add ARM support to xc_dom (PV domain building)
HACK: add simple xcbuild
HACK: arm: disable hypercall continuations.
tools/libxc/Makefile | 1 +
tools/libxc/xc_dom.h | 5 +-
tools/libxc/xc_dom_arm.c | 135 +++++++++++++++++++-
tools/libxc/xc_dom_armzimageloader.c | 167 ++++++++++++++++++++++++
tools/libxc/xc_dom_core.c | 12 ++-
tools/libxc/xg_private.h | 4 +
tools/xcutils/Makefile | 6 +-
tools/xcutils/xcbuild.c | 100 +++++++++++++++
xen/arch/arm/Makefile | 1 +
xen/arch/arm/domain.c | 232 +++++++++++++++++++++++++++++++---
xen/arch/arm/domain_build.c | 7 +-
xen/arch/arm/dummy.S | 8 --
xen/arch/arm/entry.S | 23 +++-
xen/arch/arm/gic.c | 56 ++++++---
xen/arch/arm/gic.h | 11 ++-
xen/arch/arm/head.S | 9 +-
xen/arch/arm/io.c | 1 +
xen/arch/arm/io.h | 1 +
xen/arch/arm/kernel.c | 8 +-
xen/arch/arm/mm.c | 94 +++++++++++++--
xen/arch/arm/p2m.c | 123 ++++++++++++++++--
xen/arch/arm/setup.c | 15 ++-
xen/arch/arm/smp.c | 9 ++
xen/arch/arm/smpboot.c | 5 +
xen/arch/arm/time.c | 8 +-
xen/arch/arm/traps.c | 145 +++++++++++++++++++---
xen/arch/arm/vgic.c | 17 ++-
xen/arch/arm/vpl011.c | 155 +++++++++++++++++++++++
xen/arch/arm/vpl011.h | 34 +++++
xen/arch/x86/mm.c | 2 +
xen/include/asm-arm/cpregs.h | 43 ++++++-
xen/include/asm-arm/domain.h | 56 ++++++++-
xen/include/asm-arm/p2m.h | 3 +
xen/include/asm-arm/page.h | 17 ++-
xen/include/asm-arm/processor.h | 26 +---
xen/include/asm-arm/setup.h | 2 +-
xen/include/asm-arm/system.h | 2 +-
xen/include/public/arch-arm.h | 36 ++++--
xen/include/public/memory.h | 12 +-
xen/include/xen/sched.h | 4 +
40 files changed, 1426 insertions(+), 169 deletions(-)
create mode 100644 tools/libxc/xc_dom_armzimageloader.c
create mode 100644 tools/xcutils/xcbuild.c
create mode 100644 xen/arch/arm/vpl011.c
create mode 100644 xen/arch/arm/vpl011.h
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |