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.

OMTB scripts vs OMX C application for "decode_display" functionality discrepancy between 5.01 and 5.02 SDKs


Hello,

Has anyone seen or noticed the TI-OMTB decode_scale_display.oms script
failing but the TI-OMX decode_display_a8host_debug.xv5T working?

Under EZSDK 5.01 we had the OMTB script running fine on our custom boards.
Under EZSDK 5.02 the OMTB script throws out some notify_shm_drv_sendevent failed traces
but the new [TI-OMX] C application works fine.

We added our own printk()'s to narrow down what might be happening and the 'case 6'
refers to the notify_shm_drv.c:notify_shm_drv_send_event() function [~ line 1060]
where it's checking if the driver on the "other" processor [M3/VPSS?] is initialized.
(It checks for a recv_init_status against the value of NOTIFYSHMDRIVER_INIT_STAMP.)

Since we're running on our own custom boards I wasn't too surprised about this at
first since we have different video chips on our board and that maybe that might be
tripping up the new 5.02 VPSS firmware.

But we're confused as to then WHY the standalone C app works!?

Anybody have some thoughts as to why the asymmetry in functionality between the script
and C app across the EZSDKs?

Thanks.

- Juan Solis

OMTB script traces under EZSDK 5.02:
-----------------------------------------

OMTB> omx api sendcommand state h264vdec 0 waitforsem
OMTB-Entering <Thread , instance #> : <OMTB_Client_ConnIn_ConnOut_Tsk>
OMTB-In OMTB_ClientEventHandler: OMX_EventCmdComplete -  OMX_CommandStateSet
OMTB-OMX_StateExecuting
OMTB-Create OMTB_ClientApiTsk
OK

OMTB> sleep 60000
OMTB-OMTB script reading task sleeping for 60000 msecs
OMTB-Entering <Thread , instance #> : <OMTB_ClientApiTsk , 0>
OMTB-Entering <Thread , instance #> : <OMTB_Client_ConnIn_ConnOut_Tsk>
OMTB-Entering <Thread , instance #> : <OMTB_InputDataRead , 0>
OMTB-Entering <Thread , instance #> : <OMTB_FileRead , 0>
notify...send_event(): failed, case 6
notify_shm_drv_sendevent failed! status = 0xfffffff0
notify_send_event failed! status = 0xfffffff0
OMTB-FAIL: OMX_ErrorUndefined

notify...send_event(): failed, case 6
notify_shm_drv_sendevent failed! status = 0xfffffff0
notify_send_event failed! status = 0xfffffff0
OMTB-FAIL: OMX_ErrorUndefined

notify...send_event(): failed, case 6
notify_shm_drv_sendevent failed! status = 0xfffffff0
notify_send_event failed! status = 0xfffffff0
OMTB-FAIL: OMX_ErrorUndefined

notify...send_event(): failed, case 6
notify_shm_drv_sendevent failed! status = 0xfffffff0
notify_send_event failed! status = 0xfffffff0
OMTB-FAIL: OMX_ErrorUndefined

