how to use dsp on beagleboard xm?

2,677 views
Skip to first unread message

Andresj

unread,
Jan 27, 2011, 3:59:12 PM1/27/11
to Beagle Board
Hi I'm noob in this topic, I need to know how you can use the DSP on
the bragleboard xm rev B, I use on the beagleboard the Amgstrom OS.
Actually I read the DVSDK but I can't boot the linux OS that TI
provide.

Thanks for all

Jake

unread,
Jan 27, 2011, 9:22:21 PM1/27/11
to beagl...@googlegroups.com
I started to look into this myself, but I haven't tried much yet.  Here is what I have been looking at:

Mark A. Yoder

unread,
Jan 28, 2011, 9:41:18 AM1/28/11
to Beagle Board
C6Run seems to be the way to go. I did a workshop using c6run earlier
this month. Here [1] are the notes I used on how to set it up. Once
installed, look in the 'examples' folder to see several examples of
how to use it.

--Mark

[1] http://elinux.org/ECE597_Installing_DSP_Development_Tools_c6run

On Jan 27, 7:22 pm, Jake <jacob.kunow...@gmail.com> wrote:
> I started to look into this myself, but I haven't tried much yet.  Here is
> what I have been looking at:
>
> http://processors.wiki.ti.com/index.php/Getting_Started_With_C6Run_On...http://processors.wiki.ti.com/index.php/C6Run

Andresj

unread,
Feb 14, 2011, 10:50:18 PM2/14/11
to Beagle Board
Thanks Max And Mark

I cant make the file to load the loadmodules.sh I tried to run the
example of http://elinux.org/ECE597_Installing_DSP_Development_Tools_c6run
But present the problem of a unknow folder.

in hope for an answer.

Andresj

unread,
Feb 14, 2011, 11:43:04 PM2/14/11
to Beagle Board
this is the error:

[ 235.113067] CMEMK module: built on Dec 29 2010 at 12:41:38
[ 235.118591] Reference Linux version 2.6.32
[ 235.123840] File /home/daniel/toolchains/linuxutils_2_25_05_11/
packages/ti/sdo/linuxutils/cmem/src/moc
[ 235.138519] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 235.145507] CMEM phys_start (0x86300000) overlaps kernel
(0x80000000 -> 0xa0000000)
[ 235.153778] CMEMK Error: Failed to request_mem_region(0x86300000,
30408704)
insmod: error inserting './cmemk.ko': -1 Bad address
[ 235.192352] DSPLINK Module (1.65.00.03) created on Date: Dec 29
2010 Time: 12:41:34

Thanks for all.

Andres J

Mark A. Yoder

unread,
Feb 15, 2011, 10:52:32 AM2/15/11
to Beagle Board
At boot time you need to tell the kernel what RAM it can use. There
is a parameter you need to pass to the kernel. Unfortunately my
Beagle isn't handy right now so I can't look up what it is.

--Mark

Andresj

