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.

I want to integrate H.264 DM36x Ver 2.0 Codec to into dvsdk2.10.00.18?

Hi, Ti,

     I want to integrate H.264 DM36x Ver 2.0 Codec to into dvsdk2.10.00.18.  The framework_components_2_24_01 and  linuxutils_2_24_03 . I have seen H.264 DM36x Platinum Codec (ver 2.x) - Overview and features in WiKI of Ti.

   1)  When  I run the encode.out. There was a error:

CMEM Error: init: major version mismatch between interface and driver.
CMEM Error:     needs driver version 0x3000000, got 0x2300000

  2) When I use linuxutils_2_25_02_08, have errors:

  File /home/zhou/2approdvsdk/dvsdk_2_10_01_18/linuxutils_2_25_02_08/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc6000000 of size 0x14e000
CMEM Range Overlaps Kernel Physical - allowing overlap
CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x84c00000)
cmemk initialized
edmak: Unknown symbol EDMA_CHAN_SLOT
edmak: Unknown symbol edma_free_slot
edmak: Unknown symbol edma_alloc_channel
edmak: Unknown symbol EDMA_CTLR
edmak: Unknown symbol edma_alloc_cont_slots
edmak: Unknown symbol edma_free_channel
edmak: Unknown symbol edma_clean_channel
  

 How to deal with it? I want to H.264 DM36x Ver 2.0 Codec to into dvsdk2.10.00.18, Linux version 2.6.18.

 waiting for your replay!



 

 

  • Star,

    The EMDA symbols that are missing are for non-DM36x kernels.  By default, edmak.ko builds for non-DM36x kernels.  For DM36x kernels (LSP 2.10), a symbol needs to be defined.

    In your linuxutils_02_25_02_08 release, you will need to rebuild edmak.ko with -DLSP_210.  To do so, edit:
        linuxutils_02_25_02_08/packages/ti/sdo/linuxutils/edma/src/module/Makefile
    by changing the -ULSP_210 to -DLSP_210.

    However, there is currently a bug where the EDMA_CTLR() macro is used outside of #ifndef LSP_210.  In edmak.c, in the function release_channel(), the code at line 207 needs to change.  Change:
        if (EDMA_CTLR(chan) == 0) {
            INIT_LIST_HEAD(&channels[channel].users);
            channels[channel].nParam = 0;
            channels[channel].isParam = 0;
        }
    to:
    #ifdef LSP_210
        INIT_LIST_HEAD(&channels[channel].users);
        channels[channel].nParam = 0;
        channels[channel].isParam = 0;
    #else
        if (EDMA_CTLR(chan) == 0) {
            INIT_LIST_HEAD(&channels[channel].users);
            channels[channel].nParam = 0;
            channels[channel].isParam = 0;
        }
    #endif

    Regards,

    - Rob