dp14
Xilinx SDK Drivers API Documentation
xdp_rx_sst_dp159_example.c File Reference

Overview

Contains a design example using the XDp driver for an DP RX core generated with SST-only functionality.

This example runs the programming sequence for the DP159 retimer. An I2C controller will need to exist in the design have a connection to the DP159. A user-defined hook is used for delay. The reasoning behind this is that MicroBlaze sleep is not very accurate without a hardware timer. For systems that have a hardware timer, the user may override the default MicroBlaze sleep with a function that will use the hardware timer. Also, this example sets up the interrupt controller and defines handlers for various interrupt types. In this way, the RX interrupt handler will arbitrate the different interrupts to their respective interrupt handlers defined in this example. This example will print out the detected resolution of the incoming DisplayPort video stream. This example is meant to take in the incoming DisplayPort video stream and pass it through using the Dprd_Vidpipe* functions which are left for the user to implement.

Note
This example requires an AXI timer in the system.
For this example to work, the user will need to implement initialization of the system (Dprx_PlatformInit) as this is system-specific.
For this example to display output, the user will need to implement the Dprx_Vidpipe* functions which configure and reset the video pipeline as required as this is system-specific.
In the presence of a DP159 retimer, an I2C controller needs to exist in the design to program it. Depending on how the DP159 connection exists, the user will need to implement Dprx_Dp159Reset function.
MODIFICATION HISTORY:
Ver   Who  Date     Changes

1.0 als 01/20/15 Initial creation. 2.0 als 07/07/15 Added DP159 programming. 4.0 als 02/07/16 Added end of line reset for reduced blanking. 5.1 ms 01/23/17 Added xil_printf statement in main function to ensure that "Successfully ran" and "Failed" strings are available in all examples. This is a fix for CR-965028.

Functions

u32 Dprx_SstExample (XDp *InstancePtr, u16 DeviceId, INTC *IntcPtr, u16 IntrId, u16 DpIntrId, XTmrCtr *TimerCounterPtr, u16 TimerId)
 The main entry point for the interrupt with timer example using the XDp driver. More...
 
int main (void)
 This function is the main function of the XDp (operating in RX mode) interrupt with timer example. More...
 

Function Documentation

◆ Dprx_SstExample()

u32 Dprx_SstExample ( XDp InstancePtr,
u16  DeviceId,
INTC *  IntcPtr,
u16  IntrId,
u16  DpIntrId,
XTmrCtr *  TimerCounterPtr,
u16  TimerId 
)

The main entry point for the interrupt with timer example using the XDp driver.

This function will set up the system, interrupt controller and interrupt handlers, and the custom sleep handler.

Parameters
InstancePtris a pointer to the XDp instance.
DeviceIdis the unique device ID of the DisplayPort RX core instance.
IntcPtris a pointer to the interrupt instance.
IntrIdis the unique device ID of the interrupt controller.
DpIntrIdis the interrupt ID of the DisplayPort RX connection to the interrupt controller.
TimerCounterPtris a pointer to the timer instance.
TimerIdis the ID of the timer controller to use for delays.
Returns
  • XST_SUCCESS if the system was set up correctly and link training was successful.
  • XST_FAILURE otherwise.
Note
None.

Referenced by main().

◆ main()

int main ( void  )

This function is the main function of the XDp (operating in RX mode) interrupt with timer example.

If the Dprx_SstExample function, which sets up the system succeeds, this function will wait for interrupts.

Parameters
None.
Returns
  • XST_FAILURE if the interrupt example was unsuccessful - system setup failed.
Note
Unless setup failed, main will never return since Dprx_SstExample is blocking.

References Dprx_SstExample().