[PATCH 0/3] MCU R5F branch-only boot on J7200 SoCs

Hi Lokesh,
The following series adds the support for the branch-only boot of an application firmware on MCU R5F from R5 SPL after it has finished launching the A72.
Most of the changes are just related to updating J7200 defconfigs or dts nodes, as the core logic for R5 SPL branch-only boot is already present. The boot media supported is _only_ SDCard just like with J721E SoCs. Firmware images to be used are the non-ATCM images.
The series is on top of the previous "Early-boot support of R5FSS from A72 U-Boot for J7200 SoCs" [1].
Following is the patch summary: - Patch #1 updates the R5 SPL rproc env variables for J7200 SoCs given the different firmware names used between J721E & J7200 SoCs. The Main R5FSS variables are also left out, until the support for the same is added to code. - Patches #2 and #3 add and enable the FS_LOADER node and Kconfigs
regards Suman
[1] https://patchwork.ozlabs.org/project/uboot/list/?series=196101
Suman Anna (3): env: ti: j721e-evm: Update R5 SPL rproc env variables for J7200 arm: dts: k3-j7200-r5: Add fs_loader node configs: j7200_evm_r5: Enable FS_LOADER
arch/arm/dts/k3-j7200-r5-common-proc-board.dts | 6 ++++++ configs/j7200_evm_r5_defconfig | 1 + include/configs/j721e_evm.h | 6 ++++++ 3 files changed, 13 insertions(+)

The R5 SPL on J7200 SoCs will be limited to booting just the MCU R5FSS0 R5F core in LockStep-mode at present, so add the two required environment variables 'addr_mcur5f0_0load' and 'name_mcur5f0_0fw' that are needed by the R5 SPL early-boot logic. The firmware name used is also different from that on J721E SoCs.
Signed-off-by: Suman Anna s-anna@ti.com --- include/configs/j721e_evm.h | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h index dc06de234154..5e6e6f81694b 100644 --- a/include/configs/j721e_evm.h +++ b/include/configs/j721e_evm.h @@ -82,11 +82,17 @@ "name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}\0"
#ifdef CONFIG_SYS_K3_SPL_ATF +#if defined(CONFIG_TARGET_J721E_R5_EVM) #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" +#elif defined(CONFIG_TARGET_J7200_R5_EVM) +#define EXTRA_ENV_R5_SPL_RPROC_FW_ARGS_MMC \ + "addr_mcur5f0_0load=0x89000000\0" \ + "name_mcur5f0_0fw=/lib/firmware/j7200-mcu-r5f0_0-fw\0" +#endif /* CONFIG_TARGET_J721E_R5_EVM */ #else #define EXTRA_ENV_R5_SPL_RPROC_FW_ARGS_MMC "" #endif /* CONFIG_SYS_K3_SPL_ATF */

Add a generic fs_loader node to the K3 J7200 R5 common board dts file and use it as the chosen firmware-loader so that it can be used for loading various firmwares from a boot media/filesystem in R5 SPL on K3 J7200 EVM.
Signed-off-by: Suman Anna s-anna@ti.com --- arch/arm/dts/k3-j7200-r5-common-proc-board.dts | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts index f5e4166926dc..b8c8487f3afe 100644 --- a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts +++ b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts @@ -18,6 +18,12 @@ chosen { stdout-path = &main_uart0; tick-timer = &timer1; + firmware-loader = &fs_loader0; + }; + + fs_loader0: fs_loader@0 { + u-boot,dm-pre-reloc; + compatible = "u-boot,fs-loader"; };
a72_0: a72@0 {

Hi Lokesh,
On 8/18/20 2:09 PM, Suman Anna wrote:
Add a generic fs_loader node to the K3 J7200 R5 common board dts file and use it as the chosen firmware-loader so that it can be used for loading various firmwares from a boot media/filesystem in R5 SPL on K3 J7200 EVM.
Signed-off-by: Suman Anna s-anna@ti.com
arch/arm/dts/k3-j7200-r5-common-proc-board.dts | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts index f5e4166926dc..b8c8487f3afe 100644 --- a/arch/arm/dts/k3-j7200-r5-common-proc-board.dts +++ b/arch/arm/dts/k3-j7200-r5-common-proc-board.dts @@ -18,6 +18,12 @@ chosen { stdout-path = &main_uart0; tick-timer = &timer1;
firmware-loader = &fs_loader0;
- };
- fs_loader0: fs_loader@0 {
I realized I used underscore in the node name. Can you fix up the node name while applying, or do you want me to send a v2?
regards Suman
u-boot,dm-pre-reloc;
compatible = "u-boot,fs-loader";
};
a72_0: a72@0 {

Enable the FS_LOADER and associated configs in the j7200_evm_r5_defconfig so that the R5 SPL can support the loading of firmware files from a boot media/file system.
Signed-off-by: Suman Anna s-anna@ti.com --- configs/j7200_evm_r5_defconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/configs/j7200_evm_r5_defconfig b/configs/j7200_evm_r5_defconfig index 2908bc30c406..24eddfd8a5b3 100644 --- a/configs/j7200_evm_r5_defconfig +++ b/configs/j7200_evm_r5_defconfig @@ -81,6 +81,7 @@ CONFIG_I2C_SET_DEFAULT_BUS_NUM=y CONFIG_SYS_I2C_OMAP24XX=y CONFIG_DM_MAILBOX=y CONFIG_K3_SEC_PROXY=y +CONFIG_FS_LOADER=y CONFIG_DM_MMC=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_SDHCI=y

On 19/08/20 12:39 am, Suman Anna wrote:
Hi Lokesh,
The following series adds the support for the branch-only boot of an application firmware on MCU R5F from R5 SPL after it has finished launching the A72.
Most of the changes are just related to updating J7200 defconfigs or dts nodes, as the core logic for R5 SPL branch-only boot is already present. The boot media supported is _only_ SDCard just like with J721E SoCs. Firmware images to be used are the non-ATCM images.
The series is on top of the previous "Early-boot support of R5FSS from A72 U-Boot for J7200 SoCs" [1].
Following is the patch summary:
- Patch #1 updates the R5 SPL rproc env variables for J7200 SoCs given the different firmware names used between J721E & J7200 SoCs. The Main R5FSS variables are also left out, until the support for the same is added to code.
- Patches #2 and #3 add and enable the FS_LOADER node and Kconfigs
Applied to u-boot-ti next branch.
Thanks and regards, Lokesh
participants (2)
-
Lokesh Vutla
-
Suman Anna