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: TDA4 DSI interface display failed with vision-app run ./run_app_single_cam.sh.

Part Number: TDA4VM

Hi, TI support team.

PSDKRA8.1 & PSDKLA8.1 & Custom Board, PSDKLA8.1 don not soupport DSI driver. So we choose to use DSI interface to show iamge(1920x1080) obtained from camera(s) in RTOS.

1. Current goal is to achieve one screen that can be displayed.

2. Ultimate goal is to use TAD4 output superframe to Serializer, and then the serializer is responsible for dividing the image(2*1920 x 1080) into two identical sizes(1920 x 1080) for two display panels.

The 1-step failed. ./run_app_single_cam.sh 

Below show my modifications in files:

DSI.diff
diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
index cafefd617..ad8bdd6e3 100755
--- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
+++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
@@ -604,6 +604,12 @@ typedef struct
     /**< DSI Instance ID, currently note used */
     uint32_t numOfLanes;
     /**< Number of outputs lanes for DSI output, max 4 */
+    uint32_t laneSpeedInKbps;
+    /**< Exact DPHY lane speed from the selected speed band in Megabits per sec.
+     *   This parameter is set to default value during init time.
+     *   If updated in the application after init, newly set value will be used
+     *   for DPHY clock configurations.
+     */
 } Dss_DctrlDsiParams;
 
 /* ========================================================================== */
diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
index 162ee9420..d8c544f05 100755
--- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
+++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
@@ -69,6 +69,7 @@
 #define DPHYTX0_CORE_BASE                   (CSL_DPHY_TX0_BASE)
 /* Base Address of DSI Wrapper */
 #define DSITX2_WRAP_REGS_BASE               (CSL_DSS_DSI0_DSI_WRAP_MMR_VBUSP_CFG_DSI_WRAP_BASE)
+#define DSITX_DPHY_REF_CLK_KHZ_DEF            (19200U)
 
 
 /* ========================================================================== */
@@ -100,6 +101,22 @@ typedef struct
 
 } Dss_DctrlDSIDrvObj;
 
+/**
+ *  struct Dsitx_DphyRangeData
+ *
+ *  \brief This structure holds information about DSI Tx Range. Typically used
+ *         for DPHY programming.
+ *
+ */
+typedef struct
+{
+    uint32_t rangeMin;
+    /**< Lower boundary of the range */
+    uint32_t rangeMax;
+    /**< Hogher boundary of the range */
+    uint32_t progVal;
+    /**< Value to be programmed for given range */
+} Dsitx_DphyRangeData;
 
 
 /* ========================================================================== */
@@ -128,6 +145,185 @@ extern "C" {
 
 static Dss_DctrlDSIDrvObj gDssDctrlDsiDrvObj;
 
+/* This contains information of the PLL input divider value for DPHY
+   rangeMin and rangeMax is in KHz */
+
+static Dsitx_DphyRangeData gDsiTxIpDivInfo[] =
+{
+    {
+        .rangeMin = 9600U,
+        .rangeMax = 19200U,
+        .progVal  = 1U,
+    },
+    {
+        .rangeMin = 19200U,
+        .rangeMax = 38400U,
+        .progVal  = 2U,
+    },
+    {
+        .rangeMin = 38400U,
+        .rangeMax = 76800U,
+        .progVal  = 4U,
+    },
+    {
+        .rangeMin = 76800U,
+        .rangeMax = 150000U,
+        .progVal  = 8U,
+    },
+};
+
+/* This contains information of the PLL output divider value for DPHY
+   rangeMin and rangeMax is in Mbps */
+static Dsitx_DphyRangeData gDsiTxOpDivInfo[] =
+{
+    {
+        .rangeMin = 1250U,
+        .rangeMax = 2500U,
+        .progVal  = 1U,
+    },
+    {
+        .rangeMin = 630U,
+        .rangeMax = 1240U,
+        .progVal  = 2U,
+    },
+    {
+        .rangeMin = 320U,
+        .rangeMax = 620U,
+        .progVal  = 4U,
+    },
+    {
+        .rangeMin = 160U,
+        .rangeMax = 310U,
+        .progVal  = 8U,
+    },
+    {
+        .rangeMin = 80U,
+        .rangeMax = 150U,
+        .progVal  = 16U,
+    },
+};
+
+/* This contains information of the PLL output divider value for DPHY
+   rangeMin and rangeMax is in Mbps */
+static Dsitx_DphyRangeData gDsiTxLaneSpeedBandInfo[] =
+{
+    {
+        .rangeMin = 80U,
+        .rangeMax = 100U,
+        .progVal  = 0x0,
+    },
+    {
+        .rangeMin = 100U,
+        .rangeMax = 120U,
+        .progVal  = 0x1,
+    },
+    {
+        .rangeMin = 120U,
+        .rangeMax = 160U,
+        .progVal  = 0x2,
+    },
+    {
+        .rangeMin = 160U,
+        .rangeMax = 200U,
+        .progVal  = 0x3,
+    },
+    {
+        .rangeMin = 200U,
+        .rangeMax = 240U,
+        .progVal  = 0x4,
+    },
+    {
+        .rangeMin = 240U,
+        .rangeMax = 320U,
+        .progVal  = 0x5,
+    },
+    {
+        .rangeMin = 320U,
+        .rangeMax = 390U,
+        .progVal  = 0x6,
+    },
+    {
+        .rangeMin = 390U,
+        .rangeMax = 450U,
+        .progVal  = 0x7,
+    },
+    {
+        .rangeMin = 450U,
+        .rangeMax = 510U,
+        .progVal  = 0x8,
+    },
+    {
+        .rangeMin = 510U,
+        .rangeMax = 560U,
+        .progVal  = 0x9,
+    },
+    {
+        .rangeMin = 560U,
+        .rangeMax = 640U,
+        .progVal  = 0xA,
+    },
+    {
+        .rangeMin = 640U,
+        .rangeMax = 690U,
+        .progVal  = 0xB,
+    },
+    {
+        .rangeMin = 690U,
+        .rangeMax = 770U,
+        .progVal  = 0xC,
+    },
+    {
+        .rangeMin = 770U,
+        .rangeMax = 870U,
+        .progVal  = 0xD,
+    },
+    {
+        .rangeMin = 870U,
+        .rangeMax = 950U,
+        .progVal  = 0xE,
+    },
+    {
+        .rangeMin = 950U,
+        .rangeMax = 1000U,
+        .progVal  = 0xF,
+    },
+    {
+        .rangeMin = 1000U,
+        .rangeMax = 1200U,
+        .progVal  = 0x10,
+    },
+    {
+        .rangeMin = 1200U,
+        .rangeMax = 1400U,
+        .progVal  = 0x11,
+    },
+    {
+        .rangeMin = 1400U,
+        .rangeMax = 1600U,
+        .progVal  = 0x12,
+    },
+    {
+        .rangeMin = 1600U,
+        .rangeMax = 1800U,
+        .progVal  = 0x13,
+    },
+    {
+        .rangeMin = 1800U,
+        .rangeMax = 2000U,
+        .progVal  = 0x14,
+    },
+    {
+        .rangeMin = 2000U,
+        .rangeMax = 2200U,
+        .progVal  = 0x15,
+    },
+    {
+        .rangeMin = 2200U,
+        .rangeMax = 2500U,
+        .progVal  = 0x16,
+    },
+};
+
 
 /* ========================================================================== */
 /*                  Internal/Private Function Declarations                    */
@@ -156,6 +352,7 @@ static int32_t dssDctrlEnableDsiLink(Dss_DctrlDSIDrvObj *dsiObj);
 static int32_t dssDctrlEnableDsiDatapath(Dss_DctrlDSIDrvObj *dsiObj);
 static int32_t dssDctrlWaitForLaneReady(Dss_DctrlDSIDrvObj *dsiObj);
 
+static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms);
 
 /* ========================================================================== */
 /*                          Function Definitions                              */
@@ -183,8 +380,8 @@ void Dss_dctrlDrvInitDSI()
     dsiObj->dphyTxOpDiv = 0x2;
     dsiObj->dphyTxFbDiv = 0x173;
     dsiObj->dphyTxRate = 0x1CE;
