Akinobu Mita 5ea3b1b2f8 cma: add placement specifier for "cma=" kernel parameter
Currently, "cma=" kernel parameter is used to specify the size of CMA,
but we can't specify where it is located.  We want to locate CMA below
4GB for devices only supporting 32-bit addressing on 64-bit systems
without iommu.

This enables to specify the placement of CMA by extending "cma=" kernel
parameter.

Examples:
 1. locate 64MB CMA below 4GB by "cma=64M@0-4G"
 2. locate 64MB CMA exact at 512MB by "cma=64M@512M"

Note that the DMA contiguous memory allocator on x86 assumes that
page_address() works for the pages to allocate.  So this change requires
to limit end address of contiguous memory area upto max_pfn_mapped to
prevent from locating it on highmem area by the argument of
dma_contiguous_reserve().

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Don Dutile <ddutile@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-06-04 16:53:57 -07:00
..
2014-06-02 16:35:49 -07:00
2014-06-04 10:02:38 -07:00
2014-06-04 10:02:38 -07:00
2014-06-02 16:35:49 -07:00
2014-06-04 09:08:25 -07:00
2014-06-03 11:09:43 -07:00
2014-06-03 08:34:00 -07:00
2014-06-02 16:15:12 -07:00
2014-06-04 16:53:57 -07:00
2014-06-04 10:02:38 -07:00
2014-05-27 17:38:11 -07:00
2014-06-04 09:08:25 -07:00
2014-06-02 09:22:24 -07:00
2014-06-04 10:02:38 -07:00
2014-05-12 00:27:26 -04:00
2014-06-03 11:44:48 -07:00
2014-06-02 16:35:49 -07:00
2014-06-03 15:03:27 +02:00
2014-05-26 21:27:09 +02:00
2014-06-04 10:02:38 -07:00
2014-05-27 14:11:06 -07:00
2014-06-04 09:07:08 -07:00