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.

Regarding dra7xx-evm display is not working for sample application kmscube

Other Parts Discussed in Thread: DRA752

Hello,

We are working on dra7xx-evm(OMAP5777)  board. Here we are using these things:

1.  linux3.8

2. Toolchain- gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.

3. Filesystem- arago-glsdk-multimedia-image-dra7xx-evm.

We are trying to run sample application kmscube to test display on dra7xx-evm. But we are not getting any display.

We are getting the following log while running kmscube app given in filesystem.

The log :

root@dra7xx-evm:~# kmscube

trying to load module omapdrm...success.

### Display [0]: CRTC = 10, Connector = 4

Mode chosen [800x480] : Clock => 29232, Vertical refresh => 60, Type => 72

Horizontal => 800, 841, 890, 931, 0

Vertical => 480, 493, 497, 526, 0

### Primary display => ConnectorId = 4, Resolution = 800x480

failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory

failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory

loaded module: gbm_pvr.so

PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]

Using display 0x1 with EGL version 1.4

EGL Version "1.4 build 1.9@2253347"

EGL Vendor "Imagination Technologies"

EGL Extensions "EGL_IMG_client_api_ogl EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cu"

Please help in this regard.

Regards

Naveen

  • Hi Naveen,

    Have you used pvrsrvinit before running the applicaiton?

    Best Regards,

    Yordan

  • Hello Yordan,

    We did run "pvrsrvinit " before running the kmscube. It failed with the following error :

     

    root@dra7xx-evm:~# pvrsrvinit

     

    [   18.922180]

     

    [   18.923767] =============================================

     

    [   18.929443] [ INFO: possible recursive locking detected ]

     

    [   18.935150] 3.8.13-g2c871a8 #1 Tainted: G           O

     

    [   18.940460] ---------------------------------------------

     

    [   18.946166] pvrsrvinit/1821 is trying to acquire lock:

     

    [   18.951568]  (psPVRSRVMutex){+.+.+.}, at: [<bf016d74>]

    DebugMemAllocRecordAdd+0x38/0x130 [omapdrm_pvr]

     

    [   18.961456]

     

    [   18.961456] but task is already holding lock:

     

    [   18.967620]  (psPVRSRVMutex){+.+.+.}, at: [<bf015618>]

    PVRSRVOpen+0x18/0xf0 [omapdrm_pvr]

     

    [   18.976287]

     

    [   18.976287] other info that might help us debug this:

     

    [   18.983184]  Possible unsafe locking scenario:

     

    [   18.983184]

     

    [   18.989410]        CPU0

     

    [   18.992004]        ----

     

    [   18.994567]   lock(psPVRSRVMutex);

     

    [   18.998168]   lock(psPVRSRVMutex);

     

    [   19.001770]

     

    [   19.001770]  *** DEADLOCK ***

     

    [   19.001770]

     

    [   19.008026]  May be due to missing lock nesting notation

     

    [   19.008026]

     

    [   19.015197] 2 locks held by pvrsrvinit/1821:

     

    [   19.019683]  #0:  (drm_global_mutex){+.+.+.}, at: [<c03bf5e8>]

    drm_stub_open+0x38/0x144

     

    [   19.028167]  #1:  (psPVRSRVMutex){+.+.+.}, at: [<bf015618>]

    PVRSRVOpen+0x18/0xf0 [omapdrm_pvr]

     

    [   19.037292]

     

    [   19.037292] stack backtrace:

     

    [   19.041931] [<c001b528>] (unwind_backtrace+0x0/0xf0) from

    [<c009528c>] (__lock_acquire+0x1414/0x1a9c)

     

    [   19.051635] [<c009528c>] (__lock_acquire+0x1414/0x1a9c) from

    [<c0095e2c>] (lock_acquire+0x9c/0x128)

     

    [   19.061187] [<c0095e2c>] (lock_acquire+0x9c/0x128) from

    [<c0633f54>] (mutex_lock_nested+0x50/0x3a4)

     

    [   19.070770] [<c0633f54>] (mutex_lock_nested+0x50/0x3a4) from

    [<bf016d74>] (DebugMemAllocRecordAdd+0x38/0x130 [omapdrm_pvr])

     

    [   19.082580] [<bf016d74>] (DebugMemAllocRecordAdd+0x38/0x130

    [omapdrm_pvr]) from [<bf0170e4>] (_KMallocWrapper+0x44/0x50

    [omapdrm_pvr])

     

    [   19.095367] [<bf0170e4>] (_KMallocWrapper+0x44/0x50 [omapdrm_pvr])

    from [<bf012a04>] (OSAllocMem_Impl+0x58/0x68 [omapdrm_pvr])

     

    [   19.107421] [<bf012a04>] (OSAllocMem_Impl+0x58/0x68 [omapdrm_pvr])

    from [<bf020b44>] (PVRSRVPerProcessDataConnect+0x74/0x154

    [omapdrm_pvr])

     

    [   19.120697] [<bf020b44>] (PVRSRVPerProcessDataConnect+0x74/0x154

    [omapdrm_pvr]) from [<bf015628>] (PVRSRVOpen+0x28/0xf0 [omapdrm_pvr])

     

    [   19.133514] [<bf015628>] (PVRSRVOpen+0x28/0xf0 [omapdrm_pvr]) from

    [<bf031440>] (PVRSRVDrmOpen+0xc8/0xf0 [omapdrm_pvr])

     

    [   19.144958] [<bf031440>] (PVRSRVDrmOpen+0xc8/0xf0 [omapdrm_pvr])

    from [<c03d2d1c>] (dev_open+0x98/0x108)

     

    [   19.154937] [<c03d2d1c>] (dev_open+0x98/0x108) from [<c03bf230>]

    (drm_open+0x200/0x580)

     

    [   19.163391] [<c03bf230>] (drm_open+0x200/0x580) from [<c03bf670>]

    (drm_stub_open+0xc0/0x144)

     

    [   19.172302] [<c03bf670>] (drm_stub_open+0xc0/0x144) from

    [<c0111cf4>] (chrdev_open+0x88/0x16c)

     

    [   19.181396] [<c0111cf4>] (chrdev_open+0x88/0x16c) from [<c010c380>]

    (do_dentry_open+0x1fc/0x274)

     

    [   19.190673] [<c010c380>] (do_dentry_open+0x1fc/0x274) from

    [<c010c42c>] (finish_open+0x34/0x4c)

     

    [   19.199859] [<c010c42c>] (finish_open+0x34/0x4c) from [<c011a9c4>]

    (do_last.isra.27+0x4ec/0xbac)

     

    [   19.209136] [<c011a9c4>] (do_last.isra.27+0x4ec/0xbac) from

    [<c011b12c>] (path_openat+0xa8/0x480)

     

    [   19.218505] [<c011b12c>] (path_openat+0xa8/0x480) from [<c011b7c0>]

    (do_filp_open+0x2c/0x80)

     

    [   19.227416] [<c011b7c0>] (do_filp_open+0x2c/0x80) from [<c010d510>]

    (do_sys_open+0xe4/0x174)

     

    [   19.236328] [<c010d510>] (do_sys_open+0xe4/0x174) from [<c0013800>]

    (ret_fast_syscall+0x0/0x3c)

  • Hi Naveen,

    The above log (DEADLOCK backtrace) does not indicate failing of pvrsrvinit. Actually that is what the command outputs (this is a limitation of glsdk).

    See the output of top to check if the cube is persistently working but not rendering, if so kill the process.

    Then try using:
    #pvrsrvinit

    #kmscube -a

    Best Regards,

    Yordan

  • Hello Yordan,

    If that is the case then we are getting the following error on running "kmscube -a"

    Note: We are using GLSDK_6.04.00.02 on DRA7xx EVM.

    root@dra7xx-evm:~# kmscube -a

     

    trying to load module omapdrm...success.

     

    ### Display [0]: CRTC = 10, Connector = 4

     

            Mode chosen [800x480] : Clock => 29232, Vertical refresh => 60, Type => 72

     

            Horizontal => 800, 841, 890, 931, 0

     

            Vertical => 480, 493, 497, 526, 0

     

    ### Primary display => ConnectorId = 4, Resolution = 800x480

     

    failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory

     

    failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory

     

    loaded module: gbm_pvr.so

     

    PVR:(Warning): PVRDRMSetFD: could not get plugin ioctl base: -22 [69, /pvr_bridge_u.c]

     

    PVR:(Warning): PVRDRMSetFD: could not get plugin ioctl base: -22 [69, /pvr_bridge_u.c]

     

    PVR:(Error): OpenServices: drmOpen failed [120, /pvr_bridge_u.c]

     

    PVR:(Error): PVRSRVConnect: Unable to open connection. [361, /bridged_pvr_glue.c]

     

    gbmpvr: ERROR: OpenPVR:153: PVR2DCreateDeviceContext failed

     

    failed to initialize

     

    failed to initialize EGL

  • Hi,

    It seems your PVR driver is somehow corrupted.

    Could you rebuild it & install it on your board.  You should use the sources located in:

    ti-glsdk_omap5-uevm_6_04_00_02/board-support/external-linux-kernel-modules/omap5-sgx-ddk-linux/eurasia_km

    Refer to README file for instructions on how to rebuilt your pvr driver (KM & UM).

    Best Regards,

    Yordan

  • Hi,

    We tried to compile  PVR driver. And it compiled successfully. After that we inserted that module(omapdrm_pvr.ko ) and done the following thing:

    1. insmod omapdrm_pvr.ko  (successful)

    2. pvrsrvinit  (successful) , no error this time.

    3. kmscube -a .But  we got the following log:

    trying to load module omapdrm...success.

    ### Display [0]: CRTC = 10, Connector = 4

    Mode chosen [800x480] : Clock => 29232, Vertical refresh => 60, Type => 72

    Horizontal => 800, 841, 890, 931, 0

    Vertical => 480, 493, 497, 526, 0

    ### Primary display => ConnectorId = 4, Resolution = 800x480

    failed to load module: /usr/lib/gbm/gbm_dri.so: cannot open shared object file: No such file or directory

    failed to load module: /usr/lib/gbm/gbm_gallium_drm.so: cannot open shared object file: No such file or directory

    loaded module: gbm_pvr.so

    PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [80, /bridged_pvr_dc_glue.c]

    Using display 0x1 with EGL version 1.4

    EGL Version "1.4 build 1.9@2253347"

    EGL Vendor "Imagination Technologies"

    EGL Extensions "EGL_IMG_client_api_ogl EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cu"

    We are not getting cube on the  display.


    Please help in this regard.

    Regards

    Naveen

     

     

  • Naveen,

    To debug further, could you please restart the board, allow it to boot up and then execute the following commands, send us the output.

    * modetest

    * lsmod

    Regards

    Karthik

  • Hi Karthik,

    We tried these things as you told.

    Here  what we got:

    root@dra7xx-evm:~# lsmod

    Module Size Used by

    root@dra7xx-evm:~# modetest

    trying to load module i915...failed.

    trying to load module radeon...failed.

    trying to load module nouveau...failed.

    trying to load module vmwgfx...failed.

    trying to load module omapdrm...success.

    Encoders:

    id crtc type possible crtcs possible clones

    3 10 TMDS 0x00000003 0x00000000

    11 0 TMDS 0x00000002 0x00000000

    Connectors:

    id encoder status type size (mm) modes encoders

    4 3 connected unknown 0x0 1 3

    modes:

    name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)

    800x480 60 800 841 890 931 480 493 497 526 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

    12 0 disconnected HDMI-A 0x0 0 11

    CRTCs:

    id fb pos size

    10 19 (0,0) (800x480)

    800x480 60 800 841 890 931 480 493 497 526 flags: nhsync, nvsync; type: preferred, driver

    props:

    6 rotation:

    flags: bitmask

    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20

    value: 0

    7 zorder:

    flags: range

    values: 0 3

    value: 0

    8 global_alpha:

    flags: range

    values: 0 255

    value: 0

    9 pre_mult_alpha:

    flags: range

    values: 0 1

    value: 0

    14 0 (0,0) (0x0)

    0 0 0 0 0 0 0 0 0 flags: ; type:

    props:

    6 rotation:

    flags: bitmask

    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20

    value: 0

    7 zorder:

    flags: range

    values: 0 3

    value: 0

    8 global_alpha:

    flags: range

    values: 0 255

    value: 0

    9 pre_mult_alpha:

    flags: range

    values: 0 1

    value: 0

    Planes:

    id crtc fb CRTC x,y x,y gamma size

    15 0 0 0,0 0,0 0

    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY

    props:

    6 rotation:

    flags: bitmask

    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20

    value: 0

    7 zorder:

    flags: range

    values: 0 3

    value: 0

    8 global_alpha:

    flags: range

    values: 0 255

    value: 0

    9 pre_mult_alpha:

    flags: range

    values: 0 1

    value: 0

    16 0 0 0,0 0,0 0

    formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24 NV12 YUYV UYVY

    props:

    6 rotation:

    flags: bitmask

    values: rotate-0=0x1 rotate-90=0x2 rotate-180=0x4 rotate-270=0x8 reflect-x=0x10 reflect-y=0x20

    value: 0

    7 zorder:

    flags: range

    values: 0 3

    value: 0

    8 global_alpha:

    flags: range

    values: 0 255

    value: 0

    9 pre_mult_alpha:

    flags: range

    values: 0 1

    value: 0

    Frame buffers:

    id size pitch

    root@dra7xx-evm:~# lsmod

    Module Size Used by

    We tried these things after deleting module(omapdrm_pvr.ko) from   /lib/modules/3.8.13-g2c871a8/extra/ .


    Even though output of lsmod is the same.

    Regards

    Naveen

  • Naveen,

    Can I request you to attach the output in to E2E as an attachment, the formatting doesn't allow me to see through things very quickly.

    Is the output of lsmod empty? 

    I do not understand this statement: "We tried these things after deleting module(omapdrm_pvr.ko) from   /lib/modules/3.8.13-g2c871a8/extra/ ." Please clarify.

    Regards

    Karthik

  • Hello Karthik,

    lsmod is empty.

    There is an attachment below  for the output of modetest and lsmod.

    6318.gstreamer.txt

    Regards

    Naveen

  • Hi Naveen,

    The output of the modetest and the mode chosen by the kmscube application matches. So I don't suspect anything wrong with the DRM interaction with kmscube. 

    You mentioned that you are trying to test the display in your earlier post, do you see the LCD show up the penguins and the console when the board boots up? The modetest output indicates connected, but I just wanted to confirm. 

    Have you tried connecting an HDMI monitor and tried running the kmscube application? What happens in that case?

    Regards

    Karthik

  • Hello Karthik,

    During booting lcd is changing its color from red to blue and some other colors.

    But when we are running kmscube app, we are not getting the cube image on the screen, only changing color as usual on the lcd screen.

    Presently we don't have  HDMI monitor to verify it.

    Regards

    Naveen

  • Hi Naveen,

    Which board are you using? Is this from Spectrum Digital?

    With the GLSDK release, you will always see the LCD being initialized and the display will show the penguins and the default console. 

    I'm not sure if the board that you are using has a different LCD panel from the Spectrum Digital dra7 evm that is causing this issue.

    We don't have to debug the issue with kmscube not displaying anything until you get the LCD issue resolved or if you get hold of a HDMI monitor. It is expected to work fine.

    Regards

    Karthik

  • Hello Karthik,

    We are using dra7xx-evm board,  linux kernel is 3.8.13.

    Other details are:

    CPU  : DRA752 ES1.1  

    Board: DRA7xx

    LCD-pannel: Spectrum digital--      PWB-517481    Rev D Logic-517482 Rev D      10 inch

    If there is any issue with the lcd, how we can resolve this. Please suggest in this regard.

    Regards

    Naveen

  • Hi Naveen,

    Your 10'' display is not enabled. KMS cube application should work on HDMI display. 

    Which GLSDK are you using?
    Here are the post release updates, which contain patches to enable your display:

     - for GLSDK6.10, which uses kernel 3.12: http://processors.wiki.ti.com/index.php/DRA7xx_GLSDK_6.10.00.02_Post-release_Updates

     - for GLSDK6_04, which uses kernel 3.8.13 you can try the patches shown here: http://processors.wiki.ti.com/index.php/DRA7xx_GLSDK_6.04.00.02_Release_Notes#Appendix

    If possible, I recommend you to transition to latest GLSDK_6.10.00.02.

    Best Regards,
    Yordan

  • Hi Yordan,

    For the current EVM(DRA752 ES1.1) , GLSDK_6.10.00.02 is not working, We mean to say that kernel is not booting for this evm.

    So, We don't have option but to use GLSDK_6.04.00.02.

    Is there any way to add support of the spectrum digital 10"  display on this EVM.

    Please help in this regard.

    Regards

    Naveen

  • Hi Naveen,

    1. You can try the patches shown here:  http://processors.wiki.ti.com/index.php/DRA7xx_GLSDK_6.04.00.02_Release_Notes#Appendix

    2. You can also back port patches from  Android: http://omappedia.org/wiki/6AJ.1.3_Application_Notes#Rev-G_10.22_Display

    Best Regards,

    Yordan