1 #ifndef __MACH_OMAP2_MMU_H
2 #define __MACH_OMAP2_MMU_H
5 #include <asm/arch/mmu.h>
8 #define MMU_LOCK_BASE_MASK (0x1f << 10)
9 #define MMU_LOCK_VICTIM_MASK (0x1f << 4)
11 #define OMAP_MMU_IRQ_MULTIHITFAULT 0x00000010
12 #define OMAP_MMU_IRQ_TABLEWALKFAULT 0x00000008
13 #define OMAP_MMU_IRQ_EMUMISS 0x00000004
14 #define OMAP_MMU_IRQ_TRANSLATIONFAULT 0x00000002
15 #define OMAP_MMU_IRQ_TLBMISS 0x00000001
17 #define OMAP_MMU_CAM_VATAG_MASK 0xfffff000
18 #define OMAP_MMU_CAM_P 0x00000008
19 #define OMAP_MMU_CAM_V 0x00000004
20 #define OMAP_MMU_CAM_PAGESIZE_MASK 0x00000003
21 #define OMAP_MMU_CAM_PAGESIZE_1MB 0x00000000
22 #define OMAP_MMU_CAM_PAGESIZE_64KB 0x00000001
23 #define OMAP_MMU_CAM_PAGESIZE_4KB 0x00000002
24 #define OMAP_MMU_CAM_PAGESIZE_16MB 0x00000003
26 #define OMAP_MMU_RAM_PADDR_MASK 0xfffff000
27 #define OMAP_MMU_RAM_ENDIANNESS 0x00000200
28 #define OMAP_MMU_RAM_ENDIANNESS_BIG 0x00000200
29 #define OMAP_MMU_RAM_ENDIANNESS_LITTLE 0x00000000
30 #define OMAP_MMU_RAM_ELEMENTSIZE_MASK 0x00000180
31 #define OMAP_MMU_RAM_ELEMENTSIZE_8 0x00000000
32 #define OMAP_MMU_RAM_ELEMENTSIZE_16 0x00000080
33 #define OMAP_MMU_RAM_ELEMENTSIZE_32 0x00000100
34 #define OMAP_MMU_RAM_ELEMENTSIZE_NONE 0x00000180
35 #define OMAP_MMU_RAM_MIXED 0x00000040
37 #define IOMAP_VAL 0x3f
39 #define omap_dsp_request_mem() do { } while (0)
40 #define omap_dsp_release_mem() do { } while (0)
42 #define INIT_TLB_ENTRY(ent,v,p,ps) \
48 (ent)->endian = OMAP_MMU_RAM_ENDIANNESS_LITTLE; \
49 (ent)->elsz = OMAP_MMU_RAM_ELEMENTSIZE_16; \
53 #define INIT_TLB_ENTRY_4KB_PRESERVED(ent,v,p) \
57 (ent)->pgsz = OMAP_MMU_CAM_PAGESIZE_4KB; \
58 (ent)->prsvd = OMAP_MMU_CAM_P; \
59 (ent)->endian = OMAP_MMU_RAM_ENDIANNESS_LITTLE; \
60 (ent)->elsz = OMAP_MMU_RAM_ELEMENTSIZE_16; \
64 #define INIT_TLB_ENTRY_4KB_ES32_PRESERVED(ent,v,p) \
68 (ent)->pgsz = OMAP_MMU_CAM_PAGESIZE_4KB; \
69 (ent)->prsvd = OMAP_MMU_CAM_P; \
70 (ent)->endian = OMAP_MMU_RAM_ENDIANNESS_LITTLE; \
71 (ent)->elsz = OMAP_MMU_RAM_ELEMENTSIZE_32; \
75 extern struct omap_mmu_ops omap2_mmu_ops;
77 struct omap_mmu_tlb_entry {
80 unsigned int pgsz, prsvd, valid;
82 u32 endian, elsz, mixed;
85 static inline unsigned long
86 omap_mmu_read_reg(struct omap_mmu *mmu, unsigned long reg)
88 return __raw_readl(mmu->base + reg);
91 static void omap_mmu_write_reg(struct omap_mmu *mmu,
92 unsigned long val, unsigned long reg)
94 __raw_writel(val, mmu->base + reg);
97 #endif /* __MACH_OMAP2_MMU_H */