[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 6/7] xen/arm: Support dtb /memreserve/ regions



On Thu, 2013-09-12 at 14:03 +0100, Julien Grall wrote:
> On 09/12/2013 01:42 PM, Ian Campbell wrote:
> > This requires a mapping of the DTB during setup_mm. Previosly this was in 
> > the
> > BOOT_MISC slot, which is clobbered by setup_pagetables. Split it out into 
> > its
> > own slot which can be preserved.
> > 
> > Also handle this regions are part of consider_modules() and next_modules() 
> > to
> > ensure we do not locate any part of Xen or the heaps over them.
> > 
> > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > ---
> >  xen/arch/arm/arm32/head.S    |    2 +-
> >  xen/arch/arm/arm32/traps.c   |    3 +++
> >  xen/arch/arm/arm64/head.S    |    2 +-
> >  xen/arch/arm/mm.c            |   10 +++++++-
> >  xen/arch/arm/setup.c         |   58 
> > ++++++++++++++++++++++++++++++++++++++++--
> >  xen/arch/arm/traps.c         |    3 ++-
> >  xen/common/device_tree.c     |   13 +++++++++-
> >  xen/include/asm-arm/config.h |    7 ++---
> >  xen/include/asm-arm/mm.h     |    2 ++
> >  9 files changed, 90 insertions(+), 10 deletions(-)
> > 
> > diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
> > index 79e95b6..5072e2a 100644
> > --- a/xen/arch/arm/arm32/head.S
> > +++ b/xen/arch/arm/arm32/head.S
> > @@ -301,7 +301,7 @@ cpu_init_done:
> >          orr   r2, r2, #PT_UPPER(MEM)
> >          orr   r2, r2, #PT_LOWER(MEM) /* r2:r3 := 2MB RAM incl. DTB */
> >          add   r4, r4, #8
> > -        strd  r2, r3, [r1, r4]       /* Map it in the early boot slot */
> > +        strd  r2, r3, [r1, r4]       /* Map it in the early fdt slot */
> >  
> >  pt_ready:
> >          PRINT("- Turning on paging -\r\n")
> > diff --git a/xen/arch/arm/arm32/traps.c b/xen/arch/arm/arm32/traps.c
> > index ff0b945..e8dd9f5 100644
> > --- a/xen/arch/arm/arm32/traps.c
> > +++ b/xen/arch/arm/arm32/traps.c
> > @@ -22,6 +22,7 @@
> >  #include <public/xen.h>
> >  
> >  #include <asm/processor.h>
> > +#include <asm/early_printk.h>
> >  
> >  asmlinkage void do_trap_undefined_instruction(struct cpu_user_regs *regs)
> >  {
> > @@ -40,6 +41,8 @@ asmlinkage void do_trap_prefetch_abort(struct 
> > cpu_user_regs *regs)
> >  
> >  asmlinkage void do_trap_data_abort(struct cpu_user_regs *regs)
> >  {
> > +    early_printk("Data Abort at %"PRIvaddr" DFAR %"PRIx32"\n",
> > +                 regs->pc, READ_CP32(DFAR));
> 
> early_printk belongs to __init and will be discarded by
> free_init_memory. Any data abort after this call will result to a
> "double" hang.

Yeah, this was some debug code of mine which snuck in, not supposed to
be here at all!

> >  
> >  void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs)
> >  {
> > -    printk("CPU%d: Unexpected Trap: %s\n", smp_processor_id(), msg);
> > +    early_printk("CPU%d: Unexpected Trap: %s\n", smp_processor_id(), msg);
> 
> Same issue as do data_abort_trap

Yup!



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.