[Linux-ia64] Weird PIO behavior.

From: Gururaj Ananthateerta <gururaj_at_cup.hp.com>
Date: 2001-10-18 05:03:14
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
Guru
Received on Wed Oct 17 12:07:53 2001

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:05 EST