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.

AM4378: Issue with HDMI resolution of 1280x720

Part Number: AM4378

Dear Sitara Champs,

I have an AM437x GP EVM. I'm using ti-processor-sdk-linux-am437x-evm-03.00.00.04 and booting from SD card.

I'm trying to get the HDMI output to display at a resolution of 1280x720. Everything I try I keep getting an output resolution of 1024x768@75 as reported by my TV monitor. I modified uEnv.txt for uboot as follows

root@am437x-evm:/run/media/mmcblk0p1# cat uEnv.txt
# This uEnv.txt file can contain additional environment settings that you
# want to set in U-Boot at boot time.  This can be simple variables such
# as the serverip or custom variables.  The format of this file is:
#    variable=value
# NOTE: This file will be evaluated after the bootcmd is run and the
#       bootcmd must be set to load this file if it exists (this is the
#       default on all newer U-Boot images.  This also means that some
#       variables such as bootdelay cannot be changed by this file since
#       it is not evaluated until the bootcmd is run.
#optargs=video=HDMI-A-1:800x600
optargs=video=HDMI-A-1:1920x1080
#optargs="omapdss.def_disp=display1 omapfb.mode=display1:1280x720-24@60"

# Uncomment the following line to enable HDMI display and disable LCD display.
fdtfile=am437x-gp-evm-hdmi.dtb

I came up with those settings based on other E2E threads on this same subject.

I verified it got passed to the kernel correctly by checking what uboot passed to the kernel, see below

root@am437x-evm:~# cat /proc/cmdline
console=ttyO0,115200n8 video=HDMI-A-1:1920x1080 root=PARTUUID=cd1d2d40-02 rw rootfstype=ext4 rootwait

I have two questions:

1) Can somebody explain how to get 720p output?

2) How can I verify the output resolution from the linux command line? I ran modetest but it doesn't show the current resolution/frame rate being used.

