[PATCH] purgatory/arch/ppc64: Reset primary cpu endian to big-endian
Anton Blanchard
anton at samba.org
Wed Sep 9 21:07:39 AEST 2015
Hi Horms,
> > Older big-endian ppc64 kernels don't include the FIXUP_ENDIAN check,
> > meaning if we kexec from a little-endian kernel the target kernel
> > will fail to boot.
> > Returning to big-endian before we enter the target kernel ensures
> > that the target kernel can boot whether or not it includes
> > FIXUP_ENDIAN.
> >
> > This mirrors commit 150b14e7 in kexec-lite.
> >
> > Signed-off-by: Samuel Mendoza-Jonas <sam.mj at au1.ibm.com>
>
> I would value a review from one of the PPC folks.
Looks good to me. You can add:
Acked-by: Anton Blanchard <anton at samba.org>
Anton
> > ---
> > purgatory/arch/ppc64/v2wrap.S | 12 +++++++++---
> > 1 file changed, 9 insertions(+), 3 deletions(-)
> >
> > diff --git a/purgatory/arch/ppc64/v2wrap.S
> > b/purgatory/arch/ppc64/v2wrap.S index dc5034f..179ade9 100644
> > --- a/purgatory/arch/ppc64/v2wrap.S
> > +++ b/purgatory/arch/ppc64/v2wrap.S
> > @@ -114,10 +114,16 @@ master:
> > LOADADDR(6,run_at_load) # the load flag
> > lwz 7,0(6) # possibly patched by
> > kexec-elf-ppc64 stw 7,0x5c(4) # and patch it into the
> > kernel
> > - li 5,0 # r5 will be 0 for kernel
> > - mtctr 4 # prepare branch too
> > mr 3,16 # restore dt address
> >
> > + mtsrr0 4 # prepare branch to
> > +
> > + mfmsr 5
> > + clrrdi 5,5,1 # clear MSR_LE
> > + mtsrr1 5
> > +
> > + li 5,0 # r5 will be 0 for kernel
> > +
> > # skip cache flush, do we care?
> >
> > - bctr # start kernel
> > + rfid # update MSR and start kernel
> > --
> > 2.5.0
> >
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
More information about the Linuxppc-dev
mailing list