linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* ARM64 boot failure on Macchiatobin with Marvell 18.12 firmware
@ 2019-02-01 11:19 Russell King - ARM Linux admin
  2019-02-01 11:46 ` Will Deacon
  0 siblings, 1 reply; 4+ messages in thread
From: Russell King - ARM Linux admin @ 2019-02-01 11:19 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

I've updated the ATF, DDR and Marvell binaries firmware from 17.10
to 18.12 on a Macchiatobin Single-shot board, while keeping u-boot
the same version (17.10).

When booting a previously working 4.20 kernel, I now get:

Booting Linux on physical CPU 0x0000000000 [0x410fd081]
Linux version 4.20.0+ (rmk@rmk-PC.armlinux.org.uk) (gcc version 4.9.2
(GCC)) #212 SMP PREEMPT Thu Jan 31 15:33:31 GMT 2019
Machine model: Marvell 8040 MACCHIATOBin Single-shot
earlycon: uart0 at MMIO 0x00000000f0512000 (options '115200n8')
printk: bootconsole [uart0] enabled
SError Interrupt on CPU0, code 0xbf000002 -- SError
CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
pstate: 00400085 (nzcv daIf +PAN -UAO)
pc : setup_arch+0xe8/0x56c
lr : setup_arch+0xe0/0x56c
sp : ffffff8008b03f10
x29: ffffff8008b03f10 x28: 0000000000a50018
x27: 0000000000000000 x26: 000000007ffa2e88
x25: 000000007f7a2c68 x24: 0000000000000003
x23: 0000000000000000 x22: ffffffbefe90005c
x21: 0000000000000001 x20: ffffff8008b46000
x19: ffffff8008080000 x18: 00000000000000ff
x17: 0000000000001000 x16: 0000000000001000
x15: 446e1c00644a0615 x14: 2e392e34206e6f69
x13: 7372657620636367 x12: 0000000000000008
x11: 0000000000000007 x10: 0101010101010101
x9 : fffffffffffffffb x8 : 0000000000000008
x7 : 0000000000000003 x6 : 0080000000008080
x5 : 000000000000005f x4 : 000000000000006c
x3 : 0000000000000063 x2 : 000000000000006c
x1 : ffffff8008961ff9 x0 : 0000000000000080
Kernel panic - not syncing: Asynchronous SError Interrupt
CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
Call trace:
 dump_backtrace+0x0/0x158
 show_stack+0x14/0x1c
 dump_stack+0x90/0xb0
 panic+0x148/0x2b8
 print_tainted+0x0/0xa8
 arm64_serror_panic+0x74/0x80
 do_serror+0x5c/0xb8
 el1_error+0xb4/0x144
 setup_arch+0xe8/0x56c
 start_kernel+0x64/0x408

If I'm reading the Cortex-A72 ESR information correctly, this is a
Slave Error SError interrupt.

The failing code sequence appears to be:

ffffff8008a53098:       9401506a        bl      ffffff8008aa7240 <dump_stack_set_arch_desc>
ffffff8008a5309c:       97fff636        bl      ffffff8008a50974 <parse_early_param>
ffffff8008a530a0:       d2801000        mov     x0, #0x80
// #128
ffffff8008a530a4:       d51b4220        msr     daif, x0
ffffff8008a530a8:       d0fffcdb        adrp    x27, ffffff80089ed000 <kallsyms_token_index+0x8b300>

If I downgrade the firmware back to 17.10, the kernel boots fine again.

Any ideas what's going on here?

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: ARM64 boot failure on Macchiatobin with Marvell 18.12 firmware
  2019-02-01 11:19 ARM64 boot failure on Macchiatobin with Marvell 18.12 firmware Russell King - ARM Linux admin
@ 2019-02-01 11:46 ` Will Deacon
  2019-02-01 12:30   ` Russell King - ARM Linux admin
  2019-02-01 12:43   ` Ard Biesheuvel
  0 siblings, 2 replies; 4+ messages in thread
From: Will Deacon @ 2019-02-01 11:46 UTC (permalink / raw)
  To: Russell King - ARM Linux admin; +Cc: linux-arm-kernel, ard.biesheuvel

[+Ard]

