Re: [PATCH] purgatory/arch/ppc64: Reset primary cpu endian to big-endian

2015-09-09 Thread Anton Blanchard
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 
> 
> I would value a review from one of the PPC folks.

Looks good to me. You can add:

Acked-by: Anton Blanchard 

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@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH] purgatory/arch/ppc64: Reset primary cpu endian to big-endian

2015-09-04 Thread Simon Horman
On Thu, Sep 03, 2015 at 03:18:02PM +1000, Michael Ellerman wrote:
> On Wed, 2015-09-02 at 10:02 +0900, Simon Horman wrote:
> > [CC linuxppc-dev]
> > 
> > On Fri, Aug 21, 2015 at 12:51:16PM +1000, Samuel Mendoza-Jonas wrote:
> > > 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 
> > 
> > I would value a review from one of the PPC folks.
> 
> The diff looks good to me, and I've also tested it, so take your pick:
> 
> Tested-by: Michael Ellerman 
> Acked-by: Michael Ellerman 

Thanks, I took the latter.
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH] purgatory/arch/ppc64: Reset primary cpu endian to big-endian

2015-09-02 Thread Michael Ellerman
On Wed, 2015-09-02 at 10:02 +0900, Simon Horman wrote:
> [CC linuxppc-dev]
> 
> On Fri, Aug 21, 2015 at 12:51:16PM +1000, Samuel Mendoza-Jonas wrote:
> > 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 
> 
> I would value a review from one of the PPC folks.

The diff looks good to me, and I've also tested it, so take your pick:

Tested-by: Michael Ellerman 
Acked-by: Michael Ellerman 

cheers


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH] purgatory/arch/ppc64: Reset primary cpu endian to big-endian

2015-09-01 Thread Simon Horman
[CC linuxppc-dev]

On Fri, Aug 21, 2015 at 12:51:16PM +1000, Samuel Mendoza-Jonas wrote:
> 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 

I would value a review from one of the PPC folks.

> ---
>  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@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev