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.

  • TI Thinks Resolved

DRA72XEVM: Reverse camera video displays properly during early boot(uboot) but once during kernel load starts display freezes

Intellectual 480 points

Replies: 6

Views: 79

Part Number: DRA72XEVM

Hi TI Forum,

We are using custom board having TDA2xx SoC. We are using Vision SDK 3.0.7

We have a requirement wherein we would need to switch between splash screen and Reverse camera display during boot till completion of Linux kernel load.

Iam trying to display 1 channel video and still image based on user selection whether he wants splash image or Reverse camera video.

If user presses Switch-1 then still image has to be displayed, which is displaying properly.

If user presses Switch-2 then Reverse camera Video has to be displayed. But when user selects this switch Video is getting distorted. Then after analysing found the data format of image and video differs hence this problem. 

The splash image is of SYSTEM_DF_YUV420SP_UV format and video is SYSTEM_DF_YUV422I_YUYV

To resolve this used the below function which converts the captured video to SYSTEM_DF_YUV420SP_UV. As this is Reverse Camera feature the firmware is loaded(Early Load) during uboot so that within 2-3 seconds Reverse camera is displayed. Till uboot display of both Splash image and video is proper. But as soon as Linux kernel load starts, the display is getting freezed. If the below conversion is not done there is no freeze but display is distorted. Could you please clarify if the below conversion module is a limitation? If not, how could we resolve. If we see the logs we are seeing XDC Error.

Void ChainsCommon_SetVPEPrms(VpeLink_CreateParams *pPrm,
                        UInt32 captureInWidth,
                        UInt32 captureInHeight
                        )
{

    UInt32 outId, chId;
    VpeLink_ChannelParams *chPrms;

    memset(pPrm, 0, sizeof(*pPrm));

    pPrm->enableOut[0] = TRUE;
    pPrm->enableOut[1] = FALSE;

    for(outId=0; outId<VPE_LINK_OUT_QUE_ID_MAX; outId++)
    {
        for (chId = 0; chId < 1; chId++)
        {
                chPrms = &pPrm->chParams[chId];
                chPrms->outParams[outId].numBufsPerCh = 10;//4;//4;//VPE_LINK_NUM_BUFS_PER_CH_DEFAULT;
                chPrms->outParams[outId].inputFrameRate = 50;
                chPrms->outParams[outId].outputFrameRate = 50;

                chPrms->outParams[outId].width  = captureInWidth;
                chPrms->outParams[outId].height = captureInHeight;
                chPrms->outParams[outId].dataFormat = SYSTEM_DF_YUV420SP_UV;

                chPrms->deiCfg.bypass = FALSE;

                chPrms->deiCfg.inpMode = VPE_DEI_EDIMODE_LUMA_CHROMA;
                chPrms->deiCfg.tempInpEnable = TRUE;
                chPrms->deiCfg.tempInpChromaEnable = TRUE;
                chPrms->deiCfg.spatMaxBypass = TRUE;
                chPrms->deiCfg.tempMaxBypass = TRUE;
                chPrms->scCfg.bypass       = TRUE;//FALSE;//TRUE;
                chPrms->scCfg.nonLinear    = FALSE;
                chPrms->scCfg.stripSize    = 0;

                chPrms->scCropCfg.cropStartX = 0;
                chPrms->scCropCfg.cropStartY = 0;
                chPrms->scCropCfg.cropWidth  = captureInWidth;//0;
                chPrms->scCropCfg.cropHeight = captureInHeight;//0;
        }
   }
}

  • Hi Sudhi,

    I hope you have taken care of all late-attach patches on kernel. Please confirm.

    Can you confirm VPE is not used from A15?

    Did you try with other conversion format what is behavior?  As this conversion is working for you and able to see proper video, I don't suspect any memory related issue here.

    RamPrasad

  • In reply to Ramprasad:

    Hi RamPrasad,

    Thanks for the reply. 

    We have taken all the late-attach patches on kernel.

    Could you please help me how to identify if VPE is used from A15 or not?? Because Iam not sure of how to find this.

    If VPE should not be used from A15 then on which core it should be running and how to configure for other core, could you please help on this.?? This issue is stuck for long time could you please help us.

    Thanks & Regards,

    Sudhi

  • In reply to Sudhi Sudhi:

    Hi Sudhi,

    Make sure that VPE_INCLUDE=yes in Rules.make of visionSDK which means M4 controls the VPE

    and in your dts file DISABLE_COMPLETE(vpe) exists which means A15 is no more controls VPE.

    Thanks

    RamPrasad

  • In reply to Ramprasad:

    Hi RamPrasad,

    Thanks a lot for the inputs having set the DISABLE_COMPLETE(vpe) in dts, the camera display is continuous starting from boot till we run any other application. 

    However, with this change has caused a new problem. That is, when we run apps.out which has Camera capture display usecase we are getting the below assert. In this usecase we use Capture, VPE, Display links. Earlier this use case which is part of apps.out was running fine. 

    ASSERT (chains_common.c|virtio_rpmsg_bus virtio0: rpmsg host is online
    ChainsCommon_StartDisplayCtrl|3067)
    remoteproc0: registered virtio0 (type 7)

    Earlier this apps.out was running fine. Only after having the new change of DISABLE_COMPLETE(vpe) in dts the above ASSERT is seen. And there is no display of other analog camera.

    Complete log is attached. 

    Thanks & Regards,

    Sudheendra

    Post_RVC_Log.txt

  • In reply to Sudhi Sudhi:

    Hi Sudhi,

    Can you share your final dtb file used?

    Thanks

    RamPrasad

  • In reply to Ramprasad:

    Hi RamPrasad,

    Thanks for the response. Pls find attached the final dtb file we use - dra7-evm-infoadas.dtb

    Attaching .dtb file was not allowed. Hence I have named the file extension as .txt. So once you receive could you pls rename ffile extension back to .dtb.

    Thanks & Regards,

    Sudhi

    1715.dra7-evm-infoadas.txt

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.