09-24-2018 07:23 PM
Hello everyone:
I'm trying to implement a standalone DisplayPort demo on ZCU102. (Just enabled DP in ZYNQ MPSOC without any other HW IP)
I wanted to use the drivers in "\data\embeddedsw\XilinxProcessorIPLib\drivers" , but I don't know which one or ones to use:
\avbuf_v2_0
\dp_v6_0
\dpdma_v1_0
\dppsu_v1_1
\dptxss_v5_0
If I want to show graphics on screen through DP with no OS, which folders could help me with that? Or which is the Main() Func to be set? Is there any modification I need to make?
Best Regards.
KJ
2018/09/25
10-10-2018 06:40 AM
HI @kanojojo,
I was able to get the output working with the DPDMA example. Here is the steps I have used:
Hope that helps,
Regards,
09-26-2018 07:47 AM
HI @kanojojo,
I believe that the DPDMA should have the working example design for the DP controller on ZynqMP.
10-04-2018 02:00 AM
HI @kanojojo,
Do you have any updates on this?
If your question is answered or your issue is solved, please kindly mark the response which helped as solution (click on "Accept as solution" button below the reply)
If this is not solved/answered, please reply in the topic giving more information on your current status.
Thanks and Regards,
10-09-2018 01:22 AM
Dear @florentw,
Really appraciate for your help on this. Here I got 2 problems:
①
I implement the example design in \dpdma_v1_0 by following steps:
add /dpdma//xdpdma.c
add /dpdma//xdpdma.h
add /dpdma//xdpdma_intr.c
add /dpdma//xdpdma_sinit.c
add /dpdma//xdpdma_hw.h
add /dpdma//xdpdma_video_example.c
add /dpdma//xdpdma_video_example.h
add /dpdma//xdppsu_interrupt.c
modify "xdpdma_video_example.c":line60 :
#include "dpdma_video_example.h" --> #include xdpdma_video_example.h"
modify "xdppsu_interrupt.c": line55 :
#include "dpdma_video_example.h" --> #include "xdpdma_video_example.h"
add /dppsu//xdppsu.h
add /dppsu//xdppsu.c
add /dppsu//xdppsu_hw.h
add /dppsu//xdppsu_sinit.c
add /dppsu//xdppsu_serdes.h
add /dppsu//xdppsu_serdes.c
add /dppsu//xdppsu_spm.c
add /dppsu//xdppsu_intr.c
modify "xdppsu_sinit.c":line63:
XDpPsu_ConfigTable -->XDpPsu_Config XDpPsu_ConfigTable[XDPPSU_NUM_INSTANCES]= {{XPAR_PSU_DP_DEVICE_ID,XPAR_PSU_DP_BASEADDR}};
modify "xdppsu_spm.c":line473:
nearbyint --> (int)
Then I Debug the project in SDK and got the "Successfully ran DPDMA Video Example Test\r\n" which indicates the main func has been successfully run, however no pictures showed on screen. Is there something I missed?
#####################################################################################
②
I also implement the example design in \dppsu_v1_1 by adding the src file into new projects. xdppsu_poll_example.c is chose to be main func. And I just commented these functions which should be modified by user:
/* Do platform initialization here. This is hardware system specific -
* it is up to the user to implement this function. */
//DpPsu_PlatformInit();
/* Configure video stream source or generator here. These function need
* to be implemented in order for video to be displayed and is hardware
* system specific. It is up to the user to implement these
* functions. These functions are available in AVBuf driver */
//DpPsu_StreamSrcSetup(InstancePtr);
//DpPsu_StreamSrcConfigure(InstancePtr);
//DpPsu_StreamSrcSync(InstancePtr);
When Debugging, it stuck in Reading interrupt registers and always got 0s while I pluged/unpluged the DP cable to the screen(Dell U2417H).
/* Read interrupt registers. */
InterruptSignalState = XDpPsu_ReadReg(InstancePtr->Config.BaseAddr, XDPPSU_INTERRUPT_SIG_STATE);
InterruptStatus = XDpPsu_ReadReg(InstancePtr->Config.BaseAddr, XDPPSU_INTR_STATUS);
/* Check for HPD events. */
HpdState = InterruptSignalState & XDPPSU_INTERRUPT_SIG_STATE_HPD_STATE_MASK;
HpdEvent = InterruptStatus & XDPPSU_INTR_HPD_EVENT_MASK;
HpdPulseDetected = InterruptStatus & XDPPSU_INTR_HPD_PULSE_DETECTED_MASK;
Could you help me on these 2 situations?
Best Regards.
KJ
2018/10/09
10-10-2018 06:40 AM
HI @kanojojo,
I was able to get the output working with the DPDMA example. Here is the steps I have used:
Hope that helps,
Regards,
10-10-2018 08:36 PM
Hi @florentw,
Thank you very much for the detailed illustration on this issue.
Maybe it's not the proper version of Vivado & SDK (2017.4) that I'm using. The version of DPDMA is 1.0 only and I can't find "import examples" following the "psu_dma".
I will implement the example and post results once I finish to install 2018.2.
PS: In your last reply, should there be the "dppsu" instead of "avbuf" since step-3 has changed the driver of psu_dp in the second picture?
Best Regards.
KJ
2018/10/11
10-11-2018 12:06 AM - edited 10-11-2018 12:07 AM
HI @kanojojo,
Yes in 2017.4, the example was not complete. Please use 2018.2.
I had avbuf in the mss file but i think the dp_psu was still correctly loaded (I had a compilation error with the default setting). It might only be that I forgot to update the mss file ( clean bsp) before taking the screenshot
10-11-2018 12:03 PM
10-12-2018 12:50 AM
HI @patcher33,
Can you kindly create a new topic for your question:
go to the video board and then click new message
You can refer to the "Recommendations for creating a topic in the Video board" for putting as much detail as you can in your first topic.
You can use the title "2018.2 - DPDMA baremetal example design not working"
Please mention which monitor you are using. Also please detailed the steps you have used for the vivado design.
Then I will try to find some time to help you
Note that I am closing this topic for new replies as it is already solved.
Best Regards,