From mboxrd@z Thu Jan 1 00:00:00 1970 From: gregory.clement@free-electrons.com (Gregory CLEMENT) Date: Mon, 29 Sep 2014 14:46:15 +0200 Subject: ARMADA 370 - Kernel panic during boot In-Reply-To: References: <6241a6200de0d573c982f73f062ed7fa@twien.net> <542938A7.8050307@free-electrons.com> Message-ID: <54295497.1080807@free-electrons.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, On 29/09/2014 13:25, post at twien.net wrote: > Hi, > Thanks for your reply. > Here are my .config and .dts files. I built a kernel with your .config and then also your dts on an other Armada 370 based board and I didn't get any issue during the initialization of the MPIC. I think that your issue could come either from your bootloader or from your hardware itself. Gregory > BR, > Tormod >> On 29/09/2014 12:09, post at twien.net wrote: >>> 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 >> >> It is not the first access on this register so it's surprising that it >> crashes here. >> >>> >>> Any hint in which direction to look is welcome. The MMU? >> >> I put the other mvebu maintainer in copy and also the main developer on >> this SoC to see if it something familiar to them. >> >> Gregory >>> >>> 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 : [] lr : [] 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] [] (armada_370_xp_mpic_of_init) from >>> [] (of_irq_init+0x168/0x2a4) >>> [ 0.000000] r8:c04e6f00 r7:00000000 r6:c04ebf48 r5:c04ebf48 >>> r4:eec023c0 >>> [ 0.000000] [] (of_irq_init) from [] >>> (irqchip_init+0x14/0x20) >>> [ 0.000000] r10:00000000 r9:561f5811 r8:00004059 r7:ef7fcd00 >>> r6:c04e376c r5:c050f8c0 >>> [ 0.000000] r4:c04e375c >>> [ 0.000000] [] (irqchip_init) from [] >>> (mvebu_init_irq+0x10/0x5c) >>> [ 0.000000] [] (mvebu_init_irq) from [] >>> (init_IRQ+0x2c/0x84) >>> [ 0.000000] [] (init_IRQ) from [] >>> (start_kernel+0x1f4/0x318) >>> [ 0.000000] r4:ffffffff r3:c04f27dc >>> [ 0.000000] [] (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! >>> >>> _______________________________________________ >>> linux-arm-kernel mailing list >>> linux-arm-kernel at lists.infradead.org >>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >>> > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com