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.

how to build hdvpss from source code

I am running ti-ezsdk_dm816x-evm_5_02_01_59 on DM8168 EVM, the prebuilt image of hdvpss (dm816x_hdvpss.xem3) works well in my board. but I want to re-build  hdvpss from source code (maybe need to make some changes later). I have gotten the source code from TI, the version is hdvpss_01_00_01_28, and make edited the Rules.make to meet my evn and make all.

I got the image from build/ti816x_hdvpss/bin/ti816x-evm/ti816x_hdvpss.xem3, renamed and replaced this image to target file system /usr/share/ti/ti-media-control-utils/dm816x_hdvpss.xem3. then reboot EVM but the system hangs as following log:

**********************************************

Loading HDVPSS Firmware
FIRMWARE: Memory map bin file not passed
Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [Location of Mem map bin file]
FIRMWARE: Default memory configuration is used
MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.1.1
***********************************************

I have tried to compare my built image to the pre-build image with readelf.

********************my build****************************

readelf -h build/ti816x_hdvpss/bin/ti816x-evm/ti816x_hdvpss.xem3
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x98679db1
  Start of program headers:          9007431 (bytes into file)
  Start of section headers:          9007783 (bytes into file)
  Flags:                             0x5000000, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         11
  Size of section headers:           40 (bytes)
  Number of section headers:         47
  Section header string table index: 46

 

***************prebuild*********************

readelf -h ~/targetfs/usr/share/ti/ti-media-controller-utils/dm816x_hdvpss.xem3
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x9f5ce599
  Start of program headers:          15719326 (bytes into file)
  Start of section headers:          15719870 (bytes into file)
  Flags:                             0x5000000, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         17
  Size of section headers:           40 (bytes)
  Number of section headers:         58
  Section header string table index: 57

*************************************************

the file size and entry point are different.

So, my question is how to build dm816x_hdvpss.xem3 from source code ?

