SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
For the software to test their parity error interrupt service routine (ISRs), parity errors can be forced to occur. The EVE subsystem does this by providing an INVERT mode of operation per memory endpoint (by setting the INV bit in the EVE_<PMEM, DMEM, WBUF, or IBUF>_ED_CTL register). When INVERT mode is set (EVE_<MEMORY>_ED_CTL[1] INV = 0x1), and parity is enabled, all read accesses to the corresponding memory return the inverse value of the stored parity bit before the parity check comparison. As a result a parity error is latched and reported through an interrupt, as described in Section 8.1.3.3.5, Memory Switch Error Registers. For program memory, the INV bit causes the encoding calculation to return the inverted value for pass or fail.
For testing the ARP32 parity error ISR, these registers can be set asynchronously by the host processor or system EDMA controller. This setting mimics the random nature of radiation-induced soft error.
Parity or Hamming errors can be injected to a specific address after the initialization sequence. Parity or error detection is placed in disable mode (EVE_<MEMORY>_ED_CTL[0] EN = 0x0), and software can write an incorrect value to the desired address. Writes during disable mode do not modify the parity bit or encoding bits, thus the stored parity or encoding bits are considered incorrect. The memory then can be enabled. Any subsequent read access to that memory location results in a parity error mismatch.