I am experiencing some bizarre problem when I try to do PIO (memory writes) to MMIO space for a 64-bits addressing capable PCI NIC on a Lion platform (The one I have is a 2 processors, 733 MHz Itanium, 1GB RAM). This problem is on HP-UX and not I haven't tried on Linux (for which I need to port my driver). Problem ----- When multiple PIO writes are in flight, there is something that is happening that caused the values to get interchanged. Something like this below. Notations ------ Ri = Register i Vi = Value i intended to be written on Register Ri. If the PIO writes are R1 ------- V1 R2 --------V2 R3 --------V3 The traces on the PCI analyzer shows something like this R1 --------V2 R2--------V1 R3--------V3 The problem is seen very arbitrary and can be easily reproduced. Has anyone observed this type of problem or have any clue why this might be happening. I somewhere bumped into memory fence and sync instruction. Do they help me in any way?. Thanks for your help GuruReceived on Wed Oct 17 12:07:53 2001
This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:05 EST