BeagleBoard/DSP Howto

This article explains how to use the DSP in OMAP3 at BeagleBoard with TI's deliverables. For DSP tool chain see C64x+ DSP.

= Setup =

Kernel driver
In order to use the DSP you would need TI's bridgedriver module on the kernel. For that you would need Hiroshi's patches on top of linux-omap:

Then  and add the following options in the menuconfig: CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=14 CONFIG_MPU_BRIDGE=m

TI binaries
In order to get the DSP binaries for multimedia processing you need to download TI's OpenMAX IL package. Once you have extracted the tarball you'll have to run the installer TI-OMX-Sample-Firmware-0.3-Linux-x86-Install and accept the license agreement.

You would end up with a bunch of binaries in, copy them to your root filesystem at the same location (/lib/dsp).

OpenMAX IL
The easiest way to use the DSP capabilities is through the OpenMAX IL API, but in order to compile TI's implementation a special DSP library is required.

libdspbridge
git clone git://github.com/felipec/libdspbridge.git cd libdspbridge make DESTDIR=rootfs install

libomxil-ti
git clone git://github.com/felipec/libomxil-ti.git cd libomxil-ti make BRIDGE_CFLAGS=-I../libdspbridge/inc BRIDGE_LIBS=-L../libdspbridge/lib DESTDIR=rootfs install

gst-openmax
You would need to compile gst-openmax inside scratchbox:

git clone git://github.com/felipec/gst-openmax.git cd gst-openmax ./autogen.sh --noconfigure ./configure --prefix=/usr make DESTDIR=rootfs install

= Running =

On the board use this to load the module:

modprobe bridgedriver base_img=/lib/dsp/baseimage.dof

You should be able to use the gst-openmax elements now:

gst-launch-0.10 filesrc location="foobar.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink