All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig
@ 2022-01-04 13:23 Patrick Delaunay
  2022-01-04 13:23 ` [PATCH v1 1/5] cmd: Fix up warnings in flash.c Patrick Delaunay
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Patrick Delaunay @ 2022-01-04 13:23 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Simon Glass, Patrick Delaunay, Aaron Williams,
	Adam Ford, Aleksandar Gerasimovski, Alison Wang, Andes,
	Andrew F. Davis, Angelo Dureghello, Ashish Kumar, Bin Meng,
	Chee Hong Ang, Chin-Liang See, Christophe Leroy,
	Dalon Westergreen, Daniel Schwierzeck, David Feng, Dinh Nguyen,
	Dirk Eibach, Eugen Hristev, Fabio Estevam, Heiko Schocher,
	Heinrich Schuchardt, Igor Opaniuk, Ilko Iliev, Jagan Teki,
	Jassi Brar, Jens Scharsig, Kamil Lulko, Kristian Amlie,
	Liviu Dudau, Lukasz Majewski, Marek Behún, Marek Vasut,
	Masakazu Mochizuki, Masami Hiramatsu, Max Filippov,
	Michael Walle, Michal Simek, Mingkai Hu, Niel Fourie,
	Nobuhiro Iwamatsu, Patrice Chotard, Paul Burton, Peng Fan,
	Priyanka Jain, Qiang Zhao, Rainer Boschung, Rajesh Bhagat,
	Rasmus Villemoes, Rick Chen, Ruchika Gupta, Sean Anderson,
	Shengzhou Liu, Siew Chin Lim, Simon Guinot, Sinan Akman,
	Stefan Roese, Stelian Pop, Tetsuyuki Kobayashi, Thomas Chou,
	Thomas Fitzsimmons, TsiChung Liew, Tuomas Tynkkynen, Usama Arif,
	Vignesh R, Vikas Manocha, Vladimir Zapolskiy, Wolfgang Denk,
	Wolfgang Wegner, egnite GmbH, uboot-stm32,
	Álvaro Fernández Rojas


Proposal after Marek comment in [1], move CONFIG_SYS_MAX_FLASH_BANKS
and CONFIG_SYS_MAX_FLASH_BANKS_DETECT in Kconfig.

Series based on the previous RFC [2], rebased on top of the next
branch and added reviewed-by.

I wasn't not sure of the solution when I introduced the
CFI_FLASH_BANKS to simplify the support of all the options in
include/mtd/cfi_flash.h

No compilation issue after rebase but not tested =
https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/10431

[1] [v3,1/2] mtd: cfi_flash: use cfi_flash_num_flash_banks only when supported
http: //patchwork.ozlabs.org/project/uboot/patch/20210916155040.v3.1.I81b4f1edfe925b001299e3b7ba0cf602d9268d59@changeid/#2754501

[2] [RFC] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig
http: //patchwork.ozlabs.org/project/uboot/list/?series=276760&state=*

Changes in v1:
- update drivers/mtd/spi/spi-nor-core.c for cfi_mtd_nb
  needed after RFC rebase
- solve issue in cfi_flash.h, with
  CFI_FLASH_BANKS=CONFIG_SYS_MAX_FLASH_BANKS_DETECT

Patrick Delaunay (5):
  cmd: Fix up warnings in flash.c
  mtd: cfi: introduce CFI_FLASH_BANKS
  mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean
  configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig
  Convert CONFIG_AT91_EFLASH to Kconfig

 README                                       |   3 -
 arch/arm/mach-at91/Kconfig                   |   8 +
 cmd/bootm.c                                  |   2 +-
 cmd/flash.c                                  | 247 +++++++++----------
 common/flash.c                               |   2 +-
 common/update.c                              |   4 +-
 configs/3c120_defconfig                      |   1 +
 configs/M5253DEMO_defconfig                  |   1 +
 configs/MPC8548CDS_36BIT_defconfig           |   1 +
 configs/MPC8548CDS_defconfig                 |   1 +
 configs/MPC8548CDS_legacy_defconfig          |   1 +
 configs/P3041DS_NAND_defconfig               |   1 +
 configs/P3041DS_SDCARD_defconfig             |   1 +
 configs/P3041DS_SPIFLASH_defconfig           |   1 +
 configs/P3041DS_defconfig                    |   1 +
 configs/P4080DS_SDCARD_defconfig             |   1 +
 configs/P4080DS_SPIFLASH_defconfig           |   1 +
 configs/P4080DS_defconfig                    |   1 +
 configs/P5040DS_NAND_defconfig               |   1 +
 configs/P5040DS_SDCARD_defconfig             |   1 +
 configs/P5040DS_SPIFLASH_defconfig           |   1 +
 configs/P5040DS_defconfig                    |   1 +
 configs/T1042D4RDB_NAND_defconfig            |   1 +
 configs/T1042D4RDB_SDCARD_defconfig          |   1 +
 configs/T1042D4RDB_SPIFLASH_defconfig        |   1 +
 configs/T1042D4RDB_defconfig                 |   1 +
 configs/T2080QDS_NAND_defconfig              |   1 +
 configs/T2080QDS_SDCARD_defconfig            |   1 +
 configs/T2080QDS_SECURE_BOOT_defconfig       |   1 +
 configs/T2080QDS_SPIFLASH_defconfig          |   1 +
 configs/T2080QDS_defconfig                   |   1 +
 configs/T4240RDB_SDCARD_defconfig            |   1 +
 configs/T4240RDB_defconfig                   |   1 +
 configs/boston32r2_defconfig                 |   1 +
 configs/boston32r2el_defconfig               |   1 +
 configs/boston32r6_defconfig                 |   1 +
 configs/boston32r6el_defconfig               |   1 +
 configs/boston64r2_defconfig                 |   1 +
 configs/boston64r2el_defconfig               |   1 +
 configs/boston64r6_defconfig                 |   1 +
 configs/boston64r6el_defconfig               |   1 +
 configs/cobra5272_defconfig                  |   1 +
 configs/comtrend_ct5361_ram_defconfig        |   1 +
 configs/comtrend_wap5813n_ram_defconfig      |   1 +
 configs/ethernut5_defconfig                  |   1 +
 configs/huawei_hg556a_ram_defconfig          |   1 +
 configs/j7200_evm_a72_defconfig              |   1 +
 configs/j7200_evm_r5_defconfig               |   1 +
 configs/j721e_evm_a72_defconfig              |   1 +
 configs/j721e_hs_evm_a72_defconfig           |   1 +
 configs/ls1021aqds_ddr4_nor_defconfig        |   1 +
 configs/ls1021aqds_ddr4_nor_lpuart_defconfig |   1 +
 configs/ls1021aqds_nand_defconfig            |   1 +
 configs/ls1021aqds_nor_SECURE_BOOT_defconfig |   1 +
 configs/ls1021aqds_nor_defconfig             |   1 +
 configs/ls1021aqds_nor_lpuart_defconfig      |   1 +
 configs/ls1021aqds_sdcard_ifc_defconfig      |   1 +
 configs/ls1046aqds_SECURE_BOOT_defconfig     |   1 +
 configs/ls1046aqds_defconfig                 |   1 +
 configs/ls1046aqds_lpuart_defconfig          |   1 +
 configs/ls1046aqds_nand_defconfig            |   1 +
 configs/ls1046aqds_sdcard_ifc_defconfig      |   1 +
 configs/ls1046aqds_tfa_SECURE_BOOT_defconfig |   1 +
 configs/ls1046aqds_tfa_defconfig             |   1 +
 configs/ls1088aqds_defconfig                 |   1 +
 configs/ls1088aqds_sdcard_ifc_defconfig      |   1 +
 configs/ls1088aqds_tfa_defconfig             |   1 +
 configs/ls2080aqds_SECURE_BOOT_defconfig     |   1 +
 configs/ls2080aqds_defconfig                 |   1 +
 configs/ls2088aqds_tfa_defconfig             |   1 +
 configs/qemu_arm64_defconfig                 |   2 +
 configs/qemu_arm_defconfig                   |   2 +
 configs/r8a77990_ebisu_defconfig             |   1 +
 configs/r8a77995_draak_defconfig             |   1 +
 configs/rcar3_salvator-x_defconfig           |   1 +
 configs/rcar3_ulcb_defconfig                 |   1 +
 configs/sfr_nb4-ser_ram_defconfig            |   1 +
 configs/socrates_defconfig                   |   1 +
 drivers/mtd/Kconfig                          |  27 ++
 drivers/mtd/cfi_flash.c                      |   6 +-
 drivers/mtd/cfi_mtd.c                        |   4 +-
 drivers/mtd/spi/spi-nor-core.c               |   5 +-
 include/configs/10m50_devboard.h             |   1 -
 include/configs/3c120_devboard.h             |   1 -
 include/configs/M5208EVBE.h                  |   1 -
 include/configs/M5235EVB.h                   |   1 -
 include/configs/M5249EVB.h                   |   1 -
 include/configs/M5253DEMO.h                  |   1 -
 include/configs/M5272C3.h                    |   1 -
 include/configs/M5275EVB.h                   |   1 -
 include/configs/M5282EVB.h                   |   1 -
 include/configs/M53017EVB.h                  |   1 -
 include/configs/M5329EVB.h                   |   1 -
 include/configs/M5373EVB.h                   |   1 -
 include/configs/MCR3000.h                    |   1 -
 include/configs/MPC837XERDB.h                |   1 -
 include/configs/MPC8540ADS.h                 |   1 -
 include/configs/MPC8548CDS.h                 |   1 -
 include/configs/MPC8560ADS.h                 |   1 -
 include/configs/P1010RDB.h                   |   1 -
 include/configs/P2041RDB.h                   |   1 -
 include/configs/T102xRDB.h                   |   1 -
 include/configs/T104xRDB.h                   |   1 -
 include/configs/T208xQDS.h                   |   1 -
 include/configs/T208xRDB.h                   |   1 -
 include/configs/T4240RDB.h                   |   1 -
 include/configs/adp-ae3xx.h                  |   6 -
 include/configs/adp-ag101p.h                 |   3 -
 include/configs/am335x_evm.h                 |   1 -
 include/configs/am3517_evm.h                 |   1 -
 include/configs/amcore.h                     |   1 -
 include/configs/armadillo-800eva.h           |   1 -
 include/configs/astro_mcf5373l.h             |   1 -
 include/configs/at91sam9263ek.h              |   1 -
 include/configs/ax25-ae350.h                 |   6 -
 include/configs/bcm7445.h                    |   2 -
 include/configs/blanche.h                    |   1 -
 include/configs/bmips_bcm6338.h              |   1 -
 include/configs/bmips_bcm6348.h              |   1 -
 include/configs/bmips_bcm6358.h              |   1 -
 include/configs/bmips_bcm6368.h              |   1 -
 include/configs/boston.h                     |   2 +-
 include/configs/cobra5272.h                  |   1 -
 include/configs/colibri_pxa270.h             |   1 -
 include/configs/corenet_ds.h                 |   1 -
 include/configs/da850evm.h                   |   1 -
 include/configs/devkit3250.h                 |   1 -
 include/configs/dra7xx_evm.h                 |   1 -
 include/configs/draak.h                      |   1 -
 include/configs/eb_cpu5282.h                 |   1 -
 include/configs/ebisu.h                      |   1 -
 include/configs/edminiv2.h                   |   1 -
 include/configs/ethernut5.h                  |   2 -
 include/configs/gazerbeam.h                  |   1 -
 include/configs/ids8313.h                    |   1 -
 include/configs/imx27lite-common.h           |   1 -
 include/configs/integrator-common.h          |   1 -
 include/configs/j721e_evm.h                  |   1 -
 include/configs/km/km-mpc83xx.h              |   1 -
 include/configs/km/pg-wcom-ls102xa.h         |   1 -
 include/configs/kmcent2.h                    |   1 -
 include/configs/kzm9g.h                      |   1 -
 include/configs/ls1021aqds.h                 |   1 -
 include/configs/ls1021atwr.h                 |   1 -
 include/configs/ls1043aqds.h                 |   1 -
 include/configs/ls1043ardb.h                 |   1 -
 include/configs/ls1046aqds.h                 |   1 -
 include/configs/ls1088aqds.h                 |   1 -
 include/configs/ls1088ardb.h                 |   1 -
 include/configs/ls2080aqds.h                 |   1 -
 include/configs/ls2080ardb.h                 |   1 -
 include/configs/lsxl.h                       |   1 -
 include/configs/malta.h                      |   1 -
 include/configs/mccmon6.h                    |   1 -
 include/configs/microblaze-generic.h         |   1 -
 include/configs/mx6sabreauto.h               |   1 -
 include/configs/octeon_ebb7304.h             |   1 -
 include/configs/omap3_logic.h                |   1 -
 include/configs/p1_p2_rdb_pc.h               |   2 -
 include/configs/pm9261.h                     |   1 -
 include/configs/pm9263.h                     |   1 -
 include/configs/qemu-arm.h                   |   1 -
 include/configs/qemu-riscv.h                 |   2 -
 include/configs/r2dplus.h                    |   1 -
 include/configs/salvator-x.h                 |   1 -
 include/configs/sama5d3xek.h                 |   1 -
 include/configs/socfpga_arria10_socdk.h      |   1 -
 include/configs/socfpga_soc64_common.h       |   1 -
 include/configs/socrates.h                   |   1 -
 include/configs/stih410-b2260.h              |   2 -
 include/configs/stm32f429-discovery.h        |   1 -
 include/configs/stm32f429-evaluation.h       |   1 -
 include/configs/stm32f469-discovery.h        |   1 -
 include/configs/stm32f746-disco.h            |   1 -
 include/configs/synquacer.h                  |   1 -
 include/configs/total_compute.h              |   1 -
 include/configs/ulcb.h                       |   1 -
 include/configs/vexpress_aemv8a.h            |   1 -
 include/configs/vexpress_common.h            |   1 -
 include/configs/xtfpga.h                     |   1 -
 include/configs/zynq-common.h                |   1 -
 include/mtd/cfi_flash.h                      |  17 +-
 scripts/config_whitelist.txt                 |   3 -
 183 files changed, 252 insertions(+), 267 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v1 1/5] cmd: Fix up warnings in flash.c
  2022-01-04 13:23 [PATCH v1 0/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
@ 2022-01-04 13:23 ` Patrick Delaunay
  2022-01-05  8:42   ` Stefan Roese
  2022-01-21 19:02   ` Tom Rini
  2022-01-04 13:23 ` [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS Patrick Delaunay
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 17+ messages in thread
From: Patrick Delaunay @ 2022-01-04 13:23 UTC (permalink / raw)
  To: u-boot; +Cc: Marek Vasut, Simon Glass, Patrick Delaunay, U-Boot STM32

Tidy up the warnings reported by checkpatch.pl to prepare next patches

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

 cmd/flash.c | 239 +++++++++++++++++++++++++---------------------------
 1 file changed, 117 insertions(+), 122 deletions(-)

diff --git a/cmd/flash.c b/cmd/flash.c
index 819febc10e..594e2caa59 100644
--- a/cmd/flash.c
+++ b/cmd/flash.c
@@ -19,7 +19,7 @@
 int mtdparts_init(void);
 int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num);
 int find_dev_and_part(const char *id, struct mtd_device **dev,
-		u8 *part_num, struct part_info **part);
+		      u8 *part_num, struct part_info **part);
 #endif
 
 #ifdef CONFIG_MTD_NOR_FLASH
@@ -47,34 +47,39 @@ extern flash_info_t flash_info[];	/* info for FLASH chips */
  *			  or an invalid flash bank.
  */
 static int
-abbrev_spec (char *str, flash_info_t ** pinfo, int *psf, int *psl)
+abbrev_spec(char *str, flash_info_t **pinfo, int *psf, int *psl)
 {
 	flash_info_t *fp;
 	int bank, first, last;
 	char *p, *ep;
 
-	if ((p = strchr (str, ':')) == NULL)
+	p = strchr(str, ':');
+	if (!p)
 		return 0;
 	*p++ = '\0';
 
 	bank = dectoul(str, &ep);
 	if (ep == str || *ep != '\0' ||
-		bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS ||
-		(fp = &flash_info[bank - 1])->flash_id == FLASH_UNKNOWN)
+	    bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS)
+		return -1;
+
+	fp = &flash_info[bank - 1];
+	if (fp->flash_id == FLASH_UNKNOWN)
 		return -1;
 
 	str = p;
-	if ((p = strchr (str, '-')) != NULL)
+	p = strchr(str, '-');
+	if (p)
 		*p++ = '\0';
 
 	first = dectoul(str, &ep);
 	if (ep == str || *ep != '\0' || first >= fp->sector_count)
 		return -1;
 
-	if (p != NULL) {
+	if (p) {
 		last = dectoul(p, &ep);
 		if (ep == p || *ep != '\0' ||
-			last < first || last >= fp->sector_count)
+		    last < first || last >= fp->sector_count)
 			return -1;
 	} else {
 		last = first;
@@ -107,11 +112,10 @@ int flash_sect_roundb(ulong *addr)
 				sector_end_addr = info->start[0] +
 								info->size - 1;
 			} else {
-				sector_end_addr = info->start[i+1] - 1;
+				sector_end_addr = info->start[i + 1] - 1;
 			}
 
-			if (*addr <= sector_end_addr &&
-						*addr >= info->start[i]) {
+			if (*addr <= sector_end_addr && *addr >= info->start[i]) {
 				found = 1;
 				/* adjust *addr if necessary */
 				if (*addr < sector_end_addr)
@@ -144,7 +148,7 @@ int flash_sect_roundb(ulong *addr)
  * Return:
  *    1: success
  *   -1: failure (bad format, bad address).
-*/
+ */
 static int
 addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
 {
@@ -156,7 +160,7 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
 		return -1;
 
 	len_used = 0;
-	if (arg2 && *arg2 == '+'){
+	if (arg2 && *arg2 == '+') {
 		len_used = 1;
 		++arg2;
 	}
@@ -165,7 +169,7 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
 	if (ep == arg2 || *ep != '\0')
 		return -1;
 
-	if (len_used){
+	if (len_used) {
 		/*
 		 * *addr_last has the length, compute correct *addr_last
 		 * XXX watch out for the integer overflow! Right now it is
@@ -187,9 +191,9 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
 }
 
 static int
-flash_fill_sect_ranges (ulong addr_first, ulong addr_last,
-			int *s_first, int *s_last,
-			int *s_count )
+flash_fill_sect_ranges(ulong addr_first, ulong addr_last,
+		       int *s_first, int *s_last,
+		       int *s_count)
 {
 	flash_info_t *info;
 	ulong bank;
@@ -197,27 +201,25 @@ flash_fill_sect_ranges (ulong addr_first, ulong addr_last,
 
 	*s_count = 0;
 
-	for (bank=0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
 		s_first[bank] = -1;	/* first sector to erase	*/
-		s_last [bank] = -1;	/* last  sector to erase	*/
+		s_last[bank] = -1;	/* last  sector to erase	*/
 	}
 
-	for (bank=0,info = &flash_info[0];
+	for (bank = 0, info = &flash_info[0];
 	     (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (addr_first <= addr_last);
 	     ++bank, ++info) {
 		ulong b_end;
 		int sect;
 		short s_end;
 
-		if (info->flash_id == FLASH_UNKNOWN) {
+		if (info->flash_id == FLASH_UNKNOWN)
 			continue;
-		}
 
 		b_end = info->start[0] + info->size - 1;	/* bank end addr */
 		s_end = info->sector_count - 1;			/* last sector   */
 
-
-		for (sect=0; sect < info->sector_count; ++sect) {
+		for (sect = 0; sect < info->sector_count; ++sect) {
 			ulong end;	/* last address in current sect	*/
 
 			end = (sect == s_end) ? b_end : info->start[sect + 1] - 1;
@@ -227,40 +229,37 @@ flash_fill_sect_ranges (ulong addr_first, ulong addr_last,
 			if (addr_last < info->start[sect])
 				continue;
 
-			if (addr_first == info->start[sect]) {
+			if (addr_first == info->start[sect])
 				s_first[bank] = sect;
-			}
-			if (addr_last  == end) {
+
+			if (addr_last  == end)
 				s_last[bank]  = sect;
-			}
 		}
 		if (s_first[bank] >= 0) {
 			if (s_last[bank] < 0) {
 				if (addr_last > b_end) {
 					s_last[bank] = s_end;
 				} else {
-					puts ("Error: end address"
-						" not on sector boundary\n");
+					puts("Error: end address not on sector boundary\n");
 					rcode = 1;
 					break;
 				}
 			}
 			if (s_last[bank] < s_first[bank]) {
-				puts ("Error: end sector"
-					" precedes start sector\n");
+				puts("Error: end sector precedes start sector\n");
 				rcode = 1;
 				break;
 			}
 			sect = s_last[bank];
-			addr_first = (sect == s_end) ? b_end + 1: info->start[sect + 1];
+			addr_first = (sect == s_end) ? b_end + 1 : info->start[sect + 1];
 			(*s_count) += s_last[bank] - s_first[bank] + 1;
 		} else if (addr_first >= info->start[0] && addr_first < b_end) {
-			puts ("Error: start address not on sector boundary\n");
+			puts("Error: start address not on sector boundary\n");
 			rcode = 1;
 			break;
 		} else if (s_last[bank] >= 0) {
-			puts ("Error: cannot span across banks when they are"
-			       " mapped in reverse order\n");
+			puts("Error: cannot span across banks when they are"
+			     " mapped in reverse order\n");
 			rcode = 1;
 			break;
 		}
@@ -279,8 +278,8 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
 
 #ifdef CONFIG_MTD_NOR_FLASH
 	if (argc == 1) {	/* print info for all FLASH banks */
-		for (bank=0; bank <CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
-			printf ("\nBank # %ld: ", bank+1);
+		for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+			printf("\nBank # %ld: ", bank + 1);
 
 			flash_print_info(&flash_info[bank]);
 		}
@@ -288,12 +287,12 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
 	}
 
 	bank = hextoul(argv[1], NULL);
-	if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
-		printf ("Only FLASH Banks # 1 ... # %d supported\n",
-			CONFIG_SYS_MAX_FLASH_BANKS);
+	if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
+		printf("Only FLASH Banks # 1 ... # %d supported\n",
+		       CONFIG_SYS_MAX_FLASH_BANKS);
 		return 1;
 	}
-	printf ("\nBank # %ld: ", bank);
+	printf("\nBank # %ld: ", bank);
 	flash_print_info(&flash_info[bank - 1]);
 #endif /* CONFIG_MTD_NOR_FLASH */
 	return 0;
@@ -317,28 +316,29 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
 		return CMD_RET_USAGE;
 
 	if (strcmp(argv[1], "all") == 0) {
-		for (bank=1; bank<=CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
-			printf ("Erase Flash Bank # %ld ", bank);
-			info = &flash_info[bank-1];
+		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+			printf("Erase Flash Bank # %ld ", bank);
+			info = &flash_info[bank - 1];
 			rcode = flash_erase(info, 0, info->sector_count - 1);
 		}
 		return rcode;
 	}
 
-	if ((n = abbrev_spec(argv[1], &info, &sect_first, &sect_last)) != 0) {
+	n = abbrev_spec(argv[1], &info, &sect_first, &sect_last);
+	if (n) {
 		if (n < 0) {
-			puts ("Bad sector specification\n");
+			puts("Bad sector specification\n");
 			return 1;
 		}
-		printf ("Erase Flash Sectors %d-%d in Bank # %zu ",
-			sect_first, sect_last, (info-flash_info)+1);
+		printf("Erase Flash Sectors %d-%d in Bank # %zu ",
+		       sect_first, sect_last, (info - flash_info) + 1);
 		rcode = flash_erase(info, sect_first, sect_last);
 		return rcode;
 	}
 
 #if defined(CONFIG_CMD_MTDPARTS)
 	/* erase <part-id> - erase partition */
-	if ((argc == 2) && (mtd_id_parse(argv[1], NULL, &dev_type, &dev_num) == 0)) {
+	if (argc == 2 && mtd_id_parse(argv[1], NULL, &dev_type, &dev_num) == 0) {
 		mtdparts_init();
 		if (find_dev_and_part(argv[1], &dev, &pnum, &part) == 0) {
 			if (dev->id->type == MTD_DEV_TYPE_NOR) {
@@ -347,10 +347,9 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
 				addr_first = part->offset + info->start[0];
 				addr_last = addr_first + part->size - 1;
 
-				printf ("Erase Flash Partition %s, "
-						"bank %ld, 0x%08lx - 0x%08lx ",
-						argv[1], bank, addr_first,
-						addr_last);
+				printf("Erase Flash Partition %s, bank %ld, 0x%08lx - 0x%08lx ",
+				       argv[1], bank, addr_first,
+				       addr_last);
 
 				rcode = flash_sect_erase(addr_first, addr_last);
 				return rcode;
@@ -367,19 +366,19 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
 
 	if (strcmp(argv[1], "bank") == 0) {
 		bank = hextoul(argv[2], NULL);
-		if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
-			printf ("Only FLASH Banks # 1 ... # %d supported\n",
-				CONFIG_SYS_MAX_FLASH_BANKS);
+		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
+			printf("Only FLASH Banks # 1 ... # %d supported\n",
+			       CONFIG_SYS_MAX_FLASH_BANKS);
 			return 1;
 		}
-		printf ("Erase Flash Bank # %ld ", bank);
-		info = &flash_info[bank-1];
+		printf("Erase Flash Bank # %ld ", bank);
+		info = &flash_info[bank - 1];
 		rcode = flash_erase(info, 0, info->sector_count - 1);
 		return rcode;
 	}
 
-	if (addr_spec(argv[1], argv[2], &addr_first, &addr_last) < 0){
-		printf ("Bad address format\n");
+	if (addr_spec(argv[1], argv[2], &addr_first, &addr_last) < 0) {
+		printf("Bad address format\n");
 		return 1;
 	}
 
@@ -403,14 +402,13 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
 	int planned;
 	int rcode = 0;
 
-	rcode = flash_fill_sect_ranges (addr_first, addr_last,
-					s_first, s_last, &planned );
+	rcode = flash_fill_sect_ranges(addr_first, addr_last, s_first, s_last, &planned);
 
-	if (planned && (rcode == 0)) {
-		for (bank=0,info = &flash_info[0];
-		     (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (rcode == 0);
+	if (planned && rcode == 0) {
+		for (bank = 0, info = &flash_info[0];
+		     bank < CONFIG_SYS_MAX_FLASH_BANKS && rcode == 0;
 		     ++bank, ++info) {
-			if (s_first[bank]>=0) {
+			if (s_first[bank] >= 0) {
 				erased += s_last[bank] - s_first[bank] + 1;
 				debug("Erase Flash from 0x%08lx to 0x%08lx in Bank # %ld ",
 				      info->start[s_first[bank]],
@@ -425,8 +423,7 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
 		if (rcode == 0)
 			printf("Erased %d sectors\n", erased);
 	} else if (rcode == 0) {
-		puts ("Error: start and/or end address"
-			" not on sector boundary\n");
+		puts("Error: start and/or end address not on sector boundary\n");
 		rcode = 1;
 	}
 	return rcode;
@@ -466,50 +463,52 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
 
 #ifdef CONFIG_MTD_NOR_FLASH
 	if (strcmp(argv[2], "all") == 0) {
-		for (bank=1; bank<=CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
-			info = &flash_info[bank-1];
-			if (info->flash_id == FLASH_UNKNOWN) {
+		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+			info = &flash_info[bank - 1];
+			if (info->flash_id == FLASH_UNKNOWN)
 				continue;
-			}
-			printf ("%sProtect Flash Bank # %ld\n",
-				p ? "" : "Un-", bank);
 
-			for (i=0; i<info->sector_count; ++i) {
+			printf("%sProtect Flash Bank # %ld\n",
+			       p ? "" : "Un-", bank);
+
+			for (i = 0; i < info->sector_count; ++i) {
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
 				if (flash_real_protect(info, i, p))
 					rcode = 1;
-				putc ('.');
+				putc('.');
 #else
 				info->protect[i] = p;
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
 			}
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
-			if (!rcode) puts (" done\n");
+			if (!rcode)
+				puts(" done\n");
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
 		}
 		return rcode;
 	}
-
-	if ((n = abbrev_spec(argv[2], &info, &sect_first, &sect_last)) != 0) {
+	n = abbrev_spec(argv[2], &info, &sect_first, &sect_last);
+	if (n) {
 		if (n < 0) {
-			puts ("Bad sector specification\n");
+			puts("Bad sector specification\n");
 			return 1;
 		}
 		printf("%sProtect Flash Sectors %d-%d in Bank # %zu\n",
-			p ? "" : "Un-", sect_first, sect_last,
-			(info-flash_info)+1);
+		       p ? "" : "Un-", sect_first, sect_last,
+		       (info - flash_info) + 1);
 		for (i = sect_first; i <= sect_last; i++) {
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
 			if (flash_real_protect(info, i, p))
 				rcode =  1;
-			putc ('.');
+			putc('.');
 #else
 			info->protect[i] = p;
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
 		}
 
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
-		if (!rcode) puts (" done\n");
+		if (!rcode)
+			puts(" done\n");
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
 
 		return rcode;
@@ -517,7 +516,7 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
 
 #if defined(CONFIG_CMD_MTDPARTS)
 	/* protect on/off <part-id> */
-	if ((argc == 3) && (mtd_id_parse(argv[2], NULL, &dev_type, &dev_num) == 0)) {
+	if (argc == 3 && mtd_id_parse(argv[2], NULL, &dev_type, &dev_num) == 0) {
 		mtdparts_init();
 		if (find_dev_and_part(argv[2], &dev, &pnum, &part) == 0) {
 			if (dev->id->type == MTD_DEV_TYPE_NOR) {
@@ -526,10 +525,10 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
 				addr_first = part->offset + info->start[0];
 				addr_last = addr_first + part->size - 1;
 
-				printf ("%sProtect Flash Partition %s, "
-						"bank %ld, 0x%08lx - 0x%08lx\n",
-						p ? "" : "Un", argv[1],
-						bank, addr_first, addr_last);
+				printf("%sProtect Flash Partition %s, "
+				       "bank %ld, 0x%08lx - 0x%08lx\n",
+				       p ? "" : "Un", argv[1],
+				       bank, addr_first, addr_last);
 
 				rcode = flash_sect_protect(p, addr_first,
 							   addr_last);
@@ -537,7 +536,7 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
 			}
 
 			printf("cannot %sprotect, not a NOR device\n",
-					p ? "" : "un");
+			       p ? "" : "un");
 			return 1;
 		}
 	}
@@ -548,37 +547,38 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
 
 	if (strcmp(argv[2], "bank") == 0) {
 		bank = hextoul(argv[3], NULL);
-		if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
-			printf ("Only FLASH Banks # 1 ... # %d supported\n",
-				CONFIG_SYS_MAX_FLASH_BANKS);
+		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
+			printf("Only FLASH Banks # 1 ... # %d supported\n",
+			       CONFIG_SYS_MAX_FLASH_BANKS);
 			return 1;
 		}
-		printf ("%sProtect Flash Bank # %ld\n",
-			p ? "" : "Un-", bank);
-		info = &flash_info[bank-1];
+		printf("%sProtect Flash Bank # %ld\n",
+		       p ? "" : "Un-", bank);
+		info = &flash_info[bank - 1];
 
 		if (info->flash_id == FLASH_UNKNOWN) {
-			puts ("missing or unknown FLASH type\n");
+			puts("missing or unknown FLASH type\n");
 			return 1;
 		}
-		for (i=0; i<info->sector_count; ++i) {
+		for (i = 0; i < info->sector_count; ++i) {
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
 			if (flash_real_protect(info, i, p))
 				rcode =  1;
-			putc ('.');
+			putc('.');
 #else
 			info->protect[i] = p;
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
 		}
 
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
-		if (!rcode) puts (" done\n");
+		if (!rcode)
+			puts(" done\n");
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
 
 		return rcode;
 	}
 
-	if (addr_spec(argv[2], argv[3], &addr_first, &addr_last) < 0){
+	if (addr_spec(argv[2], argv[3], &addr_first, &addr_last) < 0) {
 		printf("Bad address format\n");
 		return 1;
 	}
@@ -601,26 +601,26 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
 	int planned;
 	int rcode;
 
-	rcode = flash_fill_sect_ranges( addr_first, addr_last, s_first, s_last, &planned );
+	rcode = flash_fill_sect_ranges(addr_first, addr_last, s_first, s_last, &planned);
 
 	protected = 0;
 
-	if (planned && (rcode == 0)) {
-		for (bank=0,info = &flash_info[0]; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
-			if (info->flash_id == FLASH_UNKNOWN) {
+	if (planned && rcode == 0) {
+		for (bank = 0, info = &flash_info[0];
+		     bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
+			if (info->flash_id == FLASH_UNKNOWN)
 				continue;
-			}
 
-			if (s_first[bank]>=0 && s_first[bank]<=s_last[bank]) {
+			if (s_first[bank] >= 0 && s_first[bank] <= s_last[bank]) {
 				debug("%sProtecting sectors %d..%d in bank %ld\n",
 				      p ? "" : "Un-", s_first[bank],
 				      s_last[bank], bank + 1);
 				protected += s_last[bank] - s_first[bank] + 1;
-				for (i=s_first[bank]; i<=s_last[bank]; ++i) {
+				for (i = s_first[bank]; i <= s_last[bank]; ++i) {
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
 					if (flash_real_protect(info, i, p))
 						rcode = 1;
-					putc ('.');
+					putc('.');
 #else
 					info->protect[i] = p;
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
@@ -628,21 +628,19 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
 			}
 		}
 #if defined(CONFIG_SYS_FLASH_PROTECTION)
-		puts (" done\n");
+		puts(" done\n");
 #endif	/* CONFIG_SYS_FLASH_PROTECTION */
 
-		printf ("%sProtected %d sectors\n",
-			p ? "" : "Un-", protected);
+		printf("%sProtected %d sectors\n",
+		       p ? "" : "Un-", protected);
 	} else if (rcode == 0) {
-		puts ("Error: start and/or end address"
-			" not on sector boundary\n");
+		puts("Error: start and/or end address not on sector boundary\n");
 		rcode = 1;
 	}
 	return rcode;
 }
 #endif /* CONFIG_MTD_NOR_FLASH */
 
-
 /**************************************************/
 #if defined(CONFIG_CMD_MTDPARTS)
 # define TMP_ERASE	"erase <part-id>\n    - erase partition\n"
@@ -667,8 +665,7 @@ U_BOOT_CMD(
 	"start end\n"
 	"    - erase FLASH from addr 'start' to addr 'end'\n"
 	"erase start +len\n"
-	"    - erase FLASH from addr 'start' to the end of sect "
-	"w/addr 'start'+'len'-1\n"
+	"    - erase FLASH from addr 'start' to the end of sect w/addr 'start'+'len'-1\n"
 	"erase N:SF[-SL]\n    - erase sectors SF-SL in FLASH bank # N\n"
 	"erase bank N\n    - erase FLASH bank # N\n"
 	TMP_ERASE
@@ -681,8 +678,7 @@ U_BOOT_CMD(
 	"on  start end\n"
 	"    - protect FLASH from addr 'start' to addr 'end'\n"
 	"protect on start +len\n"
-	"    - protect FLASH from addr 'start' to end of sect "
-	"w/addr 'start'+'len'-1\n"
+	"    - protect FLASH from addr 'start' to end of sect w/addr 'start'+'len'-1\n"
 	"protect on  N:SF[-SL]\n"
 	"    - protect sectors SF-SL in FLASH bank # N\n"
 	"protect on  bank N\n    - protect FLASH bank # N\n"
@@ -691,8 +687,7 @@ U_BOOT_CMD(
 	"protect off start end\n"
 	"    - make FLASH from addr 'start' to addr 'end' writable\n"
 	"protect off start +len\n"
-	"    - make FLASH from addr 'start' to end of sect "
-	"w/addr 'start'+'len'-1 wrtable\n"
+	"    - make FLASH from addr 'start' to end of sect w/addr 'start'+'len'-1 wrtable\n"
 	"protect off N:SF[-SL]\n"
 	"    - make sectors SF-SL writable in FLASH bank # N\n"
 	"protect off bank N\n    - make FLASH bank # N writable\n"
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS
  2022-01-04 13:23 [PATCH v1 0/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
  2022-01-04 13:23 ` [PATCH v1 1/5] cmd: Fix up warnings in flash.c Patrick Delaunay
