Au1550 - Problem access Shared memory from PCI card

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All !

Could anybody help me with the following problem:

I have AMD Au1550 MIPS board, running MontaVista Linux 2.4.20-mvl31.1550.
I have also a PCI card , Linux driver for the card and some user-level application.
All work fine on x86 platform.


After I recompiled the driver and the application for MIPS platform I got the following:
1. The driver on the MIPS board (host) finds the PCI card (target)
2. I download an executable code into target and start target application (application starts, debug info is written to target memory).
3. Target starts to communicate with host using shared memory,allocated on host, (target accesses the memory through PCI).


After that I get the following problem:

4. Target writes some values into Host's shared memory and generates interrupt on Host.
5. Host catches the interrupt and in interrupt handler reads the values, written by target.
6. Host writes some replay to the shared memory, generates PCI interrupt on Target.
7. Target gets interrupt but can not see the latest values, written by Host. Reading the shared memory several times doesn' t help.


Looks like target reads values that are cached somewhere . I tried to insert au_sync(), au_sync_delay(), flush_cache_all() on Host side after writting values - nothing helps.

On x86 this approach works fine.

What could be the reason? Could this be hardware problem or can be fixed by fine-tuning of caching parameters or PCI controller ?

Thank you in advance!

_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux