import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / mt_emi_mpu.h
1 #ifndef __MT6575_EMI_MPU__
2 #define __MT6575_EMI_MPU__
3
4 /* EMI Memory Protect Unit */
5 #define EMI_MPUA (EMI_BASE+0x0160)
6 #define EMI_MPUB (EMI_BASE+0x0168)
7 #define EMI_MPUC (EMI_BASE+0x0170)
8 #define EMI_MPUD (EMI_BASE+0x0178)
9 #define EMI_MPUE (EMI_BASE+0x0180)
10 #define EMI_MPUF (EMI_BASE+0x0188)
11 #define EMI_MPUG (EMI_BASE+0x0190)
12 #define EMI_MPUH (EMI_BASE+0x0198)
13
14 #define EMI_MPUI (EMI_BASE+0x01A0)
15 #define EMI_MPUJ (EMI_BASE+0x01A8)
16 #define EMI_MPUK (EMI_BASE+0x01B0)
17 #define EMI_MPUL (EMI_BASE+0x01B8)
18 #define EMI_MPUM (EMI_BASE+0x01C0)
19 #define EMI_MPUN (EMI_BASE+0x01C8)
20 #define EMI_MPUO (EMI_BASE+0x01D0)
21 #define EMI_MPUP (EMI_BASE+0x01D8)
22 #define EMI_MPUQ (EMI_BASE+0x01E0)
23 #define EMI_MPUR (EMI_BASE+0x01E8)
24 #define EMI_MPUS (EMI_BASE+0x01F0)
25 #define EMI_MPUT (EMI_BASE+0x01F8)
26
27 /* Define access permission */
28 #define NO_PRETECTION 0
29 #define SEC_RW 1
30 #define SEC_RW_NSEC_R 2
31 #define SEC_RW_NSEC_W 3
32 #define SEC_R_NSEC_R 4
33 #define FORBIDDEN 5
34
35 /*Domain2, Domain1, Domain0*/
36 #define SET_ACCESS_PERMISSON(d2, d1, d0) ((d2 << 6) | (d1 << 3) | (d0))
37
38 #define EN_MPU_STR "ON"
39 #define DIS_MPU_STR "OFF"
40
41 #define MD_BIN 0
42 #define AP_CCCI_MPU_REGION 1
43 #define CCCI_MPU_REGION 2
44 #define CCCI_AP_MPU_REGION 3
45 #define DSP_BIN 4
46
47 #define EMI_MPU_ALIGNMENT 0x100000
48 #define MAU_NO_M4U_ALIGNMENT 0x4
49 #define MAU_M4U_ALIGNMENT 0x1000
50
51 extern int emi_mpu_set_region_protection(unsigned int start_addr, unsigned int end_addr, int region, unsigned int access_permission);
52 extern void start_mm_mau_protect(unsigned int mau_entry_start, unsigned int mau_entry_end, unsigned int entry_id);
53
54 #endif