| 129 | The hardware MMU can signal exceptions by rising the general instruction_bus_error and data_bus_error signals (for an instruction or data accesss respectively). |
| 130 | The error type is written in the INS_ERROR_TYPE & DATA_ERROR_TYPE registers, as described below: |
| 131 | |
| 132 | || Exeption type || code || cause || severity || |
| 133 | || || || || || |
| 134 | ||MMU_PT1_UNMAPPED || || Page fault on Table1 (invalid PTE) || non fatal error || |
| 135 | ||MMU_PT2_UNMAPPED || || Page fault on Table 2 (invalid PTE) || non fatal error || |
| 136 | ||MMU_PRIVILEGE_VIOLATION || ||Protected access in user mode || user error || |
| 137 | ||MMU_WRITE_VIOLATION || || Write access to a non write page || user error || |
| 138 | ||MMU_EXEC_VIOLATION || || Exec access to a non exec page || user error || |
| 139 | ||MMU_UNDEFINED_XTN || || Undefined external access address || user error || |
| 140 | ||MMU_PT1_ILLEGAL_ACCESS || || Bus Error accès Table1 || kernel error || |
| 141 | ||MMU_PT2_ILLEGAL_ACCESS || || Bus Error accès Table2 || kernel error || |
| 142 | ||MMU_CACHE_ILLEGAL_ACCESS || || Bus Error during the cache access ||kernel error || |
| 143 | |
| 144 | |
131 | | The software controlled following registers are the by appending |
| 147 | The generic MMU contains a set of registers (or pseudo-registers) that can be accessed by operating system, |
| 148 | through a dedicated MMU driver. |
| 149 | In the case of the MIPS processor, these registers are implemented in coprocessor 2, and are accessed |
| 150 | using the ''mtc2'' (write) and ''mfc2'' (read) instructions. |
| 151 | |
| 152 | These registers are described below : |
| 153 | |
| 154 | || register name || index || description || mode || |
| 155 | || || || || || |
| 156 | || MMU_PTPR || || Page Table Pointer Register || R/W || |
| 157 | || MMU_TLB_EN || || Data & Inst TLBs Mode Register || R/W || |
| 158 | || MMU_ICACHE_FLUSH || || Instruction Cache flush || W || |
| 159 | || MMU_DCACHE_FLUSH || || Data Cache flush || W || |
| 160 | || MMU_ITLB_INVAL || || Instruction TLB line invalidation || W || |
| 161 | || MMU_DTLB_INVAL || || Data TLB line Invalidation || W || |
| 162 | || MMU_ICACHE_INVAL || || Instruction Cache line invalidation || W || |
| 163 | || MMU_DCACHE_INVAL || || Data Cache line invalidation || W || |
| 164 | || MMU_IETR || || Instruction Exception Type Register || R/W || |
| 165 | || MMU_IBVAR || || Instruction Bad Virtual Address Register || R/W || |
| 166 | || MMU_DETR || || Data Exception Type Register || R/W || |
| 167 | || MMU_DBVAR || || Data Bad Virtual Address Register || R/W || |
| 168 | |