SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
Figure 8-17 illustrates the mapping of EVE memory switch errors to a single interrupt output (EVE_MSW_ERR_INT). Figure 8-18 shows the mapping of EVE parity and error detect error interrupt outputs (EVE_ED_LCL_IRQ and EVE_ED_OUT_IRQ).
The errors are captured in the appropriate functional error bit field along with the additional error details (such as ConnID and specific address). Error status interrupts are readable in the EVE_MSW_ERR_IRQSTATUS_RAW registers. Software enables (or disables) interrupt generation for that source by writing to the appropriate bit in the interrupt enable set or clear register. When any enabled EVE_MSW_ERR_IRQSTATUS_RAW bit is set, then an interrupt is generated to the ARP32 INTC on the corresponding IRQ output (enabling of IRQSTATUS_RAW event is done through EVE_MSW_ERR_IRQENABLE_SET[3:0]ENABLE and EVE_MSW_ERR_IRQENABLE_CLR[3:0] ENABLE registers).
When the interrupt is served, software clears the interrupt status register fields and the source error register (through the EVE_MSW_ERR register or the EVE_<MEM>_ED register). New interrupt is latched into the EVE_MSW_ERR_IRQSTATUS register only after the register is cleared and new error occurs on the corresponding source error bit or signal. The appropriate bit in the EVE_MSW_ERR_IRQSTATUS_RAW register must be set on a low-to-high transition of the corresponding source error bit or signal. The EVE_MSW_ERR_IRQSTATUS register is routed to EVE-level interrupt output (active-high level and pulse signals are output) and as an active-high level interrupt to the ARP32 INTC.
Two interrupts are provided for EVE parity or error detect interrupt. The first is the local version (EVE_ED_LCL_IRQ) provided as an active-high level interrupt to the ARP32 INTC. The second is an output version (EVE_ED_OUT_IRQ) provided as an output on the EVE boundary as both active-high level and pulse version. This lets software selectively control which parity error sources are serviced by the ARP32, and which parity error sources are serviced by the external host. Typically, ARP32 services parity error interrupts generated by VCOP, EDMA, or system accesses and the system host services parity error interrupts generated by ARP32 accesses. The following registers control the detection and servicing of those interrupts (EVE_ED_LCL_IRQ and EVE_ED_OUT_IRQ):
The mechanism for detecting LCL and OUT interrupts is the same as the sequence described for the memory switch error interrupts. Any interrupt condition is captured in the IRQSTATUS_RAW registers (EVE_ED_LCL_IRQSTATUS_RAW[31:0] EVENT and EVE_ED_OUT_IRQSTATUS_RAW[32:0]EVENT), but only after enabling the appropriate IRQSTATUS_RAW bits (through EVE_ED_LCL_IRQENABLE_SET[3:0] ENABLE and EVE_ED_LCL_IRQENABLE_SET[3:0] ENABLE bit fields) the event is outputted for further processing (to the EVE parity or error detect error interrupts).
See Table 8-14, Figure 8-18, and Figure 8-18 for more information.
Bit Position | Source | Error |
---|---|---|
0 | ARP32ERR | ARP32 initiated buffer ownership error |
1 | VERR | VCOP initiated buffer ownership error |
2 | DMAERR | EDMA initiated buffer ownership error |
3 | SYSERR | System-initiated ownership error |
Bit Position | Source | Error |
---|---|---|
0 | EVE_PMEM_ED_STAT[0] ARP32ERR | ARP32-initiated parity error |
1 | Reserved | Reserved |
2 | Reserved | Reserved |
3 | Reserved | Reserved |
4 | EVE_DMEM_ED_STAT[0] ARP32ERR | ARP32-initiated parity error |
5 | Reserved | Reserved |
6 | EVE_DMEM_ED_STAT[2] DMAERR | EDMA-initiated parity error |
7 | EVE_DMEM_ED_STAT[3] SYSERR | System-initiated parity error |
8 | EVE_WBUF_ED_STAT[0] ARP32ERR | ARP32-initiated parity error |
9 | EVE_WBUF_ED_STAT[1] VERR | VCOP-initiated parity error |
10 | EVE_WBUF_ED_STAT[2] DMAERR | EDMA-initiated parity error |
11 | EVE_WBUF_ED_STAT[3] SYSERR | System-initiated parity error |
12 | EVE_IBUF_ED_STAT[0] ARP32ERR | ARP32-initiated parity error |
13 | EVE_IBUF_ED_STAT[1] VERR | VCOP-initiated parity error |
14 | EVE_IBUF_ED_STAT[2] DMAERR | EDMA-initiated parity error |
15 | EVE_IBUF_ED_STAT[3] SYSERR | System-initiated parity error |