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.

TDA4VM: Output the eDP in vision_apps

Part Number: TDA4VM
Hello, TI
I want to output eDP in vision_apps(mcu2_0)
Below is my modified code:
app_init.c
        prm.timings.width        = 1920U;
        prm.timings.height       = 1080U;
        prm.timings.hFrontPorch  = 0U;
        prm.timings.hBackPorch   = 80U;
        prm.timings.hSyncLen     = 40U;
        prm.timings.vFrontPorch  = 22U;
        prm.timings.vBackPorch   = 10U;
        prm.timings.vSyncLen     = 2U;
        prm.timings.pixelClock   = 136353600ULL;

This is the eDP interface that I'm using

MCU2_0 Log:
[MCU2_0]      3.440643 s: ### CPU Frequency = 1000000000 Hz
[MCU2_0]      3.440672 s: APP: Init ... !!!
[MCU2_0]      3.440691 s: SCICLIENT: Init ... !!!
[MCU2_0]      3.440894 s: SCICLIENT: DMSC FW version [21.5.0--v2021.05 (Terrific Llam]
[MCU2_0]      3.440928 s: SCICLIENT: DMSC FW revision 0x15  
[MCU2_0]      3.440951 s: SCICLIENT: DMSC FW ABI revision 3.1
[MCU2_0]      3.440974 s: SCICLIENT: Init ... Done !!!
[MCU2_0]      3.440995 s: UDMA: Init ... !!!
[MCU2_0]      3.442008 s: UDMA: Init ... Done !!!
[MCU2_0]      3.442055 s: MEM: Init ... !!!
[MCU2_0]      3.442089 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ e1000000 of size 16777216 bytes !!!
[MCU2_0]      3.442142 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000000) @ 3600000 of size 262144 bytes !!!
[MCU2_0]      3.442195 s: MEM: Created heap (DDR_NON_CACHE_ME, id=5, flags=0x00000000) @ d8000000 of size 16777216 bytes !!!
[MCU2_0]      3.442242 s: MEM: Init ... Done !!!
[MCU2_0]      3.442261 s: IPC: Init ... !!!
[MCU2_0]      3.442308 s: IPC: 6 CPUs participating in IPC !!!
[MCU2_0]      3.442346 s: IPC: Waiting for HLOS to be ready ... !!!
[MCU2_0]     18.072530 s: IPC: HLOS is ready !!!
[MCU2_0]     18.077556 s: IPC: Init ... Done !!!
[MCU2_0]     18.077606 s: APP: Syncing with 5 CPUs ... !!!
[MCU2_0]     19.549295 s: APP: Syncing with 5 CPUs ... Done !!!
[MCU2_0]     19.549336 s: REMOTE_SERVICE: Init ... !!!
[MCU2_0]     19.550596 s: REMOTE_SERVICE: Init ... Done !!!
[MCU2_0]     19.550692 s: FVID2: Init ... !!!
[MCU2_0]     19.550756 s: FVID2: Init ... Done !!!
[MCU2_0]     19.550798 s: DSS: Init ... !!!
[MCU2_0]     19.550821 s: DSS: Display type is eDP !!!
[MCU2_0]     19.550843 s: DSS: SoC init ... !!!
[MCU2_0]     19.550861 s: SCICLIENT: Sciclient_pmSetModuleState module=152 state=2
[MCU2_0]     19.551059 s: SCICLIENT: Sciclient_pmSetModuleState success
[MCU2_0]     19.551087 s: SCICLIENT: Sciclient_pmSetModuleState module=297 state=2
[MCU2_0]     19.551252 s: SCICLIENT: Sciclient_pmSetModuleState success
[MCU2_0]     19.551278 s: SCICLIENT: Sciclient_pmSetModuleState module=151 state=2
[MCU2_0]     19.551667 s: SCICLIENT: Sciclient_pmSetModuleState success
[MCU2_0]     19.551693 s: SCICLIENT: Sciclient_pmSetModuleClkParent module=152 clk=9 parent=11
[MCU2_0]     19.552190 s: SCICLIENT: Sciclient_pmSetModuleClkParent success
[MCU2_0]     19.552218 s: SCICLIENT: Sciclient_pmSetModuleClkParent module=152 clk=13 parent=18
[MCU2_0]     19.552683 s: SCICLIENT: Sciclient_pmSetModuleClkParent success
[MCU2_0]     19.552708 s: SCICLIENT: Sciclient_pmSetModuleClkParent module=152 clk=1 parent=2
[MCU2_0]     19.553072 s: SCICLIENT: Sciclient_pmSetModuleClkParent success
[MCU2_0]     19.553098 s: SCICLIENT: Sciclient_pmSetModuleClkFreq module=152 clk=1 freq=136353600
[MCU2_0]     19.554334 s: SCICLIENT: Sciclient_pmSetModuleClkFreq success
[MCU2_0]     19.554361 s: SCICLIENT: Sciclient_pmModuleClkRequest module=152 clk=1 state=2 flag=0
[MCU2_0]     19.554821 s: SCICLIENT: Sciclient_pmModuleClkRequest success
[MCU2_0]     19.554846 s: DSS: SoC init ... Done !!!
[MCU2_0]     22.033255 s: DSS: Init ... Done !!!
[MCU2_0]     22.033277 s: VHWA: VPAC Init ... !!!
[MCU2_0]     22.033296 s: SCICLIENT: Sciclient_pmSetModuleState module=290 state=2
[MCU2_0]     22.033432 s: SCICLIENT: Sciclient_pmSetModuleState success
[MCU2_0]     22.033462 s: VHWA: LDC Init ... !!!
[MCU2_0]     22.036368 s: VHWA: LDC Init ... Done !!!
[MCU2_0]     22.036416 s: VHWA: MSC Init ... !!!
[MCU2_0]     22.045101 s: VHWA: MSC Init ... Done !!!
[MCU2_0]     22.045143 s: VHWA: NF Init ... !!!
[MCU2_0]     22.046640 s: VHWA: NF Init ... Done !!!
[MCU2_0]     22.046680 s: VHWA: VISS Init ... !!!
[MCU2_0]     22.055863 s: VHWA: VISS Init ... Done !!!
[MCU2_0]     22.055911 s: VHWA: VPAC Init ... Done !!!
[MCU2_0]     22.055947 s:  VX_ZONE_INIT:Enabled
[MCU2_0]     22.055971 s:  VX_ZONE_ERROR:Enabled
[MCU2_0]     22.055990 s:  VX_ZONE_WARNING:Enabled

