1*4882a593SmuzhiyunTI Wakeup M3 Remoteproc Driver 2*4882a593Smuzhiyun============================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunThe TI AM33xx and AM43xx family of devices use a small Cortex M3 co-processor 5*4882a593Smuzhiyun(commonly referred to as Wakeup M3 or CM3) to help with various low power tasks 6*4882a593Smuzhiyunthat cannot be controlled from the MPU. This CM3 processor requires a firmware 7*4882a593Smuzhiyunbinary to accomplish this. The wkup_m3 remoteproc driver handles the loading of 8*4882a593Smuzhiyunthe firmware and booting of the CM3. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunWkup M3 Device Node: 11*4882a593Smuzhiyun==================== 12*4882a593SmuzhiyunA wkup_m3 device node is used to represent the Wakeup M3 processor instance 13*4882a593Smuzhiyunwithin the SoC. It is added as a child node of the parent interconnect bus 14*4882a593Smuzhiyun(l4_wkup) through which it is accessible to the MPU. 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunRequired properties: 17*4882a593Smuzhiyun-------------------- 18*4882a593Smuzhiyun- compatible: Should be one of, 19*4882a593Smuzhiyun "ti,am3352-wkup-m3" for AM33xx SoCs 20*4882a593Smuzhiyun "ti,am4372-wkup-m3" for AM43xx SoCs 21*4882a593Smuzhiyun- reg: Should contain the address ranges for the two internal 22*4882a593Smuzhiyun memory regions, UMEM and DMEM. The parent node should 23*4882a593Smuzhiyun provide an appropriate ranges property for properly 24*4882a593Smuzhiyun translating these into bus addresses. 25*4882a593Smuzhiyun- reg-names: Contains the corresponding names for the two memory 26*4882a593Smuzhiyun regions. These should be named "umem" & "dmem". 27*4882a593Smuzhiyun- ti,hwmods: Name of the hwmod associated with the wkupm3 device. 28*4882a593Smuzhiyun- ti,pm-firmware: Name of firmware file to be used for loading and 29*4882a593Smuzhiyun booting the wkup_m3 remote processor. 30*4882a593Smuzhiyun 31*4882a593SmuzhiyunExample: 32*4882a593Smuzhiyun-------- 33*4882a593Smuzhiyun/* AM33xx */ 34*4882a593Smuzhiyunocp { 35*4882a593Smuzhiyun l4_wkup: l4_wkup@44c00000 { 36*4882a593Smuzhiyun compatible = "am335-l4-wkup", "simple-bus"; 37*4882a593Smuzhiyun ranges = <0 0x44c00000 0x400000>; 38*4882a593Smuzhiyun #address-cells = <1>; 39*4882a593Smuzhiyun #size-cells = <1>; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun wkup_m3: wkup_m3@100000 { 42*4882a593Smuzhiyun compatible = "ti,am3352-wkup-m3"; 43*4882a593Smuzhiyun reg = <0x100000 0x4000>, 44*4882a593Smuzhiyun <0x180000 0x2000>; 45*4882a593Smuzhiyun reg-names = "umem", "dmem"; 46*4882a593Smuzhiyun ti,hwmods = "wkup_m3"; 47*4882a593Smuzhiyun ti,pm-firmware = "am335x-pm-firmware.elf"; 48*4882a593Smuzhiyun }; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun ... 52*4882a593Smuzhiyun}; 53