History log of /rk3399_rockchip-uboot/drivers/mtd/cfi_flash.c (Results 101 – 125 of 261)
Revision Date Author Comments
# 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


1234567891011