On Mon, 28 May 2007, Lorenz Kolb wrote: > > On Sat, 26 May 2007, Joachim F?rster wrote: > > > > > > > > First question: To implement mmap on such kind of device IO memory, > > > I have to use snd_pcm_lib_mmap_iomem() as mmap() callback - like it > > > is used in the rme32 driver, right? > > > > Yes. rme32 is quite similar. > > > > > Second question: Do the following parameters make sense regarding > > > the size of the HW ring buffer and period sizes: > > > > > > .buffer_bytes_max=16*1024; > > > .period_bytes_max=8*1024; > > > .period_bytes_min=?? resonable value ?? > > > > 32 or 64 > > > > > .periods_min=2; > > > .periods_max=?? resonable value ?? > > > > 16 > > > > > Furthermore, the sound controller will fire an interrupt after one > > > period is played. Are there any arguments against these values? Any > > > comments? > > > > Yes, I think that the access through a PCI I/O window to a PCI device > > is much slower than PCI DMA transfers with bursts. I would really > > consider to design hardware with real DMA. Of course, if it's only > > experimental stuff, then don't worry. > Hi Jaroslav, > > First of all: thanks for Your answer. > Second: We do not have a PCI Bus. It is an embedded system with an OCP-Bus > (aka OPB). > > The ML403 holds a SoC with PPC and FPGA. > > So the only difference between DMA with bursts and a dedicated memory (as > far as we do see it) is the amount of time the bus gets occupied. > With dedicated memory the system will (hopefully ;-)) do a burst write each > period. So what happens in DMA case (except the more complex hardware as the > DMA controller has to be written (in VHDL) as well and even more memory is > located at an more complex bus (PLB - processor local bus): the bus will be > occupied twice: (1) CPU writes data to memory. --> start DMA --> (2) > Controller fetches data from memory. > While (2) is in progress the poor CPU is "disconnected" from the bus. > In an embedded system with a not too powerful CPU (PPC 405 @300MHz) this > might be quite inefficient. > Or did we miss something? Probably not :-) I was speaking about standard PCI architecture in PC. Your design is quite different. Anyway, I wonder for what purpose you need such embedded platform with Linux? Perhaps, I'm too curious ;-) Jaroslav ----- Jaroslav Kysela <perex@xxxxxxx> Linux Kernel Sound Maintainer ALSA Project, SUSE Labs _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel