This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS570LS3137: VIM parity error handler

Part Number: TMS570LS3137

Hi Team,

As per TRM, 

Since the interrupt vector table may have an error, the FBPARERR register will provide to the VIC port,
IRQVECREG and FIQVECREG, a fall-back address to an ISR that can restore the interrupt vector table
content. The FBPARERR register should be set before initializing the interrupt in the interrupt vector table,
to avoid branching to an unpredictable location.

Question is: We need to enable esm group1 channel 15 in order to handle or execute vim parity handler method configured in FBPARERR register.
How this interrupt route gets triggered without executing esm low or high interrupt handler (based on configuration of esm group1 channel 15 during initialization).

VIM parity error -> esm group1 channel 15 status is set (when enabled) -> vim parity handler gets executed.

Could understand the reason for not going to esm low or high interrupt, since vim table itself is corrupted. But, is this documented clearly in TRM and how does core identifies vim parity error and execute handler method?

  • Hi Sreenivasan,

    The vimParityCheck() routine causes an intentional parity error in the VIM RAM and then the application reads from this location. The routine then checks for the correct ESM flag to be set. The actual interrupt for this ESM flag is not enabled in this routine.

    If you choose to generate an interrupt in this case, the interrupt handler at the address pointed to by the FBPARERR register will be executed. As the TRM states, the VIM table is bypassed as long as the VIM RAM parity error flag is set.