On Fri, Feb 01, 2019 at 11:19:18AM +0000, Russell King - ARM Linux admin wrote:
> I've updated the ATF, DDR and Marvell binaries firmware from 17.10
> to 18.12 on a Macchiatobin Single-shot board, while keeping u-boot
> the same version (17.10).
> 
> When booting a previously working 4.20 kernel, I now get:
> 
> Booting Linux on physical CPU 0x0000000000 [0x410fd081]
> Linux version 4.20.0+ (rmk@rmk-PC.armlinux.org.uk) (gcc version 4.9.2
> (GCC)) #212 SMP PREEMPT Thu Jan 31 15:33:31 GMT 2019
> Machine model: Marvell 8040 MACCHIATOBin Single-shot
> earlycon: uart0 at MMIO 0x00000000f0512000 (options '115200n8')
> printk: bootconsole [uart0] enabled
> SError Interrupt on CPU0, code 0xbf000002 -- SError
> CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
> Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
> pstate: 00400085 (nzcv daIf +PAN -UAO)
> pc : setup_arch+0xe8/0x56c
> lr : setup_arch+0xe0/0x56c
> sp : ffffff8008b03f10
> x29: ffffff8008b03f10 x28: 0000000000a50018
> x27: 0000000000000000 x26: 000000007ffa2e88
> x25: 000000007f7a2c68 x24: 0000000000000003
> x23: 0000000000000000 x22: ffffffbefe90005c
> x21: 0000000000000001 x20: ffffff8008b46000
> x19: ffffff8008080000 x18: 00000000000000ff
> x17: 0000000000001000 x16: 0000000000001000
> x15: 446e1c00644a0615 x14: 2e392e34206e6f69
> x13: 7372657620636367 x12: 0000000000000008
> x11: 0000000000000007 x10: 0101010101010101
> x9 : fffffffffffffffb x8 : 0000000000000008
> x7 : 0000000000000003 x6 : 0080000000008080
> x5 : 000000000000005f x4 : 000000000000006c
> x3 : 0000000000000063 x2 : 000000000000006c
> x1 : ffffff8008961ff9 x0 : 0000000000000080
> Kernel panic - not syncing: Asynchronous SError Interrupt
> CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
> Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
> Call trace:
>  dump_backtrace+0x0/0x158
>  show_stack+0x14/0x1c
>  dump_stack+0x90/0xb0
>  panic+0x148/0x2b8
>  print_tainted+0x0/0xa8
>  arm64_serror_panic+0x74/0x80
>  do_serror+0x5c/0xb8
>  el1_error+0xb4/0x144
>  setup_arch+0xe8/0x56c
>  start_kernel+0x64/0x408
> 
> If I'm reading the Cortex-A72 ESR information correctly, this is a
> Slave Error SError interrupt.
> 
> The failing code sequence appears to be:
> 
> ffffff8008a53098:       9401506a        bl      ffffff8008aa7240 <dump_stack_set_arch_desc>
> ffffff8008a5309c:       97fff636        bl      ffffff8008a50974 <parse_early_param>
> ffffff8008a530a0:       d2801000        mov     x0, #0x80
> // #128
> ffffff8008a530a4:       d51b4220        msr     daif, x0
> ffffff8008a530a8:       d0fffcdb        adrp    x27, ffffff80089ed000 <kallsyms_token_index+0x8b300>
> 
> If I downgrade the firmware back to 17.10, the kernel boots fine again.
> 
> Any ideas what's going on here?

