armv7: add function for dcache_clean_by_mva()
This adds a function for using the DCCMVAC instruction (dcache clean by MVA at point of coherency (main memory)). We already have the inline defined, it's just not used by anything. Change-Id: Ia0641566a8881335bed8da2963e1db8321d74267 Signed-off-by: David Hendricks <dhendrix@chromium.org> Reviewed-on: http://review.coreboot.org/2871 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
This commit is contained in:
		@@ -215,6 +215,9 @@ static inline void write_sctlr(unsigned int val)
 | 
				
			|||||||
/* dcache clean and invalidate all (on current level given by CCSELR) */
 | 
					/* dcache clean and invalidate all (on current level given by CCSELR) */
 | 
				
			||||||
void dcache_clean_invalidate_all(void);
 | 
					void dcache_clean_invalidate_all(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* dcache clean by modified virtual address to PoC */
 | 
				
			||||||
 | 
					void dcache_clean_by_mva(unsigned long addr, unsigned long len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* dcache clean and invalidate by modified virtual address to PoC */
 | 
					/* dcache clean and invalidate by modified virtual address to PoC */
 | 
				
			||||||
void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len);
 | 
					void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,6 +79,7 @@ enum dcache_op {
 | 
				
			|||||||
	OP_DCCISW,
 | 
						OP_DCCISW,
 | 
				
			||||||
	OP_DCISW,
 | 
						OP_DCISW,
 | 
				
			||||||
	OP_DCCIMVAC,
 | 
						OP_DCCIMVAC,
 | 
				
			||||||
 | 
						OP_DCCMVAC,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
@@ -193,6 +194,11 @@ static void dcache_op_mva(unsigned long addr,
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void dcache_clean_by_mva(unsigned long addr, unsigned long len)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						dcache_op_mva(addr, len, OP_DCCMVAC);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len)
 | 
					void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	dcache_op_mva(addr, len, OP_DCCIMVAC);
 | 
						dcache_op_mva(addr, len, OP_DCCIMVAC);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user