SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Application | Debug | ||
---|---|---|---|
Table-Walker Enabled | Table-Walker Disabled | Table-Walker Enabled | Table-Walker Disabled |
Use Table-Walker to find translation. Update TLB cache if successful, set TRANSLATIONFAULT bit and interrupt if not. The following bits are used for the purpose: MMU_IRQENABLE[1] TRANSLATIONFAULT and MMU_IRQSTATUS[1] TRANSLATIONFAULT. | Set TLBMISS bit and interrupt and stall. The following registers are used for the purpose: MMU_IRQENABLE[0] TLBMISS and MMU_IRQSTATUS[0] TLBMISS. | Use Table-Walker to find translation. Update TLB cache if successful (only if the MMU_CNTL[3] EMUTLBUPDATE bit is set), generate in-band bus error if not. | Set EMUMISS bit and interrupt and stall. The following bits are used for the purpose: MMU_IRQENABLE[2] EMUMISS and MMU_IRQSTATUS[2] EMUMISS. |
The MMU fault interrupt line is connected to both Cortex-M4 cores (at IPUx_IRQ_16 interrupt line) and is also propagated outside of the IPUx subsystem and connected to an IRQ_CROSSBAR input (IRQ_CROSSBAR_395 for the IPU1 MMU interrupt, IRQ_CROSSBAR_396 for the IPU2 MMU interrupt). The user can route this interrupt to any device host processor by programming properly the corresponding Control Module registers. The host processor (typically, a Cortex-A15) receives the MMU fault and must clean up the fault to resume the execution of the code (or reset IPUx subsystem). It is not possible for one of the Cortex-M4 CPUs to clean up the fault caused by the other Cortex-M4 CPU. This is because both the slave port of the IPUx_MMU (which is stalled) and the configuration port of IPUx_MMU are connected (through a splitter) to the same IPUx_UNICACHE master port.
The default behavior of the IPUx_MMU previously described can be overridden by setting the MMU_GP_REG[0] BUS_ERR_BACK_EN bit to 1. Once this bit is set, all MMU faults (including TLB miss) return a bus error to the IPUx subsystem (interrupt event XLATE_MMU_FAULT). This allows the end user to quickly establish the cause of the MMU fault by having appropriate code in the ISR.