env: ti: am65x_evm: Add env support to boot the MCU R5F rprocs
authorSuman Anna <s-anna@ti.com>
Wed, 4 Sep 2019 10:31:44 +0000 (16:01 +0530)
committerTom Rini <trini@konsulko.com>
Fri, 11 Oct 2019 14:07:35 +0000 (10:07 -0400)
Add support to boot the MCU domain R5F Core0 remoteproc at U-boot prompt
on the AM65x EVM boards by using the 'boot_rprocs' and other env variables
defined in the common environment file k3_rproc.h, and updating the
'DEFAULT_RPROCS' macro.

The default configuration is to use the MCU R5F in Split mode, so both
the R5F Core0 and Core1 are started before loading and booting the Linux
kernel using the following firmware:
   MCU R5FSS0 Core0 (Split) : 0 /lib/firmware/am65x-mcu-r5f0_0-fw
   MCU R5FSS0 Core1 (Split) : 1 /lib/firmware/am65x-mcu-r5f0_1-fw

The MCU R5FSS was initially running the R5 SPL in LockStep mode with ATCM
disabled, and is actually shutdown to enable it to be reconfigured and
booted by either A53 U-Boot or Linux kernel in remoteproc mode and using
ATCM.

The MCU R5FSS would need to be reconfigured for Lockstep mode through
DT if a fault-tolerant/safety application were to be run on the cluster
with the DEFAULT_RPROCS macro updated to remove the Core1 firmware.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
include/configs/am65x_evm.h

index 0249a20ba8fa0573963076245a3cf5a5c430bcbe..1149d55937a25eb72cd9a2b9dc43b9bf6ee18a75 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/sizes.h>
 #include <config_distro_bootcmd.h>
 #include <environment/ti/mmc.h>
+#include <environment/ti/k3_rproc.h>
 
 #define CONFIG_ENV_SIZE                        (128 << 10)
 
                "${bootdir}/${name_fit}\0"                              \
        "partitions=" PARTS_DEFAULT
 
+#ifdef DEFAULT_RPROCS
+#undef DEFAULT_RPROCS
+#endif
+#define DEFAULT_RPROCS ""                                              \
+               "0 /lib/firmware/am65x-mcu-r5f0_0-fw "                  \
+               "1 /lib/firmware/am65x-mcu-r5f0_1-fw "
+
 /* Incorporate settings into the U-Boot environment */
 #define CONFIG_EXTRA_ENV_SETTINGS                                      \
        DEFAULT_MMC_TI_ARGS                                             \
        DEFAULT_FIT_TI_ARGS                                             \
        EXTRA_ENV_AM65X_BOARD_SETTINGS                                  \
-       EXTRA_ENV_AM65X_BOARD_SETTINGS_MMC
+       EXTRA_ENV_AM65X_BOARD_SETTINGS_MMC                              \
+       EXTRA_ENV_RPROC_SETTINGS
 
 /* MMC ENV related defines */
 #ifdef CONFIG_ENV_IS_IN_MMC