52 lines
1.4 KiB
Plaintext
52 lines
1.4 KiB
Plaintext
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>;
|
|
};
|
|
}
|