|
|
EPICS on Google+
Experimental Physics and
| ||||||||||||||||
|
|
Eric Bjorklund wrote: > . > > In my experience I have usually been able to always get non-DMA drivers to work by always declaring the register pointer as "volatile" (which is more to defeat compiler optimization and not really a caching issue) and following the last write with a dummy read to the same register (to flush the pipeline). Do you mean the dummy read following the last write is needed for only vxWorks-mvme5500 ? Or is it needed for almost all the powrPC boards using VxWorks ? Does it apply to all the VME boards ? Is this implemented in other vxWorks-PPC site such as APS or any other facility ? I did'nt notice this in synApp which was written by APS, but I am off-site now that I can'nt verify the code. > > > DMA devices are another story. For these it would be nice to have devLib routines to do cache invalidation and flushing. Byte order is another issue. For non-DMA devices, however, I don't think caching is a problem. At NSLS, we use RTEMS-MVME5500 BSP that I developed, which enables the hardware cache snoop on CPU local memory for all the DMA applications so that the sofware caching is not needed yet. However, the VME space is marked as Non-Cacheable and Guarded in the BSP. Regards, Kate
| ||||||||||||||||
| ANJ, 02 Sep 2010 |
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |