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.

dm365 cmemk question

Dear all.

    My hardware is dm365-evm, sw is dvsdk4.00.

    Resize work on the ss mode and run the demo capture_prev_rsz_ss_raw_yuv in psp/linux-driver-examples-psp03.01.00.37/media_ti/imp-prev-rsz/dm365:

root@dm365-evm:/home/dvsdk# ./capture_prev_rsz_ss_raw_yuv
calling cmem utiCMEMK Error: ioctl(): bad command type 0x0 (should be 0xfe)
lities for allocating frame buffers
CMEM Error: init: major version mismatch between interface and driver.
CMEM Error:     needs driver version 0x2300000, got 0x3000000
CMEM Error: CMEM_exit() already called, check stderr output for earlier CMEM failure messages (possibly versi
on mismatch).
Failed to allocate cmem pool
Unable to Allocate user buffers

  I do rebuild the kernel and cmemk, and apps in the dmais works well. Why still have the version mismatch error?

  Thank you!

   Wei Jiang

 

  • Are you sure that you are rebuilding cmem?  When you do a make install it copies the cmem driver over to the install directory giving it a new date/time, but it could still be the old original driver.  I had the same problem.

    John A

  • You need to at least re-link your application with the CMEM user library from the CMEM tree for which you built your new cmemk.ko.  Your application was built with a CMEM user library that has the 0x2300000 version, and this CMEM user lib needs a cmemk.ko with the same version, but you have built a later one.

    This leads me to believe that you might also have trouble with Codec Engine, since CE libraries are compiled with ioctl() command IDs from cmem.h, and if you're using a CE that was compiled against the 0x2300000 CMEM then the 0x3000000 cmemk.ko won't understand those ioctl() command IDs.  When upgrading one subcomponent (i.e., CMEM) you are often required to upgrade the overlying component (i.e., Codec Engine).

    What version of Codec Engine (CE) and Linux Utils are you using?

    Regards,

    - Rob

  • Dear Robert:

         I see that my CE version is 2_26_01_09, Linux Utils version is 2_25_05_11. But I got them all from dvsdk4.00,link below:

       http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html

      I thought that the cmem.a470uC in the psp_examples is build in version 0x2300000 but the cmemk of Linux Utils has the 0x3000000, but I don't know how to build the cmem.a470uC files. Can you show me some clue?

       Thanks.

        Wei Jiang

  • The cmem.a470uC library can be rebuilt by going to your linuxutils_02_25_05_11/packages/ti/sdo/linuxutils/cmem directory and issuing the 'make' command.  This will produce 4 libraries in the 'lib' subdir, including cmem.a470uC (and will also build the cmemk.ko in cmem/src/module).  Then you can rebuild your app with that linuxutils installation in your build path somehow.

    Regards,

    - Rob

  • Dear Robert,

        Thanks for your reply.

        It's cmem.a470MV. I copied it from linuxutils and rename to cmem.a470UC, then it can work.

        Wei Jiang