diff options
| author | Wolfgang Denk <wd@denx.de> | 2010-09-28 23:30:47 +0200 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-09-28 23:30:47 +0200 | 
| commit | 2e6e1772c0e34871769be4aef79748fe3e47d953 (patch) | |
| tree | 00e4e19d7bccd2a1cd5753854ff4c2b8a26bebb0 /drivers/mtd/cfi_flash.c | |
| parent | 1e4e5ef0469050f014aee1204dae8a9ab6053e49 (diff) | |
| parent | 3df61957938586c512c17e72d83551d190400981 (diff) | |
| download | olio-uboot-2014.01-2e6e1772c0e34871769be4aef79748fe3e47d953.tar.xz olio-uboot-2014.01-2e6e1772c0e34871769be4aef79748fe3e47d953.zip | |
Merge branch 'next' of /home/wd/git/u-boot/next
Conflicts:
	include/ppc4xx.h
Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'drivers/mtd/cfi_flash.c')
| -rw-r--r-- | drivers/mtd/cfi_flash.c | 32 | 
1 files changed, 15 insertions, 17 deletions
| diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index 44ebb9d06..02dd27ffb 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -62,20 +62,9 @@   * reading and writing ... (yes there is such a Hardware).   */ -#ifndef CONFIG_SYS_FLASH_BANKS_LIST -#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE } -#endif -  static uint flash_offset_cfi[2] = { FLASH_OFFSET_CFI, FLASH_OFFSET_CFI_ALT };  static uint flash_verbose = 1; -/* use CONFIG_SYS_MAX_FLASH_BANKS_DETECT if defined */ -#ifdef CONFIG_SYS_MAX_FLASH_BANKS_DETECT -# define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS_DETECT -#else -# define CFI_MAX_FLASH_BANKS	CONFIG_SYS_MAX_FLASH_BANKS -#endif -  flash_info_t flash_info[CFI_MAX_FLASH_BANKS];	/* FLASH chips info */  /* @@ -85,6 +74,17 @@ flash_info_t flash_info[CFI_MAX_FLASH_BANKS];	/* FLASH chips info */  #define CONFIG_SYS_FLASH_CFI_WIDTH	FLASH_CFI_8BIT  #endif +#if defined(CONFIG_SYS_MAX_FLASH_BANKS_DETECT) +int cfi_flash_num_flash_banks = CONFIG_SYS_MAX_FLASH_BANKS_DETECT; +#endif + +static phys_addr_t __cfi_flash_bank_addr(int i) +{ +	return ((phys_addr_t [])CONFIG_SYS_FLASH_BANKS_LIST)[i]; +} +phys_addr_t cfi_flash_bank_addr(int i) +	__attribute__((weak, alias("__cfi_flash_bank_addr"))); +  static void __flash_write8(u8 value, void *addr)  {  	__raw_writeb(value, addr); @@ -153,7 +153,7 @@ u64 flash_read64(void *addr)__attribute__((weak, alias("__flash_read64")));  flash_info_t *flash_get_info(ulong base)  {  	int i; -	flash_info_t * info = 0; +	flash_info_t *info = NULL;  	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {  		info = & flash_info[i]; @@ -162,7 +162,7 @@ flash_info_t *flash_get_info(ulong base)  			break;  	} -	return i == CONFIG_SYS_MAX_FLASH_BANKS ? 0 : info; +	return info;  }  #endif @@ -2021,14 +2021,12 @@ unsigned long flash_init (void)  	getenv_f("unlock", s, sizeof(s));  #endif -#define BANK_BASE(i)	(((phys_addr_t [CFI_MAX_FLASH_BANKS])CONFIG_SYS_FLASH_BANKS_LIST)[i]) -  	/* Init: no FLASHes known */  	for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; ++i) {  		flash_info[i].flash_id = FLASH_UNKNOWN; -		if (!flash_detect_legacy (BANK_BASE(i), i)) -			flash_get_size (BANK_BASE(i), i); +		if (!flash_detect_legacy(cfi_flash_bank_addr(i), i)) +			flash_get_size(cfi_flash_bank_addr(i), i);  		size += flash_info[i].size;  		if (flash_info[i].flash_id == FLASH_UNKNOWN) {  #ifndef CONFIG_SYS_FLASH_QUIET_TEST |