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.

J721S2XSOMXEVM: [TDA4AL] not display by dp port

Part Number: J721S2XSOMXEVM

I use PSDK 9.00.00.02 J721S2.

I made SD card by tisdk-adas-image-j721s2-evm.tar.xz.

And for displaying on A72 not R5F, I changed dtbo.

In this, weston service is okay as below.

root@j721s2-evm:~# systemctl status weston.service weston.socket
* weston.service - Weston, a Wayland compositor, as a system service
     Loaded: loaded (/lib/systemd/system/weston.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-09-25 13:51:05 UTC; 1min 45s ago

But display not connected.

root@j721s2-evm:~# modetest -M tidss -c
Connectors:
id      encoder status          name            size (mm)       modes   encoders
40      0       disconnected    DP-1            0x0             0       39

PSDK8.6 is not same as above.

Can I get some help for this problem?

  • Can you please make sure that the DP display is connected before booting the board? This is required because during boottime, driver checks for the availability of the display.

    Regards,

    Brijesh 

  • Yes, the DP display is connected before booting the board.

  • I tried DP 0 & DP 1 port both, but got a fail.

  • Is the display connected directly or is this some DP to HDMI convertor in between? 

  • I use DP to HDMI converter.

  • If directly connecting, display is well done.

    How can I use converter?

    Previous versions support converter...

  • There is a additional externa io pin that needs to be turned on using i2c. This is taken care in the vision_apps in appDssConfigureDP APi. Not sure if/where this is taken care in Linux driver. Can you please try turning it on from Linux and see if it helps? 

  • I changed psdk linux 9.00.00.08 j721s2's board-support/linux-6.1.33+gitAUTOINC+8f7f371be2-g8f7f371be2/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dtso.

    before after
    // SPDX-License-Identifier: GPL-2.0
    /*
     * vision-apps: device-tree overlay
     *
     * Copyright (C) 2019 - 2021 Texas Instruments Incorporated - http://www.ti.com/
     */
    /dts-v1/;
    /plugin/;
    #include "k3-j721s2-rtos-memory-map.dtsi"
    &main_i2c1 {
        status = "disabled";
    };
    
    &main_i2c4 {
    	status = "disabled";
    };
    
    &main_i2c5 {
    	status = "disabled";
    };
    
    &serdes_wiz0 {
        status = "disabled";
    };
    &dss {
        status = "disabled";
    };
    
    &ti_csi2rx0 {
        status = "disabled";
    };
    &ti_csi2rx1 {
        status = "disabled";
    };
    // SPDX-License-Identifier: GPL-2.0
    /*
     * vision-apps: device-tree overlay
     *
     * Copyright (C) 2019 - 2021 Texas Instruments Incorporated - http://www.ti.com/
     */
    /dts-v1/;
    /plugin/;
    #include "k3-j721s2-rtos-memory-map.dtsi"
    &main_i2c1 {
        status = "disabled";
    };
    
    
    
    
    
    &main_i2c5 {
    	status = "disabled";
    };
    
    
    
    
    
    
    
    
    &ti_csi2rx0 {
        status = "disabled";
    };
    &ti_csi2rx1 {
        status = "disabled";
    };
    

    And then after building with changed dtso, I use new dtbo from new dtso.

    'i2c' that you said means above dtso's?

    I removed 'main_i2c4=disabled', 'serdes_wiz0=disabled' and 'dss=disabled'.

    Should I not remove 'main_i2c4=disabled' for using dss on A72 with converter?

    Or should I remove more i2c config like 'main_i2c1' or 'main_i2c5'?

  • [    8.947159] [drm:ti_sn_bridge_probe [ti_sn65dsi86]] *ERROR* remote dsi host node not found

    This booting error occurs.

  • I see you are using J721S2, which uses I2C4 for configuring this pin. 

    But i am not sure if/how Linux configures. I will check with our team and get back to you by tomorrow. 

  • Yes, I use J721S2.

    I see you are using J721S2, which uses I2C4 for configuring this pin. 

    This pin means a additional externa io pin as below?

    There is a additional externa io pin

    Also, I will wait your feedback checked with your team.

  • This pin means a additional externa io pin as below?

    Yes, for DP to HDMI Active adaptor to work, this pin needs to be enabled.  

  • One more Question..

    Additionally I changed uEnv.txt for using new built dtbo by fixed dtbs like previous reply as below.

    I changed psdk linux 9.00.00.08 j721s2's board-support/linux-6.1.33+gitAUTOINC+8f7f371be2-g8f7f371be2/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dtso.

    So, could you let me know that what is below?

    # Name overlays when booting from fit image
    # name_overlays_fit=conf-ti_k3-j721s2-vision-apps.dtbo

    I don't know what is this, so, first just comment out and test go on.

    Can this attribute affects display?

    I can't see this attribute in previous PSDK versions.

    I see this document: https://downloads.ti.com/jacinto7/esd/processor-sdk-linux-j721s2/09_00_00_08/exports/docs/linux/Foundational_Components_Kernel_Users_Guide.html#creating-the-kernel-fitimage-for-high-security-device-gp-devices

    But yet I don't fully understand what is this.

  • Hi Lee,

    Can you please refer to below link for creating SD card and running vision apps demo? 

    Vision Apps User Guide: Run Instructions

    Regards,

    Brijesh

  • Hi, Brijesh:

    TDA4AL J721S2 SoC that I use is HS-SE or GP device? Which document can I check this?

    -> I found tisdk-adas-image is for GP devices in this link as below.

    Feature

    tisdk-adas-image

    tisdk-edgeai-image

    GP vs HS-FS

    GP devices

    HS-FS devices

    EVM vs SK

    EVM

    SK

    Capture/Display Core

    R5F

    A72

    SDK Device Type

    J7-prefixed SDK’s

    AM-prefixed SDK’s

    So, HS-SE may be High Security - Security Enforced following link.

    What is HS-FS & GP's full word?

    HS-FS is High Security - File System??

    Below code is PSDK Linux code(board-support/u-boot-2023.04+gitAUTOINC+756ba776d4-g756ba776d4/arch/arm/mach-k3/common.c).

    enum k3_device_type get_device_type(void)
    {
    	u32 sys_status = readl(K3_SEC_MGR_SYS_STATUS);
    
    	u32 sys_dev_type = (sys_status & SYS_STATUS_DEV_TYPE_MASK) >>
    			SYS_STATUS_DEV_TYPE_SHIFT;
    
    	u32 sys_sub_type = (sys_status & SYS_STATUS_SUB_TYPE_MASK) >>
    			SYS_STATUS_SUB_TYPE_SHIFT;
    
    	switch (sys_dev_type) {
    	case SYS_STATUS_DEV_TYPE_GP:
    		return K3_DEVICE_TYPE_GP;
    	case SYS_STATUS_DEV_TYPE_TEST:
    		return K3_DEVICE_TYPE_TEST;
    	case SYS_STATUS_DEV_TYPE_EMU:
    		return K3_DEVICE_TYPE_EMU;
    	case SYS_STATUS_DEV_TYPE_HS:
    		if (sys_sub_type == SYS_STATUS_SUB_TYPE_VAL_FS)
    			return K3_DEVICE_TYPE_HS_FS;
    		else
    			return K3_DEVICE_TYPE_HS_SE;

    I don't know what means GP, HS-FS and HS-SE specifically.

    Regards,

    UK Lee

  • About Display Issue

    I think that gpio en-powers to 'DP to HDMI Active Adapter(Converter)' by i2c4 as below code

    • board-support/linux-5.10.162+gitAUTOINC+76b3e88d56-g76b3e88d56/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts

    I changed and used k3-j721s2-vision-apps.dtso that enable i2c4 in linux(actually removed i2c4-disabled).

    • board-support/linux-6.1.33+gitAUTOINC+8f7f371be2-g8f7f371be2/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dtso

        dp0_pwr_3v3: fixedregulator-dp0-prw {
    		compatible = "regulator-fixed";
    		regulator-name = "dp0-pwr";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		gpio = <&exp4 0 0>;	/* P0 - DP0_PWR_SW_EN */
    		enable-active-high;
    	};
    	
    ...
    
    &main_i2c4 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c4_pins_default>;
    	clock-frequency = <400000>;
    
    	exp4: gpio@20 {
    		compatible = "ti,tca6408";
    		reg = <0x20>;
    		gpio-controller;
    		#gpio-cells = <2>;
    	};
    };

    Below gpio status is normal? Do gpio en-power to 'DP to HDMI Active Adapter(Converter)' ?

    root@j721s2-evm:~# gpioinfo
    ...
    gpiochip3 - 8 lines:
            line   0:      unnamed "fixedregulator-dp0-prw" output active-high [used]

  • Hi Lee,

    What is HS-FS & GP's full word?

    HS-FS mean High Security Field Securable device, this is device type before customer keys are programmed. Customers can use key writter application from PDK to program customer keys in this device and then can convert this device into HS-SE device. 

    GP is general purpose device. There is no security available on this device. 

    Below gpio status is normal? Do gpio en-power to 'DP to HDMI Active Adapter(Converter)' ?

    Not sure, is it possible to read the this io expander register to configure bit0 is set? Because i am not sure what means by "line   0:      unnamed "fixedregulator-dp0-prw" output active-high [used]". Do you see DP-HDMI working after this change? 

    Regards,

    Brijesh

  • Hi, Brijesh:

    Would you let me know command line or source code & code path in PSDK Linux, how to read this io expander register?

    Do you see DP-HDMI working after this change?

    Is it that this change means i2c4 disabled VS enabled in dtso?

    The gpio status that I shared is when i2c4 is enabled in dtso.

    Regards,

    UK Lee

  • Hi, Brijesh:

    Additionally I changed common dts as below.

    • board-support/linux-6.1.33+gitAUTOINC+8f7f371be2-g8f7f371be2/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts

    And then I used newly built k3-j721s2-common-proc-board.dtb.

    So, I can see the display with DP to HDMI Active Adapter (or Converter) as below.

    But, the logo is not seen.

    And I don't know if this change is right way.

    Please let me know your opinion about this.

    Best Regards,

    UK Lee

  • Hi, Brijesh:

    But,,, the display operated only one time.

    Now, reboot, power on/off.. I try again again.

    Display is not work..

    Regards,

    UK Lee

  • Hi Lee,

    Can you please try reading this io expader value and see if the bit0 is set? You can probably use i2cget utility on Linux prompty to read its value.

    I2C from the command line – Onion

    Regards,

    Brijesh 

  • Hi, Brijesh:

    I think the address is 0x20 of i2c4.

    root@j721s2-evm:~# i2cget -y 0 0x20 0x00
    Error: Read failed

    But, I can see nothing just read failed.

    Is it wrong register address for io expander?

    Best Regards,

    UK Lee

  • Hi Lee,

    Sorry, can you please try using "i2cdump -f -y 0 0x20"?

    Regards,

    Brijesh

  • Hi, Brijesh:

    root@j721s2-evm:~# i2cdump -f -y 0 0x20
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    

    Regards,

    UK Lee

  • Hi Lee,

    But it seems you are using J721S2 platform and on this platform, i think i2c instance 4 is connected to this io expander. I see below code in the vision apps. 

    Also instead of setting y to be 0, can you try with 3, ie "i2cdump -f -y 3 0x20"?

    void appDssConfigureDP(void)
    {
        Board_STATUS b_status;
        Board_IoExpCfg_t ioExpCfg;
    
        appLogPrintf("DSS: Turning on DP_PWR pin for eDP adapters ... !!!\n");
    
        #if defined (SOC_J721E)
        ioExpCfg.i2cInst     = 1U;
        #elif defined (SOC_J721S2) || defined (SOC_J784S4)
        ioExpCfg.i2cInst     = 4U;
        #endif
        ioExpCfg.socDomain   = BOARD_SOC_DOMAIN_MAIN;
        ioExpCfg.slaveAddr   = 0x20;
    

    Regards,

    Brijesh

  • Hi, Brijesh:

    root@j721s2-evm:~# i2cdump -f -y 3 0x20
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
    f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX

    root@j721s2-evm:~# i2cdetect -l
    i2c-0   i2c             OMAP I2C adapter                        I2C adapter
    i2c-1   i2c             OMAP I2C adapter                        I2C adapter
    i2c-2   i2c             OMAP I2C adapter                        I2C adapter
    i2c-3   i2c             a000000.dp-bridge                       I2C adapter

    4 instance means as above?

    root@j721s2-evm:~# i2cdetect -y 3
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    i2c-3 dp-bridge is not set anything address..

    Best Regards,

    UK Lee

  • Hi, Brijesh:

    I don't know... io expander concept..

    Isn't it just GPIO, also not I2C?

    This page(kor): eng page is the io expander concept?

    Best Regards,

    UK Lee

  • Hi, Brijesh:

    Display is success as below.

    After reboot & power on/off, the display is still okay.

    Below is final PSDK Linux changes that I did for using Qt application.

    Change #1

    board-support/linux-6.1.33+gitAUTOINC+8f7f371be2-g8f7f371be2/arch/arm64/boot/dts/ti/k3-j721s2-vision-apps.dtso

    Before After
    // SPDX-License-Identifier: GPL-2.0
    /*
     * vision-apps: device-tree overlay
     *
     * Copyright (C) 2019 - 2021 Texas Instruments Incorporated - http://www.ti.com/
     */
    
    /dts-v1/;
    /plugin/;
    
    #include "k3-j721s2-rtos-memory-map.dtsi"
    
    &main_i2c1 {
        status = "disabled";
    };
    
    &main_i2c4 {
    	status = "disabled";
    };
    
    &main_i2c5 {
    	status = "disabled";
    };
    
    &serdes_wiz0 {
        status = "disabled";
    };
    
    &dss {
        status = "disabled";
    };
    
    &ti_csi2rx0 {
        status = "disabled";
    };
    
    &ti_csi2rx1 {
        status = "disabled";
    };
    
    // SPDX-License-Identifier: GPL-2.0
    /*
     * vision-apps: device-tree overlay
     *
     * Copyright (C) 2019 - 2021 Texas Instruments Incorporated - http://www.ti.com/
     */
    
    /dts-v1/;
    /plugin/;
    
    #include "k3-j721s2-rtos-memory-map.dtsi"
    
    &main_i2c1 {
        status = "disabled";
    };
    
    &main_i2c5 {
    	status = "disabled";
    };
    
    &ti_csi2rx0 {
        status = "disabled";
    };
    
    &ti_csi2rx1 {
        status = "disabled";
    };
    
    • Removed 'main_i2c4 disabled'.
    • Removed 'serdes_wiz0 disabled'.
    • Removed 'dss disabled'.

    After change, I use new built k3-j721s2-vision-apps.dtbo.

    Change #2

    board-support/linux-6.1.33+gitAUTOINC+8f7f371be2-g8f7f371be2/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts

    Before After
    	dp0_pwr_3v3: fixedregulator-dp0-prw {
    		compatible = "regulator-fixed";
    		regulator-name = "dp0-pwr";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		gpio = <&exp4 0 0>;	/* P0 - DP0_PWR_SW_EN */
    		enable-active-high;
    	};

    	dp0_pwr_3v3: fixedregulator-dp0-prw {
    		compatible = "regulator-fixed";
    		regulator-name = "dp0-pwr";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		gpio = <&exp4 0 0>;	/* P0 - DP0_PWR_SW_EN */
    		enable-active-high;
    		regulator-always-on;
    	};

    • Added 'regulator-always-on' in dp0_pwr_3v3.

    After change, I use new built k3-j721s2-common-proc-board.dtb.

    So,

    I don't know that this is best solution. But anyway, display is okay now with DP to HDMI Active Converter(Adapter).

    8.6 PSDK Linux's codes seems to be same with 9.0, but I don't know why 8.6 display is okay and 9.0 is not okay if not fixing as above.

    Best Regards,

    UK Lee

  • Hi Lee,

    I am not sure about "regulator-always-on", but the other changes look fine to me. So yes, this is good solution. 

    May be on SDK8.6, it was being configured from R5F, not sure..

    I guess it is working fine, so we can close this ticket.

    Regards,

    Brijesh 

  • Hi, Brijesh:

    Thanks very much for your support !

    Regards,

    UK Lee