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?