Difference between revisions of "BeagleBoard/DSP Clarification"

From eLinux.org
Jump to: navigation, search
(dsp-gateway: fix)
(Add syslink)
 
(31 intermediate revisions by 8 users not shown)
Line 1: Line 1:
This article tries to explain all the different Linux DSP systems for OMAP chips, how they are similar and different.
+
[[Category: Linux]]
 +
[[Category: OMAP]]
 +
This article tries to explain all the different Linux DSP systems for OMAP3 chips (e.g. used on [[BeagleBoard]]), how they are similar and different.
  
 
== dsp-gateway ==
 
== dsp-gateway ==
  
DSP Gateway was developed by Nokia for the Maemo Internet Tablets. It's the oldest and more open of the implementations. The open code consists not only of the linux kernel side, but also the DSP operating system. Unfortunately the development is essentially halted.
+
[http://dspgateway.sourceforge.net/pub/index.php?Page=FAQ DSP Gateway] was developed by Nokia for the Maemo Internet Tablets. It's the first open implementation and currently the more open. The open code consists not only of the Linux kernel side, but also the DSP operating system. Unfortunately the development is essentially halted.
  
[http://dspgateway.sourceforge.net/pub/index.php?Page=FAQ Link].
+
It works on OMAP1 and OMAP2, it's production ready, used on the Nokia N800 and N810, it follows Linux standards and it's close to upstream acceptance. There's code for OMAP3 but it hasn't been thoroughly tested.
 
+
It works on OMAP1 and OMAP2, it's production ready, used on the Nokia N800 and N810, it follows linux standards and it's close to upstream acceptance. There's code for OMAP3 but it hasn't been thoroughly tested.
+
  
 
It is maintained by Hiroshi DOYU.
 
It is maintained by Hiroshi DOYU.
  
There are a few user-space applications that use it. Essentially GStreamer Nokia DSP plugins and a few others developed by the Maemo community.
+
There are a few user space applications that use it. Essentially GStreamer Nokia DSP plug-ins and a few others developed by the Maemo community.
 +
 
 +
However, it's mostly unmaintained.
  
 
== dsp-bridge ==
 
== dsp-bridge ==
  
tidspbridge originally developed by TI, but after being released as open source it has received many contributions, predominantly by Nokia.
+
[http://omappedia.org/wiki/DSPBridge_Project tidspbridge] originally developed by TI, after its release in open source it has received many more contributions, primarily from TI and Nokia.
  
It's probably not production ready (at least I don't know of any released product using it), and it still doesn't meet linux standards although there has been a lot of progress. Only the ARM side is available as open source, unlike the dsp-bridge, the DSP side is completely closed.
+
It still doesn't meet Linux standards although there has been a lot of progress. Only the ARM side is available as open source; unlike the dsp-gateway, the DSP side is completely closed.
  
Unfortunately there's a disagreement between TI and the community as how power management must be handled, so there are two forks: linux-omap, and omapzoom.
+
There has been a lot of work spent into cleaning up the code to live up to linux standards, and currently it's on the staging tree with a strong push to merge it on mainline.
  
It's under heavy development, originally maintained by Hiroshi DOYU, but now Ameya Palande took over.
+
It shares the mailbox code with dsp-gateway, and soon iommu too.
  
There is plans to share the mailbox and iommu that the dsp-gateway uses, but it's independent from it, as well as to move parts of it to user-space.
+
There are more user-space applications using it, including gst-dsp directly, gst-openmax and gst-goo through TI's OpenMAX IL implementation which is also open source.  [http://code.entropywave.com/leonora Leonora] is a project implementing the Theora codec on the DSP, and is a good example of non-trivial code running on the DSP and communicating with a process running on the ARM core.
  
There are slightly more user-space applications using it, including gst-openmax through TI's OpenMAX IL implementation which is also open source. and gst-goo.
+
For documentation and project overview, visit: [https://www.omapzoom.org/gf/project/omapbridge/docman/?subdir=3 TI DSP/Bridge project]
  
 
== dsp-link ==
 
== dsp-link ==
  
A slimmer version of the dsp-bridge targeted for the DaVinci platform also developed by TI. It supports a wider variety of chips, not only OMAP.
+
A slimmer version of the dsp-bridge, also developed by TI. It supports a wide variety of devices (e.g. DaVinci, OMAP2, OMAP3, and discreet GPP+DSP devices).
 +
 
 +
The kernel driver doesn't meet the Linux kernel coding conventions.  The sources haven't been submitted for review, and it is not currently planned to be merged into upstream kernels.
 +
 
 +
Some of the key differences with respect to dsp-bridge is the lack of advanced power management features (like DVFS and [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12032&contentId=4609 SmartReflex]), and lack of dynamic MMU support.
 +
 
 +
[http://tiexpressdsp.com/index.php/Codec_Engine_Overview Codec Engine] and [http://tiexpressdsp.com/index.php/DMAI DMAI] have been built upon it, and there are GStreamer plug-ins provided by TI to use the algorithms.
 +
 
 +
Unlike the other implementations, it has strong support from the Angstrom distribution precisely because of wider platform support.
 +
 
 +
See [http://wiki.davincidsp.com/index.php?title=Category:DSPLink DSPLink articles in Texas Instruments Embedded Processors Wiki], too.
 +
 
 +
== syslink ==
 +
 
 +
For OMAP4 a new consolidated bridge is being developed [http://omappedia.org/wiki/Syslink_Project syslink]. It's an evolution of previous IPC mechanisms, reusing elements such as iommu and mailbox, and incorporating ideas such as moving the module loading to user-space from dsp-gateway.
 +
 
 +
Unlike it's predecessors it's supposed to be upstreamed since the get-go, and in fact some patches are already integrated (in iommu and mailbox).
  
It is the one farther from meeting linux standards, the code hasn't even been submitted for reviewing nor is planned to to be merged at any time.
+
== Interesting threads ==
  
It's tightly tied to codecengine and dmai and there are GStreamer plug-ins provided by TI to use the algorithms.
+
* [http://linux.omap.com/pipermail/linux-omap-open-source/2007-May/009850.html bridge vs link]
 +
* [http://marc.info/?l=linux-omap&m=123626584228670&w=2 different power management]

Latest revision as of 11:37, 8 September 2010

This article tries to explain all the different Linux DSP systems for OMAP3 chips (e.g. used on BeagleBoard), how they are similar and different.

dsp-gateway

DSP Gateway was developed by Nokia for the Maemo Internet Tablets. It's the first open implementation and currently the more open. The open code consists not only of the Linux kernel side, but also the DSP operating system. Unfortunately the development is essentially halted.

It works on OMAP1 and OMAP2, it's production ready, used on the Nokia N800 and N810, it follows Linux standards and it's close to upstream acceptance. There's code for OMAP3 but it hasn't been thoroughly tested.

It is maintained by Hiroshi DOYU.

There are a few user space applications that use it. Essentially GStreamer Nokia DSP plug-ins and a few others developed by the Maemo community.

However, it's mostly unmaintained.

dsp-bridge

tidspbridge originally developed by TI, after its release in open source it has received many more contributions, primarily from TI and Nokia.

It still doesn't meet Linux standards although there has been a lot of progress. Only the ARM side is available as open source; unlike the dsp-gateway, the DSP side is completely closed.

There has been a lot of work spent into cleaning up the code to live up to linux standards, and currently it's on the staging tree with a strong push to merge it on mainline.

It shares the mailbox code with dsp-gateway, and soon iommu too.

There are more user-space applications using it, including gst-dsp directly, gst-openmax and gst-goo through TI's OpenMAX IL implementation which is also open source. Leonora is a project implementing the Theora codec on the DSP, and is a good example of non-trivial code running on the DSP and communicating with a process running on the ARM core.

For documentation and project overview, visit: TI DSP/Bridge project

dsp-link

A slimmer version of the dsp-bridge, also developed by TI. It supports a wide variety of devices (e.g. DaVinci, OMAP2, OMAP3, and discreet GPP+DSP devices).

The kernel driver doesn't meet the Linux kernel coding conventions. The sources haven't been submitted for review, and it is not currently planned to be merged into upstream kernels.

Some of the key differences with respect to dsp-bridge is the lack of advanced power management features (like DVFS and SmartReflex), and lack of dynamic MMU support.

Codec Engine and DMAI have been built upon it, and there are GStreamer plug-ins provided by TI to use the algorithms.

Unlike the other implementations, it has strong support from the Angstrom distribution precisely because of wider platform support.

See DSPLink articles in Texas Instruments Embedded Processors Wiki, too.

syslink

For OMAP4 a new consolidated bridge is being developed syslink. It's an evolution of previous IPC mechanisms, reusing elements such as iommu and mailbox, and incorporating ideas such as moving the module loading to user-space from dsp-gateway.

Unlike it's predecessors it's supposed to be upstreamed since the get-go, and in fact some patches are already integrated (in iommu and mailbox).

Interesting threads