58 lines
2.1 KiB
Plaintext
58 lines
2.1 KiB
Plaintext
ION Memory Manager (ION)
|
|
|
|
ION is a memory manager that allows for sharing of buffers between different
|
|
processes and between user space and kernel space. ION manages different
|
|
memory spaces by separating the memory spaces into "heaps". Depending on the
|
|
type of heap ION must reserve memory using the msm specific memory reservation
|
|
bindings (see Documentation/devicetree/bindings/arm/msm/memory-reserve.txt).
|
|
|
|
Required properties for Ion
|
|
|
|
- compatible: "qcom,msm-ion"
|
|
|
|
|
|
All child nodes of a qcom,msm-ion node are interpreted as Ion heap
|
|
configurations.
|
|
|
|
Required properties for Ion heaps
|
|
|
|
- reg: The ID of the ION heap.
|
|
|
|
Optional properties for Ion heaps
|
|
|
|
- compatible: "qcom,msm-ion-reserve" This is required if memory is to be reserved
|
|
as specified by qcom,memory-reservation-size below.
|
|
- qcom,heap-align: Alignment of start of the memory in the heap.
|
|
- qcom,heap-adjacent: ID of heap this heap needs to be adjacent to.
|
|
- qcom,memory-reservation-size: size of reserved memory for the ION heap.
|
|
- qcom,memory-reservation-type: type of memory to be reserved
|
|
(see memory-reserve.txt for information about memory reservations)
|
|
|
|
Example:
|
|
qcom,ion {
|
|
compatible = "qcom,msm-ion";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
qcom,ion-heap@30 { /* SYSTEM HEAP */
|
|
reg = <30>;
|
|
};
|
|
|
|
qcom,ion-heap@8 { /* CP_MM HEAP */
|
|
compatible = "qcom,msm-ion-reserve";
|
|
reg = <8>;
|
|
qcom,heap-align = <0x1000>;
|
|
qcom,memory-reservation-type = "EBI1"; /* reserve EBI memory */
|
|
qcom,memory-reservation-size = <0x7800000>;
|
|
};
|
|
|
|
qcom,ion-heap@29 { /* FIRMWARE HEAP */
|
|
compatible = "qcom,msm-ion-reserve";
|
|
reg = <29>;
|
|
qcom,heap-align = <0x20000>;
|
|
qcom,heap-adjacent = <8>;
|
|
qcom,memory-reservation-type = "EBI1"; /* reserve EBI memory */
|
|
qcom,memory-reservation-size = <0xA00000>;
|
|
|
|
};
|