From mboxrd@z Thu Jan 1 00:00:00 1970 From: York Sun Date: Wed, 3 Oct 2018 16:24:01 +0000 Subject: [U-Boot] [PATCH 19/53] armv8: fsl-layerscape: bootcmd identification for TFABOOT. References: <20181003113736.14981-1-rajesh.bhagat@nxp.com> <20181003113736.14981-20-rajesh.bhagat@nxp.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de First, remove the period in subject. On 10/03/2018 04:39 AM, Rajesh Bhagat wrote: > From: Pankit Garg > > Adds bootcmd identificaton on basis on boot source, valid > in TFABOOT configuration. > > Signed-off-by: Rajesh Bhagat > Signed-off-by: Pankit Garg > --- > arch/arm/cpu/armv8/fsl-layerscape/soc.c | 69 +++++++++++++++++++++++++ > 1 file changed, 69 insertions(+) > > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/soc.c b/arch/arm/cpu/armv8/fsl-layerscape/soc.c > index 3f15cb08ff..1e701c58df 100644 > --- a/arch/arm/cpu/armv8/fsl-layerscape/soc.c > +++ b/arch/arm/cpu/armv8/fsl-layerscape/soc.c > @@ -679,12 +679,81 @@ int qspi_ahb_init(void) > } > #endif > > +#ifdef CONFIG_TFABOOT > +#define MAX_BOOTCMD_SIZE 256 > + > +int fsl_setenv_bootcmd(void) > +{ > + int ret; > + enum boot_src src = get_boot_src(); > + char bootcmd_str[MAX_BOOTCMD_SIZE]; > + > + switch (src) { > +#ifdef IFC_NOR_BOOTCOMMAND > + case BOOT_SOURCE_IFC_NOR: > + sprintf(bootcmd_str, IFC_NOR_BOOTCOMMAND); > + break; > +#endif > +#ifdef QSPI_NOR_BOOTCOMMAND > + case BOOT_SOURCE_QSPI_NOR: > + sprintf(bootcmd_str, QSPI_NOR_BOOTCOMMAND); > + break; > +#endif > +#ifdef XSPI_NOR_BOOTCOMMAND > + case BOOT_SOURCE_XSPI_NOR: > + sprintf(bootcmd_str, XSPI_NOR_BOOTCOMMAND); > + break; > +#endif > +#ifdef IFC_NAND_BOOTCOMMAND > + case BOOT_SOURCE_IFC_NAND: > + sprintf(bootcmd_str, IFC_NAND_BOOTCOMMAND); > + break; > +#endif > +#ifdef QSPI_NAND_BOOTCOMMAND > + case BOOT_SOURCE_QSPI_NAND: > + sprintf(bootcmd_str, QSPI_NAND_BOOTCOMMAND); > + break; > +#endif > +#ifdef XSPI_NAND_BOOTCOMMAND > + case BOOT_SOURCE_XSPI_NAND: > + sprintf(bootcmd_str, XSPI_NAND_BOOTCOMMAND); > + break; > +#endif > +#ifdef SD_BOOTCOMMAND > + case BOOT_SOURCE_SD_MMC: > + sprintf(bootcmd_str, SD_BOOTCOMMAND); > + break; > +#endif > +#ifdef SD2_BOOTCOMMAND > + case BOOT_SOURCE_SD_MMC2: > + sprintf(bootcmd_str, SD2_BOOTCOMMAND); > + break; > +#endif > + default: > +#ifdef QSPI_NOR_BOOTCOMMAND > + sprintf(bootcmd_str, QSPI_NOR_BOOTCOMMAND); > +#endif > + break; > + } > + > + ret = env_set("bootcmd", bootcmd_str); > + if (ret) { > + printf("Failed to set bootcmd: ret = %d\n", ret); > + return ret; > + } > + return 0; > +} > +#endif > + > #ifdef CONFIG_BOARD_LATE_INIT > int board_late_init(void) > { > #ifdef CONFIG_CHAIN_OF_TRUST > fsl_setenv_chain_of_trust(); > #endif > +#ifdef CONFIG_TFABOOT > + fsl_setenv_bootcmd(); > +#endif > #ifdef CONFIG_QSPI_AHB_INIT > qspi_ahb_init(); > #endif > Shouldn't you check if such variable is valid? I think you should not overwrite this variable if user has already set it. York