AM62L: Waveshare 5-inch 1080x1080 LCD Not Working with AM62L EVM - HDMI Timing Issue

Part Number: AM62L
Other Parts Discussed in Thread: AM62P

Tool/software:

Hello,

I am facing an issue with the Waveshare 5-inch 1080x1080 LCD https://www.waveshare.com/wiki/5inch_1080x1080_LCD 

not displaying on the AM62L EVM board.

Below are the details of my setup and the steps I’ve taken to troubleshoot the issue.

Board: AM62Lx EVM

Display: Waveshare 5-inch 1080x1080 LCD

SDK: Flashed tisdk-default-image-am62lxx-evm-11.00.15.05.rootfs.wic.xz

Issue: The display does not work by default with the AM62L EVM. I suspect an HDMI timing issue, as the same display works out-of-the-box with the AM62P-LP board without any device tree modifications. Additionally, I connected the display to an Ubuntu machine and confirmed it works with the following timing parameters obtained via kms_print:

1080x1080@60.07 85.500 1080/68/32/100/+ 1080/16/4/12/+ 60 (60.07) P|D
DTD 1: 1080x1080 60.069 Hz 1:1 66.797 kHz 85.500 MHz (203 mm x 270 mm)
Hfront 68 Hsync 32 Hback 100 Hpol P
Vfront 16 Vsync 4 Vback 12 Vpol P

These parameters match the EDID settings provided in the Waveshare wiki:

Steps Taken:

  1. Modified the device tree file k3-am62l3-evm.dts to include the following display timings under the hdmi0: connector-hdmi node:

display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <85500000>; // Pixel clock in Hz
hactive = <1080>;
hfront-porch = <68>;
hsync-len = <32>;
hback-porch = <100>;
hsync-active = <0>; // 0 = positive, 1 = negative
vactive = <1080>;
vfront-porch = <16>;
vsync-len = <4>;
vback-porch = <12>;
vsync-active = <0>; // 0 = positive, 1 = negative
de-active = <0x68>;
pixelclk-active = <0x5>;
};
};

2.Rebuilt the Linux kernel with make linux and installed it using:

sudo DESTDIR=/media/$USER/rootfs make linux_install

Observations:

  • The display shows output but appears distorted or misaligned, suggesting incorrect HDMI timing settings.
  • The same display works perfectly on the AM62P-LP board and an Ubuntu PC without modifications.

