All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/38] arm: boot a dom1 to "Calibrating delay loop" then hang
@ 2012-06-01 15:38 Ian Campbell
  2012-06-01 15:39 ` [PATCH 01/38] arm: allocate top level p2m page for all non-idle domains Ian Campbell
  2012-06-01 16:46 ` [PATCH 0/38] arm: boot a dom1 to "Calibrating delay loop" then hang Ian Campbell
  0 siblings, 2 replies; 136+ messages in thread
From: Ian Campbell @ 2012-06-01 15:38 UTC (permalink / raw)
  To: xen-devel

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

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

end of thread, other threads:[~2012-07-23 14:47 UTC | newest]

Thread overview: 136+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-01 15:38 [PATCH 0/38] arm: boot a dom1 to "Calibrating delay loop" then hang Ian Campbell
2012-06-01 15:39 ` [PATCH 01/38] arm: allocate top level p2m page for all non-idle domains Ian Campbell
2012-06-01 15:39   ` [PATCH 02/38] arm: handy function to print a walk of the hypervisor page tables Ian Campbell
2012-06-07  8:45     ` Tim Deegan
2012-06-07 11:57       ` Ian Campbell
2012-06-07 12:39         ` Tim Deegan
2012-06-01 15:39   ` [PATCH 03/38] arm: handy function to print a walk of a domain's p2m Ian Campbell
2012-06-07  8:49     ` Tim Deegan
2012-06-07 12:26       ` Ian Campbell
2012-06-07 12:40         ` Tim Deegan
2012-06-07 13:54           ` Ian Campbell
2012-06-07 16:34             ` Ian Campbell
2012-06-07 16:39               ` Ian Campbell
2012-06-07 19:10               ` Tim Deegan
2012-06-01 15:39   ` [PATCH 04/38] arm: correct and expand TLB flush CP15 registers Ian Campbell
2012-06-06 12:45     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 05/38] arm: restore stack on return from trap Ian Campbell
2012-06-06 13:03     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 06/38] arm: enable interrupts while handling traps Ian Campbell
2012-06-06 13:38     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 07/38] arm: hook up domctl and memory_op Ian Campbell
2012-06-06 13:39     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 08/38] arm: allocate and setup a guest vcpu Ian Campbell
2012-06-06 13:46     ` Stefano Stabellini
2012-06-06 13:55       ` Ian Campbell
2012-06-07  9:40         ` Ian Campbell
2012-06-07 17:02           ` Ian Campbell
2012-06-08 10:00             ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 09/38] arm: print domid as part of debug trap Ian Campbell
2012-06-06 13:47     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 10/38] arm: remove unnecessarily verbose print from p2m_load_VTTBR Ian Campbell
2012-06-06 13:47     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 11/38] arm: implement p2m lookup Ian Campbell
2012-06-06 14:01     ` Stefano Stabellini
2012-06-06 14:30       ` Ian Campbell
2012-06-13 13:40         ` Ian Campbell
2012-06-07  9:03     ` Tim Deegan
2012-06-13 15:13       ` Ian Campbell
2012-06-14  8:47         ` Tim Deegan
2012-06-19  9:43           ` Ian Campbell
2012-06-01 15:39   ` [PATCH 12/38] arm: remove hard tabs from init_idle_domain Ian Campbell
2012-06-06 15:13     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 13/38] arm: stub out sync_vcpu_execstate Ian Campbell
2012-06-06 15:15     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 14/38] arm: do not set max_vcpus = 8 in arch_domain_create Ian Campbell
2012-06-06 15:26     ` Stefano Stabellini
2012-06-06 15:29       ` Ian Campbell
2012-06-07 16:57       ` Ian Campbell
2012-06-07 16:59         ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 15/38] arm: implement stub version of flush_tlb_mask Ian Campbell
2012-06-06 15:27     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 16/38] arm: Add simple cpu_{sibling,core}_mask Ian Campbell
2012-06-06 16:13     ` [PATCH 16/38] arm: Add simple cpu_{sibling, core}_mask Stefano Stabellini
2012-06-07  9:08     ` Tim Deegan
2012-06-07 11:35       ` Ian Campbell
2012-06-07 11:42         ` Tim Deegan
2012-06-13 15:18         ` Ian Campbell
2012-06-01 15:39   ` [PATCH 17/38] arm: allow p2m to be created with specific MATTR Ian Campbell
2012-06-06 16:27     ` Stefano Stabellini
2012-06-13 15:33       ` Ian Campbell
2012-06-01 15:39   ` [PATCH 18/38] arm: implement vpl011 (UART) emulator Ian Campbell
2012-06-06 16:57     ` Stefano Stabellini
2012-06-07  9:29     ` Tim Deegan
2012-06-07  9:34       ` Ian Campbell
2012-06-07 10:18         ` Tim Deegan
2012-06-20 13:37           ` Ian Campbell
2012-06-01 15:39   ` [PATCH 19/38] arm: context switch a bunch of guest state Ian Campbell
2012-06-05 17:11     ` Stefano Stabellini
2012-06-06 15:19       ` Ian Campbell
2012-06-06 15:20         ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 20/38] arm: dump a page table walk when va_to_par fails Ian Campbell
2012-06-07  9:32     ` Tim Deegan
2012-06-01 15:39   ` [PATCH 21/38] arm: dump guest s1 walk on data abort which is not a stage 2 issue Ian Campbell
2012-06-07  9:41     ` Tim Deegan
2012-06-20 13:48       ` Ian Campbell
2012-06-01 15:39   ` [PATCH 22/38] arm: implement vcpu_show_execution_state Ian Campbell
2012-06-06 17:26     ` Stefano Stabellini
2012-06-20 13:53       ` Ian Campbell
2012-06-20 13:56         ` Ian Campbell
2012-06-01 15:39   ` [PATCH 23/38] arm: use correct attributes for mappings in copy_from_paddr() Ian Campbell
2012-06-01 16:20     ` David Vrabel
2012-06-06 17:38     ` Stefano Stabellini
2012-06-20 15:38       ` Ian Campbell
2012-06-01 15:39   ` [PATCH 24/38] arm: map fixmaps non-executable Ian Campbell
2012-06-06 17:40     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 25/38] arm: remove old identity map of boot paddr when we are done with it Ian Campbell
2012-06-06 18:04     ` Stefano Stabellini
2012-06-06 18:18       ` Tim Deegan
2012-06-21  8:15         ` Ian Campbell
2012-06-21  9:26           ` Ian Campbell
2012-06-01 15:39   ` [PATCH 26/38] arm: fix locking in create_p2m_entries Ian Campbell
2012-06-07  9:48     ` Tim Deegan
2012-06-07 10:26     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 27/38] arm: split pending SPIs (global) out from pending PPIs and SGIs (per CPU) Ian Campbell
2012-06-07 10:35     ` Stefano Stabellini
2012-06-26  9:03       ` Ian Campbell
2012-06-01 15:39   ` [PATCH 28/38] arm: map GICV in all domains, not just dom0 Ian Campbell
2012-06-07  9:51     ` Tim Deegan
2012-06-26  9:25       ` Ian Campbell
2012-06-07 10:39     ` Stefano Stabellini
2012-06-26 10:18     ` Ian Campbell
2012-06-01 15:39   ` [PATCH 29/38] arm: delay enabling data-cache until paging enabled Ian Campbell
2012-06-01 17:05     ` Tim Deegan
2012-06-01 19:04       ` Ian Campbell
2012-06-07 13:59         ` Tim Deegan
2012-06-26  9:30           ` Ian Campbell
2012-06-07 10:41     ` Stefano Stabellini
2012-06-01 15:39   ` [PATCH 30/38] arm: Upgrade guest barriers to Outer-Shareable. Enable Protected Table Walk Ian Campbell
2012-06-07 10:20     ` Tim Deegan
2012-06-01 15:40   ` [PATCH 31/38] arm: gic.lock can be taken in interrupt context, so lock appropriately Ian Campbell
2012-06-07 10:20     ` Tim Deegan
2012-06-07 10:49     ` Stefano Stabellini
2012-06-26  9:35       ` Ian Campbell
2012-06-26 11:41         ` Stefano Stabellini
2012-06-26 12:25           ` Ian Campbell
2012-06-26 13:45             ` Ian Campbell
2012-06-01 15:40   ` [PATCH 32/38] arm: context switch virtual timer registers Ian Campbell
2012-06-07 10:21     ` Tim Deegan
2012-06-01 15:40   ` [PATCH 33/38] arm: the hyp timer seems to work now, default to using it Ian Campbell
2012-06-07 10:22     ` Tim Deegan
2012-06-01 15:40   ` [PATCH 34/38] HACK: arm: initial XENMAPSPACE_gmfn_foreign Ian Campbell
2012-06-07 10:56     ` Stefano Stabellini
2012-06-01 15:40   ` [PATCH 35/38] arm: move PSR flag definitions into interface, for tools use Ian Campbell
2012-06-07 10:23     ` Tim Deegan
2012-06-01 15:40   ` [PATCH 36/38] libxc: add ARM support to xc_dom (PV domain building) Ian Campbell
2012-06-07 11:38     ` Stefano Stabellini
2012-07-23 13:57       ` Ian Campbell
2012-07-23 14:11         ` Ian Campbell
2012-07-23 14:37           ` David Vrabel
2012-07-23 14:47             ` Ian Campbell
2012-06-01 15:40   ` [PATCH 37/38] HACK: add simple xcbuild Ian Campbell
2012-06-07 11:42     ` Stefano Stabellini
2012-06-07 12:06       ` Ian Campbell
2012-06-01 15:40   ` [PATCH 38/38] HACK: arm: disable hypercall continuations Ian Campbell
2012-06-07 11:00     ` Stefano Stabellini
2012-06-01 16:46 ` [PATCH 0/38] arm: boot a dom1 to "Calibrating delay loop" then hang Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.