ARMADA 370 - Kernel panic during boot

post at twien.net post at twien.net
Mon Sep 29 03:09:16 PDT 2014


I'm trying to run the linux 3.16.3 kernel on a custom board based on the 
ARMADA 370 (88F6W11).
The bootloader (U-boot) is the latest from Marvell. A custom .dts file 
is created for the board.
The Kernel panics during initialization. See screen dump.
The error occurs when trying to read the interrupt control register (on 
this line:)

control = readl(main_int_base + ARMADA_370_XP_INT_CONTROL);
=> Unhandled fault: external abort on non-linefetch (0x1008) at 
0xf0000a00

Any hint in which direction to look is welcome. The MMU?

Thanks, Tormod


Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.16.3 (tormod at TW-Dell) (gcc version 4.6.4 
(Linaro GCC branch-4.6.4. Marvell GCC Dev 201310-2126.3d181f66 64K 
MAXPAGESIZE ALIGN) ) #13 SMP Wed Sep 24 14:45:08 CEST 2014
[    0.000000] CPU: ARMv7 Processor [561f5811] revision 1 (ARMv7), 
cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction 
cache
[    0.000000] Machine model: Marvell Armada 370 Ethernet Prototype
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Truncating RAM at 0x00000000-0x40000000 to -0x2f800000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] PERCPU: Embedded 7 pages/cpu @ef137000 s5952 r8192 d14528 
u32768
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/nfs 
rw nfsroot=193.71.72.30:/srv/nfs4/fs ip=dhcp earlyprintk
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 
bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 
bytes)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04ba004   (4809 kB)
[    0.000000]       .init : 0xc04bb000 - 0xc04e9740   ( 186 kB)
[    0.000000]       .data : 0xc04ea000 - 0xc050f880   ( 151 kB)
[    0.000000]        .bss : 0xc050f888 - 0xc0544afc   ( 213 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, 
Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, 
nr_cpu_ids=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] Unhandled fault: external abort on non-linefetch (0x1008) 
at 0xf0000a00
[    0.000000] Internal error: : 1008 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.16.3 #13
[    0.000000] task: c04f4c60 ti: c04ea000 task.ti: c04ea000
[    0.000000] PC is at armada_370_xp_mpic_of_init+0xf8/0x1dc
[    0.000000] LR is at ioremap_page_range+0xf4/0x19c
[    0.000000] pc : [<c04ccda8>]    lr : [<c01f06d4>]    psr: a00001d3
[    0.000000] sp : c04ebee0  ip : c04ebe78  fp : c04ebf44
[    0.000000] r10: 00100100  r9 : 00200200  r8 : c04e6f00
[    0.000000] r7 : 00000000  r6 : c0538cc0  r5 : 00000000  r4 : 
ef144300
[    0.000000] r3 : f0000a00  r2 : 00000000  r1 : d0021e13  r0 : 
f0002870
[    0.000000] Flags: NzCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  
Segment kernel
[    0.000000] Control: 10c5387d  Table: 00004019  DAC: 00000015
[    0.000000] Process swapper/0 (pid: 0, stack limit = 0xc04ea248)
[    0.000000] Stack: (0xc04ebee0 to 0xc04ec000)
[    0.000000] bee0: 00000000 ef144300 d0020a00 d0020bcf ef144358 
00000200 00000000 00000000
[    0.000000] bf00: 00000000 d0021870 d00218c7 ef144358 00000200 
00000000 00000000 00000000
[    0.000000] bf20: c02b3260 eec023c0 c04ebf48 c04ebf48 00000000 
c04e6f00 c04ebf84 c04ebf48
[    0.000000] bf40: c04d1dc8 c04cccbc c04ebf48 c04ebf48 c04ebf50 
c04ebf50 ef7fcd00 c04e375c
[    0.000000] bf60: c050f8c0 c04e376c ef7fcd00 00004059 561f5811 
00000000 c04ebf94 c04ebf88
[    0.000000] bf80: c04ccca4 c04d1c6c c04ebfa4 c04ebf98 c04c1528 
c04ccc9c c04ebfbc c04ebfa8
[    0.000000] bfa0: c04bc68c c04c1524 c04f27dc ffffffff c04ebff4 
c04ebfc0 c04bbabc c04bc66c
[    0.000000] bfc0: ffffffff ffffffff c04bb668 00000000 00000000 
c04e376c c050fb54 c04f23fc
[    0.000000] bfe0: c04e3768 c04f5c10 00000000 c04ebff8 00008074 
c04bb8d4 00000000 00000000
[    0.000000] Backtrace:
[    0.000000] [<c04cccb0>] (armada_370_xp_mpic_of_init) from 
[<c04d1dc8>] (of_irq_init+0x168/0x2a4)
[    0.000000]  r8:c04e6f00 r7:00000000 r6:c04ebf48 r5:c04ebf48 
r4:eec023c0
[    0.000000] [<c04d1c60>] (of_irq_init) from [<c04ccca4>] 
(irqchip_init+0x14/0x20)
[    0.000000]  r10:00000000 r9:561f5811 r8:00004059 r7:ef7fcd00 
r6:c04e376c r5:c050f8c0
[    0.000000]  r4:c04e375c
[    0.000000] [<c04ccc90>] (irqchip_init) from [<c04c1528>] 
(mvebu_init_irq+0x10/0x5c)
[    0.000000] [<c04c1518>] (mvebu_init_irq) from [<c04bc68c>] 
(init_IRQ+0x2c/0x84)
[    0.000000] [<c04bc660>] (init_IRQ) from [<c04bbabc>] 
(start_kernel+0x1f4/0x318)
[    0.000000]  r4:ffffffff r3:c04f27dc
[    0.000000] [<c04bb8c8>] (start_kernel) from [<00008074>] (0x8074)
[    0.000000]  r7:c04f5c10 r6:c04e3768 r5:c04f23fc r4:c050fb54
[    0.000000] Code: e3500000 1a000000 e7f001f2 e5963000 (e5937000)
[    0.000000] ---[ end trace 3406ff24bd97382e ]---
[    0.000000] Kernel panic - not syncing: Attempted to kill the idle 
task!
[    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill 
the idle task!



More information about the linux-arm-kernel mailing list