[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 |