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.

Inquiries on various M3 Firmwares dm814x_hdvpss & ti814x_hdvpss

Other Parts Discussed in Thread: TVP7002

Hi all,

Currently, our team is working on a project that uses TI8148.

There are various M3 firmwares such as dm814x_hdvpss.xem3, dm814x_hdvpss_v4l2.xem3 and ti814x_hdvpss_1G.xem3.

For dm814x_hdvpss_xem3 & dm814x_hdvpss_v4l2.xem3 which are bundled in the EZSDK, and by default, dm814x_hdvpss.xem3 and dm814x_hdvicp.xem3 are loaded.

And based on TI81XX VPSS Video Driver & Video Capture Driver user guides, the M3 firmware ti814x_hdvpss_1G.xem3 should be used.

Please help to answer the following questions so that it clear under what situation which M3 firmware is to be loaded:

1) What is the differences between ti814x_hdvpss_1G.xem3 and dm814x_hdvpss.xem3?

2) If there are differences, under what scenarios or applications should either ti814x_hdvpss_1G.xem3 or dm814x_hdvpss.xem3 be used?

3) When loading ti814x_hdvpss_1G.xem3, dm814x_hdvicp.xem3 is not loaded. Any impact or lost of features supported?

3) Understood from document "DM814x AM387x EZ Software Developers Guide" page 24 section "How to change from OMX to V4L2 firmware for capture/display".

Its mentioned that if the V4L2 drivers are used, need to load "dm814x_hdvpss_v4l2.xem3".

My understanding is any access to "/dev/videoX (0...6)" is using the V4L2 driver like in sample application "saMmapDisplay" (this app need dm814x_hdvpss_v4l2.xem3 loaded). 

So for ti814x_hdvpss_1G.xem3, V4L2 drivers should be supported since saLoopBack can be executed with this M3 firmware.

Please clarify if my understanding is incorrect.

Thank you.

Regards

May

  • Hello,

    ti814x_hdvpss_1G.xem3 is part of PSP package. dm814x_hdvpss.xem3 is part of EZSDK package.
    EZSDK has different M3 firmware and utility to load M3 with PSP.
    ./slaveloader startup VPSS-M3 ti814x_hdvpss_1G.xem3 is the usage of PSP.
    EZSDK use the below command:
    ./firmware_loader 2 dm814x_hdvpss.xem3 start
    The HDVPSS binaries that present in the PSP package contain only the driver interfaces and not the full multimedia stack(ti814x_hdvpss_1G.xme3 is pure M3 firmware and it does not support OMX).
    The difference between dm814x_hdvpss.xem3 and dm814x_hdvpss_v4l2_xme3 is one control I2c from M3, the other does not.This is because  support two application stacks. One is OpenMax application and other is V4L2 based application. So for OpenMax I2c is getting controlled through M3 and V4L2 I2C is controlled through A8. Thats why there is two binaries.
    m814x_hdvpss.xem3:
        This is use for OpenMax application.  So user will use their application is OpenMax interface.
        This can NOT be used to use I2C from A8 during HDVPSS driver is working.
     dm814x_hdvpss_v4l2_xem3:
         This is use for V4L2 application.  So user will use their application is V4L2 interface.
         This can be used to use I2C from A8 during HDVPSS driver is working.
    If you want to use only V4L2 capture + V4L2 display + fbdev than ti814x_hdvpss_1G.xem3 is fine,  if you want to use encode/decode or any of OpenMax components you need to use dm814x_hdvpss_v4l2.xem3 for V4L2 capture.

    Refer to:
    http://processors.wiki.ti.com/index.php/TI81XX_PSP_VPSS_Video_Driver_User_Guide
    http://processors.wiki.ti.com/index.php/TI81XX_PSP_VIDEO_CAPTURE_Driver_User_Guide

    Best Regards,

    Margarita

  • Hi Margarita,

    Thank you for your detailed explanation.

    Regards

    May

  • Margarita said:
     if you want to use encode/decode or any of OpenMax components you need to use dm814x_hdvpss_v4l2.xem3 for V4L2 capture.

    in my project, I use OpenMax components, i.e. the capture demo. according to my understanding, the demo do not use V4L2. My question is : by what way does the demo use the TVP7002 decoder?  does the OMX lib have the implementation of TVP7002 driver?

  • Hello,

    qiuxicj MESSN said:
    in my project, I use OpenMax components, i.e. the capture demo. according to my understanding, the demo do not use V4L2. My question is : by what way does the demo use the TVP7002 decoder?  does the OMX lib have the implementation of TVP7002 driver?

    You could check here for examples:

    ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/omx_05_02_00_48

    OMX_05_02_00_48_UserGuide.pdf

    chapter:

    2.3 Control Components (CTRL) & Capture_encode example

    also,

    ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/omx_05_02_00_48/examples/ti/omx/demos/capture_encode/src


    Capture component which is running on HDVPSS part of media controller captures the 1080p60 input from TVP7002 decoder on Catalog EIO board. VPSS M3 controls the TVP decoder chip.


    Best Regards,

    Margarita

  • Margarita,  thank you so much for your answer

    Best Regards

    qiuxicj