Thursday, June 23, 2011

Building DCE firmware

Now, thanks to public release of codec libraries, and after some slacking on my part, all the bits and pieces needed to build your very own ducati (cortex-m3) firmware are available. I've put together a wiki page with instructions of where to find all the pieces, and how to build, for 2.6.38 kernel:

This is using syslink-2.0, tiler-2.0, and GA codecs/FC/etc.. but now at least, if you want to use a kernel with a different version of syslink, you can rebuild the firmware with appropriate corresponding bios-syslink on the coprocessor side.


  1. Hi,

    First of all, I would like to thank you for all your work : You help to open the big black block on the ducati side...

    I followed very carefully your tutorial.
    I have the following versions :
    Ducati side :
    -TMS470/ARM Code Generation Tools (CGT) - 4.6.1
    -XDC tools -
    -BIOS (the RTOS) -
    -Codec Engine (CE) -
    -Framework Component (FC) -
    -XDAIS -
    -HDVICP2 API and HDVICP2_CODECS - 1.00.000
    -bios-syslink - commit-id 48e98007e21e311c126f89ff51616bf6d7067b9d

    A9 side :
    - kernel 2.6.38 form you github account - drm branch commit id 731fe43cb2c0996c6593bdd92df5fe9816bc5deb
    config file : I tried both config.common.ubuntu and omap4_defconfig
    - syslink 2 from omapzoom commit id dcf86d4baef4ab86addf615c865a7217979d2f82
    - tiler/memmgr 2 from omapzoom commit id a6dda467f9689cb8c4e2c252f53524afd07c2392
    - libdce from you github account commit id b253492309bbeb65a82fea095e053d3774d6244c

    Unfortunately, syslink_daemon returns these errors :
    I noticed my dmsg looks like the one posted by another user here :

    I fear there is still a version issue between the different components (maybe a recent commit in syslink or memmgr broke the compatibility ?).

    I also tried to work with an old libdce (the one for kernel 2.6.35 L24.11).
    With this one syslink_daemon works fine but when I try to decode (dcetest and gst-ducati behave the same), I always get some extendedErrors=00000401...

    I you have any clue I would really be very grateful ...


  2. Hi,

    I answer myself :
    this syslink commit;a=commit;h=bbbedc6f626b016a78bf51bd95dc75714986cfc6 broke the compatibility with your kernel (at all existing kernels I fear) because RPROC_IOCSTART and RPROC_IOCSTOP are no longer the same in the kernel (arch/arm/plat-omap/include/plat/remoteproc.h) and for syslink (syslink/api/include/ProcMgrDrvDefs.h)...


  3. ahh, good catch. Did you just revert to the previous commit for userspace syslink?

    I guess the wiki page should be updated ;-)

  4. oh, actually, I think this could also be solved by adding this patch on linux kernel side:

    ok, probably snafu was my fault.. I think maybe originally that patch was on ti-omap4-drm and then got moved to ti-omap4-drm-syslink..

  5. Hi,
    The link for HDVICP2 is down.
    Any idea how to retrieve codec ?

  6. Yep good guestion. Where is it possible to find HDVICP2 ?



  7. Coming about 6 months late, but do you still have a copy of HDVICP2? We currently have a bunch of very hard working folk trying to port a working version of ICS on the Nook Tablet, based on the 3.x kernel, and we're stuck because of a timer conflict between ducati and the backlight. At this point, the only hope is to rebuild ducati with timer 10 as the watchdog, but to do that we need HDVICP2. Promise no sinister or evil repurposing, you can check their work out here.

  8. This comment has been removed by a blog administrator.