Cache control

Robert Woodworth rwoodworth at
Fri Oct 17 02:57:27 EST 2008

I have a Virtex4 VF60 device with 256MB DDR2.

I have told the Linux kernel that the device has only 128MB and its  
working fine.  There is an HDL module that is populating the next 16MB  
with sensor data (0x08000000 - 0x09000000)  I mapped the area into my  
driver via `ioremap()` and also via `mmap / remap_pfn_range()`  It  
works fine.

I know that PPC cache regions work in 128MB blocks.  I assume that the  
kernel bootup is turning on cache in the first 128, because it thinks  
that its the full RAM range, and not cached in the next 128MB.

I know that if I declare the area cached, and invalidate the region  
before I read it,  the reads should be much faster than if it's not  

How can I control if the area is cached? and then invalidate it when  
new data arrives?

Is there a PPC/Linux API call to declare the region cached and  
invalidate regions before read?


More information about the Linuxppc-embedded mailing list