PSCI: prefetch abort with Mainline linux (even with rockchip u-boot)

Jagan Teki jagan at edgeble.ai
Sat Oct 22 16:35:56 CEST 2022


Hi Kever and Heiko,

Rockchip 32-bit SoC, like rv1126 seems to depend on PSCI to bring SMP in linux.

With rockchip u-boot and Mainline U-Boot the psci in linux-next
triggers the abort. (note that I have added rockchip_smcc and enabled
PSCI in u-boot)

[    0.000000] Booting Linux on physical CPU 0xf00
[    0.000000] Linux version 6.1.0-rc1-00029-gb09e57e6064a
(j at j-ThinkPad-E14-Gen-2) (arm-linux-gnueabihf-gcc (GCC) 11.0.1
20210310 (experimental) [master revision
5987d8a79cda1069c774e5c302d5597310270026], GNU ld
 (Linaro_Binutils-2021.03) 2.36.50.20210310) #12 SMP Sat Oct 22
19:44:56 IST 2022
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[    0.000000] OF: fdt: Machine model: Edgeble Neu2 IO Board
[    0.000000] earlycon: uart8250 at MMIO32 0xff570000 (options '')
[    0.000000] printk: bootconsole [uart8250] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 64 MiB at 0x7c000000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   Normal   empty
[    0.000000]   HighMem  [mem 0x0000000030000000-0x000000007fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000007fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] Bad mode in prefetch abort handler detected
[    0.000000] Internal error: Oops - bad mode: 0 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted
6.1.0-rc1-00029-gb09e57e6064a #12
[    0.000000] Hardware name: Generic DT based system
[    0.000000] PC is at 0x133fd468
[    0.000000] LR is at __invoke_psci_fn_smc+0x38/0x58
[    0.000000] pc : [<133fd468>]    lr : [<c0eb20f0>]    psr: 600001d6
[    0.000000] sp : c1e01e68  ip : c1e01ec0  fp : 80000200
[    0.000000] r10: c1e01f58  r9 : 7fffffff  r8 : c1e09410
[    0.000000] r7 : 00000000  r6 : 00000000  r5 : 00000000  r4 : 00000000
[    0.000000] r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : 84000000
[    0.000000] Flags: nZCv  IRQs off  FIQs off  Mode MON_32  ISA ARM
Segment none
[    0.000000] Control: 10c5387d  Table: 0020406a  DAC: c1e09980
[    0.000000] Register r0 information: non-paged memory
[    0.000000] Register r1 information: NULL pointer
[    0.000000] Register r2 information: NULL pointer
[    0.000000] Register r3 information: NULL pointer
[    0.000000] Register r4 information: NULL pointer
[    0.000000] Register r5 information: NULL pointer
[    0.000000] Register r6 information: NULL pointer
[    0.000000] Register r7 information: NULL pointer
[    0.000000] Register r8 information: non-slab/vmalloc memory
[    0.000000] Register r9 information: non-paged memory
[    0.000000] Register r10 information: non-slab/vmalloc memory
[    0.000000] Register r11 information: non-paged memory
[    0.000000] Register r12 information: non-slab/vmalloc memory
[    0.000000] Process swapper (pid: 0, stack limit = 0x(ptrval))
[    0.000000] Stack: (0xc1e01e68 to 0xc1e02000)
[    0.000000] 1e60:                   84000000 00000000 00000000
00000000 00000000 00000000
[    0.000000] 1e80: 00000000 00000000 c1e09410 7fffffff c1e01f58
80000200 c1e01ec0 c1e01e68
[    0.000000] 1ea0: c0eb20f0 133fd468 600001d6 ffffffff c1e09980
00000000 c20891c0 c1b1c168
[    0.000000] 1ec0: 00000000 00000000 00000000 00000000 c1e01edc
00000000 c20891c0 c1245ac8
[    0.000000] 1ee0: ff8005a8 00000000 c1d2fca0 00000000 eefea2fc
c1c93594 eefea2fc c1e09980
[    0.000000] 1f00: c20891c0 c1b1c168 c1e09410 c1c93a10 eefea2fc
c1c939d8 c1d2fbdc 00000000
[    0.000000] 1f20: 7fffffff c1caf854 c1e0afa0 c1c04c44 00000000
c1e01f4c c1e01f50 00000000
[    0.000000] 1f40: c1e09980 c198cfec c1e01f9c 00000000 80000000
c1e09980 ffffffff ffffffff
[    0.000000] 1f60: c2089064 08300000 410fc075 10c5387d 00000000
c039de88 c1e01f9c 00000000
[    0.000000] 1f80: c1e09980 c1c00420 c1e04ec0 c1e09980 c2089064
08300000 410fc075 10c5387d
[    0.000000] 1fa0: 00000000 c1c00b08 00000000 00000000 00000000
00000000 00000000 00000000
[    0.000000] 1fc0: 00000000 c1cc8a6c 00000000 00000000 00000000
c1c00420 00000051 10c0387d
[    0.000000] 1fe0: 00000000 08300000 410fc075 10c5387d 00000000
00000000 00000000 00000000
[    0.000000]  __invoke_psci_fn_smc from 0xc1e01e68
[    0.000000] Code: bad PC value

Any comments?

Thanks,
Jagan.


More information about the U-Boot mailing list