Estoy usando Ubuntu 16.04 y me gustaría usar dma_alloc_coherent para asignar un búfer DMA (sin caché) de más de 4 MB. Cuando intento hacer esto, la llamada devuelve NULL. Probé los indicadores del kernel CONFIG_DMA_CMA, etc. para habilitar la asignación a través del asignador de memoria contigua. Veo que la memoria CMA está reservada y veo que cma_allocator asigna la memoria, pero todavía no puedo superar los 4 MB a pesar de que la memoria se ha reservado para mi controlador a través del asignador CMA.
Respuesta1
CONFIG_DMA_CMA es un indicador de compilación del kernel. A menos que sepa que su kernel se ha compilado con esto. De lo contrario, necesitará un kernel personalizado. Parece que la versión principal de RHEL y Ubuntu no habilita esta opción.