Looks like you're taking the SError as soon as we unmask them, so it
could've been pending for ages. It would be interesting to see if it's
actually caused by the kernel, or if the firmware triggers it beforehand.

Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: ARM64 boot failure on Macchiatobin with Marvell 18.12 firmware
  2019-02-01 11:46 ` Will Deacon
@ 2019-02-01 12:30   ` Russell King - ARM Linux admin
  2019-02-01 12:43   ` Ard Biesheuvel
  1 sibling, 0 replies; 4+ messages in thread
From: Russell King - ARM Linux admin @ 2019-02-01 12:30 UTC (permalink / raw)
  To: Will Deacon; +Cc: linux-arm-kernel, ard.biesheuvel

On Fri, Feb 01, 2019 at 11:46:32AM +0000, Will Deacon wrote:
> [+Ard]
> 
> On Fri, Feb 01, 2019 at 11:19:18AM +0000, Russell King - ARM Linux admin wrote:
> > I've updated the ATF, DDR and Marvell binaries firmware from 17.10
> > to 18.12 on a Macchiatobin Single-shot board, while keeping u-boot
> > the same version (17.10).
> > 
> > When booting a previously working 4.20 kernel, I now get:
> > 
> > Booting Linux on physical CPU 0x0000000000 [0x410fd081]
> > Linux version 4.20.0+ (rmk@rmk-PC.armlinux.org.uk) (gcc version 4.9.2
> > (GCC)) #212 SMP PREEMPT Thu Jan 31 15:33:31 GMT 2019
> > Machine model: Marvell 8040 MACCHIATOBin Single-shot
> > earlycon: uart0 at MMIO 0x00000000f0512000 (options '115200n8')
> > printk: bootconsole [uart0] enabled
> > SError Interrupt on CPU0, code 0xbf000002 -- SError
> > CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
> > Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
> > pstate: 00400085 (nzcv daIf +PAN -UAO)
> > pc : setup_arch+0xe8/0x56c
> > lr : setup_arch+0xe0/0x56c
> > sp : ffffff8008b03f10
> > x29: ffffff8008b03f10 x28: 0000000000a50018
> > x27: 0000000000000000 x26: 000000007ffa2e88
> > x25: 000000007f7a2c68 x24: 0000000000000003
> > x23: 0000000000000000 x22: ffffffbefe90005c
> > x21: 0000000000000001 x20: ffffff8008b46000
> > x19: ffffff8008080000 x18: 00000000000000ff
> > x17: 0000000000001000 x16: 0000000000001000
> > x15: 446e1c00644a0615 x14: 2e392e34206e6f69
> > x13: 7372657620636367 x12: 0000000000000008
> > x11: 0000000000000007 x10: 0101010101010101
> > x9 : fffffffffffffffb x8 : 0000000000000008
> > x7 : 0000000000000003 x6 : 0080000000008080
> > x5 : 000000000000005f x4 : 000000000000006c
> > x3 : 0000000000000063 x2 : 000000000000006c
> > x1 : ffffff8008961ff9 x0 : 0000000000000080
> > Kernel panic - not syncing: Asynchronous SError Interrupt
> > CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
> > Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
> > Call trace:
> >  dump_backtrace+0x0/0x158
> >  show_stack+0x14/0x1c
> >  dump_stack+0x90/0xb0
> >  panic+0x148/0x2b8
> >  print_tainted+0x0/0xa8
> >  arm64_serror_panic+0x74/0x80
> >  do_serror+0x5c/0xb8
> >  el1_error+0xb4/0x144
> >  setup_arch+0xe8/0x56c
> >  start_kernel+0x64/0x408
> > 
> > If I'm reading the Cortex-A72 ESR information correctly, this is a
> > Slave Error SError interrupt.
> > 
> > The failing code sequence appears to be:
> > 
> > ffffff8008a53098:       9401506a        bl      ffffff8008aa7240 <dump_stack_set_arch_desc>
> > ffffff8008a5309c:       97fff636        bl      ffffff8008a50974 <parse_early_param>
> > ffffff8008a530a0:       d2801000        mov     x0, #0x80
> > // #128
> > ffffff8008a530a4:       d51b4220        msr     daif, x0
> > ffffff8008a530a8:       d0fffcdb        adrp    x27, ffffff80089ed000 <kallsyms_token_index+0x8b300>
> > 
> > If I downgrade the firmware back to 17.10, the kernel boots fine again.
> > 
> > Any ideas what's going on here?
> 
> Looks like you're taking the SError as soon as we unmask them, so it
> could've been pending for ages. It would be interesting to see if it's
> actually caused by the kernel, or if the firmware triggers it beforehand.

It could be something that the older u-boot is doing that the newer
firmware doesn't like, but that's just a guess.

I think I'm just going to stick with the older 17.10 firmware for
macchiatobin - building the newer u-boot is just way too much hassle.
Following the firmware build instructions it seems that "make
mvebu_mcbin-88f8040_defconfig" results in a u-boot configuration that
creates a binary without the DTB appended...

It also requires a gcc newer than 6.0 - well, I'm not waste yet more
time about to rebuild my 4.9.2 toolchain for ARM64 and potentially
introduce yet more breakage to waste still more time just because
u-boot wants it.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: ARM64 boot failure on Macchiatobin with Marvell 18.12 firmware
  2019-02-01 11:46 ` Will Deacon
  2019-02-01 12:30   ` Russell King - ARM Linux admin
@ 2019-02-01 12:43   ` Ard Biesheuvel
  1 sibling, 0 replies; 4+ messages in thread
From: Ard Biesheuvel @ 2019-02-01 12:43 UTC (permalink / raw)
  To: Will Deacon; +Cc: Russell King - ARM Linux admin, linux-arm-kernel

