Thursday 7 February 2008

DSP

Since that wicked N810 arrived, I've had to neglect the other devices a bit. The reason is mainly that the OMAP2420 CPU has an integrated TMS320C55x DSP. And thanks to the DSP Gateway it is possible to actually run our own code on it (see the DSPProgramming wiki page). Before, I could only dream about playing with those inaccessible DSPs on the OMAP850 and Calypso chipsets.

So I set out to learn C55x assembly and at the same time figure out how to play sound directly from the DSP. I somehow got the idea that this could be done by disassembling the pcm2 dsptask module (that is the backend for the dsppcm GStreamer sink, which unfortunately can't be built because the latest version of the DSP header files is nowhere to be found).
I think I have understood the bigger part of the pcm2 code by now, although trying to grasp indirect adressing using ARn registers gives me headaches. The stream setup and the command interface to the ARM processor is already recreated, but the most important part is still missing: the actual data transfer of PCM data from ARM to DSP via mmap and from DSP to EAC via SIO issue/reclaim.
Once that is done, I hope to make use of the knowledge gained by helping the DSP OGG Vorbis decoder project.

In the meanwhile, bricks keep falling into place in kernel land, so I have to do some catching up and submitting patches for at least Magician soon.

1 comment:

Anonymous said...

Hi pH5.
My name Viliam_Volos_v
Im from Russia.
i work with OpenMoko on Htc Magician.
plz contact me : hokoi@rambler.ru.
I want to ask several qustions about OpenMoko.

With regards.
p.s. sorry for my poor Eng.