LS1046 IRQ1 Interrupt Error

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LS1046 IRQ1 Interrupt Error

988 Views
Gyosun
Contributor III

Hello,

 

I am using the LS1046A custom board.

IRQ1 is tested by referring to the following link. 

https://community.nxp.com/t5/Layerscape/Howto-access-IRQ0-on-a-LS1046a/m-p/779140 

 

However, insmod kernel panic occurs.

I need help.

------------------------------------------

cpld: board-control@2,0 {
compatible = "fsl,ls1046ardb-cpld";
reg = <0x2 0x0 0x0000100>;

interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_LOW>;
interrupt-parent = <&gic>;
status = "okay";
};

-------------------------------------

node = of_find_node_by_name(NULL, "board-control");
irq_num = of_irq_to_resource(node, 0, &resource);
ret = request_irq(irq_num, (irq_handler_t)sio_interrupt, IRQF_TRIGGER_RISING, "irq1_handler", NULL);
if (0 > ret)
{
printk("unable open IRQ (%d) : %d\n", irq_num, ret);
return ret;
}
printk("IRQ num=%d\n", irq_num);

--------------------------------------

# insmod dev_int_ls1046a.ko
[ 98.487457] LS1046 IRQ1 Device Driver v0.90
[ 98.492530] major 241 for INTR_DRV
[ 98.496042] IRQ num=12
[ 98.498406] insmod[1600]: undefined instruction: pc=ffff80087fdbb400
[ 98.504758] Code: 00000008 00000000 00000000 00000000 (636f732f)
[ 98.510848] Internal error: Oops - undefined instruction: 0 [#1] SMP
[ 98.517198] Modules linked in: dev_int_ls1046a(O+)
[ 98.521991] CPU: 0 PID: 1600 Comm: insmod Tainted: G O 4.1.35-rt41 #140
[ 98.529733] Hardware name: LS1046A RDB Board (DT)
[ 98.534432] task: ffff80086077f540 ti: ffff800860f00000 task.ti: ffff800860f00000
[ 98.541912] PC is at 0xffff80087fdbb400
[ 98.545741] LR is at 0xffff80087fdbb400
[ 98.549571] pc : [<ffff80087fdbb400>] lr : [<ffff80087fdbb400>] pstate: 60000145
[ 98.556964] sp : ffff800860f03cf0
[ 98.560271] x29: 000000000000000c x28: 0000000000000124
[ 98.565583] x27: ffff8000000f78bc x26: 0000000000000014
[ 98.570897] x25: ffff800860393dc0 x24: 0000000000000001
[ 98.576207] x23: ffff7ffffc000380 x22: 0000000000000000
[ 98.581518] x21: 0000000000000000 x20: 0000000000000000
[ 98.586829] x19: 0000000000000400 x18: 0000000000000000
[ 98.592140] x17: 0000ffff8d684f30 x16: ffff800000199600
[ 98.597451] x15: ffffffffffffffff x14: 0ffffffffffffffe
[ 98.602762] x13: 0000000000000020 x12: 0000000000000001
[ 98.608074] x11: ffff800860f039c0 x10: ffff800860f039c0
[ 98.613384] x9 : 00000000ffffffd0 x8 : ffff800860f03990
[ 98.618695] x7 : 0000000000000196 x6 : ffff8000003710a0
[ 98.624005] x5 : 000000000000000f x4 : 0000000000000000
[ 98.629315] x3 : 0000000000000000 x2 : 0000000000000bcf
[ 98.634625] x1 : ffff800860f00000 x0 : 0000000000000000
[ 98.639935]
[ 98.641418] Process insmod (pid: 1600, stack limit = 0xffff800860f00028)
[ 98.648117] Stack: (0xffff800860f03cf0 to 0xffff800860f04000)
[ 98.653859] 3ce0: 60f03d20 ffff8008 000fa784 ffff8000
[ 98.662037] 3d00: 60f03e58 ffff8008 60393dd0 ffff8008 fc000330 ffff7fff 00000001 00000000
[ 98.670214] 3d20: 60f03e20 ffff8008 000fae7c ffff8000 00000000 00000000 00000003 00000000
[ 98.678391] 3d40: 0041a160 00000000 a4fbe5f4 0000ffff 80000000 00000000 00000015 00000000
[ 98.686568] 3d60: 0000011a 00000000 00000111 00000000 00720000 ffff8000 60f00000 ffff8008
[ 98.694744] 3d80: 60f03dd8 ffff8008 00000003 00000076 00000064 ffff7fff 00000072 ffff0000
[ 98.702921] 3da0: 0000006e ffff8008 0000003f ffff8008 0000feff ffff8000 fc002140 ffff7fff
[ 98.711098] 3dc0: 0b300001 000081a4 00000001 00000000 00000000 00000000 00001a48 00000000
[ 98.719275] 3de0: 60335109 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 98.727452] 3e00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 98.735628] 3e20: cfac05d0 0000ffff 00085320 ffff8000 00000080 00000000 0041a160 00000000
[ 98.743805] 3e40: ffffffff ffffffff 00000000 00000000 60f03eb0 ffff8008 005d5000 ffff0000
[ 98.751981] 3e60: 00001a48 00000000 005d6548 ffff0000 005d595a ffff0000 005d6050 ffff0000
[ 98.760158] 3e80: 00000520 00000000 00000688 00000000 00000000 00000000 00000000 00000000
[ 98.768334] 3ea0: 00000908 00000000 00000012 00000013 0000000b 00000008 00000006 00000000
[ 98.776511] 3ec0: 00000003 00000000 0041a160 00000000 00000000 00000000 00000003 00000000
[ 98.784687] 3ee0: 00000000 00000000 ffffffff 60ceffff ffffffff ffffffff ffffffff ffffffff
[ 98.792864] 3f00: 00000111 00000000 00000000 00000000 01010101 01010101 00000004 00000000
[ 98.801041] 3f20: 00000000 00000000 ffff0000 ffffffff a4efe664 0000ffff a5090030 0000ffff
[ 98.809217] 3f40: a4fbe5d0 0000ffff 0042b600 00000000 00000000 00000000 289711f0 00000000
[ 98.817394] 3f60: 0041a160 00000000 00000000 00000000 00000000 00000000 cfac07b8 0000ffff
[ 98.825570] 3f80: cfac0edd 0000ffff 00000000 00000000 00000000 00000000 00000000 00000000
[ 98.833747] 3fa0: 00000000 00000000 cfac05d0 0000ffff 0041018c 00000000 cfac05d0 0000ffff
[ 98.841924] 3fc0: a4fbe5f4 0000ffff 80000000 00000000 00000003 00000000 00000111 00000000
[ 98.850100] 3fe0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 98.858275] Call trace:
[ 98.860715] Code: 00000008 00000000 00000000 00000000 (636f732f)
[ 98.866816] ---[ end trace f0f40f37d09391ea ]---

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.510848] Internal error: Oops - undefined instruction: 0 [#1] SMP

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.653859] 3ce0: 60f03d20 ffff8008 000fa784 ffff8000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.648117] Stack: (0xffff800860f03cf0 to 0xffff800860f04000)

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.641418] Process insmod (pid: 1600, stack limit = 0xffff800860f00028)

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.711098] 3dc0: 0b300001 000081a4 00000001 00000000 00000000 00000000 00001a48 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.719275] 3de0: 60335109 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.727452] 3e00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.735628] 3e20: cfac05d0 0000ffff 00085320 ffff8000 00000080 00000000 0041a160 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.743805] 3e40: ffffffff ffffffff 00000000 00000000 60f03eb0 ffff8008 005d5000 ffff0000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.702921] 3da0: 0000006e ffff8008 0000003f ffff8008 0000feff ffff8000 fc002140 ffff7fff

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.694744] 3d80: 60f03dd8 ffff8008 00000003 00000076 00000064 ffff7fff 00000072 ffff0000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.776511] 3ec0: 00000003 00000000 0041a160 00000000 00000000 00000000 00000003 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.792864] 3f00: 00000111 00000000 00000000 00000000 01010101 01010101 00000004 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.801041] 3f20: 00000000 00000000 ffff0000 ffffffff a4efe664 0000ffff a5090030 0000ffff

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.817394] 3f60: 0041a160 00000000 00000000 00000000 00000000 00000000 cfac07b8 0000ffff

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.841924] 3fc0: a4fbe5f4 0000ffff 80000000 00000000 00000003 00000000 00000111 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.860715] Code: 00000008 00000000 00000000 00000000 (636f732f)

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.784687] 3ee0: 00000000 00000000 ffffffff 60ceffff ffffffff ffffffff ffffffff ffffffff

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.751981] 3e60: 00001a48 00000000 005d6548 ffff0000 005d595a ffff0000 005d6050 ffff0000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.858275] Call trace:

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.768334] 3ea0: 00000908 00000000 00000012 00000013 0000000b 00000008 00000006 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.809217] 3f40: a4fbe5d0 0000ffff 0042b600 00000000 00000000 00000000 289711f0 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.825570] 3f80: cfac0edd 0000ffff 00000000 00000000 00000000 00000000 00000000 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.850100] 3fe0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.760158] 3e80: 00000520 00000000 00000688 00000000 00000000 00000000 00000000 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.833747] 3fa0: 00000000 00000000 cfac05d0 0000ffff 0041018c 00000000 cfac05d0 0000ffff

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.686568] 3d60: 0000011a 00000000 00000111 00000000 00720000 ffff8000 60f00000 ffff8008

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.678391] 3d40: 0041a160 00000000 a4fbe5f4 0000ffff 80000000 00000000 00000015 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.670214] 3d20: 60f03e20 ffff8008 000fae7c ffff8000 00000000 00000000 00000003 00000000

