| 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>; |
| }; |
| } |