| #
4ffeab2c |
| 22-Dec-2010 |
Mike Frysinger <vapier@gentoo.org> |
cfi_flash: avoid flash_verbose when possible
The flash_verbose logic is only used by the CFI MTD layer, so if we aren't using that, disable the logic completely.
Signed-off-by: Mike Frysinger <vapi
cfi_flash: avoid flash_verbose when possible
The flash_verbose logic is only used by the CFI MTD layer, so if we aren't using that, disable the logic completely.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
show more ...
|
| #
cdc51c29 |
| 22-Dec-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'next' of ../next
|
| #
6afde8bf |
| 17-Dec-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'next' of git://www.denx.de/git/u-boot-cfi-flash into next
|
| #
6f726f95 |
| 25-Oct-2010 |
Stefan Roese <sr@denx.de> |
cfi_flash: Add optional config register write to cfi-detection
This patch adds the possibility to (optinally) write to the flash configuration register. The Intel style CFI chips support such a regi
cfi_flash: Add optional config register write to cfi-detection
This patch adds the possibility to (optinally) write to the flash configuration register. The Intel style CFI chips support such a register that can be used to configure the operation mode to a non-default value.
This method will be used by the t3corp board, which needs to configure the DS617 Xilinx flash for async read mode.
Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
4d2ca9d6 |
| 25-Oct-2010 |
Stefan Roese <sr@denx.de> |
cfi_flash: Use flash_read32() in sector_erased()
The function sector_erased() is modified to not use pointer access, but to use the correct accessor functions. This fixes a problem on the t3corp boa
cfi_flash: Use flash_read32() in sector_erased()
The function sector_erased() is modified to not use pointer access, but to use the correct accessor functions. This fixes a problem on the t3corp board with the Xilinx DS617 flash chips. Here a board specific accessor function is needed to read from flash in 32bit mode. This patch enables such an operation mode.
Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
df4e813b |
| 25-Oct-2010 |
Stefan Roese <sr@denx.de> |
cfi_flash: Fix problems with status/id read mode
This patch adds some calls to set the flash chip in the read-status- register- or read-id-mode before the corresponding register is read back. This p
cfi_flash: Fix problems with status/id read mode
This patch adds some calls to set the flash chip in the read-status- register- or read-id-mode before the corresponding register is read back. This problem was detected while porting the common CFI driver to support the Xilinx DS617 flash chips.
Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
34bbb8fb |
| 28-Nov-2010 |
Anatolij Gustschin <agust@denx.de> |
cfi_flash: fix bug introduced while recent change to flash_get_size()
commit ec50a8e389863ac35bfd9d9a2e8b30187318e59e "cfi_flash: handle 'chip size exceeds address window' situation" added 3rd argum
cfi_flash: fix bug introduced while recent change to flash_get_size()
commit ec50a8e389863ac35bfd9d9a2e8b30187318e59e "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>
show more ...
|
| #
1032d974 |
| 16-Nov-2010 |
Minkyu Kang <mk7.kang@samsung.com> |
Merge branch 'master' of git://git.denx.de/u-boot-arm
|
| #
d963e84c |
| 12-Nov-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of /home/wd/git/u-boot/master
|
| #
c163f447 |
| 25-Oct-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of ssh://gemini/home/wd/git/u-boot/master
|
| #
ec50a8e3 |
| 21-Oct-2010 |
Ilya Yanok <yanok@emcraft.com> |
cfi_flash: handle 'chip size exceeds address window' situation
On some boards we have flash mapped high in the address space with considerably small window (say 0xFE000000 and 32MB). When we install
cfi_flash: handle 'chip size exceeds address window' situation
On some boards we have flash mapped high in the address space with considerably small window (say 0xFE000000 and 32MB). When we install bigger chip (say 64MB) on such a board strange things happen (flash_write() doesn't work at all, for ex). That's because cfi_flash driver doesn't care about window size at all. Of course, cleanest solution would probably be to just extend address window to be able to map the whole flash but for legacy/compatibility reasons some people prefer just truncate the flash size and never use the upper part. This patch adds an option for cfi_flash driver to handle this situation properly. To achieve this we add the new function cfi_flash_bank_size() which can be provided by the board code and weak-aliased to default implementation that returns value from the CONFIG_SYS_FLASH_BANKS_SIZES array if it's defined or 0 otherwise (the last case is added for compatibility). If non-zero flash bank size is provided and detected chip size is bigger than provided address window size the warning will be displayed and flash chip will be truncated.
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Changed cfi_flash_bank_size() return type to unsigned long to match caller function. Signed-off-by: Wolfgang Denk <wd@denx.de>
show more ...
|
| #
c0c3590b |
| 12-Oct-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of git://git.denx.de/u-boot-cfi-flash
|
| #
0e3fa01a |
| 29-Sep-2010 |
John Schmoller <jschmoller@xes-inc.com> |
cfi_flash: Fix "Unknown FLASH" error message
When a CFI flash chip could not be detected an error message similar to the following would be printed on bootup:
FLASH: ## Unknown FLASH on Bank 1 - S
cfi_flash: Fix "Unknown FLASH" error message
When a CFI flash chip could not be detected an error message similar to the following would be printed on bootup:
FLASH: ## Unknown FLASH on Bank 1 - Size = 0x01000000 = 0 MB
The printf incorrectly converted the flash size into megabytes. This patch fixes the printing of the flash size in megabytes:
FLASH: ## Unknown FLASH on Bank 1 - Size = 0x01000000 = 16 MB
Signed-off-by: John Schmoller <jschmoller@xes-inc.com> Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
2e6e1772 |
| 28-Sep-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'next' of /home/wd/git/u-boot/next
Conflicts: include/ppc4xx.h
Signed-off-by: Wolfgang Denk <wd@denx.de>
|
| #
b65e86d8 |
| 21-Sep-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'next' of ../custodians into next
|
| #
ca5def3f |
| 31-Aug-2010 |
Stefan Roese <sr@denx.de> |
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
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>
show more ...
|
| #
b00e19cc |
| 30-Aug-2010 |
Stefan Roese <sr@denx.de> |
cfi_flash: Add weak default for cfi_flash_bank_addr()
cfi_flash_bank_addr(int bank_nr) returns the base addresses of the requested bank. Introducing this weak default enables boards to override this
cfi_flash: Add weak default for cfi_flash_bank_addr()
cfi_flash_bank_addr(int bank_nr) returns the base addresses of the requested bank. Introducing this weak default enables boards to override this functions with a board specific version when required.
This feature will be used in the lwmon5 board update, supporting runtime detection of 2 board revisions with different flash layouts.
Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
cba34aaf |
| 30-Aug-2010 |
Stefan Roese <sr@denx.de> |
cfi_flash: Simplify flash_get_info()
This patch removes an unecessary check in the return statement. This is not needed, since "info" is initializes to NULL. And "info" will not be written to again,
cfi_flash: Simplify flash_get_info()
This patch removes an unecessary check in the return statement. This is not needed, since "info" is initializes to NULL. And "info" will not be written to again, if the flash address is not found.
Additionally "info" is not initialized to "0" but to "NULL".
Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
f91506e2 |
| 07-Sep-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of /home/wd/git/u-boot/master
|
| #
5549d22b |
| 18-Aug-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of /home/wd/git/u-boot/master
|
| #
54652991 |
| 17-Aug-2010 |
Philippe De Muyter <phdm@macqel.be> |
Work around bug in Numonyx P33/P30 256-Mbit 65nm flash chips.
I have "ported" U-boot to a in house made board with Numonyx Axcell P33/P30 256-Mbit 65nm flash chips.
After some time :( searching for
Work around bug in Numonyx P33/P30 256-Mbit 65nm flash chips.
I have "ported" U-boot to a in house made board with Numonyx Axcell P33/P30 256-Mbit 65nm flash chips.
After some time :( searching for bugs in our board or soft, we have discovered that those chips have a small but annoying bug, documented in "Numonyx Axcell P33/P30 256-Mbit Specification Update"
It states : When customer uses [...] block unlock, the block lock status might be altered inadvertently. Lock status might be set to either 01h or 03h unexpectedly (00h as expected data), which leads to program/erase failure on certain blocks.
A working workaround is given, which I have applied and tested with success :
Workaround: If the interval between 60h and its subsequent command can be guaranteed within 20us, Option I is recommended, otherwise Option II (involves hardware) should be selected. Option I: The table below lists the detail command sequences: Command Data bus Address bus Remarks Sequence 1 90h Block Address Read Lock Status 2 Read Block Address + 02h (2)(3) (1) 3 60h Block Address (2)(3) (1) Lock/Unlock/RCR Configuration 4 D0h/01h/03h Block Address Notes: (1) Block Address refers to RCR configuration data only when the 60h command sequence is used to set RCR register combined with 03h subsequent command. (2) For the third and fourth command sequences, the Block Address must be the same. (3) The interval between 60h command and its subsequent D0h/01h/2Fh/03h commands should be less than 20us.
And here is a log comparison of a simple (destructive) flash test without and with the workaround.
diff without-numonyx-workaround.log with-numonyx-workaround.log -U-Boot 2010.06-00696-g22b002c-dirty (Aug 16 2010 - 15:07:47) +U-Boot 2010.06-00696-g22b002c-dirty (Aug 16 2010 - 15:25:19)
CPU: Freescale MCF5484 CPU CLK 200 MHz BUS CLK 100 MHz Board: Macq Electronique ME2060 I2C: ready DRAM: 64 MiB FLASH: 32 MiB In: serial Out: serial Err: serial Net: FEC0, FEC1 -> flinfo
Bank # 1: CFI conformant FLASH (16 x 16) Size: 32 MB in 259 Sectors Intel Extended command set, Manufacturer ID: 0x89, Device ID: 0x8922 Erase timeout: 4096 ms, write timeout: 1 ms Buffer write timeout: 5 ms, buffer size: 1024 bytes
Sector Start Addresses: FE000000 RO FE008000 RO FE010000 RO FE018000 RO FE020000 RO FE040000 RO FE060000 RO FE080000 RO FE0A0000 RO FE0C0000 RO ... FFF80000 RO FFFA0000 RO FFFC0000 RO FFFE0000 RO -> protect off all Un-Protect Flash Bank # 1 ................... done -> erase all Erase Flash Bank # 1 ................... done -> cp.b 1000000 fe000000 2000000 -Copy to Flash... Flash not Erased +Copy to Flash... done ->
Signed-off-by: Philippe De Muyter <phdm@macqel.be> Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
70084df7 |
| 13-Aug-2010 |
Stefan Roese <sr@denx.de> |
cfi_flash: Cleanup flash_print_info()
This patch does the following:
- Extract code to detect if sector is erased into function sector_erased(). - Because of this, we don't have variable declarat
cfi_flash: Cleanup flash_print_info()
This patch does the following:
- Extract code to detect if sector is erased into function sector_erased(). - Because of this, we don't have variable declarations inside the sector loop in flash_print_info() - Change "return" to "break" in the "if (ctrlc()) statement: This fixes a problem with the resulting output. Before this patch the output was:
Sector Start Addresses: FC000000 FC020000 FC040000 =>
With this patch it is now:
Sector Start Addresses: FC000000 FC020000 FC040000 =>
Signed-off-by: Stefan Roese <sr@denx.de> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: Wolfgang Denk <wd@denx.de>
show more ...
|
| #
d77c7ac4 |
| 10-Aug-2010 |
Philippe De Muyter <phdm@macqel.be> |
Fix printing & reading of 16-bit CFI device identifiers
Fix reading and printing of CFI flashes 16-bit devices identifiers
Nowadays CFI flashes have a 16-bit device identifier. U-boot still print
Fix printing & reading of 16-bit CFI device identifiers
Fix reading and printing of CFI flashes 16-bit devices identifiers
Nowadays CFI flashes have a 16-bit device identifier. U-boot still print them and read them as if they were only 8-bit wide. Fix that. Before: Intel Extended command set, Manufacturer ID: 0x89, Device ID: 0x1B After: Intel Extended command set, Manufacturer ID: 0x89, Device ID: 0x881B
Signed-off-by: Philippe De Muyter <phdm@macqel.be> Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
2e97394a |
| 26-Jul-2010 |
Kim Phillips <kim.phillips@freescale.com> |
cfi_flash: flinfo: allow user interrupt in flash print info fn
flashes getting larger, users more impatient.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Stefan Roese <sr
cfi_flash: flinfo: allow user interrupt in flash print info fn
flashes getting larger, users more impatient.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Stefan Roese <sr@denx.de>
show more ...
|
| #
3df4f46f |
| 07-Aug-2010 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of /home/wd/git/u-boot/master
|