Message ID | 6d3553bfe8a2d1ac88cab852100616a7@localhost (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, * Marc Zyngier <marc.zyngier@arm.com> [121006 03:19]: > > If you compiled for v6 only, we can safely exclude __hyp_stub_install, and > I assume that you get past the decompressor. Yes, by default it's v6 + v7, but making it v6 only did not help. > If so, that indicates some side effect of the safe_svcmode_maskall macro, > and I suspect the "movs pc, lr" bit. > > Can you try the attached patch? It basically falls back to the previous > behaviour if not entered in HYP mode. Yes, with this it boots OK. Regards, Tony > diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h > index 658a15d..b21b97f 100644 > --- a/arch/arm/include/asm/assembler.h > +++ b/arch/arm/include/asm/assembler.h > @@ -254,16 +254,17 @@ > mov lr , \reg > and lr , lr , #MODE_MASK > cmp lr , #HYP_MODE > - orr \reg , \reg , #PSR_A_BIT | PSR_I_BIT | PSR_F_BIT > + orr \reg , \reg , #PSR_I_BIT | PSR_F_BIT > bic \reg , \reg , #MODE_MASK > orr \reg , \reg , #SVC_MODE > THUMB( orr \reg , \reg , #PSR_T_BIT ) > - msr spsr_cxsf, \reg > - adr lr, BSYM(2f) > bne 1f > + orr \reg, \reg, #PSR_A_BIT > + adr lr, BSYM(2f) > + msr spsr_cxsf, \reg > __MSR_ELR_HYP(14) > __ERET > -1: movs pc, lr > +1: msr cpsr_c, \reg > 2: > .endm >
On Sat, 6 Oct 2012, Tony Lindgren wrote: > * Marc Zyngier <marc.zyngier@arm.com> [121006 03:19]: > > > If so, that indicates some side effect of the safe_svcmode_maskall macro, > > and I suspect the "movs pc, lr" bit. > > > > Can you try the attached patch? It basically falls back to the previous > > behaviour if not entered in HYP mode. > > Yes, with this it boots OK. OK. In that case, I suggest this patch be sent to Russell to fix this issue so he could push the ARM stuff to Linus ASAP. Acked-by: Nicolas Pitre <nico@linaro.org> Nicolas
* Nicolas Pitre <nicolas.pitre@linaro.org> [121006 08:33]: > On Sat, 6 Oct 2012, Tony Lindgren wrote: > > > * Marc Zyngier <marc.zyngier@arm.com> [121006 03:19]: > > > > > If so, that indicates some side effect of the safe_svcmode_maskall macro, > > > and I suspect the "movs pc, lr" bit. > > > > > > Can you try the attached patch? It basically falls back to the previous > > > behaviour if not entered in HYP mode. > > > > Yes, with this it boots OK. > > OK. In that case, I suggest this patch be sent to Russell to fix this > issue so he could push the ARM stuff to Linus ASAP. > > Acked-by: Nicolas Pitre <nico@linaro.org> Yes we can come back to this: Tested-by: Tony Lindgren <tony@atomide.com>
On Sat, Oct 06, 2012 at 11:32:16AM -0400, Nicolas Pitre wrote: > On Sat, 6 Oct 2012, Tony Lindgren wrote: > > * Marc Zyngier <marc.zyngier@arm.com> [121006 03:19]: > > > > > If so, that indicates some side effect of the safe_svcmode_maskall macro, > > > and I suspect the "movs pc, lr" bit. > > > > > > Can you try the attached patch? It basically falls back to the previous > > > behaviour if not entered in HYP mode. > > > > Yes, with this it boots OK. > > OK. In that case, I suggest this patch be sent to Russell to fix this > issue so he could push the ARM stuff to Linus ASAP. > > Acked-by: Nicolas Pitre <nico@linaro.org> I've already sent the pull request (it's late enough already for the first bunch of stuff... Linus' truely brilliant timing for the N'th time sees the merge window open when I'm away - why does he keep doing that to me?) for everything _except_ stuff in my 'devel-stable' branch, which includes the opcodes, virt, and new cache maintanence stuff. I won't be sending Linus another pull request until at least three days after he merges the current request, so we'll just have to hope that this doesn't turn out to be a short merge window...
On Sat, 6 Oct 2012 08:40:52 -0700, Tony Lindgren <tony@atomide.com> wrote: > * Nicolas Pitre <nicolas.pitre@linaro.org> [121006 08:33]: >> On Sat, 6 Oct 2012, Tony Lindgren wrote: >> >> > * Marc Zyngier <marc.zyngier@arm.com> [121006 03:19]: >> > >> > > If so, that indicates some side effect of the safe_svcmode_maskall >> > > macro, >> > > and I suspect the "movs pc, lr" bit. >> > > >> > > Can you try the attached patch? It basically falls back to the >> > > previous >> > > behaviour if not entered in HYP mode. >> > >> > Yes, with this it boots OK. >> >> OK. In that case, I suggest this patch be sent to Russell to fix this >> issue so he could push the ARM stuff to Linus ASAP. >> >> Acked-by: Nicolas Pitre <nico@linaro.org> > > Yes we can come back to this: > > Tested-by: Tony Lindgren <tony@atomide.com> Now in Russell's patch system as #7549/1. Thanks a lot for your help on this both of you. M.
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 658a15d..b21b97f 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h @@ -254,16 +254,17 @@ mov lr , \reg and lr , lr , #MODE_MASK cmp lr , #HYP_MODE - orr \reg , \reg , #PSR_A_BIT | PSR_I_BIT | PSR_F_BIT + orr \reg , \reg , #PSR_I_BIT | PSR_F_BIT bic \reg , \reg , #MODE_MASK orr \reg , \reg , #SVC_MODE THUMB( orr \reg , \reg , #PSR_T_BIT ) - msr spsr_cxsf, \reg - adr lr, BSYM(2f) bne 1f + orr \reg, \reg, #PSR_A_BIT + adr lr, BSYM(2f) + msr spsr_cxsf, \reg __MSR_ELR_HYP(14) __ERET -1: movs pc, lr +1: msr cpsr_c, \reg 2: .endm