Subject: Re: [Fwd: [alsa-devel] embedded sound architecture question]

From: Sylvain Munaut <[email-masked]>
Date: Tue, 15 May 2007 09:09:40 +0200

Hi,

>> If I were you, I would chose one of sound cards which have ALSA
>> drivers implemented (the list can be found on ALSA site) and
>> mimicked their behavior in your VHDL.
>>     
>
> Actually a bunch of theses drivers rely on PCI or ISA.
> The few left do all require DMA, what is only an option, if it is some sort
> of faked DMA, so the CPU writes directly into the controller's memory as we
> intend to stay as independent as possible from Xilinx' IP Cores.
> The question was: is that a good (and practicable) idea?
>   

If you can spare the BRAM, that sounds good to me.

I'm not an alsa expert but I'm working on a driver right now. And alsa
provide you a hook so you can allocate your memory buffer your self.
So as long as your control maps it's memory somewhere in the
cpu address space you should be fine.

What you need is :
 - Be able to ask the hardware where is is "read pointer".
 - Be able to ask the hardware to generate an interrupt every 'n' samples.

And that should do it.

You also need to make the controller build the AC97 frames itself
(e.g. for the control slots, a separate set of registers), and also
preferrably
supporting multiple sample format so the CPU needs to do a minimum of
conversion.

        Sylvain