|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |