summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2010-08-31 10:00:10 +0200
committerStefan Roese <sr@denx.de>2010-09-20 15:08:51 +0200
commitca5def3f30860a97cc76453eb846fffbde997035 (patch)
tree132a5e8730901525b6d4eea0cda055a703eb5d84 /board
parentb00e19cc6b99fdd0a2b2760f225465d0998ef88f (diff)
downloadu-boot-imx-ca5def3f30860a97cc76453eb846fffbde997035.zip
u-boot-imx-ca5def3f30860a97cc76453eb846fffbde997035.tar.gz
u-boot-imx-ca5def3f30860a97cc76453eb846fffbde997035.tar.bz2
cfi_flash: Simplify dynamic flash bank number detection
This patch simplifies the use of CONFIG_SYS_MAX_FLASH_BANKS_DETECT. By moving these optional variables and defines into the common code, board specific code is minimized. Currently only the following board use this feature: APC405, IDS8247, TQM834x And IDS8247 doesn't seem to really need this feature, since its not updating the bank number variable at all. So this patch removes the definition of CONFIG_SYS_MAX_FLASH_BANKS_DETECT from this board port. This new framework will be used by the upcoming lwmon5 update as well. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Heiko Schocher <hs@denx.de> Cc: Matthias Fuchs <matthias.fuchs@esd.eu>
Diffstat (limited to 'board')
-rw-r--r--board/esd/apc405/apc405.c6
-rw-r--r--board/tqc/tqm834x/tqm834x.c12
2 files changed, 7 insertions, 11 deletions
diff --git a/board/esd/apc405/apc405.c b/board/esd/apc405/apc405.c
index 564ee00..52477d7 100644
--- a/board/esd/apc405/apc405.c
+++ b/board/esd/apc405/apc405.c
@@ -30,6 +30,7 @@
#include <command.h>
#include <malloc.h>
#include <flash.h>
+#include <mtd/cfi_flash.h>
#include <asm/4xx_pci.h>
#include <pci.h>
@@ -39,9 +40,6 @@ DECLARE_GLOBAL_DATA_PTR;
extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
extern void lxt971_no_sleep(void);
-extern ulong flash_get_size (ulong base, int banknum);
-
-int flash_banks = CONFIG_SYS_MAX_FLASH_BANKS_DETECT;
/* fpga configuration data - gzip compressed and generated by bin2c */
const unsigned char fpgadata[] =
@@ -185,7 +183,7 @@ int board_early_init_f (void)
int board_early_init_r(void)
{
if (gd->board_type >= 8)
- flash_banks = 1;
+ cfi_flash_num_flash_banks = 1;
return 0;
}
diff --git a/board/tqc/tqm834x/tqm834x.c b/board/tqc/tqm834x/tqm834x.c
index 8d046f4..2aa97f2 100644
--- a/board/tqc/tqm834x/tqm834x.c
+++ b/board/tqc/tqm834x/tqm834x.c
@@ -30,6 +30,8 @@
#include <miiphy.h>
#include <asm/mmu.h>
#include <pci.h>
+#include <flash.h>
+#include <mtd/cfi_flash.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -52,12 +54,8 @@ DECLARE_GLOBAL_DATA_PTR;
#define INITIAL_CS_CONFIG (CSCONFIG_EN | CSCONFIG_ROW_BIT_12 | \
CSCONFIG_COL_BIT_9)
-/* Global variable used to store detected number of banks */
-int tqm834x_num_flash_banks;
-
/* External definitions */
ulong flash_get_size (ulong base, int banknum);
-extern flash_info_t flash_info[];
/* Local functions */
static int detect_num_flash_banks(void);
@@ -190,7 +188,7 @@ static int detect_num_flash_banks(void)
ulong bank2_size;
ulong total_size;
- tqm834x_num_flash_banks = 2; /* assume two banks */
+ cfi_flash_num_flash_banks = 2; /* assume two banks */
/* Get bank 1 and 2 information */
bank1_size = flash_get_size(CONFIG_SYS_FLASH_BASE, 0);
@@ -244,13 +242,13 @@ static int detect_num_flash_banks(void)
* we got the some data reading from Flash.
* There is only one mirrored bank.
*/
- tqm834x_num_flash_banks = 1;
+ cfi_flash_num_flash_banks = 1;
total_size = bank1_size;
}
}
}
- debug("Number of flash banks detected: %d\n", tqm834x_num_flash_banks);
+ debug("Number of flash banks detected: %d\n", cfi_flash_num_flash_banks);
/* set OR0 and BR0 */
set_lbc_or(0, CONFIG_SYS_OR_TIMING_FLASH |