how to acquire large DMA buffes in 64bit kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Title: how to acquire large DMA buffes in 64bit kernel

Hello fellow developers,
 I am researching possibilities to acquire large DMA contiguous memory for our new device. Plan is to develop Linux driver for our new product with MicroTCA Kontron board with Intel i7 and 4GB ram (there is slim possibility to get 8GB system). In the same system (crate) user could plug in up to 10 custom devices (that is our new product with fpga chip and pcie interface), each board requires 4 32MB buffers in kernel module. So on end of day I would like to have from 128 to 1280MB of memory, depends of number of devices plugged into system. I know that it is possible to use scatter gather for DMA, but there is shortage of descriptors in our fpga chip...
I have come to some problems/questions and I can't find answer to, I did use google and read ton of documentation, books, forums, etc... with no luck...

 - Does Contiguous Memory Allocator support x86_64 platform? And if, how to configure kernel ( because there is conflict between SWIOTLB and HAVE_DMA_CONTIGOUS).
 - Is there any working bigphysarea patch for Linux kernel 3.2.x (or newer) for x86_64 platform (I know that there is for x86_32, but wit 32 bit kernel I could get only 512MB of contiguous memory).

I must confess I am total noob in device driver development, so what am I missing? Is there any other way to acquire large buffers in Linux kernel module? Am I just way too greedy with contiguous memory?

Best regards,

Uros


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]