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.

OMAP5432 uEVM hardware test

Hello all,

Is there any software solution to test if OMAP5432 uEVM board works correctly?

I was not able to achieve any output on HDMI and want to verify if it is a hardware or software problem.

(DVI Monitor is detected by linux (edid is read, and look ok), but , but does not show anything.
when plugging and unplugging cable I can see HPD interrupts in /proc/interrupts

  • Small additional question - what is the initialisation sequence for HDMI output?

    I was going to write to the registers from u-boot, set up mode at something like 640x480p and try to check that it works? Or this idea would not work?

  • Hello,

    There is no such software, that I am aware of..

    Which OS release are you using? Android 5AJ. 1.5.1  (http://omapedia.org/wiki/Panda5AJ.1.5.1_Release_Notes)

    or GLSDK6_03 (http://software-dl.ti.com/dsps/dsps_public_sw/glsdk/latest/index_FDS.html)?

    However I have tested both on my omap5 uEVM, and when the HDMI monitor is plugged and I power up the board, I am able to see output on the screen.

    Best Regards,

    Yordan

  • I was using GLSDK6_02. I was not aware, that there was new version available.

    I could get output from HDMI on a TV, but that was not repeatable.

    I'll download the new version and give it a try, thank you.

  • I created an image with GLSDK6_03, and booted it. It did not work (monitor detected, EDID read correctly), but no picture.

    When I tried to start pvrsinit and then kmscube to test I got the following:

    root@omap5-evm:~# pvrsrvinit 
    [   40.206573] 
    [   40.208160] =============================================
    [   40.213806] [ INFO: possible recursive locking detected ]
    [   40.219482] 3.8.13-g89927f5 #1 Tainted: G           O
    [   40.224792] ---------------------------------------------
    [   40.230468] pvrsrvinit/2131 is trying to acquire lock:
    [   40.235870]  (psPVRSRVMutex){+.+.+.}, at: [<bf050d30>] DebugMemAllocRecordAdd+0x38/0x130 [omapdrm_pvr]
    [   40.245758] 
    [   40.245758] but task is already holding lock:
    [   40.251892]  (psPVRSRVMutex){+.+.+.}, at: [<bf04f5d4>] PVRSRVOpen+0x18/0xf0 [omapdrm_pvr]
    [   40.260559] 
    [   40.260559] other info that might help us debug this:
    [   40.267425]  Possible unsafe locking scenario:
    [   40.267425] 
    [   40.273651]        CPU0
    [   40.276214]        ----
    [   40.278778]   lock(psPVRSRVMutex);
    [   40.282379]   lock(psPVRSRVMutex);
    [   40.285949] 
    [   40.285949]  *** DEADLOCK ***
    [   40.285949] 
    [   40.292175]  May be due to missing lock nesting notation
    [   40.292175] 
    [   40.299316] 2 locks held by pvrsrvinit/2131:
    [   40.303802]  #0:  (drm_global_mutex){+.+.+.}, at: [<c035ae78>] drm_stub_open+0x38/0x144
    [   40.312286]  #1:  (psPVRSRVMutex){+.+.+.}, at: [<bf04f5d4>] PVRSRVOpen+0x18/0xf0 [omapdrm_pvr]
    [   40.321441] 
    [   40.321441] stack backtrace:
    [   40.326049] [<c001b528>] (unwind_backtrace+0x0/0xf0) from [<c00950e8>] (__lock_acquire+0x1414/0x1a9c)
    [   40.335723] [<c00950e8>] (__lock_acquire+0x1414/0x1a9c) from [<c0095c88>] (lock_acquire+0x9c/0x128)
    [   40.345245] [<c0095c88>] (lock_acquire+0x9c/0x128) from [<c061db0c>] (mutex_lock_nested+0x50/0x3a4)
    [   40.354797] [<c061db0c>] (mutex_lock_nested+0x50/0x3a4) from [<bf050d30>] (DebugMemAllocRecordAdd+0x38/0x130 [omapdrm_pvr])
    [   40.366607] [<bf050d30>] (DebugMemAllocRecordAdd+0x38/0x130 [omapdrm_pvr]) from [<bf0510a0>] (_KMallocWrapper+0x44/0x50 [omapdrm_pvr])
    [   40.379394] [<bf0510a0>] (_KMallocWrapper+0x44/0x50 [omapdrm_pvr]) from [<bf04ca04>] (OSAllocMem_Impl+0x58/0x68 [omapdrm_pvr])
    [   40.391448] [<bf04ca04>] (OSAllocMem_Impl+0x58/0x68 [omapdrm_pvr]) from [<bf05aab4>] (PVRSRVPerProcessDataConnect+0x74/0x154 [omapdrm_pvr])
    [   40.404724] [<bf05aab4>] (PVRSRVPerProcessDataConnect+0x74/0x154 [omapdrm_pvr]) from [<bf04f5e4>] (PVRSRVOpen+0x28/0xf0 [omapdrm_pvr])
    [   40.417541] [<bf04f5e4>] (PVRSRVOpen+0x28/0xf0 [omapdrm_pvr]) from [<bf06b3b4>] (PVRSRVDrmOpen+0xc8/0xf0 [omapdrm_pvr])
    [   40.428955] [<bf06b3b4>] (PVRSRVDrmOpen+0xc8/0xf0 [omapdrm_pvr]) from [<c036e368>] (dev_open+0x98/0x108)
    [   40.438903] [<c036e368>] (dev_open+0x98/0x108) from [<c035aac8>] (drm_open+0x1f0/0x568)
    [   40.447326] [<c035aac8>] (drm_open+0x1f0/0x568) from [<c035af00>] (drm_stub_open+0xc0/0x144)
    [   40.456207] [<c035af00>] (drm_stub_open+0xc0/0x144) from [<c0111b50>] (chrdev_open+0x88/0x16c)
    [   40.465270] [<c0111b50>] (chrdev_open+0x88/0x16c) from [<c010c1dc>] (do_dentry_open+0x1fc/0x274)
    [   40.474517] [<c010c1dc>] (do_dentry_open+0x1fc/0x274) from [<c010c288>] (finish_open+0x34/0x4c)
    [   40.483673] [<c010c288>] (finish_open+0x34/0x4c) from [<c011a820>] (do_last.isra.27+0x4ec/0xbac)
    [   40.492889] [<c011a820>] (do_last.isra.27+0x4ec/0xbac) from [<c011af88>] (path_openat+0xa8/0x480)
    [   40.502227] [<c011af88>] (path_openat+0xa8/0x480) from [<c011b61c>] (do_filp_open+0x2c/0x80)
    [   40.511108] [<c011b61c>] (do_filp_open+0x2c/0x80) from [<c010d36c>] (do_sys_open+0xe4/0x174)
    [   40.519989] [<c010d36c>] (do_sys_open+0xe4/0x174) from [<c0013800>] (ret_fast_syscall+0x0/0x3c)
    

    Then I started kmscube:

    root@omap5-evm:~# kmscube 
    trying to load module omapdrm...success.
    ### Display [0]: CRTC = 10, Connector = 4
    	Mode chosen [1440x900] : Clock => 106500, Vertical refresh => 60, Type => 72
    	Horizontal => 1440, 1520, 1672, 1904, 0
    	Vertical => 900, 903, 909, 934, 0
    ### Primary display => ConnectorId = 4, Resolution = 1440x900
    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_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_vg_parent_image EGL_IMG_cl_image EGL_KHR_fence_sync EGL_IMG_hibernate_process EGL_WL_bind_wayland_display EGL_KHR_surfaceless_gles2 EGL_NV_post_sub_buffer "
    [   89.308319] omapdss HDMI error: M = 443 Mf = 196608
    [   89.313903] omapdss HDMI error: range = 0 sd = 5
    [   89.318756] HDCP: hdcp_3des_cb: hdcp_keys not loaded = 0
    [   89.318756] 
    [   89.326293] Enter hdmi_core_init
    [   89.329925] Enable video_path

    There was no image still. Is there anything that I can do to debug the situation? Stack dump does not look like a proper result of running a program. :)

  • Hello,

    I have a couple of suggestions, since I cannot reproduce your problem with my setup (omap5 uEVM & HDMI monitor (LG Flatron IPS235) connected to it).

    I. You can try running the modetest command to test your display connection .

    After that you can try rebuilding your kernel:

    1. from your GLSDK folder execute make_linux_clean
    2. make menuconfig you can see the kernel configuration from GLSDK software developers guide (http://processors.wiki.ti.com/index.php/OMAP5_GLSDK_Software_Developers_Guide#Kernel_Configuration)

    3. Enable CONFIG_DRM_OMAP through (Menuconfig->Device Drivers->Graphics support)

    4. Enable CONFIG_OMAP5_DSS_HDMI, CONFIG_OMAP5_DSS_HDMI_DDC through (Menuconfig->Device Drivers->Graphics support->OMAP2+ Display Subsystem support)

    5. run make_linux

    6. run make_linux_install

    7. the build images should be located in ~/install directory.

    Complete guide to rebuild GLSDK components can be found here: http://processors.wiki.ti.com/index.php/OMAP5_GLSDK_Software_Developers_Guide#Rebuilding_the_GLSDK_components

    You can also check http://processors.wiki.ti.com/index.php/GLSDK_Datasheet_OMAP5_6.03.00.01 for tips, that I may have missed.

    II.  Just to be sure that this is not a problem with your build, before trying the above could you try with the prebuilt images available in the SDK after installing the GLSDK & running the setup.sh script?
    You should just run   sudo ${GLSDK}/bin/mksdboot.sh --device /dev/sdY --sdk ${GLSDK}.

    III.  Also can you verify that running  ./build-core-sdk.sh omap5-evm command, it executed without any errors, and you've followed exactly the instructions in http://processors.wiki.ti.com/index.php/OMAP5_GLSDK_Software_Developers_Guide#Building_Yocto_Filesystem? The Yocto-Filesystem build downloads a lot of components & should go without errors in order to work properly on your board.

    Also, just to clarify the correct setup is: you should have your HDMI monitor connected to your uEVM, also you should connect the Ethernet cable to your omap5 uEVM and after that you should power cycle the board.

    Best Regards,

    Yordan

  • Another thing that comes to mind is that maybe your hdmi cable has defect. Can you try with different hdmi cable?

  • I was running a prebuilt image (made as you describe in part II).

    Yes, I first connected all cables (console, network, and hdmi to dvi cable to dvi monitor). and then powered it on.

    Looks like it was a hardware problem. I tried a second board with the same cables and microSD card and it works.