-    dsiObj->cfgDsiTx.numOfLanes = 0x2u;
-    dsiObj->privDsiTx.numOfLanes = 0x2u;
+    dsiObj->cfgDsiTx.numOfLanes = 0x4u;//0x2u;
+    dsiObj->privDsiTx.numOfLanes = 0x4u;//0x2u;
 }
 
 int32_t Dss_dctrlDrvSetDSIParams(Dss_DctrlDrvInfo *drvInfo,
@@ -198,6 +395,8 @@ int32_t Dss_dctrlDrvSetDSIParams(Dss_DctrlDrvInfo *drvInfo,
     dsiObj->cfgDsiTx.numOfLanes = dsiPrms->numOfLanes;
     dsiObj->privDsiTx.numOfLanes = dsiPrms->numOfLanes;
 
+	status = dssdctrlCalcDsiParams(dsiObj, dsiPrms);
+
     /* Checks to see if the configuration (num of lanes) is valid */
     status = DSITX_Probe(&dsiObj->cfgDsiTx, &dsiObj->sysReqDsiTx);
     if (CDN_EOK == status)
@@ -294,6 +493,105 @@ int32_t Dss_dctrlDrvEnableVideoDSI(Dss_DctrlDrvInfo *drvInfo,
 /*                  Internal/Private Function Definitions                     */
 /* ========================================================================== */
 
+static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms)
+{
+    int32_t retVal = FVID2_SOK;
+    uint32_t min, max;
+    uint32_t idx = 0U;
+    uint64_t tempResult, refClkKHz;
+
+    /* Get speed band for given lane speed */
+    for (idx = 0U ;
+         idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData));
+         idx++)
+    {
+        min = gDsiTxLaneSpeedBandInfo[idx].rangeMin * 1000;
+        max = gDsiTxLaneSpeedBandInfo[idx].rangeMax * 1000;
+        if ((dsiPrms->laneSpeedInKbps >= min) &&
+            (dsiPrms->laneSpeedInKbps <= max))
+        {
+            break;
+        }
+
+    }
+    if (idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData)))
+    {
+        dsiObj->dphyTxRate = (gDsiTxLaneSpeedBandInfo[idx].progVal) |
+            (gDsiTxLaneSpeedBandInfo[idx].progVal << 5);
+    }
+    else
+    {
+        retVal = FVID2_EFAIL;
+    }
+
+    if (retVal == FVID2_SOK)
+    {
+        /* TODO: Read the clock runtime through sciclient APIs */
+        refClkKHz = DSITX_DPHY_REF_CLK_KHZ_DEF;
+        /* Calculate DPHY ipdiv - PLL input divider */
+        if (retVal == FVID2_SOK)
+        {
+            for (idx = 0U ;
+                 idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData));
+                 idx++)
+            {
+                if ((refClkKHz >= gDsiTxIpDivInfo[idx].rangeMin) &&
+                    (refClkKHz < gDsiTxIpDivInfo[idx].rangeMax))
+                {
+                    break;
+                }
+            }
+            if (idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData)))
+            {
+                dsiObj->dphyTxIpDiv = gDsiTxIpDivInfo[idx].progVal;
+            }
+            else
+            {
+                retVal = FVID2_EFAIL;
+            }
+        }
+
+        /* Calculate DPHY opdiv - PLL output divider */
+        if (retVal == FVID2_SOK)
+        {
+            for (idx = 0U ;
+                 idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData));
+                 idx++)
+            {
+                min = gDsiTxOpDivInfo[idx].rangeMin * 1000;
+                max = gDsiTxOpDivInfo[idx].rangeMax * 1000;
+                if ((dsiPrms->laneSpeedInKbps >= min) &&
+                    (dsiPrms->laneSpeedInKbps <= max))
+                {
+                    break;
+                }
+            }
+            if (idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData)))
+            {
+                dsiObj->dphyTxOpDiv = gDsiTxOpDivInfo[idx].progVal;
+            }
+            else
+            {
+                retVal = FVID2_EFAIL;
+            }
+        }
+
+        /* Calculate DPHY fbdiv - PLL feedback divider */
+        if (retVal == FVID2_SOK)
+        {
+            tempResult = (((uint64_t)dsiPrms->laneSpeedInKbps) *
+                          ((uint64_t)2U) *
+                          ((uint64_t)dsiObj->dphyTxIpDiv) *
+                          ((uint64_t)dsiObj->dphyTxOpDiv));
+            tempResult /= (uint64_t)refClkKHz;
+
+            dsiObj->dphyTxFbDiv = (uint32_t)tempResult;
+        }
+    }
+
+    return retVal;
+}
+
 static void dssDctrlSetDSIInCtrlMod()
 {
     /*
diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
index d33912b0c..1deae7f73 100644
--- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
+++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
@@ -82,10 +82,10 @@ vx_status app_init_display(vx_context context, DisplayObj *displayObj, char *obj
 
             displayObj->disp_params.opMode = TIVX_KERNEL_DISPLAY_ZERO_BUFFER_COPY_MODE;//TIVX_KERNEL_DISPLAY_BUFFER_COPY_MODE;
             displayObj->disp_params.pipeId = 0; /* pipe ID = 2 */
-            displayObj->disp_params.outWidth = DISPLAY_WIDTH;
-            displayObj->disp_params.outHeight = DISPLAY_HEIGHT;
-            displayObj->disp_params.posX = (1920-DISPLAY_WIDTH)/2;
-            displayObj->disp_params.posY = (1080-DISPLAY_HEIGHT)/2;
+            displayObj->disp_params.outWidth = 1920U;/DISPLAY_WIDTH;
+            displayObj->disp_params.outHeight = 1080U;//DISPLAY_HEIGHT;
+            displayObj->disp_params.posX = 0;//(1920-DISPLAY_WIDTH)/2;
+            displayObj->disp_params.posY = 0;//(1080-DISPLAY_HEIGHT)/2;
 
             displayObj->disp_params_obj = vxCreateUserDataObject(context, "tivx_display_params_t", sizeof(tivx_display_params_t), &displayObj->disp_params);
             status = vxGetStatus((vx_reference)displayObj->disp_params_obj);
diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h
index 9c5e5f2a6..433b04153 100755
--- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h
+++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h
@@ -88,13 +88,13 @@
 
     /* define below to enable eDP display,
        make sure to undef ENABLE_DSS_HDMI & ENABLE_DSS_DSI as well */
-    #define ENABLE_DSS_EDP
+    #undef ENABLE_DSS_EDP
     /* define below to enable HDMI display,
        make sure to undef ENABLE_DSS_EDP & ENABLE_DSS_DSI as well */
     #undef ENABLE_DSS_HDMI
     /* define below to enable DSI display, make sure to undef ENABLE_DSS_HDMI
        & ENABLE_DSS_EDP as well */
-    #undef ENABLE_DSS_DSI
+    #define ENABLE_DSS_DSI
 
     #define ENABLE_I2C
     #define ENABLE_BOARD
diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
index 94709bfe7..083ffef49 100755
--- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
+++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
@@ -550,15 +550,15 @@ int32_t appInit()
         #ifdef ENABLE_DSS_DSI
             prm.display_type = APP_DSS_DEFAULT_DISPLAY_TYPE_DSI;
 
-            prm.timings.width        = 1280U;
-            prm.timings.height       = 800U;
+            prm.timings.width        = 1920U;//1280U;
+            prm.timings.height       = 1080U;//800U;
             prm.timings.hFrontPorch  = 110U;
             prm.timings.hBackPorch   = 220U;
             prm.timings.hSyncLen     = 40U;
             prm.timings.vFrontPorch  = 5U;
             prm.timings.vBackPorch   = 20U;
             prm.timings.vSyncLen     = 5U;
-            prm.timings.pixelClock   = 74250000ULL;
+            prm.timings.pixelClock   = 143040000ULL;//74250000ULL;
         #endif
         status = appDssDefaultInit(&prm);
         APP_ASSERT_SUCCESS(status);
diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c
index ddfda3a91..2864f0524 100755
--- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c
+++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c
@@ -148,7 +148,7 @@ int32_t appDssDefaultInit(app_dss_default_prm_t *prm)
 
     if (prm->display_type == APP_DSS_DEFAULT_DISPLAY_TYPE_DSI)
     {
-        appDssConfigureUB941AndUB925(prm);
+//        appDssConfigureUB941AndUB925(prm);
     }
 
     appDssInitParamsInit(&dssParams);
@@ -348,7 +348,7 @@ int32_t appDctrlDefaultInit(app_dss_default_obj_t *obj)
     if(obj->initPrm.display_type==APP_DSS_DEFAULT_DISPLAY_TYPE_DSI)
     {
         /* Only two lanes output supported for AOU LCD */
-        dsiParams.num_lanes = 2u;
+        dsiParams.num_lanes = 4u;//2u;
         retVal+= appRemoteServiceRun(cpuId, APP_DCTRL_REMOTE_SERVICE_NAME, APP_DCTRL_CMD_SET_DSI_PARAMS, &dsiParams, sizeof(app_dctrl_dsi_params_t), 0U);
     }
 

DSI used 4-lane,  Since the serializer(Max lane-rate 2.5G/lane) can self-adapt the lane-rate, we use the default dphyTxOpDiv = 02 <1.24 Gbps - 630 Mbps>.

formular: 

1. 1920 * 1080 * 60 * 3  * 8 * 1.2 / 4 = 895.795 Mbps/lane 

      ->  dphyTxRate = (0xE << 0) | (0xE << 5)>;//0x1CE

2. dphyTxFbDiv = ((Lane-Rate * 2 * OpDiv * IpDiv) / (19.2MHz))

      ->  895.795 * 2 * 2 * 2 / 19.2 = 375

dsiObj->dphyTxIpDiv = 0x2;
dsiObj->dphyTxOpDiv = 0x2;
dsiObj->dphyTxFbDiv = 0x177;//0x178
dsiObj->dphyTxRate = 0x1CE;
dsiObj->cfgDsiTx.numOfLanes = 0x4u;//0x2u;
dsiObj->privDsiTx.numOfLanes = 0x4u;//0x2u

Check whether the above parameters are correctly set ?

Is there any code(s) also need to be modified ?

Please help me to solve this for 1-step.

Best Regards

Murphy.

  • Hi Murphy,

    Can you please help us understand what is failed in the single camera application? 

    After applying above patch, you dont really require to calculate and set these parameters. You could just need to set number of lanes and lane speed in Kbps parameters from the application. Driver will then take care of calculating these parameters.

    Regards,

    Brijesh

  • Hi Brijesh,

    thanks for your reply.

    The above patch applied. So just need to modify the lane-num & lane-speed from the application. could you please guide me the location of code and how to modify it?

    Regards,

    Muephy

  • Hi Murphy,

    API appDctrlSetDsiParamsCmd in the file ti-processor-sdk-rtos-j721e-evm-08_01_00_13\vision_apps\utils\dss\src\app_dctrl.c sets the dsi parameters in the driver. Please update it here. 

    Regards,

    Brijesh

  • Hi Brejish

    Below show my modifications in files:

    1. The above patch has been modified dsiParams.num_lanes = 4u;//2u in ti-processor-sdk-rtos-j721e-evm-08_00_00_12\vision_apps\utils\dss\src\app_dss_defaults.c. For which can meet the 4-lane.

    ti-processor-sdk-rtos-j721e-evm-08_01_00_13\vision_apps\utils\dss\src\app_dctrl.c

    2. But for double check numOfLanes, Also for Tx-Rate made below modification <For 4-lane & 900Mbps per lane>.

              dsi_params.numOfLanes = 4u;//prms->num_lanes;
              dsi_params.laneSpeedInKbps = 900u;// For 900Mbsp/lane

    Still Nothing happened on display panel with run ./run_app_single_cam.sh 

    please check the Log:

    root@ti-j72xx:~#
    root@ti-j72xx:~# cd /opt/vision_apps/
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps# source ./vision_apps_init.sh
    root@ti-j72xx:/opt/vision_apps# [MCU2_0]      3.324347 s: CIO: Init ... Done !!!
    [MCU2_0]      3.324421 s: ### CPU Frequency = 1000000000 Hz
    [MCU2_0]      3.324461 s: APP: Init ... !!!
    [MCU2_0]      3.324489 s: SCICLIENT: Init ... !!!
    [MCU2_0]      3.324697 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [MCU2_0]      3.324744 s: SCICLIENT: DMSC FW revision 0x15
    [MCU2_0]      3.324776 s: SCICLIENT: DMSC FW ABI revision 3.1
    [MCU2_0]      3.324812 s: SCICLIENT: Init ... Done !!!
    [MCU2_0]      3.324838 s: UDMA: Init ... !!!
    [MCU2_0]      3.325917 s: UDMA: Init ... Done !!!
    [MCU2_0]      3.325982 s: MEM: Init ... !!!
    [MCU2_0]      3.326025 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ d9000000 of size 16777216 bytes !!!
    [MCU2_0]      3.326097 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000000) @ 3600000 of size 262144 bytes !!!
    [MCU2_0]      3.326158 s: MEM: Init ... Done !!!
    [MCU2_0]      3.326182 s: IPC: Init ... !!!
    [MCU2_0]      3.326239 s: IPC: 6 CPUs participating in IPC !!!
    [MCU2_0]      3.326284 s: IPC: Waiting for HLOS to be ready ... !!!
    [MCU2_0]     14.829239 s: IPC: HLOS is ready !!!
    [MCU2_0]     14.844246 s: IPC: Init ... Done !!!
    [MCU2_0]     14.844316 s: APP: Syncing with 5 CPUs ... !!!
    [MCU2_0]     14.849487 s: APP: Syncing with 5 CPUs ... Done !!!
    [MCU2_0]     14.849713 s: REMOTE_SERVICE: Init ... !!!
    [MCU2_0]     14.851218 s: REMOTE_SERVICE: Init ... Done !!!
    [MCU2_0]     14.851281 s: FVID2: Init ... !!!
    [MCU2_0]     14.851354 s: FVID2: Init ... Done !!!
    [MCU2_0]     14.851404 s: DSS: Init ... !!!
    [MCU2_0]     14.851433 s: DSS: Display type is DSI !!!
    [MCU2_0]     14.851461 s: DSS: M2M Path is enabled !!!
    [MCU2_0]     14.851490 s: DSS: SoC init ... !!!
    [MCU2_0]     14.851515 s: SCICLIENT: Sciclient_pmSetModuleState module=152 state=2
    [MCU2_0]     14.852078 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.852120 s: SCICLIENT: Sciclient_pmSetModuleState module=150 state=2
    [MCU2_0]     14.852496 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.852530 s: SCICLIENT: Sciclient_pmSetModuleState module=296 state=2
    [MCU2_0]     14.852809 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.852843 s: SCICLIENT: Sciclient_pmSetModuleClkParent module=152 clk=9 parent=11
    [MCU2_0]     14.853240 s: SCICLIENT: Sciclient_pmSetModuleClkParent success
    [MCU2_0]     14.853281 s: SCICLIENT: Sciclient_pmSetModuleClkFreq module=152 clk=9 freq=143040000
    [MCU2_0]     14.854536 s: SCICLIENT: Sciclient_pmSetModuleClkFreq success
    [MCU2_0]     14.854576 s: SCICLIENT: Sciclient_pmModuleClkRequest module=152 clk=9 state=2 flag=0
    [MCU2_0]     14.855054 s: SCICLIENT: Sciclient_pmModuleClkRequest success
    [MCU2_0]     14.855095 s: DSS: SoC init ... Done !!!
    [MCU2_0]     14.858353 s: DSS: Init ... Done !!!
    [MCU2_0]     14.858419 s: VHWA: VPAC Init ... !!!
    [MCU2_0]     14.858451 s: SCICLIENT: Sciclient_pmSetModuleState module=290 state=2
    [MCU2_0]     14.858772 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.858813 s: VHWA: LDC Init ... !!!
    [MCU2_0]     14.863203 s: VHWA: LDC Init ... Done !!!
    [MCU2_0]     14.863264 s: VHWA: MSC Init ... !!!
    [MCU2_0]     14.872893 s: VHWA: MSC Init ... Done !!!
    [MCU2_0]     14.872958 s: VHWA: NF Init ... !!!
    [MCU2_0]     14.874424 s: VHWA: NF Init ... Done !!!
    [MCU2_0]     14.874484 s: VHWA: VISS Init ... !!!
    [MCU2_0]     14.883556 s: VHWA: VISS Init ... Done !!!
    [MCU2_0]     14.883623 s: VHWA: VPAC Init ... Done !!!
    [MCU2_0]     14.883672 s:  VX_ZONE_INIT:Enabled
    [MCU2_0]     14.883700 s:  VX_ZONE_ERROR:Enabled
    [MCU2_0]     14.883724 s:  VX_ZONE_WARNING:Enabled
    [MCU2_0]     14.884922 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target IPU1-0
    [MCU2_0]     14.885160 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_NF
    [MCU2_0]     14.885387 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_LDC1
    [MCU2_0]     14.885610 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_MSC1
    [MCU2_0]     14.885829 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_MSC2
    [MCU2_0]     14.886159 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_VISS1
    [MCU2_0]     14.886430 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE1
    [MCU2_0]     14.886681 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE2
    [MCU2_0]     14.886947 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DISPLAY1
    [MCU2_0]     14.887211 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DISPLAY2
    [MCU2_0]     14.887444 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CSITX
    [MCU2_0]     14.887711 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE3
    [MCU2_0]     14.887978 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE4
    [MCU2_0]     14.888243 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE5
    [MCU2_0]     14.888499 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE6
    [MCU2_0]     14.888744 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE7
    [MCU2_0]     14.889015 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE8
    [MCU2_0]     14.889269 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M1
    [MCU2_0]     14.889503 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M2
    [MCU2_0]     14.889731 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M3
    [MCU2_0]     14.889965 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M4
    [MCU2_0]     14.890022 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [MCU2_0]     14.890059 s: APP: OpenVX Target kernel init ... !!!
    [MCU2_0]     14.905682 s: APP: OpenVX Target kernel init ... Done !!!
    [MCU2_0]     14.905738 s: CSI2RX: Init ... !!!
    [MCU2_0]     14.905764 s: SCICLIENT: Sciclient_pmSetModuleState module=25 state=2
    [MCU2_0]     14.905879 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.905920 s: SCICLIENT: Sciclient_pmSetModuleState module=26 state=2
    [MCU2_0]     14.906035 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.906072 s: SCICLIENT: Sciclient_pmSetModuleState module=27 state=2
    [MCU2_0]     14.906165 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.906199 s: SCICLIENT: Sciclient_pmSetModuleState module=147 state=2
    [MCU2_0]     14.906271 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.906303 s: SCICLIENT: Sciclient_pmSetModuleState module=148 state=2
    [MCU2_0]     14.906372 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     14.907024 s: CSI2RX: Init ... Done !!!
    [MCU2_0]     14.907084 s: ISS: Init ... !!!
    [MCU2_0]     14.907132 s: IssSensor_Sensor_Module_Max96705_Init init
    [MCU2_0]     14.907174 s: IssSensor_Sensor_Module_Max96715_Init init
    [MCU2_0]     14.907211 s: IssSensor_Sensor_Module_Max96717_Init init
    [MCU2_0]     14.907247 s: IssSensor_Sensor_Module_Max9295A_Init init
    [MCU2_0]     14.907283 s: IssSensor_Sensor_Module_Max9295A_APA_AR0231_Init init
    [MCU2_0]     14.907320 s: IssSensor_Init ... Done !!!
    [MCU2_0]     14.907412 s: vissRemoteServer_Init ... Done !!!
    [MCU2_0]     14.907480 s: IttRemoteServer_Init ... Done !!!
    [MCU2_0]     14.907513 s: UDMA Copy: Init ... !!!
    [MCU2_0]     14.908989 s: UDMA Copy: Init ... Done !!!
    [MCU2_0]     14.909091 s: APP: Init ... Done !!!
    [MCU2_0]     14.909130 s: APP: Run ... !!!
    [MCU2_0]     14.909157 s: IPC: Starting echo test ...
    [MCU2_0]     14.911796 s: APP: Run ... Done !!!
    [MCU2_0]     14.913317 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[.] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU2_0]     14.913437 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU2_0]     14.913536 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[.]
    [MCU2_0]     14.913627 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[P]
    [MCU2_1]      3.344065 s: CIO: Init ... Done !!!
    [MCU2_1]      3.344132 s: ### CPU Frequency = 1000000000 Hz
    [MCU2_1]      3.344172 s: APP: Init ... !!!
    [MCU2_1]      3.344195 s: SCICLIENT: Init ... !!!
    [MCU2_1]      3.344402 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [MCU2_1]      3.344449 s: SCICLIENT: DMSC FW revision 0x15
    [MCU2_1]      3.344482 s: SCICLIENT: DMSC FW ABI revision 3.1
    [MCU2_1]      3.344516 s: SCICLIENT: Init ... Done !!!
    [MCU2_1]      3.344543 s: UDMA: Init ... !!!
    [MCU2_1]      3.345637 s: UDMA: Init ... Done !!!
    [MCU2_1]      3.345697 s: MEM: Init ... !!!
    [MCU2_1]      3.345741 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ da000000 of size 16777216 bytes !!!
    [MCU2_1]      3.345818 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 3640000 of size 262144 bytes !!!
    [MCU2_1]      3.345878 s: MEM: Init ... Done !!!
    [MCU2_1]      3.345903 s: IPC: Init ... !!!
    [MCU2_1]      3.345965 s: IPC: 6 CPUs participating in IPC !!!
    [MCU2_1]      3.346014 s: IPC: Waiting for HLOS to be ready ... !!!
    [MCU2_1]     14.834359 s: IPC: HLOS is ready !!!
    [MCU2_1]     14.849373 s: IPC: Init ... Done !!!
    [MCU2_1]     14.849439 s: APP: Syncing with 5 CPUs ... !!!
    [MCU2_1]     14.849487 s: APP: Syncing with 5 CPUs ... Done !!!
    [MCU2_1]     14.849525 s: REMOTE_SERVICE: Init ... !!!
    [MCU2_1]     14.851258 s: REMOTE_SERVICE: Init ... Done !!!
    [MCU2_1]     14.851321 s: FVID2: Init ... !!!
    [MCU2_1]     14.851391 s: FVID2: Init ... Done !!!
    [MCU2_1]     14.851423 s: VHWA: DMPAC: Init ... !!!
    [MCU2_1]     14.851451 s: SCICLIENT: Sciclient_pmSetModuleState module=48 state=2
    [MCU2_1]     14.851818 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_1]     14.851858 s: SCICLIENT: Sciclient_pmSetModuleState module=305 state=2
    [MCU2_1]     14.852283 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_1]     14.852316 s: VHWA: DOF Init ... !!!
    [MCU2_1]     14.861675 s: VHWA: DOF Init ... Done !!!
    [MCU2_1]     14.861736 s: VHWA: SDE Init ... !!!
    [MCU2_1]     14.864432 s: VHWA: SDE Init ... Done !!!
    [MCU2_1]     14.864493 s: VHWA: DMPAC: Init ... Done !!!
    [MCU2_1]     14.864540 s:  VX_ZONE_INIT:Enabled
    [MCU2_1]     14.864570 s:  VX_ZONE_ERROR:Enabled
    [MCU2_1]     14.864595 s:  VX_ZONE_WARNING:Enabled
    [MCU2_1]     14.865757 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DMPAC_SDE
    [MCU2_1]     14.865994 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DMPAC_DOF
    [MCU2_1]     14.866216 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target IPU1-1
    [MCU2_1]     14.866268 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [MCU2_1]     14.866305 s: APP: OpenVX Target kernel init ... !!!
    [MCU2_1]     14.866569 s: APP: OpenVX Target kernel init ... Done !!!
    [MCU2_1]     14.866607 s: UDMA Copy: Init ... !!!
    [MCU2_1]     14.868856 s: UDMA Copy: Init ... Done !!!
    [MCU2_1]     14.868920 s: APP: Init ... Done !!!
    [MCU2_1]     14.868952 s: APP: Run ... !!!
    [MCU2_1]     14.868976 s: IPC: Starting echo test ...
    [MCU2_1]     14.871528 s: APP: Run ... Done !!!
    [MCU2_1]     14.872773 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU2_1]     14.872896 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[.]
    [MCU2_1]     14.872996 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[P]
    [MCU2_1]     14.912635 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[P]
    [C6x_1 ]      3.423511 s: CIO: Init ... Done !!!
    [C6x_1 ]      3.423535 s: ### CPU Frequency = 1350000000 Hz
    [C6x_1 ]      3.423546 s: APP: Init ... !!!
    [C6x_1 ]      3.423553 s: SCICLIENT: Init ... !!!
    [C6x_1 ]      3.423737 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C6x_1 ]      3.423748 s: SCICLIENT: DMSC FW revision 0x15
    [C6x_1 ]      3.423757 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C6x_1 ]      3.423767 s: SCICLIENT: Init ... Done !!!
    [C6x_1 ]      3.423776 s: UDMA: Init ... !!!
    [C6x_1 ]      3.424926 s: UDMA: Init ... Done !!!
    [C6x_1 ]      3.424949 s: MEM: Init ... !!!
    [C6x_1 ]      3.424962 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ dc000000 of size 16777216 bytes !!!
    [C6x_1 ]      3.424979 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!!
    [C6x_1 ]      3.424994 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ dd000000 of size 50331648 bytes !!!
    [C6x_1 ]      3.425010 s: MEM: Init ... Done !!!
    [C6x_1 ]      3.425018 s: IPC: Init ... !!!
    [C6x_1 ]      3.425038 s: IPC: 6 CPUs participating in IPC !!!
    [C6x_1 ]      3.425051 s: IPC: Waiting for HLOS to be ready ... !!!
    [C6x_1 ]     14.767294 s: IPC: HLOS is ready !!!
    [C6x_1 ]     14.770766 s: IPC: Init ... Done !!!
    [C6x_1 ]     14.770793 s: APP: Syncing with 5 CPUs ... !!!
    [C6x_1 ]     14.849486 s: APP: Syncing with 5 CPUs ... Done !!!
    [C6x_1 ]     14.849499 s: REMOTE_SERVICE: Init ... !!!
    [C6x_1 ]     14.850127 s: REMOTE_SERVICE: Init ... Done !!!
    [C6x_1 ]     14.850170 s:  VX_ZONE_INIT:Enabled
    [C6x_1 ]     14.850180 s:  VX_ZONE_ERROR:Enabled
    [C6x_1 ]     14.850190 s:  VX_ZONE_WARNING:Enabled
    [C6x_1 ]     14.850960 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C6x_1 ]     14.850975 s: APP: OpenVX Target kernel init ... !!!
    [C6x_1 ]     14.851288 s: APP: OpenVX Target kernel init ... Done !!!
    [C6x_1 ]     14.851309 s: UDMA Copy: Init ... !!!
    [C6x_1 ]     14.855443 s: UDMA Copy: Init ... Done !!!
    [C6x_1 ]     14.855464 s: APP: Init ... Done !!!
    [C6x_1 ]     14.856197 s: APP: Run ... !!!
    [C6x_1 ]     14.856206 s: IPC: Starting echo test ...
    [C6x_1 ]     14.857255 s: APP: Run ... Done !!!
    [C6x_1 ]     14.857565 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[x] C7X_1[P]
    [C6x_1 ]     14.857885 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_1 ]     14.872119 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_1 ]     14.912483 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_2 ]      3.515088 s: CIO: Init ... Done !!!
    [C6x_2 ]      3.515114 s: ### CPU Frequency = 1350000000 Hz
    [C6x_2 ]      3.515125 s: APP: Init ... !!!
    [C6x_2 ]      3.515133 s: SCICLIENT: Init ... !!!
    [C6x_2 ]      3.515316 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C6x_2 ]      3.515328 s: SCICLIENT: DMSC FW revision 0x15
    [C6x_2 ]      3.515337 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C6x_2 ]      3.515347 s: SCICLIENT: Init ... Done !!!
    [C6x_2 ]      3.515356 s: UDMA: Init ... !!!
    [C6x_2 ]      3.516507 s: UDMA: Init ... Done !!!
    [C6x_2 ]      3.516530 s: MEM: Init ... !!!
    [C6x_2 ]      3.516543 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ e0000000 of size 16777216 bytes !!!
    [C6x_2 ]      3.516560 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!!
    [C6x_2 ]      3.516576 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ e1000000 of size 50331648 bytes !!!
    [C6x_2 ]      3.516592 s: MEM: Init ... Done !!!
    [C6x_2 ]      3.516601 s: IPC: Init ... !!!
    [C6x_2 ]      3.516620 s: IPC: 6 CPUs participating in IPC !!!
    [C6x_2 ]      3.516634 s: IPC: Waiting for HLOS to be ready ... !!!
    [C6x_2 ]     14.792291 s: IPC: HLOS is ready !!!
    [C6x_2 ]     14.795657 s: IPC: Init ... Done !!!
    [C6x_2 ]     14.795684 s: APP: Syncing with 5 CPUs ... !!!
    [C6x_2 ]     14.849486 s: APP: Syncing with 5 CPUs ... Done !!!
    [C6x_2 ]     14.849500 s: REMOTE_SERVICE: Init ... !!!
    [C6x_2 ]     14.850137 s: REMOTE_SERVICE: Init ... Done !!!
    [C6x_2 ]     14.850179 s:  VX_ZONE_INIT:Enabled
    [C6x_2 ]     14.850190 s:  VX_ZONE_ERROR:Enabled
    [C6x_2 ]     14.850200 s:  VX_ZONE_WARNING:Enabled
    [C6x_2 ]     14.850969 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C6x_2 ]     14.850984 s: APP: OpenVX Target kernel init ... !!!
    [C6x_2 ]     14.851300 s: APP: OpenVX Target kernel init ... Done !!!
    [C6x_2 ]     14.851320 s: UDMA Copy: Init ... !!!
    [C6x_2 ]     14.855732 s: UDMA Copy: Init ... Done !!!
    [C6x_2 ]     14.855754 s: APP: Init ... Done !!!
    [C6x_2 ]     14.856439 s: APP: Run ... !!!
    [C6x_2 ]     14.856449 s: IPC: Starting echo test ...
    [C6x_2 ]     14.857574 s: APP: Run ... Done !!!
    [C6x_2 ]     14.857894 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[s] C7X_1[.]
    [C6x_2 ]     14.857927 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[s] C7X_1[P]
    [C6x_2 ]     14.872146 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[s] C7X_1[P]
    [C6x_2 ]     14.912524 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[s] C7X_1[P]
    [C7x_1 ]      4.082441 s: CIO: Init ... Done !!!
    [C7x_1 ]      4.082455 s: ### CPU Frequency = 1000000000 Hz
    [C7x_1 ]      4.082466 s: APP: Init ... !!!
    [C7x_1 ]      4.082473 s: SCICLIENT: Init ... !!!
    [C7x_1 ]      4.082644 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C7x_1 ]      4.082658 s: SCICLIENT: DMSC FW revision 0x15
    [C7x_1 ]      4.082668 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C7x_1 ]      4.082679 s: SCICLIENT: Init ... Done !!!
    [C7x_1 ]      4.082688 s: UDMA: Init ... !!!
    [C7x_1 ]      4.083544 s: UDMA: Init ... Done !!!
    [C7x_1 ]      4.083555 s: MEM: Init ... !!!
    [C7x_1 ]      4.083565 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ 100000000 of size 268435456 bytes !!!
    [C7x_1 ]      4.083586 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 70020000 of size 8159232 bytes !!!
    [C7x_1 ]      4.083603 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 64800000 of size 458752 bytes !!!
    [C7x_1 ]      4.083620 s: MEM: Created heap (L1_MEM, id=3, flags=0x00000001) @ 64e00000 of size 16384 bytes !!!
    [C7x_1 ]      4.083637 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ e4000000 of size 402653184 bytes !!!
    [C7x_1 ]      4.083655 s: MEM: Init ... Done !!!
    [C7x_1 ]      4.083663 s: IPC: Init ... !!!
    [C7x_1 ]      4.083676 s: IPC: 6 CPUs participating in IPC !!!
    [C7x_1 ]      4.083691 s: IPC: Waiting for HLOS to be ready ... !!!
    [C7x_1 ]     14.801513 s: IPC: HLOS is ready !!!
    [C7x_1 ]     14.803289 s: IPC: Init ... Done !!!
    [C7x_1 ]     14.803304 s: APP: Syncing with 5 CPUs ... !!!
    [C7x_1 ]     14.849487 s: APP: Syncing with 5 CPUs ... Done !!!
    [C7x_1 ]     14.849502 s: REMOTE_SERVICE: Init ... !!!
    [C7x_1 ]     14.849652 s: REMOTE_SERVICE: Init ... Done !!!
    [C7x_1 ]     14.849673 s:  VX_ZONE_INIT:Enabled
    [C7x_1 ]     14.849684 s:  VX_ZONE_ERROR:Enabled
    [C7x_1 ]     14.849693 s:  VX_ZONE_WARNING:Enabled
    [C7x_1 ]     14.849874 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1
    [C7x_1 ]     14.849965 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_2
    [C7x_1 ]     14.850055 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_3
    [C7x_1 ]     14.850122 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_4
    [C7x_1 ]     14.850187 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_5
    [C7x_1 ]     14.850305 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_6
    [C7x_1 ]     14.850382 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_7
    [C7x_1 ]     14.850445 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_8
    [C7x_1 ]     14.850467 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C7x_1 ]     14.850480 s: APP: OpenVX Target kernel init ... !!!
    [C7x_1 ]     14.850612 s: APP: OpenVX Target kernel init ... Done !!!
    [C7x_1 ]     14.850627 s: APP: Init ... Done !!!
    [C7x_1 ]     14.850636 s: APP: Run ... !!!
    [C7x_1 ]     14.850644 s: IPC: Starting echo test ...
    [C7x_1 ]     14.850799 s: APP: Run ... Done !!!
    [C7x_1 ]     14.857568 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[x] C7X_1[s]
    [C7x_1 ]     14.857888 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[P] C7X_1[s]
    [C7x_1 ]     14.872172 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]
    [C7x_1 ]     14.912557 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]
    
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps# ./run_app_single_cam.sh
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
        75.530779 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
        75.536989 s:  VX_ZONE_INIT:Enabled
        75.537000 s:  VX_ZONE_ERROR:Enabled
        75.537013 s:  VX_ZONE_WARNING:Enabled
        75.539353 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
        75.539525 s:  VX_ZONE_INIT:[tivxHostInitLocal:86] Initialization Done for HOST !!!
    sensor_selection = [0]
    ldc_enable = [0]
    num_frames_to_run = [1000000000]
    is_interactive = [1]
    IttCtrl_registerHandler: command echo registered at location 0
    IttCtrl_registerHandler: command iss_read_2a_params registered at location 1
    IttCtrl_registerHandler: command iss_write_2a_params registered at location 2
    IttCtrl_registerHandler: command iss_raw_save registered at location 3
    IttCtrl_registerHandler: command iss_yuv_save registered at location 4
    IttCtrl_registerHandler: command iss_read_sensor_reg registered at location 5
    IttCtrl_registerHandler: command iss_write_sensor_reg registered at location 6
    IttCtrl_registerHandler: command dev_ctrl registered at location 7
    IttCtrl_registerHandler: command iss_send_dcc_file registered at location 8
     NETWORK: Opened at IP Addr = 0.0.0.0, socket port=5000!!!
        75.552507 s: ISS: Enumerating sensors ... !!!
        75.553148 s: ISS: Enumerating sensors ... found 0 : MAX96705_1MP_UYVY
        75.553157 s: ISS: Enumerating sensors ... found 1 : MAX96715_1MP_UYVY
        75.553163 s: ISS: Enumerating sensors ... found 2 : MAX96717_1MP_UYVY
        75.553169 s: ISS: Enumerating sensors ... found 3 : MAX9295A_2MP_UYVY
        75.553174 s: ISS: Enumerating sensors ... found 4 : MAX9295A_2MP_APA_AR0231_UYVY
        75.553180 s: ISS: Enumerating sensors ... found 5 : ECARX_8MP_UYVY
        75.553186 s: ISS: Enumerating sensors ... found 6 : ECARX_DMS_8MP
    Select camera port index 0-7 : [MCU2_0]     75.552713 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CREATE
    [MCU2_0]     75.552782 s: [iss_sensors] IssSensor_DeserializerInit Start
    [MCU2_0]     75.552843 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]     75.552954 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    
    Invalid entry
    . Please choose between 0 and 7
    Select camera port index 0-7 : 0
    7 registered sensor drivers
    a : MAX96705_1MP_UYVY
    b : MAX96715_1MP_UYVY
    c : MAX96717_1MP_UYVY
    d : MAX9295A_2MP_UYVY
    e : MAX9295A_2MP_APA_AR0231_UYVY
    f : ECARX_8MP_UYVY
    g : ECARX_DMS_8MP
    Select a sensor above or press '0' to autodetect the sensor : Invalid selection
    . Try again
    7 registered sensor drivers
    a : MAX96705_1MP_UYVY
    b : MAX96715_1MP_UYVY
    c : MAX96717_1MP_UYVY
    d : MAX9295A_2MP_UYVY
    e : MAX9295A_2MP_APA_AR0231_UYVY
    f : ECARX_8MP_UYVY
    g : ECARX_DMS_8MP
    Select a sensor above or press '0' to autodetect the sensor : f
    Sensor selected : ECARX_8MP_UYVY
    LDC Selection Yes(1)/No(0) : LDC Selection Yes(1)/No(0) : 1
    Querying ECARX_8MP_UYVY
       110.936749 s: ISS: Querying sensor [ECARX_8MP_UYVY] ... !!!
       110.937202 s: ISS: Querying sensor [ECARX_8MP_UYVY] ... Done !!!
    YUV Input selected. VISS and AEWB nodes will be bypassed.
       110.937220 s: ISS: Initializing sensor [ECARX_8MP_UYVY], doing IM_SENSOR_CMD_PWRON ... !!!
    [MCU2_0]    110.936951 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_QUERY
    [MCU2_0]    110.937021 s: Received Query for ECARX_8MP_UYVY
    [MCU2_0]    110.937408 s: [iss_sensors] in func ecarx_cfgScript
    [MCU2_0]    110.937469 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    110.937706 s: read 16 bits reg success: addr 0x29, reg 0x0, val 0x52
    [MCU2_0]    110.937774 s: [iss_sensor] [read 0x00] i2c2 reading addr 0x52 register 0x00 value 0x52
    [MCU2_0]    110.937840 s: MAX96712 config start TIVX_RAW_IMAGE_16_BIT 1052672 TIVX_RAW_IMAGE_8_BIT 1052673
    [MCU2_0]    110.937909 s: ecarx_cfgScript, line 170, count 88
    [MCU2_0]    110.938087 s: write 16 bits reg success: addr 0x29, reg 0x13, val 0x75
    [MCU2_0]    111.098024 s: write 16 bits reg success: addr 0x29, reg 0x1, val 0xc9
    [MCU2_0]    111.258052 s: write 16 bits reg success: addr 0x29, reg 0x40b, val 0x0
    [MCU2_0]    111.258272 s: write 16 bits reg success: addr 0x29, reg 0x6, val 0x0
    [MCU2_0]    111.258445 s: write 16 bits reg success: addr 0x29, reg 0x10, val 0x22
    [MCU2_0]    111.258616 s: write 16 bits reg success: addr 0x29, reg 0x11, val 0x22
    [MCU2_0]    111.258788 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    111.258957 s: write 16 bits reg success: addr 0x29, reg 0xf4, val 0xf
    [MCU2_0]    111.259131 s: write 16 bits reg success: addr 0x29, reg 0xf0, val 0x62
    [MCU2_0]    111.259301 s: write 16 bits reg success: addr 0x29, reg 0xf1, val 0xea
    [MCU2_0]    111.259472 s: write 16 bits reg success: addr 0x29, reg 0x94a, val 0xc0
    [MCU2_0]    111.259642 s: write 16 bits reg success: addr 0x29, reg 0x98a, val 0xc0
    [MCU2_0]    111.259811 s: write 16 bits reg success: addr 0x29, reg 0x8a3, val 0xe4
    [MCU2_0]    111.259984 s: write 16 bits reg success: addr 0x29, reg 0x8a4, val 0xe4
    [MCU2_0]    111.260155 s: write 16 bits reg success: addr 0x29, reg 0x943, val 0x91
    [MCU2_0]    111.260328 s: write 16 bits reg success: addr 0x29, reg 0x983, val 0x91
    [MCU2_0]    111.260497 s: write 16 bits reg success: addr 0x29, reg 0x415, val 0x39
    [MCU2_0]    111.260668 s: write 16 bits reg success: addr 0x29, reg 0x418, val 0x39
    [MCU2_0]    111.260835 s: write 16 bits reg success: addr 0x29, reg 0x41b, val 0x39
    [MCU2_0]    111.261014 s: write 16 bits reg success: addr 0x29, reg 0x41e, val 0x39
    [MCU2_0]    111.261188 s: write 16 bits reg success: addr 0x29, reg 0x8a9, val 0xc8
    [MCU2_0]    111.261364 s: write 16 bits reg success: addr 0x29, reg 0x90b, val 0x7
    [MCU2_0]    111.261532 s: write 16 bits reg success: addr 0x29, reg 0x92d, val 0x15
    [MCU2_0]    111.261701 s: write 16 bits reg success: addr 0x29, reg 0x90d, val 0x1e
    [MCU2_0]    111.261874 s: write 16 bits reg success: addr 0x29, reg 0x90e, val 0x1e
    [MCU2_0]    111.262049 s: write 16 bits reg success: addr 0x29, reg 0x90f, val 0x0
    [MCU2_0]    111.262220 s: write 16 bits reg success: addr 0x29, reg 0x910, val 0x0
    [MCU2_0]    111.262389 s: write 16 bits reg success: addr 0x29, reg 0x911, val 0x1
    [MCU2_0]    111.262559 s: write 16 bits reg success: addr 0x29, reg 0x912, val 0x1
    [MCU2_0]    111.262728 s: write 16 bits reg success: addr 0x29, reg 0x94b, val 0x7
    [MCU2_0]    111.262902 s: write 16 bits reg success: addr 0x29, reg 0x96d, val 0x15
    [MCU2_0]    111.263074 s: write 16 bits reg success: addr 0x29, reg 0x94d, val 0x1e
    [MCU2_0]    111.263244 s: write 16 bits reg success: addr 0x29, reg 0x94e, val 0x5e
    [MCU2_0]    111.263430 s: write 16 bits reg success: addr 0x29, reg 0x94f, val 0x0
    [MCU2_0]    111.263607 s: write 16 bits reg success: addr 0x29, reg 0x950, val 0x40
    [MCU2_0]    111.263783 s: write 16 bits reg success: addr 0x29, reg 0x951, val 0x1
    [MCU2_0]    111.263956 s: write 16 bits reg success: addr 0x29, reg 0x952, val 0x41
    [MCU2_0]    111.264131 s: write 16 bits reg success: addr 0x29, reg 0x98b, val 0x7
    [MCU2_0]    111.264302 s: write 16 bits reg success: addr 0x29, reg 0x9ad, val 0x2a
    [MCU2_0]    111.264472 s: write 16 bits reg success: addr 0x29, reg 0x98d, val 0x1e
    [MCU2_0]    111.264641 s: write 16 bits reg success: addr 0x29, reg 0x98e, val 0x9e
    [MCU2_0]    111.264811 s: write 16 bits reg success: addr 0x29, reg 0x98f, val 0x0
    [MCU2_0]    111.264980 s: write 16 bits reg success: addr 0x29, reg 0x990, val 0x80
    [MCU2_0]    111.265152 s: write 16 bits reg success: addr 0x29, reg 0x991, val 0x1
    [MCU2_0]    111.265321 s: write 16 bits reg success: addr 0x29, reg 0x992, val 0x81
    [MCU2_0]    111.265490 s: write 16 bits reg success: addr 0x29, reg 0x9cb, val 0x7
    [MCU2_0]    111.265661 s: write 16 bits reg success: addr 0x29, reg 0x9ed, val 0x2a
    [MCU2_0]    111.265830 s: write 16 bits reg success: addr 0x29, reg 0x9cd, val 0x1e
    [MCU2_0]    111.266011 s: write 16 bits reg success: addr 0x29, reg 0x9ce, val 0xde
    [MCU2_0]    111.266184 s: write 16 bits reg success: addr 0x29, reg 0x9cf, val 0x0
    [MCU2_0]    111.266356 s: write 16 bits reg success: addr 0x29, reg 0x9d0, val 0xc0
    [MCU2_0]    111.266528 s: write 16 bits reg success: addr 0x29, reg 0x9d1, val 0x1
    [MCU2_0]    111.266698 s: write 16 bits reg success: addr 0x29, reg 0x9d2, val 0xc1
    [MCU2_0]    111.266872 s: write 16 bits reg success: addr 0x29, reg 0x4a2, val 0x0
    [MCU2_0]    111.267045 s: write 16 bits reg success: addr 0x29, reg 0x4aa, val 0x0
    [MCU2_0]    111.267215 s: write 16 bits reg success: addr 0x29, reg 0x4ab, val 0x0
    [MCU2_0]    111.267384 s: write 16 bits reg success: addr 0x29, reg 0x4a8, val 0x0
    [MCU2_0]    111.267554 s: write 16 bits reg success: addr 0x29, reg 0x4a9, val 0x0
    [MCU2_0]    111.267722 s: write 16 bits reg success: addr 0x29, reg 0x4a7, val 0xc
    [MCU2_0]    111.267891 s: write 16 bits reg success: addr 0x29, reg 0x4a6, val 0xbf
    [MCU2_0]    111.268063 s: write 16 bits reg success: addr 0x29, reg 0x4a5, val 0x35
    [MCU2_0]    111.268232 s: write 16 bits reg success: addr 0x29, reg 0x4af, val 0xc0
    [MCU2_0]    111.268401 s: write 16 bits reg success: addr 0x29, reg 0x4b1, val 0x40
    [MCU2_0]    111.268570 s: write 16 bits reg success: addr 0x29, reg 0x4a0, val 0x4
    [MCU2_0]    111.268737 s: write 16 bits reg success: addr 0x29, reg 0x6, val 0xff
    [MCU2_0]    111.428046 s: write 16 bits reg success: addr 0x40, reg 0x2be, val 0x10
    [MCU2_0]    111.428265 s: write 16 bits reg success: addr 0x40, reg 0x236, val 0x8
    [MCU2_0]    111.428475 s: write 16 bits reg success: addr 0x40, reg 0x237, val 0x9
    [MCU2_0]    111.428682 s: write 16 bits reg success: addr 0x40, reg 0x238, val 0xa
    [MCU2_0]    111.428896 s: write 16 bits reg success: addr 0x40, reg 0x239, val 0xb
    [MCU2_0]    111.429109 s: write 16 bits reg success: addr 0x40, reg 0x23a, val 0xc
    [MCU2_0]    111.429318 s: write 16 bits reg success: addr 0x40, reg 0x23b, val 0xd
    [MCU2_0]    111.429526 s: write 16 bits reg success: addr 0x40, reg 0x23c, val 0xe
    [MCU2_0]    111.429732 s: write 16 bits reg success: addr 0x40, reg 0x23d, val 0xf
    [MCU2_0]    111.429939 s: write 16 bits reg success: addr 0x40, reg 0x23e, val 0x0
    [MCU2_0]    111.430152 s: write 16 bits reg success: addr 0x40, reg 0x23f, val 0x1
    [MCU2_0]    111.430361 s: write 16 bits reg success: addr 0x40, reg 0x240, val 0x2
    [MCU2_0]    111.430570 s: write 16 bits reg success: addr 0x40, reg 0x241, val 0x3
    [MCU2_0]    111.430776 s: write 16 bits reg success: addr 0x40, reg 0x242, val 0x4
    [MCU2_0]    111.430984 s: write 16 bits reg success: addr 0x40, reg 0x243, val 0x5
    [MCU2_0]    111.431195 s: write 16 bits reg success: addr 0x40, reg 0x244, val 0x6
    [MCU2_0]    111.431401 s: write 16 bits reg success: addr 0x40, reg 0x245, val 0x7
    [MCU2_0]    111.431610 s: write 16 bits reg success: addr 0x40, reg 0x318, val 0x5e
    [MCU2_0]    111.431817 s: write 16 bits reg success: addr 0x40, reg 0x2d3, val 0x0
    [MCU2_0]    111.601058 s: write 16 bits reg success: addr 0x40, reg 0x2d3, val 0x10
    [MCU2_0]    111.601280 s: write 16 bits reg success: addr 0x29, reg 0x8a2, val 0x0
    [MCU2_0]    111.601496 s: write 16 bits reg success: addr 0x29, reg 0x8a2, val 0xf0
    [MCU2_0]    111.601708 s: write 16 bits reg success: addr 0x29, reg 0x18, val 0xf
    [MCU2_0]    111.960880 s: [iss_sensors] in func ecarx_read_cfgScript
    [MCU2_0]    111.960939 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    111.960975 s:
    [MCU2_0]    111.960994 s:
    [MCU2_0]    111.961013 s: [iss_sensors] MAX96712 read status regs
    [MCU2_0]    111.961043 s:
    [MCU2_0]    111.961285 s: read 16 bits reg success: addr 0x29, reg 0x1a, val 0xda
    [MCU2_0]    111.961534 s: read 16 bits reg success: addr 0x29, reg 0xa, val 0x0
    [MCU2_0]    111.961780 s: read 16 bits reg success: addr 0x29, reg 0xb, val 0x0
    [MCU2_0]    111.962026 s: read 16 bits reg success: addr 0x29, reg 0xc, val 0x0
    [MCU2_0]    111.962274 s: read 16 bits reg success: addr 0x29, reg 0x10, val 0x22
    [MCU2_0]    111.962522 s: read 16 bits reg success: addr 0x29, reg 0x6, val 0xff
    [MCU2_0]    111.962766 s: read 16 bits reg success: addr 0x29, reg 0x5, val 0xc0
    [MCU2_0]    111.963012 s: read 16 bits reg success: addr 0x29, reg 0x1dc, val 0x81
    [MCU2_0]    111.963263 s: read 16 bits reg success: addr 0x29, reg 0x1fc, val 0x80
    [MCU2_0]    111.963512 s: read 16 bits reg success: addr 0x29, reg 0x21c, val 0x80
    [MCU2_0]    111.963757 s: read 16 bits reg success: addr 0x29, reg 0x23c, val 0x80
    [MCU2_0]    111.964001 s: read 16 bits reg success: addr 0x29, reg 0x11f0, val 0x1
    [MCU2_0]    111.964251 s: read 16 bits reg success: addr 0x29, reg 0x11f2, val 0x1
    [MCU2_0]    111.964499 s: read 16 bits reg success: addr 0x29, reg 0x40a, val 0x0
    [MCU2_0]    111.964742 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
    [MCU2_0]    112.064093 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
    [MCU2_0]    112.164088 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
       112.264372 s: ISS: Initializing sensor [ECARX_8MP_UYVY], doing IM_SENSOR_CMD_CONFIG ... !!!
       112.264813 s: ISS: Initializing sensor [ECARX_8MP_UYVY] ... Done !!!
    Enabling LDC
    Creating LDC
    Invalid DCC size for LDC. Disabling DCC
    [MCU2_0]    112.264087 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
    [MCU2_0]    112.264129 s:
    [MCU2_0]    112.264150 s:
    [MCU2_0]    112.264168 s: [iss_sensors] MAX96712 read status regs end
    [MCU2_0]    112.264200 s:
    [MCU2_0]    112.264596 s: [iss_sensors] in func disableMAX96712Broadcast none
    [MCU2_0]    112.264655 s: [iss_sensors] ecarx_8MP_Config
    Scaler is enabled
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice:
    Unsupported command
    
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice:    112.288592 s: ISS: Starting sensor [ECARX_8MP_UYVY] ... !!!
       112.289919 s: ISS: Starting sensor [ECARX_8MP_UYVY] ... !!!
    get_dcc_dir_size : Could not open directory or directory is empty /opt/vision_apps/dcc/ECARX_8MP_UYVY/wdr
    [MCU2_0]    112.288826 s: [iss_sensors] in func disableMAX96712Broadcast none
    [MCU2_0]    112.288929 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    112.289203 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    112.289424 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x84
    [MCU2_0]    112.289673 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x84
    [MCU2_0]    112.289723 s: [iss_sensors] in func ecarx_8MP_StreamOn end
    [MCU2_0]    112.289758 s:
    [MCU2_0]    112.290325 s:  VX_ZONE_WARNING:[tivxCaptureSetTimeout:774]  CAPTURE: WARNING: Error frame not provided using tivxCaptureRegisterErrorFrame, defaulting to waiting forever !!!
    
    
    Unsupported command
    
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice: x
    
       116.825895 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... !!!
       116.827170 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... Done !!!
    [MCU2_0]    116.826156 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    116.826451 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x84
    [MCU2_0]    116.826673 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    116.826930 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    116.826982 s: [iss_sensors] in func ecarx_8MP_StreamOff end
    [MCU2_0]    116.827016 s:
       116.846239 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... !!!
       116.847457 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... Done !!!
       116.847475 s:  VX_ZONE_ERROR:[ownReleaseReferenceInt:307] Invalid reference
    [MCU2_0]    116.846471 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    116.846746 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    116.846966 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    116.847222 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    116.847272 s: [iss_sensors] in func ecarx_8MP_StreamOff end
    [MCU2_0]    116.847305 s:
    [MCU2_0]    116.848073 s: ==========================================================
    [MCU2_0]    116.848158 s:  Capture Status: Instance|0
    [MCU2_0]    116.848193 s: ==========================================================
    [MCU2_0]    116.848242 s:  overflowCount: 0
    [MCU2_0]    116.848278 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    116.848316 s:  frontFIFOOvflCount: 0
    [MCU2_0]    116.848349 s:  crcCount: 0
    [MCU2_0]    116.848381 s:  eccCount: 0
    [MCU2_0]    116.848414 s:  correctedEccCount: 0
    [MCU2_0]    116.848449 s:  dataIdErrorCount: 0
    [MCU2_0]    116.848482 s:  invalidAccessCount: 0
    [MCU2_0]    116.848516 s:  invalidSpCount: 0
    [MCU2_0]    116.848554 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    116.848584 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Count |
    [MCU2_0]    116.848659 s:            0 |               137 |                  137 |                0 |                 0 |
    [MCU2_0]    116.849301 s: ==========================================================
    [MCU2_0]    116.849390 s:  Capture Status: Instance|1
    [MCU2_0]    116.849425 s: ==========================================================
    [MCU2_0]    116.849470 s:  overflowCount: 0
    [MCU2_0]    116.849507 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    116.849543 s:  frontFIFOOvflCount: 0
    [MCU2_0]    116.849576 s:  crcCount: 0
    [MCU2_0]    116.849608 s:  eccCount: 0
    [MCU2_0]    116.849639 s:  correctedEccCount: 0
    [MCU2_0]    116.849673 s:  dataIdErrorCount: 0
    [MCU2_0]    116.849707 s:  invalidAccessCount: 0
    [MCU2_0]    116.849741 s:  invalidSpCount: 0
    [MCU2_0]    116.849779 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    116.849810 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Count |
    Error : app_delete_graph returned 0xfffffff4
       116.862198 s: ISS: De-initializing sensor [ECARX_8MP_UYVY] ... !!!
       116.862501 s: ISS: De-initializing sensor [ECARX_8MP_UYVY] ... Done !!!
       116.862514 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:100] De-Initialization Done for HOST !!!
       116.866870 s:  VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    MEM: Alloc's: 19 alloc's of 91778976 bytes
    MEM: Free's : 19 free's  of 91778976 bytes
    MEM: Open's : 0 allocs  of 0 bytes
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    root@ti-j72xx:/opt/vision_apps#
    

    Regards,

    Murphy

  • Hi Murphy,

    Is your expected lane speed 900Kbps? I dont think this is even supported. The lower lane speed supported is 80Mbps. If you want to 900Mbps, can you please set the variable to 900000, the value needs to be in Kbps, as name of this variable suggests. 

    Regards,

    Brijesh

  • Hi Brejish,

    1920 * 1080 * 60 * 3  * 8 * 1.2 / 4 = 895.795 Mbps/lane 

    As formula calculation needs minimum 895.795Mbps per lane.

    please set the variable to 900000

    1. Applied patch code shows that maximum soupport 2.5Gbps per lane. So dsi_params.laneSpeedInKbps = 900u is fine. no need to set to 900000, Right ?

    2. How to determine whether the SoC does output camera data to Serializer via DSI interface for display panel ?

    Regards,

    Murphy

  • Hi Murphy,

    1. Applied patch code shows that maximum soupport 2.5Gbps per lane. So dsi_params.laneSpeedInKbps = 900u is fine. no need to set to 900000, Right ?

    But this is multiplied by 1000 before comparison. So please use 900 * 1000. 

    2. How to determine whether the SoC does output camera data to Serializer via DSI interface for display panel ?

    Any way to check it in serializer? Typically serializer can provide information as to if it is receiving/detecting frames correctly. 

    Regards,

    Brijesh

  • Hi Brijesh,

    But this is multiplied by 1000 before comparison. So please use 900 * 1000. 

    Still nothing happened.

    Any way to check it in serializer? Typically serializer can provide information as to if it is receiving/detecting frames correctly. 

         There is one way to check on Serializer, We used proc_creat to creat one node on /proc/test_read_node. But the common operations .proc_read failed, Sure of that the serial port communicating with the serializer is occupied by something else, Due to the register(s) related to the initialization serializer can be read/write normally by reading and writing through the serial port during boot-up stage.  Once vision-app is up, echo 1 > /proc/test_read_node, it will not work properly.

    boot-up stage log:
    Read/Write succ
    [    5.230026] max96789_init_cmd starting ...
    [    5.232855] write:chipid=0x90 addr=0x1ce val=0x4f
    [    5.236363] gmsl2_reg_write FHEAD=0x79,chipid=0x90,addr=0x1ce,len=462,data=0x1
    [    5.242359] uart_bus_write 6 bytes:
    [    5.244802] [ 79 90 01 CE 01 4F ]
    [    5.247537] uart_bus_read 1 bytes:
    [    5.249744] [ C3 ]
    [    5.250447] FSYNC
    [    5.256072] init cmd ok
    [    5.257316] ===================================================================
    [    5.263580] ##### 96789 read SER reg setting start
    [    5.267276] uart_bus_write 5 bytes:
    [    5.269457] [ 79 81 01 02 01 ]
    [    5.271866] uart_bus_read 2 bytes:
    [    5.273963] [ C3 0A ]
    [    5.274928] FSYNC
    [    5.275548] ##### 96789 read SER reg setting done
    
    Read failed
    root@ti-j72xx:~#
    root@ti-j72xx:~# echo 1 > /proc/MXtest
    check DSI SER Reg ...
    uart_bus_write 5 bytes:
    [ 79 81 01 02 01 ]
    uart_bus_write 5 bytes:
    [ 79 81 01 02 01 ]
    uart_bus_write 5 bytes:
    [ 79 81 01 02 01 ]
    uart_bus_write 5 bytes:
    [ 79 81 01 02 01 ]
    gmsl2_reg_read: Ret -EIO
    root@ti-j72xx:~#
    root@ti-j72xx:~#
    

         please help me to solve this occupation problem.

    Regards,

    Murphy

  • By the way, used serial port /dev/ttyS0

    ([ 3.781874] 2820000.serial: ttyS0 at MMIO 0x2820000 (irq = 31, base_baud = 3000000) is a 8250)

  • Hi Brijesh,

    There is one way to check on Serializer, We used proc_creat to creat one node on /proc/test_read_node. But the common operations .proc_read failed, Sure of that the serial port communicating with the serializer is occupied by something else, Due to the register(s) related to the initialization serializer can be read/write normally by reading and writing through the serial port during boot-up stage.  Once vision-app is up, echo 1 > /proc/test_read_node, it will not work properly.

    please ignore this issue. Solved!

    Any way to check it in serializer? Typically serializer can provide information as to if it is receiving/detecting frames correctly. 

    By checking on the relevant register(s) on serializer shows that there is NO video stream was passed to serializer .

    Let me summarize current status.

    1. sdk version: PSDKRA8.1

    2. HW : TDA4(2*1920x1080) -> Serializer -> 1920x1080 LCD(<Dserializer>Two LCD are connected for using splitter mode)

    3. My goal : 2*1920x1080 DSI display.

    4. 1st step : 1920x1080 display

    - This is failed. Verified this by ./run_app_single_cam.sh
    Modified file(s):

    please confirm !!!

    8357.DSI.diff
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
    index cafefd617..ad8bdd6e3 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
    @@ -604,6 +604,12 @@ typedef struct
         /**< DSI Instance ID, currently note used */
         uint32_t numOfLanes;
         /**< Number of outputs lanes for DSI output, max 4 */
    +    uint32_t laneSpeedInKbps;
    +    /**< Exact DPHY lane speed from the selected speed band in Megabits per sec.
    +     *   This parameter is set to default value during init time.
    +     *   If updated in the application after init, newly set value will be used
    +     *   for DPHY clock configurations.
    +     */
     } Dss_DctrlDsiParams;
     
     /* ========================================================================== */
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    index 162ee9420..1289fed74 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    @@ -69,6 +69,7 @@
     #define DPHYTX0_CORE_BASE                   (CSL_DPHY_TX0_BASE)
     /* Base Address of DSI Wrapper */
     #define DSITX2_WRAP_REGS_BASE               (CSL_DSS_DSI0_DSI_WRAP_MMR_VBUSP_CFG_DSI_WRAP_BASE)
    +#define DSITX_DPHY_REF_CLK_KHZ_DEF            (19200U)
     
     
     /* ========================================================================== */
    @@ -100,6 +101,22 @@ typedef struct
     
     } Dss_DctrlDSIDrvObj;
     
    +/**
    + *  struct Dsitx_DphyRangeData
    + *
    + *  \brief This structure holds information about DSI Tx Range. Typically used
    + *         for DPHY programming.
    + *
    + */
    +typedef struct
    +{
    +    uint32_t rangeMin;
    +    /**< Lower boundary of the range */
    +    uint32_t rangeMax;
    +    /**< Hogher boundary of the range */
    +    uint32_t progVal;
    +    /**< Value to be programmed for given range */
    +} Dsitx_DphyRangeData;
     
     
     /* ========================================================================== */
    @@ -128,6 +145,185 @@ extern "C" {
     
     static Dss_DctrlDSIDrvObj gDssDctrlDsiDrvObj;
     
    +/* This contains information of the PLL input divider value for DPHY
    +   rangeMin and rangeMax is in KHz */
    +
    +static Dsitx_DphyRangeData gDsiTxIpDivInfo[] =
    +{
    +    {
    +        .rangeMin = 9600U,
    +        .rangeMax = 19200U,
    +        .progVal  = 1U,
    +    },
    +    {
    +        .rangeMin = 19200U,
    +        .rangeMax = 38400U,
    +        .progVal  = 2U,
    +    },
    +    {
    +        .rangeMin = 38400U,
    +        .rangeMax = 76800U,
    +        .progVal  = 4U,
    +    },
    +    {
    +        .rangeMin = 76800U,
    +        .rangeMax = 150000U,
    +        .progVal  = 8U,
    +    },
    +};
    +
    +/* This contains information of the PLL output divider value for DPHY
    +   rangeMin and rangeMax is in Mbps */
    +static Dsitx_DphyRangeData gDsiTxOpDivInfo[] =
    +{
    +    {
    +        .rangeMin = 1250U,
    +        .rangeMax = 2500U,
    +        .progVal  = 1U,
    +    },
    +    {
    +        .rangeMin = 630U,
    +        .rangeMax = 1240U,
    +        .progVal  = 2U,
    +    },
    +    {
    +        .rangeMin = 320U,
    +        .rangeMax = 620U,
    +        .progVal  = 4U,
    +    },
    +    {
    +        .rangeMin = 160U,
    +        .rangeMax = 310U,
    +        .progVal  = 8U,
    +    },
    +    {
    +        .rangeMin = 80U,
    +        .rangeMax = 150U,
    +        .progVal  = 16U,
    +    },
    +};
    +
    +/* This contains information of the PLL output divider value for DPHY
    +   rangeMin and rangeMax is in Mbps */
    +static Dsitx_DphyRangeData gDsiTxLaneSpeedBandInfo[] =
    +{
    +    {
    +        .rangeMin = 80U,
    +        .rangeMax = 100U,
    +        .progVal  = 0x0,
    +    },
    +    {
    +        .rangeMin = 100U,
    +        .rangeMax = 120U,
    +        .progVal  = 0x1,
    +    },
    +    {
    +        .rangeMin = 120U,
    +        .rangeMax = 160U,
    +        .progVal  = 0x2,
    +    },
    +    {
    +        .rangeMin = 160U,
    +        .rangeMax = 200U,
    +        .progVal  = 0x3,
    +    },
    +    {
    +        .rangeMin = 200U,
    +        .rangeMax = 240U,
    +        .progVal  = 0x4,
    +    },
    +    {
    +        .rangeMin = 240U,
    +        .rangeMax = 320U,
    +        .progVal  = 0x5,
    +    },
    +    {
    +        .rangeMin = 320U,
    +        .rangeMax = 390U,
    +        .progVal  = 0x6,
    +    },
    +    {
    +        .rangeMin = 390U,
    +        .rangeMax = 450U,
    +        .progVal  = 0x7,
    +    },
    +    {
    +        .rangeMin = 450U,
    +        .rangeMax = 510U,
    +        .progVal  = 0x8,
    +    },
    +    {
    +        .rangeMin = 510U,
    +        .rangeMax = 560U,
    +        .progVal  = 0x9,
    +    },
    +    {
    +        .rangeMin = 560U,
    +        .rangeMax = 640U,
    +        .progVal  = 0xA,
    +    },
    +    {
    +        .rangeMin = 640U,
    +        .rangeMax = 690U,
    +        .progVal  = 0xB,
    +    },
    +    {
    +        .rangeMin = 690U,
    +        .rangeMax = 770U,
    +        .progVal  = 0xC,
    +    },
    +    {
    +        .rangeMin = 770U,
    +        .rangeMax = 870U,
    +        .progVal  = 0xD,
    +    },
    +    {
    +        .rangeMin = 870U,
    +        .rangeMax = 950U,
    +        .progVal  = 0xE,
    +    },
    +    {
    +        .rangeMin = 950U,
    +        .rangeMax = 1000U,
    +        .progVal  = 0xF,
    +    },
    +    {
    +        .rangeMin = 1000U,
    +        .rangeMax = 1200U,
    +        .progVal  = 0x10,
    +    },
    +    {
    +        .rangeMin = 1200U,
    +        .rangeMax = 1400U,
    +        .progVal  = 0x11,
    +    },
    +    {
    +        .rangeMin = 1400U,
    +        .rangeMax = 1600U,
    +        .progVal  = 0x12,
    +    },
    +    {
    +        .rangeMin = 1600U,
    +        .rangeMax = 1800U,
    +        .progVal  = 0x13,
    +    },
    +    {
    +        .rangeMin = 1800U,
    +        .rangeMax = 2000U,
    +        .progVal  = 0x14,
    +    },
    +    {
    +        .rangeMin = 2000U,
    +        .rangeMax = 2200U,
    +        .progVal  = 0x15,
    +    },
    +    {
    +        .rangeMin = 2200U,
    +        .rangeMax = 2500U,
    +        .progVal  = 0x16,
    +    },
    +};
    +
     
     /* ========================================================================== */
     /*                  Internal/Private Function Declarations                    */
    @@ -156,6 +352,7 @@ static int32_t dssDctrlEnableDsiLink(Dss_DctrlDSIDrvObj *dsiObj);
     static int32_t dssDctrlEnableDsiDatapath(Dss_DctrlDSIDrvObj *dsiObj);
     static int32_t dssDctrlWaitForLaneReady(Dss_DctrlDSIDrvObj *dsiObj);
     
    +static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms);
     
     /* ========================================================================== */
     /*                          Function Definitions                              */
    @@ -181,10 +378,10 @@ void Dss_dctrlDrvInitDSI()
     
         dsiObj->dphyTxIpDiv = 0x2;
         dsiObj->dphyTxOpDiv = 0x2;
    -    dsiObj->dphyTxFbDiv = 0x173;
    +    dsiObj->dphyTxFbDiv = 0x178;//0x173;
         dsiObj->dphyTxRate = 0x1CE;
    -    dsiObj->cfgDsiTx.numOfLanes = 0x2u;
    -    dsiObj->privDsiTx.numOfLanes = 0x2u;
    +    dsiObj->cfgDsiTx.numOfLanes = 0x4u;//0x2u;
    +    dsiObj->privDsiTx.numOfLanes = 0x4u;//0x2u;
     }
     
     int32_t Dss_dctrlDrvSetDSIParams(Dss_DctrlDrvInfo *drvInfo,
    @@ -198,6 +395,8 @@ int32_t Dss_dctrlDrvSetDSIParams(Dss_DctrlDrvInfo *drvInfo,
         dsiObj->cfgDsiTx.numOfLanes = dsiPrms->numOfLanes;
         dsiObj->privDsiTx.numOfLanes = dsiPrms->numOfLanes;
     
    +	status = dssdctrlCalcDsiParams(dsiObj, dsiPrms);
    +
         /* Checks to see if the configuration (num of lanes) is valid */
         status = DSITX_Probe(&dsiObj->cfgDsiTx, &dsiObj->sysReqDsiTx);
         if (CDN_EOK == status)
    @@ -294,6 +493,105 @@ int32_t Dss_dctrlDrvEnableVideoDSI(Dss_DctrlDrvInfo *drvInfo,
     /*                  Internal/Private Function Definitions                     */
     /* ========================================================================== */
     
    +static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms)
    +{
    +    int32_t retVal = FVID2_SOK;
    +    uint32_t min, max;
    +    uint32_t idx = 0U;
    +    uint64_t tempResult, refClkKHz;
    +
    +    /* Get speed band for given lane speed */
    +    for (idx = 0U ;
    +         idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData));
    +         idx++)
    +    {
    +        min = gDsiTxLaneSpeedBandInfo[idx].rangeMin * 1000;
    +        max = gDsiTxLaneSpeedBandInfo[idx].rangeMax * 1000;
    +        if ((dsiPrms->laneSpeedInKbps >= min) &&
    +            (dsiPrms->laneSpeedInKbps <= max))
    +        {
    +            break;
    +        }
    +
    +    }
    +    if (idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData)))
    +    {
    +        dsiObj->dphyTxRate = (gDsiTxLaneSpeedBandInfo[idx].progVal) |
    +            (gDsiTxLaneSpeedBandInfo[idx].progVal << 5);
    +    }
    +    else
    +    {
    +        retVal = FVID2_EFAIL;
    +    }
    +
    +    if (retVal == FVID2_SOK)
    +    {
    +        /* TODO: Read the clock runtime through sciclient APIs */
    +        refClkKHz = DSITX_DPHY_REF_CLK_KHZ_DEF;
    +        /* Calculate DPHY ipdiv - PLL input divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            for (idx = 0U ;
    +                 idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData));
    +                 idx++)
    +            {
    +                if ((refClkKHz >= gDsiTxIpDivInfo[idx].rangeMin) &&
    +                    (refClkKHz < gDsiTxIpDivInfo[idx].rangeMax))
    +                {
    +                    break;
    +                }
    +            }
    +            if (idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData)))
    +            {
    +                dsiObj->dphyTxIpDiv = gDsiTxIpDivInfo[idx].progVal;
    +            }
    +            else
    +            {
    +                retVal = FVID2_EFAIL;
    +            }
    +        }
    +
    +        /* Calculate DPHY opdiv - PLL output divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            for (idx = 0U ;
    +                 idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData));
    +                 idx++)
    +            {
    +                min = gDsiTxOpDivInfo[idx].rangeMin * 1000;
    +                max = gDsiTxOpDivInfo[idx].rangeMax * 1000;
    +                if ((dsiPrms->laneSpeedInKbps >= min) &&
    +                    (dsiPrms->laneSpeedInKbps <= max))
    +                {
    +                    break;
    +                }
    +            }
    +            if (idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData)))
    +            {
    +                dsiObj->dphyTxOpDiv = gDsiTxOpDivInfo[idx].progVal;
    +            }
    +            else
    +            {
    +                retVal = FVID2_EFAIL;
    +            }
    +        }
    +
    +        /* Calculate DPHY fbdiv - PLL feedback divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            tempResult = (((uint64_t)dsiPrms->laneSpeedInKbps) *
    +                          ((uint64_t)2U) *
    +                          ((uint64_t)dsiObj->dphyTxIpDiv) *
    +                          ((uint64_t)dsiObj->dphyTxOpDiv));
    +            tempResult /= (uint64_t)refClkKHz;
    +
    +            dsiObj->dphyTxFbDiv = (uint32_t)tempResult;
    +        }
    +    }
    +
    +    return retVal;
    +}
    +
     static void dssDctrlSetDSIInCtrlMod()
     {
         /*
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
    index d33912b0c..ef696e600 100644
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
    @@ -82,10 +82,10 @@ vx_status app_init_display(vx_context context, DisplayObj *displayObj, char *obj
     
                 displayObj->disp_params.opMode = TIVX_KERNEL_DISPLAY_ZERO_BUFFER_COPY_MODE;//TIVX_KERNEL_DISPLAY_BUFFER_COPY_MODE;
                 displayObj->disp_params.pipeId = 0; /* pipe ID = 2 */
    -            displayObj->disp_params.outWidth = DISPLAY_WIDTH;
    -            displayObj->disp_params.outHeight = DISPLAY_HEIGHT;
    -            displayObj->disp_params.posX = (1920-DISPLAY_WIDTH)/2;
    -            displayObj->disp_params.posY = (1080-DISPLAY_HEIGHT)/2;
    +            displayObj->disp_params.outWidth = 1920U;//DISPLAY_WIDTH;
    +            displayObj->disp_params.outHeight = 1080U;//DISPLAY_HEIGHT;
    +            displayObj->disp_params.posX = 0;//(1920-DISPLAY_WIDTH)/2;
    +            displayObj->disp_params.posY = 0;//(1080-DISPLAY_HEIGHT)/2;
     
                 displayObj->disp_params_obj = vxCreateUserDataObject(context, "tivx_display_params_t", sizeof(tivx_display_params_t), &displayObj->disp_params);
                 status = vxGetStatus((vx_reference)displayObj->disp_params_obj);
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h
    index 9c5e5f2a6..433b04153 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h
    @@ -88,13 +88,13 @@
     
         /* define below to enable eDP display,
            make sure to undef ENABLE_DSS_HDMI & ENABLE_DSS_DSI as well */
    -    #define ENABLE_DSS_EDP
    +    #undef ENABLE_DSS_EDP
         /* define below to enable HDMI display,
            make sure to undef ENABLE_DSS_EDP & ENABLE_DSS_DSI as well */
         #undef ENABLE_DSS_HDMI
         /* define below to enable DSI display, make sure to undef ENABLE_DSS_HDMI
            & ENABLE_DSS_EDP as well */
    -    #undef ENABLE_DSS_DSI
    +    #define ENABLE_DSS_DSI
     
         #define ENABLE_I2C
         #define ENABLE_BOARD
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
    index 94709bfe7..49b97f63b 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
    @@ -550,15 +550,15 @@ int32_t appInit()
             #ifdef ENABLE_DSS_DSI
                 prm.display_type = APP_DSS_DEFAULT_DISPLAY_TYPE_DSI;
     
    -            prm.timings.width        = 1280U;
    -            prm.timings.height       = 800U;
    +            prm.timings.width        = 1920U;//1280U;
    +            prm.timings.height       = 1080U;//800U;
                 prm.timings.hFrontPorch  = 110U;
                 prm.timings.hBackPorch   = 220U;
                 prm.timings.hSyncLen     = 40U;
                 prm.timings.vFrontPorch  = 5U;
                 prm.timings.vBackPorch   = 20U;
                 prm.timings.vSyncLen     = 5U;
    -            prm.timings.pixelClock   = 74250000ULL;
    +            prm.timings.pixelClock   = 149139000ULL;//74250000ULL;
             #endif
             status = appDssDefaultInit(&prm);
             APP_ASSERT_SUCCESS(status);
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c
    index 190728a9b..e09585923 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c
    @@ -534,7 +534,8 @@ static int32_t appDctrlSetDsiParamsCmd(Fvid2_Handle handle,
     
         if(0 == retVal)
         {
    -        dsi_params.numOfLanes = prms->num_lanes;
    +        dsi_params.numOfLanes = 4u;//prms->num_lanes;
    +		dsi_params.laneSpeedInKbps = 900000u;
     
             retVal = Fvid2_control(handle, IOCTL_DSS_DCTRL_SET_DSI_PARAMS,
                 &dsi_params, NULL);
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c
    index ddfda3a91..2864f0524 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dss_defaults.c
    @@ -148,7 +148,7 @@ int32_t appDssDefaultInit(app_dss_default_prm_t *prm)
     
         if (prm->display_type == APP_DSS_DEFAULT_DISPLAY_TYPE_DSI)
         {
    -        appDssConfigureUB941AndUB925(prm);
    +//        appDssConfigureUB941AndUB925(prm);
         }
     
         appDssInitParamsInit(&dssParams);
    @@ -348,7 +348,7 @@ int32_t appDctrlDefaultInit(app_dss_default_obj_t *obj)
         if(obj->initPrm.display_type==APP_DSS_DEFAULT_DISPLAY_TYPE_DSI)
         {
             /* Only two lanes output supported for AOU LCD */
    -        dsiParams.num_lanes = 2u;
    +        dsiParams.num_lanes = 4u;//2u;
             retVal+= appRemoteServiceRun(cpuId, APP_DCTRL_REMOTE_SERVICE_NAME, APP_DCTRL_CMD_SET_DSI_PARAMS, &dsiParams, sizeof(app_dctrl_dsi_params_t), 0U);
         }
     
    

    ./run_app_single_cam.sh log:

    root@ti-j72xx:~#
    root@ti-j72xx:~# cd /opt/vision_apps/
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps# source ./vision_apps_init.sh
    root@ti-j72xx:/opt/vision_apps# [MCU2_0]      3.321650 s: CIO: Init ... Done !!!
    [MCU2_0]      3.321722 s: ### CPU Frequency = 1000000000 Hz
    [MCU2_0]      3.321764 s: APP: Init ... !!!
    [MCU2_0]      3.321791 s: SCICLIENT: Init ... !!!
    [MCU2_0]      3.322004 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [MCU2_0]      3.322055 s: SCICLIENT: DMSC FW revision 0x15
    [MCU2_0]      3.322091 s: SCICLIENT: DMSC FW ABI revision 3.1
    [MCU2_0]      3.322126 s: SCICLIENT: Init ... Done !!!
    [MCU2_0]      3.322153 s: UDMA: Init ... !!!
    [MCU2_0]      3.323231 s: UDMA: Init ... Done !!!
    [MCU2_0]      3.323297 s: MEM: Init ... !!!
    [MCU2_0]      3.323341 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ d9000000 of size 16777216 bytes !!!
    [MCU2_0]      3.323416 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000000) @ 3600000 of size 262144 bytes !!!
    [MCU2_0]      3.323478 s: MEM: Init ... Done !!!
    [MCU2_0]      3.323502 s: IPC: Init ... !!!
    [MCU2_0]      3.323560 s: IPC: 6 CPUs participating in IPC !!!
    [MCU2_0]      3.323607 s: IPC: Waiting for HLOS to be ready ... !!!
    [MCU2_0]     15.091555 s: IPC: HLOS is ready !!!
    [MCU2_0]     15.106714 s: IPC: Init ... Done !!!
    [MCU2_0]     15.106782 s: APP: Syncing with 5 CPUs ... !!!
    [MCU2_0]     15.118362 s: APP: Syncing with 5 CPUs ... Done !!!
    [MCU2_0]     15.118567 s: REMOTE_SERVICE: Init ... !!!
    [MCU2_0]     15.120113 s: REMOTE_SERVICE: Init ... Done !!!
    [MCU2_0]     15.120189 s: FVID2: Init ... !!!
    [MCU2_0]     15.120265 s: FVID2: Init ... Done !!!
    [MCU2_0]     15.120320 s: DSS: Init ... !!!
    [MCU2_0]     15.120350 s: DSS: Display type is DSI !!!
    [MCU2_0]     15.120378 s: DSS: M2M Path is enabled !!!
    [MCU2_0]     15.120405 s: DSS: SoC init ... !!!
    [MCU2_0]     15.120429 s: SCICLIENT: Sciclient_pmSetModuleState module=152 state=2
    [MCU2_0]     15.120888 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.120928 s: SCICLIENT: Sciclient_pmSetModuleState module=150 state=2
    [MCU2_0]     15.121315 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.121352 s: SCICLIENT: Sciclient_pmSetModuleState module=296 state=2
    [MCU2_0]     15.121685 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.121719 s: SCICLIENT: Sciclient_pmSetModuleClkParent module=152 clk=9 parent=11
    [MCU2_0]     15.122078 s: SCICLIENT: Sciclient_pmSetModuleClkParent success
    [MCU2_0]     15.122115 s: SCICLIENT: Sciclient_pmSetModuleClkFreq module=152 clk=9 freq=149139000
    [MCU2_0]     15.123392 s: SCICLIENT: Sciclient_pmSetModuleClkFreq success
    [MCU2_0]     15.123429 s: SCICLIENT: Sciclient_pmModuleClkRequest module=152 clk=9 state=2 flag=0
    [MCU2_0]     15.123870 s: SCICLIENT: Sciclient_pmModuleClkRequest success
    [MCU2_0]     15.123906 s: DSS: SoC init ... Done !!!
    [MCU2_0]     15.127328 s: DSS: Init ... Done !!!
    [MCU2_0]     15.127397 s: VHWA: VPAC Init ... !!!
    [MCU2_0]     15.127428 s: SCICLIENT: Sciclient_pmSetModuleState module=290 state=2
    [MCU2_0]     15.127647 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.127692 s: VHWA: LDC Init ... !!!
    [MCU2_0]     15.132117 s: VHWA: LDC Init ... Done !!!
    [MCU2_0]     15.132185 s: VHWA: MSC Init ... !!!
    [MCU2_0]     15.142011 s: VHWA: MSC Init ... Done !!!
    [MCU2_0]     15.142077 s: VHWA: NF Init ... !!!
    [MCU2_0]     15.143552 s: VHWA: NF Init ... Done !!!
    [MCU2_0]     15.143616 s: VHWA: VISS Init ... !!!
    [MCU2_0]     15.152700 s: VHWA: VISS Init ... Done !!!
    [MCU2_0]     15.152767 s: VHWA: VPAC Init ... Done !!!
    [MCU2_0]     15.152816 s:  VX_ZONE_INIT:Enabled
    [MCU2_0]     15.152846 s:  VX_ZONE_ERROR:Enabled
    [MCU2_0]     15.152871 s:  VX_ZONE_WARNING:Enabled
    [MCU2_0]     15.154021 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target IPU1-0
    [MCU2_0]     15.154275 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_NF
    [MCU2_0]     15.154497 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_LDC1
    [MCU2_0]     15.154721 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_MSC1
    [MCU2_0]     15.154939 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_MSC2
    [MCU2_0]     15.155277 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target VPAC_VISS1
    [MCU2_0]     15.155554 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE1
    [MCU2_0]     15.155809 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE2
    [MCU2_0]     15.156078 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DISPLAY1
    [MCU2_0]     15.156349 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DISPLAY2
    [MCU2_0]     15.156583 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CSITX
    [MCU2_0]     15.156854 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE3
    [MCU2_0]     15.157122 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE4
    [MCU2_0]     15.157401 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE5
    [MCU2_0]     15.157667 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE6
    [MCU2_0]     15.157924 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE7
    [MCU2_0]     15.158191 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target CAPTURE8
    [MCU2_0]     15.158427 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M1
    [MCU2_0]     15.158647 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M2
    [MCU2_0]     15.158869 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M3
    [MCU2_0]     15.159100 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DSS_M2M4
    [MCU2_0]     15.159155 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [MCU2_0]     15.159204 s: APP: OpenVX Target kernel init ... !!!
    [MCU2_0]     15.174883 s: APP: OpenVX Target kernel init ... Done !!!
    [MCU2_0]     15.174940 s: CSI2RX: Init ... !!!
    [MCU2_0]     15.174966 s: SCICLIENT: Sciclient_pmSetModuleState module=25 state=2
    [MCU2_0]     15.175075 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.175117 s: SCICLIENT: Sciclient_pmSetModuleState module=26 state=2
    [MCU2_0]     15.175234 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.175272 s: SCICLIENT: Sciclient_pmSetModuleState module=27 state=2
    [MCU2_0]     15.175373 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.175408 s: SCICLIENT: Sciclient_pmSetModuleState module=147 state=2
    [MCU2_0]     15.175479 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.175510 s: SCICLIENT: Sciclient_pmSetModuleState module=148 state=2
    [MCU2_0]     15.175580 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_0]     15.176216 s: CSI2RX: Init ... Done !!!
    [MCU2_0]     15.176276 s: ISS: Init ... !!!
    [MCU2_0]     15.176323 s: IssSensor_Sensor_Module_Max96705_Init init
    [MCU2_0]     15.176365 s: IssSensor_Sensor_Module_Max96715_Init init
    [MCU2_0]     15.176402 s: IssSensor_Sensor_Module_Max96717_Init init
    [MCU2_0]     15.176436 s: IssSensor_Sensor_Module_Max9295A_Init init
    [MCU2_0]     15.176471 s: IssSensor_Sensor_Module_Max9295A_APA_AR0231_Init init
    [MCU2_0]     15.176509 s: IssSensor_Init ... Done !!!
    [MCU2_0]     15.176601 s: vissRemoteServer_Init ... Done !!!
    [MCU2_0]     15.176662 s: IttRemoteServer_Init ... Done !!!
    [MCU2_0]     15.176697 s: UDMA Copy: Init ... !!!
    [MCU2_0]     15.178158 s: UDMA Copy: Init ... Done !!!
    [MCU2_0]     15.178304 s: APP: Init ... Done !!!
    [MCU2_0]     15.178349 s: APP: Run ... !!!
    [MCU2_0]     15.178375 s: IPC: Starting echo test ...
    [MCU2_0]     15.180960 s: APP: Run ... Done !!!
    [MCU2_0]     15.182496 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[.] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU2_0]     15.182612 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU2_0]     15.182708 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[.]
    [MCU2_0]     15.182796 s: IPC: Echo status: mpu1_0[x] mcu2_0[s] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[P]
    [MCU2_1]      3.341047 s: CIO: Init ... Done !!!
    [MCU2_1]      3.341114 s: ### CPU Frequency = 1000000000 Hz
    [MCU2_1]      3.341154 s: APP: Init ... !!!
    [MCU2_1]      3.341179 s: SCICLIENT: Init ... !!!
    [MCU2_1]      3.341387 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [MCU2_1]      3.341432 s: SCICLIENT: DMSC FW revision 0x15
    [MCU2_1]      3.341465 s: SCICLIENT: DMSC FW ABI revision 3.1
    [MCU2_1]      3.341499 s: SCICLIENT: Init ... Done !!!
    [MCU2_1]      3.341525 s: UDMA: Init ... !!!
    [MCU2_1]      3.342619 s: UDMA: Init ... Done !!!
    [MCU2_1]      3.342680 s: MEM: Init ... !!!
    [MCU2_1]      3.342721 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ da000000 of size 16777216 bytes !!!
    [MCU2_1]      3.342794 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 3640000 of size 262144 bytes !!!
    [MCU2_1]      3.342854 s: MEM: Init ... Done !!!
    [MCU2_1]      3.342878 s: IPC: Init ... !!!
    [MCU2_1]      3.342939 s: IPC: 6 CPUs participating in IPC !!!
    [MCU2_1]      3.342985 s: IPC: Waiting for HLOS to be ready ... !!!
    [MCU2_1]     15.103132 s: IPC: HLOS is ready !!!
    [MCU2_1]     15.118244 s: IPC: Init ... Done !!!
    [MCU2_1]     15.118311 s: APP: Syncing with 5 CPUs ... !!!
    [MCU2_1]     15.118361 s: APP: Syncing with 5 CPUs ... Done !!!
    [MCU2_1]     15.118400 s: REMOTE_SERVICE: Init ... !!!
    [MCU2_1]     15.120162 s: REMOTE_SERVICE: Init ... Done !!!
    [MCU2_1]     15.120220 s: FVID2: Init ... !!!
    [MCU2_1]     15.120291 s: FVID2: Init ... Done !!!
    [MCU2_1]     15.120324 s: VHWA: DMPAC: Init ... !!!
    [MCU2_1]     15.120350 s: SCICLIENT: Sciclient_pmSetModuleState module=48 state=2
    [MCU2_1]     15.120802 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_1]     15.120841 s: SCICLIENT: Sciclient_pmSetModuleState module=305 state=2
    [MCU2_1]     15.121267 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_1]     15.121301 s: VHWA: DOF Init ... !!!
    [MCU2_1]     15.130835 s: VHWA: DOF Init ... Done !!!
    [MCU2_1]     15.130894 s: VHWA: SDE Init ... !!!
    [MCU2_1]     15.133509 s: VHWA: SDE Init ... Done !!!
    [MCU2_1]     15.133566 s: VHWA: DMPAC: Init ... Done !!!
    [MCU2_1]     15.133620 s:  VX_ZONE_INIT:Enabled
    [MCU2_1]     15.133651 s:  VX_ZONE_ERROR:Enabled
    [MCU2_1]     15.133676 s:  VX_ZONE_WARNING:Enabled
    [MCU2_1]     15.134874 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DMPAC_SDE
    [MCU2_1]     15.135113 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DMPAC_DOF
    [MCU2_1]     15.135337 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target IPU1-1
    [MCU2_1]     15.135387 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [MCU2_1]     15.135421 s: APP: OpenVX Target kernel init ... !!!
    [MCU2_1]     15.135698 s: APP: OpenVX Target kernel init ... Done !!!
    [MCU2_1]     15.135739 s: UDMA Copy: Init ... !!!
    [MCU2_1]     15.137998 s: UDMA Copy: Init ... Done !!!
    [MCU2_1]     15.138069 s: APP: Init ... Done !!!
    [MCU2_1]     15.138104 s: APP: Run ... !!!
    [MCU2_1]     15.138127 s: IPC: Starting echo test ...
    [MCU2_1]     15.140687 s: APP: Run ... Done !!!
    [MCU2_1]     15.141977 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU2_1]     15.142095 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[.]
    [MCU2_1]     15.142188 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[P]
    [MCU2_1]     15.181770 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[P]
    [C6x_1 ]      3.419666 s: CIO: Init ... Done !!!
    [C6x_1 ]      3.419690 s: ### CPU Frequency = 1350000000 Hz
    [C6x_1 ]      3.419701 s: APP: Init ... !!!
    [C6x_1 ]      3.419708 s: SCICLIENT: Init ... !!!
    [C6x_1 ]      3.419890 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C6x_1 ]      3.419901 s: SCICLIENT: DMSC FW revision 0x15
    [C6x_1 ]      3.419911 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C6x_1 ]      3.419920 s: SCICLIENT: Init ... Done !!!
    [C6x_1 ]      3.419929 s: UDMA: Init ... !!!
    [C6x_1 ]      3.421078 s: UDMA: Init ... Done !!!
    [C6x_1 ]      3.421101 s: MEM: Init ... !!!
    [C6x_1 ]      3.421114 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ dc000000 of size 16777216 bytes !!!
    [C6x_1 ]      3.421131 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!!
    [C6x_1 ]      3.421146 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ dd000000 of size 50331648 bytes !!!
    [C6x_1 ]      3.421162 s: MEM: Init ... Done !!!
    [C6x_1 ]      3.421171 s: IPC: Init ... !!!
    [C6x_1 ]      3.421190 s: IPC: 6 CPUs participating in IPC !!!
    [C6x_1 ]      3.421203 s: IPC: Waiting for HLOS to be ready ... !!!
    [C6x_1 ]     15.054080 s: IPC: HLOS is ready !!!
    [C6x_1 ]     15.057834 s: IPC: Init ... Done !!!
    [C6x_1 ]     15.057861 s: APP: Syncing with 5 CPUs ... !!!
    [C6x_1 ]     15.118360 s: APP: Syncing with 5 CPUs ... Done !!!
    [C6x_1 ]     15.118373 s: REMOTE_SERVICE: Init ... !!!
    [C6x_1 ]     15.119078 s: REMOTE_SERVICE: Init ... Done !!!
    [C6x_1 ]     15.119129 s:  VX_ZONE_INIT:Enabled
    [C6x_1 ]     15.119143 s:  VX_ZONE_ERROR:Enabled
    [C6x_1 ]     15.119153 s:  VX_ZONE_WARNING:Enabled
    [C6x_1 ]     15.119943 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C6x_1 ]     15.119957 s: APP: OpenVX Target kernel init ... !!!
    [C6x_1 ]     15.120275 s: APP: OpenVX Target kernel init ... Done !!!
    [C6x_1 ]     15.120295 s: UDMA Copy: Init ... !!!
    [C6x_1 ]     15.124411 s: UDMA Copy: Init ... Done !!!
    [C6x_1 ]     15.124435 s: APP: Init ... Done !!!
    [C6x_1 ]     15.125163 s: APP: Run ... !!!
    [C6x_1 ]     15.125173 s: IPC: Starting echo test ...
    [C6x_1 ]     15.126280 s: APP: Run ... Done !!!
    [C6x_1 ]     15.126641 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[x] C7X_1[P]
    [C6x_1 ]     15.127045 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_1 ]     15.141297 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_1 ]     15.181629 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_2 ]      3.511664 s: CIO: Init ... Done !!!
    [C6x_2 ]      3.511689 s: ### CPU Frequency = 1350000000 Hz
    [C6x_2 ]      3.511699 s: APP: Init ... !!!
    [C6x_2 ]      3.511707 s: SCICLIENT: Init ... !!!
    [C6x_2 ]      3.511891 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C6x_2 ]      3.511902 s: SCICLIENT: DMSC FW revision 0x15
    [C6x_2 ]      3.511912 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C6x_2 ]      3.511922 s: SCICLIENT: Init ... Done !!!
    [C6x_2 ]      3.511931 s: UDMA: Init ... !!!
    [C6x_2 ]      3.513086 s: UDMA: Init ... Done !!!
    [C6x_2 ]      3.513108 s: MEM: Init ... !!!
    [C6x_2 ]      3.513121 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ e0000000 of size 16777216 bytes !!!
    [C6x_2 ]      3.513139 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!!
    [C6x_2 ]      3.513154 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ e1000000 of size 50331648 bytes !!!
    [C6x_2 ]      3.513170 s: MEM: Init ... Done !!!
    [C6x_2 ]      3.513179 s: IPC: Init ... !!!
    [C6x_2 ]      3.513198 s: IPC: 6 CPUs participating in IPC !!!
    [C6x_2 ]      3.513211 s: IPC: Waiting for HLOS to be ready ... !!!
    [C6x_2 ]     15.083412 s: IPC: HLOS is ready !!!
    [C6x_2 ]     15.086774 s: IPC: Init ... Done !!!
    [C6x_2 ]     15.086803 s: APP: Syncing with 5 CPUs ... !!!
    [C6x_2 ]     15.118360 s: APP: Syncing with 5 CPUs ... Done !!!
    [C6x_2 ]     15.118374 s: REMOTE_SERVICE: Init ... !!!
    [C6x_2 ]     15.119102 s: REMOTE_SERVICE: Init ... Done !!!
    [C6x_2 ]     15.119154 s:  VX_ZONE_INIT:Enabled
    [C6x_2 ]     15.119165 s:  VX_ZONE_ERROR:Enabled
    [C6x_2 ]     15.119175 s:  VX_ZONE_WARNING:Enabled
    [C6x_2 ]     15.119966 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C6x_2 ]     15.119981 s: APP: OpenVX Target kernel init ... !!!
    [C6x_2 ]     15.120298 s: APP: OpenVX Target kernel init ... Done !!!
    [C6x_2 ]     15.120319 s: UDMA Copy: Init ... !!!
    [C6x_2 ]     15.124700 s: UDMA Copy: Init ... Done !!!
    [C6x_2 ]     15.124722 s: APP: Init ... Done !!!
    [C6x_2 ]     15.125418 s: APP: Run ... !!!
    [C6x_2 ]     15.125429 s: IPC: Starting echo test ...
    [C6x_2 ]     15.126679 s: APP: Run ... Done !!!
    [C6x_2 ]     15.126991 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[s] C7X_1[.]
    [C6x_2 ]     15.127048 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[s] C7X_1[P]
    [C6x_2 ]     15.141332 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[s] C7X_1[P]
    [C6x_2 ]     15.181654 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[s] C7X_1[P]
    [C7x_1 ]      4.078501 s: CIO: Init ... Done !!!
    [C7x_1 ]      4.078514 s: ### CPU Frequency = 1000000000 Hz
    [C7x_1 ]      4.078525 s: APP: Init ... !!!
    [C7x_1 ]      4.078533 s: SCICLIENT: Init ... !!!
    [C7x_1 ]      4.078702 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C7x_1 ]      4.078715 s: SCICLIENT: DMSC FW revision 0x15
    [C7x_1 ]      4.078725 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C7x_1 ]      4.078735 s: SCICLIENT: Init ... Done !!!
    [C7x_1 ]      4.078744 s: UDMA: Init ... !!!
    [C7x_1 ]      4.079588 s: UDMA: Init ... Done !!!
    [C7x_1 ]      4.079600 s: MEM: Init ... !!!
    [C7x_1 ]      4.079610 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ 100000000 of size 268435456 bytes !!!
    [C7x_1 ]      4.079630 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 70020000 of size 8159232 bytes !!!
    [C7x_1 ]      4.079647 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 64800000 of size 458752 bytes !!!
    [C7x_1 ]      4.079664 s: MEM: Created heap (L1_MEM, id=3, flags=0x00000001) @ 64e00000 of size 16384 bytes !!!
    [C7x_1 ]      4.079681 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ e4000000 of size 402653184 bytes !!!
    [C7x_1 ]      4.079699 s: MEM: Init ... Done !!!
    [C7x_1 ]      4.079707 s: IPC: Init ... !!!
    [C7x_1 ]      4.079720 s: IPC: 6 CPUs participating in IPC !!!
    [C7x_1 ]      4.079734 s: IPC: Waiting for HLOS to be ready ... !!!
    [C7x_1 ]     15.111813 s: IPC: HLOS is ready !!!
    [C7x_1 ]     15.113652 s: IPC: Init ... Done !!!
    [C7x_1 ]     15.113667 s: APP: Syncing with 5 CPUs ... !!!
    [C7x_1 ]     15.118360 s: APP: Syncing with 5 CPUs ... Done !!!
    [C7x_1 ]     15.118373 s: REMOTE_SERVICE: Init ... !!!
    [C7x_1 ]     15.118529 s: REMOTE_SERVICE: Init ... Done !!!
    [C7x_1 ]     15.118553 s:  VX_ZONE_INIT:Enabled
    [C7x_1 ]     15.118563 s:  VX_ZONE_ERROR:Enabled
    [C7x_1 ]     15.118573 s:  VX_ZONE_WARNING:Enabled
    [C7x_1 ]     15.118762 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1
    [C7x_1 ]     15.118858 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_2
    [C7x_1 ]     15.118982 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_3
    [C7x_1 ]     15.119078 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_4
    [C7x_1 ]     15.119159 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_5
    [C7x_1 ]     15.119263 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_6
    [C7x_1 ]     15.119351 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_7
    [C7x_1 ]     15.119427 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_8
    [C7x_1 ]     15.119448 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C7x_1 ]     15.119460 s: APP: OpenVX Target kernel init ... !!!
    [C7x_1 ]     15.119590 s: APP: OpenVX Target kernel init ... Done !!!
    [C7x_1 ]     15.119603 s: APP: Init ... Done !!!
    [C7x_1 ]     15.119611 s: APP: Run ... !!!
    [C7x_1 ]     15.119621 s: IPC: Starting echo test ...
    [C7x_1 ]     15.119776 s: APP: Run ... Done !!!
    [C7x_1 ]     15.126645 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[x] C7X_1[s]
    [C7x_1 ]     15.127058 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[P] C7X_1[s]
    [C7x_1 ]     15.141358 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]
    [C7x_1 ]     15.181701 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]
    
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps# ./run_app_single_cam.sh
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
       101.741201 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
       101.748117 s:  VX_ZONE_INIT:Enabled
       101.748141 s:  VX_ZONE_ERROR:Enabled
       101.748152 s:  VX_ZONE_WARNING:Enabled
       101.750839 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
       101.751013 s:  VX_ZONE_INIT:[tivxHostInitLocal:86] Initialization Done for HOST !!!
    sensor_selection = [0]
    ldc_enable = [0]
    num_frames_to_run = [1000000000]
    is_interactive = [1]
    IttCtrl_registerHandler: command echo registered at location 0
    IttCtrl_registerHandler: command iss_read_2a_params registered at location 1
    IttCtrl_registerHandler: command iss_write_2a_params registered at location 2
    IttCtrl_registerHandler: command iss_raw_save registered at location 3
    IttCtrl_registerHandler: command iss_yuv_save registered at location 4
    IttCtrl_registerHandler: command iss_read_sensor_reg registered at location 5
    IttCtrl_registerHandler: command iss_write_sensor_reg registered at location 6
    IttCtrl_registerHandler: command dev_ctrl registered at location 7
    IttCtrl_registerHandler: command iss_send_dcc_file registered at location 8
     NETWORK: Opened at IP Addr = 0.0.0.0, socket port=5000!!!
       101.765722 s: ISS: Enumerating sensors ... !!!
       101.766367 s: ISS: Enumerating sensors ... found 0 : MAX96705_1MP_UYVY
       101.766377 s: ISS: Enumerating sensors ... found 1 : MAX96715_1MP_UYVY
       101.766383 s: ISS: Enumerating sensors ... found 2 : MAX96717_1MP_UYVY
       101.766389 s: ISS: Enumerating sensors ... found 3 : MAX9295A_2MP_UYVY
       101.766394 s: ISS: Enumerating sensors ... found 4 : MAX9295A_2MP_APA_AR0231_UYVY
       101.766400 s: ISS: Enumerating sensors ... found 5 : ECARX_8MP_UYVY
       101.766406 s: ISS: Enumerating sensors ... found 6 : ECARX_DMS_8MP
    Select camera port index 0-7 : [MCU2_0]    101.765932 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_CREATE
    [MCU2_0]    101.766002 s: [iss_sensors] IssSensor_DeserializerInit Start
    [MCU2_0]    101.766062 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    101.766167 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    
    Invalid entry
    . Please choose between 0 and 7
    Select camera port index 0-7 : 0
    7 registered sensor drivers
    a : MAX96705_1MP_UYVY
    b : MAX96715_1MP_UYVY
    c : MAX96717_1MP_UYVY
    d : MAX9295A_2MP_UYVY
    e : MAX9295A_2MP_APA_AR0231_UYVY
    f : ECARX_8MP_UYVY
    g : ECARX_DMS_8MP
    Select a sensor above or press '0' to autodetect the sensor : Invalid selection
    . Try again
    7 registered sensor drivers
    a : MAX96705_1MP_UYVY
    b : MAX96715_1MP_UYVY
    c : MAX96717_1MP_UYVY
    d : MAX9295A_2MP_UYVY
    e : MAX9295A_2MP_APA_AR0231_UYVY
    f : ECARX_8MP_UYVY
    g : ECARX_DMS_8MP
    Select a sensor above or press '0' to autodetect the sensor : f
    Sensor selected : ECARX_8MP_UYVY
    LDC Selection Yes(1)/No(0) : LDC Selection Yes(1)/No(0) : 0
    Querying ECARX_8MP_UYVY
       109.885404 s: ISS: Querying sensor [ECARX_8MP_UYVY] ... !!!
       109.885846 s: ISS: Querying sensor [ECARX_8MP_UYVY] ... Done !!!
    YUV Input selected. VISS and AEWB nodes will be bypassed.
       109.885864 s: ISS: Initializing sensor [ECARX_8MP_UYVY], doing IM_SENSOR_CMD_PWRON ... !!!
    [MCU2_0]    109.885599 s: ImageSensor_RemoteServiceHandler: IM_SENSOR_CMD_QUERY
    [MCU2_0]    109.885668 s: Received Query for ECARX_8MP_UYVY
    [MCU2_0]    109.886051 s: [iss_sensors] in func ecarx_cfgScript
    [MCU2_0]    109.886116 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    109.886350 s: read 16 bits reg success: addr 0x29, reg 0x0, val 0x52
    [MCU2_0]    109.886420 s: [iss_sensor] [read 0x00] i2c2 reading addr 0x52 register 0x00 value 0x52
    [MCU2_0]    109.886486 s: MAX96712 config start TIVX_RAW_IMAGE_16_BIT 1052672 TIVX_RAW_IMAGE_8_BIT 1052673
    [MCU2_0]    109.886547 s: ecarx_cfgScript, line 170, count 88
    [MCU2_0]    109.886720 s: write 16 bits reg success: addr 0x29, reg 0x13, val 0x75
    [MCU2_0]    110.046329 s: write 16 bits reg success: addr 0x29, reg 0x1, val 0xc9
    [MCU2_0]    110.206358 s: write 16 bits reg success: addr 0x29, reg 0x40b, val 0x0
    [MCU2_0]    110.206580 s: write 16 bits reg success: addr 0x29, reg 0x6, val 0x0
    [MCU2_0]    110.206752 s: write 16 bits reg success: addr 0x29, reg 0x10, val 0x22
    [MCU2_0]    110.206922 s: write 16 bits reg success: addr 0x29, reg 0x11, val 0x22
    [MCU2_0]    110.207092 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    110.207262 s: write 16 bits reg success: addr 0x29, reg 0xf4, val 0xf
    [MCU2_0]    110.207433 s: write 16 bits reg success: addr 0x29, reg 0xf0, val 0x62
    [MCU2_0]    110.207604 s: write 16 bits reg success: addr 0x29, reg 0xf1, val 0xea
    [MCU2_0]    110.207775 s: write 16 bits reg success: addr 0x29, reg 0x94a, val 0xc0
    [MCU2_0]    110.207946 s: write 16 bits reg success: addr 0x29, reg 0x98a, val 0xc0
    [MCU2_0]    110.208114 s: write 16 bits reg success: addr 0x29, reg 0x8a3, val 0xe4
    [MCU2_0]    110.208281 s: write 16 bits reg success: addr 0x29, reg 0x8a4, val 0xe4
    [MCU2_0]    110.208453 s: write 16 bits reg success: addr 0x29, reg 0x943, val 0x91
    [MCU2_0]    110.208623 s: write 16 bits reg success: addr 0x29, reg 0x983, val 0x91
    [MCU2_0]    110.208793 s: write 16 bits reg success: addr 0x29, reg 0x415, val 0x39
    [MCU2_0]    110.208960 s: write 16 bits reg success: addr 0x29, reg 0x418, val 0x39
    [MCU2_0]    110.209129 s: write 16 bits reg success: addr 0x29, reg 0x41b, val 0x39
    [MCU2_0]    110.209306 s: write 16 bits reg success: addr 0x29, reg 0x41e, val 0x39
    [MCU2_0]    110.209476 s: write 16 bits reg success: addr 0x29, reg 0x8a9, val 0xc8
    [MCU2_0]    110.209646 s: write 16 bits reg success: addr 0x29, reg 0x90b, val 0x7
    [MCU2_0]    110.209815 s: write 16 bits reg success: addr 0x29, reg 0x92d, val 0x15
    [MCU2_0]    110.209984 s: write 16 bits reg success: addr 0x29, reg 0x90d, val 0x1e
    [MCU2_0]    110.210154 s: write 16 bits reg success: addr 0x29, reg 0x90e, val 0x1e
    [MCU2_0]    110.210329 s: write 16 bits reg success: addr 0x29, reg 0x90f, val 0x0
    [MCU2_0]    110.210500 s: write 16 bits reg success: addr 0x29, reg 0x910, val 0x0
    [MCU2_0]    110.210669 s: write 16 bits reg success: addr 0x29, reg 0x911, val 0x1
    [MCU2_0]    110.210840 s: write 16 bits reg success: addr 0x29, reg 0x912, val 0x1
    [MCU2_0]    110.211009 s: write 16 bits reg success: addr 0x29, reg 0x94b, val 0x7
    [MCU2_0]    110.211182 s: write 16 bits reg success: addr 0x29, reg 0x96d, val 0x15
    [MCU2_0]    110.211356 s: write 16 bits reg success: addr 0x29, reg 0x94d, val 0x1e
    [MCU2_0]    110.211529 s: write 16 bits reg success: addr 0x29, reg 0x94e, val 0x5e
    [MCU2_0]    110.211698 s: write 16 bits reg success: addr 0x29, reg 0x94f, val 0x0
    [MCU2_0]    110.211867 s: write 16 bits reg success: addr 0x29, reg 0x950, val 0x40
    [MCU2_0]    110.212036 s: write 16 bits reg success: addr 0x29, reg 0x951, val 0x1
    [MCU2_0]    110.212212 s: write 16 bits reg success: addr 0x29, reg 0x952, val 0x41
    [MCU2_0]    110.212383 s: write 16 bits reg success: addr 0x29, reg 0x98b, val 0x7
    [MCU2_0]    110.212555 s: write 16 bits reg success: addr 0x29, reg 0x9ad, val 0x2a
    [MCU2_0]    110.212722 s: write 16 bits reg success: addr 0x29, reg 0x98d, val 0x1e
    [MCU2_0]    110.212890 s: write 16 bits reg success: addr 0x29, reg 0x98e, val 0x9e
    [MCU2_0]    110.213059 s: write 16 bits reg success: addr 0x29, reg 0x98f, val 0x0
    [MCU2_0]    110.213229 s: write 16 bits reg success: addr 0x29, reg 0x990, val 0x80
    [MCU2_0]    110.213402 s: write 16 bits reg success: addr 0x29, reg 0x991, val 0x1
    [MCU2_0]    110.213571 s: write 16 bits reg success: addr 0x29, reg 0x992, val 0x81
    [MCU2_0]    110.213741 s: write 16 bits reg success: addr 0x29, reg 0x9cb, val 0x7
    [MCU2_0]    110.213910 s: write 16 bits reg success: addr 0x29, reg 0x9ed, val 0x2a
    [MCU2_0]    110.214081 s: write 16 bits reg success: addr 0x29, reg 0x9cd, val 0x1e
    [MCU2_0]    110.214249 s: write 16 bits reg success: addr 0x29, reg 0x9ce, val 0xde
    [MCU2_0]    110.214424 s: write 16 bits reg success: addr 0x29, reg 0x9cf, val 0x0
    [MCU2_0]    110.214595 s: write 16 bits reg success: addr 0x29, reg 0x9d0, val 0xc0
    [MCU2_0]    110.214767 s: write 16 bits reg success: addr 0x29, reg 0x9d1, val 0x1
    [MCU2_0]    110.214955 s: write 16 bits reg success: addr 0x29, reg 0x9d2, val 0xc1
    [MCU2_0]    110.215126 s: write 16 bits reg success: addr 0x29, reg 0x4a2, val 0x0
    [MCU2_0]    110.215308 s: write 16 bits reg success: addr 0x29, reg 0x4aa, val 0x0
    [MCU2_0]    110.215480 s: write 16 bits reg success: addr 0x29, reg 0x4ab, val 0x0
    [MCU2_0]    110.215650 s: write 16 bits reg success: addr 0x29, reg 0x4a8, val 0x0
    [MCU2_0]    110.215821 s: write 16 bits reg success: addr 0x29, reg 0x4a9, val 0x0
    [MCU2_0]    110.215990 s: write 16 bits reg success: addr 0x29, reg 0x4a7, val 0xc
    [MCU2_0]    110.216158 s: write 16 bits reg success: addr 0x29, reg 0x4a6, val 0xbf
    [MCU2_0]    110.216333 s: write 16 bits reg success: addr 0x29, reg 0x4a5, val 0x35
    [MCU2_0]    110.216505 s: write 16 bits reg success: addr 0x29, reg 0x4af, val 0xc0
    [MCU2_0]    110.216675 s: write 16 bits reg success: addr 0x29, reg 0x4b1, val 0x40
    [MCU2_0]    110.216845 s: write 16 bits reg success: addr 0x29, reg 0x4a0, val 0x4
    [MCU2_0]    110.217013 s: write 16 bits reg success: addr 0x29, reg 0x6, val 0xff
    [MCU2_0]    110.376360 s: write 16 bits reg success: addr 0x40, reg 0x2be, val 0x10
    [MCU2_0]    110.376573 s: write 16 bits reg success: addr 0x40, reg 0x236, val 0x8
    [MCU2_0]    110.376783 s: write 16 bits reg success: addr 0x40, reg 0x237, val 0x9
    [MCU2_0]    110.376991 s: write 16 bits reg success: addr 0x40, reg 0x238, val 0xa
    [MCU2_0]    110.377204 s: write 16 bits reg success: addr 0x40, reg 0x239, val 0xb
    [MCU2_0]    110.377415 s: write 16 bits reg success: addr 0x40, reg 0x23a, val 0xc
    [MCU2_0]    110.377626 s: write 16 bits reg success: addr 0x40, reg 0x23b, val 0xd
    [MCU2_0]    110.377830 s: write 16 bits reg success: addr 0x40, reg 0x23c, val 0xe
    [MCU2_0]    110.378034 s: write 16 bits reg success: addr 0x40, reg 0x23d, val 0xf
    [MCU2_0]    110.378239 s: write 16 bits reg success: addr 0x40, reg 0x23e, val 0x0
    [MCU2_0]    110.378448 s: write 16 bits reg success: addr 0x40, reg 0x23f, val 0x1
    [MCU2_0]    110.378659 s: write 16 bits reg success: addr 0x40, reg 0x240, val 0x2
    [MCU2_0]    110.378865 s: write 16 bits reg success: addr 0x40, reg 0x241, val 0x3
    [MCU2_0]    110.379068 s: write 16 bits reg success: addr 0x40, reg 0x242, val 0x4
    [MCU2_0]    110.379277 s: write 16 bits reg success: addr 0x40, reg 0x243, val 0x5
    [MCU2_0]    110.379486 s: write 16 bits reg success: addr 0x40, reg 0x244, val 0x6
    [MCU2_0]    110.379691 s: write 16 bits reg success: addr 0x40, reg 0x245, val 0x7
    [MCU2_0]    110.379899 s: write 16 bits reg success: addr 0x40, reg 0x318, val 0x5e
    [MCU2_0]    110.380107 s: write 16 bits reg success: addr 0x40, reg 0x2d3, val 0x0
    [MCU2_0]    110.549357 s: write 16 bits reg success: addr 0x40, reg 0x2d3, val 0x10
    [MCU2_0]    110.549574 s: write 16 bits reg success: addr 0x29, reg 0x8a2, val 0x0
    [MCU2_0]    110.549782 s: write 16 bits reg success: addr 0x29, reg 0x8a2, val 0xf0
    [MCU2_0]    110.549990 s: write 16 bits reg success: addr 0x29, reg 0x18, val 0xf
    [MCU2_0]    110.909193 s: [iss_sensors] in func ecarx_read_cfgScript
    [MCU2_0]    110.909254 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    110.909289 s:
    [MCU2_0]    110.909309 s:
    [MCU2_0]    110.909327 s: [iss_sensors] MAX96712 read status regs
    [MCU2_0]    110.909356 s:
    [MCU2_0]    110.909596 s: read 16 bits reg success: addr 0x29, reg 0x1a, val 0xda
    [MCU2_0]    110.909848 s: read 16 bits reg success: addr 0x29, reg 0xa, val 0x0
    [MCU2_0]    110.910096 s: read 16 bits reg success: addr 0x29, reg 0xb, val 0x0
    [MCU2_0]    110.910341 s: read 16 bits reg success: addr 0x29, reg 0xc, val 0x0
    [MCU2_0]    110.910592 s: read 16 bits reg success: addr 0x29, reg 0x10, val 0x22
    [MCU2_0]    110.910835 s: read 16 bits reg success: addr 0x29, reg 0x6, val 0xff
    [MCU2_0]    110.911080 s: read 16 bits reg success: addr 0x29, reg 0x5, val 0xc0
    [MCU2_0]    110.911324 s: read 16 bits reg success: addr 0x29, reg 0x1dc, val 0x81
    [MCU2_0]    110.911571 s: read 16 bits reg success: addr 0x29, reg 0x1fc, val 0x80
    [MCU2_0]    110.911816 s: read 16 bits reg success: addr 0x29, reg 0x21c, val 0x80
    [MCU2_0]    110.912061 s: read 16 bits reg success: addr 0x29, reg 0x23c, val 0x80
    [MCU2_0]    110.912309 s: read 16 bits reg success: addr 0x29, reg 0x11f0, val 0x1
    [MCU2_0]    110.912557 s: read 16 bits reg success: addr 0x29, reg 0x11f2, val 0x1
    [MCU2_0]    110.912809 s: read 16 bits reg success: addr 0x29, reg 0x40a, val 0x0
    [MCU2_0]    110.913055 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
    [MCU2_0]    111.012404 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
    [MCU2_0]    111.112397 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
       111.212692 s: ISS: Initializing sensor [ECARX_8MP_UYVY], doing IM_SENSOR_CMD_CONFIG ... !!!
       111.213152 s: ISS: Initializing sensor [ECARX_8MP_UYVY] ... Done !!!
    [MCU2_0]    111.212400 s: read 16 bits reg success: addr 0x29, reg 0x8d0, val 0x0
    [MCU2_0]    111.212445 s:
    [MCU2_0]    111.212466 s:
    [MCU2_0]    111.212486 s: [iss_sensors] MAX96712 read status regs end
    [MCU2_0]    111.212517 s:
    [MCU2_0]    111.212929 s: [iss_sensors] in func disableMAX96712Broadcast none
    [MCU2_0]    111.212995 s: [iss_sensors] ecarx_8MP_Config
    Scaler is disabled
       111.221786 s: ISS: Starting sensor [ECARX_8MP_UYVY] ... !!!
       111.223185 s: ISS: Starting sensor [ECARX_8MP_UYVY] ... !!!
    get_dcc_dir_size : Could not open directory or directory is empty /opt/vision_apps/dcc/ECARX_8MP_UYVY/wdr
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice:
    Unsupported command
    
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice: [MCU2_0]    111.222074 s: [iss_sensors] in func disableMAX96712Broadcast none
    [MCU2_0]    111.222185 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    111.222465 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    111.222680 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x84
    [MCU2_0]    111.222931 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x84
    [MCU2_0]    111.222981 s: [iss_sensors] in func ecarx_8MP_StreamOn end
    [MCU2_0]    111.223014 s:
    [MCU2_0]    111.223718 s:  VX_ZONE_WARNING:[tivxCaptureSetTimeout:774]  CAPTURE: WARNING: Error frame not provided using tivxCaptureRegisterErrorFrame, defaulting to waiting forever !!!
    
    
    Unsupported command
    
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice: p
    
    
    Summary of CPU load,
    ====================
    
    CPU: mpu1_0: TOTAL LOAD =   0.50 % ( HWI =   0. 0 %, SWI =   0. 3 % )
    CPU: mcu2_0: TOTAL LOAD =  11. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU: mcu2_1: TOTAL LOAD =  11. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c6x_2: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    CPU:  c7x_1: TOTAL LOAD =   0. 0 % ( HWI =   0. 0 %, SWI =   0. 0 % )
    
    
    HWA performance statistics,
    ===========================
    
    
    
    DDR performance statistics,
    ===========================
    
    DDR: READ  BW: AVG =    967 MB/s, PEAK =   1463 MB/s
    DDR: WRITE BW: AVG =    498 MB/s, PEAK =    642 MB/s
    DDR: TOTAL BW: AVG =   1465 MB/s, PEAK =   2105 MB/s
    
    
    Detailed CPU performance/memory statistics,
    ===========================================
    
    CPU: mcu2_0: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_0: TASK:       REMOTE_SRV:   0. 2 %
    CPU: mcu2_0: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CPU_0:   0. 0 %
    CPU: mcu2_0: TASK:          TIVX_NF:   0. 0 %
    CPU: mcu2_0: TASK:        TIVX_LDC1:   0. 0 %
    CPU: mcu2_0: TASK:        TIVX_MSC1:   0. 0 %
    CPU: mcu2_0: TASK:        TIVX_MSC2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_VISS1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT1:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT2:   0. 3 %
    CPU: mcu2_0: TASK:       TIVX_DISP1:   0. 3 %
    CPU: mcu2_0: TASK:       TIVX_DISP2:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CSITX:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT3:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT4:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT5:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT6:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT7:   0. 0 %
    CPU: mcu2_0: TASK:       TIVX_CAPT8:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    CPU: mcu2_0: TASK:      TIVX_DISP_M:   0. 0 %
    
    CPU: mcu2_0: HEAP:   DDR_SHARED_MEM: size =   16777216 B, free =   16689920 B ( 99 % unused)
    CPU: mcu2_0: HEAP:           L3_MEM: size =     262144 B, free =     261888 B ( 99 % unused)
    
    CPU: mcu2_1: TASK:           IPC_RX:   0. 0 %
    CPU: mcu2_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU: mcu2_1: TASK:        LOAD_TEST:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_SDE:   0. 0 %
    CPU: mcu2_1: TASK:         TIVX_DOF:   0. 0 %
    CPU: mcu2_1: TASK:       TIVX_CPU_1:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU: mcu2_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU: mcu2_1: HEAP:   DDR_SHARED_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU: mcu2_1: HEAP:           L3_MEM: size =     262144 B, free =     262144 B (100 % unused)
    
    CPU:  c6x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_1: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_1: HEAP:   DDR_SHARED_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_1: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_1: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B ( 14 % unused)
    
    CPU:  c6x_2: TASK:           IPC_RX:   0. 0 %
    CPU:  c6x_2: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c6x_2: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c6x_2: TASK:         TIVX_CPU:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c6x_2: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c6x_2: HEAP:   DDR_SHARED_MEM: size =   16777216 B, free =   16773376 B ( 99 % unused)
    CPU:  c6x_2: HEAP:           L2_MEM: size =     229376 B, free =     229376 B (100 % unused)
    CPU:  c6x_2: HEAP:  DDR_SCRATCH_MEM: size =   50331648 B, free =   50331648 B ( 14 % unused)
    
    CPU:  c7x_1: TASK:           IPC_RX:   0. 0 %
    CPU:  c7x_1: TASK:       REMOTE_SRV:   0. 0 %
    CPU:  c7x_1: TASK:        LOAD_TEST:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      TIVX_CPU_PR:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_RX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    CPU:  c7x_1: TASK:      IPC_TEST_TX:   0. 0 %
    
    CPU:  c7x_1: HEAP:   DDR_SHARED_MEM: size =  268435456 B, free =  268435200 B (  3 % unused)
    CPU:  c7x_1: HEAP:           L3_MEM: size =    8159232 B, free =    8159232 B (100 % unused)
    CPU:  c7x_1: HEAP:           L2_MEM: size =     458752 B, free =     458752 B (100 % unused)
    CPU:  c7x_1: HEAP:           L1_MEM: size =      16384 B, free =      16384 B (100 % unused)
    CPU:  c7x_1: HEAP:  DDR_SCRATCH_MEM: size =  402653184 B, free =  402653184 B (  4 % unused)
    
    
    GRAPH:         graph_84 (#nodes =   2, #executions =    133)
     NODE:       CAPTURE2:                  node_95: avg =  24400 usecs, min/max =  15843 /  37842 usecs, #executions =        133
     NODE:       DISPLAY1:                  node_96: avg =   8753 usecs, min/max =     71 /  17176 usecs, #executions =        133
    
     PERF:            TOTAL: avg =  33678 usecs, min/max =  16985 /  82488 usecs, #executions =        132
    
     PERF:            TOTAL:   29.69 FPS
    
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice:
    Unsupported command
    
    
    
     ==========================
     Demo : Single Camera w/ 2A
     ==========================
    
     p: Print performance statistics
    
     s: Save Sensor RAW, VISS Output and H3A output images to File System
    
     e: Export performance statistics
    
     u: Update DCC from File System
    
    
     x: Exit
    
     Enter Choice: x
    
       142.308527 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... !!!
    [MCU2_0]    142.308811 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
       142.309833 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... Done !!!
    [MCU2_0]    142.309111 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x84
    [MCU2_0]    142.309336 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    142.309591 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    142.309644 s: [iss_sensors] in func ecarx_8MP_StreamOff end
    [MCU2_0]    142.309680 s:
       142.352509 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... !!!
       142.353733 s: ISS: Stopping sensor [ECARX_8MP_UYVY] ... Done !!!
       142.353751 s:  VX_ZONE_ERROR:[ownReleaseReferenceInt:307] Invalid reference
    [MCU2_0]    142.352735 s: Board_MAX96712GetI2CAddr : ACM i2c2 config
    [MCU2_0]    142.353016 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    142.353238 s: write 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    142.353494 s: read 16 bits reg success: addr 0x29, reg 0x8a0, val 0x4
    [MCU2_0]    142.353545 s: [iss_sensors] in func ecarx_8MP_StreamOff end
    [MCU2_0]    142.353581 s:
    [MCU2_0]    142.354200 s: ==========================================================
    [MCU2_0]    142.354287 s:  Capture Status: Instance|0
    [MCU2_0]    142.354321 s: ==========================================================
    [MCU2_0]    142.354368 s:  overflowCount: 0
    [MCU2_0]    142.354403 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    142.354440 s:  frontFIFOOvflCount: 0
    [MCU2_0]    142.354473 s:  crcCount: 0
    [MCU2_0]    142.354505 s:  eccCount: 0
    [MCU2_0]    142.354538 s:  correctedEccCount: 0
    [MCU2_0]    142.354573 s:  dataIdErrorCount: 0
    [MCU2_0]    142.354608 s:  invalidAccessCount: 0
    [MCU2_0]    142.354642 s:  invalidSpCount: 0
    [MCU2_0]    142.354680 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    142.354711 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Count |
    [MCU2_0]    142.354788 s:            0 |               934 |                  934 |                0 |                 0 |
    Error : app_delete_graph returned 0xfffffff4
    [MCU2_0]    142.355434 s: ==========================================================
    [MCU2_0]    142.355524 s:  Capture Status: Instance|1
    [MCU2_0]    142.355559 s: ==========================================================
    [MCU2_0]    142.355607 s:  overflowCount: 0
    [MCU2_0]    142.355643 s:  spuriousUdmaIntrCount: 0
    [MCU2_0]    142.355680 s:  frontFIFOOvflCount: 0
    [MCU2_0]    142.355715 s:  crcCount: 0
    [MCU2_0]    142.355746 s:  eccCount: 0
    [MCU2_0]    142.355779 s:  correctedEccCount: 0
    [MCU2_0]    142.355813 s:  dataIdErrorCount: 0
    [MCU2_0]    142.355848 s:  invalidAccessCount: 0
    [MCU2_0]    142.355883 s:  invalidSpCount: 0
    [MCU2_0]    142.355920 s:  strmFIFOOvflCount[0]: 0
    [MCU2_0]    142.355951 s:  Channel Num | Frame Queue Count | Frame De-queue Count | Frame Drop Count | Error Frame Count |
       142.359975 s: ISS: De-initializing sensor [ECARX_8MP_UYVY] ... !!!
       142.360301 s: ISS: De-initializing sensor [ECARX_8MP_UYVY] ... Done !!!
       142.360316 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:100] De-Initialization Done for HOST !!!
       142.364676 s:  VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    MEM: Alloc's: 6 alloc's of 66355460 bytes
    MEM: Free's : 6 free's  of 66355460 bytes
    MEM: Open's : 0 allocs  of 0 bytes
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    root@ti-j72xx:/opt/vision_apps#
    

    5. 2nd step : 2*1920x1080 display

    - Not start !

    In addition. 

    When I check the DSI lane by oscilloscope directly, there are no output clk from TDA4. It is always keeps same voltage(1.2V) without any fluctuation.

    1. the serializer also needs to set three parameters. How are these parameters set in TDA4 DSI interface side?

    2. And how to enable DSI continuous clock mode ?

    Best Regards,

    Murphy

  • Hi Murphy,

    2. And how to enable DSI continuous clock mode ?

    I think DSI is configured to output continuous clock, so you should see clock even when data is not transmitted.

    How many output lanes are you using? Can you try using 2 lanes? I remember some issue in using 4 lanes, so can you first try 2 lane mode? 

    Regards,

    Brijesh

  • Hi, Brijesh

    1.  After run ./run_app_single_cam.sh , Checked the DSI clkp & clkn lane by oscilloscope directly, there are no output DSI_clk_p from TDA4. It is always keeps same voltage(1.2V) without any fluctuation.

    1. the serializer also needs to set three parameters. How are these parameters set in TDA4 DSI interface side?

    2. Also these three parameters are required to pair with the serializer.

    please let me know  how are these three parameters set in TDA4 DSI interface side ?

    Another way of saying three params, does the tda4 DSI interface meet the DSI basic configuration 1. null-packet   2. enable eotp  3. sync pules ?

    params-explanation:
    The DPI Constructor builds the DPI video signals (HS/VS/DE/24-bit video) based off video timings derived from the Sync Event short packets, RGB888 long packets, and the Blanking/Null long packets. Video Timing Modes GMSL2 DSI serializers support two video timings modes:
    • Non-burst Mode with Sync Pulses
    • Non-burst Mode with Sync Events 

    Regards,

    Murphy

  • Hi Brijesh

    I think DSI is configured to output continuous clock, so you should see clock even when data is not transmitted.

    DSIpatch.diff
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
    index cafefd617..7695590eb 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/include/dss_dctrl.h
    @@ -604,6 +604,12 @@ typedef struct
         /**< DSI Instance ID, currently note used */
         uint32_t numOfLanes;
         /**< Number of outputs lanes for DSI output, max 4 */
    +	uint32_t laneSpeedInKbps;
    +    /**< Exact DPHY lane speed from the selected speed band in Megabits per sec.
    +     *   This parameter is set to default value during init time.
    +     *   If updated in the application after init, newly set value will be used
    +     *   for DPHY clock configurations.
    +     */
     } Dss_DctrlDsiParams;
     
     /* ========================================================================== */
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    index 162ee9420..1b4eac7a6 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/pdk_jacinto_08_01_00_36/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    @@ -70,6 +70,7 @@
     /* Base Address of DSI Wrapper */
     #define DSITX2_WRAP_REGS_BASE               (CSL_DSS_DSI0_DSI_WRAP_MMR_VBUSP_CFG_DSI_WRAP_BASE)
     
    +#define DSITX_DPHY_REF_CLK_KHZ_DEF            (19200U)
     
     /* ========================================================================== */
     /*                         Structure Declarations                             */
    @@ -100,6 +101,22 @@ typedef struct
     
     } Dss_DctrlDSIDrvObj;
     
    +/**
    + *  struct Dsitx_DphyRangeData
    + *
    + *  \brief This structure holds information about DSI Tx Range. Typically used
    + *         for DPHY programming.
    + *
    + */
    +typedef struct
    +{
    +    uint32_t rangeMin;
    +    /**< Lower boundary of the range */
    +    uint32_t rangeMax;
    +    /**< Hogher boundary of the range */
    +    uint32_t progVal;
    +    /**< Value to be programmed for given range */
    +} Dsitx_DphyRangeData;
     
     
     /* ========================================================================== */
    @@ -128,6 +145,184 @@ extern "C" {
     
     static Dss_DctrlDSIDrvObj gDssDctrlDsiDrvObj;
     
    +/* This contains information of the PLL input divider value for DPHY
    +   rangeMin and rangeMax is in KHz */
    +
    +static Dsitx_DphyRangeData gDsiTxIpDivInfo[] =
    +{
    +    {
    +        .rangeMin = 9600U,
    +        .rangeMax = 19200U,
    +        .progVal  = 1U,
    +    },
    +    {
    +        .rangeMin = 19200U,
    +        .rangeMax = 38400U,
    +        .progVal  = 2U,
    +    },
    +    {
    +        .rangeMin = 38400U,
    +        .rangeMax = 76800U,
    +        .progVal  = 4U,
    +    },
    +    {
    +        .rangeMin = 76800U,
    +        .rangeMax = 150000U,
    +        .progVal  = 8U,
    +    },
    +};
    +
    +/* This contains information of the PLL output divider value for DPHY
    +   rangeMin and rangeMax is in Mbps */
    +static Dsitx_DphyRangeData gDsiTxOpDivInfo[] =
    +{
    +    {
    +        .rangeMin = 1250U,
    +        .rangeMax = 2500U,
    +        .progVal  = 1U,
    +    },
    +    {
    +        .rangeMin = 630U,
    +        .rangeMax = 1240U,
    +        .progVal  = 2U,
    +    },
    +    {
    +        .rangeMin = 320U,
    +        .rangeMax = 620U,
    +        .progVal  = 4U,
    +    },
    +    {
    +        .rangeMin = 160U,
    +        .rangeMax = 310U,
    +        .progVal  = 8U,
    +    },
    +    {
    +        .rangeMin = 80U,
    +        .rangeMax = 150U,
    +        .progVal  = 16U,
    +    },
    +};
    +
    +/* This contains information of the PLL output divider value for DPHY
    +   rangeMin and rangeMax is in Mbps */
    +static Dsitx_DphyRangeData gDsiTxLaneSpeedBandInfo[] =
    +{
    +    {
    +        .rangeMin = 80U,
    +        .rangeMax = 100U,
    +        .progVal  = 0x0,
    +    },
    +    {
    +        .rangeMin = 100U,
    +        .rangeMax = 120U,
    +        .progVal  = 0x1,
    +    },
    +    {
    +        .rangeMin = 120U,
    +        .rangeMax = 160U,
    +        .progVal  = 0x2,
    +    },
    +    {
    +        .rangeMin = 160U,
    +        .rangeMax = 200U,
    +        .progVal  = 0x3,
    +    },
    +    {
    +        .rangeMin = 200U,
    +        .rangeMax = 240U,
    +        .progVal  = 0x4,
    +    },
    +    {
    +        .rangeMin = 240U,
    +        .rangeMax = 320U,
    +        .progVal  = 0x5,
    +    },
    +    {
    +        .rangeMin = 320U,
    +        .rangeMax = 390U,
    +        .progVal  = 0x6,
    +    },
    +    {
    +        .rangeMin = 390U,
    +        .rangeMax = 450U,
    +        .progVal  = 0x7,
    +    },
    +    {
    +        .rangeMin = 450U,
    +        .rangeMax = 510U,
    +        .progVal  = 0x8,
    +    },
    +    {
    +        .rangeMin = 510U,
    +        .rangeMax = 560U,
    +        .progVal  = 0x9,
    +    },
    +    {
    +        .rangeMin = 560U,
    +        .rangeMax = 640U,
    +        .progVal  = 0xA,
    +    },
    +    {
    +        .rangeMin = 640U,
    +        .rangeMax = 690U,
    +        .progVal  = 0xB,
    +    },
    +    {
    +        .rangeMin = 690U,
    +        .rangeMax = 770U,
    +        .progVal  = 0xC,
    +    },
    +    {
    +        .rangeMin = 770U,
    +        .rangeMax = 870U,
    +        .progVal  = 0xD,
    +    },
    +    {
    +        .rangeMin = 870U,
    +        .rangeMax = 950U,
    +        .progVal  = 0xE,
    +    },
    +    {
    +        .rangeMin = 950U,
    +        .rangeMax = 1000U,
    +        .progVal  = 0xF,
    +    },
    +    {
    +        .rangeMin = 1000U,
    +        .rangeMax = 1200U,
    +        .progVal  = 0x10,
    +    },
    +    {
    +        .rangeMin = 1200U,
    +        .rangeMax = 1400U,
    +        .progVal  = 0x11,
    +    },
    +    {
    +        .rangeMin = 1400U,
    +        .rangeMax = 1600U,
    +        .progVal  = 0x12,
    +    },
    +    {
    +        .rangeMin = 1600U,
    +        .rangeMax = 1800U,
    +        .progVal  = 0x13,
    +    },
    +    {
    +        .rangeMin = 1800U,
    +        .rangeMax = 2000U,
    +        .progVal  = 0x14,
    +    },
    +    {
    +        .rangeMin = 2000U,
    +        .rangeMax = 2200U,
    +        .progVal  = 0x15,
    +    },
    +    {
    +        .rangeMin = 2200U,
    +        .rangeMax = 2500U,
    +        .progVal  = 0x16,
    +    },
    +};
     
     /* ========================================================================== */
     /*                  Internal/Private Function Declarations                    */
    @@ -156,6 +351,7 @@ static int32_t dssDctrlEnableDsiLink(Dss_DctrlDSIDrvObj *dsiObj);
     static int32_t dssDctrlEnableDsiDatapath(Dss_DctrlDSIDrvObj *dsiObj);
     static int32_t dssDctrlWaitForLaneReady(Dss_DctrlDSIDrvObj *dsiObj);
     
    +static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms);
     
     /* ========================================================================== */
     /*                          Function Definitions                              */
    @@ -179,10 +375,10 @@ void Dss_dctrlDrvInitDSI()
             (DPHYTX0_CORE_BASE + CSL_WIZ16B8M4CDT_WIZ_CONFIG_MOD_VER);
     
     
    -    dsiObj->dphyTxIpDiv = 0x2;
    -    dsiObj->dphyTxOpDiv = 0x2;
    -    dsiObj->dphyTxFbDiv = 0x173;
    -    dsiObj->dphyTxRate = 0x1CE;
    +//    dsiObj->dphyTxIpDiv = 0x2;
    +//    dsiObj->dphyTxOpDiv = 0x2;
    +//    dsiObj->dphyTxFbDiv = 0x173;
    +//    dsiObj->dphyTxRate = 0x1CE;
         dsiObj->cfgDsiTx.numOfLanes = 0x2u;
         dsiObj->privDsiTx.numOfLanes = 0x2u;
     }
    @@ -198,6 +394,8 @@ int32_t Dss_dctrlDrvSetDSIParams(Dss_DctrlDrvInfo *drvInfo,
         dsiObj->cfgDsiTx.numOfLanes = dsiPrms->numOfLanes;
         dsiObj->privDsiTx.numOfLanes = dsiPrms->numOfLanes;
     
    +	status = dssdctrlCalcDsiParams(dsiObj, dsiPrms);
    +
         /* Checks to see if the configuration (num of lanes) is valid */
         status = DSITX_Probe(&dsiObj->cfgDsiTx, &dsiObj->sysReqDsiTx);
         if (CDN_EOK == status)
    @@ -294,6 +492,105 @@ int32_t Dss_dctrlDrvEnableVideoDSI(Dss_DctrlDrvInfo *drvInfo,
     /*                  Internal/Private Function Definitions                     */
     /* ========================================================================== */
     
    +static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms)
    +{
    +    int32_t retVal = FVID2_SOK;
    +    uint32_t min, max;
    +    uint32_t idx = 0U;
    +    uint64_t tempResult, refClkKHz;
    +
    +    /* Get speed band for given lane speed */
    +    for (idx = 0U ;
    +         idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData));
    +         idx++)
    +    {
    +        min = gDsiTxLaneSpeedBandInfo[idx].rangeMin * 1000;
    +        max = gDsiTxLaneSpeedBandInfo[idx].rangeMax * 1000;
    +        if ((dsiPrms->laneSpeedInKbps >= min) &&
    +            (dsiPrms->laneSpeedInKbps <= max))
    +        {
    +            break;
    +        }
    +
    +    }
    +    if (idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData)))
    +    {
    +        dsiObj->dphyTxRate = (gDsiTxLaneSpeedBandInfo[idx].progVal) |
    +            (gDsiTxLaneSpeedBandInfo[idx].progVal << 5);
    +    }
    +    else
    +    {
    +        retVal = FVID2_EFAIL;
    +    }
    +
    +    if (retVal == FVID2_SOK)
    +    {
    +        /* TODO: Read the clock runtime through sciclient APIs */
    +        refClkKHz = DSITX_DPHY_REF_CLK_KHZ_DEF;
    +        /* Calculate DPHY ipdiv - PLL input divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            for (idx = 0U ;
    +                 idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData));
    +                 idx++)
    +            {
    +                if ((refClkKHz >= gDsiTxIpDivInfo[idx].rangeMin) &&
    +                    (refClkKHz < gDsiTxIpDivInfo[idx].rangeMax))
    +                {
    +                    break;
    +                }
    +            }
    +            if (idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData)))
    +            {
    +                dsiObj->dphyTxIpDiv = gDsiTxIpDivInfo[idx].progVal;
    +            }
    +            else
    +            {
    +                retVal = FVID2_EFAIL;
    +            }
    +        }
    +
    +        /* Calculate DPHY opdiv - PLL output divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            for (idx = 0U ;
    +                 idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData));
    +                 idx++)
    +            {
    +                min = gDsiTxOpDivInfo[idx].rangeMin * 1000;
    +                max = gDsiTxOpDivInfo[idx].rangeMax * 1000;
    +                if ((dsiPrms->laneSpeedInKbps >= min) &&
    +                    (dsiPrms->laneSpeedInKbps <= max))
    +                {
    +                    break;
    +                }
    +            }
    +            if (idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData)))
    +            {
    +                dsiObj->dphyTxOpDiv = gDsiTxOpDivInfo[idx].progVal;
    +            }
    +            else
    +            {
    +                retVal = FVID2_EFAIL;
    +            }
    +        }
    +
    +        /* Calculate DPHY fbdiv - PLL feedback divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            tempResult = (((uint64_t)dsiPrms->laneSpeedInKbps) *
    +                          ((uint64_t)2U) *
    +                          ((uint64_t)dsiObj->dphyTxIpDiv) *
    +                          ((uint64_t)dsiObj->dphyTxOpDiv));
    +            tempResult /= (uint64_t)refClkKHz;
    +
    +            dsiObj->dphyTxFbDiv = (uint32_t)tempResult;
    +        }
    +    }
    +
    +    return retVal;
    +}
    +
     static void dssDctrlSetDSIInCtrlMod()
     {
         /*
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
    index d33912b0c..76ab39c85 100644
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/modules/src/app_display_module.c
    @@ -82,10 +82,10 @@ vx_status app_init_display(vx_context context, DisplayObj *displayObj, char *obj
     
                 displayObj->disp_params.opMode = TIVX_KERNEL_DISPLAY_ZERO_BUFFER_COPY_MODE;//TIVX_KERNEL_DISPLAY_BUFFER_COPY_MODE;
                 displayObj->disp_params.pipeId = 0; /* pipe ID = 2 */
    -            displayObj->disp_params.outWidth = DISPLAY_WIDTH;
    -            displayObj->disp_params.outHeight = DISPLAY_HEIGHT;
    -            displayObj->disp_params.posX = (1920-DISPLAY_WIDTH)/2;
    -            displayObj->disp_params.posY = (1080-DISPLAY_HEIGHT)/2;
    +            displayObj->disp_params.outWidth = 1920;//DISPLAY_WIDTH;
    +            displayObj->disp_params.outHeight = 1080;//DISPLAY_HEIGHT;
    +            displayObj->disp_params.posX = 0;// (1920-DISPLAY_WIDTH)/2;
    +            displayObj->disp_params.posY = 0;// (1080-DISPLAY_HEIGHT)/2;
     
                 displayObj->disp_params_obj = vxCreateUserDataObject(context, "tivx_display_params_t", sizeof(tivx_display_params_t), &displayObj->disp_params);
                 status = vxGetStatus((vx_reference)displayObj->disp_params_obj);
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
    index 94709bfe7..e5f121764 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/platform/j721e/rtos/common/app_init.c
    @@ -550,15 +550,19 @@ int32_t appInit()
             #ifdef ENABLE_DSS_DSI
                 prm.display_type = APP_DSS_DEFAULT_DISPLAY_TYPE_DSI;
     
    -            prm.timings.width        = 1280U;
    -            prm.timings.height       = 800U;
    +            //prm.timings.width        = 1280U;
    +            //prm.timings.height       = 800U;
    +            prm.timings.width        = 1920U;
    +            prm.timings.height       = 1080U;
                 prm.timings.hFrontPorch  = 110U;
                 prm.timings.hBackPorch   = 220U;
                 prm.timings.hSyncLen     = 40U;
                 prm.timings.vFrontPorch  = 5U;
                 prm.timings.vBackPorch   = 20U;
                 prm.timings.vSyncLen     = 5U;
    -            prm.timings.pixelClock   = 74250000ULL;
    +            //prm.timings.pixelClock   = 74250000ULL;
    +            prm.timings.pixelClock   =   143190000ULL;
    +			appLogPrintf("APP: zpf_DSI timming Init ... !!!\n");
             #endif
             status = appDssDefaultInit(&prm);
             APP_ASSERT_SUCCESS(status);
    diff --git a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c
    index 190728a9b..ef07bf4d6 100755
    --- a/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c
    +++ b/ti-processor-sdk-rtos-j721e-evm-08_01_00_13/vision_apps/utils/dss/src/app_dctrl.c
    @@ -534,7 +534,9 @@ static int32_t appDctrlSetDsiParamsCmd(Fvid2_Handle handle,
     
         if(0 == retVal)
         {
    -        dsi_params.numOfLanes = prms->num_lanes;
    +        dsi_params.numOfLanes = 2u;//prms->num_lanes;
    +		dsi_params.laneSpeedInKbps = 1800000u;
    +        appLogPrintf("DCTRL: ERROR: zpf_setting numOfLanes = %d, lane-Tx-rate = %ld !!!\n", dsi_params.numOfLanes, dsi_params.laneSpeedInKbps);
     
             retVal = Fvid2_control(handle, IOCTL_DSS_DCTRL_SET_DSI_PARAMS,
                 &dsi_params, NULL);
    

    After changed to 2-lane, Waveform that I measured, I don't think this is the waveform of a normal clock lane. 

    Regards,

    Murphy

  • Hi Murphy,

    Are you using EVM to check this? Because on EVM, the DSI output is connected to ub941 serializer..

    If you are using your own board, what is the reference sysclock available on this board? This patch assumes that it is 19.2MHz. If it is different, we would have to change DSITX_DPHY_REF_CLK_KHZ_DEF macro accordingly..

    In addition, can you run some demo and see if there is any clock? 

    Regards,

    Brijesh 

  • Hi, Brijesh

    Using custom board(max96789 serializer & its driver under PSDKLA8.1). not ub941 serializer.

    If you are using your own board, what is the reference sysclock available on this board? This patch assumes that it is 19.2MHz.

    1. Help me to understand this <reference sysclock available on my board>.

    If I remember correctly, it was still using the sysclock same as EVM settings on our custom board. Nothing changed !!

    As you said all of this PLL stuffs calculated from 19.2MHz.

    2. How to calculate this value to such as 19.2MHz/20MHz/40MHz and so on, Based on sysclock ? Just like this 19.2MHz came out of nowhere !Thinking

    Or Did you mean the 19.2MHz is the oscillator on the serializer ?

    If it is different, we would have to change DSITX_DPHY_REF_CLK_KHZ_DEF macro accordingly..

    1. Guess the difference you're talking about is the difference in sysclock between the EVM and custom board. 

    2. How to get sysclock from custom board ?

     

    Regards, 

    Murphy

  • Hi Murphy,

    As you said all of this PLL stuffs calculated from 19.2MHz.

    But this 19.2MHz clock is coming from the sysclk, so if you have different sysclk, crystal on the board, this reference needs to be changed.

    2. How to calculate this value to such as 19.2MHz/20MHz/40MHz and so on, Based on sysclock ? Just like this 19.2MHz came out of nowhere

    This is the reference input clock to the SoC, ie crystal on the board. You would also require to indicate the reference clock in the boo tpins. Not sure if this is already done. 

    Please refer to below section of TRM/datasheet.. 

    Regards,

    Brijesh

  • Hi Brijesh,

    This is the reference input clock to the SoC, ie crystal on the board.

    After confirming with our hardware team, the system clock is 19.2MHz.  Same as used on EVM. 

    In addition, checked ./run_app_single_cam.sh and ./run_app_multi_cam.sh, Probe on DSI clk_p or clk_n pin waveform still nothing happened. 

    Regards,

    Murphy

  • Hi Murphy,

    I tested this patch on the EVM, i see it working fine. I am able to get the display out of UB941. 

    One thing to note, if the lane speed provide is not correct, FB DIV value would be incorrect and then i could not get the data. Like my LCD support 890.4Mbps lane speed, if i just used 890Mbps lane speed, it does not work. So can you please make sure to use correct lane speed, as required by your receiver. 

    Regards,

    Brijesh

  • Hi Brijesh,

    please confirm !!!

    Could you test SDK version 8.1  on EVM by using this patch? 

    1. I have a question why I can't measure DSI-Tx clkp or clkn signal on SoC side without the influence of serializer. 

    Or is it just because CLK is affected by lanespeed rate calculation error ?

    Regards,

    Murphy

  • Hi Murphy,

    There is no driver change in 8.1 and 8.2, i expect the result to be same as 8.2 on 8.1.

    1. I have a question why I can't measure DSI-Tx clkp or clkn signal on SoC side without the influence of serializer. 

    Or is it just because CLK is affected by lanespeed rate calculation error ?

    I did not get this. Are you seeing clock only after configuring serializer?  DSI CLK output is not dependent on the serializer. We should see the CLK whenever  there is a data from the DSS. 

    Regards,

    Brijesh

  • Hi Brijesh,

    DSI CLK output is not dependent on the serializer. We should see the CLK whenever  there is a data from the DSS. 

    Yes, NO cameras & NO display.  Just patch applied, Tested on EVM by using SDK8.1 & SDK8.2, But Neither SDK succeeded in measuring the clock.

    Probe on DSI-Tx clkp or clkn there is no any toggling !!!

    Please add a picture attachment to illustrate the measured clk waveform.

    Addition. SDK8.1 source ./vision_apps_init.sh succeed. SDK8.2 failed log as below. 

    1. Does a source failure affect the clock toggling? < I do not think this source failure can caurse clk toggling >

    root@j7-evm:~# cd /opt/vision_apps/
    root@j7-evm:/opt/vision_apps#
    root@j7-evm:/opt/vision_apps#
    root@j7-evm:/opt/vision_apps# source ./vision_apps_init.sh
    root@j7-evm:/opt/vision_apps# [MCU2_0]      3.791415 s: CIO: Init ... Done !!!
    [MCU2_0]      3.791482 s: ### CPU Frequency = 1000000000 Hz
    [MCU2_0]      3.791524 s: APP: Init ... !!!
    [MCU2_0]      3.791550 s: SCICLIENT: Init ... !!!
    [MCU2_0]      3.791802 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [MCU2_0]      3.791852 s: SCICLIENT: DMSC FW revision 0x15
    [MCU2_0]      3.791886 s: SCICLIENT: DMSC FW ABI revision 3.1
    [MCU2_0]      3.791923 s: SCICLIENT: Init ... Done !!!
    [MCU2_0]      3.791950 s: UDMA: Init ... !!!
    [MCU2_0]      3.793256 s: UDMA: Init ... Done !!!
    [MCU2_0]      3.793314 s: MEM: Init ... !!!
    [MCU2_0]      3.793358 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ d9000000 of size 16777216 bytes !!!
    [MCU2_0]      3.793434 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000000) @ 3600000 of size 262144 bytes !!!
    [MCU2_0]      3.793499 s: MEM: Init ... Done !!!
    [MCU2_0]      3.793525 s: IPC: Init ... !!!
    [MCU2_0]      3.793588 s: IPC: 6 CPUs participating in IPC !!!
    [MCU2_0]      3.793636 s: IPC: Waiting for HLOS to be ready ... !!!
    [MCU2_0]     16.743623 s: IPC: HLOS is ready !!!
    [MCU2_0]     16.758797 s: IPC: Init ... Done !!!
    [MCU2_0]     16.758865 s: APP: Syncing with 5 CPUs ... !!!
    [MCU2_0]     17.043977 s: APP: Syncing with 5 CPUs ... Done !!!
    [MCU2_0]     17.044208 s: REMOTE_SERVICE: Init ... !!!
    [MCU2_0]     17.045753 s: REMOTE_SERVICE: Init ... Done !!!
    [MCU2_0]     17.045818 s: ETHFW: Init ... !!!
    [MCU2_0]     17.065758 s: ETHFW: Shared multicasts (software fanout):
    [MCU2_0]     17.065828 s:   01:00:5e:00:00:01
    [MCU2_0]     17.065884 s:   01:00:5e:00:00:fb
    [MCU2_0]     17.065929 s:   01:00:5e:00:00:fc
    [MCU2_0]     17.065974 s:   33:33:00:00:00:01
    [MCU2_0]     17.066019 s:   33:33:ff:1d:92:c2
    [MCU2_0]     17.066062 s:   01:80:c2:00:00:00
    [MCU2_0]     17.066106 s:   01:80:c2:00:00:03
    [MCU2_0]     17.066161 s: ETHFW: Reserved multicasts:
    [MCU2_0]     17.066186 s:   01:80:c2:00:00:0e
    [MCU2_0]     17.066231 s:   01:1b:19:00:00:00
    [MCU2_0]     17.066477 s: EnetMcm: CPSW_9G on MAIN NAVSS
    [MCU2_0]     17.076406 s: CpswMacPort_setSgmiiInterface: MAC 2: SERDES PLL is not locked
    [MCU2_0]     17.076483 s: CpswMacPort_setSgmiiInterface: MAC 2: Failed to set SGMII interface: -9
    [MCU2_0]     17.076542 s: CpswMacPort_open: MAC 2: failed to set Q/SGMII interface: -9
    [MCU2_0]     17.076589 s: EnetMod_open: cpsw9g.macport2: Failed to open: -9
    [MCU2_0]     17.076636 s: Cpsw_openPortLinkWithPhy: Port 2: Failed to open MAC: -9
    [MCU2_0]     17.076684 s: Cpsw_ioctlInternal: Port 2: Failed to open port link: -9
    [MCU2_0]     17.076722 s: EnetMcm_enablePorts() failed to open MAC port: -9
    [MCU2_0]     17.076858 s: CpswMacPort_setSgmiiInterface: MAC 5: SERDES PLL is not locked
    [MCU2_0]     17.076920 s: CpswMacPort_setSgmiiInterface: MAC 5: Failed to set SGMII interface: -9
    [MCU2_0]     17.076974 s: CpswMacPort_open: MAC 5: failed to set Q/SGMII interface: -9
    [MCU2_0]     17.077021 s: EnetMod_open: cpsw9g.macport5: Failed to open: -9
    [MCU2_0]     17.077066 s: Cpsw_openPortLinkWithPhy: Port 5: Failed to open MAC: -9
    [MCU2_0]     17.077110 s: Cpsw_ioctlInternal: Port 5: Failed to open port link: -9
    [MCU2_0]     17.077159 s: EnetMcm_enablePorts() failed to open MAC port: -9
    [MCU2_0]     17.077290 s: CpswMacPort_setSgmiiInterface: MAC 6: SERDES PLL is not locked
    [MCU2_0]     17.077351 s: CpswMacPort_setSgmiiInterface: MAC 6: Failed to set SGMII interface: -9
    [MCU2_0]     17.077403 s: CpswMacPort_open: MAC 6: failed to set Q/SGMII interface: -9
    [MCU2_0]     17.077449 s: EnetMod_open: cpsw9g.macport6: Failed to open: -9
    [MCU2_0]     17.077494 s: Cpsw_openPortLinkWithPhy: Port 6: Failed to open MAC: -9
    [MCU2_0]     17.077538 s: Cpsw_ioctlInternal: Port 6: Failed to open port link: -9
    [MCU2_0]     17.077575 s: EnetMcm_enablePorts() failed to open MAC port: -9
    [MCU2_0]     17.077706 s: CpswMacPort_setSgmiiInterface: MAC 7: SERDES PLL is not locked
    [MCU2_0]     17.077765 s: CpswMacPort_setSgmiiInterface: MAC 7: Failed to set SGMII interface: -9
    [MCU2_0]     17.077821 s: CpswMacPort_open: MAC 7: failed to set Q/SGMII interface: -9
    [MCU2_0]     17.077869 s: EnetMod_open: cpsw9g.macport7: Failed to open: -9
    [MCU2_0]     17.077921 s: Cpsw_openPortLinkWithPhy: Port 7: Failed to open MAC: -9
    [MCU2_0]     17.077968 s: Cpsw_ioctlInternal: Port 7: Failed to open port link: -9
    [MCU2_0]     17.078008 s: EnetMcm_enablePorts() failed to open MAC port: -9
    [MCU2_1]      3.750942 s: CIO: Init ... Done !!!
    [MCU2_1]      3.751012 s: ### CPU Frequency = 1000000000 Hz
    [MCU2_1]      3.751055 s: APP: Init ... !!!
    [MCU2_1]      3.751078 s: SCICLIENT: Init ... !!!
    [MCU2_1]      3.751329 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [MCU2_1]      3.751377 s: SCICLIENT: DMSC FW revision 0x15
    [MCU2_1]      3.751410 s: SCICLIENT: DMSC FW ABI revision 3.1
    [MCU2_1]      3.751445 s: SCICLIENT: Init ... Done !!!
    [MCU2_1]      3.751471 s: UDMA: Init ... !!!
    [MCU2_1]      3.752954 s: UDMA: Init ... Done !!!
    [MCU2_1]      3.753018 s: MEM: Init ... !!!
    [MCU2_1]      3.753060 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ da000000 of size 16777216 bytes !!!
    [MCU2_1]      3.753136 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 3640000 of size 262144 bytes !!!
    [MCU2_1]      3.753198 s: MEM: Init ... Done !!!
    [MCU2_1]      3.753223 s: IPC: Init ... !!!
    [MCU2_1]      3.753285 s: IPC: 6 CPUs participating in IPC !!!
    [MCU2_1]      3.753334 s: IPC: Waiting for HLOS to be ready ... !!!
    [MCU2_1]     17.028687 s: IPC: HLOS is ready !!!
    [MCU2_1]     17.043861 s: IPC: Init ... Done !!!
    [MCU2_1]     17.043928 s: APP: Syncing with 5 CPUs ... !!!
    [MCU2_1]     17.043976 s: APP: Syncing with 5 CPUs ... Done !!!
    [MCU2_1]     17.044012 s: REMOTE_SERVICE: Init ... !!!
    [MCU2_1]     17.045849 s: REMOTE_SERVICE: Init ... Done !!!
    [MCU2_1]     17.045912 s: FVID2: Init ... !!!
    [MCU2_1]     17.045981 s: FVID2: Init ... Done !!!
    [MCU2_1]     17.046014 s: VHWA: DMPAC: Init ... !!!
    [MCU2_1]     17.046041 s: SCICLIENT: Sciclient_pmSetModuleState module=48 state=2
    [MCU2_1]     17.046474 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_1]     17.046521 s: SCICLIENT: Sciclient_pmSetModuleState module=305 state=2
    [MCU2_1]     17.046966 s: SCICLIENT: Sciclient_pmSetModuleState success
    [MCU2_1]     17.047000 s: VHWA: DOF Init ... !!!
    [MCU2_1]     17.055461 s: VHWA: DOF Init ... Done !!!
    [MCU2_1]     17.055528 s: VHWA: SDE Init ... !!!
    [MCU2_1]     17.058217 s: VHWA: SDE Init ... Done !!!
    [MCU2_1]     17.058273 s: VHWA: DMPAC: Init ... Done !!!
    [MCU2_1]     17.058319 s:  VX_ZONE_INIT:Enabled
    [MCU2_1]     17.058348 s:  VX_ZONE_ERROR:Enabled
    [MCU2_1]     17.058374 s:  VX_ZONE_WARNING:Enabled
    [MCU2_1]     17.059540 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DMPAC_SDE
    [MCU2_1]     17.059805 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target DMPAC_DOF
    [MCU2_1]     17.060056 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:54] Added target IPU1-1
    [MCU2_1]     17.060111 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [MCU2_1]     17.060149 s: APP: OpenVX Target kernel init ... !!!
    [MCU2_1]     17.060457 s: APP: OpenVX Target kernel init ... Done !!!
    [MCU2_1]     17.060512 s: UDMA Copy: Init ... !!!
    [MCU2_1]     17.062275 s: UDMA Copy: Init ... Done !!!
    [MCU2_1]     17.062339 s: APP: Init ... Done !!!
    [MCU2_1]     17.062369 s: APP: Run ... !!!
    [MCU2_1]     17.062393 s: IPC: Starting echo test ...
    [MCU2_1]     17.065304 s: APP: Run ... Done !!!
    [MCU2_1]     17.066515 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[.] C7X_1[.]
    [MCU2_1]     17.066640 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[.]
    [MCU2_1]     17.066733 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[s] C66X_1[P] C66X_2[P] C7X_1[P]
    [C6x_1 ]      3.820004 s: CIO: Init ... Done !!!
    [C6x_1 ]      3.820030 s: ### CPU Frequency = 1350000000 Hz
    [C6x_1 ]      3.820041 s: APP: Init ... !!!
    [C6x_1 ]      3.820049 s: SCICLIENT: Init ... !!!
    [C6x_1 ]      3.820266 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C6x_1 ]      3.820278 s: SCICLIENT: DMSC FW revision 0x15
    [C6x_1 ]      3.820287 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C6x_1 ]      3.820297 s: SCICLIENT: Init ... Done !!!
    [C6x_1 ]      3.820306 s: UDMA: Init ... !!!
    [C6x_1 ]      3.821759 s: UDMA: Init ... Done !!!
    [C6x_1 ]      3.821777 s: MEM: Init ... !!!
    [C6x_1 ]      3.821791 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ dc000000 of size 16777216 bytes !!!
    [C6x_1 ]      3.821808 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!!
    [C6x_1 ]      3.821823 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ dd000000 of size 50331648 bytes !!!
    [C6x_1 ]      3.821839 s: MEM: Init ... Done !!!
    [C6x_1 ]      3.821848 s: IPC: Init ... !!!
    [C6x_1 ]      3.821868 s: IPC: 6 CPUs participating in IPC !!!
    [C6x_1 ]      3.821882 s: IPC: Waiting for HLOS to be ready ... !!!
    [C6x_1 ]     15.517012 s: IPC: HLOS is ready !!!
    [C6x_1 ]     15.520842 s: IPC: Init ... Done !!!
    [C6x_1 ]     15.520870 s: APP: Syncing with 5 CPUs ... !!!
    [C6x_1 ]     17.043976 s: APP: Syncing with 5 CPUs ... Done !!!
    [C6x_1 ]     17.043989 s: REMOTE_SERVICE: Init ... !!!
    [C6x_1 ]     17.044631 s: REMOTE_SERVICE: Init ... Done !!!
    [C6x_1 ]     17.044669 s:  VX_ZONE_INIT:Enabled
    [C6x_1 ]     17.044681 s:  VX_ZONE_ERROR:Enabled
    [C6x_1 ]     17.044690 s:  VX_ZONE_WARNING:Enabled
    [C6x_1 ]     17.045407 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C6x_1 ]     17.045426 s: APP: OpenVX Target kernel init ... !!!
    [C6x_1 ]     17.045800 s: APP: OpenVX Target kernel init ... Done !!!
    [C6x_1 ]     17.045821 s: UDMA Copy: Init ... !!!
    [C6x_1 ]     17.049394 s: UDMA Copy: Init ... Done !!!
    [C6x_1 ]     17.049412 s: APP: Init ... Done !!!
    [C6x_1 ]     17.050269 s: APP: Run ... !!!
    [C6x_1 ]     17.050279 s: IPC: Starting echo test ...
    [C6x_1 ]     17.051372 s: APP: Run ... Done !!!
    [C6x_1 ]     17.051696 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[x] C7X_1[P]
    [C6x_1 ]     17.052082 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_1 ]     17.065867 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[s] C66X_2[P] C7X_1[P]
    [C6x_2 ]      3.913576 s: CIO: Init ... Done !!!
    [C6x_2 ]      3.913602 s: ### CPU Frequency = 1350000000 Hz
    [C6x_2 ]      3.913613 s: APP: Init ... !!!
    [C6x_2 ]      3.913621 s: SCICLIENT: Init ... !!!
    [C6x_2 ]      3.913843 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C6x_2 ]      3.913856 s: SCICLIENT: DMSC FW revision 0x15
    [C6x_2 ]      3.913865 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C6x_2 ]      3.913875 s: SCICLIENT: Init ... Done !!!
    [C6x_2 ]      3.913885 s: UDMA: Init ... !!!
    [C6x_2 ]      3.915365 s: UDMA: Init ... Done !!!
    [C6x_2 ]      3.915384 s: MEM: Init ... !!!
    [C6x_2 ]      3.915397 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ e0000000 of size 16777216 bytes !!!
    [C6x_2 ]      3.915415 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 800000 of size 229376 bytes !!!
    [C6x_2 ]      3.915430 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ e1000000 of size 50331648 bytes !!!
    [C6x_2 ]      3.915447 s: MEM: Init ... Done !!!
    [C6x_2 ]      3.915455 s: IPC: Init ... !!!
    [C6x_2 ]      3.915476 s: IPC: 6 CPUs participating in IPC !!!
    [C6x_2 ]      3.915490 s: IPC: Waiting for HLOS to be ready ... !!!
    [C6x_2 ]     15.656429 s: IPC: HLOS is ready !!!
    [C6x_2 ]     15.660041 s: IPC: Init ... Done !!!
    [C6x_2 ]     15.660069 s: APP: Syncing with 5 CPUs ... !!!
    [C6x_2 ]     17.043975 s: APP: Syncing with 5 CPUs ... Done !!!
    [C6x_2 ]     17.043988 s: REMOTE_SERVICE: Init ... !!!
    [C6x_2 ]     17.044644 s: REMOTE_SERVICE: Init ... Done !!!
    [C6x_2 ]     17.044685 s:  VX_ZONE_INIT:Enabled
    [C6x_2 ]     17.044695 s:  VX_ZONE_ERROR:Enabled
    [C6x_2 ]     17.044705 s:  VX_ZONE_WARNING:Enabled
    [C6x_2 ]     17.045433 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C6x_2 ]     17.045505 s: APP: OpenVX Target kernel init ... !!!
    [C6x_2 ]     17.045832 s: APP: OpenVX Target kernel init ... Done !!!
    [C6x_2 ]     17.045852 s: UDMA Copy: Init ... !!!
    [C6x_2 ]     17.049717 s: UDMA Copy: Init ... Done !!!
    [C6x_2 ]     17.049736 s: APP: Init ... Done !!!
    [C6x_2 ]     17.050549 s: APP: Run ... !!!
    [C6x_2 ]     17.050559 s: IPC: Starting echo test ...
    [C6x_2 ]     17.051769 s: APP: Run ... Done !!!
    [C6x_2 ]     17.052096 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[s] C7X_1[.]
    [C6x_2 ]     17.052130 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[s] C7X_1[P]
    [C6x_2 ]     17.065898 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[s] C7X_1[P]
    [C7x_1 ]      4.145953 s: CIO: Init ... Done !!!
    [C7x_1 ]      4.145969 s: ### CPU Frequency = 1000000000 Hz
    [C7x_1 ]      4.145980 s: APP: Init ... !!!
    [C7x_1 ]      4.145988 s: SCICLIENT: Init ... !!!
    [C7x_1 ]      4.146186 s: SCICLIENT: DMSC FW version [21.9.1--v2021.09a (Terrific Lla]
    [C7x_1 ]      4.146200 s: SCICLIENT: DMSC FW revision 0x15
    [C7x_1 ]      4.146210 s: SCICLIENT: DMSC FW ABI revision 3.1
    [C7x_1 ]      4.146220 s: SCICLIENT: Init ... Done !!!
    [C7x_1 ]      4.146229 s: UDMA: Init ... !!!
    [C7x_1 ]      4.147338 s: UDMA: Init ... Done !!!
    [C7x_1 ]      4.147350 s: MEM: Init ... !!!
    [C7x_1 ]      4.147360 s: MEM: Created heap (DDR_SHARED_MEM, id=0, flags=0x00000004) @ 100000000 of size 268435456 bytes !!!
    [C7x_1 ]      4.147381 s: MEM: Created heap (L3_MEM, id=1, flags=0x00000001) @ 70020000 of size 8159232 bytes !!!
    [C7x_1 ]      4.147398 s: MEM: Created heap (L2_MEM, id=2, flags=0x00000001) @ 64800000 of size 458752 bytes !!!
    [C7x_1 ]      4.147415 s: MEM: Created heap (L1_MEM, id=3, flags=0x00000001) @ 64e00000 of size 16384 bytes !!!
    [C7x_1 ]      4.147432 s: MEM: Created heap (DDR_SCRATCH_MEM, id=4, flags=0x00000001) @ e4000000 of size 385875968 bytes !!!
    [C7x_1 ]      4.147450 s: MEM: Init ... Done !!!
    [C7x_1 ]      4.147458 s: IPC: Init ... !!!
    [C7x_1 ]      4.147472 s: IPC: 6 CPUs participating in IPC !!!
    [C7x_1 ]      4.147486 s: IPC: Waiting for HLOS to be ready ... !!!
    [C7x_1 ]     15.894623 s: IPC: HLOS is ready !!!
    [C7x_1 ]     15.896563 s: IPC: Init ... Done !!!
    [C7x_1 ]     15.896577 s: APP: Syncing with 5 CPUs ... !!!
    [C7x_1 ]     17.043976 s: APP: Syncing with 5 CPUs ... Done !!!
    [C7x_1 ]     17.043993 s: REMOTE_SERVICE: Init ... !!!
    [C7x_1 ]     17.044146 s: REMOTE_SERVICE: Init ... Done !!!
    [C7x_1 ]     17.044168 s:  VX_ZONE_INIT:Enabled
    [C7x_1 ]     17.044178 s:  VX_ZONE_ERROR:Enabled
    [C7x_1 ]     17.044187 s:  VX_ZONE_WARNING:Enabled
    [C7x_1 ]     17.044375 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1
    [C7x_1 ]     17.044505 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_2
    [C7x_1 ]     17.044573 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_3
    [C7x_1 ]     17.044639 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_4
    [C7x_1 ]     17.044703 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_5
    [C7x_1 ]     17.044832 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_6
    [C7x_1 ]     17.044903 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_7
    [C7x_1 ]     17.044964 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:59] Added target DSP_C7-1_PRI_8
    [C7x_1 ]     17.044985 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    [C7x_1 ]     17.044997 s: APP: OpenVX Target kernel init ... !!!
    [C7x_1 ]     17.045180 s: APP: OpenVX Target kernel init ... Done !!!
    [C7x_1 ]     17.045194 s: APP: Init ... Done !!!
    [C7x_1 ]     17.045202 s: APP: Run ... !!!
    [C7x_1 ]     17.045210 s: IPC: Starting echo test ...
    [C7x_1 ]     17.045363 s: APP: Run ... Done !!!
    [C7x_1 ]     17.051699 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[x] C7X_1[s]
    [C7x_1 ]     17.052101 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[P] C7X_1[s]
    [C7x_1 ]     17.065928 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]
    
    root@j7-evm:/opt/vision_apps#
    root@j7-evm:/opt/vision_apps# [  135.055160] Initializing XFRM netlink socket
    [  138.159395] process 'docker/tmp/qemu-check787307623/check' started with executable stack
    
    root@j7-evm:/opt/vision_apps#
    

    Regards,

    Murphy

  • Hi Murphy,

    For SDK8.2, it is expected that there is no output on DSI, because mcu2_0 seems not initializing DSI at all. It seems to be failing to initializing somewhere in  ethernet firmware.. Not sure why, i just tried on EVM SDK8.2, it works fine, i don't see Ethernet Firmware failing. For the time being, can you try disabling Ethernet Firmware on mcu2_0? 

    [MCU2_0] 17.506502 s: ETHFW: Init ... !!!
    [MCU2_0] 17.526567 s: ETHFW: Shared multicasts (software fanout):
    [MCU2_0] 17.526644 s: 01:00:5e:00:00:01
    [MCU2_0] 17.526703 s: 01:00:5e:00:00:fb
    [MCU2_0] 17.526754 s: 01:00:5e:00:00:fc
    [MCU2_0] 17.526802 s: 33:33:00:00:00:01
    [MCU2_0] 17.526851 s: 33:33:ff:1d:92:c2
    [MCU2_0] 17.526899 s: 01:80:c2:00:00:00
    [MCU2_0] 17.526947 s: 01:80:c2:00:00:03
    [MCU2_0] 17.527008 s: ETHFW: Reserved multicasts:
    [MCU2_0] 17.527038 s: 01:80:c2:00:00:0e
    [MCU2_0] 17.527087 s: 01:1b:19:00:00:00
    [MCU2_0] 17.527350 s: EnetMcm: CPSW_9G on MAIN NAVSS
    [MCU2_0] 17.536768 s: PHY 16 is alive
    [MCU2_0] 17.536854 s: PHY 17 is alive
    [MCU2_0] 17.536900 s: PHY 18 is alive
    [MCU2_0] 17.536935 s: PHY 19 is alive
    [MCU2_0] 17.537693 s: EnetPhy_bindDriver: PHY 16: OUI:0001c1 Model:27 Ver:00 <-> 'vsc8514' : OK
    [MCU2_0] 17.538043 s: EnetPhy_bindDriver: PHY 17: OUI:0001c1 Model:27 Ver:00 <-> 'vsc8514' : OK
    [MCU2_0] 17.538394 s: EnetPhy_bindDriver: PHY 18: OUI:0001c1 Model:27 Ver:00 <-> 'vsc8514' : OK
    [MCU2_0] 17.538718 s: EnetPhy_bindDriver: PHY 19: OUI:0001c1 Model:27 Ver:00 <-> 'vsc8514' : OK

    One thing i noted in your board is, something is connected at the boot of the board. Is it infotainment board? Can you please remove this board? 

    In addition, can you please check the value of CTRLMMR_DPHY_TX0_CTRL and CTRLMMR_DPHY0_CLKSEL
     registers?  Both the registers must be set to 0x0.

    Regards,

    Brijesh
      

  • Also looking at the timing information, pixel clock does not seem to be correct (1920+110+220+40) x (1080+5+20+5) x 60 ~= 153MHz. This would require around 918Mbps lane speed, 153MHz x 24 / 4 ~= 918Mbps. Please check if UB941 does really support this resolution/lane speed..

    prm.timings.width = 1920U;//1280U;
    prm.timings.height = 1080U;//800U;
    prm.timings.hFrontPorch = 110U;
    prm.timings.hBackPorch = 220U;
    prm.timings.hSyncLen = 40U;
    prm.timings.vFrontPorch = 5U;
    prm.timings.vBackPorch = 20U;
    prm.timings.vSyncLen = 5U;
    prm.timings.pixelClock = 143040000ULL;//74250000ULL;

    Regards,

    Brijesh

  • Hi  ,

    UB941 support 1.5 Gbps per lane >  918Mbps

  • Hi Alex,

    But at what pixel clock and for which format? Can you please check?

    Can you please try lower resolution, lets say original 1280x800 resolution from the SDK and see if you are able to get some output? 

    Regards,

    Brijesh

  • Hi Brejish,

    it works fine, i don't see Ethernet Firmware failing. For the time being, can you try disabling Ethernet Firmware on mcu2_0? 

    CPSW9G Solved<related files for making a boot SD card are missing> !!! please ignore !

    DSI CLK output is not dependent on the serializer. We should see the CLK whenever  there is a data from the DSS. 

    Note: SDK8.2

    1. There is no camera or screen connected to EVM.
    2. The main problem is the DSI-Tx clock,  

    In addition, can you please check the value of CTRLMMR_DPHY_TX0_CTRL and CTRLMMR_DPHY0_CLKSEL
     registers?  Both the registers must be set to 0x0.

    [MCU2_0]     15.340296 s: src/drv/dctrl/dss_dctrlDsi.c @ Line 616:
    [MCU2_0]     15.340353 s: zpf_DSI_register: CSL_MAIN_CTRL_MMR_CFG0_DPHY_TX0_CTRL = 0 , CSL_MAIN_CTRL_MMR_CFG0_DPHY0_CLKSEL = 0
    

    Also confirms that registers value set to 0. There is still no any toggling from probe point <R437/R438>. 

    Modification: Only modified file(vision_apps/platform/j721e/rtos/common/app_cfg_mcu2_0.h) to enable DSI output.

    Could you please add a picture/video attachment to illustrate the clk waveform in return.

    Regards,

    Murphy

  • Hi Murphy,

    Can you please refer to below ticket? Similar issue is reported on this ticket and now we are seeing some output from the DSI. 

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1112916/tda4vm-tda4vm-dsi-with-1080x1920-resolution-dose-not-work

    Regards,

    Brijesh

  • Hi  Brijesh Jadav

    I am tring to change the resolution to 1280*800 and run_apps_dof.sh ,it show the errors as below:

    pApi.c @ Line 1856:
    [MCU2_0] 75.875803 s: Input width+startX/height+startY > display width/height
    [MCU2_0] 75.875853 s: src/drv/disp/dss_dispApi.c @ Line 1471:
    [MCU2_0] 75.875889 s: Set DSS parameter IOCTL failed
    [MCU2_0] 75.875933 s: VX_ZONE_ERROR:[tivxDisplayCreate:630] DISPLAY: ERROR: Display Set Parameters Failed!
    75.890828 s: VX_ZONE_ERROR:[ownContextSendCmd:815] Command ack message returned failure cmd_status: -1
    75.890839 s: VX_ZONE_ERROR:[ownContextSendCmd:851] tivxEventWait() failed.
    75.890845 s: VX_ZONE_ERROR:[ownNodeKernelInit:538] Target kernel, TIVX_CMD_NODE_CREATE failed for node Output Display
    75.890851 s: VX_ZONE_ERROR:[ownNodeKernelInit:539] Please be sure the target callbacks have been registered for this core
    75.890857 s: VX_ZONE_ERROR:[ownNodeKernelInit:540] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
    75.890914 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 3, kernel com.ti.hwa.display ... failed !!!
    75.890924 s: VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed
    75.890930 s: VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed
    75.892759 s: VX_ZONE_INIT:[tivxHostDeInitLocal:100] De-Initialization Done for HOST !!!
    [MCU2_0] 75.890478 s: src/drv/disp/dss_dispApi.c @ Line 1856:
    [MCU2_0] 75.890528 s: Input width+startX/height+startY > display width/height
    [MCU2_0] 75.890581 s: src/drv/disp/dss_dispApi.c @ Line 1471:
    [MCU2_0] 75.890627 s: Set DSS parameter IOCTL failed
    [MCU2_0] 75.890674 s: VX_ZONE_ERROR:[tivxDisplayCreate:630] DISPLAY: ERROR: Display Set Parameters Failed!
    75.897111 s: VX_ZONE_INIT:[tivxDeInitLocal:193] De-Initialization Done !!!

    my modification is

    8713.pdk.diff
    --- a/pdk_jacinto_08_02_00_21/packages/ti/board/src/devices/fpd/ds90ub941.c
    +++ b/pdk_jacinto_08_02_00_21/packages/ti/board/src/devices/fpd/ds90ub941.c
    @@ -2083,6 +2083,3 @@ void Board_fpdUb941GetI2CAddr(uint8_t *domain,
         *chNum = 1U;
         *i2cAddr = 0x16;
     }
    -
    -
    -
    diff --git a/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/include/dss_dctrl.h b/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/include/dss_dctrl.h
    index cafefd61..ad8bdd6e 100755
    --- a/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/include/dss_dctrl.h
    +++ b/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/include/dss_dctrl.h
    @@ -604,6 +604,12 @@ typedef struct
         /**< DSI Instance ID, currently note used */
         uint32_t numOfLanes;
         /**< Number of outputs lanes for DSI output, max 4 */
    +    uint32_t laneSpeedInKbps;
    +    /**< Exact DPHY lane speed from the selected speed band in Megabits per sec.
    +     *   This parameter is set to default value during init time.
    +     *   If updated in the application after init, newly set value will be used
    +     *   for DPHY clock configurations.
    +     */
     } Dss_DctrlDsiParams;
     
     /* ========================================================================== */
    diff --git a/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c b/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    index 162ee942..f6b6fe0d 100755
    --- a/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    +++ b/pdk_jacinto_08_02_00_21/packages/ti/drv/dss/src/drv/dctrl/dss_dctrlDsi.c
    @@ -70,6 +70,7 @@
     /* Base Address of DSI Wrapper */
     #define DSITX2_WRAP_REGS_BASE               (CSL_DSS_DSI0_DSI_WRAP_MMR_VBUSP_CFG_DSI_WRAP_BASE)
     
    +#define DSITX_DPHY_REF_CLK_KHZ_DEF            (19200U)
     
     /* ========================================================================== */
     /*                         Structure Declarations                             */
    @@ -100,7 +101,22 @@ typedef struct
     
     } Dss_DctrlDSIDrvObj;
     
    -
    +/**
    + *  struct Dsitx_DphyRangeData
    + *
    + *  \brief This structure holds information about DSI Tx Range. Typically used
    + *         for DPHY programming.
    + *
    + */
    +typedef struct
    +{
    +    uint32_t rangeMin;
    +    /**< Lower boundary of the range */
    +    uint32_t rangeMax;
    +    /**< Hogher boundary of the range */
    +    uint32_t progVal;
    +    /**< Value to be programmed for given range */
    +} Dsitx_DphyRangeData;
     
     /* ========================================================================== */
     /*                          Function Declarations                             */
    @@ -128,6 +144,184 @@ extern "C" {
     
     static Dss_DctrlDSIDrvObj gDssDctrlDsiDrvObj;
     
    +/* This contains information of the PLL input divider value for DPHY
    +   rangeMin and rangeMax is in KHz */
    +
    +static Dsitx_DphyRangeData gDsiTxIpDivInfo[] =
    +{
    +    {
    +        .rangeMin = 9600U,
    +        .rangeMax = 19200U,
    +        .progVal  = 1U,
    +    },
    +    {
    +        .rangeMin = 19200U,
    +        .rangeMax = 38400U,
    +        .progVal  = 2U,
    +    },
    +    {
    +        .rangeMin = 38400U,
    +        .rangeMax = 76800U,
    +        .progVal  = 4U,
    +    },
    +    {
    +        .rangeMin = 76800U,
    +        .rangeMax = 150000U,
    +        .progVal  = 8U,
    +    },
    +};
    +
    +/* This contains information of the PLL output divider value for DPHY
    +   rangeMin and rangeMax is in Mbps */
    +static Dsitx_DphyRangeData gDsiTxOpDivInfo[] =
    +{
    +    {
    +        .rangeMin = 1250U,
    +        .rangeMax = 2500U,
    +        .progVal  = 1U,
    +    },
    +    {
    +        .rangeMin = 630U,
    +        .rangeMax = 1240U,
    +        .progVal  = 2U,
    +    },
    +    {
    +        .rangeMin = 320U,
    +        .rangeMax = 620U,
    +        .progVal  = 4U,
    +    },
    +    {
    +        .rangeMin = 160U,
    +        .rangeMax = 310U,
    +        .progVal  = 8U,
    +    },
    +    {
    +        .rangeMin = 80U,
    +        .rangeMax = 150U,
    +        .progVal  = 16U,
    +    },
    +};
    +
    +/* This contains information of the PLL output divider value for DPHY
    +   rangeMin and rangeMax is in Mbps */
    +static Dsitx_DphyRangeData gDsiTxLaneSpeedBandInfo[] =
    +{
    +    {
    +        .rangeMin = 80U,
    +        .rangeMax = 100U,
    +        .progVal  = 0x0,
    +    },
    +    {
    +        .rangeMin = 100U,
    +        .rangeMax = 120U,
    +        .progVal  = 0x1,
    +    },
    +    {
    +        .rangeMin = 120U,
    +        .rangeMax = 160U,
    +        .progVal  = 0x2,
    +    },
    +    {
    +        .rangeMin = 160U,
    +        .rangeMax = 200U,
    +        .progVal  = 0x3,
    +    },
    +    {
    +        .rangeMin = 200U,
    +        .rangeMax = 240U,
    +        .progVal  = 0x4,
    +    },
    +    {
    +        .rangeMin = 240U,
    +        .rangeMax = 320U,
    +        .progVal  = 0x5,
    +    },
    +    {
    +        .rangeMin = 320U,
    +        .rangeMax = 390U,
    +        .progVal  = 0x6,
    +    },
    +    {
    +        .rangeMin = 390U,
    +        .rangeMax = 450U,
    +        .progVal  = 0x7,
    +    },
    +    {
    +        .rangeMin = 450U,
    +        .rangeMax = 510U,
    +        .progVal  = 0x8,
    +    },
    +    {
    +        .rangeMin = 510U,
    +        .rangeMax = 560U,
    +        .progVal  = 0x9,
    +    },
    +    {
    +        .rangeMin = 560U,
    +        .rangeMax = 640U,
    +        .progVal  = 0xA,
    +    },
    +    {
    +        .rangeMin = 640U,
    +        .rangeMax = 690U,
    +        .progVal  = 0xB,
    +    },
    +    {
    +        .rangeMin = 690U,
    +        .rangeMax = 770U,
    +        .progVal  = 0xC,
    +    },
    +    {
    +        .rangeMin = 770U,
    +        .rangeMax = 870U,
    +        .progVal  = 0xD,
    +    },
    +    {
    +        .rangeMin = 870U,
    +        .rangeMax = 950U,
    +        .progVal  = 0xE,
    +    },
    +    {
    +        .rangeMin = 950U,
    +        .rangeMax = 1000U,
    +        .progVal  = 0xF,
    +    },
    +    {
    +        .rangeMin = 1000U,
    +        .rangeMax = 1200U,
    +        .progVal  = 0x10,
    +    },
    +    {
    +        .rangeMin = 1200U,
    +        .rangeMax = 1400U,
    +        .progVal  = 0x11,
    +    },
    +    {
    +        .rangeMin = 1400U,
    +        .rangeMax = 1600U,
    +        .progVal  = 0x12,
    +    },
    +    {
    +        .rangeMin = 1600U,
    +        .rangeMax = 1800U,
    +        .progVal  = 0x13,
    +    },
    +    {
    +        .rangeMin = 1800U,
    +        .rangeMax = 2000U,
    +        .progVal  = 0x14,
    +    },
    +    {
    +        .rangeMin = 2000U,
    +        .rangeMax = 2200U,
    +        .progVal  = 0x15,
    +    },
    +    {
    +        .rangeMin = 2200U,
    +        .rangeMax = 2500U,
    +        .progVal  = 0x16,
    +    },
    +};
     
     /* ========================================================================== */
     /*                  Internal/Private Function Declarations                    */
    @@ -155,7 +349,7 @@ static int32_t dssDctrlEnableDsiLinkAndPath(Dss_DctrlDSIDrvObj *dsiObj);
     static int32_t dssDctrlEnableDsiLink(Dss_DctrlDSIDrvObj *dsiObj);
     static int32_t dssDctrlEnableDsiDatapath(Dss_DctrlDSIDrvObj *dsiObj);
     static int32_t dssDctrlWaitForLaneReady(Dss_DctrlDSIDrvObj *dsiObj);
    -
    +static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms);
     
     /* ========================================================================== */
     /*                          Function Definitions                              */
    @@ -180,11 +374,11 @@ void Dss_dctrlDrvInitDSI()
     
     
         dsiObj->dphyTxIpDiv = 0x2;
    -    dsiObj->dphyTxOpDiv = 0x2;
    -    dsiObj->dphyTxFbDiv = 0x173;
    -    dsiObj->dphyTxRate = 0x1CE;
    -    dsiObj->cfgDsiTx.numOfLanes = 0x2u;
    -    dsiObj->privDsiTx.numOfLanes = 0x2u;
    +    dsiObj->dphyTxOpDiv = 0x4;//0x2;
    +    dsiObj->dphyTxFbDiv = 0x1EE;//0x1be;//0x173;
    +    dsiObj->dphyTxRate = 0X14A;//0x129;//0x1CE;
    +    dsiObj->cfgDsiTx.numOfLanes = 0x4u;//0x2u;
    +    dsiObj->privDsiTx.numOfLanes = 0x4u;//0x2u;
     }
     
     int32_t Dss_dctrlDrvSetDSIParams(Dss_DctrlDrvInfo *drvInfo,
    @@ -198,6 +392,8 @@ int32_t Dss_dctrlDrvSetDSIParams(Dss_DctrlDrvInfo *drvInfo,
         dsiObj->cfgDsiTx.numOfLanes = dsiPrms->numOfLanes;
         dsiObj->privDsiTx.numOfLanes = dsiPrms->numOfLanes;
     
    +    status = dssdctrlCalcDsiParams(dsiObj, dsiPrms);
    +
         /* Checks to see if the configuration (num of lanes) is valid */
         status = DSITX_Probe(&dsiObj->cfgDsiTx, &dsiObj->sysReqDsiTx);
         if (CDN_EOK == status)
    @@ -294,6 +490,105 @@ int32_t Dss_dctrlDrvEnableVideoDSI(Dss_DctrlDrvInfo *drvInfo,
     /*                  Internal/Private Function Definitions                     */
     /* ========================================================================== */
     
    +static int32_t dssdctrlCalcDsiParams(Dss_DctrlDSIDrvObj *dsiObj, const Dss_DctrlDsiParams *dsiPrms)
    +{
    +    int32_t retVal = FVID2_SOK;
    +    uint32_t min, max;
    +    uint32_t idx = 0U;
    +    uint64_t tempResult, refClkKHz;
    +
    +    /* Get speed band for given lane speed */
    +    for (idx = 0U ;
    +         idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData));
    +         idx++)
    +    {
    +        min = gDsiTxLaneSpeedBandInfo[idx].rangeMin * 1000;
    +        max = gDsiTxLaneSpeedBandInfo[idx].rangeMax * 1000;
    +        if ((dsiPrms->laneSpeedInKbps >= min) &&
    +            (dsiPrms->laneSpeedInKbps <= max))
    +        {
    +            break;
    +        }
    +
    +    }
    +    if (idx < (sizeof(gDsiTxLaneSpeedBandInfo) / sizeof(Dsitx_DphyRangeData)))
    +    {
    +        dsiObj->dphyTxRate = (gDsiTxLaneSpeedBandInfo[idx].progVal) |
    +            (gDsiTxLaneSpeedBandInfo[idx].progVal << 5);//0x09 | 0x09 << 5 = 0x129; //0x0A | 0x0A << 5 = 0x14A
    +    }
    +    else
    +    {
    +        retVal = FVID2_EFAIL;
    +    }
    +
    +    if (retVal == FVID2_SOK)
    +    {
    +        /* TODO: Read the clock runtime through sciclient APIs */
    +        refClkKHz = DSITX_DPHY_REF_CLK_KHZ_DEF;
    +        /* Calculate DPHY ipdiv - PLL input divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            for (idx = 0U ;
    +                 idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData));
    +                 idx++)
    +            {
    +                if ((refClkKHz >= gDsiTxIpDivInfo[idx].rangeMin) &&
    +                    (refClkKHz < gDsiTxIpDivInfo[idx].rangeMax))
    +                {
    +                    break;
    +                }
    +            }
    +            if (idx < (sizeof(gDsiTxIpDivInfo) / sizeof(Dsitx_DphyRangeData)))
    +            {
    +                dsiObj->dphyTxIpDiv = gDsiTxIpDivInfo[idx].progVal; //2u
    +            }
    +            else
    +            {
    +                retVal = FVID2_EFAIL;
    +            }
    +        }
    +
    +        /* Calculate DPHY opdiv - PLL output divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            for (idx = 0U ;
    +                 idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData));
    +                 idx++)
    +            {
    +                min = gDsiTxOpDivInfo[idx].rangeMin * 1000;
    +                max = gDsiTxOpDivInfo[idx].rangeMax * 1000;
    +                if ((dsiPrms->laneSpeedInKbps >= min) &&
    +                    (dsiPrms->laneSpeedInKbps <= max))
    +                {
    +                    break;
    +                }
    +            }
    +            if (idx < (sizeof(gDsiTxOpDivInfo) / sizeof(Dsitx_DphyRangeData)))
    +            {
    +                dsiObj->dphyTxOpDiv = gDsiTxOpDivInfo[idx].progVal; //4u
    +            }
    +            else
    +            {
    +                retVal = FVID2_EFAIL;
    +            }
    +        }
    +
    +        /* Calculate DPHY fbdiv - PLL feedback divider */
    +        if (retVal == FVID2_SOK)
    +        {
    +            tempResult = (((uint64_t)dsiPrms->laneSpeedInKbps) *
    +                          ((uint64_t)2U) *
    +                          ((uint64_t)dsiObj->dphyTxIpDiv) *
    +                          ((uint64_t)dsiObj->dphyTxOpDiv));
    +            tempResult /= (uint64_t)refClkKHz;
    +
    +            dsiObj->dphyTxFbDiv = (uint32_t)tempResult; //
    +        }
    +    }
    +
    +    return retVal;
    +}
    +
     static void dssDctrlSetDSIInCtrlMod()
     {
         /*
    
    vision_apps.diff

  • Hi Alex,

    In this case, can you please change the output/target resolution and position in the display parameters? This is specified in ti-processor-sdk-rtos-j721e-evm-08_02_00_05\vision_apps\apps\basic_demos\app_dof\dof_display_module.c. 

    displayObj->output_display_params.outWidth = 1280;
    displayObj->output_display_params.outHeight = 800;
    displayObj->output_display_params.posX = 0;
    displayObj->output_display_params.posY = 0;

    Regards,

    Brijesh

  • Hi  Brijesh,

    Could you tell me what's the output_display_params.pipeId means? Is it correct for dsi output?

            displayObj->output_display_params.opMode=TIVX_KERNEL_DISPLAY_ZERO_BUFFER_COPY_MODE;
            displayObj->output_display_params.pipeId = 0;
            displayObj->output_display_params.outWidth = 1280;//OUTPUT_DISPLAY_WIDTH;
            displayObj->output_display_params.outHeight = 800;//OUTPUT_DISPLAY_HEIGHT;
            displayObj->output_display_params.posX = 0;//(1920-OUTPUT_DISPLAY_WIDTH);
            displayObj->output_display_params.posY = 0;//(1080-OUTPUT_DISPLAY_HEIGHT)/2 - 80;
  • Hi Alex,

    pipeid refers to the video pipeline in the display, there are video input pipelines in the DSS, Two VID and two VIDL. I think pipeid 0 and 2 are VID pipelines and 1 and 3 are VIDL pipelines.

    Yes, the parameters looks to be fine. 

    Regards,

    Brijesh

  • Hi Brijesh,

    GOOD NEWS!! 

    Both EVM & custom board can see the CLK signal toggliing, Due to the HW malfunction.

    Using default 1280*800 & ./run_app_single_cam.sh demo, After changed resolution from files

    ( ti-processor-sdk-rtos-j721e-evm-08_01_00_13\vision_apps\platform\j721e\rtos\common\app_init.c  ti-processor-sdk-rtos-j721e-evm-08_01_00_13\vision_apps\modules\src\app_display_module.c) 

    still error occured below log. any files stills need to modify OR just wrong file have modified?

    [MCU2_0]     89.816007 s: [iss_sensors] ecarx_8MP_Config
        89.822116 s:  VX_ZONE_ERROR:[ownContextSendCmd:815] Command ack message returned failure cmd_status: -1
        89.822127 s:  VX_ZONE_ERROR:[ownContextSendCmd:851] tivxEventWait() failed.
        89.822135 s:  VX_ZONE_ERROR:[ownNodeKernelInit:538] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_96
        89.822142 s:  VX_ZONE_ERROR:[ownNodeKernelInit:539] Please be sure the target callbacks have been registered for this core
        89.822149 s:  VX_ZONE_ERROR:[ownNodeKernelInit:540] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
        89.822232 s:  VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 1, kernel com.ti.hwa.display ... failed !!!
        89.822243 s:  VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed
        89.822250 s:  VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed
    Scaler is disabled
        89.824925 s: ISS: Starting sensor [ECARX_8MP_UYVY] ... !!!
    
    
    [MCU2_0]     89.821778 s: src/drv/disp/dss_dispApi.c @ Line 1856:
    [MCU2_0]     89.821833 s: Input width+startX/height+startY > display width/height
    [MCU2_0]     89.821887 s: src/drv/disp/dss_dispApi.c @ Line 1471:
    [MCU2_0]     89.821920 s: Set DSS parameter IOCTL failed
    [MCU2_0]     89.821961 s:  VX_ZONE_ERROR:[tivxDisplayCreate:630] DISPLAY: ERROR: Display Set Parameters Failed!
    

    In addition, Does the DSI driver in PSDKRA8.1 meet these three configurations Or used other defualt configurations ?

    Please let me know it, Because the configurations of serializer must be the same as in the DSI driver settings !

    Regards

    Murphy.

  • Hi Murphy,

    Both EVM & custom board can see the CLK signal toggliing, Due to the HW malfunction.

    Glad to know there is some output on CLK signals.

    Using default 1280*800 & ./run_app_single_cam.sh demo, After changed resolution from files

    ( ti-processor-sdk-rtos-j721e-evm-08_01_00_13\vision_apps\platform\j721e\rtos\common\app_init.c  ti-processor-sdk-rtos-j721e-evm-08_01_00_13\vision_apps\modules\src\app_display_module.c) 

    I think single camera example does not use this display module, Disappointed. Display parameters are hard coded in the file ti-processor-sdk-rtos-j721e-evm-08_02_00_05\vision_apps\apps\basic_demos\app_single_cam\app_single_cam_main.c. Please make sure to set display_params.posX and display_params.posY to 0 and display_params.outWidth and display_params.outHeight to 1280x800 resolution.. 

    or you could use multi-camera example. This example uses display module from module folder and can also be used for displaying single camera.. 

    Please let me know it, Because the configurations of serializer must be the same as in the DSI driver settings !

    Not sure what is this configuration. Could you please help me understand? 

    Regards,

    Brijesh

  • Hi Brijesh,

    I have modified the outWidth / outHeight  / posX  /posY , but it still report the same error.

    diff --git a/vision_apps/apps/basic_demos/app_dof/dof_display_module.c b/vision_apps/apps/basic_demos/app_dof/dof_display_module.c
    index 0b0b9c4d..24f28883 100644
    --- a/vision_apps/apps/basic_demos/app_dof/dof_display_module.c
    +++ b/vision_apps/apps/basic_demos/app_dof/dof_display_module.c
    @@ -77,10 +77,10 @@ vx_status app_init_display1(vx_context context, DisplayObj *displayObj, char *ob

    displayObj->output_display_params.opMode=TIVX_KERNEL_DISPLAY_ZERO_BUFFER_COPY_MODE;
    displayObj->output_display_params.pipeId = 0;
    - displayObj->output_display_params.outWidth = OUTPUT_DISPLAY_WIDTH;
    - displayObj->output_display_params.outHeight = OUTPUT_DISPLAY_HEIGHT;
    - displayObj->output_display_params.posX = (1920-OUTPUT_DISPLAY_WIDTH);
    - displayObj->output_display_params.posY = (1080-OUTPUT_DISPLAY_HEIGHT)/2 - 80;
    + displayObj->output_display_params.outWidth = 1280;//OUTPUT_DISPLAY_WIDTH;
    + displayObj->output_display_params.outHeight = 800;//OUTPUT_DISPLAY_HEIGHT;
    + displayObj->output_display_params.posX = 0;//(1920-OUTPUT_DISPLAY_WIDTH);
    + displayObj->output_display_params.posY = 0;//(1080-OUTPUT_DISPLAY_HEIGHT)/2 - 80;

    status = vxCopyUserDataObject(displayObj->output_display_config, 0, sizeof(tivx_display_params_t), &displayObj->output_display_params, VX_WRITE_ONLY, VX_MEMORY_TYPE_HOST);
    APP_ASSERT(status==VX_SUCCESS);
    @@ -104,11 +104,10 @@ vx_status app_init_display2(vx_context context, DisplayObj *displayObj, char *ob

    displayObj->input_display_params.opMode=TIVX_KERNEL_DISPLAY_ZERO_BUFFER_COPY_MODE;
    displayObj->input_display_params.pipeId = 2;
    - displayObj->input_display_params.outWidth = INPUT_DISPLAY_WIDTH;
    - displayObj->input_display_params.outHeight = INPUT_DISPLAY_HEIGHT;
    + displayObj->input_display_params.outWidth = 1280;//INPUT_DISPLAY_WIDTH;
    + displayObj->input_display_params.outHeight = 800;//INPUT_DISPLAY_HEIGHT;
    displayObj->input_display_params.posX = 0;
    - displayObj->input_display_params.posY = (1080-INPUT_DISPLAY_HEIGHT)/2 - 80;
    -
    + displayObj->input_display_params.posY = 0;//(1080-INPUT_DISPLAY_HEIGHT)/2 - 80;

    root@j7-evm:/opt/vision_apps# ./run_app_dof.sh
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    42.280451 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    42.287101 s: VX_ZONE_INIT:Enabled
    42.287112 s: VX_ZONE_ERROR:Enabled
    42.287126 s: VX_ZONE_WARNING:Enabled
    42.289660 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    42.291597 s: VX_ZONE_INIT:[tivxHostInitLocal:86] Initialization Done for HOST !!!
    42.300046 s: VX_ZONE_ERROR:[ownContextSendCmd:815] Command ack message returned failure cmd_status: -1
    42.300063 s: VX_ZONE_ERROR:[ownContextSendCmd:851] tivxEventWait() failed.
    42.300070 s: VX_ZONE_ERROR:[ownNodeKernelInit:538] Target

  • root@j7-evm:/opt/vision_apps# ./run_app_dof.sh
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=4) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
    42.280451 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
    42.287101 s: VX_ZONE_INIT:Enabled
    42.287112 s: VX_ZONE_ERROR:Enabled
    42.287126 s: VX_ZONE_WARNING:Enabled
    42.289660 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
    42.291597 s: VX_ZONE_INIT:[tivxHostInitLocal:86] Initialization Done for HOST !!!
    42.300046 s: VX_ZONE_ERROR:[ownContextSendCmd:815] Command ack message returned failure cmd_status: -1
    42.300063 s: VX_ZONE_ERROR:[ownContextSendCmd:851] tivxEventWait() failed.
    42.300070 s: VX_ZONE_ERROR:[ownNodeKernelInit:538] Target kernel, TIVX_CMD_NODE_CREATE failed for node node_115
    42.300076 s: VX_ZONE_ERROR:[ownNodeKernelInit:539] Please be sure the target callbacks have been registered for this core
    42.300083 s: VX_ZONE_ERROR:[ownNodeKernelInit:540] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
    42.300090 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.hwa.display ... failed !!!
    42.300098 s: VX_ZONE_ERROR:[vxVerifyGraph:2055] Node kernel init failed
    42.300104 s: VX_ZONE_ERROR:[vxVerifyGraph:2109] Graph verify failed
    GRPX: ERROR: Unable to verify graph for graphics !!!
    [MCU2_0] 42.299664 s: src/drv/disp/dss_dispApi.c @ Line 1856:
    [MCU2_0] 42.299712 s: Input width+startX:/height+startY > display width/height
    [MCU2_0] 42.299761 s: src/drv/disp/dss_dispApi.c @ Line 1471:
    [MCU2_0] 42.299795 s: Set DSS parameter IOCTL failed
    [MCU2_0] 42.299841 s: VX_ZONE_ERROR:[tivxDisplayCreate:630] DISPLAY: ERROR: Display Set Parameters Failed!

  • Hi Brijesh,

    2. Also these three parameters are required to pair with the serializer.

    please let me know  how are these three parameters set in TDA4 DSI interface side ?

    Another way of saying three params, does the tda4 DSI interface meet the DSI basic configuration 1. null-packet   2. enable eotp  3. sync pules ?

    params-explanation:
    The DPI Constructor builds the DPI video signals (HS/VS/DE/24-bit video) based off video timings derived from the Sync Event short packets, RGB888 long packets, and the Blanking/Null long packets. Video Timing Modes GMSL2 DSI serializers support two video timings modes:
    • Non-burst Mode with Sync Pulses
    • Non-burst Mode with Sync Events 

    How does the DSI Driver set these three parameters?

    So we can set the serializer to meet configurations same as DSI driver for normal output !


    1. Null packet

    2. enable eotp

    3. Non-Burst With Sync Event

    Regards,

    Murphy

  • Hi Brijesh,

    LOOK INTO TRM ! Let me summarize these three parameters. 

    1. Blinking Packet

    2. enable eot

    3. Non-Burst With Sync Pulse

     See above  1. Blinking Packet param Register.

    Now draw a conclusion, When setting these three parameters what I need to do is to set

    DSI_VID_MAIN_CTL Register

    bit<24-23> =  01   REG_BLKEOL_MODE 

    bit<22-21> =  01   REG_BLKLINE_MODE 

    bit<20>      =  1     SYNC_PULSE_HORIZONTAL

    bit<19>      =  1     SYNC_PULSE_ACTIVE

    bit<18>      =  1     BURST_MODE 

    DSI_MCTL_MAIN_DATA_CTL Register

    bit<18>      =  1 DISP_EOT_GEN

    4. How to modify these params, Please tell me the location of file(s) ! 

    5. In addition,

    Is there an example Demo of displaying a specific image on the screen directly through the DSI interface?

    Does the implementation require the Use of the OpenVX architecture? If used, Any OpenVX documents I can refer to? 

    Regards,

    Murphy

  • Hi Murphy,

    Yes, many of these parameters are updated in the API dssDctrlSetVideoConfig & dssDctrlEnableDsiDatapath, in the file ti-processor-sdk-rtos-j721e-evm-08_02_00_05\pdk_jacinto_08_02_00_21\packages\ti\drv\dss\src\drv\dctrl\dss_dctrlDsi.c. 

    You could find local API, dssDctrlUpdateVideoModeConfig, which updates many of these parameter. Please change it according to your requirement. 

    Unfortunately, on EVM, there is no way to check DSI interface directly. 

    Regards,

    Brijesh

  • Hi Brijesh,

    5. In addition,

    Is there an example Demo of displaying a specific image on the screen directly through the DSI interface?

    Does the implementation require the Use of the OpenVX architecture? If used, Any OpenVX documents I can refer to? 

    For example:

    1. Where are the pictures stored?

    2. What API need to called ? Dose this by using OpenVX API?

    Specific Image --> SER --> DES --> display panel

    Is there any Demos ?

    Regards,

    Murphy

  • Hi Murphy,

    1. Where are the pictures stored?

    Which picture here do you mean? The input picture? that comes from the DDR. DSS reads from the DDR and forwards it to the DSI.

    2. What API need to called ? Dose this by using OpenVX API?

    Yes, the frame buffer memory is managed by OpenVX here. 

    Well there is a demo, for Image -> DSS -> DSI -> Serializer. But there is no Deserialize ->display panel receiving device..

    Regards,

    Brijesh 

  • Hi Brijesh,

    Well there is a demo, for Image -> DSS -> DSI -> Serializer. But there is no Deserialize ->display panel receiving device..

    --- which demo do you mean?

  • Hi Alex,

    By default, when you enable DSI output in SDK, either in OpenVX or in PDK, this is path configured and then when you run any demo with 1280x800 output resolution, it would send out data over this path..

    Regards,

    Brijesh

  • Hi Brijesh,

    Using default 1820*800 configuration with camera connected, data/clk can be detcted on DSI-Tx clk-lane &data-lane(0/1)

    Parameters are updated in the API dssDctrlSetVideoConfig & dssDctrlEnableDsiDatapath, in the file ti-processor-sdk-rtos-j721e-evm-08_02_00_05\pdk_jacinto_08_02_00_21\packages\ti\drv\dss\src\drv\dctrl\dss_dctrlDsi.c. 

    So TDA4 default output for DSI ---> Non-Burst Mode with Sync Pulse without enable EOT

    But, One pulse is measured in every 60 frames and does not contain information about VSA+VBP+VFP? Is that normal?

    Please confirm whether the oscilloscope measures the waveform of TDA4 packets output by TDA4 comply with MIPI protocol. This may cause the display panel DES cannot recognize the data packet !!!

    Regards,

    Murphy

  • hi Murphy,

    I think burst mode setting is not changed in the driver (DSITX_GetVideoMode), so the reset value for this mode is non-burst mode. You could change it in the API dssDctrlUpdateVideoModeConfig if you require burst mode output.

    Similarly, for EOT, you could set the dispEotGen flag in dssDctrlEnableDsiDatapath API to enable EOT generation.. But as far as i know, EOT packet is not mandatory..  In case the display makes use of the EoT packet, please enable this flag in this API.

    Regards,

    Brijesh

  • Hi Berijesh

    Currently, the default DSI output from SDK8.1 is used: The value read from these two registers<0x48000B0 & 0x4800004>

    1. Blanking Packet

    2. Sync Pulse

    3. Non-Burst

    4. Disabled disp_EoT & Host_gen_EoT

    root@ti-j72xx:~#
    root@ti-j72xx:~# devmem2 0x48000B0
    /dev/mem opened.
    Memory mapped at address 0x3ff96910000.
    Read at address  0x048000B0 (0x3ff969100b0): 0x80B8FE00
    root@ti-j72xx:~#
    root@ti-j72xx:~#
    root@ti-j72xx:~# devmem2 0x4800004
    /dev/mem opened.
    Memory mapped at address 0x3ffb5e90000.
    Read at address  0x04800004 (0x3ffb5e90004): 0x00060025
    root@ti-j72xx:~#
    root@ti-j72xx:~#
    

    Used the default 1280x800 resolution to output through the DSI interface. However, the measured MIPI waveform does not match the packet described by the MIPI protocol.

    (see FIG. 3 Pulse When the pulse is expanded, it should carry information about VSA+VBP+VFP, DSI Transmission Packets detailed in FIG. 1)! 

    But now expanded pulse keeps 1.2V and NO information contained.

    Please help me to understand this!! Is it a non-standard MIPI-DSI ?

    Best Regards,

    Murphy

  • Hi, Brijesh

    Could you please share the current status ?

    Regards,

    Murphy

  • Hi Brijesh,

    FYI

    FYI

    LCD data-sheet:

    1. Vertical timing

     

    2. Horizontal timing

    3. VS-HS timing

    TDA4 TRM:

    DSS0_VP_POL_FREQ Register Field Descriptions:

    According to the above information, So below modifications was made.

    <ti-processor-sdk-rtos-j721e-evm-08_01_00_13\vision_apps\utils\dss\src\app_dss_defaults.c>

    else if(obj->initPrm.display_type==APP_DSS_DEFAULT_DISPLAY_TYPE_DSI)
    {
        advVpParams.hVAlign = APP_DCTRL_HVSYNC_ALIGN_ON;//bit-ALIGN
        advVpParams.hVClkControl = APP_DCTRL_HVCLK_CTRL_ON;//bit-ONOFF
        advVpParams.hVClkRiseFall = APP_DCTRL_EDGE_POL_FALLING;//bit-RF<HS-VS timing>
    
        vpParams.actVidPolarity = APP_DCTRL_POL_HIGH;//bit-IEO <data-enable-high>
        vpParams.pixelClkPolarity = APP_DCTRL_EDGE_POL_FALLING;//IPC <Horizontal timing>
        vpParams.hsPolarity = APP_DCTRL_POL_LOW; //bit-IHS <Horizontal timing>
        vpParams.vsPolarity = APP_DCTRL_POL_LOW; //bit-IVS <Vertical timing>
    }

    Is this changes correct for display panel? Or does it need to be changed?

    Regards,

    Murphy

  • Hi Murphy,

    But why do you require to change the polarity and other parameter? 

    I think you should just change timing/blanking information as per your receiver requirement. 

    What issue do you see when changing just the timing parameters? 

    Regards,

    Brijesh

  • Hi Brijesh,

    But why do you require to change the polarity and other parameter? 

    Set the parameters and polarity according to the LCD datasheet. 

    I think you should just change timing/blanking information as per your receiver requirement. 

    What issue do you see when changing just the timing parameters? 

    Just change timing/blanking settings required by receiver, 

    The main part is that key Information(VSA/VBP/VFP) still missing. and I think the these missing key information cause the SER do not recognize the data output by DSI interface.

    Any suggestions ?

    Please check the waveform I captured !!!  This information should be transmitted between each frame (pulsing). But none of the combinations we've tried so far have appeared between frames.

    (see FIG. 3 Pulse When the pulse is expanded, it should carry information about VSA+VBP+VFP, DSI Transmission Packets detailed in FIG. 1)!

     

    Regards,

    Murphy