unread,
Feb 15, 2011, 2:49:44 PM2/15/11
to Beagle Board
:(, that is a bad notice

Cole Christensen

unread,
Feb 15, 2011, 3:28:40 PM2/15/11
to beagl...@googlegroups.com
I have a Beagleboard xM Rev B, and this is the slightly modified version of a script which I believe sets up the DSP

You seem to be having problems with cmemk, as was I yesterday. I don't claim any sort of understanding of what I'm doing, however I changed phys_start and phys_end below and it worked! They're obviously addresses of physical memory, and it gives an error if you give addresses that are in use or don't exist.

There's probably a way to see what addresses are available and whatnot, but I find blindly guessing works too :)

You _can_ set it up so when booting the kernel only uses the first X MB of memory and the rest is left to the dsp (you still have to give addresses here) but that isn't necessary! allowOverlap does (i think) allocate the memory in the kernel using malloc so that the dsp can do it's stuff without being disturbed

I have 512 MB of memory so I tried to allocate something towards the end.  With 256 you might try 0x200000000 to 0x210000000, but I really have no idea. Try some values! but keep the difference in between them in check.  When I tried any differences larger than 0x10000000 I got complaints.


#!/bin/sh
# this is /usr/share/ti/gst/omap3530/loadmodules.sh
# CMEM Allocation
#    1x5250000            Circular buffer
#    6x829440,1x691200    Video buffers (max D1 PAL)
#    1x345600             Underlying software components (codecs, etc.)
#    1x1                  Dummy buffer used during final flush

rmmod cmemk 2>/dev/null

modprobe cmemk allowOverlap=1 phys_start=0x470000000 phys_end=0x480000000 \
        pools=1x5250000,6x829440,1x345600,1x691200,1x1

# insert DSP/BIOS Link driver
modprobe dsplinkk

# insert Local Power Manager driver
modprobe lpm_omap3530

# insert SDMA driver
modprobe sdmak

--
You received this message because you are subscribed to the Google Groups "Beagle Board" group.
To post to this group, send email to beagl...@googlegroups.com.
To unsubscribe from this group, send email to beagleboard...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/beagleboard?hl=en.


Eric

unread,
Feb 15, 2011, 4:07:59 PM2/15/11
to Beagle Board
Add something like 'mem=100M' to the command line to limit the RAM
available to Linux to 100M. Then cmemk.ko can load, using the memory
at and above 0x86300000.

Mark A. Yoder

unread,
Feb 15, 2011, 9:02:38 PM2/15/11
to Beagle Board
I forget I had this on some ppt I did for a workshop.

If you run this on the beagle you will see what the kernel was called
with:
cat /proc/cmdline

Here is what I have:
console=ttyS2,115200n8
mem=80M@0x80000000 mem=384M@0x88000000
mpurate=1000 buddy=none camera=lbcm3m1
vram=16M omapfb.vram=0:8M,1:4M,2:4M
omapfb.mode=dvi:hd720 omapdss.def_disp=dvi
root=/dev/mmcblk0p2 rw rootfstype=ext3
rootwait

The mem= line allocated 2 chunks of memory for linux on the ARM. The
whole in the middle is used to pass data to the DSP.

I hope this helps.

--Mark

Andresj

unread,
Feb 15, 2011, 11:42:22 PM2/15/11
to Beagle Board
mmmm I don't understand where I put that .sh

And the problem is than I cant create the the kernel modules, and the
module loading scripts to the target file system. I follow the example
of http://elinux.org/ECE597_Installing_DSP_Development_Tools_c6run and
the error I put before appear. Now I tried with this example
http://processors.wiki.ti.com/index.php/Getting_Started_With_C6Run_On_Beagleboard

but when I run the command

bitbake base-image console-image

Appear this error:

ERROR: no recipe files to build, check your BBPATH and BBFILES? NOTE:
Psyco JIT Compiler (http://psyco.sf.net) not available. Install it to
increase performance. ERROR: no recipe files to build, check your
BBPATH and BBFILES? FATAL: Openembedded's config sanity checker
detected a potential misconfiguration. Either fix the cause of this
error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:

Please set TARGET_ARCH directly, or choose a MACHINE or DISTRO that
does so.

Please I newbe in this sorry if I don't understand what you said :(

ZubairLK

unread,
Feb 26, 2011, 2:24:26 AM2/26/11
to Beagle Board
Is there a way to avoid C6run?

I can't seem to find a way to use dsp/bios link for the XM.

DM3730 isn't mentioned anywhere?
In fact. I cant even find a DSP/Bios link release that says that the
DM3730 is supported.

Koen Kooi

unread,
Feb 26, 2011, 3:34:13 AM2/26/11
to beagl...@googlegroups.com

Just think of the DM3730 as a die-shrink of the OMAP3530, that is what it boils down to.

ZubairLK

unread,
Feb 26, 2011, 1:17:54 PM2/26/11
to Beagle Board
Why didn't anyone say so earlier!?

Thank-you.

Ok.

Based on your die-shrink statement and the following:
"DM37x processors are software compatible with the OMAP35x generation
of processors and pin-to-pin compatible with Sitara™ AM37x devices
allowing for an easy product migration strategy to higher performing
options. The differentiation between the DM3730 and DM3725 is that the
DM3725 does not have a 3D graphics accelerator. Customers moving to
the DM3730 from the OMAP3530 can look forward to a 50 percent increase
in ARM performance, a 40 percent increase in DSP performance, double
the graphics performance and uses approximately 40 percent less
power." news release on ti for DM3730.

A few clarifications please. Simple Answers are Yes most probably.
But I'd like someone else to confirm as well.

Can I use every single piece of code (DSP/BIOS link, DSPlib, SYS/Bios,
etc) with the label OMAP3530 with DM3730?

To my knowledge, the one huge thing one should look out for is
environment variable changes in uboot.
Everything goes into boot.scr. No saveenv.

Anything that comes to your mind that I should look out for?
Like memory mapping changes. Device I/O Anything?
Especially related to GPIO, SPI driver, Angstrom/QT4-Embedded and the
methods to establish a DSP-ARM link(DSP/BIOS link, C6run, etc)
Cause I'll be using these in the project I'm working on.

To my knowledge, kernel is the code/thing that talks to the hardware.
Can i use the SYS/BIOS kernel for OMAP3530 for DM3730?
Are these two processors THAT compatible!?

Koen Kooi

unread,
Feb 26, 2011, 1:42:57 PM2/26/11
to beagl...@googlegroups.com, Beagle Board

Op 26 feb. 2011 om 19:17 heeft ZubairLK <zubair.l...@gmail.com> het volgende geschreven:

> Why didn't anyone say so earlier!?
>
> Thank-you.
>
> Ok.
>
> Based on your die-shrink statement and the following:
> "DM37x processors are software compatible with the OMAP35x generation
> of processors and pin-to-pin compatible with Sitara™ AM37x devices
> allowing for an easy product migration strategy to higher performing
> options. The differentiation between the DM3730 and DM3725 is that the
> DM3725 does not have a 3D graphics accelerator. Customers moving to
> the DM3730 from the OMAP3530 can look forward to a 50 percent increase
> in ARM performance, a 40 percent increase in DSP performance, double
> the graphics performance and uses approximately 40 percent less
> power." news release on ti for DM3730.
>
> A few clarifications please. Simple Answers are Yes most probably.
> But I'd like someone else to confirm as well.
>
> Can I use every single piece of code (DSP/BIOS link, DSPlib, SYS/Bios,
> etc) with the label OMAP3530 with DM3730?
>

yes

> To my knowledge, the one huge thing one should look out for is
> environment variable changes in uboot.
> Everything goes into boot.scr. No saveenv.
>

that isn't dependant on the omap, but the memory put on top

> Anything that comes to your mind that I should look out for?
> Like memory mapping changes. Device I/O Anything?

no, it's the same

> Especially related to GPIO, SPI driver, Angstrom/QT4-Embedded and the
> methods to establish a DSP-ARM link(DSP/BIOS link, C6run, etc)
> Cause I'll be using these in the project I'm working on.

Same again, no real changes


>
> To my knowledge, kernel is the code/thing that talks to the hardware.
> Can i use the SYS/BIOS kernel for OMAP3530 for DM3730?
> Are these two processors THAT compatible!?
>

Yes, thinking 3730 as a die shrink is the easiest way. The differences are:

updated a8 core
updated sgx core
updated dss block
updated musb block
'fast' dss pins moved

all of it, except the pins are just bugfixes for the silicon, no real changes.

From a sw point of view it's the same thing, just running faster. That's why you can share a single angstrom uSD card between a c4 and xm beagle

> On Feb 26, 1:34 pm, Koen Kooi <k...@beagleboard.org> wrote:
>> Op 26 feb 2011, om 08:24 heeft ZubairLK het volgende geschreven:
>>
>>> Is there a way to avoid C6run?
>>
>>> I can't seem to find a way to use dsp/bios link for the XM.
>>
>>> DM3730 isn't mentioned anywhere?
>>> In fact. I cant even find a DSP/Bios link release that says that the
>>> DM3730 is supported.
>>
>> Just think of the DM3730 as a die-shrink of the OMAP3530, that is what it boils down to.
>

ZubairLK

unread,
Feb 27, 2011, 12:38:50 PM2/27/11
to Beagle Board
Amazing!

There is tons of documentation for the original beagle and omap that I
was ignoring!

Thank-you very much.

mip...@gmail.com

unread,
Apr 3, 2014, 4:24:03 AM4/3/14
to beagl...@googlegroups.com
Can I use the Pins directly with the DSP ? Is there some tips for that? 
Reply all
Reply to author
Forward
0 new messages