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

Re: [Xen-devel] [PATCH] xen/arm: flush dcache after memcpy'ing the kernel image



On Thu, 6 Dec 2012, Ian Campbell wrote:
> On Wed, 2012-12-05 at 18:37 +0000, Stefano Stabellini wrote:
> > After memcpy'ing the kernel in guest memory we need to flush the dcache
> > to make sure that the data actually reaches the memory before we start
> > executing guest code with caches disabled.
> > 
> > This fixes a boot time bug on the Cortex A15 Versatile Express that
> > usually shows up as follow:
> > 
> > (XEN) Hypervisor Trap. HSR=0x80000006 EC=0x20 IL=0 Syndrome=6
> > (XEN) Unexpected Trap: Hypervisor
> 
> That's a symptom of a thousand different problems though, since it's
> just a generic Instruction Abort from guest mode caused by a translation
> fault at stage 2. 
> 
> Anyhow this won't apply in top of "arm: support for initial modules
> (e.g. dom0) and DTB supplied in RAM", could you rebase on that please?

The patch applies fine on both xen/master and xen/staging.

Do you have a branch with "arm: support for initial modules (e.g. dom0)
and DTB supplied in RAM" somewhere?




> 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> > ---
> >  xen/arch/arm/kernel.c |    2 ++
> >  1 files changed, 2 insertions(+), 0 deletions(-)
> > 
> > diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
> > index b4a823d..81818b1 100644
> > --- a/xen/arch/arm/kernel.c
> > +++ b/xen/arch/arm/kernel.c
> > @@ -53,6 +53,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned 
> > long len, int attrindx)
> >  
> >          set_fixmap(FIXMAP_MISC, p, attrindx);
> >          memcpy(dst, src + s, l);
> > +        flush_xen_dcache_va_range(dst, l);
> >  
> >          paddr += l;
> >          dst += l;
> > @@ -82,6 +83,7 @@ static void kernel_zimage_load(struct kernel_info *info)
> >  
> >          set_fixmap(FIXMAP_MISC, (flash+offs) >> PAGE_SHIFT, DEV_SHARED);
> >          memcpy(dst, src, PAGE_SIZE);
> > +        flush_xen_dcache_va_range(dst, PAGE_SIZE);
> >          clear_fixmap(FIXMAP_MISC);
> >  
> >          unmap_domain_page(dst);
> 
> 
> 

_______________________________________________
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®.