Merge patch series "Introduce K3 remoteproc driver for M4 subsystem"
authorTom Rini <trini@konsulko.com>
Fri, 14 Feb 2025 19:17:47 +0000 (13:17 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 14 Feb 2025 19:39:10 +0000 (13:39 -0600)
Judith Mendez <jm@ti.com> says:

Some K3 devices like am62x and am64x have a M4 processor in the MCU
voltage domain. This patch series introduces remoteproc M4 driver which
will be used to load firmware into and start the M4 remote core.

This series also adds support for R5F cores on am64x SoCs in patch 2 and
sets up environment to load FW in remote cores in patch 3,4,5.

This patch series also enables remoteproc drivers by default as per what
remoteproc sybsystem is supported per SoC, thus all remoteproc options
are now deleted in configs/* since they are no longer required.

This patch series was tested on am64x EVM, am62x SK, am62ax SK,
am62px SK boards.

Any additional tested by's are welcome since I was not able to
test any additional boards.

Tested by running the following commands in u-boot prompt:

=> setenv dorprocboot 1
=> run boot_rprocs

Link: https://lore.kernel.org/r/20250210202944.1071931-1-jm@ti.com
34 files changed:
1  2 
arch/arm/mach-k3/Kconfig
cmd/Kconfig
common/spl/Kconfig
configs/am62ax_evm_a53_defconfig
configs/am62ax_evm_r5_defconfig
configs/am62px_evm_a53_defconfig
configs/am62px_evm_r5_defconfig
configs/am62x_beagleplay_a53_defconfig
configs/am62x_beagleplay_r5_defconfig
configs/am62x_evm_a53_defconfig
configs/am62x_evm_r5_defconfig
configs/am64x_evm_a53_defconfig
configs/am64x_evm_r5_defconfig
configs/am65x_evm_a53_defconfig
configs/am65x_evm_r5_defconfig
configs/am65x_evm_r5_usbdfu_defconfig
configs/am65x_evm_r5_usbmsc_defconfig
configs/iot2050_defconfig
configs/j7200_evm_a72_defconfig
configs/j7200_evm_r5_defconfig
configs/j721e_evm_a72_defconfig
configs/j721e_evm_r5_defconfig
configs/j721s2_evm_a72_defconfig
configs/j721s2_evm_r5_defconfig
configs/j722s_evm_a53_defconfig
configs/j722s_evm_r5_defconfig
configs/j784s4_evm_a72_defconfig
configs/j784s4_evm_r5_defconfig
configs/phycore_am62ax_a53_defconfig
configs/phycore_am62ax_r5_defconfig
configs/phycore_am62x_r5_defconfig
configs/phycore_am64x_r5_defconfig
configs/verdin-am62_a53_defconfig
configs/verdin-am62_r5_defconfig

@@@ -156,9 -156,30 +156,33 @@@ config K3_X509_SWR
        help
          SWRV for X509 certificate used for boot images
  
 +config NR_DRAM_BANKS
 +      default 2
 +
+ config K3_REMOTEPROC_R5F
+       bool "Enable K3 Remoteproc driver for R5F"
+       depends on ARM64
+       imply REMOTEPROC_TI_K3_R5F
+       default y if (SOC_K3_AM62A7 || SOC_K3_AM654 || SOC_K3_J721E || SOC_K3_J784S4 || SOC_K3_J721S2 || SOC_K3_J722S || SOC_K3_AM62P5 || SOC_K3_AM642)
+ config K3_REMOTEPROC_DSP
+       bool "Enable K3 Remoteproc driver for DSP"
+       depends on ARM64
+       imply REMOTEPROC_TI_K3_DSP
+       default y if (SOC_K3_AM62A7 || SOC_K3_J721E || SOC_K3_J784S4 || SOC_K3_J721S2 || SOC_K3_J722S)
+ config K3_REMOTEPROC_M4F
+       bool "Enable K3 Remoteproc driver for M4F"
+       depends on ARM64
+       imply REMOTEPROC_TI_K3_M4F
+       default y if (SOC_K3_AM625 || SOC_K3_AM642)
+ config K3_REMOTEPROC_PRU
+       bool "Enable K3 Remoteproc driver for PRU"
+       depends on ARM64
+       imply REMOTEPROC_TI_PRU
+       default y if (SOC_K3_AM642 || SOC_K3_AM654)
  if CPU_V7R
  source "arch/arm/mach-k3/r5/Kconfig"
  endif
diff --cc cmd/Kconfig
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -70,7 -71,7 +70,6 @@@ CONFIG_CMD_GPT=
  CONFIG_CMD_I2C=y
  CONFIG_CMD_MMC=y
  CONFIG_CMD_PCI=y
--CONFIG_CMD_REMOTEPROC=y
  CONFIG_CMD_USB=y
  CONFIG_CMD_WDT=y
  # CONFIG_CMD_SETEXPR is not set
@@@ -131,7 -132,7 +130,6 @@@ CONFIG_SPL_PINCTRL=
  CONFIG_PINCTRL_SINGLE=y
  CONFIG_POWER_DOMAIN=y
  CONFIG_TI_SCI_POWER_DOMAIN=y
--CONFIG_REMOTEPROC_TI_K3_R5F=y
  CONFIG_RESET_TI_SCI=y
  CONFIG_DM_SERIAL=y
  CONFIG_SOC_DEVICE=y
@@@ -67,8 -67,9 +67,7 @@@ CONFIG_SPL_YMODEM_SUPPORT=
  # CONFIG_CMD_FLASH is not set
  CONFIG_CMD_MTD=y
  CONFIG_CMD_PCI=y
- CONFIG_CMD_REMOTEPROC=y
  CONFIG_CMD_UFS=y
 -CONFIG_CMD_USB=y
  CONFIG_CMD_USB_MASS_STORAGE=y
  CONFIG_MTDIDS_DEFAULT="nor0=47040000.spi.0,nor0=47034000.hyperbus"
  CONFIG_MTDPARTS_DEFAULT="mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),128k(ospi.env),128k(ospi.env.backup),1m(ospi.sysfw),-@8m(ospi.rootfs);47034000.hyperbus:512k(hbmc.tiboot3),2m(hbmc.tispl),4m(hbmc.u-boot),256k(hbmc.env),1m(hbmc.sysfw),-@8m(hbmc.rootfs)"
Simple merge
Simple merge
Simple merge
@@@ -62,10 -62,11 +62,9 @@@ CONFIG_SPL_SPI_LOAD=
  CONFIG_SYS_SPI_U_BOOT_OFFS=0x280000
  CONFIG_SPL_THERMAL=y
  CONFIG_SPL_YMODEM_SUPPORT=y
 -CONFIG_CMD_DFU=y
  # CONFIG_CMD_FLASH is not set
  CONFIG_CMD_MTD=y
- CONFIG_CMD_REMOTEPROC=y
  CONFIG_CMD_UFS=y
 -CONFIG_CMD_USB=y
  CONFIG_CMD_USB_MASS_STORAGE=y
  CONFIG_MTDIDS_DEFAULT="nor0=47040000.spi.0,nor0=47034000.hyperbus"
  CONFIG_MTDPARTS_DEFAULT="mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);47034000.hyperbus:512k(hbmc.tiboot3),2m(hbmc.tispl),4m(hbmc.u-boot),256k(hbmc.env),-@8m(hbmc.rootfs)"
Simple merge
@@@ -54,8 -54,8 +54,7 @@@ CONFIG_SYS_SPI_U_BOOT_OFFS=0x28000
  CONFIG_SPL_THERMAL=y
  CONFIG_SPL_YMODEM_SUPPORT=y
  CONFIG_CMD_CLK=y
 -CONFIG_CMD_DFU=y
  CONFIG_CMD_MTD=y
- CONFIG_CMD_REMOTEPROC=y
  CONFIG_CMD_USB_MASS_STORAGE=y
  CONFIG_CMD_MTDPARTS=y
  CONFIG_CMD_UBI=y
Simple merge
Simple merge
@@@ -124,11 -122,7 +123,10 @@@ CONFIG_SPL_PINCTRL=
  CONFIG_PINCTRL_SINGLE=y
  CONFIG_POWER_DOMAIN=y
  CONFIG_TI_POWER_DOMAIN=y
 +CONFIG_DM_REGULATOR=y
 +CONFIG_SPL_DM_REGULATOR=y
 +CONFIG_SPL_DM_REGULATOR_TPS6287X=y
  CONFIG_K3_SYSTEM_CONTROLLER=y
- CONFIG_REMOTEPROC_TI_K3_ARM64=y
  CONFIG_RESET_TI_SCI=y
  CONFIG_DM_SERIAL=y
  CONFIG_SOC_DEVICE=y
@@@ -67,7 -68,7 +67,6 @@@ CONFIG_CMD_GPIO=
  CONFIG_CMD_I2C=y
  CONFIG_CMD_MMC=y
  CONFIG_CMD_MTD=y
--CONFIG_CMD_REMOTEPROC=y
  CONFIG_CMD_USB=y
  CONFIG_CMD_USB_MASS_STORAGE=y
  CONFIG_CMD_CACHE=y
@@@ -143,8 -144,8 +142,6 @@@ CONFIG_SPL_DM_REGULATOR_FIXED=
  CONFIG_DM_REGULATOR_GPIO=y
  CONFIG_K3_SYSTEM_CONTROLLER=y
  CONFIG_REMOTEPROC_TI_K3_ARM64=y
--CONFIG_REMOTEPROC_TI_K3_DSP=y
--CONFIG_REMOTEPROC_TI_K3_R5F=y
  CONFIG_RESET_TI_SCI=y
  CONFIG_DM_RTC=y
  CONFIG_RTC_RV3028=y
@@@ -49,7 -49,7 +49,6 @@@ CONFIG_SPL_DM_SPI_FLASH=
  CONFIG_SPL_DM_RESET=y
  CONFIG_SPL_POWER_DOMAIN=y
  CONFIG_SPL_RAM_DEVICE=y
--CONFIG_SPL_REMOTEPROC=y
  CONFIG_SPL_SPI_LOAD=y
  CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000
  CONFIG_SPL_THERMAL=y
@@@ -59,7 -59,7 +58,6 @@@ CONFIG_CMD_ASKENV=
  CONFIG_CMD_DFU=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
--CONFIG_CMD_REMOTEPROC=y
  # CONFIG_CMD_SETEXPR is not set
  CONFIG_CMD_TIME=y
  CONFIG_CMD_FAT=y
@@@ -112,7 -112,7 +110,6 @@@ CONFIG_PINCTRL_SINGLE=
  CONFIG_POWER_DOMAIN=y
  CONFIG_TI_POWER_DOMAIN=y
  CONFIG_K3_SYSTEM_CONTROLLER=y
--CONFIG_REMOTEPROC_TI_K3_ARM64=y
  CONFIG_RESET_TI_SCI=y
  CONFIG_SPECIFY_CONSOLE_INDEX=y
  CONFIG_DM_SERIAL=y
@@@ -55,7 -56,7 +55,6 @@@ CONFIG_SPL_DM_SPI_FLASH=
  CONFIG_SPL_DM_RESET=y
  CONFIG_SPL_POWER_DOMAIN=y
  CONFIG_SPL_RAM_DEVICE=y
--CONFIG_SPL_REMOTEPROC=y
  # CONFIG_SPL_SPI_FLASH_TINY is not set
  CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
  CONFIG_SPL_SPI_LOAD=y
@@@ -66,7 -67,7 +65,6 @@@ CONFIG_CMD_ASKENV=
  CONFIG_CMD_DFU=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
--CONFIG_CMD_REMOTEPROC=y
  # CONFIG_CMD_SETEXPR is not set
  CONFIG_CMD_TIME=y
  CONFIG_CMD_FAT=y
@@@ -114,7 -115,7 +112,6 @@@ CONFIG_PINCTRL_SINGLE=
  CONFIG_POWER_DOMAIN=y
  CONFIG_TI_POWER_DOMAIN=y
  CONFIG_K3_SYSTEM_CONTROLLER=y
--CONFIG_REMOTEPROC_TI_K3_ARM64=y
  CONFIG_RESET_TI_SCI=y
  CONFIG_SPECIFY_CONSOLE_INDEX=y
  CONFIG_DM_SERIAL=y
@@@ -61,7 -60,7 +61,6 @@@ CONFIG_SPL_NET_VCI_STRING="AM64X U-Boo
  CONFIG_SPL_DM_RESET=y
  CONFIG_SPL_POWER_DOMAIN=y
  CONFIG_SPL_RAM_DEVICE=y
--CONFIG_SPL_REMOTEPROC=y
  # CONFIG_SPL_SPI_FLASH_TINY is not set
  CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
  CONFIG_SPL_SPI_LOAD=y
@@@ -73,7 -72,7 +72,6 @@@ CONFIG_CMD_ASKENV=
  CONFIG_CMD_DFU=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
--CONFIG_CMD_REMOTEPROC=y
  CONFIG_CMD_USB=y
  CONFIG_CMD_USB_MASS_STORAGE=y
  # CONFIG_CMD_SETEXPR is not set
@@@ -140,7 -139,7 +138,6 @@@ CONFIG_SPL_DM_REGULATOR=
  CONFIG_DM_REGULATOR_GPIO=y
  CONFIG_SPL_DM_REGULATOR_GPIO=y
  CONFIG_K3_SYSTEM_CONTROLLER=y
--CONFIG_REMOTEPROC_TI_K3_ARM64=y
  CONFIG_RESET_TI_SCI=y
  CONFIG_SPECIFY_CONSOLE_INDEX=y
  CONFIG_DM_SERIAL=y
@@@ -76,7 -77,7 +76,6 @@@ CONFIG_CMD_GPIO=
  CONFIG_CMD_I2C=y
  CONFIG_CMD_MMC=y
  CONFIG_CMD_READ=y
--CONFIG_CMD_REMOTEPROC=y
  CONFIG_CMD_USB=y
  CONFIG_CMD_USB_MASS_STORAGE=y
  CONFIG_CMD_BOOTCOUNT=y
@@@ -48,14 -49,14 +48,12 @@@ CONFIG_SPL_DM_MAILBOX=
  CONFIG_SPL_DM_RESET=y
  CONFIG_SPL_POWER_DOMAIN=y
  CONFIG_SPL_RAM_DEVICE=y
--CONFIG_SPL_REMOTEPROC=y
  CONFIG_SPL_YMODEM_SUPPORT=y
  CONFIG_HUSH_PARSER=y
  CONFIG_CMD_ASKENV=y
  CONFIG_CMD_DFU=y
  CONFIG_CMD_GPT=y
  CONFIG_CMD_MMC=y
--CONFIG_CMD_REMOTEPROC=y
  # CONFIG_CMD_SETEXPR is not set
  CONFIG_CMD_TIME=y
  CONFIG_OF_CONTROL=y
@@@ -97,7 -98,7 +95,6 @@@ CONFIG_PINCTRL_SINGLE=
  CONFIG_POWER_DOMAIN=y
  CONFIG_TI_POWER_DOMAIN=y
  CONFIG_K3_SYSTEM_CONTROLLER=y
--CONFIG_REMOTEPROC_TI_K3_ARM64=y
  CONFIG_RESET_TI_SCI=y
  CONFIG_SPECIFY_CONSOLE_INDEX=y
  CONFIG_DM_SERIAL=y