summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/mmu-arm.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/mmu-arm.h')
-rw-r--r--firmware/target/arm/mmu-arm.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/firmware/target/arm/mmu-arm.h b/firmware/target/arm/mmu-arm.h
index b6b23e6185..7058fffddc 100644
--- a/firmware/target/arm/mmu-arm.h
+++ b/firmware/target/arm/mmu-arm.h
@@ -18,11 +18,14 @@
* KIND, either express or implied.
*
****************************************************************************/
+#ifndef MMU_ARM_H
+#define MMY_ARM_H
#define CACHE_ALL 0x0C
#define CACHE_NONE 0
#define BUFFERED 0x04
+void memory_init(void);
void ttb_init(void);
void enable_mmu(void);
void map_section(unsigned int pa, unsigned int va, int mb, int flags);
@@ -30,8 +33,12 @@ void map_section(unsigned int pa, unsigned int va, int mb, int flags);
/* Cleans entire DCache */
void clean_dcache(void);
+/* Invalidate entire DCache */
+/* will do writeback */
+void invalidate_dcache(void);
+
/* Invalidate DCache for this range */
-/* Will do write back */
+/* will do writeback */
void invalidate_dcache_range(const void *base, unsigned int size);
/* clean DCache for this range */
@@ -39,7 +46,14 @@ void invalidate_dcache_range(const void *base, unsigned int size);
void clean_dcache_range(const void *base, unsigned int size);
/* Dump DCache for this range */
-/* Will *NOT* do write back */
+/* Will *NOT* do write back except for buffer ends not on a line boundary */
void dump_dcache_range(const void *base, unsigned int size);
-void memory_init(void);
+/* Invalidate entire ICache and DCache */
+/* will do writeback */
+void invalidate_idcache(void);
+
+#define HAVE_CPUCACHE_INVALIDATE
+#define HAVE_CPUCACHE_FLUSH
+
+#endif /* MMU_ARM_H */