notify...send_event(): failed, case 6
notify_shm_drv_sendevent failed! status = 0xfffffff0

  • > Has anyone seen or noticed the TI-OMTB decode_scale_display.oms script
    > failing but the TI-OMX decode_display_a8host_debug.xv5T working?

    Yes. In EZSDK 5.02.01.59 the OMTB has stopped working with this script. I don't get errors like you do, but it doesn't display anything. decode_display works fine.

    Ralph

     

  • Hi Ralph,

    Thanks for the confirmation.

    I'd be curious to hear from someone at TI about the why, but at least

    now we know not to bang our heads too much with it for now.

    Thanks again.

     

    Juan

     

  • Hi Juan,

    Can you please share the oms script that has failed on your setup, I would like to reproduce the issue on my setup.

     

     

     

  • I'm almost certain Juan is referring to the "decode_scale_display.oms" in EZSDK 5.02.01.59:

    "<EZSDK>/example-applications/omtb_01_00_01_05/packages/ti/sdo/omtb/scripts/decode_scale_display.oms"


    As an aside, and hopefully something TI can take on board; Juan has an excellent point saying that once he knows something doesn't work he can move on to something else. This is something lacking time and again in the EZSDK.

    Us engineers don't particularly mind things not working, it is a pre-release SDK after all. The issue is, we really would like to know which components of the SDK are not working, then we can move onto other activities without wasting our time getting things to work that won't.

    All the same, the SDK does seem to be getting better with each release which is pleasing to see.

    Thanks,
    Ralph

  • Srinivasa Reddy DeviReddy said:

    Hi Juan,

    Can you please share the oms script that has failed on your setup, I would like to reproduce the issue on my setup.

     

    Hello Srinivasa,

    It's the official one that came with the EZSDK. We didn't make any changes.

       <EZSDK>/example-applications/omtb_01_00_01_05/packages/ti/sdo/omtb/scripts/decode_scale_display.oms

    We ran it from the command line (i.e.: from the serial console, not from any gui front-end [if it makes any difference]).

    Juan.

  • Hi Juan, Ralph and Srinivasa,

    Just my tuppence worth:

    I am running EZSDK 5.02.01.59 and went through the OMTB v01_00_01_05 release notes.  After much cursing and swearing removing Windows paths from env.mk and various other things I managed to get it to compile, and then found the .oms scripts on the targetfs in /usr/share/ti/ti-omtb.  I found various other .ko files kicking around in the /usr/share and copied all to my /home/root/omtb directory I was working in.

    From here, I boot the board as normal, nothing changed there.  Then I stop the matrix gui, kill the graphics , stop pvr-init and unload hdvicp and hdvpss.

    Then I go through the steps in 4.1 of the OMTB release notes, namely:

    prcm_config_app s

    insmod syslink.ko

    ./firmware_loader 1 dm816x_hdvicp.xem3 start

    ./firmware_loader 2 dm816x_hdvpss.xem3 start

    insmod vpss.ko mode=hdmi:1080p-60,hdcomp:1080p-60 i2c_mode=1

    insmod ti81xxhdmi.ko

    and finally:

    ./omtb_dm816xbm_a8host.xv5T decode_scale_display.oms and it plays the video absolutely fine.

    Not sure what I'm doing differently to you guys, but thought I'd share this, in that I think it does work.

    Now all I want is some pointers as to what the different steps in the oms scripts actually do so I can write my own!

    Cheers,

    Simon

  • Where do all your files (kernel modules, .xem3 firmware files etc) come from? Are they all definitely from the latest EZSDK?

    Thanks,
    Ralph

  • The .ko files came from /lib/modules except for syslink.ko which I got from /usr/share/ti/c6run-apps

    The .xem3 files came from /usr/share/ti/ti-media-controller-utils

    They are all on the NFS on the targetfs created by the EZSDK 5.02 installer.  I renamed my 5.01 targetfs to something else, so these are definitely from the new EZSDK.

    The only thing I rebuild was the omtb_dm816xbm_a8host.xv5T file

    Cheers,

    Simon

  • Hi Simon,

    Thanks for the update, good news that demo runs at your end.

    Please find the omtb user guide in "omtb_01_00_01_05/packages/ti/sdo/omtb/docs" folder, explains about omtb application.

    Following are the build steps used to build omtb which are relatively simple.

    1) DM816x_C6A816x_AM389x_EZ_Software_Developers_Guide.pdf

      "make omtb" from the toplevel directory

    2) Set all the paths as arguments in the make command as mentioned in omtb release notes or omtb user guide, this will avoid modification of env.mk file

  • Many apologies, it turns out I didn't have the H264 file in the right place so the script couldn't find it. The OMTB decode_scale_display script now works fine for me.

    Back to Juan's issue.

    Looks like there is a problem with notify. My guess at the cause is either:

    a) You haven't loaded syslink.ko properly, or it's not built against the right kernel configuration.

    b) Perhaps more likely, you don't have this line in your "bootargs" U-Boot variable: "notifyk.vpssm3_sva=0xBF900000"


    Any help?

    Ralph

  • Hi Srinivasa,

    Been in meetings most of this morning so just catching up. I'll try a rebuild of the OMTB

    app when I get a chance. Thanks for looking into this. I'll post a followup after I try it.

    Juan

  • _Ralph_ said:

    Many apologies, it turns out I didn't have the H264 file in the right place so the script couldn't find it. The OMTB decode_scale_display script now works fine for me.

    Back to Juan's issue.

    Looks like there is a problem with notify. My guess at the cause is either:

    a) You haven't loaded syslink.ko properly, or it's not built against the right kernel configuration.

    b) Perhaps more likely, you don't have this line in your "bootargs" U-Boot variable: "notifyk.vpssm3_sva=0xBF900000"


    Any help?

    Ralph

     

    Hi Ralph,

    The bootargs were the default that came after I created an SD bootable media from the SDK. I did

    confirm that the notifyk.vpssm3 parameter was set correctly just to make sure.

    Same goes with the syslink.ko. No local changes; straight from the SDK. There were no errors during

    it's modprobe. Besides, if the syslink.ko hadn't made it OK I would think that the C app version wouldn't

    work either but that's just my theory. I would expect that both OMTB and the C app version (from TI-OMX)

    would use the same communication across the cores (b/w the A8 and the M3s).

    Thanks for the suggestions though.

    I'll try Srinivasa's suggestion of rebuilding the OMTB app when I get a chance and post on update.

     

    Juan

  • Simon Brown said:

    Hi Juan, Ralph and Srinivasa,

    Just my tuppence worth:

    I am running EZSDK 5.02.01.59 and went through the OMTB v01_00_01_05 release notes.  After much cursing and swearing removing Windows paths from env.mk and various other things I managed to get it to compile, and then found the .oms scripts on the targetfs in /usr/share/ti/ti-omtb.  I found various other .ko files kicking around in the /usr/share and copied all to my /home/root/omtb directory I was working in.

    From here, I boot the board as normal, nothing changed there.  Then I stop the matrix gui, kill the graphics , stop pvr-init and unload hdvicp and hdvpss.

    Then I go through the steps in 4.1 of the OMTB release notes, namely:

    prcm_config_app s

    insmod syslink.ko

    ./firmware_loader 1 dm816x_hdvicp.xem3 start

    ./firmware_loader 2 dm816x_hdvpss.xem3 start

    insmod vpss.ko mode=hdmi:1080p-60,hdcomp:1080p-60 i2c_mode=1

    insmod ti81xxhdmi.ko

    and finally:

    ./omtb_dm816xbm_a8host.xv5T decode_scale_display.oms and it plays the video absolutely fine.

    Not sure what I'm doing differently to you guys, but thought I'd share this, in that I think it does work.

    Now all I want is some pointers as to what the different steps in the oms scripts actually do so I can write my own!

    Cheers,

    Simon

     

    Hello Simon,

    Just to make sure I understand your post, it's now working OK after you built it fresh but it DID NOT work

    before then with the pre-built binaries. Is that correct? Or did you just rebuilt everything before you attempted

    it for the first time?

    Just want to know what the data-point actually is. :-)

    Thanks for the reply.

    Juan Solis

     

  • All,

    Went ahead and tried rebuilding the OMTB app based on the instructions on the OMTB release notes.

    Still get the error. I also tried removing/stopping and re-executing the steps as Simon and the release

    notes/Srinivasa mentioned but still no luck. Also tried using the syslink.ko from c6run-apps instead of

    the one from /lib/modules. Didn't work either.

    Keep in mind that this is a custom board so there may be some other gremlins that the community

    may not be seeing on their EVMs. I wasn't too surprised when we started seeing errors under 5.02 that

    we weren't seeing under 5.01. However, the C app version works fine and that's what has got us perplexed.

    I would have thought they would be doing their communication across the cores in the same way with

    the same pre-conditions being applied!?

    In any event, thank you all for your suggestions and being a sounding board.

     

    Juan

     

  • Srinivasa Reddy DeviReddy said:

    Hi Simon,

    Thanks for the update, good news that demo runs at your end.

    Please find the omtb user guide in "omtb_01_00_01_05/packages/ti/sdo/omtb/docs" folder, explains about omtb application.

    Following are the build steps used to build omtb which are relatively simple.

    1) DM816x_C6A816x_AM389x_EZ_Software_Developers_Guide.pdf

      "make omtb" from the toplevel directory

    2) Set all the paths as arguments in the make command as mentioned in omtb release notes or omtb user guide, this will avoid modification of env.mk file

     

    To all those that provided input on this, THANKS!

    We finally found our issue and it seems to be power related. We now have both flavors (script and app)

    working. I put up a post to the community here:

        http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/133557.aspx

    to hopefully spare other people the pained/perplexed headscratching we've gone through.

     

    Juan Solis.