Ion Memory Manager Ion is a memory manager that allows for sharing of buffers via dma-buf. Ion allows for different types of allocation via an abstraction called a 'heap'. A heap represents a specific type of memory. Each heap has a different type. There can be multiple instances of the same heap type. Specific heap instances are tied to heap IDs. Heap IDs are not to be specified in the devicetree. Required properties for Ion - compatible: "linux,ion" PLUS a compatible property for the device All child nodes of a linux,ion node are interpreted as heaps required properties for heaps - compatible: compatible string for a heap type PLUS a compatible property for the specific instance of the heap. Current heap types -- linux,ion-heap-system -- linux,ion-heap-system-contig -- linux,ion-heap-carveout -- linux,ion-heap-chunk -- linux,ion-heap-dma -- linux,ion-heap-custom Optional properties - memory-region: A phandle to a memory region. Required for DMA heap type (see reserved-memory.txt for details on the reservation) Example: ion { compatbile = "hisilicon,ion", "linux,ion"; ion-system-heap { compatbile = "hisilicon,system-heap", "linux,ion-heap-system" }; ion-camera-region { compatible = "hisilicon,camera-heap", "linux,ion-heap-dma" memory-region = <&camera_region>; }; ion-fb-region { compatbile = "hisilicon,fb-heap", "linux,ion-heap-dma" memory-region = <&fb_region>; }; }