thanks

 

  • Hi,

    HDVPSS source code is not packaged with ezsdk. So you wont be able to re-build db816x_hdvpss.xem3. What is the requirement for rebuilding .xem3.

     

    Regards,

    Hardik Shah

  • thanks for your reply.

    Yes, HDvpss source is not included in ezsdk, but I have gotten an additional package from TI and installed it successfully.

    I think the pre-built image *ONLY* can be run on EVM board, it can't fit all requirements for all customs' board. For example, if the video input decoder (TVP*) were changed to other devices (such as ADV7604...), The HDVPSS firmware will be needed to changed and the whole image need to be rebuilt . Another requirement is that we want to use HDVPSS as a hardware accelerator for mem2mem loop-back processor  (*NOT* for input/output, for example, several pictures in memory were send to HDVPSS for down-scaling and blend some GUI, and then the blended picture will be write back to memory ) .

    So, I think I need to rebuild the source code firstly, and then I need to coding for my requirements.

    thanks

     

  • Hi,

    <quote>For example, if the video input decoder (TVP*) were changed to other devices (such as ADV7604...), The HDVPSS firmware will be needed to changed and the whole image need to be rebuilt</quote>

    We are planning to support all the encoders/decoders programming through Linux A8 V4L2. In that you will not need HDVPSS binary to be recompiled. This is planned sometime in 4Q11.

    <quote>Another requirement is that we want to use HDVPSS as a hardware accelerator for mem2mem loop-back processor</quote>

    For this you can use OMX components directly to do mem2mem operation.

     

    Regarding how to compile.

    You can refer "Compiling HDVPSS Drivers"  section from the HDVPSS userGuide. It is available at $(HDVPSS_01_00_01_28)\docs\HDVPSS_UserGuide.pdf

     

    Regards,

    Hardik Shah

     

  • Hardik

    So, as you mentioned, we can NOT use current version hdvpss image for our product at present, since the ADV7604 can't be supported by current HDVPSS.

    I have followed HDVPSS_UserGuide.pdf to build hdvpss, the build progress works well. But the built image can NOT be run on the EVM board (system hangs as described in the original question).

    thanks

  • Hi,

    If you have source code for HDVPSS, you can add support for ADV7604 in HDVPSS source and you can use it.

     

    Is image hanging after your changes or even if you build without changes it hangs.  It should not hang if you are building without any changes. Can you please send me the steps you are following to load .xem3 and other drivers.

     

    Regards,

    Hardik Shah

  • I agree that we can support by adding source code into vpss firmware. So, my first step is to build the vpss source code without any change.

    I just build and replaced build/ti816x_hdvpss/bin/ti816x-evm/ti816x_hdvpss.xem3 to target file system /usr/share/ti/ti-media-control-utils/dm816x_hdvpss.xem3.

    The init script "etc/rc5.d/S15load-hdvpss-firmware.sh" will load the firmware in next boot.

    I have debug the system. it hangs in syslink driver (shaking-hand with M3), so it seems M3 fail to startup with my image, but can startup with prebuild image:

    *******************************************************

    Int32
    Platform_startCallback (UInt16 procId, Ptr arg)
    {
        Int32 status = Platform_S_SUCCESS;
        Platform_ModuleConfig slaveModuleConfig;

        GT_2trace (curTrace, GT_ENTER, "Platform_startCallback", procId, arg);

        do {
            status = Ipc_attach (procId);                
        } while (status < 0);

        /* Get shared region max numEntries from Slave */
        do {
            status = Ipc_readConfig (procId,
                                     SLAVE_CONFIG_TAG,
                                     (Ptr) &slaveModuleConfig,
                                     sizeof (Platform_ModuleConfig));
        } while (status == Ipc_E_FAIL);

    ......................

    ***************************************************

     

     

  • please note that the file size is much difference between the two image.

  • Jeffrey,

            I am not sure if you have right source code for the EZSDK. Just the HDVPSS driver source code is not sufficient. The firmware in EZSDK also integrates OMX.

    So you need to get the integrated source package.

    Best Regards

    Velan

  • I listed what I have as blow:

    1) all source code of ti-ezsdk_dm816x-evm_5_02_01_59

    2) source code of hdvpss_01_00_01_28

    What package do you think I missed? I really want to know the build env when TI build the prebuild image.

    thanks

  • Velan

    I noticed that there is no OMX included in my Rule.make

      CODEGEN_PATH_M3 := $(workspace)/media-controller-devkit/cgt470_4_9_0
      hdvpss_PATH := $(workspace)/component-sources/$(hdvpss_RELPATH)
      bios_PATH := $(workspace)/component-sources/bios_6_32_01_38
      xdc_PATH := $(workspace)/component-sources/xdctools_3_22_01_21
      ipc_PATH := $(workspace)/component-sources/ipc_1_23_03_31

    So, there is NO OMX linked in my image, my build is just a proxy server example. Could you tell me which package include the OMX component for HDVPSS?

  • velan

    it seems that "ti-ezsdk_dm816x-evm_5_02_01_59/component-sources/omx-ti816x-src_05_02_00_15" is the OMX package for hdvpss, does it?

  • velan

    it seems that "ti-ezsdk_dm816x-evm_5_02_01_59/component-sources/omx-ti816x-src_05_02_00_15" is the OMX package for hdvpss, is it?

  • I have built it successfully!!

    thanks Velan !

  • I have built it successfully!!

    **********************

    cd ti-ezsdk_dm816x-evm_5_02_01_59/component-sources/omx-ti816x-src_05_02_00_15/packages

    make vc3dm3

    *********************

    thanks Velan !

  • Now, we use SDK that is 'ti-ezsdk_dm816x-evm_5_02_01_59'.  I think that it is same.

    We have source code that is HDVPSS-01.00.01.28

    Our environment don't exist  'omx-ti816x-src_05_02_00_15'.  but 'omx_05_02_00_15' exist.

    'omx_05_02_00_15' are the same as 'omx-ti816x-src_05_02_00_15'? If different, we want to get  'omx-ti816x-src_05_02_00_15'. 

    Regard,

    Akira Koike

  • I too have that query - from where can we get  'omx-ti816x-src_xx_xx_xx_xx' ?

    and it is not same as omx_xx_xx_xx_xx, because it is not containing the source files for the OMX  plugins for codecs (vdec, venc etc).