On 06/27/2012 06:44 AM, Hiroshi Doyu wrote: ...
I think that there are 2 cases:
(1) discontiguous memory with IOMMU (2) contiguous memory without IOMMU(called "carveout" in general?)
...
For (2), although memory is mostly anonymous one, we may need to know how much to allocate, where we only need "size". This size is not from h/w feature, but it depends on the system load/usage. So I think that this size can be passed from kernel command line? For exmaple, we can specify how much contiguous memory is necessary with putting "coherent_pool=??M" in the kernel command line as below:
coherent_pool=nn[KMG] [ARM,KNL] Sets the size of memory pool for coherent, atomic dma allocations.
I guess if that's the standard way of initializing CMA, then that's fine.
It'd be nice if there was a way to specify that from the DT too; that way the user/distro/bootloader constructing the kernel command-line wouldn't have to remember to add "random" (potentially Tegra-/board-specific) extra arguments onto the command-line; the Tegra command-line in the upstream kernel is quite clean right now, especially compare to the enormous number of options we require downstream:-(