
On Wed, Dec 22, 2010 at 3:54 AM, Aneesh V aneesh@ti.com wrote:
With D-cache and MMU enabled for ARM in u-boot it becomes imperative to support a minimal set of cache maintenance operations and necessary initializations before enabling MMU.
This series of patches attempt to do the following for armv7:
- Necessary initialization sequence before enabling MMU that includes
invalidation of TLB, data caches, branch predictor array etc.
- Framework for supporting SOC specific outer caches in a generic manner
(using a structure of function pointers - inspired by the Linux implementation)
- Generic armv7 cache maintenance operations for caches known to the CPU
- Support for ARM PL310 L2 cache controller used in OMAP4
- Cleanup of the cleanup_before_linux() function
- Adapting all armv7 SOCs to use the new framework and removing
duplicated code
Testing:
- Extensive testing on OMAP4430SDP and OMAP3430SDP by creating coherency
issues and solving them using the maintenance routines - Eg: memfill a region of memory with a known pattern - Invalidate the region - Read back and compare the region with the original pattern - If match fails it means that invalidate is successful - Now add a flush call just before the invalidate - If match succeeds it means that flush was successful - Outer caches were tested with experiments involving making the function pointers NULL
- Kernel booting on OMAP4430SDP and OMAP3430SDP
I build tested for Beagle, Overo, Panda, and OMAP4430SDP - no issues.
I run tested on Overo and Panda to evaluate the changes on both OMAP3 and OMAP4 - no issues.
Tested-by: Steve Sakoman steve.sakoman@linaro.org
Steve