gemini: add 4.1 support
Signed-off-by: Roman Yeryomin <roman@advem.lv> SVN-Revision: 46353
This commit is contained in:
41
target/linux/gemini/patches-4.1/060-cache-fa.diff
Normal file
41
target/linux/gemini/patches-4.1/060-cache-fa.diff
Normal file
@@ -0,0 +1,41 @@
|
||||
--- a/arch/arm/mm/cache-fa.S
|
||||
+++ b/arch/arm/mm/cache-fa.S
|
||||
@@ -24,7 +24,8 @@
|
||||
/*
|
||||
* The size of one data cache line.
|
||||
*/
|
||||
-#define CACHE_DLINESIZE 16
|
||||
+#define CACHE_DLINESIZE 16
|
||||
+#define CACHE_DLINESHIFT 4
|
||||
|
||||
/*
|
||||
* The total size of the data cache.
|
||||
@@ -169,7 +170,17 @@ ENTRY(fa_flush_kern_dcache_area)
|
||||
* - start - virtual start address
|
||||
* - end - virtual end address
|
||||
*/
|
||||
+__flush_whole_dcache:
|
||||
+ mcr p15, 0, r0, c7, c14, 0 @ clean/invalidate D cache
|
||||
+ mov r0, #0
|
||||
+ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
|
||||
+ mov pc, lr
|
||||
+
|
||||
fa_dma_inv_range:
|
||||
+ sub r3, r1, r0 @ calculate total size
|
||||
+ cmp r3, #CACHE_DLIMIT @ total size >= limit?
|
||||
+ bhs __flush_whole_dcache @ flush whole D cache
|
||||
+
|
||||
tst r0, #CACHE_DLINESIZE - 1
|
||||
bic r0, r0, #CACHE_DLINESIZE - 1
|
||||
mcrne p15, 0, r0, c7, c14, 1 @ clean & invalidate D entry
|
||||
@@ -193,6 +204,10 @@ fa_dma_inv_range:
|
||||
* - end - virtual end address
|
||||
*/
|
||||
fa_dma_clean_range:
|
||||
+ sub r3, r1, r0 @ calculate total size
|
||||
+ cmp r3, #CACHE_DLIMIT @ total size >= limit?
|
||||
+ bhs __flush_whole_dcache @ flush whole D cache
|
||||
+
|
||||
bic r0, r0, #CACHE_DLINESIZE - 1
|
||||
1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry
|
||||
add r0, r0, #CACHE_DLINESIZE
|
||||
Reference in New Issue
Block a user