diff options
Diffstat (limited to 'arch/arm/include/asm/system.h')
| -rw-r--r-- | arch/arm/include/asm/system.h | 31 | 
1 files changed, 31 insertions, 0 deletions
| diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 2b28a261b..78ca8e0a6 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h @@ -75,6 +75,37 @@ static inline void set_cr(unsigned int val)  	isb();  } +/* options available for data cache on each page */ +enum dcache_option { +	DCACHE_OFF = 0x12, +	DCACHE_WRITETHROUGH = 0x1a, +	DCACHE_WRITEBACK = 0x1e, +}; + +/* Size of an MMU section */ +enum { +	MMU_SECTION_SHIFT	= 20, +	MMU_SECTION_SIZE	= 1 << MMU_SECTION_SHIFT, +}; + +/** + * Change the cache settings for a region. + * + * \param start		start address of memory region to change + * \param size		size of memory region to change + * \param option	dcache option to select + */ +void mmu_set_region_dcache_behaviour(u32 start, int size, +				     enum dcache_option option); + +/** + * Register an update to the page tables, and flush the TLB + * + * \param start		start address of update in page table + * \param stop		stop address of update in page table + */ +void mmu_page_table_flush(unsigned long start, unsigned long stop); +  #endif /* __ASSEMBLY__ */  #define arch_align_stack(x) (x) |