imx_rngc Can't get interrupt working error

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

imx_rngc Can't get interrupt working error

Jump to solution
2,415 Views
JohnKlug
Senior Contributor I

I am working on a new i.MX6ULL project, and noticed this in the boot of the device:

[ 3.880499] genirq: Flags mismatch irq 59. 00000004 (2284000.rng) vs. 00000004 (2284000.rng)
[ 3.908114] imx_rngc 2284000.rng: Can't get interrupt working.
[ 3.914004] imx_rngc: probe of 2284000.rng failed with error -16

I did not change the imx_rngc from this file:

https://github.com/Freescale/linux-fslc/blob/5.10.x%2Bfslc/arch/arm/boot/dts/imx6ull.dtsi#L71

To me, -16 implies some other driver already had interrupt 6?

rngb: rng@2284000 {
compatible = "fsl,imx6ull-rngb", "fsl,imx25-rngb";
reg = <0x02284000 0x4000>;
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6UL_CLK_DUMMY>;
};

./soc/bus@2200000/rng@2284000/interrupts: 00000000: 00000000 00000006 00000004


I have dumped every "interrupts" property in device tree and cannot find another 00000006 value. So why is this happening?

0 Kudos
Reply
1 Solution
2,122 Views
JohnKlug
Senior Contributor I

I looked at this repository:
imx-rng from kernel.org 

By using the imx-rng driver from kernel.org from commit 70564215ad927588dbea30472624cfd9e79d7c36 the issue went away, and the interrupt is properly allocated.

View solution in original post

0 Kudos
Reply
4 Replies
2,352 Views
JohnKlug
Senior Contributor I

This is /proc/interrupts:

bash# cat /proc/interrupts                                                                                                                      
           CPU0                                                                                                                                 
 17:       2443       GPC  55 Level     i.MX Timer Tick                                                                                         
 18:          0       GPC  94 Level     arm-pmu                                                                                                 
 19:         17       GPC  13 Level                                                                                                             
 20:          5       GPC  15 Level     bch                                                                                                     
 21:          0       GPC  32 Level     200c000.spi                                                                                             
 22:         53       GPC  26 Level     2020000.serial                                                                                          
 33:          0       GPC 120 Level     20b4000.ethernet                                                                                        
 34:          0       GPC 121 Level     20b4000.ethernet                                                                                        
 35:          0       GPC  80 Level     20bc000.watchdog                                                                                        
 41:          0       GPC  20 Level     caam-snvs                                                                                               
 42:          0       GPC  19 Level     rtc alarm                                                                                               
 47:          0       GPC   2 Level     sdma                                                                                                    
 48:        450       GPC  43 Level     2184000.usb                                                                                             
 49:          0       GPC  42 Level     2184200.usb                                                                                             
 50:          0       GPC 118 Level     2188000.ethernet                                                                                        
 51:          0       GPC 119 Level     2188000.ethernet                                                                                        
 52:        173       GPC  22 Level     mmc0                                                                                                    
 53:        334       GPC  23 Level     mmc1                                                                                                    
 54:         81       GPC  38 Level     21a8000.i2c                                                                                             
 57:          0       GPC  27 Level     21e8000.serial                                                                                          
 58:          0       GPC  28 Level     21ec000.serial                                                                                          
 59:          0       GPC  29 Level     21f0000.serial
 60:          0       GPC  46 Level     dcp-vmi-irq                                                                                             
 61:          0       GPC  47 Level     dcp-irq
 63:          1       GPC   6 Level   
 83:          0  gpio-mxc  19 Edge      21e8000.serial

 

 

GPC 6 appears to have no driver, but the CPU appears to be interrupted one time?  What driver code change are you referring?  Your link points to the source base, not a particular change.

bash# pwd
/proc/device-tree/soc/bus@2200000/rng@2284000
bash# xxd -g4 interrupts
00000000: 00000000 00000006 00000004           ............

 

0 Kudos
Reply
2,316 Views
Harvey021
NXP TechSupport
NXP TechSupport

This irq should have been registered, refer to this as attached. Check the code again and add printing in __setup_irq

 

Regards

Harvey

0 Kudos
Reply
2,385 Views
Harvey021
NXP TechSupport
NXP TechSupport

From the err log, it seems like the issue with the driver code change, or you can have a check the /proc/interrupts, and refer to GitHub - nxp-imx/linux-imx at lf-5.10.y

 

Regards

Harvey

0 Kudos
Reply
2,123 Views
JohnKlug
Senior Contributor I

I looked at this repository:
imx-rng from kernel.org 

By using the imx-rng driver from kernel.org from commit 70564215ad927588dbea30472624cfd9e79d7c36 the issue went away, and the interrupt is properly allocated.

0 Kudos
Reply