u-boot/drivers/mtd
Anatolij Gustschin 34bbb8fb46 cfi_flash: fix bug introduced while recent change to flash_get_size()
commit ec50a8e389
"cfi_flash: handle 'chip size exceeds address window' situation"
added 3rd argument to flash_get_size() but didn't fix all the
function calls from the board specific code. Many boards have
their own flash_get_size() definitions in the board code and
use them there, but some boards (e.g. tqm834x, tqm85xx, pdm360ng)
use flash_get_size() from the cfi_flash.c driver.

The bug shows up if the value of the "max_size" argument (which
is not defined when calling the function with two arguments)
happens to be less than "info->size". In this case on the
affected boards we end up with a bank of reduced size and
in the worst case might even be not able to update U-Boot or
to boot the kernel from flash:

=> fli

Bank # 1: CFI conformant FLASH (32 x 16)  Size: 0 kB in 1 Sectors
  AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E
  Erase timeout: 4096 ms, write timeout: 1 ms
  Buffer write timeout: 3 ms, buffer size: 64 bytes

  Sector Start Addresses:
  F0000000   RO

Bank # 2: CFI conformant FLASH (32 x 16)  Size: 128 MB in 512 Sectors
  AMD Standard command set, Manufacturer ID: 0x01, Device ID: 0x227E
  Erase timeout: 4096 ms, write timeout: 1 ms
  Buffer write timeout: 3 ms, buffer size: 64 bytes

  Sector Start Addresses:
  F8000000        F8040000        F8080000        F80C0000        F8100000
  F8140000        F8180000        F81C0000        F8200000        F8240000
  ...

E.g., updating U-Boot is not possible now:

=> protect off ${u-boot_addr} +${u-boot_size}
Error: end address (0xf007ffff) not in flash!
Bad address format
=> era ${u-boot_addr} +${u-boot_size}
Error: end address (0xf007ffff) not in flash!
Bad address format

This patch removes the 3rd argument of flash_get_size() again
and sets "max_size" in the function itself instead of passing
it as a function argument.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2010-11-28 19:41:11 +01:00
..
nand ppc4xx/NAND: Reduce size of NAND SPL image 2010-11-27 23:35:09 +01:00
onenand Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
spi Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
ubi Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
at45.c drivers/mtd: Move conditional compilation to Makefile 2008-08-13 01:40:42 +02:00
cfi_flash.c cfi_flash: fix bug introduced while recent change to flash_get_size() 2010-11-28 19:41:11 +01:00
cfi_mtd.c cfi_flash: Remove uneccessary #ifdef CONFIG_SYS_MAX_FLASH_BANKS_DETECT 2010-09-20 15:09:00 +02:00
dataflash.c mtd/dataflash.c: fix a problem with the last partition 2008-12-02 21:53:24 +01:00
jedec_flash.c Support up to 7 banks for ids as specified in JEDEC JEP106Z 2009-08-26 08:58:27 +02:00
Makefile Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
mtdconcat.c mtd: Add MTD concat support to concatenate multiple MTD NOR devices 2009-06-12 20:45:47 +02:00
mtdcore.c Followup fixes on the mtdparts spread patchset 2010-10-11 15:11:01 -05:00
mtdpart.c nand: remove dead code and suspend/resume 2010-10-11 15:10:35 -05:00
mw_eeprom.c Update i386 code (sc520_cdp) 2008-09-09 11:48:53 +02:00
spr_smi.c mod change 755 => 644 for multiple files 2010-03-21 22:22:53 +01:00