ALSA supports using internal RAM (iRAM) for DMA buffer allocation: http://mailman.alsa-project.org/pipermail/alsa-devel/2013-October/067628.html.
As i.MX28 uses the SoC generic DMA engine, this module tries to preallocate buffer from the iRAM: http://lxr.free-electrons.com/source/sound/soc/soc-generic-dmaengine-pcm.c#L294. However, this allocation fails, because it is has not been defined by default in the i.MX28 device tree.
I wonder, if it might have some benefits to use the OCRAM for ALSA DMA buffer allocation instead of SDRAM? At least, the OCRAM runs at 200 MHz (connected to the AHB bus). SDRAM can, depending on the DDR chip, run at 133 MHz or 200 MHz, right?
I attached two patches to enable iRAM support for ALSA DMA buffer allocation.
Any feedback is welcome!
Original Attachment has been moved to: 0001-ARM-dts-imx28-Add-OCRAM-support.patch.zip
Original Attachment has been moved to: 0002-ARM-dts-imx28-Use-iRAM-for-DMA-buffer-allocation.patch.zip