284 | | The '''MMU_MODE''' register has four bits and these 16 values are described as below : |
285 | | |
286 | | || MODE3 || MODE2 || MODE1 || MODE0 || description || |
287 | | || (INS TLB) || (DATA TLB) || (INS CACHE) || (DATA CACHE) || || |
288 | | || || || || || || |
289 | | || 0 || 0 || 0 || 0 || TLBs and caches deactivated || |
290 | | || 0 || 0 || 0 || 1 || TLBs and instruction cache deactivated, data cache actived || |
291 | | || 0 || 0 || 1 || 0 || TLBs and data cache deactivated, instruction cache actived || |
292 | | || 0 || 0 || 1 || 1 || TLBs deactivated, caches actived || |
293 | | || 0 || 1 || 0 || 0 || Instruction TLB and caches deactivated, data TLB actived || |
294 | | || 0 || 1 || 0 || 1 || Instruction TLB and instruction cache deactivated, data TLB and data cache actived || |
295 | | || 0 || 1 || 1 || 0 || Instruction TLB and data cache deactivated, data TLB and instruction cache actived || |
296 | | || 0 || 1 || 1 || 1 || Instruction TLB deactivated, data TLB and caches actived || |
297 | | || 1 || 0 || 0 || 0 || Data TLB and caches deactivated, instruction TLB actived || |
298 | | || 1 || 0 || 0 || 1 || Data TLB and instruction cache deactivated, instruction TLB and data cache actived || |
299 | | || 1 || 0 || 1 || 0 || Data TLB and data cache deactivated, instruction TLB and instruction cache actived || |
300 | | || 1 || 0 || 1 || 1 || Data TLB deactivated, instruction TLB and caches actived || |
301 | | || 1 || 1 || 0 || 0 || Caches deactivated, TLBs actived || |
302 | | || 1 || 1 || 0 || 1 || Instruction cache deactivated, TLBs and data cache actived || |
303 | | || 1 || 1 || 1 || 0 || Data cache deactivated, TLBs and instruction cache actived || |
304 | | || 1 || 1 || 1 || 1 || TLBs and caches actived || |
| 287 | === 3.3.2 MMU_MODE === |
| 288 | |
| 289 | The '''MMU_MODE''' register has four bits and these 16 values are described as below. |
| 290 | A device is activated when the corresponding bit is set to 1. |
| 291 | || MODE3 || MODE2 || MODE1 || MODE0 || |
| 292 | || (INS TLB) || (DATA TLB) || (INS CACHE) || (DATA CACHE) || |
| 293 | |
| 294 | === 3.3.3 MMU_ICACHE_FLUSH & MMU_DCACHE_FLUSH === |
| 295 | |
| 296 | Writing any value in the '''MMU_ICACHE_FLUSH''' register (resp. '''MMU_DCACHE_FLUSH''' register) invalidates all cache lines stored in the instruction cache (resp. data cache). |
| 297 | |
| 298 | === 3.3.4 MMU_ITLB_INVAL & MMU_DTLB_INVAL === |
| 299 | |
| 300 | The value written in the 32 bits '''MMU_ITLB_INVAL''' register (resp. '''MMU_DTLB_INVAL''' register) is interpreted as a virtual address. If the instruction TLB (resp. the data TLB) contains an entry corresponding to this address, this entry is invalidated. |
| 301 | |
| 302 | === 3.3.5 MMU_ICACHE_INVAL & MMU_DCACHE_INVAL === |
| 303 | |
| 304 | The value written in the 32 bits '''MMU_ICACHE_INVAL''' register (resp. '''MMU_DCACHE_INVAL''' register) is interpreted as a virtual address. This address is translated to a physical address. If the instruction cache (resp. the data cache) contains an entry corresponding to this address, this entry is invalidated. |
| 305 | |
| 306 | === 3.3.6 MMU_ICACHE_PREFETCH & MMU_DCACHE_PREFETCH === |
| 307 | |
| 308 | The value written in the 32 bits '''MMU_ICACHE_PREFETCH''' register (resp. '''MMU_DCACHE_PREFETCH''' register) is interpreted as a virtual address. This address is translated to a physical address. If the instruction cache (resp. the data cache) does not contain the corresponding cache line, this cache line is fetched from memory. |
| 309 | |
| 310 | === 3.3.x MMU_PARAMS === |