Thanks

  • Yes, I read that thread, that's where I got the settings I'm using. It did not help. this is still an open issue.
  • Brad Caldwell said:
    1) Can somebody explain how to get 720p output?

    In your post above, are you meaning to say that this isn't working for you - optargs=video=HDMI-A-1:1280x720?

    Brad Caldwell said:
    2) How can I verify the output resolution from the linux command line? I ran modetest but it doesn't show the current resolution/frame rate being used.

    Look for information under CRTCs. Below is the modetest output for CRTCs from my AM571x IDK setup, LCD resolution is 1920x1200.


    CRTCs:
    id fb pos size
    34 43 (0,0) (1920x1200)
    1920x1200 60 1920 2072 2124 2144 1200 1224 1230 1278 flags: nhsync, nvsync; type: preferred, driver

  • Correct, it did not work for me. Here's the kernel command line that was passed in by uboot

    root@am437x-evm:~# cat /proc/cmdline

    console=ttyO0,115200n8 video=HDMI-A-1:1920x1080 root=PARTUUID=cd1d2d40-02 rw rootfstype=ext4 rootwait

    root@am437x-evm:~#

     

     

    Here's the output of modetest. The connector id shows as 26 for the HDMI. Under CRTCs, the first entry (id of 28) shows a resolution of 1024x768 which matches what the TV monitor reports. One question It wasn't clear to me that the CRTC was for HDMI, how do I make a correlation between the HDMI connector ID and the CRTC id?

     

     

    root@am437x-evm:~# modetest
    trying to open device 'i915'...failed
    trying to open device 'radeon'...failed
    trying to open device 'nouveau'...failed
    trying to open device 'vmwgfx'...failed
    trying to open device 'omapdrm'...done
    Encoders:
    id      crtc    type    possible crtcs  possible clones
    25      28      TMDS    0x00000001      0x00000000

    Connectors:
    id      encoder status          name            size (mm)       modes   encoders
    26      25      connected       HDMI-A-1        510x290         17      25
      modes:
            name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
      1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync, pvsync; type: preferred, driver
      1920x1080 60 1920 2040 2248 2576 1080 1081 1084 1118 flags: nhsync, pvsync; type: userdef
      1920x1080 60 1920 2008 2052 2200 1080 1082 1087 1125 flags: phsync, pvsync; type: driver
      1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync, pvsync; type: driver
      1280x720 60 1280 1390 1430 1650 720 725 730 750 flags: phsync, pvsync; type: driver
      1280x720 60 1280 1390 1430 1650 720 725 730 750 flags: phsync, pvsync; type: driver
      1024x768 75 1024 1040 1136 1312 768 769 772 800 flags: phsync, pvsync; type: driver
      1024x768 70 1024 1048 1184 1328 768 771 777 806 flags: nhsync, nvsync; type: driver
      1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
      800x600 75 800 816 896 1056 600 601 604 625 flags: phsync, pvsync; type: driver
      800x600 72 800 856 976 1040 600 637 643 666 flags: phsync, pvsync; type: driver
      800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver
      720x480 60 720 736 798 858 480 489 495 525 flags: nhsync, nvsync; type: driver
      720x480 60 720 736 798 858 480 489 495 525 flags: nhsync, nvsync; type: driver
      640x480 75 640 656 720 840 480 481 484 500 flags: nhsync, nvsync; type: driver
      640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; type: driver
      640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; type: driver
      props:
            1 EDID:
                    flags: immutable blob
                    blobs:

                    value:
                            00ffffffffffff00593a650000000000
                            2f13010380331d78329085a358539f26
                            0f505425ce0001010101010101010101
                            010101010101023a801871382d40582c
                            4500fd1e1100001e000000fd00384c1f
                            520f000a202020202020000000fc0056
                            4d3233305856540a20202020000000ff
                            004c49494947434130353630350a01ec
                            02031c71489005040302070601231107
                            508301000066030c00100000023a8018
                            71382d40582c2500fd1e1100001e011d
                            007251d01e206e285500fd1e1100001e
                            8c0ad08a20e02d10103e9600fd1e1100
                            0018011d8018711c1620582c2500fd1e
                            1100009e000000000000000000000000
                            000000000000000000000000000000a4
            2 DPMS:
                    flags: enum
                    enums: On=0 Standby=1 Suspend=2 Off=3
                    value: 0

    CRTCs:
    id      fb      pos     size
    28      46      (0,0)   (1024x768)
      1024x768 75 1024 1040 1136 1312 768 769 772 800 flags: phsync, pvsync; type: driver
      props:
            21 trans-key-mode:
                    flags: enum
                    enums: disable=0 gfx-dst=1 vid-src=2
                    value: 0
            22 trans-key:
                    flags: range
                    values: 0 16777215
                    value: 0
            23 background:
                    flags: range
                    values: 0 16777215
                    value: 0
            24 alpha_blender:
                    flags: range
                    values: 0 1
                    value: 0
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 0

    Planes:
    id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
    27      28      46      0,0             0,0     0               0x00000001
      formats: RG16 RX12 AR12 RG24 RX24 XR24 RA24 AR24
      props:
            5 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 1
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 0
            19 global_alpha:
                    flags: range
                    values: 0 255
                    value: 255
            20 pre_mult_alpha:
                    flags: range
                    values: 0 1
                    value: 0
    29      0       0       0,0             0,0     0               0x00000001
      formats: RG16 RX12 RG24 XR24 YUYV UYVY
      props:
            5 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 0
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 1
            19 global_alpha:
                    flags: range
                    values: 0 255
                    value: 255
            20 pre_mult_alpha:
                    flags: range
                    values: 0 1
                    value: 0
    30      0       0       0,0             0,0     0               0x00000001
      formats: RG16 RX12 AR12 RG24 RX24 XR24 RA24 AR24 YUYV UYVY
      props:
            5 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 0
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 2
            19 global_alpha:
                    flags: range
                    values: 0 255
                    value: 255
            20 pre_mult_alpha:
                    flags: range
                    values: 0 1
                    value: 0

    Frame buffers:
    id      size    pitch

    root@am437x-evm:~#


     

     

     

     

  • I just realized it's set to 1920x1080 which isn't a supported resolution on the AM437x due to pixel clock rate. I know I tried 1280x720 at one point but let me try it again.
  • Brad, here is what I use:
    From the AM437X Datasheet this is maximum 100MHz in TFT Raster Mode. For 1920x1080@60fps you would need 1920 * 1080 * 60 = 124416000 pixel clock periods. If you add ~ 30% overhead for vertical and horizontal sync porches this would make 161740800 clock periods per frame or ~ 162MHz pixel clock. You can estimate what can be really achieved by doing the reverse calculations.
  • I changed it to 1280x720 but I get the same results. This is on an AM437x GP EVM and not the idk, I wonder if there's a difference. Do you have the ability to try it out on an EVM?

    root@am437x-evm:~# cat /proc/cmdline
    console=ttyO0,115200n8 video=HDMI-A-1:1280x720 root=PARTUUID=cd1d2d40-02 rw rootfstype=ext4 rootwait
    root@am437x-evm:~# modetest
    trying to open device 'i915'...failed
    trying to open device 'radeon'...failed
    trying to open device 'nouveau'...failed
    trying to open device 'vmwgfx'...failed
    trying to open device 'omapdrm'...done
    Encoders:
    id      crtc    type    possible crtcs  possible clones
    25      28      TMDS    0x00000001      0x00000000

    Connectors:
    id      encoder status          name            size (mm)       modes   encoders
    26      25      connected       HDMI-A-1        510x290         17      25
      modes:
            name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
      1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync, pvsync; type: preferred, driver
      1920x1080 60 1920 2008 2052 2200 1080 1082 1087 1125 flags: phsync, pvsync; type: driver
      1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync, pvsync; type: driver
      1280x720 60 1280 1336 1472 1664 720 721 724 746 flags: nhsync, pvsync; type: userdef
      1280x720 60 1280 1390 1430 1650 720 725 730 750 flags: phsync, pvsync; type: driver
      1280x720 60 1280 1390 1430 1650 720 725 730 750 flags: phsync, pvsync; type: driver
      1024x768 75 1024 1040 1136 1312 768 769 772 800 flags: phsync, pvsync; type: driver
      1024x768 70 1024 1048 1184 1328 768 771 777 806 flags: nhsync, nvsync; type: driver
      1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
      800x600 75 800 816 896 1056 600 601 604 625 flags: phsync, pvsync; type: driver
      800x600 72 800 856 976 1040 600 637 643 666 flags: phsync, pvsync; type: driver
      800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver
      720x480 60 720 736 798 858 480 489 495 525 flags: nhsync, nvsync; type: driver
      720x480 60 720 736 798 858 480 489 495 525 flags: nhsync, nvsync; type: driver
      640x480 75 640 656 720 840 480 481 484 500 flags: nhsync, nvsync; type: driver
      640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; type: driver
      640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; type: driver
      props:
            1 EDID:
                    flags: immutable blob
                    blobs:

                    value:
                            00ffffffffffff00593a650000000000
                            2f13010380331d78329085a358539f26
                            0f505425ce0001010101010101010101
                            010101010101023a801871382d40582c
                            4500fd1e1100001e000000fd00384c1f
                            520f000a202020202020000000fc0056
                            4d3233305856540a20202020000000ff
                            004c49494947434130353630350a01ec
                            02031c71489005040302070601231107
                            508301000066030c00100000023a8018
                            71382d40582c2500fd1e1100001e011d
                            007251d01e206e285500fd1e1100001e
                            8c0ad08a20e02d10103e9600fd1e1100
                            0018011d8018711c1620582c2500fd1e
                            1100009e000000000000000000000000
                            000000000000000000000000000000a4
            2 DPMS:
                    flags: enum
                    enums: On=0 Standby=1 Suspend=2 Off=3
                    value: 0

    CRTCs:
    id      fb      pos     size
    28      33      (0,0)   (1024x768)
      1024x768 75 1024 1040 1136 1312 768 769 772 800 flags: phsync, pvsync; type: driver
      props:
            21 trans-key-mode:
                    flags: enum
                    enums: disable=0 gfx-dst=1 vid-src=2
                    value: 0
            22 trans-key:
                    flags: range
                    values: 0 16777215
                    value: 0
            23 background:
                    flags: range
                    values: 0 16777215
                    value: 0
            24 alpha_blender:
                    flags: range
                    values: 0 1
                    value: 0
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 0

    Planes:
    id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
    27      28      33      0,0             0,0     0               0x00000001
      formats: RG16 RX12 AR12 RG24 RX24 XR24 RA24 AR24
      props:
            5 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 1
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 0
            19 global_alpha:
                    flags: range
                    values: 0 255
                    value: 255
            20 pre_mult_alpha:
                    flags: range
                    values: 0 1
                    value: 0
    29      0       0       0,0             0,0     0               0x00000001
      formats: RG16 RX12 RG24 XR24 YUYV UYVY
      props:
            5 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 0
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 1
            19 global_alpha:
                    flags: range
                    values: 0 255
                    value: 255
            20 pre_mult_alpha:
                    flags: range
                    values: 0 1
                    value: 0
    30      0       0       0,0             0,0     0               0x00000001
      formats: RG16 RX12 AR12 RG24 RX24 XR24 RA24 AR24 YUYV UYVY
      props:
            5 type:
                    flags: immutable enum
                    enums: Overlay=0 Primary=1 Cursor=2
                    value: 0
            18 zorder:
                    flags: range
                    values: 0 3
                    value: 2
            19 global_alpha:
                    flags: range
                    values: 0 255
                    value: 255
            20 pre_mult_alpha:
                    flags: range
                    values: 0 1
                    value: 0

    Frame buffers:
    id      size    pitch

    root@am437x-evm:~#

  • Brad, apps will post comments soon...

  • Brad,

    I checked at my end and it works for me.

    Note that the command line parameters affects  fbdev resolution. If fbdev is enabled in the kernel, that parameter affects the resolution of the fbdev (and thus the display) when the device boots up. When weston is started, weston decides which resolution to use (based on /etc/weston.ini).

  • I'm using the stock out-of-box Linux PSDK pre-built image in which case weston starts up prior to running matrix. I edited weston.ini and now I get 1280x720 output. Thanks for you help.