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: 
Visitor grenoble2007
Visitor
3,671 Views
Registered: ‎02-04-2009

Linux and IRQ management

Hi,

I've just managed to install an interrupt service routine (ISR) in a custom driver for Linux

running on a V4FX Xilinx platform.

but it seems that the ISR is called twice when an interrupt appears.

Indeed, the first thing the ISR does is to completely disable interrupts .

But the ISR is called twice:

. I do a printk that prints twice

. the /proc/interrupts counts 2 interrupts  for my device

 

I tried to stop interrupts by writing zeroes to the IER and GIER registers in the IPIF interface.

 

I'm also facing strange behaviors with my device has it seems that some reads or writes are

not performed when I expect them.

 

The device is remaped with the standard ioremap function call.

Are there problems due to cache ?

Is it possible that the PPC cache flushes to my device ???

 

 I would very appreciate any help !

Stéphane

 

 

0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
3,662 Views
Registered: ‎09-10-2008

Re: Linux and IRQ management

You may be seeing a bug in the Xilinx interrupt controller code that we have a patch for going into the mainline.  It's in progress being integrated thru the system, but I'm not sure exactly what release it will be in.

 

[PATCH] Powerpc: Xilinx: Intc: Fix level irqs which have duplicates

 

The current code is not handling edge vs level interrupts correctly and  that's why the isr's get called twice.

 

It's pretty benign is the reason it's gone this long without notice (til a few months ago).

 

Thanks,

John

0 Kudos