DMA-based SPI on SHARC ADSP-21489

If you have resorted to Google after having uselessly pored over AD’s reference manuals, hoping to find at least a proper hint about how to approach this, if not a bit of code, it’s OK, you can stop now. It’s right here. Your quest is complete.

In the hope that no poor soul will have to bang his head against the desk trying to piece together the countless pieces of this puzzle, I did a quick write-up to show you how to do SPI communication with DMA on ADSP-21489. This should probably work (with obvious adaptation) on any DSP in the same family, and it should be easy to adapt if your DSP is the SPI slave, not the master, as below.

Continue reading DMA-based SPI on SHARC ADSP-21489

Design for Debuggability

There is a part of writing a Linux BSP that I dread profoundly, and it’s among the most trivial ones. Specifically, I’m talking about that part where you’ve written a new device driver, or modified something in an old one, or you just need to configure it. You’ve added the right incantation in the device tree, you boot, and nothing happens. The module isn’t probed, or your changes are silently ignored.

Continue reading Design for Debuggability