vexpress64: specify CONFIG_SYS_FLASH_CFI_WIDTH
authorRyan Harkin <ryan.harkin@linaro.org>
Fri, 8 May 2015 17:07:52 +0000 (18:07 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 27 May 2015 17:35:54 +0000 (13:35 -0400)
Testing on the ARM Versatile Express Juno board showed intermittent CFI
flash detection problems.

Debug output in exception cases showed that the NOR flash was returning
incorrect values to a query command:

fwc addr 0000000008000000 cmd f0 f0f0f0f0 32bit x 8 bit
fwc addr 0000000008000000 cmd ff ffffffff 32bit x 8 bit
fwc addr 0000000008000154 cmd 98 98989898 32bit x 8 bit
is= cmd 51(Q) addr 0000000008000040 is= 00800051 51515151
fwc addr 0000000008001554 cmd 98 98989898 32bit x 8 bit
is= cmd 51(Q) addr 0000000008000040 is= 00800051 51515151
fwc addr 0000000008000000 cmd f0 00f000f0 32bit x 16 bit
fwc addr 0000000008000000 cmd ff 00ff00ff 32bit x 16 bit
fwc addr 0000000008000154 cmd 98 00980098 32bit x 16 bit
is= cmd 51(Q) addr 0000000008000040 is= 00800051 00510051
fwc addr 0000000008001554 cmd 98 00980098 32bit x 16 bit
is= cmd 51(Q) addr 0000000008000040 is= 00800051 00510051

Debugging showed that the problem could be solved by preventing u-boot
from scanning different flash widths by specifying
CONFIG_SYS_FLASH_CFI_WIDTH so that only using the 'correct' width was
used.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
include/configs/vexpress_aemv8a.h

index 032010bb9e024f1b5322145696f2c7b348424db0..18edd5d35bfbdb060af4a8ee199781dbf51900a3 100644 (file)
 #define CONFIG_CMD_ARMFLASH
 #define CONFIG_SYS_FLASH_CFI           1
 #define CONFIG_FLASH_CFI_DRIVER                1
+#define CONFIG_SYS_FLASH_CFI_WIDTH     FLASH_CFI_32BIT
 #define CONFIG_SYS_FLASH_BASE          0x08000000
 #define CONFIG_SYS_FLASH_SIZE          0x04000000 /* 64 MiB */
 #define CONFIG_SYS_MAX_FLASH_BANKS     2