On Wed, Jun 27, 2012 at 12:02:46PM -0600, Stephen Warren wrote: > 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:-( Looking at Documentation/kernel-parameters.txt it seems the canonical way to initialize CMA is using the "cma" kernel command-line parameter. For device tree we could extend the "chosen" node to include something like "carveout = <0x04000000>;". Or "contiguous-memory" or whatever. Thierry
Attachment:
pgp0pPyITbnmc.pgp
Description: PGP signature