AN 755: Implementing JESD204B IP Core System Reference Design with ARM HPS As Control Unit (Baremetal Flow)

ID 683776
Date 12/30/2015
Public
Document Table of Contents

1.7.3. Software Interrupt Service Routines (ISR)

One key feature of the ARM® HPS control unit is the ability to handle interrupt requests (IRQ) from peripherals via ISR. The reference design main.c source code defines ISRs for the following peripherals:

  • JESD204B IP core TX base layer
  • JESD204B IP core RX base layer
  • SPI master module

The ISRs in the reference design main.c source code is a very basic routine that performs these two tasks:

  • Clear interrupt request (IRQ) error flag.
  • Print error type and message (for JESD204B IP core TX and RX base layer ISR only).

The error types and messages printed by the JESD204B IP core TX and RX base layer ISRs respectively are listed below.

Error types printed by the JESD204B IP core TX base layer ISR:

  • SYNC_N error
  • SYSREF LMFC error
  • DLL data invalid error
  • Transport layer data invalid error
  • SYNC_N link reinitialization request
  • Transceiver PLL locked error
  • Phase compensation FIFO full error
  • Phase compensation FIFO empty error

Error types printed by the JESD204B IP core RX base layer ISR:

  • SYSREF LMFC error
  • DLL data ready error
  • Transport layer data ready error
  • Lane deskew error
  • RX locked to data error
  • Phase compensation FIFO full error
  • Phase compensation FIFO empty error
  • Code group synchronization error
  • Frame alignment error
  • Lane alignment error
  • Unexpected K character
  • Not in table error
  • Running disparity error
  • Initial Lane Alignment Sequence (ILAS) error
  • DLL error reserve status
  • ECC error corrected
  • ECC error fatal

The error types correspond to the tx_err, rx_err0, and rx_err1 status registers in the JESD204B IP core TX and RX register maps respectively. The printing of interrupt error messages to the App Console window is controlled by the PRINT_INTERRUPT_MESSAGES parameter in the main.h header file. Set to ‘1’ (default) to print error messages, else set to ‘0’. Refer to the Software Parameters section for more details. Modify the ISRs in the source code to customize the interrupt handling response to your system specifications.