On Fri, 1 Feb 2019 at 12:46, Will Deacon <will.deacon@arm.com> wrote:
>
> [+Ard]
>
> On Fri, Feb 01, 2019 at 11:19:18AM +0000, Russell King - ARM Linux admin wrote:
> > I've updated the ATF, DDR and Marvell binaries firmware from 17.10
> > to 18.12 on a Macchiatobin Single-shot board, while keeping u-boot
> > the same version (17.10).
> >
> > When booting a previously working 4.20 kernel, I now get:
> >
> > Booting Linux on physical CPU 0x0000000000 [0x410fd081]
> > Linux version 4.20.0+ (rmk@rmk-PC.armlinux.org.uk) (gcc version 4.9.2
> > (GCC)) #212 SMP PREEMPT Thu Jan 31 15:33:31 GMT 2019
> > Machine model: Marvell 8040 MACCHIATOBin Single-shot
> > earlycon: uart0 at MMIO 0x00000000f0512000 (options '115200n8')
> > printk: bootconsole [uart0] enabled
> > SError Interrupt on CPU0, code 0xbf000002 -- SError
> > CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
> > Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
> > pstate: 00400085 (nzcv daIf +PAN -UAO)
> > pc : setup_arch+0xe8/0x56c
> > lr : setup_arch+0xe0/0x56c
> > sp : ffffff8008b03f10
> > x29: ffffff8008b03f10 x28: 0000000000a50018
> > x27: 0000000000000000 x26: 000000007ffa2e88
> > x25: 000000007f7a2c68 x24: 0000000000000003
> > x23: 0000000000000000 x22: ffffffbefe90005c
> > x21: 0000000000000001 x20: ffffff8008b46000
> > x19: ffffff8008080000 x18: 00000000000000ff
> > x17: 0000000000001000 x16: 0000000000001000
> > x15: 446e1c00644a0615 x14: 2e392e34206e6f69
> > x13: 7372657620636367 x12: 0000000000000008
> > x11: 0000000000000007 x10: 0101010101010101
> > x9 : fffffffffffffffb x8 : 0000000000000008
> > x7 : 0000000000000003 x6 : 0080000000008080
> > x5 : 000000000000005f x4 : 000000000000006c
> > x3 : 0000000000000063 x2 : 000000000000006c
> > x1 : ffffff8008961ff9 x0 : 0000000000000080
> > Kernel panic - not syncing: Asynchronous SError Interrupt
> > CPU: 0 PID: 0 Comm: swapper Not tainted 4.20.0+ #212
> > Hardware name: Marvell 8040 MACCHIATOBin Single-shot (DT)
> > Call trace:
> >  dump_backtrace+0x0/0x158
> >  show_stack+0x14/0x1c
> >  dump_stack+0x90/0xb0
> >  panic+0x148/0x2b8
> >  print_tainted+0x0/0xa8
> >  arm64_serror_panic+0x74/0x80
> >  do_serror+0x5c/0xb8
> >  el1_error+0xb4/0x144
> >  setup_arch+0xe8/0x56c
> >  start_kernel+0x64/0x408
> >
> > If I'm reading the Cortex-A72 ESR information correctly, this is a
> > Slave Error SError interrupt.
> >
> > The failing code sequence appears to be:
> >
> > ffffff8008a53098:       9401506a        bl      ffffff8008aa7240 <dump_stack_set_arch_desc>
> > ffffff8008a5309c:       97fff636        bl      ffffff8008a50974 <parse_early_param>
> > ffffff8008a530a0:       d2801000        mov     x0, #0x80
> > // #128
> > ffffff8008a530a4:       d51b4220        msr     daif, x0
> > ffffff8008a530a8:       d0fffcdb        adrp    x27, ffffff80089ed000 <kallsyms_token_index+0x8b300>
> >
> > If I downgrade the firmware back to 17.10, the kernel boots fine again.
> >
> > Any ideas what's going on here?
>
> Looks like you're taking the SError as soon as we unmask them, so it
> could've been pending for ages. It would be interesting to see if it's
> actually caused by the kernel, or if the firmware triggers it beforehand.
>


AIUI, they switched from giving the non-secure world access to all the
SoC config registers to exposing this as SIP services in ARM-TF. So
the SErrors are likely the result of MMIO accesses by U-Boot to
regions that are now configured as secure-only.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-01 12:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-01 11:19 ARM64 boot failure on Macchiatobin with Marvell 18.12 firmware Russell King - ARM Linux admin
2019-02-01 11:46 ` Will Deacon
2019-02-01 12:30   ` Russell King - ARM Linux admin
2019-02-01 12:43   ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).