Version 5 (modified by ravishi, 4 years ago)

--

Guide to Installing DSPLink on a BeagleBoard

Introduction

OpenEmbedded includes a bitbake recipe to install ti-codec-engine. However, multiple files are needed for this bitbake recipe to complete. This guide will instruct how to get the ti-codec-engine to build successfully for use on the BeagleBoard. The guide expects you to have already built an OpenEmbedded image according to  elinux and installed the root file system and uImage onto a formatted SD card.

To start, make sure that you have set the directory environment variable for OpenEmbedded. Replace "oe" to whatever your OpenEmbedded root directory is called.

$ export OE_HOME=$HOME/oe

Downloading and Installing Files

You will need to download and install three binary files: C6x Compiler, DSP/BIOS Link, and XDCtools. Registration at the TI website is needed for all three files and the user license must be accepted.

The latest versions of the three files might work just fine but I have not tested them. The versions I used to get it working, as suggested by various forums, were:

TI frequently updates their site so searching for these files may be required. A newer version of BIOS 5.33.02 should be tested since this version has a Critical 283xx (28x floating point) bug.

Once all three are downloaded, change permissions of each .bin file to make it an executable like such:

$ cd ~/Desktop
$ chmod +x bios_setuplinux_5_33_02.bin

Run the binary file to open a graphical installer

$ ./bios_setuplinux_5_33_02.bin

Do this for all three binaries.

Install the files to a folder TI under your root directory. The installation of each binary file should be located as such:

  • BIOS 5.33.02 -> $HOME/TI/bios_5_33_02
  • XDCtools 3.10.03 -> $HOME/TI/xdctools_3_10_03
  • C6x Compiler -> $HOME/TI/cg6x_6_0_16

Download the codec engine tarball, codec_engine_2_21.tar.gz at  https://www-a.ti.com/downloads/sds_support/targetcontent/CE/index.html. Version 2.21 is required by the bitbake recipe. There is no need to untar this file. Copy the file to your tmp/downloads folder and create a md5 checksum.

$ cd ~/Desktop
$ cp codec_engine_2_21.tar.gz $OE_HOME/tmp/downloads
$ md5sum $OE_HOME/tmp/downloads/codec_engine_2_21.tar.gz > $OE_HOME/tmp/downloads/codec_engine_2_21.tar.gz.md5

Changing Configuration Settings

Open ti-paths.inc which is also located under the dsplink recipe directory.

$ gedit $OE_HOME/beagleboard/beagleboard/conf/local.conf

Add the following lines of code to the bottom of the file. Version numbers and directory locations should be adjusted accordingly if using. In the line TITOOLSDIR = "/home/user/TI", change "user" to whatever your username is.

# Path to the dir where the TI tools are unpacked
TITOOLSDIR = "/home/user/TI"
# Path under TITOOLSDIR where dspbios is unpacked
TIBIOSDIR = "bios_5_33_02"
TIXDCTOOLSDIR = "${TITOOLSDIR}/xdctools_3_10_03"
# Path under TITOOLSDIR where the dsp toolchain is unpacked
TICGTOOLSDIR = "cg6x_6_0_16"

Bitbake and Install

Now enter openembedded shell, update, and bitbake ti-codec-engine

$ source $OE_HOME/beagleboard/beagleboard/profile.sh
$ cd $OE_HOME
$ git checkout origin/stable/2009 -b stable/2009
$ git pull
$ bitbake ti-codec-engine

Bitbake should complete successfully. Once completed, the following packages are added to $OE_HOME/tmp/deploy/glibc/ipk/beagleboard directory:

  • ti-cmem-module_221-r19.1_beagleboard.ipk
  • ti-lpm-module_221-r19.1_beagleboard.ipk
  • ti-sdma-module_221-r19.1_beagleboard.ipk
  • ti-codec-engine-apps_221-r19.1_beagleboard.ipk
  • ti-codec-engine-dbg_221-r19.1_beagleboard.ipk
  • ti-codec-engine-dev_221-r19.1_beagleboard.ipk
  • ti-dsplink-apps_221-r19.1_beagleboard.ipk
  • ti-dsplink-module_221-r19.1_beagleboard.ipk

Copy these files to the the rfs of the BeagleBoard and use opkg to install them. There may be a correct order of installing the files to avoid the warnings of "ti-codec-engine-xxx: unsatisfied recommendation for xxx". Install all 8 packages.

# opkg install ti-cmem-module_221-r19.1_beagleboard.ipk

BeagleBoard Configuration

Memory settings need to be adjusted on the BeagleBoard. Reset the board and stop the board from autobooting by pressing any key. Insert the following commands and save the environment. This will set the kernel memory to 80MB which leaves 48MB for DSPLink, CMEM, and DDRALGHEAP. Reset the board once finished.

OMAP3 beagleboard.org # setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootwait rootdelay=2 mem=80M video=omapfb:vram:2M,vram:4M'
OMAP3 beagleboard.org # saveenv
OMAP3 beagleboard.org # reset

Sample Applications

Once installed, there are some sample applications provided that can be used to test the installation. They are located in /usr/share/ti-dsplink. Additionally, you will need to install the DSPLink kernel module every time you reboot the BeagleBoard.

root@beagleboard:~# cd /usr/share/ti-dsplink
root@beagleboard:/usr/share/ti-dsplink# ./loadmodules-ti-dsplink-apps.sh
You have 60916kB total memory for Linux                                         
[  663.001068] DSPLINK Module (1.60) created on Date: Jun 15 2009 Time: 17:38:41
root@beagleboard:/usr/share/ti-dsplink#  messagegpp message.out xxx
========== Sample Application : MESSAGE ==========                              
Entered MESSAGE_Create ()                                                       
Leaving MESSAGE_Create ()                                                       
Entered MESSAGE_Execute ()                                                      
Transferred 100 messages                                                        
Transferred 200 messages                                                        
Transferred 300 messages                                                        
Transferred 400 messages                                                        
Transferred 500 messages                                                        
Transferred 600 messages                                                        
Transferred 700 messages                                                        
Transferred 800 messages                                                        
Transferred 900 messages                                                        
Transferred 1000 messages                                                       
Leaving MESSAGE_Execute ()                                                      
Entered MESSAGE_Delete ()                                                       
Leaving MESSAGE_Delete ()                                                       
====================================================  



For more information, see:
 http://elinux.org/BeagleBoard/DSP_Howto
 https://gstreamer.ti.com/gf/project/gstreamer_ti/wiki/?pagename=BuildingWithAngstrom
 http://groups.google.com/group/beagleboard/browse_thread/thread/3d2560c087941100
 http://www.pixhawk.ethz.ch/wiki/tutorials/omap/dsplink

Attachments