From ec217210f351c5c5089063f42eeb5e967a8ea5ba Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 24 Feb 2021 10:33:45 +0100 Subject: env: Setup default value for ENV_OFFSET_REDUND This variable is used for pointing to location where redundant variables are located. There is no default value. And it doesn't need to be specified which is showing as warning when savedefconfig is called. make xilinx_zynqmp_virt_defconfig # # configuration written to .config # make savedefconfig scripts/kconfig/conf --savedefconfig=defconfig Kconfig .config:199:warning: symbol value '' invalid for ENV_OFFSET_REDUND Signed-off-by: Michal Simek --- env/Kconfig | 1 + 1 file changed, 1 insertion(+) (limited to 'env') diff --git a/env/Kconfig b/env/Kconfig index 08e49c2a47f..84e9fb1f8ad 100644 --- a/env/Kconfig +++ b/env/Kconfig @@ -556,6 +556,7 @@ config ENV_OFFSET_REDUND hex "Redundant environment offset" depends on (ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \ ENV_IS_IN_SPI_FLASH) && SYS_REDUNDAND_ENVIRONMENT + default 0 help Offset from the start of the device (or partition) of the redundant environment location. -- cgit v1.3.1 From 4fb83c9c2b2659b9493e271542c1c4568f97380c Mon Sep 17 00:00:00 2001 From: Ashok Reddy Soma Date: Tue, 23 Feb 2021 08:07:46 -0700 Subject: xilinx: versal: Add support for saving env based on bootmode Enable saving variables to MMC(FAT) and SPI based on primary bootmode. If bootmode is JTAG, dont save env anywhere(NOWHERE). Enable ENV_FAT_DEVICE_AND_PART="0:auto" for Versal platforms as well. Signed-off-by: Ashok Reddy Soma Signed-off-by: Michal Simek --- board/xilinx/versal/board.c | 30 ++++++++++++++++++++++++++++++ configs/xilinx_versal_virt_defconfig | 3 +++ env/Kconfig | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) (limited to 'env') diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c index e2f9d13c127..b17506453e1 100644 --- a/board/xilinx/versal/board.c +++ b/board/xilinx/versal/board.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -245,3 +246,32 @@ int dram_init(void) void reset_cpu(void) { } + +enum env_location env_get_location(enum env_operation op, int prio) +{ + u32 bootmode = versal_get_bootmode(); + + if (prio) + return ENVL_UNKNOWN; + + switch (bootmode) { + case EMMC_MODE: + case SD_MODE: + case SD1_LSHFT_MODE: + case SD_MODE1: + if (IS_ENABLED(CONFIG_ENV_IS_IN_FAT)) + return ENVL_FAT; + if (IS_ENABLED(CONFIG_ENV_IS_IN_EXT4)) + return ENVL_EXT4; + return ENVL_UNKNOWN; + case OSPI_MODE: + case QSPI_MODE_24BIT: + case QSPI_MODE_32BIT: + if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH)) + return ENVL_SPI_FLASH; + return ENVL_UNKNOWN; + case JTAG_MODE: + default: + return ENVL_NOWHERE; + } +} diff --git a/configs/xilinx_versal_virt_defconfig b/configs/xilinx_versal_virt_defconfig index 2d639a1026a..fe108d3475c 100644 --- a/configs/xilinx_versal_virt_defconfig +++ b/configs/xilinx_versal_virt_defconfig @@ -39,6 +39,9 @@ CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_MTDPARTS=y CONFIG_CMD_UBI=y CONFIG_OF_BOARD=y +CONFIG_ENV_IS_NOWHERE=y +CONFIG_ENV_IS_IN_FAT=y +CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NETCONSOLE=y diff --git a/env/Kconfig b/env/Kconfig index 84e9fb1f8ad..1b7906cf726 100644 --- a/env/Kconfig +++ b/env/Kconfig @@ -445,7 +445,7 @@ config ENV_FAT_DEVICE_AND_PART string "Device and partition for where to store the environemt in FAT" depends on ENV_IS_IN_FAT default "0:1" if TI_COMMON_CMD_OPTIONS - default "0:auto" if ARCH_ZYNQ || ARCH_ZYNQMP + default "0:auto" if ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL default "0:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1 default "1:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1 default "0" if ARCH_AT91 -- cgit v1.3.1