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.

Linux: Dual display configuration with Android O

Other Parts Discussed in Thread: DRA742

Tool/software: Linux

Hi sir,

Based on the DRA74x EVM  REV board, I want enable the Vout1 and Vout2  for LCD,  if we used the HDMI port ,it can work fine, the system can show normally, but we want to used the Vout1 and Vout2, so how to change the dts under "dra7.dtsi"/"dra7xx-clocks.dtsi"/"dra74x.dtsi"/"dra7-evm-common.dtsi"/"dra7xx-jamr3.dtsi".

The board info is following:

CPU : DRA752-GP ES1.1
Model: TI DRA742
Board: DRA74x EVM REV

the Android O is from http://processors.wiki.ti.com/index.php/6AO.1.0_Release_Notes

Thanks
Jackie

  • Hi Jackie,

    Please check the revision of the J6EVM under test. As per the 6AO release note, only the Rev H J6Evm is supported.

    Using the 6AO prebuilt binaries, on the J6Rev H EVM, with an HDMI display plugged in, and an OSD LCD (1920x1080) display connected to the CPU board, the OSD LCD on VOUT1 will be the primary display, and the HMI will be mirrored on the HDMI display.

    Could you please provide some further details such as how the displays are connected to the EVM under test, and if VOUT1 is working in the test setup?

    Thanks,

    KB
  • Sorry, the reference board is damaged, so I don't verify it, but I am sure the hardware is good, since if I flashed the QNX version, it can work fine, we make the new board only replacing some similar component and reducing some unused component.

    I changed it with following reference changes, get same result ,Vout1 and Vout2 can't work.

    review.omapzoom.org/

    Thanks
    Jackie
  • Hi Jackie,

    Thanks for the information, you are on the right track with the changes shown in the link provided.  The below links can be used along with the link you had provided for some further context on those changes were done for.

    https://e2e.ti.com/support/arm/automotive_processors/f/1020/p/657380/2415594?tisearch=e2e-sitesearch&keymatch=DRA7%20vout2#2415594

    http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Automotive_Display_FAQ#Testing_multiple_LCD_displays_on_the_EVM

    The 6AO release will default to VOUT1 as primary display if present, recommend starting the debug on that interface before proceeding with adding of VOUT2.

    Are there any errors being seen?  Have display timings been added for the display that is attached to VOUT1?

    Regards,

    KB

  • thanks very much, I configured the timing followed the QNX configuration. since we used the same touchscreen

    The QNX configuration is "

    #define MODELINE(mhz, h1, h2, h3, h4, v1, v2, v3, v4, f) \
        { .pixel_clock_kHz = (mhz) * 1000, \
        .hpixels = (h1), .hfp = (h2) - (h1), .hsw = (h3) - (h2), .hbp = (h4) - (h3), \
        .vlines  = (v1), .vfp = (v2) - (v1), .vsw = (v3) - (v2), .vbp = (v4) - (v3), \
        .flags = (f), } \

           

    /* 1920x720 @ 28Hz 45.43MHz +HSync +VSync
     h: width  1920 start 1980 end 2000 total 2080 skew    0
     v: height  720 start  722 end  723 total  780           */
         {
            .mode = MODELINE(45.43, 1920, 1980, 2000, 2080, 720, 722, 723, 780, 0),
            .mode_ext = NULL,
        },

    "

    So I configured the timing is "


    panel-timing {
    clock-frequency = <45430000>;
    hactive = <1920>;
    vactive = <720>;

    hfront-porch = <60>;
    hsync-len = <32>;
    hback-porch = <80>;

    vfront-porch = <2>;
    vsync-len = <4>;
    vback-porch = <57>;

    hsync-active = <0>;
    vsync-active = <0>;
    de-active = <1>;
    pixelclk-active = <1>;
    };

    "

    but I run the "modetest", it seems that the vout is not working....

    127|jacinto6evm:/ # 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
    31 34 TMDS 0x00000001 0x00000000
    35 38 TMDS 0x00000002 0x00000000
    39 0 TMDS 0x00000000 0x00000000
    41 0 TMDS 0x00000000 0x00000000

    Connectors:
    id encoder status name size (mm) modes encoders
    32 31 connected HDMI-A-1 0x0 5 31
    modes:
    name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
    1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
    800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver
    800x600 56 800 824 896 1024 600 601 603 625 flags: phsync, pvsync; type: driver
    848x480 60 848 864 976 1088 480 486 494 517 flags: phsync, pvsync; 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:
    2 DPMS:
    flags: enum
    enums: On=0 Standby=1 Suspend=2 Off=3
    value: 0
    36 35 connected unknown-1 0x0 1 35
    modes:
    name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
    1920x720 28 1920 1980 2012 2092 720 722 726 783 flags: nhsync, nvsync; type: preferred, driver
    props:
    1 EDID:
    flags: immutable blob
    blobs:

    value:
    2 DPMS:
    flags: enum
    enums: On=0 Standby=1 Suspend=2 Off=3
    value: 0
    40 0 connected unknown-2 0x0 1 39
    modes:
    name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
    1920x720 28 1920 1980 2012 2092 720 722 726 783 flags: nhsync, nvsync; type: preferred, driver
    props:
    1 EDID:
    flags: immutable blob
    blobs:

    value:
    2 DPMS:
    flags: enum
    enums: On=0 Standby=1 Suspend=2 Off=3
    value: 0
    42 0 connected unknown-3 0x0 1 41
    modes:
    name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
    1920x720 28 1920 1980 2012 2092 720 722 726 783 flags: nhsync, nvsync; type: preferred, driver
    props:
    1 EDID:
    flags: immutable blob
    blobs:

    value:
    2 DPMS:
    flags: enum
    enums: On=0 Standby=1 Suspend=2 Off=3
    value: 0

    CRTCs:
    id fb pos size
    34 50 (0,0) (1024x768)
    1024x768 60 1024 1048 1184 1344 768 771 777 806 flags: nhsync, nvsync; type: driver
    props:
    27 trans-key-mode:
    flags: enum
    enums: disable=0 gfx-dst=1 vid-src=2
    value: 0
    28 trans-key:
    flags: range
    values: 0 16777215
    value: 0
    29 background:
    flags: range
    values: 0 16777215
    value: 0
    30 alpha_blender:
    flags: range
    values: 0 1
    value: 0
    21 GAMMA_LUT:
    flags: blob
    blobs:

    value:
    22 GAMMA_LUT_SIZE:
    flags: immutable range
    values: 0 4294967295
    value: 256
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0
    38 55 (0,0) (1920x720)
    1920x720 28 1920 1980 2012 2092 720 722 726 783 flags: nhsync, nvsync; type: preferred, driver
    props:
    27 trans-key-mode:
    flags: enum
    enums: disable=0 gfx-dst=1 vid-src=2
    value: 0
    28 trans-key:
    flags: range
    values: 0 16777215
    value: 0
    29 background:
    flags: range
    values: 0 16777215
    value: 0
    30 alpha_blender:
    flags: range
    values: 0 1
    value: 0
    21 GAMMA_LUT:
    flags: blob
    blobs:

    value:
    22 GAMMA_LUT_SIZE:
    flags: immutable range
    values: 0 4294967295
    value: 256
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0

    Planes:
    id crtc fb CRTC x,y x,y gamma size possible crtcs
    33 34 50 0,0 0,0 0 0x00000001
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 1
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0
    25 global_alpha:
    flags: range
    values: 0 255
    value: 255
    26 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 1
    37 38 55 0,0 0,0 0 0x00000002
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 1
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 0
    25 global_alpha:
    flags: range
    values: 0 255
    value: 255
    26 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 0
    43 34 56 0,0 0,0 0 0x00000003
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 0
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 1
    25 global_alpha:
    flags: range
    values: 0 255
    value: 255
    26 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 1
    44 34 59 0,0 0,0 0 0x00000003
    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY
    props:
    5 type:
    flags: immutable enum
    enums: Overlay=0 Primary=1 Cursor=2
    value: 0
    23 rotation:
    flags: bitmask
    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20
    value: 1
    24 zorder:
    flags: range
    values: 0 3
    value: 2
    25 global_alpha:
    flags: range
    values: 0 255
    value: 255
    26 pre_mult_alpha:
    flags: range
    values: 0 1
    value: 1

    Frame buffers:
    id size pitch

    jacinto6evm:/ #

    Thanks
    Jackie

  • Hi Jackie,

    Apologies for the delayed response. 

    In Android 6AO.1 there are sample .dts files in which VOUT1 is used for primary display.

    For example, for the J6 RevH EVM board, file dra7-evm-lcd-osd.dts, is a dts file which, in turn pulls in dra7x-evm-lcd-osd.dtsi. The dra7x-evm-lcd-osd.dtsi is used to enable a 1920x1200 OSD LCD display   To get a different display running (such as the 1920x720 being referenced), the dra7x-evm-lcd-osd.dtsi would need to be modified or replaced to meet the specifications of the display in use.   One portion of this effort would be setting the display timings.   Other items may include the backlight controller and touch controller.

    To see if the display timings that have been modified are taking effect on the VOUT1 interface, the VOUT1_CLK pin could be probed to see if the desired 45.43Mhz clock is present.

    Regards,

    KB