[PATCH 0/3] Configure J721E Main R5FSS1 to Split-mode & env

Hi Lokesh,
The following series all deal with the different R5F clusters on J721E SoCs. The first 2 patches change the default mode for the Main R5FSS1 cluster on J721E SoCs from LockStep-mode to Split-mode, and updates the env variable 'rproc_fw_binaries' to include this new core.
The last patch is a cleanup patch of the rproc env variables used by R5 SPL. R5 SPL boots the MCU R5FSS0 Core0 and Main R5FSS0 Core0, and uses some env variables for the fs_loader functionality. These are neither used nor are needed from the A72 U-Boot.
I have tested using both the older SYSFW and the newer SYSFW with the appropriate kernel changes. All patches are based on the latest master.
regards Suman
Suman Anna (3): arm: dts: k3-j721e-main: Configure MAIN R5FSS1 for Split-mode configs: j721e_evm: Add Main R5FSS1 Core1 to default rproc boot list env: ti: j721e-evm: Limit scope of rproc env variables used by R5 SPL
arch/arm/dts/k3-j721e-main.dtsi | 2 +- include/configs/j721e_evm.h | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-)

Switch the MAIN R5FSS1 cluster to be configured for Split-mode as the default so that two different applications can be run on each of the R5F cores in performance mode. LockStep-mode would be available only on SoCs efused with the appropriate bit, and Split-mode is the mode that is available on all J721E SoCs.
Signed-off-by: Suman Anna s-anna@ti.com --- arch/arm/dts/k3-j721e-main.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/dts/k3-j721e-main.dtsi b/arch/arm/dts/k3-j721e-main.dtsi index a285b1afa842..33db74a267a6 100644 --- a/arch/arm/dts/k3-j721e-main.dtsi +++ b/arch/arm/dts/k3-j721e-main.dtsi @@ -302,7 +302,7 @@
main_r5fss1: r5fss@5e00000 { compatible = "ti,j721e-r5fss"; - lockstep-mode = <1>; + lockstep-mode = <0>; #address-cells = <1>; #size-cells = <1>; ranges = <0x5e00000 0x00 0x5e00000 0x20000>,

The default rproc list currently used by A72 U-Boot to boot various remote processors include the Main R5FSS0 (Split-mode) Core1, Main R5FSS1 (LockStep mode) Core0 and the three DSPs. The Main R5FSS1 cluster is configured for Split mode by default in the dts now, so add the Main R5FSS1 Core1 (rproc #5) to the default rproc boot list. This core is now booted after the Main R5FSS1 Core0 and before the DSPs.
The order of the rprocs to boot can always be changed at runtime if desired by overwriting the 'rproc_fw_binaries' environment variable at U-boot prompt. Note that the R5FSS Core1 cannot be booted before its associated Core0.
Signed-off-by: Suman Anna s-anna@ti.com --- include/configs/j721e_evm.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index c8a76037ff03..2b04b39e7df0 100644 --- a/include/configs/j721e_evm.h +++ b/include/configs/j721e_evm.h @@ -115,6 +115,7 @@ #define DEFAULT_RPROCS "" \ "3 /lib/firmware/j7-main-r5f0_1-fw " \ "4 /lib/firmware/j7-main-r5f1_0-fw " \ + "5 /lib/firmware/j7-main-r5f1_1-fw " \ "6 /lib/firmware/j7-c66_0-fw " \ "7 /lib/firmware/j7-c66_1-fw " \ "8 /lib/firmware/j7-c71_0-fw "

The commit 316c927135d6 ("include: configs: j721e_evm: Add env variables for mcu_r5fss0_core0 & main_r5fss0_core0") added four different new env variables 'addr_mainr5f0_0load', 'name_mainr5f0_0fw', 'addr_mcur5f0_0load' and 'name_mcur5f0_0fw' to the generic environment, but these are only needed and used in R5 SPL for early-booting the MCU R5FSS0 and Main R5FSS0 Core0 on J721E SoCs.
These are not really needed for A72 U-Boot, so limit the scope of these variables only to R5 SPL. While at this, also fix the loadaddr variable values to include the hex prefix like with other such env variables.
Cc: Keerthy j-keerthy@ti.com Signed-off-by: Suman Anna s-anna@ti.com --- include/configs/j721e_evm.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index 2b04b39e7df0..cddcd7a00d37 100644 --- a/include/configs/j721e_evm.h +++ b/include/configs/j721e_evm.h @@ -81,16 +81,23 @@ "uuid_disk=${uuid_gpt_disk};" \ "name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}\0"
+#ifdef CONFIG_SYS_K3_SPL_ATF +#define EXTRA_ENV_R5_SPL_RPROC_FW_ARGS_MMC \ + "addr_mainr5f0_0load=0x88000000\0" \ + "name_mainr5f0_0fw=/lib/firmware/j7-main-r5f0_0-fw\0" \ + "addr_mcur5f0_0load=0x89000000\0" \ + "name_mcur5f0_0fw=/lib/firmware/j7-mcu-r5f0_0-fw\0" +#else +#define EXTRA_ENV_R5_SPL_RPROC_FW_ARGS_MMC "" +#endif /* CONFIG_SYS_K3_SPL_ATF */ + /* U-Boot MMC-specific configuration */ #define EXTRA_ENV_J721E_BOARD_SETTINGS_MMC \ "boot=mmc\0" \ "mmcdev=1\0" \ "bootpart=1:2\0" \ "bootdir=/boot\0" \ - "addr_mainr5f0_0load=88000000\0" \ - "name_mainr5f0_0fw=/lib/firmware/j7-main-r5f0_0-fw\0" \ - "addr_mcur5f0_0load=89000000\0" \ - "name_mcur5f0_0fw=/lib/firmware/j7-mcu-r5f0_0-fw\0" \ + EXTRA_ENV_R5_SPL_RPROC_FW_ARGS_MMC \ "rd_spec=-\0" \ "init_mmc=run args_all args_mmc\0" \ "get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${name_fdt}\0" \

On 18/08/20 3:27 am, Suman Anna wrote:
Hi Lokesh,
The following series all deal with the different R5F clusters on J721E SoCs. The first 2 patches change the default mode for the Main R5FSS1 cluster on J721E SoCs from LockStep-mode to Split-mode, and updates the env variable 'rproc_fw_binaries' to include this new core.
The last patch is a cleanup patch of the rproc env variables used by R5 SPL. R5 SPL boots the MCU R5FSS0 Core0 and Main R5FSS0 Core0, and uses some env variables for the fs_loader functionality. These are neither used nor are needed from the A72 U-Boot.
I have tested using both the older SYSFW and the newer SYSFW with the appropriate kernel changes. All patches are based on the latest master.
Applied to u-boot-ti next branch.
Thanks and regards, Lokesh
participants (2)
-
Lokesh Vutla
-
Suman Anna