Any assistance in resolving this HDMI timing issue or suggestions for further debugging would be greatly appreciated. Thank you!

  •   Could you please support .

  • Since it works with AM62P, lets try to figure where the delta is with AM62L.
    Without the dts changes:

    What do you see with the following on AM62L?

    # -------------------On EVM------------------------------
    kmsprint
    kmstest # also share what you see on display running this
    cat /sys/kernel/debug/clk/clk_summary | grep DSS
    modetest -M tidss
    
    # Check if you can read EDID:
    cat /sys/class/drm/card0-HDMI-A-1/edid > edid.txt
    #  --> Copy this file on your host PC
    
    #Run colorbar test:
    devmem2 0x30208000 w 0x2
    devmem2 0x3020B004 w 0x361   # Share what you see on display
    
    # -------------------On Ubuntu Machine-------------------
    sudo apt-get install read-edid
    cat edid.txt | parse-edid Checksum Correct  # Use the edid.txt copied from EVM

  •  

    kmsprint
    Connector 0 (41) HDMI-A-1 (connected)
      Encoder 0 (40) NONE
        Crtc 0 (39) 1080x1080@60.07 85.500 1080/68/32/100/+ 1080/16/4/12/+ 60 (60.07) 0x5 0x48
          Plane 0 (32) fb-id: 43 (crtcs: 0) 0,0 1080x1080 -> 0,0 1080x1080 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX)
            FB 43 1080x1080

    kmstest- same image i have shared in this ticket

    cat /sys/kernel/debug/clk/clk_summary | grep DSS
     3_DSS0                              0       0        0        0           0          0     50000      Y   deviceless                      no_connection_id         
     2_DSS0                              0       0        0        0           0          0     50000      Y   deviceless                      no_connection_id         
     4_DSS_DSI0                          0       0        0        0           0          0     50000      Y   deviceless                      no_connection_id         
     2_DSS_DSI0                          0       0        0        0           0          0     50000      Y   30500000.dsi                    dsi_p_clk                
     0_DSS_DSI0                          0       0        0        0           0          0     50000      Y   deviceless                      no_connection_id         
        4_DSS0                           1       1        0        250000000   0          0     50000      Y      30200000.dss                    fck                      
        1_DSS0                           0       0        0        85500000    0          0     50000      Y      deviceless                      no_connection_id         
        0_DSS0                           1       1        0        85500000    0          0     50000      Y      30200000.dss                    vp1                      
        5_DSS_DSI0                       0       0        0        250000000   0          0     50000      Y      30500000.dsi                    dsi_sys_clk              
        3_DSS_DSI0                       0       0        0        250000000   0          0     50000      Y      deviceless                      no_connection_id         
        1_DSS_DSI0                       0       0        0        16666666    0          0     50000      Y      deviceless                      no_connection_id

    modetest -M tidss
    Encoders:
    id      crtc    type    possible crtcs  possible clones
    40      39      none    0x00000001      0x00000001
    
    Connectors:
    id      encoder status          name            size (mm)       modes   encoders
    41      40      connected       HDMI-A-1        480x270         3       40
      modes:
            index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
      #0 1080x1080 60.07 1080 1148 1180 1280 1080 1096 1100 1112 85500 flags: phsync, pvsync; type: preferred, driver
      #1 1600x900 60.00 1600 1624 1704 1800 900 901 904 1000 108000 flags: phsync, pvsync; type: driver
      #2 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver
      props:
            1 EDID:
                    flags: immutable blob
                    blobs:
    
                    value:
                            00ffffffffffff002e83542101000000
                            0113010380301b780af0659857519127
                            2150540000008180a9c0010101010101
                            010101010101662138c8403820404420
                            0404cb0e0100001e662138c840382040
                            44200404cb0e0100001e000000fc0057
                            53303530520a202020202020000000fd
                            00313d0f440f000a202020202020017d
                            02031a74470000000000000023090701
                            8301000065030c001000662138c84038
                            204044200404cb0e0100001e00000000
                            00000000000000000000000000000000
                            00000000000000000000000000000000
                            00000000000000000000000000000000
                            00000000000000000000000000000000
                            00000000000000000000000000000027
            2 DPMS:
                    flags: enum
                    enums: On=0 Standby=1 Suspend=2 Off=3
                    value: 0
            5 link-status:
                    flags: enum
                    enums: Good=0 Bad=1
                    value: 0
            6 non-desktop:
                    flags: immutable range
                    values: 0 1
                    value: 0
            4 TILE:
                    flags: immutable blob
                    blobs:
    
                    value:
    
    CRTCs:
    id      fb      pos     size
    39      43      (0,0)   (1080x1080)
      #0 1080x1080 60.07 1080 1148 1180 1280 1080 1096 1100 1112 85500 flags: phsync, pvsync; type: preferred, driver
      props:
            24 VRR_ENABLED:
                    flags: range
                    values: 0 1
                    value: 0
            27 CTM:
                    flags: blob
                    blobs:
    
                    value:
            28 GAMMA_LUT:
                    flags: blob
                    blobs:
    
                    value:
            29 GAMMA_LUT_SIZE:
                    flags: immutable range
                    values: 0 4294967295
                    value: 256
    
    Planes:
    id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
    32      39      43      0,0             0,0     0               0x00000001
      formats: AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12
      props:
            8 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 1
            30 IN_FORMATS:
                    flags: immutable blob
                    blobs:
    
                    value:
                            01000000000000001d00000018000000
                            01000000900000004152313241423132
                            52413132524731364247313641523135
                            41423135415232344142323452413234
                            42413234524732344247323441523330
                            41423330585231325842313252583132
                            58523135584231355852323458423234
                            52583234425832345852333058423330
                            59555956555956594e56313200000000
                            ffffff1f000000000000000000000000
                            0000000000000000
                    in_formats blob decoded:
                             AR12:  LINEAR(0x0)
                             AB12:  LINEAR(0x0)
                             RA12:  LINEAR(0x0)
                             RG16:  LINEAR(0x0)
                             BG16:  LINEAR(0x0)
                             AR15:  LINEAR(0x0)
                             AB15:  LINEAR(0x0)
                             AR24:  LINEAR(0x0)
                             AB24:  LINEAR(0x0)
                             RA24:  LINEAR(0x0)
                             BA24:  LINEAR(0x0)
                             RG24:  LINEAR(0x0)
                             BG24:  LINEAR(0x0)
                             AR30:  LINEAR(0x0)
                             AB30:  LINEAR(0x0)
                             XR12:  LINEAR(0x0)
                             XB12:  LINEAR(0x0)
                             RX12:  LINEAR(0x0)
                             XR15:  LINEAR(0x0)
                             XB15:  LINEAR(0x0)
                             XR24:  LINEAR(0x0)
                             XB24:  LINEAR(0x0)
                             RX24:  LINEAR(0x0)
                             BX24:  LINEAR(0x0)
                             XR30:  LINEAR(0x0)
                             XB30:  LINEAR(0x0)
                             YUYV:  LINEAR(0x0)
                             UYVY:  LINEAR(0x0)
                             NV12:  LINEAR(0x0)
            34 zpos:
                    flags: range
                    values: 0 0
                    value: 0
            35 COLOR_ENCODING:
                    flags: enum
                    enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1
                    value: 0
            36 COLOR_RANGE:
                    flags: enum
                    enums: YCbCr limited range=0 YCbCr full range=1
                    value: 1
            37 alpha:
                    flags: range
                    values: 0 65535
                    value: 65535
            38 pixel blend mode:
                    flags: enum
                    enums: Pre-multiplied=0 Coverage=1
                    value: 0
    
    Frame buffers:
    id      size    pitch

    devmem2 0x30208000 w 0x2
    /dev/mem opened.
    Memory mapped at address 0xffffb9bc7000.
    Read at address  0x30208000 (0xffffb9bc7000): 0x00000000
    Write at address 0x30208000 (0xffffb9bc7000): 0x00000002, readback 0x00000002

     devmem2 0x3020B004 w 0x361
    /dev/mem opened.
    Memory mapped at address 0xffffb1bde000.
    Read at address  0x3020B004 (0xffffb1bde004): 0x00000000
    Write at address 0x3020B004 (0xffffb1bde004): 0x00000361, readback 0x00000361

    Same image i have shared in the ticket.

    cat edid.txt | parse-edid Checksum Correct
    Checksum Correct
    
    Section "Monitor"
    	Identifier "WS050R"
    	ModelName "WS050R"
    	VendorName "KTC"
    	# Monitor Manufactured week 1 of 2009
    	# EDID version 1.3
    	# Digital Display
    	DisplaySize 480 270
    	Gamma 2.20
    	Option "DPMS" "false"
    	Horizsync 15-68
    	VertRefresh 49-61
    	# Maximum pixel clock is 150MHz
    	#Not giving standard mode: 1280x1024, 60Hz
    	#Not giving standard mode: 1600x900, 60Hz
    
    	#Extension block found. Parsing...
    	Modeline 	"Mode 9" 85.50 1080 1148 1180 1280 1080 1096 1100 1112 +hsync +vsync 
    	Modeline 	"Mode 0" 85.50 1080 1148 1180 1280 1080 1096 1100 1112 +hsync +vsync 
    	Modeline 	"Mode 1" 85.50 1080 1148 1180 1280 1080 1096 1100 1112 +hsync +vsync 
    	Modeline 	"Mode 2" 
    	Modeline 	"Mode 3" 
    	Modeline 	"Mode 4" 
    	Modeline 	"Mode 5" 
    	Modeline 	"Mode 6" 
    	Modeline 	"Mode 7" 
    	Modeline 	"Mode 8" 
    	Option "PreferredMode" "Mode 9"
    EndSection

  • Cross-checking 2 things:
    1. You had removed your dts changes for above experiments?
    2. AM62L evm is working fine with any other hdmi display/monitor?

  • 1. You had removed your dts changes for above experiments? yes
    2. AM62L evm is working fine with any other hdmi display/monitor? yes.working fine in https://www.waveshare.com/10.1inch-hdmi-lcd-g-with-case.htm

  • Your issue seems related to  SK-AM62A-LP: 10.1 inch HDMI LCD display is not working well though you do not see any errors. Please stay tuned with that thread. Will share further info when we have it. 

  • Hi Aniruth,
    Does this patch: https://lists-ec2.96boards.org/archives/list/linux-stable-mirror@lists.linaro.org/message/QDDG3547AGRNW2CRW2KZCP3AWFXM63K2/ solve this issue as well?

    This patch is included in 11.01 SDK which shall be released around October timeframe for AM62L.

  •   The issue is not resolved with this patch. There are no i2c errors shown in the logs, and the display is working. I have already tried adding the display timing, but the issue still persists.

  • In your current debugs, has there been any difference in between working AM62P and non-working AM62L case? is there a difference in clocks?