OPB IPIF: write to DIER causing bus timeout

I'm talking to an IPIF device on the OPB bus from a linux driver. My problem is that when I try to write to the DIER register to enable device interrupts, linux gives me a bus error. (Enabling, receiving, and processing user logic interrupts through the driver is working with no problems.)

I hooked up chipscope, and I see that it takes 15 bus cycles before the DIER write is acknowledged by the IPIF device, and because OPB_toutSup isn't being asserted, I think the transaction is timing out.

Since the DIER belongs to the IPIF device, shouldn't the device be responsible for asserting OPB_toutSup if necessary? But if this transaction really did require 15 bus cycles to do its thing, surely the IPIF architects would have been aware of it. So I assume that I'm doing something wrong or just missing something here. The device isn't waiting for something from my user logic, is it?

Reply to
Neil Steiner
Loading thread data ...

If anybody cares to know what caused this, I chose not to include the device ISC (interrupt service controller) in my IPIF, so there was simply no circuitry there to handle or acknowledge the DIER write.

Didn't put two and two together though until I noticed the tell-tale "constant USER_INCLUDE_DEV_ISC : boolean := false;". Funny how that works. ;)

Reply to
Neil Steiner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.