Re: [PATCH v4 24/24] openrisc: head: Init r0 to 0 on start

From: Stafford Horne
Date: Fri Feb 24 2017 - 14:35:17 EST


On Fri, Feb 24, 2017 at 10:21:50AM +0100, Jonas Bonn wrote:
> On 02/24/2017 05:32 AM, Stafford Horne wrote:
> > Originally openrisc spec 0 specified that r0 would be wired to ground.
> > This is no longer the case. r0 is not guaranteed to be 0 at init, so we
> > need to initialize it to 0 before using it.
> >
> > Also, if we are clearing r0 we cant use r0 to clear itself. Change the
> > the CLEAR_GPR macro to use movhi for clearing.
>
> Use the Reported-by: tag here since you are taking the time to mention him
> in the summary mail.

Right, added.

Thanks.

> Reported-by: Jakob...
> > Signed-off-by: Stafford Horne <shorne@xxxxxxxxx>
> > ---
> > arch/openrisc/kernel/head.S | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/openrisc/kernel/head.S b/arch/openrisc/kernel/head.S
> > index 573e131..e8a1784 100644
> > --- a/arch/openrisc/kernel/head.S
> > +++ b/arch/openrisc/kernel/head.S
> > @@ -35,7 +35,7 @@
> > l.add rd,rd,rs
> > #define CLEAR_GPR(gpr) \
> > - l.or gpr,r0,r0
> > + l.movhi gpr,0x0
> > #define LOAD_SYMBOL_2_GPR(gpr,symbol) \
> > l.movhi gpr,hi(symbol) ;\
> > @@ -443,6 +443,9 @@ _dispatch_do_ipage_fault:
> > __HEAD
> > .global _start
> > _start:
> > + /* Init r0 to zero as per spec */
> > + CLEAR_GPR(r0)
> > +
> > /* save kernel parameters */
> > l.or r25,r0,r3 /* pointer to fdt */
>
>