Hi,
I'm setting up a data acquisition system based on the SBC equipped with AT91SAM9260 (namely:
http://www.propox.com/products/t_231.html?lang=en ).
The data from ADC are preprocessed by a simple CPLD device, which finally send the aggregated data stream by USART interface in synchronous mode at 6Mb/s rate.
Unfortunately at full load I can see, that some data words are lost.
I sent a question to copmp.arch.embedded list:
http://groups.google.com/group/comp.arc ... 0dbdb5e529and I was told, that the problem is known, and the best solution is to use DMA buffer located in the internal SRAM.
My question is, are there any patches providing standard mechanisms to allocate
such buffers, while resolving conflict between different drivers?
I can allocate my buffer by simple:
request_mem_region(AT91SAM9260_SRAM0_BASE, TX_DMA_SIZE,"usart")
or use a little more sophisticated scheme as in
ftp://www.at91.com/pub/linux/2.6.27-at9 ... p.patch.gz , but if I'm satisfied with smaller buffer (e.g. as standard 512 bytes), I'd like to be able to use different parts of the SRAM blocks for different purposes.
Is there any "allocator" patch suitable for such purposes?
--
TIA, WZab
UPDATE:
I have found the patch:
http://lists.infradead.org/pipermail/li ... 48279.htmlWhich makes use of "generic allocator":
http://lxr.linux.no/linux+v3.0.4/includ ... genalloc.hMaybe this is the right way to go...