msm_ion.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. ION Memory Manager (ION)
  2. ION is a memory manager that allows for sharing of buffers between different
  3. processes and between user space and kernel space. ION manages different
  4. memory spaces by separating the memory spaces into "heaps". Depending on the
  5. type of heap ION must reserve memory using the msm specific memory reservation
  6. bindings (see Documentation/devicetree/bindings/arm/msm/memory-reserve.txt).
  7. Required properties for Ion
  8. - compatible: "qcom,msm-ion"
  9. All child nodes of a qcom,msm-ion node are interpreted as Ion heap
  10. configurations.
  11. Required properties for Ion heaps
  12. - reg: The ID of the ION heap.
  13. - qcom,ion-heap-type: The heap type to use for this heap. Should be one of
  14. the following:
  15. - "SYSTEM"
  16. - "SYSTEM_CONTIG"
  17. - "CARVEOUT"
  18. - "CHUNK"
  19. - "CP"
  20. - "DMA"
  21. - "SECURE_DMA"
  22. - "REMOVED"
  23. Optional properties for Ion heaps
  24. - compatible: "qcom,msm-ion-reserve" This is required if memory is to be reserved
  25. as specified by qcom,memory-reservation-size below.
  26. - qcom,heap-align: Alignment of start of the memory in the heap.
  27. - qcom,heap-adjacent: ID of heap this heap needs to be adjacent to.
  28. - qcom,memory-reservation-size: size of reserved memory for the ION heap.
  29. - qcom,memory-reservation-type: type of memory to be reserved
  30. (see memory-reserve.txt for information about memory reservations)
  31. - qcom,default-prefetch-size: Based value to be used for prefetching
  32. optimizations. Ignored if the heap does not support prefetching.
  33. Example:
  34. qcom,ion {
  35. compatible = "qcom,msm-ion";
  36. #address-cells = <1>;
  37. #size-cells = <0>;
  38. qcom,ion-heap@25 {
  39. reg = <25>;
  40. qcom,ion-heap-type = "SYSTEM";
  41. };
  42. qcom,ion-heap@8 { /* CP_MM HEAP */
  43. compatible = "qcom,msm-ion-reserve";
  44. reg = <8>;
  45. qcom,heap-align = <0x1000>;
  46. linux,contiguous-region = <&secure_mem>;
  47. qcom,ion-heap-type = "SECURE_DMA";
  48. };
  49. qcom,ion-heap@29 { /* FIRMWARE HEAP */
  50. compatible = "qcom,msm-ion-reserve";
  51. reg = <29>;
  52. qcom,heap-align = <0x20000>;
  53. qcom,heap-adjacent = <8>;
  54. qcom,memory-reservation-type = "EBI1"; /* reserve EBI memory */
  55. qcom,memory-reservation-size = <0xA00000>;
  56. qcom,ion-heap-type = "CARVEOUT";
  57. };
  58. };