Message from syslogd@ls1046ardb at Mon Feb 22 06:49:22 2021 ...
ls1046ardb kernel: [ 98.662037] 3d00: 60f03e58 ffff8008 60393dd0 ffff8008 fc000330 ffff7fff 00000001 00000000
Segmentation fault

-------------------------------------------

root@ls1046ardb:~/int_test# lsmod
Module Size Used by
dev_int_ls1046a 1772 1
root@ls1046ardb:~/int_test# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
1: 0 0 0 0 GIC 29 Edge arch_timer
2: 14683 40 37 35 GIC 30 Edge arch_timer
12: 0 0 0 0 GIC 196 Edge irq1_handler
14: 1454 0 0 0 GIC 94 Level mmc0
15: 0 0 0 0 GIC 77 Level bman-err, qman-err, fman-err
16: 0 0 0 0 GIC 76 Level fman
18: 126 0 0 0 GIC 88 Level 2180000.i2c
19: 828 0 0 0 GIC 86 Level serial
27: 0 0 0 0 GIC 135 Level eDMA
44: 1373 0 0 0 GIC 220 Level QMan portal 0
53: 0 0 0 0 GIC 221 Level BMan portal 0
IPI0: 6 13 13 13 Rescheduling interrupts
IPI1: 0 96 96 96 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 Timer broadcast interrupts
IPI4: 0 0 0 0 IRQ work interrupts
Err: 0
root@ls1046ardb:~/int_test#

 

Thank you.

Best Regards,

Gyosun.

0 Kudos
2 Replies

967 Views
yipingwang
NXP TechSupport
NXP TechSupport

How do you define the interrupt handler sio_interrupt?

Would you please provide your source code(C file, Makefile and dts file)?

I will do verification on my target board.

0 Kudos

949 Views
Gyosun
Contributor III

Hello yipingwang,

I solved the problem.

When I changed the GIC_SPI IRQ number from 164 -> 132 in the fsl-ls1046a-rdb.dts file, it worked normally.

interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;

However, I don't understand why the irq must be entered as 12 value for request_irq to work.

Thank you!

Best Regards,

Gyosun.

 

0 Kudos