UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Scholar milosoftware
Scholar
2,905 Views
Registered: ‎10-26-2012

Kernel from 14.4 crash in xgpiops_irqhandler+0xb0/0x11c

Simplest way to reproduce this on a Zedboard is to map the push buttons GPIO to the gpio-keys driver, e.g. using the following fragment in the devicetree:

 

        gpio_keys {
            compatible = "gpio-keys";
            #address-cells = <1>;
            #size-cells = <0>;
            autorepeat;
            btn8 {
                label = "PB1";
                linux,code = <28>; // Enter
                gpios = <&gpio 50 0>;
            };
            btn9 {
                label = "PB2";
                linux,code = <1>; // ESC
                gpios = <&gpio 51 0>;
            };
        };

 

Pushing the button then results in a kernel crash. Just "polling" the gpio pins works fine.

 

------------[ cut here ]------------                                                                  
Kernel BUG at c01a59ec [verbose debug info unavailable]                                               
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM                                                    
Modules linked in: ipv6 snd_soc_zed_adau1761 snd_soc_adi_axi_i2s regmap_mmio snd_soc_adv7511_hdmi sndc
CPU: 0    Not tainted  (3.6.0 #1)                                                                     
PC is at xgpiops_irqhandler+0xb0/0x11c                                                                
LR is at xgpiops_irqhandler+0x9c/0x11c                                                                
pc : [<c01a59ec>]    lr : [<c01a59d8>]    psr: 60000193                                               
sp : c04b1ed0  ip : 0000000f  fp : 00000000                                                           
r10: 00000034  r9 : c035b638  r8 : dccbd7c0                                                           
r7 : 00000001  r6 : 00000008  r5 : dccbd7f6  r4 : c04b3bc0                                            
r3 : 00000000  r2 : 0000028c  r1 : 00000101  r0 : 00000000                                            
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel                                  
Control: 18c5387d  Table: 1c51004a  DAC: 00000015                                                     
Process swapper/0 (pid: 0, stack limit = 0xc04b02f0)                                                  
Stack: (0xc04b1ed0 to 0xc04b2000)                                                                     
1ec0:                                     00000034 00000000 c04c8474 c04b1f4c                         
1ee0: c04ccbc8 413fc090 00000000 c00618c0 00000034 c000e41c 00000034 c04b1f18                         
1f00: f8f00100 c0008404 c001b5f0 20000013 ffffffff c000d780 000c45f9 000003e8                         
1f20: 00000385 2ff1578e c090a358 00000000 c090a358 00000000 c04ccbc8 413fc090                         
1f40: 00000000 00000000 2ff15466 c04b1f60 c004b4e4 c001b5f0 20000013 ffffffff                         
1f60: 77359400 c090a358 00000385 000c0c84 00000385 000c45f9 c090a358 00000000                         
1f80: c090a358 c026ae98 c026ae84 c026b28c c090a358 00000000 c04feac4 c026b384                         
1fa0: c04b0000 c0346ca0 c04e9588 c0907000 0000406a c000e880 c04c8ac0 c04b0000                         
1fc0: c04a7b00 c048d718 ffffffff ffffffff c048d284 00000000 00000000 c04a7b00                         
1fe0: 00000000 18c5387d c04c844c c04a7af8 c04cbc8c 0000803c 00000000 00000000                         
[<c01a59ec>] (xgpiops_irqhandler+0xb0/0x11c) from [<c00618c0>] (generic_handle_irq+0x20/0x30)         
[<c00618c0>] (generic_handle_irq+0x20/0x30) from [<c000e41c>] (handle_IRQ+0x78/0xb8)                  
[<c000e41c>] (handle_IRQ+0x78/0xb8) from [<c0008404>] (gic_handle_irq+0x3c/0x60)                      
[<c0008404>] (gic_handle_irq+0x3c/0x60) from [<c000d780>] (__irq_svc+0x40/0x70)                       
Exception stack(0xc04b1f18 to 0xc04b1f60)                                                             
1f00:                                                       000c45f9 000003e8                         
1f20: 00000385 2ff1578e c090a358 00000000 c090a358 00000000 c04ccbc8 413fc090                         
1f40: 00000000 00000000 2ff15466 c04b1f60 c004b4e4 c001b5f0 20000013 ffffffff                         
[<c000d780>] (__irq_svc+0x40/0x70) from [<c001b5f0>] (xilinx_enter_idle+0x7c/0xb0)                    
[<c001b5f0>] (xilinx_enter_idle+0x7c/0xb0) from [<c026ae98>] (cpuidle_enter+0x14/0x18)                
[<c026ae98>] (cpuidle_enter+0x14/0x18) from [<c026b28c>] (cpuidle_enter_state+0x14/0x68)              
[<c026b28c>] (cpuidle_enter_state+0x14/0x68) from [<c026b384>] (cpuidle_idle_call+0xa4/0xf0)          
[<c026b384>] (cpuidle_idle_call+0xa4/0xf0) from [<c000e880>] (cpu_idle+0x80/0xe0)                     
[<c000e880>] (cpu_idle+0x80/0xe0) from [<c048d718>] (start_kernel+0x268/0x2a8)                        
Code: 0a000002 e5933010 e3530000 1a000000 (e7f001f2)                                                  

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
2,896 Views
Registered: ‎03-13-2012

Re: Kernel from 14.4 crash in xgpiops_irqhandler+0xb0/0x11c

Looks like it might be a duplicate of this issue https://github.com/Xilinx/linux-xlnx/issues/3 , which has been fixed with this commit https://github.com/Xilinx/linux-xlnx/commit/ca2d4f14bf5e5943cd09776cee4a7e1a4d57f400 .

Please try if this fixes your problem.

0 Kudos
Scholar milosoftware
Scholar
2,888 Views
Registered: ‎10-26-2012

Re: Kernel from 14.4 crash in xgpiops_irqhandler+0xb0/0x11c

Cherry-picked that commit and rebuilt, indeed fixes the crash. Thanx!

0 Kudos