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

TI Wakeup M3 Remoteproc Driver
==============================

The TI AM33xx and AM43xx family of devices use a small Cortex M3 co-processor
(commonly referred to as Wakeup M3 or CM3) to help with various low power tasks
that cannot be controlled from the MPU. This CM3 processor requires a firmware
binary to accomplish this. The wkup_m3 remoteproc driver handles the loading of
the firmware and booting of the CM3.

Wkup M3 Device Node:
====================
A wkup_m3 device node is used to represent the Wakeup M3 processor instance
within the SoC. It is added as a child node of the parent interconnect bus
(l4_wkup) through which it is accessible to the MPU.

Required properties:
--------------------
- compatible:		Should be one of,
				"ti,am3352-wkup-m3" for AM33xx SoCs
				"ti,am4372-wkup-m3" for AM43xx SoCs
- reg:			Should contain the address ranges for the two internal
			memory regions, UMEM and DMEM. The parent node should
			provide an appropriate ranges property for properly
			translating these into bus addresses.
- reg-names:		Contains the corresponding names for the two memory
			regions. These should be named "umem" & "dmem".
- ti,hwmods:		Name of the hwmod associated with the wkupm3 device.
- ti,pm-firmware:	Name of firmware file to be used for loading and
			booting the wkup_m3 remote processor.

Example:
--------
/* AM33xx */
ocp {
	 l4_wkup: l4_wkup@44c00000 {
		compatible = "am335-l4-wkup", "simple-bus";
		ranges = <0 0x44c00000 0x400000>;
		#address-cells = <1>;
		#size-cells = <1>;

		wkup_m3: wkup_m3@100000 {
			compatible = "ti,am3352-wkup-m3";
			reg = <0x100000 0x4000>,
			      <0x180000 0x2000>;
			reg-names = "umem", "dmem";
			ti,hwmods = "wkup_m3";
			ti,pm-firmware = "am335x-pm-firmware.elf";
		};
	};

	...
};