cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
gladson
Observer
Observer
246 Views
Registered: ‎01-31-2021

Kernel panic - Interrupt controller issue

Hi, 


I am working on a Zynq MPSoC 7ev custom board and we are facing issue while booting the board.
We are getting kernel panic issue.
May I know what is causing the issue?
Is that of interrupt controller? If yes then how could we solve it?

The device tree(pl.dtsi)
-------------------------------
 ps_axi_intc_0: interrupt-controller@a02d0000 {
#interrupt-cells = <2>;
clock-names = "s_axi_aclk";
clocks = <&zynqmp_clk 71>;
compatible = "xlnx,axi-intc-4.1", "xlnx,xps-intc-1.00.a";
interrupt-controller ;
reg = <0x0 0xa02d0000 0x0 0x10000>;
xlnx,kind-of-intr = <0x0>;
xlnx,num-intr-inputs = <0x5>;
};

Log of kernel crash
--------------------------

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 4.19.0-xilinx-v2019.2 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Tue Mar 9 09:22:56 UTC 2021
[ 0.000000] Machine model: xlnx,zynqmp
[ 0.000000] earlycon: cdns0 at MMIO 0x00000000ff000000 (options '115200n8')
[ 0.000000] bootconsole [cdns0] enabled
[ 0.000000] cma: Reserved 1020 MiB at 0x0000000040000000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.1
[ 0.000000] random: get_random_bytes called from start_kernel+0x94/0x3ec with crng_init=0
[ 0.000000] percpu: Embedded 22 pages/cpu @(____ptrval____) s53144 r8192 d28776 u90112
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: enabling workaround for ARM erratum 845719
[ 0.000000] Speculative Store Bypass Disable mitigation not required
[ 0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1033987
[ 0.000000] Kernel command line: earlycon earlyprintk console=ttyPS0,115200n8 ip=192.168.3.99 root=/dev/nfs rootfstype=nfs nfsroot=192.168.3.225:/home/iwave/NFS,v4,1
[ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.000000] software IO TLB: mapped [mem 0x3c000000-0x40000000] (64MB)
[ 0.000000] Memory: 3001384K/4193280K available (10366K kernel code, 676K rwdata, 5068K rodata, 512K init, 318K bss, 147416K reserved, 1044480K cma-reserved)
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[ 0.000000] GIC: Using split EOI/Deactivate mode
[ 0.000000] irq-xilinx: /amba_pl@0/interrupt-controller@a02d0000: num_irq=5, edge=0x0
[ 0.000000] SError Interrupt on CPU0, code 0xbf000000 -- SError
[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.19.0-xilinx-v2019.2 #1
[ 0.000000] Hardware name: xlnx,zynqmp (DT)
[ 0.000000] pstate: 40000085 (nZcv daIf -PAN -UAO)
[ 0.000000] pc : xintc_write+0x4/0x10
[ 0.000000] lr : xilinx_intc_of_init+0x17c/0x2a8
[ 0.000000] sp : ffffff8009023e70
[ 0.000000] x29: ffffff8009023e70 x28: 0000000000fa0018
[ 0.000000] x27: 00000000006080c0 x26: ffffff8009023f18
[ 0.000000] x25: dead000000000100 x24: dead000000000200
[ 0.000000] x23: ffffffc87ffc5518 x22: ffffffc87ffec228
[ 0.000000] x21: ffffffc87b807400 x20: 0000000000000000
[ 0.000000] x19: ffffffc87b803a00 x18: 0000000000000010
[ 0.000000] x17: ffffffbf1db040b0 x16: ffffffc87b801088
[ 0.000000] x15: ffffffffffffffff x14: 78303d6567646520
[ 0.000000] x13: 2c353d7172695f6d x12: 756e203a30303030
[ 0.000000] x11: 643230614072656c x10: ffffffc87b801198
[ 0.000000] x9 : 0000000000000000 x8 : ffffffc87b807600
[ 0.000000] x7 : ffffffc87ffec2d0 x6 : ffffff80084d5ed0
[ 0.000000] x5 : ffffff80084d5f78 x4 : ffffff80084d5ec0
[ 0.000000] x3 : ffffff80084d5f48 x2 : ffffff80084d5ec0
[ 0.000000] x1 : 00000000ffffffff x0 : ffffff800912000c
[ 0.000000] Kernel panic - not syncing: Asynchronous SError Interrupt
[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.19.0-xilinx-v2019.2 #1
[ 0.000000] Hardware name: xlnx,zynqmp (DT)
[ 0.000000] Call trace:
[ 0.000000] dump_backtrace+0x0/0x180
[ 0.000000] show_stack+0x14/0x20
[ 0.000000] dump_stack+0x9c/0xbc
[ 0.000000] panic+0x130/0x278
[ 0.000000] nmi_panic+0x6c/0x70
[ 0.000000] arm64_serror_panic+0x74/0x80
[ 0.000000] is_valid_bugaddr+0x0/0x8
[ 0.000000] el1_error+0x7c/0xdc
[ 0.000000] xintc_write+0x4/0x10
[ 0.000000] of_irq_init+0x17c/0x2d4
[ 0.000000] irqchip_init+0x14/0x1c
[ 0.000000] init_IRQ+0xf4/0x124
[ 0.000000] start_kernel+0x274/0x3ec


With regards,
Gladson

4 Replies
stephenm
Xilinx Employee
Xilinx Employee
222 Views
Registered: ‎09-12-2007

What are the interrupt sources to the interrupt controller. Can you share a screenshot of this?

0 Kudos
gladson
Observer
Observer
210 Views
Registered: ‎01-31-2021

Hello @stephenm ,


We are having 11 interrupt sources. Some are DP, SDI, HDMI, framebuffer write and framebuffer read etc.
In xlconcat_0 six interrupts are connected to pl_ps_irq0 and in xlconcat_1 five interrupts are connected to pl_ps_irq_1 as in screen grab.
We had same design previously and we were able to boot the board without any issue. The only change in this design is we are connecting some framebuffer write to PL DDR.

Thanks and Regards,
Gladson

design.png
0 Kudos
stephenm
Xilinx Employee
Xilinx Employee
176 Views
Registered: ‎09-12-2007

I would imagine the issue is one of the interrupt sources. Can you remove these from the DT and try again.

You mentioned the framebuffer. Can you try remove this interrupt source (just comment the interrupt param in the DT)

0 Kudos
gladson
Observer
Observer
117 Views
Registered: ‎01-31-2021

Hello @stephenm,

Thanks for the immediate reply.

"The only change in this design is we are connecting some framebuffer write to PL DDR."
I tried disabling the framebuffers that are connected to PL DDR and checked but still same issue I am facing. 

With Regards,
Gladson

 

0 Kudos