1*c66ec88fSEmmanuel VadotQualcomm Shared Memory Manager binding 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThis binding describes the Qualcomm Shared Memory Manager, used to share data 4*c66ec88fSEmmanuel Vadotbetween various subsystems and OSes in Qualcomm platforms. 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel Vadot- compatible: 7*c66ec88fSEmmanuel Vadot Usage: required 8*c66ec88fSEmmanuel Vadot Value type: <stringlist> 9*c66ec88fSEmmanuel Vadot Definition: must be: 10*c66ec88fSEmmanuel Vadot "qcom,smem" 11*c66ec88fSEmmanuel Vadot 12*c66ec88fSEmmanuel Vadot- memory-region: 13*c66ec88fSEmmanuel Vadot Usage: required 14*c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 15*c66ec88fSEmmanuel Vadot Definition: handle to memory reservation for main SMEM memory region. 16*c66ec88fSEmmanuel Vadot 17*c66ec88fSEmmanuel Vadot- qcom,rpm-msg-ram: 18*c66ec88fSEmmanuel Vadot Usage: required 19*c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 20*c66ec88fSEmmanuel Vadot Definition: handle to RPM message memory resource 21*c66ec88fSEmmanuel Vadot 22*c66ec88fSEmmanuel Vadot- hwlocks: 23*c66ec88fSEmmanuel Vadot Usage: required 24*c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 25*c66ec88fSEmmanuel Vadot Definition: reference to a hwspinlock used to protect allocations from 26*c66ec88fSEmmanuel Vadot the shared memory 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel Vadot= EXAMPLE 29*c66ec88fSEmmanuel VadotThe following example shows the SMEM setup for MSM8974, with a main SMEM region 30*c66ec88fSEmmanuel Vadotat 0xfa00000 and the RPM message ram at 0xfc428000: 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot reserved-memory { 33*c66ec88fSEmmanuel Vadot #address-cells = <1>; 34*c66ec88fSEmmanuel Vadot #size-cells = <1>; 35*c66ec88fSEmmanuel Vadot ranges; 36*c66ec88fSEmmanuel Vadot 37*c66ec88fSEmmanuel Vadot smem_region: smem@fa00000 { 38*c66ec88fSEmmanuel Vadot reg = <0xfa00000 0x200000>; 39*c66ec88fSEmmanuel Vadot no-map; 40*c66ec88fSEmmanuel Vadot }; 41*c66ec88fSEmmanuel Vadot }; 42*c66ec88fSEmmanuel Vadot 43*c66ec88fSEmmanuel Vadot smem@fa00000 { 44*c66ec88fSEmmanuel Vadot compatible = "qcom,smem"; 45*c66ec88fSEmmanuel Vadot 46*c66ec88fSEmmanuel Vadot memory-region = <&smem_region>; 47*c66ec88fSEmmanuel Vadot qcom,rpm-msg-ram = <&rpm_msg_ram>; 48*c66ec88fSEmmanuel Vadot 49*c66ec88fSEmmanuel Vadot hwlocks = <&tcsr_mutex 3>; 50*c66ec88fSEmmanuel Vadot }; 51*c66ec88fSEmmanuel Vadot 52*c66ec88fSEmmanuel Vadot soc { 53*c66ec88fSEmmanuel Vadot rpm_msg_ram: memory@fc428000 { 54*c66ec88fSEmmanuel Vadot compatible = "qcom,rpm-msg-ram"; 55*c66ec88fSEmmanuel Vadot reg = <0xfc428000 0x4000>; 56*c66ec88fSEmmanuel Vadot }; 57*c66ec88fSEmmanuel Vadot }; 58