[PATCH v6 3/4 UPDATED] drivers: of: add initialization code for dma reserved memory
Stephen Warren
swarren at wwwdotorg.org
Fri Aug 23 15:27:11 EDT 2013
On 08/23/2013 02:39 AM, wrote:
> From: Marek Szyprowski <m.szyprowski at samsung.com>
>
> This patch adds device tree support for contiguous and reserved memory
> regions defined in device tree.
>
> Large memory blocks can be reliably reserved only during early boot.
> This must happen before the whole memory management subsystem is
> initialized, because we need to ensure that the given contiguous blocks
> are not yet allocated by kernel. Also it must happen before kernel
> mappings for the whole low memory are created, to ensure that there will
> be no mappings (for reserved blocks) or mapping with special properties
> can be created (for CMA blocks). This all happens before device tree
> structures are unflattened, so we need to get reserved memory layout
> directly from fdt.
>
> Later, those reserved memory regions are assigned to devices on each
> device structure initialization.
I think the binding looks OK now; just a couple minor comments below.
> diff --git a/Documentation/devicetree/bindings/memory.txt b/Documentation/devicetree/bindings/memory.txt
> +*** Reserved memory regions ***
> +compatible: one or more of:
> + - "linux,contiguous-memory-region" - enables binding of this
> + region to Contiguous Memory Allocator (special region for
> + contiguous memory allocations, shared with movable system
> + memory, Linux kernel-specific).
> + - "reserved-memory-region" - compatibility is defined, given
> + region is assigned for exclusive usage for by the respective
> + devices.
I'm slightly hesitant to agree with "linux" in the name here, since it
seems like the concept of a memory region where DMA buffers/... should
be allocated is pretty OS-independant. Similar for:
> +linux,default-contiguous-region: property indicating that the region
> + is the default region for all contiguous memory
> + allocations, Linux specific (optional)
But, I guess there's nothing stopping any other OS from parsing this
same property, so I suppose it's OK. What do other DT maintainers think?
> +*** Example ***
> + reserved-memory {
...
> + contig_region at 0 {
...
> + display_mem: region at 78000000 {
...
> + multimedia_mem: region at 77000000 {
Nit: I think all 3 of those nodes should be called region, but it's
probably fine as-is.
So, the binding,
Acked-by: Stephen Warren <swarren at nvidia.com>
More information about the linux-arm-kernel
mailing list