Hi, I'm working with Linux kernel on x86 and needed a way to allocate a very large contiguous memory (around 20GB) for DMA operations. I've found out that CMA is one of the major ways to do so, but our problem is that CMA's default behavior is to create one default area from which all devices can allocate memory. As I saw, the only way to reserve a dedicated area is by enabling OF_RESERVED_MEM which is available for several architectures but excluding x86 (and as far as I understand relies
on device tree which is not in use with x86 or at least cannot be configured with OF_RESERVED_MEM). I really want to leverage this mechanism/API and thought about modifying the code (and hopefully merge it upstream) so multiple non-default areas will be available for x86 and with
a way to consume it by mapping specific area to specific device. Is it something that will be open for merging if written properly? I'll be glad to get some inputs and suggestions from you. Thanks in advance, Or Idgar |