diff --git a/README b/README
index 1a7a788c4bf9dd9857cdede7b724faa94a827ada..392b5fdbbbba334b3844b543c1e38eba1b4b0adf 100644
--- a/README
+++ b/README
@@ -404,12 +404,6 @@ The following options need to be configured:
 		supported, core will start to execute uboot when wakes up.
 
 - Generic CPU options:
-		CONFIG_SYS_GENERIC_GLOBAL_DATA
-		Defines global data is initialized in generic board board_init_f().
-		If this macro is defined, global data is created and cleared in
-		generic board board_init_f(). Without this macro, architecture/board
-		should initialize global data before calling board_init_f().
-
 		CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
 
 		Defines the endianess of the CPU. Implementation of those
diff --git a/common/board_f.c b/common/board_f.c
index de5f398a0b9f2ba0f918089b9e78a85df3db1304..104d144f41ab3703db74d20609507bd3bb38b8a4 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -211,14 +211,6 @@ static int init_func_spi(void)
 }
 #endif
 
-__maybe_unused
-static int zero_global_data(void)
-{
-	memset((void *)gd, '\0', sizeof(gd_t));
-
-	return 0;
-}
-
 static int setup_mon_len(void)
 {
 #if defined(__ARM__) || defined(__MICROBLAZE__)
@@ -910,25 +902,6 @@ static const init_fnc_t init_sequence_f[] = {
 
 void board_init_f(ulong boot_flags)
 {
-#ifdef CONFIG_SYS_GENERIC_GLOBAL_DATA
-	/*
-	 * For some architectures, global data is initialized and used before
-	 * calling this function. The data should be preserved. For others,
-	 * CONFIG_SYS_GENERIC_GLOBAL_DATA should be defined and use the stack
-	 * here to host global data until relocation.
-	 */
-	gd_t data;
-
-	gd = &data;
-
-	/*
-	 * Clear global data before it is accessed at debug print
-	 * in initcall_run_list. Otherwise the debug print probably
-	 * get the wrong value of gd->have_console.
-	 */
-	zero_global_data();
-#endif
-
 	gd->flags = boot_flags;
 	gd->have_console = 0;
 
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index b3dac2dceb18bfe668e7f53cde2300c494425013..6c628c878ca23412edafc6dd5703456e110f9506 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -3342,7 +3342,6 @@ CONFIG_SYS_GBIT_MII_BUSNAME
 CONFIG_SYS_GBL_DATA_OFFSET
 CONFIG_SYS_GBL_DATA_SIZE
 CONFIG_SYS_GENERIC_BOARD
-CONFIG_SYS_GENERIC_GLOBAL_DATA
 CONFIG_SYS_GIC400_ADDR
 CONFIG_SYS_GP1DIR
 CONFIG_SYS_GP1ODR