This series adds remoteproc support on MCU R5F in Split mode. During boot, ROM can bring up the boot R5F cores in either lockstep or split mode based on X509 certificate flags. If booted in lockstep mode, the MCU R5F cores will run first the R5 SPL, and then once A72 comes up, will run the Device Manager (DM) firmware. But if booted in split mode, core 0 will run DM firmware and second core sits in WFI. Shut it down so that other firmwares can later be loaded on them.
The shutdown of MCU R5 Core 1 is invoked at A72 SPL init, as by that time Device Manager (DM) is up and running on R5 Core 0. The shutdown of MCU R5 Core 1 is handled by Device Manager itself. The devicetree patch [PATCH 6/6] need not be merged here, as it will be sent to the Linux Upstream list. Testing done: 1. Build test on all existing TI K3 platforms. 2. Tested U-Boot and Linux load of MCU R5F core in split mode on all applicable boards (AM68-SK, AM69-SK, J7200-EVM, J721E-EVM, J721S2-EVM, J784S4-evm, J742S2-EVM) Test logs: https://gist.github.com/3V3RYONE/ee8e3cb9aa5f4c5c00b059b9c14bfa98 Thanks, Beleswar Beleswar Padhi (6): arm: mach-k3: {am6/j7}*_hardware.h: Expose MCU R5 proc and device ids arch: mach-k3: common: Add support to shutdown MCU R5 Core 1 remoteproc: k3-r5: Acquire processor control before reset ops board: ti: j7*: Add firmware for MCU R5 core1 arm: dts: k3-j7*-binman: Enable split mode for MCU R5F DONOTMERGE: arm: dts: k3-j7*-mcu-wakeup: Enable split mode for MCU R5 arch/arm/dts/k3-j7200-binman.dtsi | 3 + arch/arm/dts/k3-j721e-binman.dtsi | 4 ++ arch/arm/dts/k3-j721s2-binman.dtsi | 3 + arch/arm/dts/k3-j784s4-binman.dtsi | 3 + arch/arm/mach-k3/common.c | 55 +++++++++++++++++++ arch/arm/mach-k3/common.h | 1 + arch/arm/mach-k3/include/mach/am62_hardware.h | 4 +- .../arm/mach-k3/include/mach/am62a_hardware.h | 4 +- .../arm/mach-k3/include/mach/am62p_hardware.h | 4 +- arch/arm/mach-k3/include/mach/am64_hardware.h | 9 +-- arch/arm/mach-k3/include/mach/am6_hardware.h | 9 +-- .../arm/mach-k3/include/mach/j721e_hardware.h | 9 +-- .../mach-k3/include/mach/j721s2_hardware.h | 9 +-- .../arm/mach-k3/include/mach/j722s_hardware.h | 4 +- .../mach-k3/include/mach/j784s4_hardware.h | 9 +-- arch/arm/mach-k3/j721e/j721e_init.c | 9 ++- arch/arm/mach-k3/j721s2/j721s2_init.c | 7 +++ arch/arm/mach-k3/j784s4/j784s4_init.c | 7 +++ board/ti/j7200/j7200.env | 2 +- board/ti/j721e/j721e.env | 2 +- board/ti/j721s2/j721s2.env | 2 +- board/ti/j784s4/j784s4.env | 4 +- drivers/remoteproc/ti_k3_r5f_rproc.c | 6 ++ .../src/arm64/ti/k3-j7200-mcu-wakeup.dtsi | 2 +- .../src/arm64/ti/k3-j721e-mcu-wakeup.dtsi | 2 +- .../src/arm64/ti/k3-j721s2-mcu-wakeup.dtsi | 2 +- .../k3-j784s4-j742s2-mcu-wakeup-common.dtsi | 2 +- 27 files changed, 139 insertions(+), 38 deletions(-) -- 2.34.1