Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Qualcomm Shared Memory Manager binding

This binding describes the Qualcomm Shared Memory Manager, used to share data
between various subsystems and OSes in Qualcomm platforms.

- compatible:
	Usage: required
	Value type: <stringlist>
	Definition: must be:
		    "qcom,smem"

- memory-region:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: handle to memory reservation for main SMEM memory region.

- qcom,rpm-msg-ram:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: handle to RPM message memory resource

- hwlocks:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to a hwspinlock used to protect allocations from
		    the shared memory

= EXAMPLE
The following example shows the SMEM setup for MSM8974, with a main SMEM region
at 0xfa00000 and the RPM message ram at 0xfc428000:

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		smem_region: smem@fa00000 {
			reg = <0xfa00000 0x200000>;
			no-map;
		};
	};

	smem@fa00000 {
		compatible = "qcom,smem";

		memory-region = <&smem_region>;
		qcom,rpm-msg-ram = <&rpm_msg_ram>;

		hwlocks = <&tcsr_mutex 3>;
	};

	soc {
		rpm_msg_ram: memory@fc428000 {
			compatible = "qcom,rpm-msg-ram";
			reg = <0xfc428000 0x4000>;
		};
	};