I commented out the appDssConfigureBoard function because my power pin was raised in another way

The output of the eDP in the main domain is connected to a serializer UH983

If there is any output signal from the eDP, it can be detected on the UH983 by reading the register

EDP output is not read on UB983, and there is no screen display

How can I confirm if there is any output from eDP?

  • Hi Zi Wang,

    What is the status of HPD on the board? eDP output will be enabled only on HPD detection. So can you check HPD status?

    Regards,

    Brijesh

  • Hello,Brijesh

    My HPD uses the 'Y4' pin, which is always high 3V

  • Hi Zi Wang,

    ok, can you please check if the API appDctrlDpHpdCbFxn is getting called on R5F/mcu2_0? This is the API, which enables eDP output, so if the HPD is detected and then it should enable eDP output.

    Regards,

    Brijesh

  • Hello,Brijesh

    Yes, this API has been called
    int32_t Dss_dctrlDrvProcessHpdDp(uint32_t hpdState)
    {
        uint32_t retVal = FVID2_SOK, dpApiRet;
        uint32_t cookie;
        uint32_t isConnected = FALSE;
        Dss_DctrlDisplayPortDrvObj *pObj = &gDssDctrlDisplayPortDrvObj;
        DP_TrainingStatus trainingResult;
    
        if(TRUE == hpdState)
        {
            dpApiRet = DP_LinkTraining(pObj->dpPrivData, &trainingResult);
            GT_0trace(DssTrace, GT_ERR, "DP_LinkTraining :Dss_dctrlDrvProcessHpdDp\r\n");
            if ((CDN_EOK == dpApiRet) &&
            (trainingResult == DP_LT_OK))
            {
                GT_0trace(DssTrace, GT_ERR, "trainingResult :DP_LT_OK\r\n");
                isConnected = TRUE;
            }
        }
    static void appDctrlDpHpdCbFxn(uint32_t hpdState, void *appData)
    {
        appLogPrintf("appDctrlDpHpdCbFxn start\n");
        Fvid2_control(gAppDctrlHandle, IOCTL_DSS_DCTRL_PROCESS_DP_HPD, &hpdState, NULL);
    }
    MCU2_0 Log:
    [MCU2_0]     22.884583 s: appDctrlDpHpdCbFxn start
    [MCU2_0]     22.901614 s: src/drv/dctrl/dss_dctrlExtended.c @ Line 371: 
    [MCU2_0]     22.901657 s: DP_LinkTraining :Dss_dctrlDrvProcessHpdDp
    [MCU2_0]     22.901690 s: src/drv/dctrl/dss_dctrlExtended.c @ Line 375: 
    [MCU2_0]     22.901717 s: trainingResult :DP_LT_OK

    Does this mean that eDP can be output normally?

  • Hi Zi Wang,

    Yes, as shown in the code following, if the link training is successful on HPD detection, it enables the video output.

    if(TRUE == pObj->isConnected)
    {
    if((DP_VIDEO_STATE_REQUESTED == pObj->videoState) ||
    (DP_VIDEO_STATE_RUNNING == pObj->videoState))
    {
    retVal = Dss_dctrlDrvDpStartVideo(pObj);

    Regards,

    Brijesh

  • Hello,Brijesh

    I added log, Dss_dctrlDrvDpStartVideo is called, and the return value is OK

    It seems that serializer is the problem

    Thank you for your help