@ 2022-01-04 13:23 ` Patrick Delaunay
  2022-01-05  8:43   ` Stefan Roese
  2022-01-21 19:03   ` Tom Rini
  2022-01-04 13:23 ` [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean Patrick Delaunay
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 17+ messages in thread
From: Patrick Delaunay @ 2022-01-04 13:23 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Simon Glass, Patrick Delaunay, Jagan Teki,
	Lukasz Majewski, Marek Behún, Stefan Roese, Vignesh R,
	U-Boot STM32

Replace CONFIG_SYS_MAX_FLASH_BANKS by CFI_FLASH_BANKS to prepare
Kconfig migration and avoid to redefine CONFIG_SYS_MAX_FLASH_BANKS
in cfi_flash.h.

After this patch CONFIG_SYS_MAX_FLASH_BANKS should be never used in
the cfi code: use CFI_MAX_FLASH_BANKS for struct size or CFI_FLASH_BANKS
for number of CFI banks which can be dynamic.

This patch modify all the files which include mtd/cfi_flash.h.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

Changes in v1:
- update drivers/mtd/spi/spi-nor-core.c for cfi_mtd_nb
  needed after RFC rebase

 cmd/bootm.c                    |  2 +-
 cmd/flash.c                    | 34 +++++++++++++++++-----------------
 common/flash.c                 |  2 +-
 common/update.c                |  4 ++--
 drivers/mtd/cfi_flash.c        |  4 ++--
 drivers/mtd/cfi_mtd.c          |  4 ++--
 drivers/mtd/spi/spi-nor-core.c |  5 ++---
 include/mtd/cfi_flash.h        |  9 ++++++---
 8 files changed, 33 insertions(+), 31 deletions(-)

diff --git a/cmd/bootm.c b/cmd/bootm.c
index b82a872a86..e8b7066888 100644
--- a/cmd/bootm.c
+++ b/cmd/bootm.c
@@ -338,7 +338,7 @@ static int do_imls_nor(void)
 	void *hdr;
 
 	for (i = 0, info = &flash_info[0];
-		i < CONFIG_SYS_MAX_FLASH_BANKS; ++i, ++info) {
+		i < CFI_FLASH_BANKS; ++i, ++info) {
 
 		if (info->flash_id == FLASH_UNKNOWN)
 			goto next_bank;
diff --git a/cmd/flash.c b/cmd/flash.c
index 594e2caa59..db4bb2529c 100644
--- a/cmd/flash.c
+++ b/cmd/flash.c
@@ -60,7 +60,7 @@ abbrev_spec(char *str, flash_info_t **pinfo, int *psf, int *psl)
 
 	bank = dectoul(str, &ep);
 	if (ep == str || *ep != '\0' ||
-	    bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS)
+	    bank < 1 || bank > CFI_FLASH_BANKS)
 		return -1;
 
 	fp = &flash_info[bank - 1];
@@ -104,7 +104,7 @@ int flash_sect_roundb(ulong *addr)
 
 	/* find the end addr of the sector where the *addr is */
 	found = 0;
-	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS && !found; ++bank) {
+	for (bank = 0; bank < CFI_FLASH_BANKS && !found; ++bank) {
 		info = &flash_info[bank];
 		for (i = 0; i < info->sector_count && !found; ++i) {
 			/* get the end address of the sector */
@@ -201,13 +201,13 @@ flash_fill_sect_ranges(ulong addr_first, ulong addr_last,
 
 	*s_count = 0;
 
-	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+	for (bank = 0; bank < CFI_FLASH_BANKS; ++bank) {
 		s_first[bank] = -1;	/* first sector to erase	*/
 		s_last[bank] = -1;	/* last  sector to erase	*/
 	}
 
 	for (bank = 0, info = &flash_info[0];
-	     (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (addr_first <= addr_last);
+	     (bank < CFI_FLASH_BANKS) && (addr_first <= addr_last);
 	     ++bank, ++info) {
 		ulong b_end;
 		int sect;
@@ -278,7 +278,7 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
 
 #ifdef CONFIG_MTD_NOR_FLASH
 	if (argc == 1) {	/* print info for all FLASH banks */
-		for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+		for (bank = 0; bank < CFI_FLASH_BANKS; ++bank) {
 			printf("\nBank # %ld: ", bank + 1);
 
 			flash_print_info(&flash_info[bank]);
@@ -287,9 +287,9 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
 	}
 
 	bank = hextoul(argv[1], NULL);
-	if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
+	if (bank < 1 || bank > CFI_FLASH_BANKS) {
 		printf("Only FLASH Banks # 1 ... # %d supported\n",
-		       CONFIG_SYS_MAX_FLASH_BANKS);
+		       CFI_FLASH_BANKS);
 		return 1;
 	}
 	printf("\nBank # %ld: ", bank);
@@ -316,7 +316,7 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
 		return CMD_RET_USAGE;
 
 	if (strcmp(argv[1], "all") == 0) {
-		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+		for (bank = 1; bank <= CFI_FLASH_BANKS; ++bank) {
 			printf("Erase Flash Bank # %ld ", bank);
 			info = &flash_info[bank - 1];
 			rcode = flash_erase(info, 0, info->sector_count - 1);
@@ -366,9 +366,9 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
 
 	if (strcmp(argv[1], "bank") == 0) {
 		bank = hextoul(argv[2], NULL);
-		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
+		if (bank < 1 || bank > CFI_FLASH_BANKS) {
 			printf("Only FLASH Banks # 1 ... # %d supported\n",
-			       CONFIG_SYS_MAX_FLASH_BANKS);
+			       CFI_FLASH_BANKS);
 			return 1;
 		}
 		printf("Erase Flash Bank # %ld ", bank);
@@ -397,7 +397,7 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
 {
 	flash_info_t *info;
 	ulong bank;
-	int s_first[CONFIG_SYS_MAX_FLASH_BANKS], s_last[CONFIG_SYS_MAX_FLASH_BANKS];
+	int s_first[CFI_FLASH_BANKS], s_last[CFI_FLASH_BANKS];
 	int erased = 0;
 	int planned;
 	int rcode = 0;
@@ -406,7 +406,7 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
 
 	if (planned && rcode == 0) {
 		for (bank = 0, info = &flash_info[0];
-		     bank < CONFIG_SYS_MAX_FLASH_BANKS && rcode == 0;
+		     bank < CFI_FLASH_BANKS && rcode == 0;
 		     ++bank, ++info) {
 			if (s_first[bank] >= 0) {
 				erased += s_last[bank] - s_first[bank] + 1;
@@ -463,7 +463,7 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
 
 #ifdef CONFIG_MTD_NOR_FLASH
 	if (strcmp(argv[2], "all") == 0) {
-		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+		for (bank = 1; bank <= CFI_FLASH_BANKS; ++bank) {
 			info = &flash_info[bank - 1];
 			if (info->flash_id == FLASH_UNKNOWN)
 				continue;
@@ -547,9 +547,9 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
 
 	if (strcmp(argv[2], "bank") == 0) {
 		bank = hextoul(argv[3], NULL);
-		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
+		if (bank < 1 || bank > CFI_FLASH_BANKS) {
 			printf("Only FLASH Banks # 1 ... # %d supported\n",
-			       CONFIG_SYS_MAX_FLASH_BANKS);
+			       CFI_FLASH_BANKS);
 			return 1;
 		}
 		printf("%sProtect Flash Bank # %ld\n",
@@ -596,7 +596,7 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
 {
 	flash_info_t *info;
 	ulong bank;
-	int s_first[CONFIG_SYS_MAX_FLASH_BANKS], s_last[CONFIG_SYS_MAX_FLASH_BANKS];
+	int s_first[CFI_FLASH_BANKS], s_last[CFI_FLASH_BANKS];
 	int protected, i;
 	int planned;
 	int rcode;
@@ -607,7 +607,7 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
 
 	if (planned && rcode == 0) {
 		for (bank = 0, info = &flash_info[0];
-		     bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
+		     bank < CFI_FLASH_BANKS; ++bank, ++info) {
 			if (info->flash_id == FLASH_UNKNOWN)
 				continue;
 
diff --git a/common/flash.c b/common/flash.c
index bb82385c1f..f939c2f9e9 100644
--- a/common/flash.c
+++ b/common/flash.c
@@ -91,7 +91,7 @@ addr2info(ulong addr)
 	flash_info_t *info;
 	int i;
 
-	for (i=0, info = &flash_info[0]; i<CONFIG_SYS_MAX_FLASH_BANKS; ++i, ++info) {
+	for (i = 0, info = &flash_info[0]; i < CFI_FLASH_BANKS; ++i, ++info) {
 		if (info->flash_id != FLASH_UNKNOWN &&
 		    addr >= info->start[0] &&
 		    /* WARNING - The '- 1' is needed if the flash
diff --git a/common/update.c b/common/update.c
index f5c8684f1b..b9ad475d9d 100644
--- a/common/update.c
+++ b/common/update.c
@@ -112,12 +112,12 @@ static int update_flash_protect(int prot, ulong addr_first, ulong addr_last)
 
 	if (prot == 0) {
 		saved_prot_info =
-			calloc(CONFIG_SYS_MAX_FLASH_BANKS * CONFIG_SYS_MAX_FLASH_SECT, 1);
+			calloc(CFI_FLASH_BANKS * CONFIG_SYS_MAX_FLASH_SECT, 1);
 		if (!saved_prot_info)
 			return 1;
 	}
 
-	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
+	for (bank = 0; bank < CFI_FLASH_BANKS; ++bank) {
 		cnt = 0;
 		info = &flash_info[bank];
 
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index 9c27fea5d8..71cefc125f 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -191,7 +191,7 @@ static flash_info_t *flash_get_info(ulong base)
 	int i;
 	flash_info_t *info;
 
-	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
+	for (i = 0; i < CFI_FLASH_BANKS; i++) {
 		info = &flash_info[i];
 		if (info->size && info->start[0] <= base &&
 		    base <= info->start[0] + info->size - 1)
@@ -2419,7 +2419,7 @@ unsigned long flash_init(void)
 #endif
 
 	/* Init: no FLASHes known */
-	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; ++i) {
+	for (i = 0; i < CFI_FLASH_BANKS; ++i) {
 		flash_info[i].flash_id = FLASH_UNKNOWN;
 
 		/* Optionally write flash configuration register */
diff --git a/drivers/mtd/cfi_mtd.c b/drivers/mtd/cfi_mtd.c
index 2295bb7220..f998ffaf26 100644
--- a/drivers/mtd/cfi_mtd.c
+++ b/drivers/mtd/cfi_mtd.c
@@ -207,10 +207,10 @@ int cfi_mtd_init(void)
 	int error, i;
 #ifdef CONFIG_MTD_CONCAT
 	int devices_found = 0;
-	struct mtd_info *mtd_list[CONFIG_SYS_MAX_FLASH_BANKS];
+	struct mtd_info *mtd_list[CFI_FLASH_BANKS];
 #endif
 
-	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
+	for (i = 0; i < CFI_FLASH_BANKS; i++) {
 		fi = &flash_info[i];
 		mtd = &cfi_mtd_info[i];
 
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index 4388a08a90..6acaa84d2b 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -3707,9 +3707,8 @@ int spi_nor_scan(struct spi_nor *nor)
 	int ret;
 	int cfi_mtd_nb = 0;
 
-#ifdef CONFIG_SYS_MAX_FLASH_BANKS
-	cfi_mtd_nb = CONFIG_SYS_MAX_FLASH_BANKS;
-#endif
+	if (IS_ENABLED(CONFIG_FLASH_CFI_MTD))
+		cfi_mtd_nb = CFI_FLASH_BANKS;
 
 	/* Reset SPI protocol for all commands. */
 	nor->reg_proto = SNOR_PROTO_1_1_1;
diff --git a/include/mtd/cfi_flash.h b/include/mtd/cfi_flash.h
index a1af6fc200..d62c8f18fc 100644
--- a/include/mtd/cfi_flash.h
+++ b/include/mtd/cfi_flash.h
@@ -154,21 +154,24 @@ struct cfi_pri_hdr {
 /*
  * CFI_MAX_FLASH_BANKS only used for flash_info struct declaration.
  *
- * Use CONFIG_SYS_MAX_FLASH_BANKS_DETECT if defined
+ * CFI_FLASH_BANKS selects the correct number of available banks =
+ * cfi_flash_num_flash_banks when CONFIG_SYS_MAX_FLASH_BANKS_DETECT is defined
+ * or CONFIG_SYS_MAX_FLASH_BANKS
  */
 #if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
 #define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 /* map to cfi_flash_num_flash_banks only when supported */
 #if IS_ENABLED(CONFIG_FLASH_CFI_DRIVER) && \
     (!IS_ENABLED(CONFIG_SPL_BUILD) || IS_ENABLED(CONFIG_SPL_MTD_SUPPORT))
-#define CONFIG_SYS_MAX_FLASH_BANKS	(cfi_flash_num_flash_banks)
+#define CFI_FLASH_BANKS		(cfi_flash_num_flash_banks)
 /* board code can update this variable before CFI detection */
 extern int cfi_flash_num_flash_banks;
 #else
-#define CONFIG_SYS_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS_DETECT
+#define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #endif
 #else
 #define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS
+#define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS
 #endif
 
 phys_addr_t cfi_flash_bank_addr(int i);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean
  2022-01-04 13:23 [PATCH v1 0/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
  2022-01-04 13:23 ` [PATCH v1 1/5] cmd: Fix up warnings in flash.c Patrick Delaunay
  2022-01-04 13:23 ` [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS Patrick Delaunay
@ 2022-01-04 13:23 ` Patrick Delaunay
  2022-01-05  8:43   ` Stefan Roese
  2022-01-21 19:03   ` Tom Rini
  2022-01-04 13:24 ` [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
  2022-01-04 13:24 ` [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH " Patrick Delaunay
  4 siblings, 2 replies; 17+ messages in thread
From: Patrick Delaunay @ 2022-01-04 13:23 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Simon Glass, Patrick Delaunay, Andes,
	Lukasz Majewski, Marek Vasut, Nobuhiro Iwamatsu, Paul Burton,
	Rick Chen, Stefan Roese, Thomas Chou, Tuomas Tynkkynen,
	U-Boot STM32

Prepare migration to Kconfig.

CONFIG_SYS_MAX_FLASH_BANKS_DETECT becomes boolean and
CONFIG_SYS_MAX_FLASH_BANKS define the MAX size, also used
for detection when CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
(CFI_MAX_FLASH_BANKS = CONFIG_SYS_MAX_FLASH_BANKS).

CONFIG_SYS_MAX_FLASH_BANKS become mandatory when
CONFIG_SYS_MAX_FLASH_BANKS_DETECT is activated.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
---

Changes in v1:
- solve issue in cfi_flash.h, with
  CFI_FLASH_BANKS=CONFIG_SYS_MAX_FLASH_BANKS_DETECT

 drivers/mtd/cfi_flash.c          |  2 +-
 include/configs/3c120_devboard.h |  3 ++-
 include/configs/adp-ae3xx.h      |  4 +---
 include/configs/adp-ag101p.h     |  2 --
 include/configs/ax25-ae350.h     |  4 +---
 include/configs/bmips_bcm6338.h  |  3 ++-
 include/configs/bmips_bcm6348.h  |  3 ++-
 include/configs/bmips_bcm6358.h  |  3 ++-
 include/configs/bmips_bcm6368.h  |  3 ++-
 include/configs/boston.h         |  4 +++-
 include/configs/draak.h          |  3 ++-
 include/configs/ebisu.h          |  3 ++-
 include/configs/j721e_evm.h      |  3 ++-
 include/configs/mccmon6.h        |  3 ++-
 include/configs/qemu-arm.h       |  3 ++-
 include/configs/salvator-x.h     |  3 ++-
 include/configs/ulcb.h           |  3 ++-
 include/mtd/cfi_flash.h          | 10 +++++-----
 18 files changed, 35 insertions(+), 27 deletions(-)

diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index 71cefc125f..aae3ea0d1b 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -96,7 +96,7 @@ static u16 cfi_flash_config_reg(int i)
 }
 
 #if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
-int cfi_flash_num_flash_banks = CONFIG_SYS_MAX_FLASH_BANKS_DETECT;
+int cfi_flash_num_flash_banks = CFI_MAX_FLASH_BANKS;
 #else
 int cfi_flash_num_flash_banks;
 #endif
diff --git a/include/configs/3c120_devboard.h b/include/configs/3c120_devboard.h
index f7ad7efb0d..e52fedcf39 100644
--- a/include/configs/3c120_devboard.h
+++ b/include/configs/3c120_devboard.h
@@ -20,7 +20,8 @@
  * CFI Flash
  */
 #define CONFIG_SYS_CFI_FLASH_STATUS_POLL /* fix amd flash issue */
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	512
 
 /*
diff --git a/include/configs/adp-ae3xx.h b/include/configs/adp-ae3xx.h
index 58e8526048..11eff3852d 100644
--- a/include/configs/adp-ae3xx.h
+++ b/include/configs/adp-ae3xx.h
@@ -156,7 +156,7 @@
 
 /* support JEDEC */
 #ifdef CONFIG_CFI_FLASH
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #endif
 
 /* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
@@ -173,9 +173,7 @@
  * There are 4 banks supported for this Controller,
  * but we have only 1 bank connected to flash on board
  */
-#ifndef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_BANKS	1
-#endif
 #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
 
 /* max number of sectors on one chip */
diff --git a/include/configs/adp-ag101p.h b/include/configs/adp-ag101p.h
index 1022764985..31ef30adc6 100644
--- a/include/configs/adp-ag101p.h
+++ b/include/configs/adp-ag101p.h
@@ -286,9 +286,7 @@
  * There are 4 banks supported for this Controller,
  * but we have only 1 bank connected to flash on board
  */
-#ifndef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_BANKS	1
-#endif
 #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
 
 /* max number of sectors on one chip */
diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
index 1c3f957d32..2ad0d1589c 100644
--- a/include/configs/ax25-ae350.h
+++ b/include/configs/ax25-ae350.h
@@ -80,7 +80,7 @@
 
 /* support JEDEC */
 #ifdef CONFIG_CFI_FLASH
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #endif/* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
 #define PHYS_FLASH_1			0x88000000	/* BANK 0 */
 #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_1
@@ -95,9 +95,7 @@
  * There are 4 banks supported for this Controller,
  * but we have only 1 bank connected to flash on board
 */
-#ifndef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_BANKS	1
-#endif
 #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
 
 /* max number of sectors on one chip */
diff --git a/include/configs/bmips_bcm6338.h b/include/configs/bmips_bcm6338.h
index 6eaca1c31b..b7de3f4058 100644
--- a/include/configs/bmips_bcm6338.h
+++ b/include/configs/bmips_bcm6338.h
@@ -22,6 +22,7 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xbfc00000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS		1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6338_H */
diff --git a/include/configs/bmips_bcm6348.h b/include/configs/bmips_bcm6348.h
index 5bfbcb779b..5ed0eebce4 100644
--- a/include/configs/bmips_bcm6348.h
+++ b/include/configs/bmips_bcm6348.h
@@ -29,6 +29,7 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xbfc00000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS		1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6348_H */
diff --git a/include/configs/bmips_bcm6358.h b/include/configs/bmips_bcm6358.h
index f8c81f698d..829e9f6b17 100644
--- a/include/configs/bmips_bcm6358.h
+++ b/include/configs/bmips_bcm6358.h
@@ -31,6 +31,7 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xbe000000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6358_H */
diff --git a/include/configs/bmips_bcm6368.h b/include/configs/bmips_bcm6368.h
index 7d321e14ff..0952b98473 100644
--- a/include/configs/bmips_bcm6368.h
+++ b/include/configs/bmips_bcm6368.h
@@ -31,6 +31,7 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xb8000000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6368_H */
diff --git a/include/configs/boston.h b/include/configs/boston.h
index cd70e7bd32..7ac044e929 100644
--- a/include/configs/boston.h
+++ b/include/configs/boston.h
@@ -40,7 +40,9 @@
 /*
  * Flash
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT		1024
 
 /*
diff --git a/include/configs/draak.h b/include/configs/draak.h
index d28cc9d336..412c57f150 100644
--- a/include/configs/draak.h
+++ b/include/configs/draak.h
@@ -23,7 +23,8 @@
 #define CONFIG_FLASH_SHOW_PROGRESS	45
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/configs/ebisu.h b/include/configs/ebisu.h
index 081d5e9aaa..87053760e2 100644
--- a/include/configs/ebisu.h
+++ b/include/configs/ebisu.h
@@ -26,7 +26,8 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h
index 10555d1a6c..acac81ad68 100644
--- a/include/configs/j721e_evm.h
+++ b/include/configs/j721e_evm.h
@@ -60,7 +60,8 @@
 #define CONFIG_CQSPI_REF_CLK		133333333
 
 /* HyperFlash related configuration */
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 /* U-Boot general configuration */
 #define EXTRA_ENV_J721E_BOARD_SETTINGS					\
diff --git a/include/configs/mccmon6.h b/include/configs/mccmon6.h
index 11b9ceb547..aa95864516 100644
--- a/include/configs/mccmon6.h
+++ b/include/configs/mccmon6.h
@@ -37,7 +37,8 @@
 #define CONFIG_FLASH_VERIFY
 
 /* NOR Flash MTD */
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
 #define CONFIG_SYS_FLASH_BANKS_SIZES	{ (32 * SZ_1M) }
 
diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
index 1287fd1671..fe958ef3c5 100644
--- a/include/configs/qemu-arm.h
+++ b/include/configs/qemu-arm.h
@@ -42,7 +42,8 @@
 #define CONFIG_SYS_CBSIZE 512
 
 #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	2
+#define CONFIG_SYS_MAX_FLASH_BANKS	2
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256 /* Sector: 256K, Bank: 64M */
 #define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
 
diff --git a/include/configs/salvator-x.h b/include/configs/salvator-x.h
index c29b34e231..da3e2c8856 100644
--- a/include/configs/salvator-x.h
+++ b/include/configs/salvator-x.h
@@ -24,7 +24,8 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/configs/ulcb.h b/include/configs/ulcb.h
index bdd6b4b0d9..c22c30c86f 100644
--- a/include/configs/ulcb.h
+++ b/include/configs/ulcb.h
@@ -24,7 +24,8 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/mtd/cfi_flash.h b/include/mtd/cfi_flash.h
index d62c8f18fc..d4aeea7e46 100644
--- a/include/mtd/cfi_flash.h
+++ b/include/mtd/cfi_flash.h
@@ -158,19 +158,19 @@ struct cfi_pri_hdr {
  * cfi_flash_num_flash_banks when CONFIG_SYS_MAX_FLASH_BANKS_DETECT is defined
  * or CONFIG_SYS_MAX_FLASH_BANKS
  */
+#define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS
+
 #if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
-#define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 /* map to cfi_flash_num_flash_banks only when supported */
 #if IS_ENABLED(CONFIG_FLASH_CFI_DRIVER) && \
     (!IS_ENABLED(CONFIG_SPL_BUILD) || IS_ENABLED(CONFIG_SPL_MTD_SUPPORT))
 #define CFI_FLASH_BANKS		(cfi_flash_num_flash_banks)
 /* board code can update this variable before CFI detection */
 extern int cfi_flash_num_flash_banks;
-#else
-#define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #endif
-#else
-#define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS
+#endif
+/* default when bank detection is not supported */
+#ifndef CFI_FLASH_BANKS
 #define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS
 #endif
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig
  2022-01-04 13:23 [PATCH v1 0/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
                   ` (2 preceding siblings ...)
  2022-01-04 13:23 ` [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean Patrick Delaunay
@ 2022-01-04 13:24 ` Patrick Delaunay
  2022-01-05  8:43   ` Stefan Roese
  2022-01-21 19:03   ` Tom Rini
  2022-01-04 13:24 ` [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH " Patrick Delaunay
  4 siblings, 2 replies; 17+ messages in thread
From: Patrick Delaunay @ 2022-01-04 13:24 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Simon Glass, Patrick Delaunay, Aaron Williams,
	Adam Ford, Aleksandar Gerasimovski, Alison Wang, Andes,
	Andrew F. Davis, Angelo Dureghello, Ashish Kumar, Bin Meng,
	Chee Hong Ang, Chin-Liang See, Christophe Leroy,
	Dalon Westergreen, Daniel Schwierzeck, David Feng, Dinh Nguyen,
	Dirk Eibach, Eugen Hristev, Fabio Estevam, Heiko Schocher,
	Heinrich Schuchardt, Igor Opaniuk, Ilko Iliev, Jassi Brar,
	Jens Scharsig, Kamil Lulko, Kristian Amlie, Liviu Dudau,
	Lukasz Majewski, Marek Behún, Marek Vasut,
	Masakazu Mochizuki, Masami Hiramatsu, Max Filippov,
	Michael Walle, Michal Simek, Mingkai Hu, Niel Fourie,
	Nobuhiro Iwamatsu, Patrice Chotard, Paul Burton, Peng Fan,
	Priyanka Jain, Qiang Zhao, Rainer Boschung, Rajesh Bhagat,
	Rasmus Villemoes, Rick Chen, Ruchika Gupta, Sean Anderson,
	Shengzhou Liu, Siew Chin Lim, Simon Guinot, Sinan Akman,
	Stefan Roese, Stelian Pop, Tetsuyuki Kobayashi, Thomas Chou,
	Thomas Fitzsimmons, TsiChung Liew, Tuomas Tynkkynen, Usama Arif,
	Vikas Manocha, Vladimir Zapolskiy, Wolfgang Denk,
	Wolfgang Wegner, egnite GmbH, uboot-stm32,
	Álvaro Fernández Rojas

Use moveconfig.py script to convert define CONFIG_SYS_MAX_FLASH_BANKS
and CONFIG_SYS_MAX_FLASH_BANKS_DETECT to Kconfig and move these entries
to defconfigs.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

 README                                       |  3 ---
 configs/3c120_defconfig                      |  1 +
 configs/M5253DEMO_defconfig                  |  1 +
 configs/MPC8548CDS_36BIT_defconfig           |  1 +
 configs/MPC8548CDS_defconfig                 |  1 +
 configs/MPC8548CDS_legacy_defconfig          |  1 +
 configs/P3041DS_NAND_defconfig               |  1 +
 configs/P3041DS_SDCARD_defconfig             |  1 +
 configs/P3041DS_SPIFLASH_defconfig           |  1 +
 configs/P3041DS_defconfig                    |  1 +
 configs/P4080DS_SDCARD_defconfig             |  1 +
 configs/P4080DS_SPIFLASH_defconfig           |  1 +
 configs/P4080DS_defconfig                    |  1 +
 configs/P5040DS_NAND_defconfig               |  1 +
 configs/P5040DS_SDCARD_defconfig             |  1 +
 configs/P5040DS_SPIFLASH_defconfig           |  1 +
 configs/P5040DS_defconfig                    |  1 +
 configs/T1042D4RDB_NAND_defconfig            |  1 +
 configs/T1042D4RDB_SDCARD_defconfig          |  1 +
 configs/T1042D4RDB_SPIFLASH_defconfig        |  1 +
 configs/T1042D4RDB_defconfig                 |  1 +
 configs/T2080QDS_NAND_defconfig              |  1 +
 configs/T2080QDS_SDCARD_defconfig            |  1 +
 configs/T2080QDS_SECURE_BOOT_defconfig       |  1 +
 configs/T2080QDS_SPIFLASH_defconfig          |  1 +
 configs/T2080QDS_defconfig                   |  1 +
 configs/T4240RDB_SDCARD_defconfig            |  1 +
 configs/T4240RDB_defconfig                   |  1 +
 configs/boston32r2_defconfig                 |  1 +
 configs/boston32r2el_defconfig               |  1 +
 configs/boston32r6_defconfig                 |  1 +
 configs/boston32r6el_defconfig               |  1 +
 configs/boston64r2_defconfig                 |  1 +
 configs/boston64r2el_defconfig               |  1 +
 configs/boston64r6_defconfig                 |  1 +
 configs/boston64r6el_defconfig               |  1 +
 configs/cobra5272_defconfig                  |  1 +
 configs/comtrend_ct5361_ram_defconfig        |  1 +
 configs/comtrend_wap5813n_ram_defconfig      |  1 +
 configs/ethernut5_defconfig                  |  1 +
 configs/huawei_hg556a_ram_defconfig          |  1 +
 configs/j7200_evm_a72_defconfig              |  1 +
 configs/j7200_evm_r5_defconfig               |  1 +
 configs/j721e_evm_a72_defconfig              |  1 +
 configs/j721e_hs_evm_a72_defconfig           |  1 +
 configs/ls1021aqds_ddr4_nor_defconfig        |  1 +
 configs/ls1021aqds_ddr4_nor_lpuart_defconfig |  1 +
 configs/ls1021aqds_nand_defconfig            |  1 +
 configs/ls1021aqds_nor_SECURE_BOOT_defconfig |  1 +
 configs/ls1021aqds_nor_defconfig             |  1 +
 configs/ls1021aqds_nor_lpuart_defconfig      |  1 +
 configs/ls1021aqds_sdcard_ifc_defconfig      |  1 +
 configs/ls1046aqds_SECURE_BOOT_defconfig     |  1 +
 configs/ls1046aqds_defconfig                 |  1 +
 configs/ls1046aqds_lpuart_defconfig          |  1 +
 configs/ls1046aqds_nand_defconfig            |  1 +
 configs/ls1046aqds_sdcard_ifc_defconfig      |  1 +
 configs/ls1046aqds_tfa_SECURE_BOOT_defconfig |  1 +
 configs/ls1046aqds_tfa_defconfig             |  1 +
 configs/ls1088aqds_defconfig                 |  1 +
 configs/ls1088aqds_sdcard_ifc_defconfig      |  1 +
 configs/ls1088aqds_tfa_defconfig             |  1 +
 configs/ls2080aqds_SECURE_BOOT_defconfig     |  1 +
 configs/ls2080aqds_defconfig                 |  1 +
 configs/ls2088aqds_tfa_defconfig             |  1 +
 configs/qemu_arm64_defconfig                 |  2 ++
 configs/qemu_arm_defconfig                   |  2 ++
 configs/r8a77990_ebisu_defconfig             |  1 +
 configs/r8a77995_draak_defconfig             |  1 +
 configs/rcar3_salvator-x_defconfig           |  1 +
 configs/rcar3_ulcb_defconfig                 |  1 +
 configs/sfr_nb4-ser_ram_defconfig            |  1 +
 configs/socrates_defconfig                   |  1 +
 drivers/mtd/Kconfig                          | 27 ++++++++++++++++++++
 include/configs/10m50_devboard.h             |  1 -
 include/configs/3c120_devboard.h             |  2 --
 include/configs/M5208EVBE.h                  |  1 -
 include/configs/M5235EVB.h                   |  1 -
 include/configs/M5249EVB.h                   |  1 -
 include/configs/M5253DEMO.h                  |  1 -
 include/configs/M5272C3.h                    |  1 -
 include/configs/M5275EVB.h                   |  1 -
 include/configs/M5282EVB.h                   |  1 -
 include/configs/M53017EVB.h                  |  1 -
 include/configs/M5329EVB.h                   |  1 -
 include/configs/M5373EVB.h                   |  1 -
 include/configs/MCR3000.h                    |  1 -
 include/configs/MPC837XERDB.h                |  1 -
 include/configs/MPC8540ADS.h                 |  1 -
 include/configs/MPC8548CDS.h                 |  1 -
 include/configs/MPC8560ADS.h                 |  1 -
 include/configs/P1010RDB.h                   |  1 -
 include/configs/P2041RDB.h                   |  1 -
 include/configs/T102xRDB.h                   |  1 -
 include/configs/T104xRDB.h                   |  1 -
 include/configs/T208xQDS.h                   |  1 -
 include/configs/T208xRDB.h                   |  1 -
 include/configs/T4240RDB.h                   |  1 -
 include/configs/adp-ae3xx.h                  |  4 ---
 include/configs/adp-ag101p.h                 |  1 -
 include/configs/am335x_evm.h                 |  1 -
 include/configs/am3517_evm.h                 |  1 -
 include/configs/amcore.h                     |  1 -
 include/configs/armadillo-800eva.h           |  1 -
 include/configs/astro_mcf5373l.h             |  1 -
 include/configs/at91sam9263ek.h              |  1 -
 include/configs/ax25-ae350.h                 |  4 ---
 include/configs/bcm7445.h                    |  2 --
 include/configs/blanche.h                    |  1 -
 include/configs/bmips_bcm6338.h              |  2 --
 include/configs/bmips_bcm6348.h              |  2 --
 include/configs/bmips_bcm6358.h              |  2 --
 include/configs/bmips_bcm6368.h              |  2 --
 include/configs/boston.h                     |  2 --
 include/configs/cobra5272.h                  |  1 -
 include/configs/colibri_pxa270.h             |  1 -
 include/configs/corenet_ds.h                 |  1 -
 include/configs/da850evm.h                   |  1 -
 include/configs/devkit3250.h                 |  1 -
 include/configs/dra7xx_evm.h                 |  1 -
 include/configs/draak.h                      |  2 --
 include/configs/eb_cpu5282.h                 |  1 -
 include/configs/ebisu.h                      |  2 --
 include/configs/edminiv2.h                   |  1 -
 include/configs/ethernut5.h                  |  1 -
 include/configs/gazerbeam.h                  |  1 -
 include/configs/ids8313.h                    |  1 -
 include/configs/imx27lite-common.h           |  1 -
 include/configs/integrator-common.h          |  1 -
 include/configs/j721e_evm.h                  |  2 --
 include/configs/km/km-mpc83xx.h              |  1 -
 include/configs/km/pg-wcom-ls102xa.h         |  1 -
 include/configs/kmcent2.h                    |  1 -
 include/configs/kzm9g.h                      |  1 -
 include/configs/ls1021aqds.h                 |  1 -
 include/configs/ls1021atwr.h                 |  1 -
 include/configs/ls1043aqds.h                 |  1 -
 include/configs/ls1043ardb.h                 |  1 -
 include/configs/ls1046aqds.h                 |  1 -
 include/configs/ls1088aqds.h                 |  1 -
 include/configs/ls1088ardb.h                 |  1 -
 include/configs/ls2080aqds.h                 |  1 -
 include/configs/ls2080ardb.h                 |  1 -
 include/configs/lsxl.h                       |  1 -
 include/configs/malta.h                      |  1 -
 include/configs/mccmon6.h                    |  2 --
 include/configs/microblaze-generic.h         |  1 -
 include/configs/mx6sabreauto.h               |  1 -
 include/configs/octeon_ebb7304.h             |  1 -
 include/configs/omap3_logic.h                |  1 -
 include/configs/p1_p2_rdb_pc.h               |  2 --
 include/configs/pm9261.h                     |  1 -
 include/configs/pm9263.h                     |  1 -
 include/configs/qemu-arm.h                   |  2 --
 include/configs/qemu-riscv.h                 |  2 --
 include/configs/r2dplus.h                    |  1 -
 include/configs/salvator-x.h                 |  2 --
 include/configs/sama5d3xek.h                 |  1 -
 include/configs/socfpga_arria10_socdk.h      |  1 -
 include/configs/socfpga_soc64_common.h       |  1 -
 include/configs/socrates.h                   |  1 -
 include/configs/stih410-b2260.h              |  2 --
 include/configs/stm32f429-discovery.h        |  1 -
 include/configs/stm32f429-evaluation.h       |  1 -
 include/configs/stm32f469-discovery.h        |  1 -
 include/configs/stm32f746-disco.h            |  1 -
 include/configs/synquacer.h                  |  1 -
 include/configs/total_compute.h              |  1 -
 include/configs/ulcb.h                       |  2 --
 include/configs/vexpress_aemv8a.h            |  1 -
 include/configs/vexpress_common.h            |  1 -
 include/configs/xtfpga.h                     |  1 -
 include/configs/zynq-common.h                |  1 -
 scripts/config_whitelist.txt                 |  2 --
 174 files changed, 101 insertions(+), 127 deletions(-)

diff --git a/README b/README
index 77782d0ae7..05249e07cd 100644
--- a/README
+++ b/README
@@ -2157,9 +2157,6 @@ Configuration Settings:
 		Enables allocating and saving a kernel copy of the bd_info in
 		space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
 
-- CONFIG_SYS_MAX_FLASH_BANKS:
-		Max number of Flash memory banks
-
 - CONFIG_SYS_MAX_FLASH_SECT:
 		Max number of sectors on a Flash chip
 
diff --git a/configs/3c120_defconfig b/configs/3c120_defconfig
index 1b7c795570..e7911f0a15 100644
--- a/configs/3c120_defconfig
+++ b/configs/3c120_defconfig
@@ -35,6 +35,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_PHY_MARVELL=y
 CONFIG_DM_ETH=y
 CONFIG_PHY_GIGE=y
diff --git a/configs/M5253DEMO_defconfig b/configs/M5253DEMO_defconfig
index 423e2f75ac..67f9875829 100644
--- a/configs/M5253DEMO_defconfig
+++ b/configs/M5253DEMO_defconfig
@@ -26,4 +26,5 @@ CONFIG_SYS_FSL_I2C_OFFSET=0x280
 CONFIG_SYS_I2C_SLAVE=0x7F
 CONFIG_SYS_I2C_SPEED=80000
 CONFIG_MTD_NOR_FLASH=y
+CONFIG_USE_SYS_MAX_FLASH_BANKS=y
 CONFIG_MCFUART=y
diff --git a/configs/MPC8548CDS_36BIT_defconfig b/configs/MPC8548CDS_36BIT_defconfig
index e2afcdee7c..d6351d5b11 100644
--- a/configs/MPC8548CDS_36BIT_defconfig
+++ b/configs/MPC8548CDS_36BIT_defconfig
@@ -52,6 +52,7 @@ CONFIG_SYS_I2C_EEPROM_ADDR=0x57
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_PHY_ATHEROS=y
 CONFIG_PHY_BROADCOM=y
 CONFIG_PHY_DAVICOM=y
diff --git a/configs/MPC8548CDS_defconfig b/configs/MPC8548CDS_defconfig
index e8f44cfcd4..da0b80b09d 100644
--- a/configs/MPC8548CDS_defconfig
+++ b/configs/MPC8548CDS_defconfig
@@ -51,6 +51,7 @@ CONFIG_SYS_I2C_EEPROM_ADDR=0x57
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_PHY_ATHEROS=y
 CONFIG_PHY_BROADCOM=y
 CONFIG_PHY_DAVICOM=y
diff --git a/configs/MPC8548CDS_legacy_defconfig b/configs/MPC8548CDS_legacy_defconfig
index 577385d60e..87d1fd716c 100644
--- a/configs/MPC8548CDS_legacy_defconfig
+++ b/configs/MPC8548CDS_legacy_defconfig
@@ -51,6 +51,7 @@ CONFIG_SYS_I2C_EEPROM_ADDR=0x57
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_PHY_ATHEROS=y
 CONFIG_PHY_BROADCOM=y
 CONFIG_PHY_DAVICOM=y
diff --git a/configs/P3041DS_NAND_defconfig b/configs/P3041DS_NAND_defconfig
index 29a968d9a3..fb8d87d654 100644
--- a/configs/P3041DS_NAND_defconfig
+++ b/configs/P3041DS_NAND_defconfig
@@ -63,6 +63,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_ELBC=y
 CONFIG_DM_SPI_FLASH=y
diff --git a/configs/P3041DS_SDCARD_defconfig b/configs/P3041DS_SDCARD_defconfig
index 72c3b7af29..c9bd30c5fa 100644
--- a/configs/P3041DS_SDCARD_defconfig
+++ b/configs/P3041DS_SDCARD_defconfig
@@ -61,6 +61,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P3041DS_SPIFLASH_defconfig b/configs/P3041DS_SPIFLASH_defconfig
index abb9ce611d..7f7e5da20b 100644
--- a/configs/P3041DS_SPIFLASH_defconfig
+++ b/configs/P3041DS_SPIFLASH_defconfig
@@ -62,6 +62,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P3041DS_defconfig b/configs/P3041DS_defconfig
index 39dd70888c..cdb6687737 100644
--- a/configs/P3041DS_defconfig
+++ b/configs/P3041DS_defconfig
@@ -57,6 +57,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P4080DS_SDCARD_defconfig b/configs/P4080DS_SDCARD_defconfig
index bd66e31fe1..09491bae6c 100644
--- a/configs/P4080DS_SDCARD_defconfig
+++ b/configs/P4080DS_SDCARD_defconfig
@@ -60,6 +60,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P4080DS_SPIFLASH_defconfig b/configs/P4080DS_SPIFLASH_defconfig
index 79f51c91d4..e23d10dc96 100644
--- a/configs/P4080DS_SPIFLASH_defconfig
+++ b/configs/P4080DS_SPIFLASH_defconfig
@@ -61,6 +61,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P4080DS_defconfig b/configs/P4080DS_defconfig
index 43f16d45e2..cfda36d2b5 100644
--- a/configs/P4080DS_defconfig
+++ b/configs/P4080DS_defconfig
@@ -56,6 +56,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P5040DS_NAND_defconfig b/configs/P5040DS_NAND_defconfig
index 6f31034573..c6e4485a41 100644
--- a/configs/P5040DS_NAND_defconfig
+++ b/configs/P5040DS_NAND_defconfig
@@ -64,6 +64,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_ELBC=y
 CONFIG_DM_SPI_FLASH=y
diff --git a/configs/P5040DS_SDCARD_defconfig b/configs/P5040DS_SDCARD_defconfig
index 0a881d8417..e92f447704 100644
--- a/configs/P5040DS_SDCARD_defconfig
+++ b/configs/P5040DS_SDCARD_defconfig
@@ -61,6 +61,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P5040DS_SPIFLASH_defconfig b/configs/P5040DS_SPIFLASH_defconfig
index 0e4a5457ef..3f62ebf6eb 100644
--- a/configs/P5040DS_SPIFLASH_defconfig
+++ b/configs/P5040DS_SPIFLASH_defconfig
@@ -62,6 +62,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/P5040DS_defconfig b/configs/P5040DS_defconfig
index d614917385..83fb71ebfc 100644
--- a/configs/P5040DS_defconfig
+++ b/configs/P5040DS_defconfig
@@ -57,6 +57,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/T1042D4RDB_NAND_defconfig b/configs/T1042D4RDB_NAND_defconfig
index ca22e1e4f2..93a22581db 100644
--- a/configs/T1042D4RDB_NAND_defconfig
+++ b/configs/T1042D4RDB_NAND_defconfig
@@ -75,6 +75,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/T1042D4RDB_SDCARD_defconfig b/configs/T1042D4RDB_SDCARD_defconfig
index b9f7992d35..c287d4e4e4 100644
--- a/configs/T1042D4RDB_SDCARD_defconfig
+++ b/configs/T1042D4RDB_SDCARD_defconfig
@@ -74,6 +74,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_STMICRO=y
diff --git a/configs/T1042D4RDB_SPIFLASH_defconfig b/configs/T1042D4RDB_SPIFLASH_defconfig
index f8e2b6d2ee..056d0bf12e 100644
--- a/configs/T1042D4RDB_SPIFLASH_defconfig
+++ b/configs/T1042D4RDB_SPIFLASH_defconfig
@@ -76,6 +76,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_STMICRO=y
diff --git a/configs/T1042D4RDB_defconfig b/configs/T1042D4RDB_defconfig
index 4797f2907f..10e943bf8b 100644
--- a/configs/T1042D4RDB_defconfig
+++ b/configs/T1042D4RDB_defconfig
@@ -59,6 +59,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_STMICRO=y
diff --git a/configs/T2080QDS_NAND_defconfig b/configs/T2080QDS_NAND_defconfig
index ba07ce8feb..009393b7bc 100644
--- a/configs/T2080QDS_NAND_defconfig
+++ b/configs/T2080QDS_NAND_defconfig
@@ -78,6 +78,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/T2080QDS_SDCARD_defconfig b/configs/T2080QDS_SDCARD_defconfig
index bf5410b344..347fa52c1b 100644
--- a/configs/T2080QDS_SDCARD_defconfig
+++ b/configs/T2080QDS_SDCARD_defconfig
@@ -77,6 +77,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_EON=y
diff --git a/configs/T2080QDS_SECURE_BOOT_defconfig b/configs/T2080QDS_SECURE_BOOT_defconfig
index 3165b9090a..79a3aad527 100644
--- a/configs/T2080QDS_SECURE_BOOT_defconfig
+++ b/configs/T2080QDS_SECURE_BOOT_defconfig
@@ -61,6 +61,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_EON=y
diff --git a/configs/T2080QDS_SPIFLASH_defconfig b/configs/T2080QDS_SPIFLASH_defconfig
index 367416f337..950932cdc0 100644
--- a/configs/T2080QDS_SPIFLASH_defconfig
+++ b/configs/T2080QDS_SPIFLASH_defconfig
@@ -79,6 +79,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_EON=y
diff --git a/configs/T2080QDS_defconfig b/configs/T2080QDS_defconfig
index db9e970e64..16a1783884 100644
--- a/configs/T2080QDS_defconfig
+++ b/configs/T2080QDS_defconfig
@@ -62,6 +62,7 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_EON=y
diff --git a/configs/T4240RDB_SDCARD_defconfig b/configs/T4240RDB_SDCARD_defconfig
index 526c474955..5518010ca8 100644
--- a/configs/T4240RDB_SDCARD_defconfig
+++ b/configs/T4240RDB_SDCARD_defconfig
@@ -68,6 +68,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SST=y
diff --git a/configs/T4240RDB_defconfig b/configs/T4240RDB_defconfig
index bbaab35fd8..bc0e8bd46b 100644
--- a/configs/T4240RDB_defconfig
+++ b/configs/T4240RDB_defconfig
@@ -53,6 +53,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=10000000
 CONFIG_SPI_FLASH_SST=y
diff --git a/configs/boston32r2_defconfig b/configs/boston32r2_defconfig
index af99eecbae..459455733d 100644
--- a/configs/boston32r2_defconfig
+++ b/configs/boston32r2_defconfig
@@ -41,6 +41,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/boston32r2el_defconfig b/configs/boston32r2el_defconfig
index 380e3ddc49..20ba015cf5 100644
--- a/configs/boston32r2el_defconfig
+++ b/configs/boston32r2el_defconfig
@@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/boston32r6_defconfig b/configs/boston32r6_defconfig
index 29ba6813eb..f2fe854d07 100644
--- a/configs/boston32r6_defconfig
+++ b/configs/boston32r6_defconfig
@@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/boston32r6el_defconfig b/configs/boston32r6el_defconfig
index e78bb119d4..9118596d6b 100644
--- a/configs/boston32r6el_defconfig
+++ b/configs/boston32r6el_defconfig
@@ -43,6 +43,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/boston64r2_defconfig b/configs/boston64r2_defconfig
index b8724e9577..6794eb85c7 100644
--- a/configs/boston64r2_defconfig
+++ b/configs/boston64r2_defconfig
@@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/boston64r2el_defconfig b/configs/boston64r2el_defconfig
index e055a30b95..78048843c6 100644
--- a/configs/boston64r2el_defconfig
+++ b/configs/boston64r2el_defconfig
@@ -43,6 +43,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/boston64r6_defconfig b/configs/boston64r6_defconfig
index 118a0f8b7c..35d0440f8d 100644
--- a/configs/boston64r6_defconfig
+++ b/configs/boston64r6_defconfig
@@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/boston64r6el_defconfig b/configs/boston64r6el_defconfig
index e8d2c15b55..99004d8fea 100644
--- a/configs/boston64r6el_defconfig
+++ b/configs/boston64r6el_defconfig
@@ -43,6 +43,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PCH_GBE=y
 CONFIG_PCI=y
diff --git a/configs/cobra5272_defconfig b/configs/cobra5272_defconfig
index ff81f76b88..4fc3b0a541 100644
--- a/configs/cobra5272_defconfig
+++ b/configs/cobra5272_defconfig
@@ -43,6 +43,7 @@ CONFIG_SYS_BR7_PRELIM_BOOL=y
 CONFIG_SYS_BR7_PRELIM=0x701
 CONFIG_SYS_OR7_PRELIM=0xFF00007C
 CONFIG_MTD_NOR_FLASH=y
+CONFIG_USE_SYS_MAX_FLASH_BANKS=y
 CONFIG_DM_ETH=y
 CONFIG_MCFFEC=y
 CONFIG_MII=y
diff --git a/configs/comtrend_ct5361_ram_defconfig b/configs/comtrend_ct5361_ram_defconfig
index 647031014a..d37f9bde1e 100644
--- a/configs/comtrend_ct5361_ram_defconfig
+++ b/configs/comtrend_ct5361_ram_defconfig
@@ -47,6 +47,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_PHY_FIXED=y
 CONFIG_DM_ETH=y
 CONFIG_BCM6348_ETH=y
diff --git a/configs/comtrend_wap5813n_ram_defconfig b/configs/comtrend_wap5813n_ram_defconfig
index 8864a13424..198f13b2f7 100644
--- a/configs/comtrend_wap5813n_ram_defconfig
+++ b/configs/comtrend_wap5813n_ram_defconfig
@@ -47,6 +47,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_PHY_GIGE=y
 CONFIG_BCM6368_ETH=y
diff --git a/configs/ethernut5_defconfig b/configs/ethernut5_defconfig
index 1821b23ed5..5d98318aab 100644
--- a/configs/ethernut5_defconfig
+++ b/configs/ethernut5_defconfig
@@ -66,6 +66,7 @@ CONFIG_SYS_I2C_SOFT_SLAVE=0
 CONFIG_GENERIC_ATMEL_MCI=y
 CONFIG_MTD=y
 CONFIG_MTD_NOR_FLASH=y
+CONFIG_USE_SYS_MAX_FLASH_BANKS=y
 CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
 CONFIG_NAND_ATMEL=y
diff --git a/configs/huawei_hg556a_ram_defconfig b/configs/huawei_hg556a_ram_defconfig
index 81a412bed7..1a0a13a7ea 100644
--- a/configs/huawei_hg556a_ram_defconfig
+++ b/configs/huawei_hg556a_ram_defconfig
@@ -47,6 +47,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_PHY_FIXED=y
 CONFIG_DM_ETH=y
 CONFIG_BCM6348_ETH=y
diff --git a/configs/j7200_evm_a72_defconfig b/configs/j7200_evm_a72_defconfig
index f38d77cd6d..eb1d7d46b8 100644
--- a/configs/j7200_evm_a72_defconfig
+++ b/configs/j7200_evm_a72_defconfig
@@ -135,6 +135,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_HBMC_AM654=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
diff --git a/configs/j7200_evm_r5_defconfig b/configs/j7200_evm_r5_defconfig
index aeb76e8023..1ff5cc91ca 100644
--- a/configs/j7200_evm_r5_defconfig
+++ b/configs/j7200_evm_r5_defconfig
@@ -105,6 +105,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_HBMC_AM654=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_SFDP_SUPPORT=y
 CONFIG_SPI_FLASH_STMICRO=y
diff --git a/configs/j721e_evm_a72_defconfig b/configs/j721e_evm_a72_defconfig
index 53528dfbc6..2e45273903 100644
--- a/configs/j721e_evm_a72_defconfig
+++ b/configs/j721e_evm_a72_defconfig
@@ -131,6 +131,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_HBMC_AM654=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
diff --git a/configs/j721e_hs_evm_a72_defconfig b/configs/j721e_hs_evm_a72_defconfig
index ad51c1118b..ae184b0358 100644
--- a/configs/j721e_hs_evm_a72_defconfig
+++ b/configs/j721e_hs_evm_a72_defconfig
@@ -114,6 +114,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_HBMC_AM654=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
diff --git a/configs/ls1021aqds_ddr4_nor_defconfig b/configs/ls1021aqds_ddr4_nor_defconfig
index 79ccc41a43..afd93187bc 100644
--- a/configs/ls1021aqds_ddr4_nor_defconfig
+++ b/configs/ls1021aqds_ddr4_nor_defconfig
@@ -66,6 +66,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
index 0a2a076332..b27c67b2a3 100644
--- a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
+++ b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
@@ -67,6 +67,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1021aqds_nand_defconfig b/configs/ls1021aqds_nand_defconfig
index 0b12f100d4..915579a12a 100644
--- a/configs/ls1021aqds_nand_defconfig
+++ b/configs/ls1021aqds_nand_defconfig
@@ -88,6 +88,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
 CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y
diff --git a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
index 63930e4a13..5ab7d2785f 100644
--- a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
+++ b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
@@ -65,6 +65,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1021aqds_nor_defconfig b/configs/ls1021aqds_nor_defconfig
index f4e2274fb8..934d44fbde 100644
--- a/configs/ls1021aqds_nor_defconfig
+++ b/configs/ls1021aqds_nor_defconfig
@@ -67,6 +67,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1021aqds_nor_lpuart_defconfig b/configs/ls1021aqds_nor_lpuart_defconfig
index 0eacaa3354..1cf208631c 100644
--- a/configs/ls1021aqds_nor_lpuart_defconfig
+++ b/configs/ls1021aqds_nor_lpuart_defconfig
@@ -68,6 +68,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1021aqds_sdcard_ifc_defconfig b/configs/ls1021aqds_sdcard_ifc_defconfig
index fa190a7502..db8a3ae9ec 100644
--- a/configs/ls1021aqds_sdcard_ifc_defconfig
+++ b/configs/ls1021aqds_sdcard_ifc_defconfig
@@ -85,6 +85,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1046aqds_SECURE_BOOT_defconfig b/configs/ls1046aqds_SECURE_BOOT_defconfig
index 55426320d8..6a0c951ed0 100644
--- a/configs/ls1046aqds_SECURE_BOOT_defconfig
+++ b/configs/ls1046aqds_SECURE_BOOT_defconfig
@@ -62,6 +62,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1046aqds_defconfig b/configs/ls1046aqds_defconfig
index f136aeafae..507d24ec8f 100644
--- a/configs/ls1046aqds_defconfig
+++ b/configs/ls1046aqds_defconfig
@@ -65,6 +65,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1046aqds_lpuart_defconfig b/configs/ls1046aqds_lpuart_defconfig
index 6d448905ef..9e8e37fdb7 100644
--- a/configs/ls1046aqds_lpuart_defconfig
+++ b/configs/ls1046aqds_lpuart_defconfig
@@ -66,6 +66,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1046aqds_nand_defconfig b/configs/ls1046aqds_nand_defconfig
index e4cd4a2f60..f6c55e638a 100644
--- a/configs/ls1046aqds_nand_defconfig
+++ b/configs/ls1046aqds_nand_defconfig
@@ -84,6 +84,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
 CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y
diff --git a/configs/ls1046aqds_sdcard_ifc_defconfig b/configs/ls1046aqds_sdcard_ifc_defconfig
index fe1fe6f162..78402e7a96 100644
--- a/configs/ls1046aqds_sdcard_ifc_defconfig
+++ b/configs/ls1046aqds_sdcard_ifc_defconfig
@@ -85,6 +85,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig b/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig
index b84f8772c6..eb44c1828e 100644
--- a/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig
+++ b/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig
@@ -65,6 +65,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1046aqds_tfa_defconfig b/configs/ls1046aqds_tfa_defconfig
index f706dd6179..b68d8507ba 100644
--- a/configs/ls1046aqds_tfa_defconfig
+++ b/configs/ls1046aqds_tfa_defconfig
@@ -74,6 +74,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1088aqds_defconfig b/configs/ls1088aqds_defconfig
index a2b2a34e3f..986a28d547 100644
--- a/configs/ls1088aqds_defconfig
+++ b/configs/ls1088aqds_defconfig
@@ -66,6 +66,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1088aqds_sdcard_ifc_defconfig b/configs/ls1088aqds_sdcard_ifc_defconfig
index e5372317c3..30ffd3c58a 100644
--- a/configs/ls1088aqds_sdcard_ifc_defconfig
+++ b/configs/ls1088aqds_sdcard_ifc_defconfig
@@ -77,6 +77,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls1088aqds_tfa_defconfig b/configs/ls1088aqds_tfa_defconfig
index aac8486bc3..ae00387d3f 100644
--- a/configs/ls1088aqds_tfa_defconfig
+++ b/configs/ls1088aqds_tfa_defconfig
@@ -76,6 +76,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls2080aqds_SECURE_BOOT_defconfig b/configs/ls2080aqds_SECURE_BOOT_defconfig
index 0ad25aca76..b133bb7845 100644
--- a/configs/ls2080aqds_SECURE_BOOT_defconfig
+++ b/configs/ls2080aqds_SECURE_BOOT_defconfig
@@ -51,6 +51,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls2080aqds_defconfig b/configs/ls2080aqds_defconfig
index 30cdad6fbe..63708e9b07 100644
--- a/configs/ls2080aqds_defconfig
+++ b/configs/ls2080aqds_defconfig
@@ -54,6 +54,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/ls2088aqds_tfa_defconfig b/configs/ls2088aqds_tfa_defconfig
index 61e0fdf113..d85c4d8b0b 100644
--- a/configs/ls2088aqds_tfa_defconfig
+++ b/configs/ls2088aqds_tfa_defconfig
@@ -67,6 +67,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_FSL_IFC=y
 CONFIG_SYS_NAND_ONFI_DETECTION=y
diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig
index 5e41ea980f..8f86f19e89 100644
--- a/configs/qemu_arm64_defconfig
+++ b/configs/qemu_arm64_defconfig
@@ -44,6 +44,8 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_E1000=y
 CONFIG_NVME=y
diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig
index 4197cb0f92..653c76ba61 100644
--- a/configs/qemu_arm_defconfig
+++ b/configs/qemu_arm_defconfig
@@ -46,6 +46,8 @@ CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_ETH=y
 CONFIG_E1000=y
 CONFIG_NVME=y
diff --git a/configs/r8a77990_ebisu_defconfig b/configs/r8a77990_ebisu_defconfig
index 79ec7009c5..24042daee0 100644
--- a/configs/r8a77990_ebisu_defconfig
+++ b/configs/r8a77990_ebisu_defconfig
@@ -71,6 +71,7 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_RENESAS_RPC_HF=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_BITBANGMII=y
diff --git a/configs/r8a77995_draak_defconfig b/configs/r8a77995_draak_defconfig
index 726609ad62..d5b1b31a14 100644
--- a/configs/r8a77995_draak_defconfig
+++ b/configs/r8a77995_draak_defconfig
@@ -64,6 +64,7 @@ CONFIG_CFI_FLASH=y
 CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_RENESAS_RPC_HF=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_BITBANGMII=y
diff --git a/configs/rcar3_salvator-x_defconfig b/configs/rcar3_salvator-x_defconfig
index 57a2c01932..499e56e498 100644
--- a/configs/rcar3_salvator-x_defconfig
+++ b/configs/rcar3_salvator-x_defconfig
@@ -72,6 +72,7 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_RENESAS_RPC_HF=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_BITBANGMII=y
diff --git a/configs/rcar3_ulcb_defconfig b/configs/rcar3_ulcb_defconfig
index b18ef389e4..dfe0d84053 100644
--- a/configs/rcar3_ulcb_defconfig
+++ b/configs/rcar3_ulcb_defconfig
@@ -73,6 +73,7 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_RENESAS_RPC_HF=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_BITBANGMII=y
diff --git a/configs/sfr_nb4-ser_ram_defconfig b/configs/sfr_nb4-ser_ram_defconfig
index bbcb944212..4c5bc11783 100644
--- a/configs/sfr_nb4-ser_ram_defconfig
+++ b/configs/sfr_nb4-ser_ram_defconfig
@@ -49,6 +49,7 @@ CONFIG_MTD_NOR_FLASH=y
 CONFIG_CFI_FLASH=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
 CONFIG_PHY_FIXED=y
 CONFIG_DM_ETH=y
 CONFIG_BCM6348_ETH=y
diff --git a/configs/socrates_defconfig b/configs/socrates_defconfig
index ea0224d650..bad08e79c9 100644
--- a/configs/socrates_defconfig
+++ b/configs/socrates_defconfig
@@ -64,6 +64,7 @@ CONFIG_MTD=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_CFI=y
+CONFIG_SYS_MAX_FLASH_BANKS=2
 CONFIG_MTD_RAW_NAND=y
 CONFIG_PHY_ATHEROS=y
 CONFIG_PHY_BROADCOM=y
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index a9c8c48ae6..bde3004171 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -31,6 +31,7 @@ config SYS_MTDPARTS_RUNTIME
 
 config FLASH_CFI_DRIVER
 	bool "Enable CFI Flash driver"
+	select USE_SYS_MAX_FLASH_BANKS
 	help
 	  The Common Flash Interface specification was developed by Intel,
 	  AMD and other flash manufactures. It provides a universal method
@@ -82,6 +83,7 @@ config SYS_FLASH_CFI
 config ALTERA_QSPI
 	bool "Altera Generic Quad SPI Controller"
 	depends on DM_MTD
+	select USE_SYS_MAX_FLASH_BANKS
 	help
 	  This enables access to Altera EPCQ/EPCS flash chips using the
 	  Altera Generic Quad SPI Controller. The controller converts SPI
@@ -91,6 +93,7 @@ config ALTERA_QSPI
 config FLASH_PIC32
 	bool "Microchip PIC32 Flash driver"
 	depends on MACH_PIC32 && DM_MTD
+	select USE_SYS_MAX_FLASH_BANKS
 	help
 	  This enables access to Microchip PIC32 internal non-CFI flash
 	  chips through PIC32 Non-Volatile-Memory Controller.
@@ -112,10 +115,34 @@ config HBMC_AM654
 config STM32_FLASH
 	bool "STM32 MCU Flash driver"
 	depends on ARCH_STM32
+	select USE_SYS_MAX_FLASH_BANKS
 	help
 	 This is the driver of embedded flash for some STMicroelectronics
 	 STM32 MCU.
 
+config USE_SYS_MAX_FLASH_BANKS
+	bool "Enable Max number of Flash memory banks"
+	help
+	  When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
+	  will be defined.
+
+config SYS_MAX_FLASH_BANKS
+	int "Max number of Flash memory banks"
+	depends on USE_SYS_MAX_FLASH_BANKS
+	default 1
+	help
+	 Max number of Flash memory banks using by the MTD framework, in the
+	 flash CFI driver and in some other driver to define the flash_info
+	 struct declaration.
+
+config SYS_MAX_FLASH_BANKS_DETECT
+	bool "Detection of flash banks number in CFI driver"
+	depends on CFI_FLASH && FLASH_CFI_DRIVER
+	help
+	 This enables detection of number of flash banks in CFI driver,
+	 to reduce the effective number of flash bank, between 0 and
+	 CONFIG_SYS_MAX_FLASH_BANKS
+
 source "drivers/mtd/nand/Kconfig"
 
 config SYS_NAND_MAX_CHIPS
diff --git a/include/configs/10m50_devboard.h b/include/configs/10m50_devboard.h
index 709a449e79..04ce88c9dd 100644
--- a/include/configs/10m50_devboard.h
+++ b/include/configs/10m50_devboard.h
@@ -20,7 +20,6 @@
 /*
  * Flash
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	1024
 
 /*
diff --git a/include/configs/3c120_devboard.h b/include/configs/3c120_devboard.h
index e52fedcf39..e12e54fe4f 100644
--- a/include/configs/3c120_devboard.h
+++ b/include/configs/3c120_devboard.h
@@ -20,8 +20,6 @@
  * CFI Flash
  */
 #define CONFIG_SYS_CFI_FLASH_STATUS_POLL /* fix amd flash issue */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	512
 
 /*
diff --git a/include/configs/M5208EVBE.h b/include/configs/M5208EVBE.h
index 5ed624c7b7..df7f378cfd 100644
--- a/include/configs/M5208EVBE.h
+++ b/include/configs/M5208EVBE.h
@@ -111,7 +111,6 @@
 #ifdef CONFIG_SYS_FLASH_CFI
 #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	254	/* max number of sectors on one chip */
 #endif
 
diff --git a/include/configs/M5235EVB.h b/include/configs/M5235EVB.h
index 90f1664a5a..9f4c3af4b8 100644
--- a/include/configs/M5235EVB.h
+++ b/include/configs/M5235EVB.h
@@ -126,7 +126,6 @@
 #else
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
 #endif
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
 #endif
 
diff --git a/include/configs/M5249EVB.h b/include/configs/M5249EVB.h
index 00892ec44d..32671494d9 100644
--- a/include/configs/M5249EVB.h
+++ b/include/configs/M5249EVB.h
@@ -89,7 +89,6 @@
 
 #	define CONFIG_SYS_FLASH_SIZE		0x1000000	/* Max size that the board might have */
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
 #	define CONFIG_SYS_FLASH_CHECKSUM
 #	define CONFIG_SYS_FLASH_BANKS_LIST	{ CONFIG_SYS_FLASH_BASE }
diff --git a/include/configs/M5253DEMO.h b/include/configs/M5253DEMO.h
index c5d8aa3eda..6ba5c52543 100644
--- a/include/configs/M5253DEMO.h
+++ b/include/configs/M5253DEMO.h
@@ -125,7 +125,6 @@
 
 /* FLASH organization */
 #define CONFIG_SYS_FLASH_BASE		(CONFIG_SYS_CS0_BASE)
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	2048	/* max number of sectors on one chip */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
 
diff --git a/include/configs/M5272C3.h b/include/configs/M5272C3.h
index e814a2924c..df89a0f961 100644
--- a/include/configs/M5272C3.h
+++ b/include/configs/M5272C3.h
@@ -123,7 +123,6 @@
 #ifdef CONFIG_SYS_FLASH_CFI
 #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
 #endif
 
diff --git a/include/configs/M5275EVB.h b/include/configs/M5275EVB.h
index b18f0319b0..7926ed44dc 100644
--- a/include/configs/M5275EVB.h
+++ b/include/configs/M5275EVB.h
@@ -126,7 +126,6 @@
 /*-----------------------------------------------------------------------
  * FLASH organization
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	11	/* max number of sectors on one chip */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
 
diff --git a/include/configs/M5282EVB.h b/include/configs/M5282EVB.h
index 800a731914..df95eead1c 100644
--- a/include/configs/M5282EVB.h
+++ b/include/configs/M5282EVB.h
@@ -129,7 +129,6 @@
 
 #	define CONFIG_SYS_FLASH_SIZE		0x1000000	/* Max size that the board might have */
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
 #	define CONFIG_SYS_FLASH_CHECKSUM
 #	define CONFIG_SYS_FLASH_BANKS_LIST	{ CONFIG_SYS_FLASH_BASE }
diff --git a/include/configs/M53017EVB.h b/include/configs/M53017EVB.h
index 5db189ae2d..c26de6b313 100644
--- a/include/configs/M53017EVB.h
+++ b/include/configs/M53017EVB.h
@@ -130,7 +130,6 @@
 #	define CONFIG_FLASH_SPANSION_S29WS_N	1
 #	define CONFIG_SYS_FLASH_SIZE		0x1000000	/* Max size that the board might have */
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
 #endif
 
diff --git a/include/configs/M5329EVB.h b/include/configs/M5329EVB.h
index f96f54ef65..21137abe08 100644
--- a/include/configs/M5329EVB.h
+++ b/include/configs/M5329EVB.h
@@ -125,7 +125,6 @@
 #ifdef CONFIG_SYS_FLASH_CFI
 #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
 #endif
 
diff --git a/include/configs/M5373EVB.h b/include/configs/M5373EVB.h
index b7906013e0..a2cdd8f417 100644
--- a/include/configs/M5373EVB.h
+++ b/include/configs/M5373EVB.h
@@ -127,7 +127,6 @@
 #ifdef CONFIG_SYS_FLASH_CFI
 #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
 #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
 #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
 #endif
 
diff --git a/include/configs/MCR3000.h b/include/configs/MCR3000.h
index bfb092ab17..4a26ae8f7f 100644
--- a/include/configs/MCR3000.h
+++ b/include/configs/MCR3000.h
@@ -69,7 +69,6 @@
 
 /* FLASH organization */
 #define CONFIG_SYS_FLASH_BASE		CONFIG_SYS_TEXT_BASE
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	35
 #define CONFIG_SYS_FLASH_ERASE_TOUT	120000
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500
diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h
index 9a34e5444b..977d96a5a7 100644
--- a/include/configs/MPC837XERDB.h
+++ b/include/configs/MPC837XERDB.h
@@ -155,7 +155,6 @@
 #define CONFIG_SYS_FLASH_EMPTY_INFO		/* display empty sectors */
 
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1 /* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	256 /* max sectors per device */
 
 #undef	CONFIG_SYS_FLASH_CHECKSUM
diff --git a/include/configs/MPC8540ADS.h b/include/configs/MPC8540ADS.h
index 84e05eafa6..57097b17eb 100644
--- a/include/configs/MPC8540ADS.h
+++ b/include/configs/MPC8540ADS.h
@@ -85,7 +85,6 @@
 
 #define CONFIG_SYS_FLASH_BASE		0xff000000	/* start of FLASH 16M */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1		/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	64		/* sectors per device */
 #undef	CONFIG_SYS_FLASH_CHECKSUM
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
diff --git a/include/configs/MPC8548CDS.h b/include/configs/MPC8548CDS.h
index f583aa8b36..e16d870a5e 100644
--- a/include/configs/MPC8548CDS.h
+++ b/include/configs/MPC8548CDS.h
@@ -133,7 +133,6 @@
 
 #define CONFIG_SYS_FLASH_BANKS_LIST \
 	{CONFIG_SYS_FLASH_BASE_PHYS + 0x800000, CONFIG_SYS_FLASH_BASE_PHYS}
-#define CONFIG_SYS_MAX_FLASH_BANKS	2		/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	128		/* sectors per device */
 #undef	CONFIG_SYS_FLASH_CHECKSUM
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
diff --git a/include/configs/MPC8560ADS.h b/include/configs/MPC8560ADS.h
index b8a72d01dd..d23cf0e41a 100644
--- a/include/configs/MPC8560ADS.h
+++ b/include/configs/MPC8560ADS.h
@@ -86,7 +86,6 @@
 
 #define CONFIG_SYS_FLASH_BASE		0xff000000	/* start of FLASH 16M */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1		/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	64		/* sectors per device */
 #undef	CONFIG_SYS_FLASH_CHECKSUM
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h
index 6a9c86c9c4..23b9969f84 100644
--- a/include/configs/P1010RDB.h
+++ b/include/configs/P1010RDB.h
@@ -267,7 +267,6 @@ extern unsigned long get_sdram_size(void);
 #define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS}
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 
 #undef CONFIG_SYS_FLASH_CHECKSUM
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h
index 8ada25dcc7..ceaed464fe 100644
--- a/include/configs/P2041RDB.h
+++ b/include/configs/P2041RDB.h
@@ -142,7 +142,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1		/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024		/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000		/* Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500		/* Write Timeout (ms) */
diff --git a/include/configs/T102xRDB.h b/include/configs/T102xRDB.h
index bf266623c9..d24cfce8b3 100644
--- a/include/configs/T102xRDB.h
+++ b/include/configs/T102xRDB.h
@@ -202,7 +202,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/T104xRDB.h b/include/configs/T104xRDB.h
index a1650f5430..f60010f787 100644
--- a/include/configs/T104xRDB.h
+++ b/include/configs/T104xRDB.h
@@ -175,7 +175,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/T208xQDS.h b/include/configs/T208xQDS.h
index aaea314e45..f0bdcbae63 100644
--- a/include/configs/T208xQDS.h
+++ b/include/configs/T208xQDS.h
@@ -161,7 +161,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/T208xRDB.h b/include/configs/T208xRDB.h
index 467f6344fa..86dc5bfe82 100644
--- a/include/configs/T208xRDB.h
+++ b/include/configs/T208xRDB.h
@@ -151,7 +151,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
index 2d632493c1..6923774a16 100644
--- a/include/configs/T4240RDB.h
+++ b/include/configs/T4240RDB.h
@@ -267,7 +267,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/adp-ae3xx.h b/include/configs/adp-ae3xx.h
index 11eff3852d..f0416d4715 100644
--- a/include/configs/adp-ae3xx.h
+++ b/include/configs/adp-ae3xx.h
@@ -155,9 +155,6 @@
 #define CONFIG_SYS_CFI_FLASH_STATUS_POLL
 
 /* support JEDEC */
-#ifdef CONFIG_CFI_FLASH
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
-#endif
 
 /* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
 #define PHYS_FLASH_1			0x88000000	/* BANK 0 */
@@ -173,7 +170,6 @@
  * There are 4 banks supported for this Controller,
  * but we have only 1 bank connected to flash on board
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
 
 /* max number of sectors on one chip */
diff --git a/include/configs/adp-ag101p.h b/include/configs/adp-ag101p.h
index 31ef30adc6..69fb5d170b 100644
--- a/include/configs/adp-ag101p.h
+++ b/include/configs/adp-ag101p.h
@@ -286,7 +286,6 @@
  * There are 4 banks supported for this Controller,
  * but we have only 1 bank connected to flash on board
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
 
 /* max number of sectors on one chip */
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index 7fb1b3a3e3..4c2f68298f 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -270,7 +270,6 @@
  */
 #if defined(CONFIG_NOR)
 #define CONFIG_SYS_MAX_FLASH_SECT	128
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BASE		(0x08000000)
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
 #define CONFIG_SYS_FLASH_SIZE		0x01000000
diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h
index f5f2b63b74..63805d3321 100644
--- a/include/configs/am3517_evm.h
+++ b/include/configs/am3517_evm.h
@@ -111,7 +111,6 @@
 /* **** PISMO SUPPORT *** */
 #define CONFIG_SYS_MAX_FLASH_SECT	520	/* max number of sectors */
 						/* on one chip */
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* max number of flash banks */
 #define CONFIG_SYS_MONITOR_LEN		(256 << 10)	/* Reserve 2 sectors */
 
 #if defined(CONFIG_MTD_RAW_NAND)
diff --git a/include/configs/amcore.h b/include/configs/amcore.h
index d813af17f7..ae8aa35b6d 100644
--- a/include/configs/amcore.h
+++ b/include/configs/amcore.h
@@ -40,7 +40,6 @@
 #define CONFIG_SYS_SDRAM_BASE		0x00000000
 #define CONFIG_SYS_SDRAM_SIZE		0x1000000
 #define CONFIG_SYS_FLASH_BASE		0xffc00000
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	1024
 #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
 
diff --git a/include/configs/armadillo-800eva.h b/include/configs/armadillo-800eva.h
index 7714da40dc..d24ba2f0d6 100644
--- a/include/configs/armadillo-800eva.h
+++ b/include/configs/armadillo-800eva.h
@@ -53,7 +53,6 @@
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
 #define CONFIG_SYS_FLASH_BASE		0x00000000
 #define CONFIG_SYS_MAX_FLASH_SECT	512
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
 
 #define CONFIG_SYS_FLASH_ERASE_TOUT	3000
diff --git a/include/configs/astro_mcf5373l.h b/include/configs/astro_mcf5373l.h
index d87ca304e2..4f6fb41569 100644
--- a/include/configs/astro_mcf5373l.h
+++ b/include/configs/astro_mcf5373l.h
@@ -227,7 +227,6 @@
 						(CONFIG_SYS_SDRAM_SIZE << 20))
 
 /* FLASH organization */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	259
 #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
 
diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h
index 5aa9fee2e1..485211c42f 100644
--- a/include/configs/at91sam9263ek.h
+++ b/include/configs/at91sam9263ek.h
@@ -58,7 +58,6 @@
 #define PHYS_FLASH_1				0x10000000
 #define CONFIG_SYS_FLASH_BASE			PHYS_FLASH_1
 #define CONFIG_SYS_MAX_FLASH_SECT		256
-#define CONFIG_SYS_MAX_FLASH_BANKS		1
 
 #define CONFIG_SYS_MONITOR_SEC	1:0-3
 #define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_FLASH_BASE
diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
index 2ad0d1589c..3903dcf3e9 100644
--- a/include/configs/ax25-ae350.h
+++ b/include/configs/ax25-ae350.h
@@ -79,9 +79,6 @@
 #define CONFIG_SYS_CFI_FLASH_STATUS_POLL
 
 /* support JEDEC */
-#ifdef CONFIG_CFI_FLASH
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
-#endif/* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
 #define PHYS_FLASH_1			0x88000000	/* BANK 0 */
 #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_1
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ PHYS_FLASH_1, }
@@ -95,7 +92,6 @@
  * There are 4 banks supported for this Controller,
  * but we have only 1 bank connected to flash on board
 */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
 
 /* max number of sectors on one chip */
diff --git a/include/configs/bcm7445.h b/include/configs/bcm7445.h
index 81c3d02c6b..4b41dc220b 100644
--- a/include/configs/bcm7445.h
+++ b/include/configs/bcm7445.h
@@ -28,6 +28,4 @@
  * Environment configuration for SPI flash.
  */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-
 #endif	/* __CONFIG_H */
diff --git a/include/configs/blanche.h b/include/configs/blanche.h
index 882b94f55a..2135ba700e 100644
--- a/include/configs/blanche.h
+++ b/include/configs/blanche.h
@@ -34,7 +34,6 @@
 #define CONFIG_SYS_FLASH_BASE		0x00000000
 #define CONFIG_SYS_FLASH_SIZE		0x04000000	/* 64 MB */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
 #define CONFIG_SYS_FLASH_BANKS_SIZES	{ (CONFIG_SYS_FLASH_SIZE) }
 
diff --git a/include/configs/bmips_bcm6338.h b/include/configs/bmips_bcm6338.h
index b7de3f4058..ddaa540513 100644
--- a/include/configs/bmips_bcm6338.h
+++ b/include/configs/bmips_bcm6338.h
@@ -22,7 +22,5 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xbfc00000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS		1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6338_H */
diff --git a/include/configs/bmips_bcm6348.h b/include/configs/bmips_bcm6348.h
index 5ed0eebce4..af1c3673fb 100644
--- a/include/configs/bmips_bcm6348.h
+++ b/include/configs/bmips_bcm6348.h
@@ -29,7 +29,5 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xbfc00000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS		1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6348_H */
diff --git a/include/configs/bmips_bcm6358.h b/include/configs/bmips_bcm6358.h
index 829e9f6b17..6cb09492aa 100644
--- a/include/configs/bmips_bcm6358.h
+++ b/include/configs/bmips_bcm6358.h
@@ -31,7 +31,5 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xbe000000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6358_H */
diff --git a/include/configs/bmips_bcm6368.h b/include/configs/bmips_bcm6368.h
index 0952b98473..8a22dc1a3c 100644
--- a/include/configs/bmips_bcm6368.h
+++ b/include/configs/bmips_bcm6368.h
@@ -31,7 +31,5 @@
 
 #define CONFIG_SYS_FLASH_BASE			0xb8000000
 #define CONFIG_SYS_FLASH_EMPTY_INFO
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 #endif /* __CONFIG_BMIPS_BCM6368_H */
diff --git a/include/configs/boston.h b/include/configs/boston.h
index 7ac044e929..347b178633 100644
--- a/include/configs/boston.h
+++ b/include/configs/boston.h
@@ -41,8 +41,6 @@
  * Flash
  */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT		1024
 
 /*
diff --git a/include/configs/cobra5272.h b/include/configs/cobra5272.h
index 3e19e99c24..81315f6ec7 100644
--- a/include/configs/cobra5272.h
+++ b/include/configs/cobra5272.h
@@ -223,7 +223,6 @@ enter a valid image address in flash */
 /*-----------------------------------------------------------------------
  * FLASH organization
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks		*/
 #define CONFIG_SYS_MAX_FLASH_SECT	11	/* max number of sectors on one chip	*/
 #define CONFIG_SYS_FLASH_ERASE_TOUT	1000	/* flash timeout */
 
diff --git a/include/configs/colibri_pxa270.h b/include/configs/colibri_pxa270.h
index 0be7f5a416..305d25b221 100644
--- a/include/configs/colibri_pxa270.h
+++ b/include/configs/colibri_pxa270.h
@@ -84,7 +84,6 @@
 #define	CONFIG_SYS_FLASH_CFI_WIDTH      FLASH_CFI_32BIT
 
 #define	CONFIG_SYS_MAX_FLASH_SECT	(4 + 255)
-#define	CONFIG_SYS_MAX_FLASH_BANKS	1
 
 #define	CONFIG_SYS_FLASH_ERASE_TOUT	(25 * CONFIG_SYS_HZ)
 #define	CONFIG_SYS_FLASH_WRITE_TOUT	(25 * CONFIG_SYS_HZ)
diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h
index f6e0b2a7ea..6d272c6d88 100644
--- a/include/configs/corenet_ds.h
+++ b/include/configs/corenet_ds.h
@@ -140,7 +140,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2		/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024		/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000		/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500		/* Flash Write Timeout (ms) */
diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h
index 97c9276e0e..956a965901 100644
--- a/include/configs/da850evm.h
+++ b/include/configs/da850evm.h
@@ -145,7 +145,6 @@
 #endif
 
 #ifdef CONFIG_MTD_NOR_FLASH
-#define CONFIG_SYS_MAX_FLASH_BANKS	1 /* max number of flash banks */
 #define CONFIG_SYS_FLASH_SECT_SZ	(128 << 10) /* 128KB */
 #define CONFIG_SYS_FLASH_BASE		DAVINCI_ASYNC_EMIF_DATA_CE2_BASE
 #define PHYS_FLASH_SIZE			(8 << 20) /* Flash size 8MB */
diff --git a/include/configs/devkit3250.h b/include/configs/devkit3250.h
index 1e24d05bfb..f30958f0d3 100644
--- a/include/configs/devkit3250.h
+++ b/include/configs/devkit3250.h
@@ -39,7 +39,6 @@
 /*
  * NOR Flash
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	71
 #define CONFIG_SYS_FLASH_BASE		EMC_CS0_BASE
 #define CONFIG_SYS_FLASH_SIZE		SZ_4M
diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h
index 900c5fd233..aec30c461d 100644
--- a/include/configs/dra7xx_evm.h
+++ b/include/configs/dra7xx_evm.h
@@ -103,7 +103,6 @@
 #define CONFIG_SYS_MAX_FLASH_SECT	512
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
 #define CONFIG_SYS_FLASH_SIZE		(64 * 1024 * 1024) /* 64 MB */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BASE		(0x08000000)
 #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE
 /* Reduce SPL size by removing unlikey targets */
diff --git a/include/configs/draak.h b/include/configs/draak.h
index 412c57f150..e3e2b6a0bd 100644
--- a/include/configs/draak.h
+++ b/include/configs/draak.h
@@ -23,8 +23,6 @@
 #define CONFIG_FLASH_SHOW_PROGRESS	45
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/configs/eb_cpu5282.h b/include/configs/eb_cpu5282.h
index 62b62e07c5..6ad8722d60 100644
--- a/include/configs/eb_cpu5282.h
+++ b/include/configs/eb_cpu5282.h
@@ -116,7 +116,6 @@
 #define CONFIG_SYS_INT_FLASH_ENABLE	0x21
 
 #define	CONFIG_SYS_MAX_FLASH_SECT	128
-#define	CONFIG_SYS_MAX_FLASH_BANKS	1
 #define	CONFIG_SYS_FLASH_ERASE_TOUT	10000000
 
 #define CONFIG_SYS_FLASH_SIZE		16*1024*1024
diff --git a/include/configs/ebisu.h b/include/configs/ebisu.h
index 87053760e2..178b050a12 100644
--- a/include/configs/ebisu.h
+++ b/include/configs/ebisu.h
@@ -26,8 +26,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/configs/edminiv2.h b/include/configs/edminiv2.h
index e20e058e0a..90e387e6c5 100644
--- a/include/configs/edminiv2.h
+++ b/include/configs/edminiv2.h
@@ -85,7 +85,6 @@
  * FLASH configuration
  */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1  /* max num of flash banks       */
 #define CONFIG_SYS_MAX_FLASH_SECT	11 /* max num of sects on one chip */
 #define CONFIG_SYS_FLASH_BASE		0xfff80000
 
diff --git a/include/configs/ethernut5.h b/include/configs/ethernut5.h
index ccf615efa3..d72f704636 100644
--- a/include/configs/ethernut5.h
+++ b/include/configs/ethernut5.h
@@ -32,7 +32,6 @@
 #define CONFIG_SYS_SDRAM_SIZE		(128 << 20)
 
 /* 512kB on-chip NOR flash */
-# define CONFIG_SYS_MAX_FLASH_BANKS	1
 # define CONFIG_SYS_FLASH_BASE		0x00200000 /* AT91SAM9XE_FLASH_BASE */
 # define CONFIG_AT91_EFLASH
 # define CONFIG_SYS_MAX_FLASH_SECT	32
diff --git a/include/configs/gazerbeam.h b/include/configs/gazerbeam.h
index c7fdf7c6bb..7e13464b10 100644
--- a/include/configs/gazerbeam.h
+++ b/include/configs/gazerbeam.h
@@ -43,7 +43,6 @@
 #define CONFIG_SYS_FLASH_BASE		0xFE000000 /* FLASH base address */
 #define CONFIG_SYS_FLASH_SIZE		8 /* FLASH size is up to 8M */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1 /* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	135
 
 #define CONFIG_SYS_BAUDRATE_TABLE  \
diff --git a/include/configs/ids8313.h b/include/configs/ids8313.h
index 206a57a653..e35862a6cd 100644
--- a/include/configs/ids8313.h
+++ b/include/configs/ids8313.h
@@ -118,7 +118,6 @@
 #define CONFIG_SYS_FLASH_SIZE		8
 
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	128
 
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000
diff --git a/include/configs/imx27lite-common.h b/include/configs/imx27lite-common.h
index dffe175f50..641e4037d5 100644
--- a/include/configs/imx27lite-common.h
+++ b/include/configs/imx27lite-common.h
@@ -77,7 +77,6 @@
  */
 /* Use buffered writes (~10x faster) */
 /* Use hardware sector protection */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of flash banks */
 /* CS2 Base address */
 #define PHYS_FLASH_1			0xc0000000
 /* Flash Base for U-Boot */
diff --git a/include/configs/integrator-common.h b/include/configs/integrator-common.h
index b573bdc64f..48d522550e 100644
--- a/include/configs/integrator-common.h
+++ b/include/configs/integrator-common.h
@@ -74,7 +74,6 @@
  * - U-Boot environment
  */
 #define CONFIG_SYS_FLASH_BASE		0x24000000
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 
 /* Timeout values in ticks */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	(2 * CONFIG_SYS_HZ) /* Erase Timeout */
diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h
index acac81ad68..abea7517e8 100644
--- a/include/configs/j721e_evm.h
+++ b/include/configs/j721e_evm.h
@@ -60,8 +60,6 @@
 #define CONFIG_CQSPI_REF_CLK		133333333
 
 /* HyperFlash related configuration */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 
 /* U-Boot general configuration */
 #define EXTRA_ENV_J721E_BOARD_SETTINGS					\
diff --git a/include/configs/km/km-mpc83xx.h b/include/configs/km/km-mpc83xx.h
index 45db5cf873..7c979c5fa9 100644
--- a/include/configs/km/km-mpc83xx.h
+++ b/include/configs/km/km-mpc83xx.h
@@ -56,7 +56,6 @@
  */
 #define CONFIG_SYS_FLASH_SIZE		256 /* max FLASH size is 256M */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1   /* max num of flash banks	*/
 #define CONFIG_SYS_MAX_FLASH_SECT	512 /* max num of sects on one chip */
 #define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE }
 
diff --git a/include/configs/km/pg-wcom-ls102xa.h b/include/configs/km/pg-wcom-ls102xa.h
index ba0e4dd5c6..9d7a9e18d5 100644
--- a/include/configs/km/pg-wcom-ls102xa.h
+++ b/include/configs/km/pg-wcom-ls102xa.h
@@ -68,7 +68,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	512	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/kmcent2.h b/include/configs/kmcent2.h
index 98e572397b..ca0cb31c29 100644
--- a/include/configs/kmcent2.h
+++ b/include/configs/kmcent2.h
@@ -246,7 +246,6 @@
 /* More NOR Flash params */
 #define CONFIG_SYS_FLASH_QUIET_TEST
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	512	/* sectors per device */
 
 #define CONFIG_SYS_FLASH_EMPTY_INFO
diff --git a/include/configs/kzm9g.h b/include/configs/kzm9g.h
index 1eb6dafe20..022858f692 100644
--- a/include/configs/kzm9g.h
+++ b/include/configs/kzm9g.h
@@ -20,7 +20,6 @@
 #define KZM_FLASH_BASE	(0x00000000)
 #define CONFIG_SYS_FLASH_BASE		(KZM_FLASH_BASE)
 #define CONFIG_SYS_FLASH_CFI_WIDTH	(FLASH_CFI_16BIT)
-#define CONFIG_SYS_MAX_FLASH_BANKS	(1)
 #define CONFIG_SYS_MAX_FLASH_SECT	(512)
 
 /* prompt */
diff --git a/include/configs/ls1021aqds.h b/include/configs/ls1021aqds.h
index 7edb5c6180..8c4cb7b720 100644
--- a/include/configs/ls1021aqds.h
+++ b/include/configs/ls1021aqds.h
@@ -102,7 +102,6 @@
 #define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
index d4c6f4fcf8..dcee79de88 100644
--- a/include/configs/ls1021atwr.h
+++ b/include/configs/ls1021atwr.h
@@ -114,7 +114,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
index 80eff7b1a9..5f9cb97855 100644
--- a/include/configs/ls1043aqds.h
+++ b/include/configs/ls1043aqds.h
@@ -90,7 +90,6 @@
 					FTIM2_NOR_TWP(0x1c))
 #define CONFIG_SYS_NOR_FTIM3		0
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
index 7b6d19374e..fa6a8b7777 100644
--- a/include/configs/ls1043ardb.h
+++ b/include/configs/ls1043ardb.h
@@ -56,7 +56,6 @@
 #define CONFIG_SYS_NOR_FTIM3		0
 #define CONFIG_SYS_IFC_CCR		0x01000000
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls1046aqds.h b/include/configs/ls1046aqds.h
index 97bf4182be..3d72c67a54 100644
--- a/include/configs/ls1046aqds.h
+++ b/include/configs/ls1046aqds.h
@@ -97,7 +97,6 @@
 					FTIM2_NOR_TWP(0x1c))
 #define CONFIG_SYS_NOR_FTIM3		0
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls1088aqds.h b/include/configs/ls1088aqds.h
index 5912fe95cc..2d33ab0794 100644
--- a/include/configs/ls1088aqds.h
+++ b/include/configs/ls1088aqds.h
@@ -72,7 +72,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls1088ardb.h b/include/configs/ls1088ardb.h
index 400b8adb24..4cb5d7517f 100644
--- a/include/configs/ls1088ardb.h
+++ b/include/configs/ls1088ardb.h
@@ -60,7 +60,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
index b0a05dd807..07cf59fcb8 100644
--- a/include/configs/ls2080aqds.h
+++ b/include/configs/ls2080aqds.h
@@ -85,7 +85,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
index a54387e16c..6d8effea74 100644
--- a/include/configs/ls2080ardb.h
+++ b/include/configs/ls2080ardb.h
@@ -87,7 +87,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
 #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/lsxl.h b/include/configs/lsxl.h
index afa0206fb9..e8e02e7f7b 100644
--- a/include/configs/lsxl.h
+++ b/include/configs/lsxl.h
@@ -19,7 +19,6 @@
  *  Environment variables configurations
  */
 #ifdef CONFIG_SPI_FLASH
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	8
 #endif
 
diff --git a/include/configs/malta.h b/include/configs/malta.h
index 8ace0ccd7e..61860ee694 100644
--- a/include/configs/malta.h
+++ b/include/configs/malta.h
@@ -54,7 +54,6 @@
 #else
 # define CONFIG_SYS_FLASH_BASE		0xbe000000
 #endif
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	128
 
 /*
diff --git a/include/configs/mccmon6.h b/include/configs/mccmon6.h
index aa95864516..e2f916de31 100644
--- a/include/configs/mccmon6.h
+++ b/include/configs/mccmon6.h
@@ -37,8 +37,6 @@
 #define CONFIG_FLASH_VERIFY
 
 /* NOR Flash MTD */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
 #define CONFIG_SYS_FLASH_BANKS_SIZES	{ (32 * SZ_1M) }
 
diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h
index e7882fb607..261fda0053 100644
--- a/include/configs/microblaze-generic.h
+++ b/include/configs/microblaze-generic.h
@@ -32,7 +32,6 @@
 /* ?empty sector */
 # define CONFIG_SYS_FLASH_EMPTY_INFO	1
 /* max number of memory banks */
-# define CONFIG_SYS_MAX_FLASH_BANKS	1
 /* max number of sectors on one chip */
 # define CONFIG_SYS_MAX_FLASH_SECT	2048
 #endif
diff --git a/include/configs/mx6sabreauto.h b/include/configs/mx6sabreauto.h
index 5e8446088b..adf0a79f7a 100644
--- a/include/configs/mx6sabreauto.h
+++ b/include/configs/mx6sabreauto.h
@@ -41,7 +41,6 @@
 #ifdef CONFIG_MTD_NOR_FLASH
 #define CONFIG_SYS_FLASH_BASE           WEIM_ARB_BASE_ADDR
 #define CONFIG_SYS_FLASH_SECT_SIZE      (128 * 1024)
-#define CONFIG_SYS_MAX_FLASH_BANKS 1    /* max number of memory banks */
 #define CONFIG_SYS_MAX_FLASH_SECT 256   /* max number of sectors on one chip */
 #define CONFIG_SYS_FLASH_EMPTY_INFO
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
diff --git a/include/configs/octeon_ebb7304.h b/include/configs/octeon_ebb7304.h
index 04fe4dfe22..358db69a05 100644
--- a/include/configs/octeon_ebb7304.h
+++ b/include/configs/octeon_ebb7304.h
@@ -12,7 +12,6 @@
 /*
  * CFI flash
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_8BIT
 #define CONFIG_SYS_FLASH_EMPTY_INFO	/* flinfo indicates empty blocks */
diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h
index 211f39a0fa..4719184b5e 100644
--- a/include/configs/omap3_logic.h
+++ b/include/configs/omap3_logic.h
@@ -154,7 +154,6 @@
 #endif
 
 #define CONFIG_SYS_MAX_FLASH_SECT	256
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
 #define CONFIG_SYS_FLASH_SIZE		0x4000000
 
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h
index 2e1331b9b0..b993ec8316 100644
--- a/include/configs/p1_p2_rdb_pc.h
+++ b/include/configs/p1_p2_rdb_pc.h
@@ -254,8 +254,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
-
 #undef CONFIG_SYS_FLASH_CHECKSUM
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
diff --git a/include/configs/pm9261.h b/include/configs/pm9261.h
index be24d82538..f3196ee847 100644
--- a/include/configs/pm9261.h
+++ b/include/configs/pm9261.h
@@ -161,7 +161,6 @@
 #define PHYS_FLASH_1				0x10000000
 #define CONFIG_SYS_FLASH_BASE			PHYS_FLASH_1
 #define CONFIG_SYS_MAX_FLASH_SECT		256
-#define CONFIG_SYS_MAX_FLASH_BANKS		1
 
 /* USB */
 #define CONFIG_USB_ATMEL
diff --git a/include/configs/pm9263.h b/include/configs/pm9263.h
index e9eb736ecb..4856f61527 100644
--- a/include/configs/pm9263.h
+++ b/include/configs/pm9263.h
@@ -163,7 +163,6 @@
 #define PHYS_FLASH_1			0x10000000
 #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_1
 #define CONFIG_SYS_MAX_FLASH_SECT	256
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 
 /* NAND flash */
 #ifdef CONFIG_CMD_NAND
diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
index fe958ef3c5..d2963c4631 100644
--- a/include/configs/qemu-arm.h
+++ b/include/configs/qemu-arm.h
@@ -42,8 +42,6 @@
 #define CONFIG_SYS_CBSIZE 512
 
 #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE
-#define CONFIG_SYS_MAX_FLASH_BANKS	2
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256 /* Sector: 256K, Bank: 64M */
 #define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
 
diff --git a/include/configs/qemu-riscv.h b/include/configs/qemu-riscv.h
index ae57f681a5..618c3b63d4 100644
--- a/include/configs/qemu-riscv.h
+++ b/include/configs/qemu-riscv.h
@@ -25,8 +25,6 @@
 
 #define CONFIG_STANDALONE_LOAD_ADDR	0x80200000
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2
-
 #define RISCV_MMODE_TIMERBASE		0x2000000
 #define RISCV_MMODE_TIMER_FREQ		1000000
 
diff --git a/include/configs/r2dplus.h b/include/configs/r2dplus.h
index 8e86830e61..e3105fe53c 100644
--- a/include/configs/r2dplus.h
+++ b/include/configs/r2dplus.h
@@ -21,7 +21,6 @@
  * NOR Flash ( Spantion S29GL256P )
  */
 #define CONFIG_SYS_FLASH_BASE		(0xA0000000)
-#define CONFIG_SYS_MAX_FLASH_BANKS (1)
 #define CONFIG_SYS_MAX_FLASH_SECT  256
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ CONFIG_SYS_FLASH_BASE }
 
diff --git a/include/configs/salvator-x.h b/include/configs/salvator-x.h
index da3e2c8856..9542b0d1b5 100644
--- a/include/configs/salvator-x.h
+++ b/include/configs/salvator-x.h
@@ -24,8 +24,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/configs/sama5d3xek.h b/include/configs/sama5d3xek.h
index 67640f4415..3be2c83fce 100644
--- a/include/configs/sama5d3xek.h
+++ b/include/configs/sama5d3xek.h
@@ -32,7 +32,6 @@
 #ifdef CONFIG_MTD_NOR_FLASH
 #define CONFIG_SYS_FLASH_BASE		0x10000000
 #define CONFIG_SYS_MAX_FLASH_SECT	131
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #endif
 
 /* SDRAM */
diff --git a/include/configs/socfpga_arria10_socdk.h b/include/configs/socfpga_arria10_socdk.h
index ebb3e8c573..c20d54a3c5 100644
--- a/include/configs/socfpga_arria10_socdk.h
+++ b/include/configs/socfpga_arria10_socdk.h
@@ -30,7 +30,6 @@
 /*
  * Flash configurations
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS     1
 
 /* SPL memory allocation configuration, this is for FAT implementation */
 #define CONFIG_SYS_SPL_MALLOC_SIZE	0x00015000
diff --git a/include/configs/socfpga_soc64_common.h b/include/configs/socfpga_soc64_common.h
index 928582ab8c..8646dc2318 100644
--- a/include/configs/socfpga_soc64_common.h
+++ b/include/configs/socfpga_soc64_common.h
@@ -136,7 +136,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
 /*
  * Flash configurations
  */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 
 /* Ethernet on SoC (EMAC) */
 #if defined(CONFIG_CMD_NET)
diff --git a/include/configs/socrates.h b/include/configs/socrates.h
index 15e93d044e..be59cc2fdc 100644
--- a/include/configs/socrates.h
+++ b/include/configs/socrates.h
@@ -93,7 +93,6 @@
 #define CONFIG_SYS_LBC_FLASH_BASE	CONFIG_SYS_FLASH1	/* Localbus flash start	*/
 #define CONFIG_SYS_FLASH_BASE		CONFIG_SYS_LBC_FLASH_BASE /* start of FLASH	*/
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	2		/* number of banks	*/
 #define CONFIG_SYS_MAX_FLASH_SECT	256		/* sectors per device	*/
 #undef	CONFIG_SYS_FLASH_CHECKSUM
 #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms)	*/
diff --git a/include/configs/stih410-b2260.h b/include/configs/stih410-b2260.h
index 2fe0900e9f..4c464cfbe5 100644
--- a/include/configs/stih410-b2260.h
+++ b/include/configs/stih410-b2260.h
@@ -51,8 +51,6 @@
 /* Monitor Command Prompt */
 #define CONFIG_SYS_CBSIZE		1024	/* Console I/O Buffer Size */
 
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-
 /* USB Configs */
 #define CONFIG_USB_OHCI_NEW
 #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
diff --git a/include/configs/stm32f429-discovery.h b/include/configs/stm32f429-discovery.h
index 8dddd5449e..c9649a085e 100644
--- a/include/configs/stm32f429-discovery.h
+++ b/include/configs/stm32f429-discovery.h
@@ -16,7 +16,6 @@
  */
 
 #define CONFIG_SYS_MAX_FLASH_SECT	12
-#define CONFIG_SYS_MAX_FLASH_BANKS	2
 
 #define CONFIG_RED_LED			110
 #define CONFIG_GREEN_LED		109
diff --git a/include/configs/stm32f429-evaluation.h b/include/configs/stm32f429-evaluation.h
index c490e2d98b..4c421b9596 100644
--- a/include/configs/stm32f429-evaluation.h
+++ b/include/configs/stm32f429-evaluation.h
@@ -21,7 +21,6 @@
  */
 
 #define CONFIG_SYS_MAX_FLASH_SECT	12
-#define CONFIG_SYS_MAX_FLASH_BANKS	2
 
 #define CONFIG_SYS_HZ_CLOCK		1000000	/* Timer is clocked at 1MHz */
 
diff --git a/include/configs/stm32f469-discovery.h b/include/configs/stm32f469-discovery.h
index 246dc1f9c6..e91f8da280 100644
--- a/include/configs/stm32f469-discovery.h
+++ b/include/configs/stm32f469-discovery.h
@@ -21,7 +21,6 @@
  */
 
 #define CONFIG_SYS_MAX_FLASH_SECT	12
-#define CONFIG_SYS_MAX_FLASH_BANKS	2
 
 #define CONFIG_SYS_HZ_CLOCK		1000000	/* Timer is clocked at 1MHz */
 
diff --git a/include/configs/stm32f746-disco.h b/include/configs/stm32f746-disco.h
index 2f2a349dcd..8ad4bb99c8 100644
--- a/include/configs/stm32f746-disco.h
+++ b/include/configs/stm32f746-disco.h
@@ -20,7 +20,6 @@
  */
 
 #define CONFIG_SYS_MAX_FLASH_SECT	8
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 
 #define CONFIG_DW_GMAC_DEFAULT_DMA_PBL	(8)
 #define CONFIG_DW_ALTDESCRIPTOR
diff --git a/include/configs/synquacer.h b/include/configs/synquacer.h
index 0409589152..8dd092fc59 100644
--- a/include/configs/synquacer.h
+++ b/include/configs/synquacer.h
@@ -37,7 +37,6 @@
 #define CONFIG_PL01x_PORTS		{(void *)(0x2a400000)}
 
 /* Support MTD */
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #define CONFIG_SYS_FLASH_BASE		(0x08000000)
 #define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE}
 
diff --git a/include/configs/total_compute.h b/include/configs/total_compute.h
index c752da374b..9638ab2017 100644
--- a/include/configs/total_compute.h
+++ b/include/configs/total_compute.h
@@ -57,7 +57,6 @@
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_32BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 
 #define CONFIG_SYS_FLASH_EMPTY_INFO	/* flinfo indicates empty blocks */
 #define FLASH_MAX_SECTOR_SIZE		0x00040000
diff --git a/include/configs/ulcb.h b/include/configs/ulcb.h
index c22c30c86f..ca79b0352a 100644
--- a/include/configs/ulcb.h
+++ b/include/configs/ulcb.h
@@ -24,8 +24,6 @@
 #define CONFIG_SYS_FLASH_QUIET_TEST
 #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 #define CONFIG_SYS_MAX_FLASH_SECT	256
 #define CONFIG_SYS_WRITE_SWAPPED_DATA
 
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 44c746f6f2..c90e0b6c38 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -200,7 +200,6 @@
 #endif
 
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_32BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 
 #ifdef CONFIG_USB_EHCI_HCD
 #define CONFIG_USB_OHCI_NEW
diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
index 91d50bc4a0..5f119aeb3d 100644
--- a/include/configs/vexpress_common.h
+++ b/include/configs/vexpress_common.h
@@ -176,7 +176,6 @@
 /* FLASH and environment organization */
 #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */
 #define CONFIG_SYS_FLASH_SIZE		0x04000000
-#define CONFIG_SYS_MAX_FLASH_BANKS	2
 #define CONFIG_SYS_FLASH_BASE0		V2M_NOR0
 #define CONFIG_SYS_FLASH_BASE1		V2M_NOR1
 #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE0
diff --git a/include/configs/xtfpga.h b/include/configs/xtfpga.h
index c8a6e9a61a..8c2cdb5cbd 100644
--- a/include/configs/xtfpga.h
+++ b/include/configs/xtfpga.h
@@ -181,7 +181,6 @@
 /*=====================*/
 
 #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
 #ifdef CONFIG_XTFPGA_LX60
 # define CONFIG_SYS_FLASH_SIZE		0x0040000	/* 4MB */
 # define CONFIG_SYS_FLASH_SECT_SZ	0x10000		/* block size 64KB */
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index 88c6490d81..da2acb9a75 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -35,7 +35,6 @@
 
 /* NOR */
 #ifdef CONFIG_MTD_NOR_FLASH
-# define CONFIG_SYS_MAX_FLASH_BANKS	1
 # define CONFIG_SYS_MAX_FLASH_SECT	512
 # define CONFIG_SYS_FLASH_ERASE_TOUT	1000
 # define CONFIG_SYS_FLASH_WRITE_TOUT	5000
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 79f03d1636..7726243f22 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1499,8 +1499,6 @@ CONFIG_SYS_MASTER_CLOCK
 CONFIG_SYS_MATRIX_EBI0CSA_VAL
 CONFIG_SYS_MATRIX_EBICSA_VAL
 CONFIG_SYS_MAXARGS
-CONFIG_SYS_MAX_FLASH_BANKS
-CONFIG_SYS_MAX_FLASH_BANKS_DETECT
 CONFIG_SYS_MAX_FLASH_SECT
 CONFIG_SYS_MAX_I2C_BUS
 CONFIG_SYS_MAX_NAND_CHIPS
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH to Kconfig
  2022-01-04 13:23 [PATCH v1 0/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
                   ` (3 preceding siblings ...)
  2022-01-04 13:24 ` [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
@ 2022-01-04 13:24 ` Patrick Delaunay
  2022-01-05  8:44   ` Stefan Roese
  2022-01-21 19:03   ` Tom Rini
  4 siblings, 2 replies; 17+ messages in thread
From: Patrick Delaunay @ 2022-01-04 13:24 UTC (permalink / raw)
  To: u-boot
  Cc: Marek Vasut, Simon Glass, Patrick Delaunay, Eugen Hristev,
	Marek Behún, Priyanka Jain, Stefan Roese, egnite GmbH,
	U-Boot STM32

This converts the following to Kconfig:
   CONFIG_AT91_EFLASH

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

 arch/arm/mach-at91/Kconfig   | 8 ++++++++
 configs/ethernut5_defconfig  | 2 +-
 include/configs/ethernut5.h  | 1 -
 scripts/config_whitelist.txt | 1 -
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 4448ca1592..00f31045d6 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -302,6 +302,14 @@ config ATMEL_SFR
 config SYS_SOC
 	default "at91"
 
+config AT91_EFLASH
+	bool "Support AT91 flash driver"
+	depends on AT91SAM9XE
+	select USE_SYS_MAX_FLASH_BANKS
+	help
+	  Enable the driver for the embedded flash used in the Atmel
+	  AT91SAM9XE devices.
+
 source "board/atmel/at91sam9260ek/Kconfig"
 source "board/atmel/at91sam9261ek/Kconfig"
 source "board/atmel/at91sam9263ek/Kconfig"
diff --git a/configs/ethernut5_defconfig b/configs/ethernut5_defconfig
index 5d98318aab..7a701db0e1 100644
--- a/configs/ethernut5_defconfig
+++ b/configs/ethernut5_defconfig
@@ -4,6 +4,7 @@ CONFIG_ARCH_CPU_INIT=y
 CONFIG_ARCH_AT91=y
 CONFIG_SYS_TEXT_BASE=0x27000000
 CONFIG_SYS_MALLOC_LEN=0x121000
+CONFIG_AT91_EFLASH=y
 CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_TARGET_ETHERNUT5=y
 CONFIG_NR_DRAM_BANKS=1
@@ -66,7 +67,6 @@ CONFIG_SYS_I2C_SOFT_SLAVE=0
 CONFIG_GENERIC_ATMEL_MCI=y
 CONFIG_MTD=y
 CONFIG_MTD_NOR_FLASH=y
-CONFIG_USE_SYS_MAX_FLASH_BANKS=y
 CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
 CONFIG_NAND_ATMEL=y
diff --git a/include/configs/ethernut5.h b/include/configs/ethernut5.h
index d72f704636..d88c14ac44 100644
--- a/include/configs/ethernut5.h
+++ b/include/configs/ethernut5.h
@@ -33,7 +33,6 @@
 
 /* 512kB on-chip NOR flash */
 # define CONFIG_SYS_FLASH_BASE		0x00200000 /* AT91SAM9XE_FLASH_BASE */
-# define CONFIG_AT91_EFLASH
 # define CONFIG_SYS_MAX_FLASH_SECT	32
 # define CONFIG_EFLASH_PROTSECTORS	1
 
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 7726243f22..3a923abf7e 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -18,7 +18,6 @@ CONFIG_AT91SAM9G20EK
 CONFIG_AT91SAM9G20EK_2MMC
 CONFIG_AT91SAM9G45_LCD_BASE
 CONFIG_AT91SAM9M10G45EK
-CONFIG_AT91_EFLASH
 CONFIG_AT91_GPIO_PULLUP
 CONFIG_AT91_LED
 CONFIG_AT91_WANTS_COMMON_PHY
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 1/5] cmd: Fix up warnings in flash.c
  2022-01-04 13:23 ` [PATCH v1 1/5] cmd: Fix up warnings in flash.c Patrick Delaunay
@ 2022-01-05  8:42   ` Stefan Roese
  2022-01-21 19:02   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Stefan Roese @ 2022-01-05  8:42 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot; +Cc: Marek Vasut, Simon Glass, U-Boot STM32

On 1/4/22 14:23, Patrick Delaunay wrote:
> Tidy up the warnings reported by checkpatch.pl to prepare next patches
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   cmd/flash.c | 239 +++++++++++++++++++++++++---------------------------
>   1 file changed, 117 insertions(+), 122 deletions(-)
> 
> diff --git a/cmd/flash.c b/cmd/flash.c
> index 819febc10e..594e2caa59 100644
> --- a/cmd/flash.c
> +++ b/cmd/flash.c
> @@ -19,7 +19,7 @@
>   int mtdparts_init(void);
>   int mtd_id_parse(const char *id, const char **ret_id, u8 *dev_type, u8 *dev_num);
>   int find_dev_and_part(const char *id, struct mtd_device **dev,
> -		u8 *part_num, struct part_info **part);
> +		      u8 *part_num, struct part_info **part);
>   #endif
>   
>   #ifdef CONFIG_MTD_NOR_FLASH
> @@ -47,34 +47,39 @@ extern flash_info_t flash_info[];	/* info for FLASH chips */
>    *			  or an invalid flash bank.
>    */
>   static int
> -abbrev_spec (char *str, flash_info_t ** pinfo, int *psf, int *psl)
> +abbrev_spec(char *str, flash_info_t **pinfo, int *psf, int *psl)
>   {
>   	flash_info_t *fp;
>   	int bank, first, last;
>   	char *p, *ep;
>   
> -	if ((p = strchr (str, ':')) == NULL)
> +	p = strchr(str, ':');
> +	if (!p)
>   		return 0;
>   	*p++ = '\0';
>   
>   	bank = dectoul(str, &ep);
>   	if (ep == str || *ep != '\0' ||
> -		bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS ||
> -		(fp = &flash_info[bank - 1])->flash_id == FLASH_UNKNOWN)
> +	    bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS)
> +		return -1;
> +
> +	fp = &flash_info[bank - 1];
> +	if (fp->flash_id == FLASH_UNKNOWN)
>   		return -1;
>   
>   	str = p;
> -	if ((p = strchr (str, '-')) != NULL)
> +	p = strchr(str, '-');
> +	if (p)
>   		*p++ = '\0';
>   
>   	first = dectoul(str, &ep);
>   	if (ep == str || *ep != '\0' || first >= fp->sector_count)
>   		return -1;
>   
> -	if (p != NULL) {
> +	if (p) {
>   		last = dectoul(p, &ep);
>   		if (ep == p || *ep != '\0' ||
> -			last < first || last >= fp->sector_count)
> +		    last < first || last >= fp->sector_count)
>   			return -1;
>   	} else {
>   		last = first;
> @@ -107,11 +112,10 @@ int flash_sect_roundb(ulong *addr)
>   				sector_end_addr = info->start[0] +
>   								info->size - 1;
>   			} else {
> -				sector_end_addr = info->start[i+1] - 1;
> +				sector_end_addr = info->start[i + 1] - 1;
>   			}
>   
> -			if (*addr <= sector_end_addr &&
> -						*addr >= info->start[i]) {
> +			if (*addr <= sector_end_addr && *addr >= info->start[i]) {
>   				found = 1;
>   				/* adjust *addr if necessary */
>   				if (*addr < sector_end_addr)
> @@ -144,7 +148,7 @@ int flash_sect_roundb(ulong *addr)
>    * Return:
>    *    1: success
>    *   -1: failure (bad format, bad address).
> -*/
> + */
>   static int
>   addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
>   {
> @@ -156,7 +160,7 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
>   		return -1;
>   
>   	len_used = 0;
> -	if (arg2 && *arg2 == '+'){
> +	if (arg2 && *arg2 == '+') {
>   		len_used = 1;
>   		++arg2;
>   	}
> @@ -165,7 +169,7 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
>   	if (ep == arg2 || *ep != '\0')
>   		return -1;
>   
> -	if (len_used){
> +	if (len_used) {
>   		/*
>   		 * *addr_last has the length, compute correct *addr_last
>   		 * XXX watch out for the integer overflow! Right now it is
> @@ -187,9 +191,9 @@ addr_spec(char *arg1, char *arg2, ulong *addr_first, ulong *addr_last)
>   }
>   
>   static int
> -flash_fill_sect_ranges (ulong addr_first, ulong addr_last,
> -			int *s_first, int *s_last,
> -			int *s_count )
> +flash_fill_sect_ranges(ulong addr_first, ulong addr_last,
> +		       int *s_first, int *s_last,
> +		       int *s_count)
>   {
>   	flash_info_t *info;
>   	ulong bank;
> @@ -197,27 +201,25 @@ flash_fill_sect_ranges (ulong addr_first, ulong addr_last,
>   
>   	*s_count = 0;
>   
> -	for (bank=0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
>   		s_first[bank] = -1;	/* first sector to erase	*/
> -		s_last [bank] = -1;	/* last  sector to erase	*/
> +		s_last[bank] = -1;	/* last  sector to erase	*/
>   	}
>   
> -	for (bank=0,info = &flash_info[0];
> +	for (bank = 0, info = &flash_info[0];
>   	     (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (addr_first <= addr_last);
>   	     ++bank, ++info) {
>   		ulong b_end;
>   		int sect;
>   		short s_end;
>   
> -		if (info->flash_id == FLASH_UNKNOWN) {
> +		if (info->flash_id == FLASH_UNKNOWN)
>   			continue;
> -		}
>   
>   		b_end = info->start[0] + info->size - 1;	/* bank end addr */
>   		s_end = info->sector_count - 1;			/* last sector   */
>   
> -
> -		for (sect=0; sect < info->sector_count; ++sect) {
> +		for (sect = 0; sect < info->sector_count; ++sect) {
>   			ulong end;	/* last address in current sect	*/
>   
>   			end = (sect == s_end) ? b_end : info->start[sect + 1] - 1;
> @@ -227,40 +229,37 @@ flash_fill_sect_ranges (ulong addr_first, ulong addr_last,
>   			if (addr_last < info->start[sect])
>   				continue;
>   
> -			if (addr_first == info->start[sect]) {
> +			if (addr_first == info->start[sect])
>   				s_first[bank] = sect;
> -			}
> -			if (addr_last  == end) {
> +
> +			if (addr_last  == end)
>   				s_last[bank]  = sect;
> -			}
>   		}
>   		if (s_first[bank] >= 0) {
>   			if (s_last[bank] < 0) {
>   				if (addr_last > b_end) {
>   					s_last[bank] = s_end;
>   				} else {
> -					puts ("Error: end address"
> -						" not on sector boundary\n");
> +					puts("Error: end address not on sector boundary\n");
>   					rcode = 1;
>   					break;
>   				}
>   			}
>   			if (s_last[bank] < s_first[bank]) {
> -				puts ("Error: end sector"
> -					" precedes start sector\n");
> +				puts("Error: end sector precedes start sector\n");
>   				rcode = 1;
>   				break;
>   			}
>   			sect = s_last[bank];
> -			addr_first = (sect == s_end) ? b_end + 1: info->start[sect + 1];
> +			addr_first = (sect == s_end) ? b_end + 1 : info->start[sect + 1];
>   			(*s_count) += s_last[bank] - s_first[bank] + 1;
>   		} else if (addr_first >= info->start[0] && addr_first < b_end) {
> -			puts ("Error: start address not on sector boundary\n");
> +			puts("Error: start address not on sector boundary\n");
>   			rcode = 1;
>   			break;
>   		} else if (s_last[bank] >= 0) {
> -			puts ("Error: cannot span across banks when they are"
> -			       " mapped in reverse order\n");
> +			puts("Error: cannot span across banks when they are"
> +			     " mapped in reverse order\n");
>   			rcode = 1;
>   			break;
>   		}
> @@ -279,8 +278,8 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   #ifdef CONFIG_MTD_NOR_FLASH
>   	if (argc == 1) {	/* print info for all FLASH banks */
> -		for (bank=0; bank <CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> -			printf ("\nBank # %ld: ", bank+1);
> +		for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +			printf("\nBank # %ld: ", bank + 1);
>   
>   			flash_print_info(&flash_info[bank]);
>   		}
> @@ -288,12 +287,12 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
>   	}
>   
>   	bank = hextoul(argv[1], NULL);
> -	if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
> -		printf ("Only FLASH Banks # 1 ... # %d supported\n",
> -			CONFIG_SYS_MAX_FLASH_BANKS);
> +	if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
> +		printf("Only FLASH Banks # 1 ... # %d supported\n",
> +		       CONFIG_SYS_MAX_FLASH_BANKS);
>   		return 1;
>   	}
> -	printf ("\nBank # %ld: ", bank);
> +	printf("\nBank # %ld: ", bank);
>   	flash_print_info(&flash_info[bank - 1]);
>   #endif /* CONFIG_MTD_NOR_FLASH */
>   	return 0;
> @@ -317,28 +316,29 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
>   		return CMD_RET_USAGE;
>   
>   	if (strcmp(argv[1], "all") == 0) {
> -		for (bank=1; bank<=CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> -			printf ("Erase Flash Bank # %ld ", bank);
> -			info = &flash_info[bank-1];
> +		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +			printf("Erase Flash Bank # %ld ", bank);
> +			info = &flash_info[bank - 1];
>   			rcode = flash_erase(info, 0, info->sector_count - 1);
>   		}
>   		return rcode;
>   	}
>   
> -	if ((n = abbrev_spec(argv[1], &info, &sect_first, &sect_last)) != 0) {
> +	n = abbrev_spec(argv[1], &info, &sect_first, &sect_last);
> +	if (n) {
>   		if (n < 0) {
> -			puts ("Bad sector specification\n");
> +			puts("Bad sector specification\n");
>   			return 1;
>   		}
> -		printf ("Erase Flash Sectors %d-%d in Bank # %zu ",
> -			sect_first, sect_last, (info-flash_info)+1);
> +		printf("Erase Flash Sectors %d-%d in Bank # %zu ",
> +		       sect_first, sect_last, (info - flash_info) + 1);
>   		rcode = flash_erase(info, sect_first, sect_last);
>   		return rcode;
>   	}
>   
>   #if defined(CONFIG_CMD_MTDPARTS)
>   	/* erase <part-id> - erase partition */
> -	if ((argc == 2) && (mtd_id_parse(argv[1], NULL, &dev_type, &dev_num) == 0)) {
> +	if (argc == 2 && mtd_id_parse(argv[1], NULL, &dev_type, &dev_num) == 0) {
>   		mtdparts_init();
>   		if (find_dev_and_part(argv[1], &dev, &pnum, &part) == 0) {
>   			if (dev->id->type == MTD_DEV_TYPE_NOR) {
> @@ -347,10 +347,9 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
>   				addr_first = part->offset + info->start[0];
>   				addr_last = addr_first + part->size - 1;
>   
> -				printf ("Erase Flash Partition %s, "
> -						"bank %ld, 0x%08lx - 0x%08lx ",
> -						argv[1], bank, addr_first,
> -						addr_last);
> +				printf("Erase Flash Partition %s, bank %ld, 0x%08lx - 0x%08lx ",
> +				       argv[1], bank, addr_first,
> +				       addr_last);
>   
>   				rcode = flash_sect_erase(addr_first, addr_last);
>   				return rcode;
> @@ -367,19 +366,19 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   	if (strcmp(argv[1], "bank") == 0) {
>   		bank = hextoul(argv[2], NULL);
> -		if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
> -			printf ("Only FLASH Banks # 1 ... # %d supported\n",
> -				CONFIG_SYS_MAX_FLASH_BANKS);
> +		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
> +			printf("Only FLASH Banks # 1 ... # %d supported\n",
> +			       CONFIG_SYS_MAX_FLASH_BANKS);
>   			return 1;
>   		}
> -		printf ("Erase Flash Bank # %ld ", bank);
> -		info = &flash_info[bank-1];
> +		printf("Erase Flash Bank # %ld ", bank);
> +		info = &flash_info[bank - 1];
>   		rcode = flash_erase(info, 0, info->sector_count - 1);
>   		return rcode;
>   	}
>   
> -	if (addr_spec(argv[1], argv[2], &addr_first, &addr_last) < 0){
> -		printf ("Bad address format\n");
> +	if (addr_spec(argv[1], argv[2], &addr_first, &addr_last) < 0) {
> +		printf("Bad address format\n");
>   		return 1;
>   	}
>   
> @@ -403,14 +402,13 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
>   	int planned;
>   	int rcode = 0;
>   
> -	rcode = flash_fill_sect_ranges (addr_first, addr_last,
> -					s_first, s_last, &planned );
> +	rcode = flash_fill_sect_ranges(addr_first, addr_last, s_first, s_last, &planned);
>   
> -	if (planned && (rcode == 0)) {
> -		for (bank=0,info = &flash_info[0];
> -		     (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (rcode == 0);
> +	if (planned && rcode == 0) {
> +		for (bank = 0, info = &flash_info[0];
> +		     bank < CONFIG_SYS_MAX_FLASH_BANKS && rcode == 0;
>   		     ++bank, ++info) {
> -			if (s_first[bank]>=0) {
> +			if (s_first[bank] >= 0) {
>   				erased += s_last[bank] - s_first[bank] + 1;
>   				debug("Erase Flash from 0x%08lx to 0x%08lx in Bank # %ld ",
>   				      info->start[s_first[bank]],
> @@ -425,8 +423,7 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
>   		if (rcode == 0)
>   			printf("Erased %d sectors\n", erased);
>   	} else if (rcode == 0) {
> -		puts ("Error: start and/or end address"
> -			" not on sector boundary\n");
> +		puts("Error: start and/or end address not on sector boundary\n");
>   		rcode = 1;
>   	}
>   	return rcode;
> @@ -466,50 +463,52 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   #ifdef CONFIG_MTD_NOR_FLASH
>   	if (strcmp(argv[2], "all") == 0) {
> -		for (bank=1; bank<=CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> -			info = &flash_info[bank-1];
> -			if (info->flash_id == FLASH_UNKNOWN) {
> +		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +			info = &flash_info[bank - 1];
> +			if (info->flash_id == FLASH_UNKNOWN)
>   				continue;
> -			}
> -			printf ("%sProtect Flash Bank # %ld\n",
> -				p ? "" : "Un-", bank);
>   
> -			for (i=0; i<info->sector_count; ++i) {
> +			printf("%sProtect Flash Bank # %ld\n",
> +			       p ? "" : "Un-", bank);
> +
> +			for (i = 0; i < info->sector_count; ++i) {
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
>   				if (flash_real_protect(info, i, p))
>   					rcode = 1;
> -				putc ('.');
> +				putc('.');
>   #else
>   				info->protect[i] = p;
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
>   			}
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
> -			if (!rcode) puts (" done\n");
> +			if (!rcode)
> +				puts(" done\n");
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
>   		}
>   		return rcode;
>   	}
> -
> -	if ((n = abbrev_spec(argv[2], &info, &sect_first, &sect_last)) != 0) {
> +	n = abbrev_spec(argv[2], &info, &sect_first, &sect_last);
> +	if (n) {
>   		if (n < 0) {
> -			puts ("Bad sector specification\n");
> +			puts("Bad sector specification\n");
>   			return 1;
>   		}
>   		printf("%sProtect Flash Sectors %d-%d in Bank # %zu\n",
> -			p ? "" : "Un-", sect_first, sect_last,
> -			(info-flash_info)+1);
> +		       p ? "" : "Un-", sect_first, sect_last,
> +		       (info - flash_info) + 1);
>   		for (i = sect_first; i <= sect_last; i++) {
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
>   			if (flash_real_protect(info, i, p))
>   				rcode =  1;
> -			putc ('.');
> +			putc('.');
>   #else
>   			info->protect[i] = p;
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
>   		}
>   
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
> -		if (!rcode) puts (" done\n");
> +		if (!rcode)
> +			puts(" done\n");
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
>   
>   		return rcode;
> @@ -517,7 +516,7 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   #if defined(CONFIG_CMD_MTDPARTS)
>   	/* protect on/off <part-id> */
> -	if ((argc == 3) && (mtd_id_parse(argv[2], NULL, &dev_type, &dev_num) == 0)) {
> +	if (argc == 3 && mtd_id_parse(argv[2], NULL, &dev_type, &dev_num) == 0) {
>   		mtdparts_init();
>   		if (find_dev_and_part(argv[2], &dev, &pnum, &part) == 0) {
>   			if (dev->id->type == MTD_DEV_TYPE_NOR) {
> @@ -526,10 +525,10 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
>   				addr_first = part->offset + info->start[0];
>   				addr_last = addr_first + part->size - 1;
>   
> -				printf ("%sProtect Flash Partition %s, "
> -						"bank %ld, 0x%08lx - 0x%08lx\n",
> -						p ? "" : "Un", argv[1],
> -						bank, addr_first, addr_last);
> +				printf("%sProtect Flash Partition %s, "
> +				       "bank %ld, 0x%08lx - 0x%08lx\n",
> +				       p ? "" : "Un", argv[1],
> +				       bank, addr_first, addr_last);
>   
>   				rcode = flash_sect_protect(p, addr_first,
>   							   addr_last);
> @@ -537,7 +536,7 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
>   			}
>   
>   			printf("cannot %sprotect, not a NOR device\n",
> -					p ? "" : "un");
> +			       p ? "" : "un");
>   			return 1;
>   		}
>   	}
> @@ -548,37 +547,38 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   	if (strcmp(argv[2], "bank") == 0) {
>   		bank = hextoul(argv[3], NULL);
> -		if ((bank < 1) || (bank > CONFIG_SYS_MAX_FLASH_BANKS)) {
> -			printf ("Only FLASH Banks # 1 ... # %d supported\n",
> -				CONFIG_SYS_MAX_FLASH_BANKS);
> +		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
> +			printf("Only FLASH Banks # 1 ... # %d supported\n",
> +			       CONFIG_SYS_MAX_FLASH_BANKS);
>   			return 1;
>   		}
> -		printf ("%sProtect Flash Bank # %ld\n",
> -			p ? "" : "Un-", bank);
> -		info = &flash_info[bank-1];
> +		printf("%sProtect Flash Bank # %ld\n",
> +		       p ? "" : "Un-", bank);
> +		info = &flash_info[bank - 1];
>   
>   		if (info->flash_id == FLASH_UNKNOWN) {
> -			puts ("missing or unknown FLASH type\n");
> +			puts("missing or unknown FLASH type\n");
>   			return 1;
>   		}
> -		for (i=0; i<info->sector_count; ++i) {
> +		for (i = 0; i < info->sector_count; ++i) {
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
>   			if (flash_real_protect(info, i, p))
>   				rcode =  1;
> -			putc ('.');
> +			putc('.');
>   #else
>   			info->protect[i] = p;
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
>   		}
>   
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
> -		if (!rcode) puts (" done\n");
> +		if (!rcode)
> +			puts(" done\n");
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
>   
>   		return rcode;
>   	}
>   
> -	if (addr_spec(argv[2], argv[3], &addr_first, &addr_last) < 0){
> +	if (addr_spec(argv[2], argv[3], &addr_first, &addr_last) < 0) {
>   		printf("Bad address format\n");
>   		return 1;
>   	}
> @@ -601,26 +601,26 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
>   	int planned;
>   	int rcode;
>   
> -	rcode = flash_fill_sect_ranges( addr_first, addr_last, s_first, s_last, &planned );
> +	rcode = flash_fill_sect_ranges(addr_first, addr_last, s_first, s_last, &planned);
>   
>   	protected = 0;
>   
> -	if (planned && (rcode == 0)) {
> -		for (bank=0,info = &flash_info[0]; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
> -			if (info->flash_id == FLASH_UNKNOWN) {
> +	if (planned && rcode == 0) {
> +		for (bank = 0, info = &flash_info[0];
> +		     bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
> +			if (info->flash_id == FLASH_UNKNOWN)
>   				continue;
> -			}
>   
> -			if (s_first[bank]>=0 && s_first[bank]<=s_last[bank]) {
> +			if (s_first[bank] >= 0 && s_first[bank] <= s_last[bank]) {
>   				debug("%sProtecting sectors %d..%d in bank %ld\n",
>   				      p ? "" : "Un-", s_first[bank],
>   				      s_last[bank], bank + 1);
>   				protected += s_last[bank] - s_first[bank] + 1;
> -				for (i=s_first[bank]; i<=s_last[bank]; ++i) {
> +				for (i = s_first[bank]; i <= s_last[bank]; ++i) {
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
>   					if (flash_real_protect(info, i, p))
>   						rcode = 1;
> -					putc ('.');
> +					putc('.');
>   #else
>   					info->protect[i] = p;
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
> @@ -628,21 +628,19 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
>   			}
>   		}
>   #if defined(CONFIG_SYS_FLASH_PROTECTION)
> -		puts (" done\n");
> +		puts(" done\n");
>   #endif	/* CONFIG_SYS_FLASH_PROTECTION */
>   
> -		printf ("%sProtected %d sectors\n",
> -			p ? "" : "Un-", protected);
> +		printf("%sProtected %d sectors\n",
> +		       p ? "" : "Un-", protected);
>   	} else if (rcode == 0) {
> -		puts ("Error: start and/or end address"
> -			" not on sector boundary\n");
> +		puts("Error: start and/or end address not on sector boundary\n");
>   		rcode = 1;
>   	}
>   	return rcode;
>   }
>   #endif /* CONFIG_MTD_NOR_FLASH */
>   
> -
>   /**************************************************/
>   #if defined(CONFIG_CMD_MTDPARTS)
>   # define TMP_ERASE	"erase <part-id>\n    - erase partition\n"
> @@ -667,8 +665,7 @@ U_BOOT_CMD(
>   	"start end\n"
>   	"    - erase FLASH from addr 'start' to addr 'end'\n"
>   	"erase start +len\n"
> -	"    - erase FLASH from addr 'start' to the end of sect "
> -	"w/addr 'start'+'len'-1\n"
> +	"    - erase FLASH from addr 'start' to the end of sect w/addr 'start'+'len'-1\n"
>   	"erase N:SF[-SL]\n    - erase sectors SF-SL in FLASH bank # N\n"
>   	"erase bank N\n    - erase FLASH bank # N\n"
>   	TMP_ERASE
> @@ -681,8 +678,7 @@ U_BOOT_CMD(
>   	"on  start end\n"
>   	"    - protect FLASH from addr 'start' to addr 'end'\n"
>   	"protect on start +len\n"
> -	"    - protect FLASH from addr 'start' to end of sect "
> -	"w/addr 'start'+'len'-1\n"
> +	"    - protect FLASH from addr 'start' to end of sect w/addr 'start'+'len'-1\n"
>   	"protect on  N:SF[-SL]\n"
>   	"    - protect sectors SF-SL in FLASH bank # N\n"
>   	"protect on  bank N\n    - protect FLASH bank # N\n"
> @@ -691,8 +687,7 @@ U_BOOT_CMD(
>   	"protect off start end\n"
>   	"    - make FLASH from addr 'start' to addr 'end' writable\n"
>   	"protect off start +len\n"
> -	"    - make FLASH from addr 'start' to end of sect "
> -	"w/addr 'start'+'len'-1 wrtable\n"
> +	"    - make FLASH from addr 'start' to end of sect w/addr 'start'+'len'-1 wrtable\n"
>   	"protect off N:SF[-SL]\n"
>   	"    - make sectors SF-SL writable in FLASH bank # N\n"
>   	"protect off bank N\n    - make FLASH bank # N writable\n"
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS
  2022-01-04 13:23 ` [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS Patrick Delaunay
@ 2022-01-05  8:43   ` Stefan Roese
  2022-01-21 19:03   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Stefan Roese @ 2022-01-05  8:43 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Simon Glass, Jagan Teki, Lukasz Majewski,
	Marek Behún, Vignesh R, U-Boot STM32

On 1/4/22 14:23, Patrick Delaunay wrote:
> Replace CONFIG_SYS_MAX_FLASH_BANKS by CFI_FLASH_BANKS to prepare
> Kconfig migration and avoid to redefine CONFIG_SYS_MAX_FLASH_BANKS
> in cfi_flash.h.
> 
> After this patch CONFIG_SYS_MAX_FLASH_BANKS should be never used in
> the cfi code: use CFI_MAX_FLASH_BANKS for struct size or CFI_FLASH_BANKS
> for number of CFI banks which can be dynamic.
> 
> This patch modify all the files which include mtd/cfi_flash.h.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
> Changes in v1:
> - update drivers/mtd/spi/spi-nor-core.c for cfi_mtd_nb
>    needed after RFC rebase
> 
>   cmd/bootm.c                    |  2 +-
>   cmd/flash.c                    | 34 +++++++++++++++++-----------------
>   common/flash.c                 |  2 +-
>   common/update.c                |  4 ++--
>   drivers/mtd/cfi_flash.c        |  4 ++--
>   drivers/mtd/cfi_mtd.c          |  4 ++--
>   drivers/mtd/spi/spi-nor-core.c |  5 ++---
>   include/mtd/cfi_flash.h        |  9 ++++++---
>   8 files changed, 33 insertions(+), 31 deletions(-)
> 
> diff --git a/cmd/bootm.c b/cmd/bootm.c
> index b82a872a86..e8b7066888 100644
> --- a/cmd/bootm.c
> +++ b/cmd/bootm.c
> @@ -338,7 +338,7 @@ static int do_imls_nor(void)
>   	void *hdr;
>   
>   	for (i = 0, info = &flash_info[0];
> -		i < CONFIG_SYS_MAX_FLASH_BANKS; ++i, ++info) {
> +		i < CFI_FLASH_BANKS; ++i, ++info) {
>   
>   		if (info->flash_id == FLASH_UNKNOWN)
>   			goto next_bank;
> diff --git a/cmd/flash.c b/cmd/flash.c
> index 594e2caa59..db4bb2529c 100644
> --- a/cmd/flash.c
> +++ b/cmd/flash.c
> @@ -60,7 +60,7 @@ abbrev_spec(char *str, flash_info_t **pinfo, int *psf, int *psl)
>   
>   	bank = dectoul(str, &ep);
>   	if (ep == str || *ep != '\0' ||
> -	    bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS)
> +	    bank < 1 || bank > CFI_FLASH_BANKS)
>   		return -1;
>   
>   	fp = &flash_info[bank - 1];
> @@ -104,7 +104,7 @@ int flash_sect_roundb(ulong *addr)
>   
>   	/* find the end addr of the sector where the *addr is */
>   	found = 0;
> -	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS && !found; ++bank) {
> +	for (bank = 0; bank < CFI_FLASH_BANKS && !found; ++bank) {
>   		info = &flash_info[bank];
>   		for (i = 0; i < info->sector_count && !found; ++i) {
>   			/* get the end address of the sector */
> @@ -201,13 +201,13 @@ flash_fill_sect_ranges(ulong addr_first, ulong addr_last,
>   
>   	*s_count = 0;
>   
> -	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +	for (bank = 0; bank < CFI_FLASH_BANKS; ++bank) {
>   		s_first[bank] = -1;	/* first sector to erase	*/
>   		s_last[bank] = -1;	/* last  sector to erase	*/
>   	}
>   
>   	for (bank = 0, info = &flash_info[0];
> -	     (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (addr_first <= addr_last);
> +	     (bank < CFI_FLASH_BANKS) && (addr_first <= addr_last);
>   	     ++bank, ++info) {
>   		ulong b_end;
>   		int sect;
> @@ -278,7 +278,7 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   #ifdef CONFIG_MTD_NOR_FLASH
>   	if (argc == 1) {	/* print info for all FLASH banks */
> -		for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +		for (bank = 0; bank < CFI_FLASH_BANKS; ++bank) {
>   			printf("\nBank # %ld: ", bank + 1);
>   
>   			flash_print_info(&flash_info[bank]);
> @@ -287,9 +287,9 @@ static int do_flinfo(struct cmd_tbl *cmdtp, int flag, int argc,
>   	}
>   
>   	bank = hextoul(argv[1], NULL);
> -	if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
> +	if (bank < 1 || bank > CFI_FLASH_BANKS) {
>   		printf("Only FLASH Banks # 1 ... # %d supported\n",
> -		       CONFIG_SYS_MAX_FLASH_BANKS);
> +		       CFI_FLASH_BANKS);
>   		return 1;
>   	}
>   	printf("\nBank # %ld: ", bank);
> @@ -316,7 +316,7 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
>   		return CMD_RET_USAGE;
>   
>   	if (strcmp(argv[1], "all") == 0) {
> -		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +		for (bank = 1; bank <= CFI_FLASH_BANKS; ++bank) {
>   			printf("Erase Flash Bank # %ld ", bank);
>   			info = &flash_info[bank - 1];
>   			rcode = flash_erase(info, 0, info->sector_count - 1);
> @@ -366,9 +366,9 @@ static int do_flerase(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   	if (strcmp(argv[1], "bank") == 0) {
>   		bank = hextoul(argv[2], NULL);
> -		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
> +		if (bank < 1 || bank > CFI_FLASH_BANKS) {
>   			printf("Only FLASH Banks # 1 ... # %d supported\n",
> -			       CONFIG_SYS_MAX_FLASH_BANKS);
> +			       CFI_FLASH_BANKS);
>   			return 1;
>   		}
>   		printf("Erase Flash Bank # %ld ", bank);
> @@ -397,7 +397,7 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
>   {
>   	flash_info_t *info;
>   	ulong bank;
> -	int s_first[CONFIG_SYS_MAX_FLASH_BANKS], s_last[CONFIG_SYS_MAX_FLASH_BANKS];
> +	int s_first[CFI_FLASH_BANKS], s_last[CFI_FLASH_BANKS];
>   	int erased = 0;
>   	int planned;
>   	int rcode = 0;
> @@ -406,7 +406,7 @@ int flash_sect_erase(ulong addr_first, ulong addr_last)
>   
>   	if (planned && rcode == 0) {
>   		for (bank = 0, info = &flash_info[0];
> -		     bank < CONFIG_SYS_MAX_FLASH_BANKS && rcode == 0;
> +		     bank < CFI_FLASH_BANKS && rcode == 0;
>   		     ++bank, ++info) {
>   			if (s_first[bank] >= 0) {
>   				erased += s_last[bank] - s_first[bank] + 1;
> @@ -463,7 +463,7 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   #ifdef CONFIG_MTD_NOR_FLASH
>   	if (strcmp(argv[2], "all") == 0) {
> -		for (bank = 1; bank <= CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +		for (bank = 1; bank <= CFI_FLASH_BANKS; ++bank) {
>   			info = &flash_info[bank - 1];
>   			if (info->flash_id == FLASH_UNKNOWN)
>   				continue;
> @@ -547,9 +547,9 @@ static int do_protect(struct cmd_tbl *cmdtp, int flag, int argc,
>   
>   	if (strcmp(argv[2], "bank") == 0) {
>   		bank = hextoul(argv[3], NULL);
> -		if (bank < 1 || bank > CONFIG_SYS_MAX_FLASH_BANKS) {
> +		if (bank < 1 || bank > CFI_FLASH_BANKS) {
>   			printf("Only FLASH Banks # 1 ... # %d supported\n",
> -			       CONFIG_SYS_MAX_FLASH_BANKS);
> +			       CFI_FLASH_BANKS);
>   			return 1;
>   		}
>   		printf("%sProtect Flash Bank # %ld\n",
> @@ -596,7 +596,7 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
>   {
>   	flash_info_t *info;
>   	ulong bank;
> -	int s_first[CONFIG_SYS_MAX_FLASH_BANKS], s_last[CONFIG_SYS_MAX_FLASH_BANKS];
> +	int s_first[CFI_FLASH_BANKS], s_last[CFI_FLASH_BANKS];
>   	int protected, i;
>   	int planned;
>   	int rcode;
> @@ -607,7 +607,7 @@ int flash_sect_protect(int p, ulong addr_first, ulong addr_last)
>   
>   	if (planned && rcode == 0) {
>   		for (bank = 0, info = &flash_info[0];
> -		     bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
> +		     bank < CFI_FLASH_BANKS; ++bank, ++info) {
>   			if (info->flash_id == FLASH_UNKNOWN)
>   				continue;
>   
> diff --git a/common/flash.c b/common/flash.c
> index bb82385c1f..f939c2f9e9 100644
> --- a/common/flash.c
> +++ b/common/flash.c
> @@ -91,7 +91,7 @@ addr2info(ulong addr)
>   	flash_info_t *info;
>   	int i;
>   
> -	for (i=0, info = &flash_info[0]; i<CONFIG_SYS_MAX_FLASH_BANKS; ++i, ++info) {
> +	for (i = 0, info = &flash_info[0]; i < CFI_FLASH_BANKS; ++i, ++info) {
>   		if (info->flash_id != FLASH_UNKNOWN &&
>   		    addr >= info->start[0] &&
>   		    /* WARNING - The '- 1' is needed if the flash
> diff --git a/common/update.c b/common/update.c
> index f5c8684f1b..b9ad475d9d 100644
> --- a/common/update.c
> +++ b/common/update.c
> @@ -112,12 +112,12 @@ static int update_flash_protect(int prot, ulong addr_first, ulong addr_last)
>   
>   	if (prot == 0) {
>   		saved_prot_info =
> -			calloc(CONFIG_SYS_MAX_FLASH_BANKS * CONFIG_SYS_MAX_FLASH_SECT, 1);
> +			calloc(CFI_FLASH_BANKS * CONFIG_SYS_MAX_FLASH_SECT, 1);
>   		if (!saved_prot_info)
>   			return 1;
>   	}
>   
> -	for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
> +	for (bank = 0; bank < CFI_FLASH_BANKS; ++bank) {
>   		cnt = 0;
>   		info = &flash_info[bank];
>   
> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
> index 9c27fea5d8..71cefc125f 100644
> --- a/drivers/mtd/cfi_flash.c
> +++ b/drivers/mtd/cfi_flash.c
> @@ -191,7 +191,7 @@ static flash_info_t *flash_get_info(ulong base)
>   	int i;
>   	flash_info_t *info;
>   
> -	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
> +	for (i = 0; i < CFI_FLASH_BANKS; i++) {
>   		info = &flash_info[i];
>   		if (info->size && info->start[0] <= base &&
>   		    base <= info->start[0] + info->size - 1)
> @@ -2419,7 +2419,7 @@ unsigned long flash_init(void)
>   #endif
>   
>   	/* Init: no FLASHes known */
> -	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; ++i) {
> +	for (i = 0; i < CFI_FLASH_BANKS; ++i) {
>   		flash_info[i].flash_id = FLASH_UNKNOWN;
>   
>   		/* Optionally write flash configuration register */
> diff --git a/drivers/mtd/cfi_mtd.c b/drivers/mtd/cfi_mtd.c
> index 2295bb7220..f998ffaf26 100644
> --- a/drivers/mtd/cfi_mtd.c
> +++ b/drivers/mtd/cfi_mtd.c
> @@ -207,10 +207,10 @@ int cfi_mtd_init(void)
>   	int error, i;
>   #ifdef CONFIG_MTD_CONCAT
>   	int devices_found = 0;
> -	struct mtd_info *mtd_list[CONFIG_SYS_MAX_FLASH_BANKS];
> +	struct mtd_info *mtd_list[CFI_FLASH_BANKS];
>   #endif
>   
> -	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
> +	for (i = 0; i < CFI_FLASH_BANKS; i++) {
>   		fi = &flash_info[i];
>   		mtd = &cfi_mtd_info[i];
>   
> diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
> index 4388a08a90..6acaa84d2b 100644
> --- a/drivers/mtd/spi/spi-nor-core.c
> +++ b/drivers/mtd/spi/spi-nor-core.c
> @@ -3707,9 +3707,8 @@ int spi_nor_scan(struct spi_nor *nor)
>   	int ret;
>   	int cfi_mtd_nb = 0;
>   
> -#ifdef CONFIG_SYS_MAX_FLASH_BANKS
> -	cfi_mtd_nb = CONFIG_SYS_MAX_FLASH_BANKS;
> -#endif
> +	if (IS_ENABLED(CONFIG_FLASH_CFI_MTD))
> +		cfi_mtd_nb = CFI_FLASH_BANKS;
>   
>   	/* Reset SPI protocol for all commands. */
>   	nor->reg_proto = SNOR_PROTO_1_1_1;
> diff --git a/include/mtd/cfi_flash.h b/include/mtd/cfi_flash.h
> index a1af6fc200..d62c8f18fc 100644
> --- a/include/mtd/cfi_flash.h
> +++ b/include/mtd/cfi_flash.h
> @@ -154,21 +154,24 @@ struct cfi_pri_hdr {
>   /*
>    * CFI_MAX_FLASH_BANKS only used for flash_info struct declaration.
>    *
> - * Use CONFIG_SYS_MAX_FLASH_BANKS_DETECT if defined
> + * CFI_FLASH_BANKS selects the correct number of available banks =
> + * cfi_flash_num_flash_banks when CONFIG_SYS_MAX_FLASH_BANKS_DETECT is defined
> + * or CONFIG_SYS_MAX_FLASH_BANKS
>    */
>   #if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
>   #define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   /* map to cfi_flash_num_flash_banks only when supported */
>   #if IS_ENABLED(CONFIG_FLASH_CFI_DRIVER) && \
>       (!IS_ENABLED(CONFIG_SPL_BUILD) || IS_ENABLED(CONFIG_SPL_MTD_SUPPORT))
> -#define CONFIG_SYS_MAX_FLASH_BANKS	(cfi_flash_num_flash_banks)
> +#define CFI_FLASH_BANKS		(cfi_flash_num_flash_banks)
>   /* board code can update this variable before CFI detection */
>   extern int cfi_flash_num_flash_banks;
>   #else
> -#define CONFIG_SYS_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS_DETECT
> +#define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #endif
>   #else
>   #define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS
> +#define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS
>   #endif
>   
>   phys_addr_t cfi_flash_bank_addr(int i);
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean
  2022-01-04 13:23 ` [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean Patrick Delaunay
@ 2022-01-05  8:43   ` Stefan Roese
  2022-01-21 19:03   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Stefan Roese @ 2022-01-05  8:43 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Simon Glass, Andes, Lukasz Majewski, Marek Vasut,
	Nobuhiro Iwamatsu, Paul Burton, Rick Chen, Thomas Chou,
	Tuomas Tynkkynen, U-Boot STM32

On 1/4/22 14:23, Patrick Delaunay wrote:
> Prepare migration to Kconfig.
> 
> CONFIG_SYS_MAX_FLASH_BANKS_DETECT becomes boolean and
> CONFIG_SYS_MAX_FLASH_BANKS define the MAX size, also used
> for detection when CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
> (CFI_MAX_FLASH_BANKS = CONFIG_SYS_MAX_FLASH_BANKS).
> 
> CONFIG_SYS_MAX_FLASH_BANKS become mandatory when
> CONFIG_SYS_MAX_FLASH_BANKS_DETECT is activated.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
> Changes in v1:
> - solve issue in cfi_flash.h, with
>    CFI_FLASH_BANKS=CONFIG_SYS_MAX_FLASH_BANKS_DETECT
> 
>   drivers/mtd/cfi_flash.c          |  2 +-
>   include/configs/3c120_devboard.h |  3 ++-
>   include/configs/adp-ae3xx.h      |  4 +---
>   include/configs/adp-ag101p.h     |  2 --
>   include/configs/ax25-ae350.h     |  4 +---
>   include/configs/bmips_bcm6338.h  |  3 ++-
>   include/configs/bmips_bcm6348.h  |  3 ++-
>   include/configs/bmips_bcm6358.h  |  3 ++-
>   include/configs/bmips_bcm6368.h  |  3 ++-
>   include/configs/boston.h         |  4 +++-
>   include/configs/draak.h          |  3 ++-
>   include/configs/ebisu.h          |  3 ++-
>   include/configs/j721e_evm.h      |  3 ++-
>   include/configs/mccmon6.h        |  3 ++-
>   include/configs/qemu-arm.h       |  3 ++-
>   include/configs/salvator-x.h     |  3 ++-
>   include/configs/ulcb.h           |  3 ++-
>   include/mtd/cfi_flash.h          | 10 +++++-----
>   18 files changed, 35 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
> index 71cefc125f..aae3ea0d1b 100644
> --- a/drivers/mtd/cfi_flash.c
> +++ b/drivers/mtd/cfi_flash.c
> @@ -96,7 +96,7 @@ static u16 cfi_flash_config_reg(int i)
>   }
>   
>   #if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
> -int cfi_flash_num_flash_banks = CONFIG_SYS_MAX_FLASH_BANKS_DETECT;
> +int cfi_flash_num_flash_banks = CFI_MAX_FLASH_BANKS;
>   #else
>   int cfi_flash_num_flash_banks;
>   #endif
> diff --git a/include/configs/3c120_devboard.h b/include/configs/3c120_devboard.h
> index f7ad7efb0d..e52fedcf39 100644
> --- a/include/configs/3c120_devboard.h
> +++ b/include/configs/3c120_devboard.h
> @@ -20,7 +20,8 @@
>    * CFI Flash
>    */
>   #define CONFIG_SYS_CFI_FLASH_STATUS_POLL /* fix amd flash issue */
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	512
>   
>   /*
> diff --git a/include/configs/adp-ae3xx.h b/include/configs/adp-ae3xx.h
> index 58e8526048..11eff3852d 100644
> --- a/include/configs/adp-ae3xx.h
> +++ b/include/configs/adp-ae3xx.h
> @@ -156,7 +156,7 @@
>   
>   /* support JEDEC */
>   #ifdef CONFIG_CFI_FLASH
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #endif
>   
>   /* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
> @@ -173,9 +173,7 @@
>    * There are 4 banks supported for this Controller,
>    * but we have only 1 bank connected to flash on board
>    */
> -#ifndef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#endif
>   #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
>   
>   /* max number of sectors on one chip */
> diff --git a/include/configs/adp-ag101p.h b/include/configs/adp-ag101p.h
> index 1022764985..31ef30adc6 100644
> --- a/include/configs/adp-ag101p.h
> +++ b/include/configs/adp-ag101p.h
> @@ -286,9 +286,7 @@
>    * There are 4 banks supported for this Controller,
>    * but we have only 1 bank connected to flash on board
>    */
> -#ifndef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#endif
>   #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
>   
>   /* max number of sectors on one chip */
> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
> index 1c3f957d32..2ad0d1589c 100644
> --- a/include/configs/ax25-ae350.h
> +++ b/include/configs/ax25-ae350.h
> @@ -80,7 +80,7 @@
>   
>   /* support JEDEC */
>   #ifdef CONFIG_CFI_FLASH
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #endif/* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
>   #define PHYS_FLASH_1			0x88000000	/* BANK 0 */
>   #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_1
> @@ -95,9 +95,7 @@
>    * There are 4 banks supported for this Controller,
>    * but we have only 1 bank connected to flash on board
>   */
> -#ifndef CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#endif
>   #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
>   
>   /* max number of sectors on one chip */
> diff --git a/include/configs/bmips_bcm6338.h b/include/configs/bmips_bcm6338.h
> index 6eaca1c31b..b7de3f4058 100644
> --- a/include/configs/bmips_bcm6338.h
> +++ b/include/configs/bmips_bcm6338.h
> @@ -22,6 +22,7 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xbfc00000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS		1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6338_H */
> diff --git a/include/configs/bmips_bcm6348.h b/include/configs/bmips_bcm6348.h
> index 5bfbcb779b..5ed0eebce4 100644
> --- a/include/configs/bmips_bcm6348.h
> +++ b/include/configs/bmips_bcm6348.h
> @@ -29,6 +29,7 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xbfc00000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS		1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6348_H */
> diff --git a/include/configs/bmips_bcm6358.h b/include/configs/bmips_bcm6358.h
> index f8c81f698d..829e9f6b17 100644
> --- a/include/configs/bmips_bcm6358.h
> +++ b/include/configs/bmips_bcm6358.h
> @@ -31,6 +31,7 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xbe000000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6358_H */
> diff --git a/include/configs/bmips_bcm6368.h b/include/configs/bmips_bcm6368.h
> index 7d321e14ff..0952b98473 100644
> --- a/include/configs/bmips_bcm6368.h
> +++ b/include/configs/bmips_bcm6368.h
> @@ -31,6 +31,7 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xb8000000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6368_H */
> diff --git a/include/configs/boston.h b/include/configs/boston.h
> index cd70e7bd32..7ac044e929 100644
> --- a/include/configs/boston.h
> +++ b/include/configs/boston.h
> @@ -40,7 +40,9 @@
>   /*
>    * Flash
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT		1024
>   
>   /*
> diff --git a/include/configs/draak.h b/include/configs/draak.h
> index d28cc9d336..412c57f150 100644
> --- a/include/configs/draak.h
> +++ b/include/configs/draak.h
> @@ -23,7 +23,8 @@
>   #define CONFIG_FLASH_SHOW_PROGRESS	45
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/configs/ebisu.h b/include/configs/ebisu.h
> index 081d5e9aaa..87053760e2 100644
> --- a/include/configs/ebisu.h
> +++ b/include/configs/ebisu.h
> @@ -26,7 +26,8 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h
> index 10555d1a6c..acac81ad68 100644
> --- a/include/configs/j721e_evm.h
> +++ b/include/configs/j721e_evm.h
> @@ -60,7 +60,8 @@
>   #define CONFIG_CQSPI_REF_CLK		133333333
>   
>   /* HyperFlash related configuration */
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   /* U-Boot general configuration */
>   #define EXTRA_ENV_J721E_BOARD_SETTINGS					\
> diff --git a/include/configs/mccmon6.h b/include/configs/mccmon6.h
> index 11b9ceb547..aa95864516 100644
> --- a/include/configs/mccmon6.h
> +++ b/include/configs/mccmon6.h
> @@ -37,7 +37,8 @@
>   #define CONFIG_FLASH_VERIFY
>   
>   /* NOR Flash MTD */
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
>   #define CONFIG_SYS_FLASH_BANKS_SIZES	{ (32 * SZ_1M) }
>   
> diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
> index 1287fd1671..fe958ef3c5 100644
> --- a/include/configs/qemu-arm.h
> +++ b/include/configs/qemu-arm.h
> @@ -42,7 +42,8 @@
>   #define CONFIG_SYS_CBSIZE 512
>   
>   #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	2
> +#define CONFIG_SYS_MAX_FLASH_BANKS	2
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256 /* Sector: 256K, Bank: 64M */
>   #define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
>   
> diff --git a/include/configs/salvator-x.h b/include/configs/salvator-x.h
> index c29b34e231..da3e2c8856 100644
> --- a/include/configs/salvator-x.h
> +++ b/include/configs/salvator-x.h
> @@ -24,7 +24,8 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/configs/ulcb.h b/include/configs/ulcb.h
> index bdd6b4b0d9..c22c30c86f 100644
> --- a/include/configs/ulcb.h
> +++ b/include/configs/ulcb.h
> @@ -24,7 +24,8 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS	1
> +#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/mtd/cfi_flash.h b/include/mtd/cfi_flash.h
> index d62c8f18fc..d4aeea7e46 100644
> --- a/include/mtd/cfi_flash.h
> +++ b/include/mtd/cfi_flash.h
> @@ -158,19 +158,19 @@ struct cfi_pri_hdr {
>    * cfi_flash_num_flash_banks when CONFIG_SYS_MAX_FLASH_BANKS_DETECT is defined
>    * or CONFIG_SYS_MAX_FLASH_BANKS
>    */
> +#define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS
> +
>   #if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT)
> -#define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   /* map to cfi_flash_num_flash_banks only when supported */
>   #if IS_ENABLED(CONFIG_FLASH_CFI_DRIVER) && \
>       (!IS_ENABLED(CONFIG_SPL_BUILD) || IS_ENABLED(CONFIG_SPL_MTD_SUPPORT))
>   #define CFI_FLASH_BANKS		(cfi_flash_num_flash_banks)
>   /* board code can update this variable before CFI detection */
>   extern int cfi_flash_num_flash_banks;
> -#else
> -#define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #endif
> -#else
> -#define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS
> +#endif
> +/* default when bank detection is not supported */
> +#ifndef CFI_FLASH_BANKS
>   #define CFI_FLASH_BANKS		CONFIG_SYS_MAX_FLASH_BANKS
>   #endif
>   
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig
  2022-01-04 13:24 ` [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
@ 2022-01-05  8:43   ` Stefan Roese
  2022-01-21 19:03   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Stefan Roese @ 2022-01-05  8:43 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Simon Glass, Aaron Williams, Adam Ford,
	Aleksandar Gerasimovski, Alison Wang, Andes, Andrew F. Davis,
	Angelo Dureghello, Ashish Kumar, Bin Meng, Chee Hong Ang,
	Chin-Liang See, Christophe Leroy, Dalon Westergreen,
	Daniel Schwierzeck, David Feng, Dinh Nguyen, Dirk Eibach,
	Eugen Hristev, Fabio Estevam, Heiko Schocher,
	Heinrich Schuchardt, Igor Opaniuk, Ilko Iliev, Jassi Brar,
	Jens Scharsig, Kamil Lulko, Kristian Amlie, Liviu Dudau,
	Lukasz Majewski, Marek Behún, Marek Vasut,
	Masakazu Mochizuki, Masami Hiramatsu, Max Filippov,
	Michael Walle, Michal Simek, Mingkai Hu, Niel Fourie,
	Nobuhiro Iwamatsu, Patrice Chotard, Paul Burton, Peng Fan,
	Priyanka Jain, Qiang Zhao, Rainer Boschung, Rajesh Bhagat,
	Rasmus Villemoes, Rick Chen, Ruchika Gupta, Sean Anderson,
	Shengzhou Liu, Siew Chin Lim, Simon Guinot, Sinan Akman,
	Stelian Pop, Tetsuyuki Kobayashi, Thomas Chou,
	Thomas Fitzsimmons, TsiChung Liew, Tuomas Tynkkynen, Usama Arif,
	Vikas Manocha, Vladimir Zapolskiy, Wolfgang Denk,
	Wolfgang Wegner, egnite GmbH, uboot-stm32,
	Álvaro Fernández Rojas

On 1/4/22 14:24, Patrick Delaunay wrote:
> Use moveconfig.py script to convert define CONFIG_SYS_MAX_FLASH_BANKS
> and CONFIG_SYS_MAX_FLASH_BANKS_DETECT to Kconfig and move these entries
> to defconfigs.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   README                                       |  3 ---
>   configs/3c120_defconfig                      |  1 +
>   configs/M5253DEMO_defconfig                  |  1 +
>   configs/MPC8548CDS_36BIT_defconfig           |  1 +
>   configs/MPC8548CDS_defconfig                 |  1 +
>   configs/MPC8548CDS_legacy_defconfig          |  1 +
>   configs/P3041DS_NAND_defconfig               |  1 +
>   configs/P3041DS_SDCARD_defconfig             |  1 +
>   configs/P3041DS_SPIFLASH_defconfig           |  1 +
>   configs/P3041DS_defconfig                    |  1 +
>   configs/P4080DS_SDCARD_defconfig             |  1 +
>   configs/P4080DS_SPIFLASH_defconfig           |  1 +
>   configs/P4080DS_defconfig                    |  1 +
>   configs/P5040DS_NAND_defconfig               |  1 +
>   configs/P5040DS_SDCARD_defconfig             |  1 +
>   configs/P5040DS_SPIFLASH_defconfig           |  1 +
>   configs/P5040DS_defconfig                    |  1 +
>   configs/T1042D4RDB_NAND_defconfig            |  1 +
>   configs/T1042D4RDB_SDCARD_defconfig          |  1 +
>   configs/T1042D4RDB_SPIFLASH_defconfig        |  1 +
>   configs/T1042D4RDB_defconfig                 |  1 +
>   configs/T2080QDS_NAND_defconfig              |  1 +
>   configs/T2080QDS_SDCARD_defconfig            |  1 +
>   configs/T2080QDS_SECURE_BOOT_defconfig       |  1 +
>   configs/T2080QDS_SPIFLASH_defconfig          |  1 +
>   configs/T2080QDS_defconfig                   |  1 +
>   configs/T4240RDB_SDCARD_defconfig            |  1 +
>   configs/T4240RDB_defconfig                   |  1 +
>   configs/boston32r2_defconfig                 |  1 +
>   configs/boston32r2el_defconfig               |  1 +
>   configs/boston32r6_defconfig                 |  1 +
>   configs/boston32r6el_defconfig               |  1 +
>   configs/boston64r2_defconfig                 |  1 +
>   configs/boston64r2el_defconfig               |  1 +
>   configs/boston64r6_defconfig                 |  1 +
>   configs/boston64r6el_defconfig               |  1 +
>   configs/cobra5272_defconfig                  |  1 +
>   configs/comtrend_ct5361_ram_defconfig        |  1 +
>   configs/comtrend_wap5813n_ram_defconfig      |  1 +
>   configs/ethernut5_defconfig                  |  1 +
>   configs/huawei_hg556a_ram_defconfig          |  1 +
>   configs/j7200_evm_a72_defconfig              |  1 +
>   configs/j7200_evm_r5_defconfig               |  1 +
>   configs/j721e_evm_a72_defconfig              |  1 +
>   configs/j721e_hs_evm_a72_defconfig           |  1 +
>   configs/ls1021aqds_ddr4_nor_defconfig        |  1 +
>   configs/ls1021aqds_ddr4_nor_lpuart_defconfig |  1 +
>   configs/ls1021aqds_nand_defconfig            |  1 +
>   configs/ls1021aqds_nor_SECURE_BOOT_defconfig |  1 +
>   configs/ls1021aqds_nor_defconfig             |  1 +
>   configs/ls1021aqds_nor_lpuart_defconfig      |  1 +
>   configs/ls1021aqds_sdcard_ifc_defconfig      |  1 +
>   configs/ls1046aqds_SECURE_BOOT_defconfig     |  1 +
>   configs/ls1046aqds_defconfig                 |  1 +
>   configs/ls1046aqds_lpuart_defconfig          |  1 +
>   configs/ls1046aqds_nand_defconfig            |  1 +
>   configs/ls1046aqds_sdcard_ifc_defconfig      |  1 +
>   configs/ls1046aqds_tfa_SECURE_BOOT_defconfig |  1 +
>   configs/ls1046aqds_tfa_defconfig             |  1 +
>   configs/ls1088aqds_defconfig                 |  1 +
>   configs/ls1088aqds_sdcard_ifc_defconfig      |  1 +
>   configs/ls1088aqds_tfa_defconfig             |  1 +
>   configs/ls2080aqds_SECURE_BOOT_defconfig     |  1 +
>   configs/ls2080aqds_defconfig                 |  1 +
>   configs/ls2088aqds_tfa_defconfig             |  1 +
>   configs/qemu_arm64_defconfig                 |  2 ++
>   configs/qemu_arm_defconfig                   |  2 ++
>   configs/r8a77990_ebisu_defconfig             |  1 +
>   configs/r8a77995_draak_defconfig             |  1 +
>   configs/rcar3_salvator-x_defconfig           |  1 +
>   configs/rcar3_ulcb_defconfig                 |  1 +
>   configs/sfr_nb4-ser_ram_defconfig            |  1 +
>   configs/socrates_defconfig                   |  1 +
>   drivers/mtd/Kconfig                          | 27 ++++++++++++++++++++
>   include/configs/10m50_devboard.h             |  1 -
>   include/configs/3c120_devboard.h             |  2 --
>   include/configs/M5208EVBE.h                  |  1 -
>   include/configs/M5235EVB.h                   |  1 -
>   include/configs/M5249EVB.h                   |  1 -
>   include/configs/M5253DEMO.h                  |  1 -
>   include/configs/M5272C3.h                    |  1 -
>   include/configs/M5275EVB.h                   |  1 -
>   include/configs/M5282EVB.h                   |  1 -
>   include/configs/M53017EVB.h                  |  1 -
>   include/configs/M5329EVB.h                   |  1 -
>   include/configs/M5373EVB.h                   |  1 -
>   include/configs/MCR3000.h                    |  1 -
>   include/configs/MPC837XERDB.h                |  1 -
>   include/configs/MPC8540ADS.h                 |  1 -
>   include/configs/MPC8548CDS.h                 |  1 -
>   include/configs/MPC8560ADS.h                 |  1 -
>   include/configs/P1010RDB.h                   |  1 -
>   include/configs/P2041RDB.h                   |  1 -
>   include/configs/T102xRDB.h                   |  1 -
>   include/configs/T104xRDB.h                   |  1 -
>   include/configs/T208xQDS.h                   |  1 -
>   include/configs/T208xRDB.h                   |  1 -
>   include/configs/T4240RDB.h                   |  1 -
>   include/configs/adp-ae3xx.h                  |  4 ---
>   include/configs/adp-ag101p.h                 |  1 -
>   include/configs/am335x_evm.h                 |  1 -
>   include/configs/am3517_evm.h                 |  1 -
>   include/configs/amcore.h                     |  1 -
>   include/configs/armadillo-800eva.h           |  1 -
>   include/configs/astro_mcf5373l.h             |  1 -
>   include/configs/at91sam9263ek.h              |  1 -
>   include/configs/ax25-ae350.h                 |  4 ---
>   include/configs/bcm7445.h                    |  2 --
>   include/configs/blanche.h                    |  1 -
>   include/configs/bmips_bcm6338.h              |  2 --
>   include/configs/bmips_bcm6348.h              |  2 --
>   include/configs/bmips_bcm6358.h              |  2 --
>   include/configs/bmips_bcm6368.h              |  2 --
>   include/configs/boston.h                     |  2 --
>   include/configs/cobra5272.h                  |  1 -
>   include/configs/colibri_pxa270.h             |  1 -
>   include/configs/corenet_ds.h                 |  1 -
>   include/configs/da850evm.h                   |  1 -
>   include/configs/devkit3250.h                 |  1 -
>   include/configs/dra7xx_evm.h                 |  1 -
>   include/configs/draak.h                      |  2 --
>   include/configs/eb_cpu5282.h                 |  1 -
>   include/configs/ebisu.h                      |  2 --
>   include/configs/edminiv2.h                   |  1 -
>   include/configs/ethernut5.h                  |  1 -
>   include/configs/gazerbeam.h                  |  1 -
>   include/configs/ids8313.h                    |  1 -
>   include/configs/imx27lite-common.h           |  1 -
>   include/configs/integrator-common.h          |  1 -
>   include/configs/j721e_evm.h                  |  2 --
>   include/configs/km/km-mpc83xx.h              |  1 -
>   include/configs/km/pg-wcom-ls102xa.h         |  1 -
>   include/configs/kmcent2.h                    |  1 -
>   include/configs/kzm9g.h                      |  1 -
>   include/configs/ls1021aqds.h                 |  1 -
>   include/configs/ls1021atwr.h                 |  1 -
>   include/configs/ls1043aqds.h                 |  1 -
>   include/configs/ls1043ardb.h                 |  1 -
>   include/configs/ls1046aqds.h                 |  1 -
>   include/configs/ls1088aqds.h                 |  1 -
>   include/configs/ls1088ardb.h                 |  1 -
>   include/configs/ls2080aqds.h                 |  1 -
>   include/configs/ls2080ardb.h                 |  1 -
>   include/configs/lsxl.h                       |  1 -
>   include/configs/malta.h                      |  1 -
>   include/configs/mccmon6.h                    |  2 --
>   include/configs/microblaze-generic.h         |  1 -
>   include/configs/mx6sabreauto.h               |  1 -
>   include/configs/octeon_ebb7304.h             |  1 -
>   include/configs/omap3_logic.h                |  1 -
>   include/configs/p1_p2_rdb_pc.h               |  2 --
>   include/configs/pm9261.h                     |  1 -
>   include/configs/pm9263.h                     |  1 -
>   include/configs/qemu-arm.h                   |  2 --
>   include/configs/qemu-riscv.h                 |  2 --
>   include/configs/r2dplus.h                    |  1 -
>   include/configs/salvator-x.h                 |  2 --
>   include/configs/sama5d3xek.h                 |  1 -
>   include/configs/socfpga_arria10_socdk.h      |  1 -
>   include/configs/socfpga_soc64_common.h       |  1 -
>   include/configs/socrates.h                   |  1 -
>   include/configs/stih410-b2260.h              |  2 --
>   include/configs/stm32f429-discovery.h        |  1 -
>   include/configs/stm32f429-evaluation.h       |  1 -
>   include/configs/stm32f469-discovery.h        |  1 -
>   include/configs/stm32f746-disco.h            |  1 -
>   include/configs/synquacer.h                  |  1 -
>   include/configs/total_compute.h              |  1 -
>   include/configs/ulcb.h                       |  2 --
>   include/configs/vexpress_aemv8a.h            |  1 -
>   include/configs/vexpress_common.h            |  1 -
>   include/configs/xtfpga.h                     |  1 -
>   include/configs/zynq-common.h                |  1 -
>   scripts/config_whitelist.txt                 |  2 --
>   174 files changed, 101 insertions(+), 127 deletions(-)
> 
> diff --git a/README b/README
> index 77782d0ae7..05249e07cd 100644
> --- a/README
> +++ b/README
> @@ -2157,9 +2157,6 @@ Configuration Settings:
>   		Enables allocating and saving a kernel copy of the bd_info in
>   		space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
>   
> -- CONFIG_SYS_MAX_FLASH_BANKS:
> -		Max number of Flash memory banks
> -
>   - CONFIG_SYS_MAX_FLASH_SECT:
>   		Max number of sectors on a Flash chip
>   
> diff --git a/configs/3c120_defconfig b/configs/3c120_defconfig
> index 1b7c795570..e7911f0a15 100644
> --- a/configs/3c120_defconfig
> +++ b/configs/3c120_defconfig
> @@ -35,6 +35,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_PHY_MARVELL=y
>   CONFIG_DM_ETH=y
>   CONFIG_PHY_GIGE=y
> diff --git a/configs/M5253DEMO_defconfig b/configs/M5253DEMO_defconfig
> index 423e2f75ac..67f9875829 100644
> --- a/configs/M5253DEMO_defconfig
> +++ b/configs/M5253DEMO_defconfig
> @@ -26,4 +26,5 @@ CONFIG_SYS_FSL_I2C_OFFSET=0x280
>   CONFIG_SYS_I2C_SLAVE=0x7F
>   CONFIG_SYS_I2C_SPEED=80000
>   CONFIG_MTD_NOR_FLASH=y
> +CONFIG_USE_SYS_MAX_FLASH_BANKS=y
>   CONFIG_MCFUART=y
> diff --git a/configs/MPC8548CDS_36BIT_defconfig b/configs/MPC8548CDS_36BIT_defconfig
> index e2afcdee7c..d6351d5b11 100644
> --- a/configs/MPC8548CDS_36BIT_defconfig
> +++ b/configs/MPC8548CDS_36BIT_defconfig
> @@ -52,6 +52,7 @@ CONFIG_SYS_I2C_EEPROM_ADDR=0x57
>   CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_PHY_ATHEROS=y
>   CONFIG_PHY_BROADCOM=y
>   CONFIG_PHY_DAVICOM=y
> diff --git a/configs/MPC8548CDS_defconfig b/configs/MPC8548CDS_defconfig
> index e8f44cfcd4..da0b80b09d 100644
> --- a/configs/MPC8548CDS_defconfig
> +++ b/configs/MPC8548CDS_defconfig
> @@ -51,6 +51,7 @@ CONFIG_SYS_I2C_EEPROM_ADDR=0x57
>   CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_PHY_ATHEROS=y
>   CONFIG_PHY_BROADCOM=y
>   CONFIG_PHY_DAVICOM=y
> diff --git a/configs/MPC8548CDS_legacy_defconfig b/configs/MPC8548CDS_legacy_defconfig
> index 577385d60e..87d1fd716c 100644
> --- a/configs/MPC8548CDS_legacy_defconfig
> +++ b/configs/MPC8548CDS_legacy_defconfig
> @@ -51,6 +51,7 @@ CONFIG_SYS_I2C_EEPROM_ADDR=0x57
>   CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_PHY_ATHEROS=y
>   CONFIG_PHY_BROADCOM=y
>   CONFIG_PHY_DAVICOM=y
> diff --git a/configs/P3041DS_NAND_defconfig b/configs/P3041DS_NAND_defconfig
> index 29a968d9a3..fb8d87d654 100644
> --- a/configs/P3041DS_NAND_defconfig
> +++ b/configs/P3041DS_NAND_defconfig
> @@ -63,6 +63,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_ELBC=y
>   CONFIG_DM_SPI_FLASH=y
> diff --git a/configs/P3041DS_SDCARD_defconfig b/configs/P3041DS_SDCARD_defconfig
> index 72c3b7af29..c9bd30c5fa 100644
> --- a/configs/P3041DS_SDCARD_defconfig
> +++ b/configs/P3041DS_SDCARD_defconfig
> @@ -61,6 +61,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P3041DS_SPIFLASH_defconfig b/configs/P3041DS_SPIFLASH_defconfig
> index abb9ce611d..7f7e5da20b 100644
> --- a/configs/P3041DS_SPIFLASH_defconfig
> +++ b/configs/P3041DS_SPIFLASH_defconfig
> @@ -62,6 +62,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P3041DS_defconfig b/configs/P3041DS_defconfig
> index 39dd70888c..cdb6687737 100644
> --- a/configs/P3041DS_defconfig
> +++ b/configs/P3041DS_defconfig
> @@ -57,6 +57,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P4080DS_SDCARD_defconfig b/configs/P4080DS_SDCARD_defconfig
> index bd66e31fe1..09491bae6c 100644
> --- a/configs/P4080DS_SDCARD_defconfig
> +++ b/configs/P4080DS_SDCARD_defconfig
> @@ -60,6 +60,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P4080DS_SPIFLASH_defconfig b/configs/P4080DS_SPIFLASH_defconfig
> index 79f51c91d4..e23d10dc96 100644
> --- a/configs/P4080DS_SPIFLASH_defconfig
> +++ b/configs/P4080DS_SPIFLASH_defconfig
> @@ -61,6 +61,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P4080DS_defconfig b/configs/P4080DS_defconfig
> index 43f16d45e2..cfda36d2b5 100644
> --- a/configs/P4080DS_defconfig
> +++ b/configs/P4080DS_defconfig
> @@ -56,6 +56,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P5040DS_NAND_defconfig b/configs/P5040DS_NAND_defconfig
> index 6f31034573..c6e4485a41 100644
> --- a/configs/P5040DS_NAND_defconfig
> +++ b/configs/P5040DS_NAND_defconfig
> @@ -64,6 +64,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_ELBC=y
>   CONFIG_DM_SPI_FLASH=y
> diff --git a/configs/P5040DS_SDCARD_defconfig b/configs/P5040DS_SDCARD_defconfig
> index 0a881d8417..e92f447704 100644
> --- a/configs/P5040DS_SDCARD_defconfig
> +++ b/configs/P5040DS_SDCARD_defconfig
> @@ -61,6 +61,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P5040DS_SPIFLASH_defconfig b/configs/P5040DS_SPIFLASH_defconfig
> index 0e4a5457ef..3f62ebf6eb 100644
> --- a/configs/P5040DS_SPIFLASH_defconfig
> +++ b/configs/P5040DS_SPIFLASH_defconfig
> @@ -62,6 +62,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/P5040DS_defconfig b/configs/P5040DS_defconfig
> index d614917385..83fb71ebfc 100644
> --- a/configs/P5040DS_defconfig
> +++ b/configs/P5040DS_defconfig
> @@ -57,6 +57,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SPANSION=y
> diff --git a/configs/T1042D4RDB_NAND_defconfig b/configs/T1042D4RDB_NAND_defconfig
> index ca22e1e4f2..93a22581db 100644
> --- a/configs/T1042D4RDB_NAND_defconfig
> +++ b/configs/T1042D4RDB_NAND_defconfig
> @@ -75,6 +75,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/T1042D4RDB_SDCARD_defconfig b/configs/T1042D4RDB_SDCARD_defconfig
> index b9f7992d35..c287d4e4e4 100644
> --- a/configs/T1042D4RDB_SDCARD_defconfig
> +++ b/configs/T1042D4RDB_SDCARD_defconfig
> @@ -74,6 +74,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_STMICRO=y
> diff --git a/configs/T1042D4RDB_SPIFLASH_defconfig b/configs/T1042D4RDB_SPIFLASH_defconfig
> index f8e2b6d2ee..056d0bf12e 100644
> --- a/configs/T1042D4RDB_SPIFLASH_defconfig
> +++ b/configs/T1042D4RDB_SPIFLASH_defconfig
> @@ -76,6 +76,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_STMICRO=y
> diff --git a/configs/T1042D4RDB_defconfig b/configs/T1042D4RDB_defconfig
> index 4797f2907f..10e943bf8b 100644
> --- a/configs/T1042D4RDB_defconfig
> +++ b/configs/T1042D4RDB_defconfig
> @@ -59,6 +59,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_STMICRO=y
> diff --git a/configs/T2080QDS_NAND_defconfig b/configs/T2080QDS_NAND_defconfig
> index ba07ce8feb..009393b7bc 100644
> --- a/configs/T2080QDS_NAND_defconfig
> +++ b/configs/T2080QDS_NAND_defconfig
> @@ -78,6 +78,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/T2080QDS_SDCARD_defconfig b/configs/T2080QDS_SDCARD_defconfig
> index bf5410b344..347fa52c1b 100644
> --- a/configs/T2080QDS_SDCARD_defconfig
> +++ b/configs/T2080QDS_SDCARD_defconfig
> @@ -77,6 +77,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_EON=y
> diff --git a/configs/T2080QDS_SECURE_BOOT_defconfig b/configs/T2080QDS_SECURE_BOOT_defconfig
> index 3165b9090a..79a3aad527 100644
> --- a/configs/T2080QDS_SECURE_BOOT_defconfig
> +++ b/configs/T2080QDS_SECURE_BOOT_defconfig
> @@ -61,6 +61,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_EON=y
> diff --git a/configs/T2080QDS_SPIFLASH_defconfig b/configs/T2080QDS_SPIFLASH_defconfig
> index 367416f337..950932cdc0 100644
> --- a/configs/T2080QDS_SPIFLASH_defconfig
> +++ b/configs/T2080QDS_SPIFLASH_defconfig
> @@ -79,6 +79,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_EON=y
> diff --git a/configs/T2080QDS_defconfig b/configs/T2080QDS_defconfig
> index db9e970e64..16a1783884 100644
> --- a/configs/T2080QDS_defconfig
> +++ b/configs/T2080QDS_defconfig
> @@ -62,6 +62,7 @@ CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_EON=y
> diff --git a/configs/T4240RDB_SDCARD_defconfig b/configs/T4240RDB_SDCARD_defconfig
> index 526c474955..5518010ca8 100644
> --- a/configs/T4240RDB_SDCARD_defconfig
> +++ b/configs/T4240RDB_SDCARD_defconfig
> @@ -68,6 +68,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SST=y
> diff --git a/configs/T4240RDB_defconfig b/configs/T4240RDB_defconfig
> index bbaab35fd8..bc0e8bd46b 100644
> --- a/configs/T4240RDB_defconfig
> +++ b/configs/T4240RDB_defconfig
> @@ -53,6 +53,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SF_DEFAULT_SPEED=10000000
>   CONFIG_SPI_FLASH_SST=y
> diff --git a/configs/boston32r2_defconfig b/configs/boston32r2_defconfig
> index af99eecbae..459455733d 100644
> --- a/configs/boston32r2_defconfig
> +++ b/configs/boston32r2_defconfig
> @@ -41,6 +41,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/boston32r2el_defconfig b/configs/boston32r2el_defconfig
> index 380e3ddc49..20ba015cf5 100644
> --- a/configs/boston32r2el_defconfig
> +++ b/configs/boston32r2el_defconfig
> @@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/boston32r6_defconfig b/configs/boston32r6_defconfig
> index 29ba6813eb..f2fe854d07 100644
> --- a/configs/boston32r6_defconfig
> +++ b/configs/boston32r6_defconfig
> @@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/boston32r6el_defconfig b/configs/boston32r6el_defconfig
> index e78bb119d4..9118596d6b 100644
> --- a/configs/boston32r6el_defconfig
> +++ b/configs/boston32r6el_defconfig
> @@ -43,6 +43,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/boston64r2_defconfig b/configs/boston64r2_defconfig
> index b8724e9577..6794eb85c7 100644
> --- a/configs/boston64r2_defconfig
> +++ b/configs/boston64r2_defconfig
> @@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/boston64r2el_defconfig b/configs/boston64r2el_defconfig
> index e055a30b95..78048843c6 100644
> --- a/configs/boston64r2el_defconfig
> +++ b/configs/boston64r2el_defconfig
> @@ -43,6 +43,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/boston64r6_defconfig b/configs/boston64r6_defconfig
> index 118a0f8b7c..35d0440f8d 100644
> --- a/configs/boston64r6_defconfig
> +++ b/configs/boston64r6_defconfig
> @@ -42,6 +42,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/boston64r6el_defconfig b/configs/boston64r6el_defconfig
> index e8d2c15b55..99004d8fea 100644
> --- a/configs/boston64r6el_defconfig
> +++ b/configs/boston64r6el_defconfig
> @@ -43,6 +43,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PCH_GBE=y
>   CONFIG_PCI=y
> diff --git a/configs/cobra5272_defconfig b/configs/cobra5272_defconfig
> index ff81f76b88..4fc3b0a541 100644
> --- a/configs/cobra5272_defconfig
> +++ b/configs/cobra5272_defconfig
> @@ -43,6 +43,7 @@ CONFIG_SYS_BR7_PRELIM_BOOL=y
>   CONFIG_SYS_BR7_PRELIM=0x701
>   CONFIG_SYS_OR7_PRELIM=0xFF00007C
>   CONFIG_MTD_NOR_FLASH=y
> +CONFIG_USE_SYS_MAX_FLASH_BANKS=y
>   CONFIG_DM_ETH=y
>   CONFIG_MCFFEC=y
>   CONFIG_MII=y
> diff --git a/configs/comtrend_ct5361_ram_defconfig b/configs/comtrend_ct5361_ram_defconfig
> index 647031014a..d37f9bde1e 100644
> --- a/configs/comtrend_ct5361_ram_defconfig
> +++ b/configs/comtrend_ct5361_ram_defconfig
> @@ -47,6 +47,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_PHY_FIXED=y
>   CONFIG_DM_ETH=y
>   CONFIG_BCM6348_ETH=y
> diff --git a/configs/comtrend_wap5813n_ram_defconfig b/configs/comtrend_wap5813n_ram_defconfig
> index 8864a13424..198f13b2f7 100644
> --- a/configs/comtrend_wap5813n_ram_defconfig
> +++ b/configs/comtrend_wap5813n_ram_defconfig
> @@ -47,6 +47,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_PHY_GIGE=y
>   CONFIG_BCM6368_ETH=y
> diff --git a/configs/ethernut5_defconfig b/configs/ethernut5_defconfig
> index 1821b23ed5..5d98318aab 100644
> --- a/configs/ethernut5_defconfig
> +++ b/configs/ethernut5_defconfig
> @@ -66,6 +66,7 @@ CONFIG_SYS_I2C_SOFT_SLAVE=0
>   CONFIG_GENERIC_ATMEL_MCI=y
>   CONFIG_MTD=y
>   CONFIG_MTD_NOR_FLASH=y
> +CONFIG_USE_SYS_MAX_FLASH_BANKS=y
>   CONFIG_MTD_RAW_NAND=y
>   # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
>   CONFIG_NAND_ATMEL=y
> diff --git a/configs/huawei_hg556a_ram_defconfig b/configs/huawei_hg556a_ram_defconfig
> index 81a412bed7..1a0a13a7ea 100644
> --- a/configs/huawei_hg556a_ram_defconfig
> +++ b/configs/huawei_hg556a_ram_defconfig
> @@ -47,6 +47,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_PHY_FIXED=y
>   CONFIG_DM_ETH=y
>   CONFIG_BCM6348_ETH=y
> diff --git a/configs/j7200_evm_a72_defconfig b/configs/j7200_evm_a72_defconfig
> index f38d77cd6d..eb1d7d46b8 100644
> --- a/configs/j7200_evm_a72_defconfig
> +++ b/configs/j7200_evm_a72_defconfig
> @@ -135,6 +135,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_HBMC_AM654=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_STMICRO=y
>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> diff --git a/configs/j7200_evm_r5_defconfig b/configs/j7200_evm_r5_defconfig
> index aeb76e8023..1ff5cc91ca 100644
> --- a/configs/j7200_evm_r5_defconfig
> +++ b/configs/j7200_evm_r5_defconfig
> @@ -105,6 +105,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_HBMC_AM654=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_SFDP_SUPPORT=y
>   CONFIG_SPI_FLASH_STMICRO=y
> diff --git a/configs/j721e_evm_a72_defconfig b/configs/j721e_evm_a72_defconfig
> index 53528dfbc6..2e45273903 100644
> --- a/configs/j721e_evm_a72_defconfig
> +++ b/configs/j721e_evm_a72_defconfig
> @@ -131,6 +131,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_HBMC_AM654=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_STMICRO=y
>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> diff --git a/configs/j721e_hs_evm_a72_defconfig b/configs/j721e_hs_evm_a72_defconfig
> index ad51c1118b..ae184b0358 100644
> --- a/configs/j721e_hs_evm_a72_defconfig
> +++ b/configs/j721e_hs_evm_a72_defconfig
> @@ -114,6 +114,7 @@ CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_HBMC_AM654=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_STMICRO=y
>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> diff --git a/configs/ls1021aqds_ddr4_nor_defconfig b/configs/ls1021aqds_ddr4_nor_defconfig
> index 79ccc41a43..afd93187bc 100644
> --- a/configs/ls1021aqds_ddr4_nor_defconfig
> +++ b/configs/ls1021aqds_ddr4_nor_defconfig
> @@ -66,6 +66,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
> index 0a2a076332..b27c67b2a3 100644
> --- a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
> +++ b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
> @@ -67,6 +67,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1021aqds_nand_defconfig b/configs/ls1021aqds_nand_defconfig
> index 0b12f100d4..915579a12a 100644
> --- a/configs/ls1021aqds_nand_defconfig
> +++ b/configs/ls1021aqds_nand_defconfig
> @@ -88,6 +88,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
>   CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y
> diff --git a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
> index 63930e4a13..5ab7d2785f 100644
> --- a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
> +++ b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
> @@ -65,6 +65,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1021aqds_nor_defconfig b/configs/ls1021aqds_nor_defconfig
> index f4e2274fb8..934d44fbde 100644
> --- a/configs/ls1021aqds_nor_defconfig
> +++ b/configs/ls1021aqds_nor_defconfig
> @@ -67,6 +67,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1021aqds_nor_lpuart_defconfig b/configs/ls1021aqds_nor_lpuart_defconfig
> index 0eacaa3354..1cf208631c 100644
> --- a/configs/ls1021aqds_nor_lpuart_defconfig
> +++ b/configs/ls1021aqds_nor_lpuart_defconfig
> @@ -68,6 +68,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1021aqds_sdcard_ifc_defconfig b/configs/ls1021aqds_sdcard_ifc_defconfig
> index fa190a7502..db8a3ae9ec 100644
> --- a/configs/ls1021aqds_sdcard_ifc_defconfig
> +++ b/configs/ls1021aqds_sdcard_ifc_defconfig
> @@ -85,6 +85,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1046aqds_SECURE_BOOT_defconfig b/configs/ls1046aqds_SECURE_BOOT_defconfig
> index 55426320d8..6a0c951ed0 100644
> --- a/configs/ls1046aqds_SECURE_BOOT_defconfig
> +++ b/configs/ls1046aqds_SECURE_BOOT_defconfig
> @@ -62,6 +62,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1046aqds_defconfig b/configs/ls1046aqds_defconfig
> index f136aeafae..507d24ec8f 100644
> --- a/configs/ls1046aqds_defconfig
> +++ b/configs/ls1046aqds_defconfig
> @@ -65,6 +65,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1046aqds_lpuart_defconfig b/configs/ls1046aqds_lpuart_defconfig
> index 6d448905ef..9e8e37fdb7 100644
> --- a/configs/ls1046aqds_lpuart_defconfig
> +++ b/configs/ls1046aqds_lpuart_defconfig
> @@ -66,6 +66,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1046aqds_nand_defconfig b/configs/ls1046aqds_nand_defconfig
> index e4cd4a2f60..f6c55e638a 100644
> --- a/configs/ls1046aqds_nand_defconfig
> +++ b/configs/ls1046aqds_nand_defconfig
> @@ -84,6 +84,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
>   CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y
> diff --git a/configs/ls1046aqds_sdcard_ifc_defconfig b/configs/ls1046aqds_sdcard_ifc_defconfig
> index fe1fe6f162..78402e7a96 100644
> --- a/configs/ls1046aqds_sdcard_ifc_defconfig
> +++ b/configs/ls1046aqds_sdcard_ifc_defconfig
> @@ -85,6 +85,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig b/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig
> index b84f8772c6..eb44c1828e 100644
> --- a/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig
> +++ b/configs/ls1046aqds_tfa_SECURE_BOOT_defconfig
> @@ -65,6 +65,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1046aqds_tfa_defconfig b/configs/ls1046aqds_tfa_defconfig
> index f706dd6179..b68d8507ba 100644
> --- a/configs/ls1046aqds_tfa_defconfig
> +++ b/configs/ls1046aqds_tfa_defconfig
> @@ -74,6 +74,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1088aqds_defconfig b/configs/ls1088aqds_defconfig
> index a2b2a34e3f..986a28d547 100644
> --- a/configs/ls1088aqds_defconfig
> +++ b/configs/ls1088aqds_defconfig
> @@ -66,6 +66,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1088aqds_sdcard_ifc_defconfig b/configs/ls1088aqds_sdcard_ifc_defconfig
> index e5372317c3..30ffd3c58a 100644
> --- a/configs/ls1088aqds_sdcard_ifc_defconfig
> +++ b/configs/ls1088aqds_sdcard_ifc_defconfig
> @@ -77,6 +77,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls1088aqds_tfa_defconfig b/configs/ls1088aqds_tfa_defconfig
> index aac8486bc3..ae00387d3f 100644
> --- a/configs/ls1088aqds_tfa_defconfig
> +++ b/configs/ls1088aqds_tfa_defconfig
> @@ -76,6 +76,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls2080aqds_SECURE_BOOT_defconfig b/configs/ls2080aqds_SECURE_BOOT_defconfig
> index 0ad25aca76..b133bb7845 100644
> --- a/configs/ls2080aqds_SECURE_BOOT_defconfig
> +++ b/configs/ls2080aqds_SECURE_BOOT_defconfig
> @@ -51,6 +51,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls2080aqds_defconfig b/configs/ls2080aqds_defconfig
> index 30cdad6fbe..63708e9b07 100644
> --- a/configs/ls2080aqds_defconfig
> +++ b/configs/ls2080aqds_defconfig
> @@ -54,6 +54,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/ls2088aqds_tfa_defconfig b/configs/ls2088aqds_tfa_defconfig
> index 61e0fdf113..d85c4d8b0b 100644
> --- a/configs/ls2088aqds_tfa_defconfig
> +++ b/configs/ls2088aqds_tfa_defconfig
> @@ -67,6 +67,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_NAND_FSL_IFC=y
>   CONFIG_SYS_NAND_ONFI_DETECTION=y
> diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig
> index 5e41ea980f..8f86f19e89 100644
> --- a/configs/qemu_arm64_defconfig
> +++ b/configs/qemu_arm64_defconfig
> @@ -44,6 +44,8 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_E1000=y
>   CONFIG_NVME=y
> diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig
> index 4197cb0f92..653c76ba61 100644
> --- a/configs/qemu_arm_defconfig
> +++ b/configs/qemu_arm_defconfig
> @@ -46,6 +46,8 @@ CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_ETH=y
>   CONFIG_E1000=y
>   CONFIG_NVME=y
> diff --git a/configs/r8a77990_ebisu_defconfig b/configs/r8a77990_ebisu_defconfig
> index 79ec7009c5..24042daee0 100644
> --- a/configs/r8a77990_ebisu_defconfig
> +++ b/configs/r8a77990_ebisu_defconfig
> @@ -71,6 +71,7 @@ CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_RENESAS_RPC_HF=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_SPANSION=y
>   CONFIG_BITBANGMII=y
> diff --git a/configs/r8a77995_draak_defconfig b/configs/r8a77995_draak_defconfig
> index 726609ad62..d5b1b31a14 100644
> --- a/configs/r8a77995_draak_defconfig
> +++ b/configs/r8a77995_draak_defconfig
> @@ -64,6 +64,7 @@ CONFIG_CFI_FLASH=y
>   CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_RENESAS_RPC_HF=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_SPANSION=y
>   CONFIG_BITBANGMII=y
> diff --git a/configs/rcar3_salvator-x_defconfig b/configs/rcar3_salvator-x_defconfig
> index 57a2c01932..499e56e498 100644
> --- a/configs/rcar3_salvator-x_defconfig
> +++ b/configs/rcar3_salvator-x_defconfig
> @@ -72,6 +72,7 @@ CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_RENESAS_RPC_HF=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_SPANSION=y
>   CONFIG_BITBANGMII=y
> diff --git a/configs/rcar3_ulcb_defconfig b/configs/rcar3_ulcb_defconfig
> index b18ef389e4..dfe0d84053 100644
> --- a/configs/rcar3_ulcb_defconfig
> +++ b/configs/rcar3_ulcb_defconfig
> @@ -73,6 +73,7 @@ CONFIG_FLASH_CFI_MTD=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
>   CONFIG_RENESAS_RPC_HF=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_DM_SPI_FLASH=y
>   CONFIG_SPI_FLASH_SPANSION=y
>   CONFIG_BITBANGMII=y
> diff --git a/configs/sfr_nb4-ser_ram_defconfig b/configs/sfr_nb4-ser_ram_defconfig
> index bbcb944212..4c5bc11783 100644
> --- a/configs/sfr_nb4-ser_ram_defconfig
> +++ b/configs/sfr_nb4-ser_ram_defconfig
> @@ -49,6 +49,7 @@ CONFIG_MTD_NOR_FLASH=y
>   CONFIG_CFI_FLASH=y
>   CONFIG_SYS_FLASH_PROTECTION=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
>   CONFIG_PHY_FIXED=y
>   CONFIG_DM_ETH=y
>   CONFIG_BCM6348_ETH=y
> diff --git a/configs/socrates_defconfig b/configs/socrates_defconfig
> index ea0224d650..bad08e79c9 100644
> --- a/configs/socrates_defconfig
> +++ b/configs/socrates_defconfig
> @@ -64,6 +64,7 @@ CONFIG_MTD=y
>   CONFIG_MTD_NOR_FLASH=y
>   CONFIG_FLASH_CFI_DRIVER=y
>   CONFIG_SYS_FLASH_CFI=y
> +CONFIG_SYS_MAX_FLASH_BANKS=2
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_PHY_ATHEROS=y
>   CONFIG_PHY_BROADCOM=y
> diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
> index a9c8c48ae6..bde3004171 100644
> --- a/drivers/mtd/Kconfig
> +++ b/drivers/mtd/Kconfig
> @@ -31,6 +31,7 @@ config SYS_MTDPARTS_RUNTIME
>   
>   config FLASH_CFI_DRIVER
>   	bool "Enable CFI Flash driver"
> +	select USE_SYS_MAX_FLASH_BANKS
>   	help
>   	  The Common Flash Interface specification was developed by Intel,
>   	  AMD and other flash manufactures. It provides a universal method
> @@ -82,6 +83,7 @@ config SYS_FLASH_CFI
>   config ALTERA_QSPI
>   	bool "Altera Generic Quad SPI Controller"
>   	depends on DM_MTD
> +	select USE_SYS_MAX_FLASH_BANKS
>   	help
>   	  This enables access to Altera EPCQ/EPCS flash chips using the
>   	  Altera Generic Quad SPI Controller. The controller converts SPI
> @@ -91,6 +93,7 @@ config ALTERA_QSPI
>   config FLASH_PIC32
>   	bool "Microchip PIC32 Flash driver"
>   	depends on MACH_PIC32 && DM_MTD
> +	select USE_SYS_MAX_FLASH_BANKS
>   	help
>   	  This enables access to Microchip PIC32 internal non-CFI flash
>   	  chips through PIC32 Non-Volatile-Memory Controller.
> @@ -112,10 +115,34 @@ config HBMC_AM654
>   config STM32_FLASH
>   	bool "STM32 MCU Flash driver"
>   	depends on ARCH_STM32
> +	select USE_SYS_MAX_FLASH_BANKS
>   	help
>   	 This is the driver of embedded flash for some STMicroelectronics
>   	 STM32 MCU.
>   
> +config USE_SYS_MAX_FLASH_BANKS
> +	bool "Enable Max number of Flash memory banks"
> +	help
> +	  When this option is enabled, the CONFIG_SYS_MAX_FLASH_BANKS
> +	  will be defined.
> +
> +config SYS_MAX_FLASH_BANKS
> +	int "Max number of Flash memory banks"
> +	depends on USE_SYS_MAX_FLASH_BANKS
> +	default 1
> +	help
> +	 Max number of Flash memory banks using by the MTD framework, in the
> +	 flash CFI driver and in some other driver to define the flash_info
> +	 struct declaration.
> +
> +config SYS_MAX_FLASH_BANKS_DETECT
> +	bool "Detection of flash banks number in CFI driver"
> +	depends on CFI_FLASH && FLASH_CFI_DRIVER
> +	help
> +	 This enables detection of number of flash banks in CFI driver,
> +	 to reduce the effective number of flash bank, between 0 and
> +	 CONFIG_SYS_MAX_FLASH_BANKS
> +
>   source "drivers/mtd/nand/Kconfig"
>   
>   config SYS_NAND_MAX_CHIPS
> diff --git a/include/configs/10m50_devboard.h b/include/configs/10m50_devboard.h
> index 709a449e79..04ce88c9dd 100644
> --- a/include/configs/10m50_devboard.h
> +++ b/include/configs/10m50_devboard.h
> @@ -20,7 +20,6 @@
>   /*
>    * Flash
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024
>   
>   /*
> diff --git a/include/configs/3c120_devboard.h b/include/configs/3c120_devboard.h
> index e52fedcf39..e12e54fe4f 100644
> --- a/include/configs/3c120_devboard.h
> +++ b/include/configs/3c120_devboard.h
> @@ -20,8 +20,6 @@
>    * CFI Flash
>    */
>   #define CONFIG_SYS_CFI_FLASH_STATUS_POLL /* fix amd flash issue */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	512
>   
>   /*
> diff --git a/include/configs/M5208EVBE.h b/include/configs/M5208EVBE.h
> index 5ed624c7b7..df7f378cfd 100644
> --- a/include/configs/M5208EVBE.h
> +++ b/include/configs/M5208EVBE.h
> @@ -111,7 +111,6 @@
>   #ifdef CONFIG_SYS_FLASH_CFI
>   #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	254	/* max number of sectors on one chip */
>   #endif
>   
> diff --git a/include/configs/M5235EVB.h b/include/configs/M5235EVB.h
> index 90f1664a5a..9f4c3af4b8 100644
> --- a/include/configs/M5235EVB.h
> +++ b/include/configs/M5235EVB.h
> @@ -126,7 +126,6 @@
>   #else
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
>   #endif
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
>   #endif
>   
> diff --git a/include/configs/M5249EVB.h b/include/configs/M5249EVB.h
> index 00892ec44d..32671494d9 100644
> --- a/include/configs/M5249EVB.h
> +++ b/include/configs/M5249EVB.h
> @@ -89,7 +89,6 @@
>   
>   #	define CONFIG_SYS_FLASH_SIZE		0x1000000	/* Max size that the board might have */
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
>   #	define CONFIG_SYS_FLASH_CHECKSUM
>   #	define CONFIG_SYS_FLASH_BANKS_LIST	{ CONFIG_SYS_FLASH_BASE }
> diff --git a/include/configs/M5253DEMO.h b/include/configs/M5253DEMO.h
> index c5d8aa3eda..6ba5c52543 100644
> --- a/include/configs/M5253DEMO.h
> +++ b/include/configs/M5253DEMO.h
> @@ -125,7 +125,6 @@
>   
>   /* FLASH organization */
>   #define CONFIG_SYS_FLASH_BASE		(CONFIG_SYS_CS0_BASE)
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	2048	/* max number of sectors on one chip */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
>   
> diff --git a/include/configs/M5272C3.h b/include/configs/M5272C3.h
> index e814a2924c..df89a0f961 100644
> --- a/include/configs/M5272C3.h
> +++ b/include/configs/M5272C3.h
> @@ -123,7 +123,6 @@
>   #ifdef CONFIG_SYS_FLASH_CFI
>   #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
>   #endif
>   
> diff --git a/include/configs/M5275EVB.h b/include/configs/M5275EVB.h
> index b18f0319b0..7926ed44dc 100644
> --- a/include/configs/M5275EVB.h
> +++ b/include/configs/M5275EVB.h
> @@ -126,7 +126,6 @@
>   /*-----------------------------------------------------------------------
>    * FLASH organization
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	11	/* max number of sectors on one chip */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
>   
> diff --git a/include/configs/M5282EVB.h b/include/configs/M5282EVB.h
> index 800a731914..df95eead1c 100644
> --- a/include/configs/M5282EVB.h
> +++ b/include/configs/M5282EVB.h
> @@ -129,7 +129,6 @@
>   
>   #	define CONFIG_SYS_FLASH_SIZE		0x1000000	/* Max size that the board might have */
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
>   #	define CONFIG_SYS_FLASH_CHECKSUM
>   #	define CONFIG_SYS_FLASH_BANKS_LIST	{ CONFIG_SYS_FLASH_BASE }
> diff --git a/include/configs/M53017EVB.h b/include/configs/M53017EVB.h
> index 5db189ae2d..c26de6b313 100644
> --- a/include/configs/M53017EVB.h
> +++ b/include/configs/M53017EVB.h
> @@ -130,7 +130,6 @@
>   #	define CONFIG_FLASH_SPANSION_S29WS_N	1
>   #	define CONFIG_SYS_FLASH_SIZE		0x1000000	/* Max size that the board might have */
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
>   #endif
>   
> diff --git a/include/configs/M5329EVB.h b/include/configs/M5329EVB.h
> index f96f54ef65..21137abe08 100644
> --- a/include/configs/M5329EVB.h
> +++ b/include/configs/M5329EVB.h
> @@ -125,7 +125,6 @@
>   #ifdef CONFIG_SYS_FLASH_CFI
>   #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
>   #endif
>   
> diff --git a/include/configs/M5373EVB.h b/include/configs/M5373EVB.h
> index b7906013e0..a2cdd8f417 100644
> --- a/include/configs/M5373EVB.h
> +++ b/include/configs/M5373EVB.h
> @@ -127,7 +127,6 @@
>   #ifdef CONFIG_SYS_FLASH_CFI
>   #	define CONFIG_SYS_FLASH_SIZE		0x800000	/* Max size that the board might have */
>   #	define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#	define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks */
>   #	define CONFIG_SYS_MAX_FLASH_SECT	137	/* max number of sectors on one chip */
>   #endif
>   
> diff --git a/include/configs/MCR3000.h b/include/configs/MCR3000.h
> index bfb092ab17..4a26ae8f7f 100644
> --- a/include/configs/MCR3000.h
> +++ b/include/configs/MCR3000.h
> @@ -69,7 +69,6 @@
>   
>   /* FLASH organization */
>   #define CONFIG_SYS_FLASH_BASE		CONFIG_SYS_TEXT_BASE
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	35
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	120000
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500
> diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h
> index 9a34e5444b..977d96a5a7 100644
> --- a/include/configs/MPC837XERDB.h
> +++ b/include/configs/MPC837XERDB.h
> @@ -155,7 +155,6 @@
>   #define CONFIG_SYS_FLASH_EMPTY_INFO		/* display empty sectors */
>   
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1 /* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	256 /* max sectors per device */
>   
>   #undef	CONFIG_SYS_FLASH_CHECKSUM
> diff --git a/include/configs/MPC8540ADS.h b/include/configs/MPC8540ADS.h
> index 84e05eafa6..57097b17eb 100644
> --- a/include/configs/MPC8540ADS.h
> +++ b/include/configs/MPC8540ADS.h
> @@ -85,7 +85,6 @@
>   
>   #define CONFIG_SYS_FLASH_BASE		0xff000000	/* start of FLASH 16M */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1		/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	64		/* sectors per device */
>   #undef	CONFIG_SYS_FLASH_CHECKSUM
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
> diff --git a/include/configs/MPC8548CDS.h b/include/configs/MPC8548CDS.h
> index f583aa8b36..e16d870a5e 100644
> --- a/include/configs/MPC8548CDS.h
> +++ b/include/configs/MPC8548CDS.h
> @@ -133,7 +133,6 @@
>   
>   #define CONFIG_SYS_FLASH_BANKS_LIST \
>   	{CONFIG_SYS_FLASH_BASE_PHYS + 0x800000, CONFIG_SYS_FLASH_BASE_PHYS}
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2		/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	128		/* sectors per device */
>   #undef	CONFIG_SYS_FLASH_CHECKSUM
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
> diff --git a/include/configs/MPC8560ADS.h b/include/configs/MPC8560ADS.h
> index b8a72d01dd..d23cf0e41a 100644
> --- a/include/configs/MPC8560ADS.h
> +++ b/include/configs/MPC8560ADS.h
> @@ -86,7 +86,6 @@
>   
>   #define CONFIG_SYS_FLASH_BASE		0xff000000	/* start of FLASH 16M */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1		/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	64		/* sectors per device */
>   #undef	CONFIG_SYS_FLASH_CHECKSUM
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
> diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h
> index 6a9c86c9c4..23b9969f84 100644
> --- a/include/configs/P1010RDB.h
> +++ b/include/configs/P1010RDB.h
> @@ -267,7 +267,6 @@ extern unsigned long get_sdram_size(void);
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE_PHYS}
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   
>   #undef CONFIG_SYS_FLASH_CHECKSUM
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
> diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h
> index 8ada25dcc7..ceaed464fe 100644
> --- a/include/configs/P2041RDB.h
> +++ b/include/configs/P2041RDB.h
> @@ -142,7 +142,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1		/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024		/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000		/* Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500		/* Write Timeout (ms) */
> diff --git a/include/configs/T102xRDB.h b/include/configs/T102xRDB.h
> index bf266623c9..d24cfce8b3 100644
> --- a/include/configs/T102xRDB.h
> +++ b/include/configs/T102xRDB.h
> @@ -202,7 +202,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/T104xRDB.h b/include/configs/T104xRDB.h
> index a1650f5430..f60010f787 100644
> --- a/include/configs/T104xRDB.h
> +++ b/include/configs/T104xRDB.h
> @@ -175,7 +175,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/T208xQDS.h b/include/configs/T208xQDS.h
> index aaea314e45..f0bdcbae63 100644
> --- a/include/configs/T208xQDS.h
> +++ b/include/configs/T208xQDS.h
> @@ -161,7 +161,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/T208xRDB.h b/include/configs/T208xRDB.h
> index 467f6344fa..86dc5bfe82 100644
> --- a/include/configs/T208xRDB.h
> +++ b/include/configs/T208xRDB.h
> @@ -151,7 +151,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
> index 2d632493c1..6923774a16 100644
> --- a/include/configs/T4240RDB.h
> +++ b/include/configs/T4240RDB.h
> @@ -267,7 +267,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/adp-ae3xx.h b/include/configs/adp-ae3xx.h
> index 11eff3852d..f0416d4715 100644
> --- a/include/configs/adp-ae3xx.h
> +++ b/include/configs/adp-ae3xx.h
> @@ -155,9 +155,6 @@
>   #define CONFIG_SYS_CFI_FLASH_STATUS_POLL
>   
>   /* support JEDEC */
> -#ifdef CONFIG_CFI_FLASH
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
> -#endif
>   
>   /* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
>   #define PHYS_FLASH_1			0x88000000	/* BANK 0 */
> @@ -173,7 +170,6 @@
>    * There are 4 banks supported for this Controller,
>    * but we have only 1 bank connected to flash on board
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
>   
>   /* max number of sectors on one chip */
> diff --git a/include/configs/adp-ag101p.h b/include/configs/adp-ag101p.h
> index 31ef30adc6..69fb5d170b 100644
> --- a/include/configs/adp-ag101p.h
> +++ b/include/configs/adp-ag101p.h
> @@ -286,7 +286,6 @@
>    * There are 4 banks supported for this Controller,
>    * but we have only 1 bank connected to flash on board
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
>   
>   /* max number of sectors on one chip */
> diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
> index 7fb1b3a3e3..4c2f68298f 100644
> --- a/include/configs/am335x_evm.h
> +++ b/include/configs/am335x_evm.h
> @@ -270,7 +270,6 @@
>    */
>   #if defined(CONFIG_NOR)
>   #define CONFIG_SYS_MAX_FLASH_SECT	128
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BASE		(0x08000000)
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
>   #define CONFIG_SYS_FLASH_SIZE		0x01000000
> diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h
> index f5f2b63b74..63805d3321 100644
> --- a/include/configs/am3517_evm.h
> +++ b/include/configs/am3517_evm.h
> @@ -111,7 +111,6 @@
>   /* **** PISMO SUPPORT *** */
>   #define CONFIG_SYS_MAX_FLASH_SECT	520	/* max number of sectors */
>   						/* on one chip */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* max number of flash banks */
>   #define CONFIG_SYS_MONITOR_LEN		(256 << 10)	/* Reserve 2 sectors */
>   
>   #if defined(CONFIG_MTD_RAW_NAND)
> diff --git a/include/configs/amcore.h b/include/configs/amcore.h
> index d813af17f7..ae8aa35b6d 100644
> --- a/include/configs/amcore.h
> +++ b/include/configs/amcore.h
> @@ -40,7 +40,6 @@
>   #define CONFIG_SYS_SDRAM_BASE		0x00000000
>   #define CONFIG_SYS_SDRAM_SIZE		0x1000000
>   #define CONFIG_SYS_FLASH_BASE		0xffc00000
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
>   
> diff --git a/include/configs/armadillo-800eva.h b/include/configs/armadillo-800eva.h
> index 7714da40dc..d24ba2f0d6 100644
> --- a/include/configs/armadillo-800eva.h
> +++ b/include/configs/armadillo-800eva.h
> @@ -53,7 +53,6 @@
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
>   #define CONFIG_SYS_FLASH_BASE		0x00000000
>   #define CONFIG_SYS_MAX_FLASH_SECT	512
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
>   
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	3000
> diff --git a/include/configs/astro_mcf5373l.h b/include/configs/astro_mcf5373l.h
> index d87ca304e2..4f6fb41569 100644
> --- a/include/configs/astro_mcf5373l.h
> +++ b/include/configs/astro_mcf5373l.h
> @@ -227,7 +227,6 @@
>   						(CONFIG_SYS_SDRAM_SIZE << 20))
>   
>   /* FLASH organization */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	259
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	1000
>   
> diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h
> index 5aa9fee2e1..485211c42f 100644
> --- a/include/configs/at91sam9263ek.h
> +++ b/include/configs/at91sam9263ek.h
> @@ -58,7 +58,6 @@
>   #define PHYS_FLASH_1				0x10000000
>   #define CONFIG_SYS_FLASH_BASE			PHYS_FLASH_1
>   #define CONFIG_SYS_MAX_FLASH_SECT		256
> -#define CONFIG_SYS_MAX_FLASH_BANKS		1
>   
>   #define CONFIG_SYS_MONITOR_SEC	1:0-3
>   #define CONFIG_SYS_MONITOR_BASE	CONFIG_SYS_FLASH_BASE
> diff --git a/include/configs/ax25-ae350.h b/include/configs/ax25-ae350.h
> index 2ad0d1589c..3903dcf3e9 100644
> --- a/include/configs/ax25-ae350.h
> +++ b/include/configs/ax25-ae350.h
> @@ -79,9 +79,6 @@
>   #define CONFIG_SYS_CFI_FLASH_STATUS_POLL
>   
>   /* support JEDEC */
> -#ifdef CONFIG_CFI_FLASH
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
> -#endif/* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
>   #define PHYS_FLASH_1			0x88000000	/* BANK 0 */
>   #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_1
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ PHYS_FLASH_1, }
> @@ -95,7 +92,6 @@
>    * There are 4 banks supported for this Controller,
>    * but we have only 1 bank connected to flash on board
>   */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BANKS_SIZES {0x4000000}
>   
>   /* max number of sectors on one chip */
> diff --git a/include/configs/bcm7445.h b/include/configs/bcm7445.h
> index 81c3d02c6b..4b41dc220b 100644
> --- a/include/configs/bcm7445.h
> +++ b/include/configs/bcm7445.h
> @@ -28,6 +28,4 @@
>    * Environment configuration for SPI flash.
>    */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -
>   #endif	/* __CONFIG_H */
> diff --git a/include/configs/blanche.h b/include/configs/blanche.h
> index 882b94f55a..2135ba700e 100644
> --- a/include/configs/blanche.h
> +++ b/include/configs/blanche.h
> @@ -34,7 +34,6 @@
>   #define CONFIG_SYS_FLASH_BASE		0x00000000
>   #define CONFIG_SYS_FLASH_SIZE		0x04000000	/* 64 MB */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
>   #define CONFIG_SYS_FLASH_BANKS_SIZES	{ (CONFIG_SYS_FLASH_SIZE) }
>   
> diff --git a/include/configs/bmips_bcm6338.h b/include/configs/bmips_bcm6338.h
> index b7de3f4058..ddaa540513 100644
> --- a/include/configs/bmips_bcm6338.h
> +++ b/include/configs/bmips_bcm6338.h
> @@ -22,7 +22,5 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xbfc00000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS		1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6338_H */
> diff --git a/include/configs/bmips_bcm6348.h b/include/configs/bmips_bcm6348.h
> index 5ed0eebce4..af1c3673fb 100644
> --- a/include/configs/bmips_bcm6348.h
> +++ b/include/configs/bmips_bcm6348.h
> @@ -29,7 +29,5 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xbfc00000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS		1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6348_H */
> diff --git a/include/configs/bmips_bcm6358.h b/include/configs/bmips_bcm6358.h
> index 829e9f6b17..6cb09492aa 100644
> --- a/include/configs/bmips_bcm6358.h
> +++ b/include/configs/bmips_bcm6358.h
> @@ -31,7 +31,5 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xbe000000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6358_H */
> diff --git a/include/configs/bmips_bcm6368.h b/include/configs/bmips_bcm6368.h
> index 0952b98473..8a22dc1a3c 100644
> --- a/include/configs/bmips_bcm6368.h
> +++ b/include/configs/bmips_bcm6368.h
> @@ -31,7 +31,5 @@
>   
>   #define CONFIG_SYS_FLASH_BASE			0xb8000000
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   #endif /* __CONFIG_BMIPS_BCM6368_H */
> diff --git a/include/configs/boston.h b/include/configs/boston.h
> index 7ac044e929..347b178633 100644
> --- a/include/configs/boston.h
> +++ b/include/configs/boston.h
> @@ -41,8 +41,6 @@
>    * Flash
>    */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT		1024
>   
>   /*
> diff --git a/include/configs/cobra5272.h b/include/configs/cobra5272.h
> index 3e19e99c24..81315f6ec7 100644
> --- a/include/configs/cobra5272.h
> +++ b/include/configs/cobra5272.h
> @@ -223,7 +223,6 @@ enter a valid image address in flash */
>   /*-----------------------------------------------------------------------
>    * FLASH organization
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of memory banks		*/
>   #define CONFIG_SYS_MAX_FLASH_SECT	11	/* max number of sectors on one chip	*/
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	1000	/* flash timeout */
>   
> diff --git a/include/configs/colibri_pxa270.h b/include/configs/colibri_pxa270.h
> index 0be7f5a416..305d25b221 100644
> --- a/include/configs/colibri_pxa270.h
> +++ b/include/configs/colibri_pxa270.h
> @@ -84,7 +84,6 @@
>   #define	CONFIG_SYS_FLASH_CFI_WIDTH      FLASH_CFI_32BIT
>   
>   #define	CONFIG_SYS_MAX_FLASH_SECT	(4 + 255)
> -#define	CONFIG_SYS_MAX_FLASH_BANKS	1
>   
>   #define	CONFIG_SYS_FLASH_ERASE_TOUT	(25 * CONFIG_SYS_HZ)
>   #define	CONFIG_SYS_FLASH_WRITE_TOUT	(25 * CONFIG_SYS_HZ)
> diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h
> index f6e0b2a7ea..6d272c6d88 100644
> --- a/include/configs/corenet_ds.h
> +++ b/include/configs/corenet_ds.h
> @@ -140,7 +140,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2		/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024		/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000		/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500		/* Flash Write Timeout (ms) */
> diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h
> index 97c9276e0e..956a965901 100644
> --- a/include/configs/da850evm.h
> +++ b/include/configs/da850evm.h
> @@ -145,7 +145,6 @@
>   #endif
>   
>   #ifdef CONFIG_MTD_NOR_FLASH
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1 /* max number of flash banks */
>   #define CONFIG_SYS_FLASH_SECT_SZ	(128 << 10) /* 128KB */
>   #define CONFIG_SYS_FLASH_BASE		DAVINCI_ASYNC_EMIF_DATA_CE2_BASE
>   #define PHYS_FLASH_SIZE			(8 << 20) /* Flash size 8MB */
> diff --git a/include/configs/devkit3250.h b/include/configs/devkit3250.h
> index 1e24d05bfb..f30958f0d3 100644
> --- a/include/configs/devkit3250.h
> +++ b/include/configs/devkit3250.h
> @@ -39,7 +39,6 @@
>   /*
>    * NOR Flash
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	71
>   #define CONFIG_SYS_FLASH_BASE		EMC_CS0_BASE
>   #define CONFIG_SYS_FLASH_SIZE		SZ_4M
> diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h
> index 900c5fd233..aec30c461d 100644
> --- a/include/configs/dra7xx_evm.h
> +++ b/include/configs/dra7xx_evm.h
> @@ -103,7 +103,6 @@
>   #define CONFIG_SYS_MAX_FLASH_SECT	512
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
>   #define CONFIG_SYS_FLASH_SIZE		(64 * 1024 * 1024) /* 64 MB */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BASE		(0x08000000)
>   #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE
>   /* Reduce SPL size by removing unlikey targets */
> diff --git a/include/configs/draak.h b/include/configs/draak.h
> index 412c57f150..e3e2b6a0bd 100644
> --- a/include/configs/draak.h
> +++ b/include/configs/draak.h
> @@ -23,8 +23,6 @@
>   #define CONFIG_FLASH_SHOW_PROGRESS	45
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/configs/eb_cpu5282.h b/include/configs/eb_cpu5282.h
> index 62b62e07c5..6ad8722d60 100644
> --- a/include/configs/eb_cpu5282.h
> +++ b/include/configs/eb_cpu5282.h
> @@ -116,7 +116,6 @@
>   #define CONFIG_SYS_INT_FLASH_ENABLE	0x21
>   
>   #define	CONFIG_SYS_MAX_FLASH_SECT	128
> -#define	CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define	CONFIG_SYS_FLASH_ERASE_TOUT	10000000
>   
>   #define CONFIG_SYS_FLASH_SIZE		16*1024*1024
> diff --git a/include/configs/ebisu.h b/include/configs/ebisu.h
> index 87053760e2..178b050a12 100644
> --- a/include/configs/ebisu.h
> +++ b/include/configs/ebisu.h
> @@ -26,8 +26,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/configs/edminiv2.h b/include/configs/edminiv2.h
> index e20e058e0a..90e387e6c5 100644
> --- a/include/configs/edminiv2.h
> +++ b/include/configs/edminiv2.h
> @@ -85,7 +85,6 @@
>    * FLASH configuration
>    */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1  /* max num of flash banks       */
>   #define CONFIG_SYS_MAX_FLASH_SECT	11 /* max num of sects on one chip */
>   #define CONFIG_SYS_FLASH_BASE		0xfff80000
>   
> diff --git a/include/configs/ethernut5.h b/include/configs/ethernut5.h
> index ccf615efa3..d72f704636 100644
> --- a/include/configs/ethernut5.h
> +++ b/include/configs/ethernut5.h
> @@ -32,7 +32,6 @@
>   #define CONFIG_SYS_SDRAM_SIZE		(128 << 20)
>   
>   /* 512kB on-chip NOR flash */
> -# define CONFIG_SYS_MAX_FLASH_BANKS	1
>   # define CONFIG_SYS_FLASH_BASE		0x00200000 /* AT91SAM9XE_FLASH_BASE */
>   # define CONFIG_AT91_EFLASH
>   # define CONFIG_SYS_MAX_FLASH_SECT	32
> diff --git a/include/configs/gazerbeam.h b/include/configs/gazerbeam.h
> index c7fdf7c6bb..7e13464b10 100644
> --- a/include/configs/gazerbeam.h
> +++ b/include/configs/gazerbeam.h
> @@ -43,7 +43,6 @@
>   #define CONFIG_SYS_FLASH_BASE		0xFE000000 /* FLASH base address */
>   #define CONFIG_SYS_FLASH_SIZE		8 /* FLASH size is up to 8M */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1 /* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	135
>   
>   #define CONFIG_SYS_BAUDRATE_TABLE  \
> diff --git a/include/configs/ids8313.h b/include/configs/ids8313.h
> index 206a57a653..e35862a6cd 100644
> --- a/include/configs/ids8313.h
> +++ b/include/configs/ids8313.h
> @@ -118,7 +118,6 @@
>   #define CONFIG_SYS_FLASH_SIZE		8
>   
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	128
>   
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000
> diff --git a/include/configs/imx27lite-common.h b/include/configs/imx27lite-common.h
> index dffe175f50..641e4037d5 100644
> --- a/include/configs/imx27lite-common.h
> +++ b/include/configs/imx27lite-common.h
> @@ -77,7 +77,6 @@
>    */
>   /* Use buffered writes (~10x faster) */
>   /* Use hardware sector protection */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* max number of flash banks */
>   /* CS2 Base address */
>   #define PHYS_FLASH_1			0xc0000000
>   /* Flash Base for U-Boot */
> diff --git a/include/configs/integrator-common.h b/include/configs/integrator-common.h
> index b573bdc64f..48d522550e 100644
> --- a/include/configs/integrator-common.h
> +++ b/include/configs/integrator-common.h
> @@ -74,7 +74,6 @@
>    * - U-Boot environment
>    */
>   #define CONFIG_SYS_FLASH_BASE		0x24000000
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   
>   /* Timeout values in ticks */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	(2 * CONFIG_SYS_HZ) /* Erase Timeout */
> diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h
> index acac81ad68..abea7517e8 100644
> --- a/include/configs/j721e_evm.h
> +++ b/include/configs/j721e_evm.h
> @@ -60,8 +60,6 @@
>   #define CONFIG_CQSPI_REF_CLK		133333333
>   
>   /* HyperFlash related configuration */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   
>   /* U-Boot general configuration */
>   #define EXTRA_ENV_J721E_BOARD_SETTINGS					\
> diff --git a/include/configs/km/km-mpc83xx.h b/include/configs/km/km-mpc83xx.h
> index 45db5cf873..7c979c5fa9 100644
> --- a/include/configs/km/km-mpc83xx.h
> +++ b/include/configs/km/km-mpc83xx.h
> @@ -56,7 +56,6 @@
>    */
>   #define CONFIG_SYS_FLASH_SIZE		256 /* max FLASH size is 256M */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1   /* max num of flash banks	*/
>   #define CONFIG_SYS_MAX_FLASH_SECT	512 /* max num of sects on one chip */
>   #define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE }
>   
> diff --git a/include/configs/km/pg-wcom-ls102xa.h b/include/configs/km/pg-wcom-ls102xa.h
> index ba0e4dd5c6..9d7a9e18d5 100644
> --- a/include/configs/km/pg-wcom-ls102xa.h
> +++ b/include/configs/km/pg-wcom-ls102xa.h
> @@ -68,7 +68,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	512	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/kmcent2.h b/include/configs/kmcent2.h
> index 98e572397b..ca0cb31c29 100644
> --- a/include/configs/kmcent2.h
> +++ b/include/configs/kmcent2.h
> @@ -246,7 +246,6 @@
>   /* More NOR Flash params */
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	512	/* sectors per device */
>   
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
> diff --git a/include/configs/kzm9g.h b/include/configs/kzm9g.h
> index 1eb6dafe20..022858f692 100644
> --- a/include/configs/kzm9g.h
> +++ b/include/configs/kzm9g.h
> @@ -20,7 +20,6 @@
>   #define KZM_FLASH_BASE	(0x00000000)
>   #define CONFIG_SYS_FLASH_BASE		(KZM_FLASH_BASE)
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	(FLASH_CFI_16BIT)
> -#define CONFIG_SYS_MAX_FLASH_BANKS	(1)
>   #define CONFIG_SYS_MAX_FLASH_SECT	(512)
>   
>   /* prompt */
> diff --git a/include/configs/ls1021aqds.h b/include/configs/ls1021aqds.h
> index 7edb5c6180..8c4cb7b720 100644
> --- a/include/configs/ls1021aqds.h
> +++ b/include/configs/ls1021aqds.h
> @@ -102,7 +102,6 @@
>   #define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
> index d4c6f4fcf8..dcee79de88 100644
> --- a/include/configs/ls1021atwr.h
> +++ b/include/configs/ls1021atwr.h
> @@ -114,7 +114,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
> index 80eff7b1a9..5f9cb97855 100644
> --- a/include/configs/ls1043aqds.h
> +++ b/include/configs/ls1043aqds.h
> @@ -90,7 +90,6 @@
>   					FTIM2_NOR_TWP(0x1c))
>   #define CONFIG_SYS_NOR_FTIM3		0
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
> index 7b6d19374e..fa6a8b7777 100644
> --- a/include/configs/ls1043ardb.h
> +++ b/include/configs/ls1043ardb.h
> @@ -56,7 +56,6 @@
>   #define CONFIG_SYS_NOR_FTIM3		0
>   #define CONFIG_SYS_IFC_CCR		0x01000000
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls1046aqds.h b/include/configs/ls1046aqds.h
> index 97bf4182be..3d72c67a54 100644
> --- a/include/configs/ls1046aqds.h
> +++ b/include/configs/ls1046aqds.h
> @@ -97,7 +97,6 @@
>   					FTIM2_NOR_TWP(0x1c))
>   #define CONFIG_SYS_NOR_FTIM3		0
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls1088aqds.h b/include/configs/ls1088aqds.h
> index 5912fe95cc..2d33ab0794 100644
> --- a/include/configs/ls1088aqds.h
> +++ b/include/configs/ls1088aqds.h
> @@ -72,7 +72,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls1088ardb.h b/include/configs/ls1088ardb.h
> index 400b8adb24..4cb5d7517f 100644
> --- a/include/configs/ls1088ardb.h
> +++ b/include/configs/ls1088ardb.h
> @@ -60,7 +60,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
> index b0a05dd807..07cf59fcb8 100644
> --- a/include/configs/ls2080aqds.h
> +++ b/include/configs/ls2080aqds.h
> @@ -85,7 +85,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
> index a54387e16c..6d8effea74 100644
> --- a/include/configs/ls2080ardb.h
> +++ b/include/configs/ls2080ardb.h
> @@ -87,7 +87,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45 /* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT	1024	/* sectors per device */
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/lsxl.h b/include/configs/lsxl.h
> index afa0206fb9..e8e02e7f7b 100644
> --- a/include/configs/lsxl.h
> +++ b/include/configs/lsxl.h
> @@ -19,7 +19,6 @@
>    *  Environment variables configurations
>    */
>   #ifdef CONFIG_SPI_FLASH
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	8
>   #endif
>   
> diff --git a/include/configs/malta.h b/include/configs/malta.h
> index 8ace0ccd7e..61860ee694 100644
> --- a/include/configs/malta.h
> +++ b/include/configs/malta.h
> @@ -54,7 +54,6 @@
>   #else
>   # define CONFIG_SYS_FLASH_BASE		0xbe000000
>   #endif
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	128
>   
>   /*
> diff --git a/include/configs/mccmon6.h b/include/configs/mccmon6.h
> index aa95864516..e2f916de31 100644
> --- a/include/configs/mccmon6.h
> +++ b/include/configs/mccmon6.h
> @@ -37,8 +37,6 @@
>   #define CONFIG_FLASH_VERIFY
>   
>   /* NOR Flash MTD */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ (CONFIG_SYS_FLASH_BASE) }
>   #define CONFIG_SYS_FLASH_BANKS_SIZES	{ (32 * SZ_1M) }
>   
> diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h
> index e7882fb607..261fda0053 100644
> --- a/include/configs/microblaze-generic.h
> +++ b/include/configs/microblaze-generic.h
> @@ -32,7 +32,6 @@
>   /* ?empty sector */
>   # define CONFIG_SYS_FLASH_EMPTY_INFO	1
>   /* max number of memory banks */
> -# define CONFIG_SYS_MAX_FLASH_BANKS	1
>   /* max number of sectors on one chip */
>   # define CONFIG_SYS_MAX_FLASH_SECT	2048
>   #endif
> diff --git a/include/configs/mx6sabreauto.h b/include/configs/mx6sabreauto.h
> index 5e8446088b..adf0a79f7a 100644
> --- a/include/configs/mx6sabreauto.h
> +++ b/include/configs/mx6sabreauto.h
> @@ -41,7 +41,6 @@
>   #ifdef CONFIG_MTD_NOR_FLASH
>   #define CONFIG_SYS_FLASH_BASE           WEIM_ARB_BASE_ADDR
>   #define CONFIG_SYS_FLASH_SECT_SIZE      (128 * 1024)
> -#define CONFIG_SYS_MAX_FLASH_BANKS 1    /* max number of memory banks */
>   #define CONFIG_SYS_MAX_FLASH_SECT 256   /* max number of sectors on one chip */
>   #define CONFIG_SYS_FLASH_EMPTY_INFO
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> diff --git a/include/configs/octeon_ebb7304.h b/include/configs/octeon_ebb7304.h
> index 04fe4dfe22..358db69a05 100644
> --- a/include/configs/octeon_ebb7304.h
> +++ b/include/configs/octeon_ebb7304.h
> @@ -12,7 +12,6 @@
>   /*
>    * CFI flash
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_8BIT
>   #define CONFIG_SYS_FLASH_EMPTY_INFO	/* flinfo indicates empty blocks */
> diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h
> index 211f39a0fa..4719184b5e 100644
> --- a/include/configs/omap3_logic.h
> +++ b/include/configs/omap3_logic.h
> @@ -154,7 +154,6 @@
>   #endif
>   
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
>   #define CONFIG_SYS_FLASH_SIZE		0x4000000
>   
> diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h
> index 2e1331b9b0..b993ec8316 100644
> --- a/include/configs/p1_p2_rdb_pc.h
> +++ b/include/configs/p1_p2_rdb_pc.h
> @@ -254,8 +254,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_FLASH_SHOW_PROGRESS	45	/* count down from 45/5: 9..1 */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1	/* number of banks */
> -
>   #undef CONFIG_SYS_FLASH_CHECKSUM
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms) */
>   #define CONFIG_SYS_FLASH_WRITE_TOUT	500	/* Flash Write Timeout (ms) */
> diff --git a/include/configs/pm9261.h b/include/configs/pm9261.h
> index be24d82538..f3196ee847 100644
> --- a/include/configs/pm9261.h
> +++ b/include/configs/pm9261.h
> @@ -161,7 +161,6 @@
>   #define PHYS_FLASH_1				0x10000000
>   #define CONFIG_SYS_FLASH_BASE			PHYS_FLASH_1
>   #define CONFIG_SYS_MAX_FLASH_SECT		256
> -#define CONFIG_SYS_MAX_FLASH_BANKS		1
>   
>   /* USB */
>   #define CONFIG_USB_ATMEL
> diff --git a/include/configs/pm9263.h b/include/configs/pm9263.h
> index e9eb736ecb..4856f61527 100644
> --- a/include/configs/pm9263.h
> +++ b/include/configs/pm9263.h
> @@ -163,7 +163,6 @@
>   #define PHYS_FLASH_1			0x10000000
>   #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_1
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   
>   /* NAND flash */
>   #ifdef CONFIG_CMD_NAND
> diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
> index fe958ef3c5..d2963c4631 100644
> --- a/include/configs/qemu-arm.h
> +++ b/include/configs/qemu-arm.h
> @@ -42,8 +42,6 @@
>   #define CONFIG_SYS_CBSIZE 512
>   
>   #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256 /* Sector: 256K, Bank: 64M */
>   #define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
>   
> diff --git a/include/configs/qemu-riscv.h b/include/configs/qemu-riscv.h
> index ae57f681a5..618c3b63d4 100644
> --- a/include/configs/qemu-riscv.h
> +++ b/include/configs/qemu-riscv.h
> @@ -25,8 +25,6 @@
>   
>   #define CONFIG_STANDALONE_LOAD_ADDR	0x80200000
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2
> -
>   #define RISCV_MMODE_TIMERBASE		0x2000000
>   #define RISCV_MMODE_TIMER_FREQ		1000000
>   
> diff --git a/include/configs/r2dplus.h b/include/configs/r2dplus.h
> index 8e86830e61..e3105fe53c 100644
> --- a/include/configs/r2dplus.h
> +++ b/include/configs/r2dplus.h
> @@ -21,7 +21,6 @@
>    * NOR Flash ( Spantion S29GL256P )
>    */
>   #define CONFIG_SYS_FLASH_BASE		(0xA0000000)
> -#define CONFIG_SYS_MAX_FLASH_BANKS (1)
>   #define CONFIG_SYS_MAX_FLASH_SECT  256
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ CONFIG_SYS_FLASH_BASE }
>   
> diff --git a/include/configs/salvator-x.h b/include/configs/salvator-x.h
> index da3e2c8856..9542b0d1b5 100644
> --- a/include/configs/salvator-x.h
> +++ b/include/configs/salvator-x.h
> @@ -24,8 +24,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/configs/sama5d3xek.h b/include/configs/sama5d3xek.h
> index 67640f4415..3be2c83fce 100644
> --- a/include/configs/sama5d3xek.h
> +++ b/include/configs/sama5d3xek.h
> @@ -32,7 +32,6 @@
>   #ifdef CONFIG_MTD_NOR_FLASH
>   #define CONFIG_SYS_FLASH_BASE		0x10000000
>   #define CONFIG_SYS_MAX_FLASH_SECT	131
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #endif
>   
>   /* SDRAM */
> diff --git a/include/configs/socfpga_arria10_socdk.h b/include/configs/socfpga_arria10_socdk.h
> index ebb3e8c573..c20d54a3c5 100644
> --- a/include/configs/socfpga_arria10_socdk.h
> +++ b/include/configs/socfpga_arria10_socdk.h
> @@ -30,7 +30,6 @@
>   /*
>    * Flash configurations
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS     1
>   
>   /* SPL memory allocation configuration, this is for FAT implementation */
>   #define CONFIG_SYS_SPL_MALLOC_SIZE	0x00015000
> diff --git a/include/configs/socfpga_soc64_common.h b/include/configs/socfpga_soc64_common.h
> index 928582ab8c..8646dc2318 100644
> --- a/include/configs/socfpga_soc64_common.h
> +++ b/include/configs/socfpga_soc64_common.h
> @@ -136,7 +136,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
>   /*
>    * Flash configurations
>    */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   
>   /* Ethernet on SoC (EMAC) */
>   #if defined(CONFIG_CMD_NET)
> diff --git a/include/configs/socrates.h b/include/configs/socrates.h
> index 15e93d044e..be59cc2fdc 100644
> --- a/include/configs/socrates.h
> +++ b/include/configs/socrates.h
> @@ -93,7 +93,6 @@
>   #define CONFIG_SYS_LBC_FLASH_BASE	CONFIG_SYS_FLASH1	/* Localbus flash start	*/
>   #define CONFIG_SYS_FLASH_BASE		CONFIG_SYS_LBC_FLASH_BASE /* start of FLASH	*/
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2		/* number of banks	*/
>   #define CONFIG_SYS_MAX_FLASH_SECT	256		/* sectors per device	*/
>   #undef	CONFIG_SYS_FLASH_CHECKSUM
>   #define CONFIG_SYS_FLASH_ERASE_TOUT	60000	/* Flash Erase Timeout (ms)	*/
> diff --git a/include/configs/stih410-b2260.h b/include/configs/stih410-b2260.h
> index 2fe0900e9f..4c464cfbe5 100644
> --- a/include/configs/stih410-b2260.h
> +++ b/include/configs/stih410-b2260.h
> @@ -51,8 +51,6 @@
>   /* Monitor Command Prompt */
>   #define CONFIG_SYS_CBSIZE		1024	/* Console I/O Buffer Size */
>   
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -
>   /* USB Configs */
>   #define CONFIG_USB_OHCI_NEW
>   #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	2
> diff --git a/include/configs/stm32f429-discovery.h b/include/configs/stm32f429-discovery.h
> index 8dddd5449e..c9649a085e 100644
> --- a/include/configs/stm32f429-discovery.h
> +++ b/include/configs/stm32f429-discovery.h
> @@ -16,7 +16,6 @@
>    */
>   
>   #define CONFIG_SYS_MAX_FLASH_SECT	12
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2
>   
>   #define CONFIG_RED_LED			110
>   #define CONFIG_GREEN_LED		109
> diff --git a/include/configs/stm32f429-evaluation.h b/include/configs/stm32f429-evaluation.h
> index c490e2d98b..4c421b9596 100644
> --- a/include/configs/stm32f429-evaluation.h
> +++ b/include/configs/stm32f429-evaluation.h
> @@ -21,7 +21,6 @@
>    */
>   
>   #define CONFIG_SYS_MAX_FLASH_SECT	12
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2
>   
>   #define CONFIG_SYS_HZ_CLOCK		1000000	/* Timer is clocked at 1MHz */
>   
> diff --git a/include/configs/stm32f469-discovery.h b/include/configs/stm32f469-discovery.h
> index 246dc1f9c6..e91f8da280 100644
> --- a/include/configs/stm32f469-discovery.h
> +++ b/include/configs/stm32f469-discovery.h
> @@ -21,7 +21,6 @@
>    */
>   
>   #define CONFIG_SYS_MAX_FLASH_SECT	12
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2
>   
>   #define CONFIG_SYS_HZ_CLOCK		1000000	/* Timer is clocked at 1MHz */
>   
> diff --git a/include/configs/stm32f746-disco.h b/include/configs/stm32f746-disco.h
> index 2f2a349dcd..8ad4bb99c8 100644
> --- a/include/configs/stm32f746-disco.h
> +++ b/include/configs/stm32f746-disco.h
> @@ -20,7 +20,6 @@
>    */
>   
>   #define CONFIG_SYS_MAX_FLASH_SECT	8
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   
>   #define CONFIG_DW_GMAC_DEFAULT_DMA_PBL	(8)
>   #define CONFIG_DW_ALTDESCRIPTOR
> diff --git a/include/configs/synquacer.h b/include/configs/synquacer.h
> index 0409589152..8dd092fc59 100644
> --- a/include/configs/synquacer.h
> +++ b/include/configs/synquacer.h
> @@ -37,7 +37,6 @@
>   #define CONFIG_PL01x_PORTS		{(void *)(0x2a400000)}
>   
>   /* Support MTD */
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_FLASH_BASE		(0x08000000)
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{CONFIG_SYS_FLASH_BASE}
>   
> diff --git a/include/configs/total_compute.h b/include/configs/total_compute.h
> index c752da374b..9638ab2017 100644
> --- a/include/configs/total_compute.h
> +++ b/include/configs/total_compute.h
> @@ -57,7 +57,6 @@
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_32BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   
>   #define CONFIG_SYS_FLASH_EMPTY_INFO	/* flinfo indicates empty blocks */
>   #define FLASH_MAX_SECTOR_SIZE		0x00040000
> diff --git a/include/configs/ulcb.h b/include/configs/ulcb.h
> index c22c30c86f..ca79b0352a 100644
> --- a/include/configs/ulcb.h
> +++ b/include/configs/ulcb.h
> @@ -24,8 +24,6 @@
>   #define CONFIG_SYS_FLASH_QUIET_TEST
>   #define CONFIG_SYS_FLASH_BANKS_LIST	{ 0x08000000 }
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
> -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   #define CONFIG_SYS_MAX_FLASH_SECT	256
>   #define CONFIG_SYS_WRITE_SWAPPED_DATA
>   
> diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
> index 44c746f6f2..c90e0b6c38 100644
> --- a/include/configs/vexpress_aemv8a.h
> +++ b/include/configs/vexpress_aemv8a.h
> @@ -200,7 +200,6 @@
>   #endif
>   
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_32BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   
>   #ifdef CONFIG_USB_EHCI_HCD
>   #define CONFIG_USB_OHCI_NEW
> diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
> index 91d50bc4a0..5f119aeb3d 100644
> --- a/include/configs/vexpress_common.h
> +++ b/include/configs/vexpress_common.h
> @@ -176,7 +176,6 @@
>   /* FLASH and environment organization */
>   #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */
>   #define CONFIG_SYS_FLASH_SIZE		0x04000000
> -#define CONFIG_SYS_MAX_FLASH_BANKS	2
>   #define CONFIG_SYS_FLASH_BASE0		V2M_NOR0
>   #define CONFIG_SYS_FLASH_BASE1		V2M_NOR1
>   #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE0
> diff --git a/include/configs/xtfpga.h b/include/configs/xtfpga.h
> index c8a6e9a61a..8c2cdb5cbd 100644
> --- a/include/configs/xtfpga.h
> +++ b/include/configs/xtfpga.h
> @@ -181,7 +181,6 @@
>   /*=====================*/
>   
>   #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_16BIT
> -#define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #ifdef CONFIG_XTFPGA_LX60
>   # define CONFIG_SYS_FLASH_SIZE		0x0040000	/* 4MB */
>   # define CONFIG_SYS_FLASH_SECT_SZ	0x10000		/* block size 64KB */
> diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
> index 88c6490d81..da2acb9a75 100644
> --- a/include/configs/zynq-common.h
> +++ b/include/configs/zynq-common.h
> @@ -35,7 +35,6 @@
>   
>   /* NOR */
>   #ifdef CONFIG_MTD_NOR_FLASH
> -# define CONFIG_SYS_MAX_FLASH_BANKS	1
>   # define CONFIG_SYS_MAX_FLASH_SECT	512
>   # define CONFIG_SYS_FLASH_ERASE_TOUT	1000
>   # define CONFIG_SYS_FLASH_WRITE_TOUT	5000
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 79f03d1636..7726243f22 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -1499,8 +1499,6 @@ CONFIG_SYS_MASTER_CLOCK
>   CONFIG_SYS_MATRIX_EBI0CSA_VAL
>   CONFIG_SYS_MATRIX_EBICSA_VAL
>   CONFIG_SYS_MAXARGS
> -CONFIG_SYS_MAX_FLASH_BANKS
> -CONFIG_SYS_MAX_FLASH_BANKS_DETECT
>   CONFIG_SYS_MAX_FLASH_SECT
>   CONFIG_SYS_MAX_I2C_BUS
>   CONFIG_SYS_MAX_NAND_CHIPS
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH to Kconfig
  2022-01-04 13:24 ` [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH " Patrick Delaunay
@ 2022-01-05  8:44   ` Stefan Roese
  2022-01-05  8:53     ` Eugen.Hristev
  2022-01-21 19:03   ` Tom Rini
  1 sibling, 1 reply; 17+ messages in thread
From: Stefan Roese @ 2022-01-05  8:44 UTC (permalink / raw)
  To: Patrick Delaunay, u-boot
  Cc: Marek Vasut, Simon Glass, Eugen Hristev, Marek Behún,
	Priyanka Jain, egnite GmbH, U-Boot STM32

On 1/4/22 14:24, Patrick Delaunay wrote:
> This converts the following to Kconfig:
>     CONFIG_AT91_EFLASH
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   arch/arm/mach-at91/Kconfig   | 8 ++++++++
>   configs/ethernut5_defconfig  | 2 +-
>   include/configs/ethernut5.h  | 1 -
>   scripts/config_whitelist.txt | 1 -
>   4 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
> index 4448ca1592..00f31045d6 100644
> --- a/arch/arm/mach-at91/Kconfig
> +++ b/arch/arm/mach-at91/Kconfig
> @@ -302,6 +302,14 @@ config ATMEL_SFR
>   config SYS_SOC
>   	default "at91"
>   
> +config AT91_EFLASH
> +	bool "Support AT91 flash driver"
> +	depends on AT91SAM9XE
> +	select USE_SYS_MAX_FLASH_BANKS
> +	help
> +	  Enable the driver for the embedded flash used in the Atmel
> +	  AT91SAM9XE devices.
> +
>   source "board/atmel/at91sam9260ek/Kconfig"
>   source "board/atmel/at91sam9261ek/Kconfig"
>   source "board/atmel/at91sam9263ek/Kconfig"
> diff --git a/configs/ethernut5_defconfig b/configs/ethernut5_defconfig
> index 5d98318aab..7a701db0e1 100644
> --- a/configs/ethernut5_defconfig
> +++ b/configs/ethernut5_defconfig
> @@ -4,6 +4,7 @@ CONFIG_ARCH_CPU_INIT=y
>   CONFIG_ARCH_AT91=y
>   CONFIG_SYS_TEXT_BASE=0x27000000
>   CONFIG_SYS_MALLOC_LEN=0x121000
> +CONFIG_AT91_EFLASH=y
>   CONFIG_SYS_MALLOC_F_LEN=0x2000
>   CONFIG_TARGET_ETHERNUT5=y
>   CONFIG_NR_DRAM_BANKS=1
> @@ -66,7 +67,6 @@ CONFIG_SYS_I2C_SOFT_SLAVE=0
>   CONFIG_GENERIC_ATMEL_MCI=y
>   CONFIG_MTD=y
>   CONFIG_MTD_NOR_FLASH=y
> -CONFIG_USE_SYS_MAX_FLASH_BANKS=y
>   CONFIG_MTD_RAW_NAND=y
>   # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
>   CONFIG_NAND_ATMEL=y
> diff --git a/include/configs/ethernut5.h b/include/configs/ethernut5.h
> index d72f704636..d88c14ac44 100644
> --- a/include/configs/ethernut5.h
> +++ b/include/configs/ethernut5.h
> @@ -33,7 +33,6 @@
>   
>   /* 512kB on-chip NOR flash */
>   # define CONFIG_SYS_FLASH_BASE		0x00200000 /* AT91SAM9XE_FLASH_BASE */
> -# define CONFIG_AT91_EFLASH
>   # define CONFIG_SYS_MAX_FLASH_SECT	32
>   # define CONFIG_EFLASH_PROTSECTORS	1
>   
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 7726243f22..3a923abf7e 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -18,7 +18,6 @@ CONFIG_AT91SAM9G20EK
>   CONFIG_AT91SAM9G20EK_2MMC
>   CONFIG_AT91SAM9G45_LCD_BASE
>   CONFIG_AT91SAM9M10G45EK
> -CONFIG_AT91_EFLASH
>   CONFIG_AT91_GPIO_PULLUP
>   CONFIG_AT91_LED
>   CONFIG_AT91_WANTS_COMMON_PHY
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH to Kconfig
  2022-01-05  8:44   ` Stefan Roese
@ 2022-01-05  8:53     ` Eugen.Hristev
  0 siblings, 0 replies; 17+ messages in thread
From: Eugen.Hristev @ 2022-01-05  8:53 UTC (permalink / raw)
  To: patrick.delaunay, u-boot
  Cc: sr, marex, sjg, marek.behun, priyanka.jain, info, uboot-stm32

On 1/5/22 10:44 AM, Stefan Roese wrote:

> On 1/4/22 14:24, Patrick Delaunay wrote:
>> This converts the following to Kconfig:
>>     CONFIG_AT91_EFLASH
>>
>> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
>> Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> Reviewed-by: Stefan Roese <sr@denx.de>

Thank you for the patch.

Acked-by: Eugen Hristev <eugen.hristev@microchip.com>

> 
> Thanks,
> Stefan
> 
>> ---
>>
>>   arch/arm/mach-at91/Kconfig   | 8 ++++++++
>>   configs/ethernut5_defconfig  | 2 +-
>>   include/configs/ethernut5.h  | 1 -
>>   scripts/config_whitelist.txt | 1 -
>>   4 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
>> index 4448ca1592..00f31045d6 100644
>> --- a/arch/arm/mach-at91/Kconfig
>> +++ b/arch/arm/mach-at91/Kconfig
>> @@ -302,6 +302,14 @@ config ATMEL_SFR
>>   config SYS_SOC
>>       default "at91"
>>
>> +config AT91_EFLASH
>> +     bool "Support AT91 flash driver"
>> +     depends on AT91SAM9XE
>> +     select USE_SYS_MAX_FLASH_BANKS
>> +     help
>> +       Enable the driver for the embedded flash used in the Atmel
>> +       AT91SAM9XE devices.
>> +
>>   source "board/atmel/at91sam9260ek/Kconfig"
>>   source "board/atmel/at91sam9261ek/Kconfig"
>>   source "board/atmel/at91sam9263ek/Kconfig"
>> diff --git a/configs/ethernut5_defconfig b/configs/ethernut5_defconfig
>> index 5d98318aab..7a701db0e1 100644
>> --- a/configs/ethernut5_defconfig
>> +++ b/configs/ethernut5_defconfig
>> @@ -4,6 +4,7 @@ CONFIG_ARCH_CPU_INIT=y
>>   CONFIG_ARCH_AT91=y
>>   CONFIG_SYS_TEXT_BASE=0x27000000
>>   CONFIG_SYS_MALLOC_LEN=0x121000
>> +CONFIG_AT91_EFLASH=y
>>   CONFIG_SYS_MALLOC_F_LEN=0x2000
>>   CONFIG_TARGET_ETHERNUT5=y
>>   CONFIG_NR_DRAM_BANKS=1
>> @@ -66,7 +67,6 @@ CONFIG_SYS_I2C_SOFT_SLAVE=0
>>   CONFIG_GENERIC_ATMEL_MCI=y
>>   CONFIG_MTD=y
>>   CONFIG_MTD_NOR_FLASH=y
>> -CONFIG_USE_SYS_MAX_FLASH_BANKS=y
>>   CONFIG_MTD_RAW_NAND=y
>>   # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
>>   CONFIG_NAND_ATMEL=y
>> diff --git a/include/configs/ethernut5.h b/include/configs/ethernut5.h
>> index d72f704636..d88c14ac44 100644
>> --- a/include/configs/ethernut5.h
>> +++ b/include/configs/ethernut5.h
>> @@ -33,7 +33,6 @@
>>
>>   /* 512kB on-chip NOR flash */
>>   # define CONFIG_SYS_FLASH_BASE              0x00200000 /* 
>> AT91SAM9XE_FLASH_BASE */
>> -# define CONFIG_AT91_EFLASH
>>   # define CONFIG_SYS_MAX_FLASH_SECT  32
>>   # define CONFIG_EFLASH_PROTSECTORS  1
>>
>> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
>> index 7726243f22..3a923abf7e 100644
>> --- a/scripts/config_whitelist.txt
>> +++ b/scripts/config_whitelist.txt
>> @@ -18,7 +18,6 @@ CONFIG_AT91SAM9G20EK
>>   CONFIG_AT91SAM9G20EK_2MMC
>>   CONFIG_AT91SAM9G45_LCD_BASE
>>   CONFIG_AT91SAM9M10G45EK
>> -CONFIG_AT91_EFLASH
>>   CONFIG_AT91_GPIO_PULLUP
>>   CONFIG_AT91_LED
>>   CONFIG_AT91_WANTS_COMMON_PHY
>>
> 
> Viele Grüße,
> Stefan Roese
> 
> -- 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 1/5] cmd: Fix up warnings in flash.c
  2022-01-04 13:23 ` [PATCH v1 1/5] cmd: Fix up warnings in flash.c Patrick Delaunay
  2022-01-05  8:42   ` Stefan Roese
@ 2022-01-21 19:02   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Tom Rini @ 2022-01-21 19:02 UTC (permalink / raw)
  To: Patrick Delaunay; +Cc: u-boot, Marek Vasut, Simon Glass, U-Boot STM32

[-- Attachment #1: Type: text/plain, Size: 351 bytes --]

On Tue, Jan 04, 2022 at 02:23:57PM +0100, Patrick Delaunay wrote:

> Tidy up the warnings reported by checkpatch.pl to prepare next patches
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS
  2022-01-04 13:23 ` [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS Patrick Delaunay
  2022-01-05  8:43   ` Stefan Roese
@ 2022-01-21 19:03   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Tom Rini @ 2022-01-21 19:03 UTC (permalink / raw)
  To: Patrick Delaunay
  Cc: u-boot, Marek Vasut, Simon Glass, Jagan Teki, Lukasz Majewski,
	Marek Behún, Stefan Roese, Vignesh R, U-Boot STM32

[-- Attachment #1: Type: text/plain, Size: 657 bytes --]

On Tue, Jan 04, 2022 at 02:23:58PM +0100, Patrick Delaunay wrote:

> Replace CONFIG_SYS_MAX_FLASH_BANKS by CFI_FLASH_BANKS to prepare
> Kconfig migration and avoid to redefine CONFIG_SYS_MAX_FLASH_BANKS
> in cfi_flash.h.
> 
> After this patch CONFIG_SYS_MAX_FLASH_BANKS should be never used in
> the cfi code: use CFI_MAX_FLASH_BANKS for struct size or CFI_FLASH_BANKS
> for number of CFI banks which can be dynamic.
> 
> This patch modify all the files which include mtd/cfi_flash.h.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean
  2022-01-04 13:23 ` [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean Patrick Delaunay
  2022-01-05  8:43   ` Stefan Roese
@ 2022-01-21 19:03   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Tom Rini @ 2022-01-21 19:03 UTC (permalink / raw)
  To: Patrick Delaunay
  Cc: u-boot, Marek Vasut, Simon Glass, Andes, Lukasz Majewski,
	Marek Vasut, Nobuhiro Iwamatsu, Paul Burton, Rick Chen,
	Stefan Roese, Thomas Chou, Tuomas Tynkkynen, U-Boot STM32

[-- Attachment #1: Type: text/plain, Size: 605 bytes --]

On Tue, Jan 04, 2022 at 02:23:59PM +0100, Patrick Delaunay wrote:

> Prepare migration to Kconfig.
> 
> CONFIG_SYS_MAX_FLASH_BANKS_DETECT becomes boolean and
> CONFIG_SYS_MAX_FLASH_BANKS define the MAX size, also used
> for detection when CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
> (CFI_MAX_FLASH_BANKS = CONFIG_SYS_MAX_FLASH_BANKS).
> 
> CONFIG_SYS_MAX_FLASH_BANKS become mandatory when
> CONFIG_SYS_MAX_FLASH_BANKS_DETECT is activated.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig
  2022-01-04 13:24 ` [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
  2022-01-05  8:43   ` Stefan Roese
@ 2022-01-21 19:03   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Tom Rini @ 2022-01-21 19:03 UTC (permalink / raw)
  To: Patrick Delaunay
  Cc: u-boot, Marek Vasut, Simon Glass, Aaron Williams, Adam Ford,
	Aleksandar Gerasimovski, Alison Wang, Andes, Andrew F. Davis,
	Angelo Dureghello, Ashish Kumar, Bin Meng, Chee Hong Ang,
	Chin-Liang See, Christophe Leroy, Dalon Westergreen,
	Daniel Schwierzeck, David Feng, Dinh Nguyen, Dirk Eibach,
	Eugen Hristev, Fabio Estevam, Heiko Schocher,
	Heinrich Schuchardt, Igor Opaniuk, Ilko Iliev, Jassi Brar,
	Jens Scharsig, Kamil Lulko, Kristian Amlie, Liviu Dudau,
	Lukasz Majewski, Marek Behún, Marek Vasut,
	Masakazu Mochizuki, Masami Hiramatsu, Max Filippov,
	Michael Walle, Michal Simek, Mingkai Hu, Niel Fourie,
	Nobuhiro Iwamatsu, Patrice Chotard, Paul Burton, Peng Fan,
	Priyanka Jain, Qiang Zhao, Rainer Boschung, Rajesh Bhagat,
	Rasmus Villemoes, Rick Chen, Ruchika Gupta, Sean Anderson,
	Shengzhou Liu, Siew Chin Lim, Simon Guinot, Sinan Akman,
	Stefan Roese, Stelian Pop, Tetsuyuki Kobayashi, Thomas Chou,
	Thomas Fitzsimmons, TsiChung Liew, Tuomas Tynkkynen, Usama Arif,
	Vikas Manocha, Vladimir Zapolskiy, Wolfgang Denk,
	Wolfgang Wegner, egnite GmbH, uboot-stm32,
	Álvaro Fernández Rojas

[-- Attachment #1: Type: text/plain, Size: 443 bytes --]

On Tue, Jan 04, 2022 at 02:24:00PM +0100, Patrick Delaunay wrote:

> Use moveconfig.py script to convert define CONFIG_SYS_MAX_FLASH_BANKS
> and CONFIG_SYS_MAX_FLASH_BANKS_DETECT to Kconfig and move these entries
> to defconfigs.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH to Kconfig
  2022-01-04 13:24 ` [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH " Patrick Delaunay
  2022-01-05  8:44   ` Stefan Roese
@ 2022-01-21 19:03   ` Tom Rini
  1 sibling, 0 replies; 17+ messages in thread
From: Tom Rini @ 2022-01-21 19:03 UTC (permalink / raw)
  To: Patrick Delaunay
  Cc: u-boot, Marek Vasut, Simon Glass, Eugen Hristev,
	Marek Behún, Priyanka Jain, Stefan Roese, egnite GmbH,
	U-Boot STM32

[-- Attachment #1: Type: text/plain, Size: 402 bytes --]

On Tue, Jan 04, 2022 at 02:24:01PM +0100, Patrick Delaunay wrote:

> This converts the following to Kconfig:
>    CONFIG_AT91_EFLASH
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>
> Acked-by: Eugen Hristev <eugen.hristev@microchip.com>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-01-21 19:09 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-04 13:23 [PATCH v1 0/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
2022-01-04 13:23 ` [PATCH v1 1/5] cmd: Fix up warnings in flash.c Patrick Delaunay
2022-01-05  8:42   ` Stefan Roese
2022-01-21 19:02   ` Tom Rini
2022-01-04 13:23 ` [PATCH v1 2/5] mtd: cfi: introduce CFI_FLASH_BANKS Patrick Delaunay
2022-01-05  8:43   ` Stefan Roese
2022-01-21 19:03   ` Tom Rini
2022-01-04 13:23 ` [PATCH v1 3/5] mtd: cfi: change CONFIG_SYS_MAX_FLASH_BANKS_DETECT as boolean Patrick Delaunay
2022-01-05  8:43   ` Stefan Roese
2022-01-21 19:03   ` Tom Rini
2022-01-04 13:24 ` [PATCH v1 4/5] configs: Migrate CONFIG_SYS_MAX_FLASH_BANKS to Kconfig Patrick Delaunay
2022-01-05  8:43   ` Stefan Roese
2022-01-21 19:03   ` Tom Rini
2022-01-04 13:24 ` [PATCH v1 5/5] Convert CONFIG_AT91_EFLASH " Patrick Delaunay
2022-01-05  8:44   ` Stefan Roese
2022-01-05  8:53     ` Eugen.Hristev
2022-01-21 19:03   ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.