[PATCH 1/8] Convert CONFIG_ENV_MIN_ENTRIES et al to Kconfig

Tom Rini trini at konsulko.com
Mon Jun 13 02:01:58 CEST 2022


This converts the following to Kconfig:
   CONFIG_ENV_MIN_ENTRIES
   CONFIG_ENV_MAX_ENTRIES

Cc: Michal Simek <michal.simek at amd.com>
Signed-off-by: Tom Rini <trini at konsulko.com>
---
I'm not 100% sure that what was being done in xilinx_zynqmp.h was
working before this change.  If we _need_ to tweak this value down in
SPL we need to introduce CONFIG_SPL_ENV_{MIN,MAX}_ENTRIES and use
CONFIG_VAL() in the code.
---
 README                          |  8 --------
 configs/clearfog_defconfig      |  1 +
 configs/helios4_defconfig       |  1 +
 env/Kconfig                     | 16 ++++++++++++++++
 include/configs/clearfog.h      |  2 --
 include/configs/helios4.h       |  2 --
 include/configs/xilinx_zynqmp.h |  5 -----
 lib/hashtable.c                 |  7 -------
 8 files changed, 18 insertions(+), 24 deletions(-)

diff --git a/README b/README
index 841f8ce082c0..7649dae36338 100644
--- a/README
+++ b/README
@@ -1877,14 +1877,6 @@ Configuration Settings:
 		while unprotecting/erasing/programming. Please only enable
 		this option if you really know what you are doing.
 
-- CONFIG_ENV_MAX_ENTRIES
-
-	Maximum number of entries in the hash table that is used
-	internally to store the environment settings. The default
-	setting is supposed to be generous and should work in most
-	cases. This setting can be used to tune behaviour; see
-	lib/hashtable.c for details.
-
 - CONFIG_ENV_FLAGS_LIST_DEFAULT
 - CONFIG_ENV_FLAGS_LIST_STATIC
 	Enable validation of the values given to environment variables when
diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig
index bec36beb8554..1ee0c6637573 100644
--- a/configs/clearfog_defconfig
+++ b/configs/clearfog_defconfig
@@ -50,6 +50,7 @@ CONFIG_CMD_TIME=y
 CONFIG_CMD_MVEBU_BUBT=y
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_MIN_ENTRIES=128
 CONFIG_ARP_TIMEOUT=200
 CONFIG_NET_RETRY_COUNT=50
 CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
index 2a1db65d1bfd..4642eb1ccb25 100644
--- a/configs/helios4_defconfig
+++ b/configs/helios4_defconfig
@@ -51,6 +51,7 @@ CONFIG_CMD_TIME=y
 CONFIG_CMD_MVEBU_BUBT=y
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_MIN_ENTRIES=128
 CONFIG_ARP_TIMEOUT=200
 CONFIG_NET_RETRY_COUNT=50
 CONFIG_NET_RANDOM_ETHADDR=y
diff --git a/env/Kconfig b/env/Kconfig
index 2f625b22575a..0aed7aea46bc 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -30,6 +30,22 @@ config ENV_OVERWRITE
 	  Use this to permit overriding of certain environmental variables
 	  like Ethernet and Serial
 
+config ENV_MIN_ENTRIES
+	int "Minimum number of entries in the environment hashtable"
+	default 64
+	help
+	  Minimum number of entries in the hash table that is used internally
+	  to store the environment settings.
+
+config ENV_MAX_ENTRIES
+	int "Maximumm number of entries in the environment hashtable"
+	default 512
+	help
+	  Maximum number of entries in the hash table that is used internally
+	  to store the environment settings. The default setting is supposed to
+	  be generous and should work in most cases. This setting can be used
+	  to tune behaviour; see lib/hashtable.c for details.
+
 config ENV_IS_NOWHERE
 	bool "Environment is not stored"
 	default y if !ENV_IS_IN_EEPROM && !ENV_IS_IN_EXT4 && \
diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
index af04352eda3b..9969269bf2ac 100644
--- a/include/configs/clearfog.h
+++ b/include/configs/clearfog.h
@@ -18,8 +18,6 @@
  * U-Boot into it.
  */
 
-#define CONFIG_ENV_MIN_ENTRIES		128
-
 /* Environment in MMC */
 /*
  * For SD - reserve 1 LBA for MBR + 1M for u-boot image. The MMC/eMMC
diff --git a/include/configs/helios4.h b/include/configs/helios4.h
index cae20073584c..ff2c50644326 100644
--- a/include/configs/helios4.h
+++ b/include/configs/helios4.h
@@ -18,8 +18,6 @@
  * U-Boot into it.
  */
 
-#define CONFIG_ENV_MIN_ENTRIES		128
-
 /* Environment in MMC */
 /*
  * For SD - reserve 1 LBA for MBR + 1M for u-boot image. The MMC/eMMC
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 20515b4e26ac..4e71a42cd346 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -207,11 +207,6 @@
 
 /* ATF is my kernel image */
 
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU)
-# define CONFIG_SPL_HASH
-# define CONFIG_ENV_MAX_ENTRIES	10
-#endif
-
 #ifdef CONFIG_SPL_SYS_MALLOC_SIMPLE
 # error "Disable CONFIG_SPL_SYS_MALLOC_SIMPLE. Full malloc needs to be used"
 #endif
diff --git a/lib/hashtable.c b/lib/hashtable.c
index ff5ff7263949..90c8465611e9 100644
--- a/lib/hashtable.c
+++ b/lib/hashtable.c
@@ -35,13 +35,6 @@
 # include <linux/ctype.h>
 #endif
 
-#ifndef	CONFIG_ENV_MIN_ENTRIES	/* minimum number of entries */
-#define	CONFIG_ENV_MIN_ENTRIES 64
-#endif
-#ifndef	CONFIG_ENV_MAX_ENTRIES	/* maximum number of entries */
-#define	CONFIG_ENV_MAX_ENTRIES 512
-#endif
-
 #define USED_FREE 0
 #define USED_DELETED -1
 
-- 
2.25.1



More information about the U-Boot mailing list