|
82 | 82 | (((base & MPU_RBAR_BASE_Msk) + size - 1) & MPU_RLAR_LIMIT_Msk)
|
83 | 83 |
|
84 | 84 | /* Attribute flags for cache-ability */
|
85 |
| -#if defined(CONFIG_AARCH32_ARMV8_R) |
| 85 | + |
86 | 86 | /* Memory Attributes for Device Memory
|
87 | 87 | * 1.Gathering (G/nG)
|
88 | 88 | * Determines whether multiple accesses can be merged into a single
|
|
105 | 105 | #define DEVICE_nGnRE 0x4U
|
106 | 106 | #define DEVICE_nGRE 0x8U
|
107 | 107 | #define DEVICE_GRE 0xCU
|
108 |
| -#endif |
109 | 108 |
|
110 | 109 | /* Read/Write Allocation Configurations for Cacheable Memory */
|
111 | 110 | #define R_NON_W_NON 0x0 /* Do not allocate Read/Write */
|
|
152 | 151 | #define MPU_MAIR_INDEX_SRAM 1
|
153 | 152 | #define MPU_MAIR_ATTR_SRAM_NOCACHE MPU_CACHE_ATTRIBUTES_SRAM_NOCACHE
|
154 | 153 | #define MPU_MAIR_INDEX_SRAM_NOCACHE 2
|
155 |
| - |
156 |
| -#if defined(CONFIG_AARCH32_ARMV8_R) |
157 | 154 | #define MPU_MAIR_ATTR_DEVICE DEVICE_nGnRnE
|
158 | 155 | #define MPU_MAIR_INDEX_DEVICE 3
|
159 | 156 | /* Flash region(s): Attribute-0
|
|
166 | 163 | (MPU_MAIR_ATTR_SRAM << (MPU_MAIR_INDEX_SRAM * 8)) | \
|
167 | 164 | (MPU_MAIR_ATTR_SRAM_NOCACHE << (MPU_MAIR_INDEX_SRAM_NOCACHE * 8)) | \
|
168 | 165 | (MPU_MAIR_ATTR_DEVICE << (MPU_MAIR_INDEX_DEVICE * 8)))
|
169 |
| -#else |
170 |
| -/* Flash region(s): Attribute-0 |
171 |
| - * SRAM region(s): Attribute-1 |
172 |
| - * SRAM no cache-able regions(s): Attribute-2 |
173 |
| - */ |
174 |
| -#define MPU_MAIR_ATTRS \ |
175 |
| - (((MPU_MAIR_ATTR_FLASH << MPU_MAIR0_Attr0_Pos) & MPU_MAIR0_Attr0_Msk) | \ |
176 |
| - ((MPU_MAIR_ATTR_SRAM << MPU_MAIR0_Attr1_Pos) & MPU_MAIR0_Attr1_Msk) | \ |
177 |
| - ((MPU_MAIR_ATTR_SRAM_NOCACHE << MPU_MAIR0_Attr2_Pos) & \ |
178 |
| - MPU_MAIR0_Attr2_Msk)) |
179 |
| -#endif |
180 | 166 |
|
181 | 167 | /* Some helper defines for common regions.
|
182 | 168 | *
|
|
309 | 295 | }
|
310 | 296 | #endif /* CONFIG_MPU_ALLOW_FLASH_WRITE */
|
311 | 297 |
|
| 298 | +#define REGION_DEVICE_ATTR(base, size) \ |
| 299 | + { \ |
| 300 | + /* AP, XN, SH */ \ |
| 301 | + .rbar = NOT_EXEC | P_RW_U_NA_Msk | NON_SHAREABLE_Msk, /* Cache-ability */ \ |
| 302 | + .mair_idx = MPU_MAIR_INDEX_DEVICE, \ |
| 303 | + .r_limit = REGION_LIMIT_ADDR(base, size), /* Region Limit */ \ |
| 304 | + } |
312 | 305 | #endif
|
313 | 306 |
|
314 | 307 | struct arm_mpu_region_attr {
|
|
0 commit comments