diff options
author | Stefan Roese <sr@denx.de> | 2007-02-27 21:56:06 +0100 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2007-02-27 21:56:06 +0100 |
commit | 621a7873ef205c4325fc07c646bd1d509763b22f (patch) | |
tree | 3e2006c9f3a953532bb6a97d896390f03e58bd03 /drivers/cfi_flash.c | |
parent | 2e46b8fc8c16728ec3a5db2701026bbd1334ecdc (diff) | |
parent | 743571145b37182757d4e688a77860b36ee77573 (diff) | |
download | u-boot-imx-621a7873ef205c4325fc07c646bd1d509763b22f.zip u-boot-imx-621a7873ef205c4325fc07c646bd1d509763b22f.tar.gz u-boot-imx-621a7873ef205c4325fc07c646bd1d509763b22f.tar.bz2 |
Merge with git+ssh://sr@pollux.denx.org/home/sr/git/u-boot/denx/.git
Diffstat (limited to 'drivers/cfi_flash.c')
-rw-r--r-- | drivers/cfi_flash.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/cfi_flash.c b/drivers/cfi_flash.c index 696f9a4..5579a1e 100644 --- a/drivers/cfi_flash.c +++ b/drivers/cfi_flash.c @@ -36,6 +36,7 @@ #include <common.h> #include <asm/processor.h> +#include <asm/io.h> #include <asm/byteorder.h> #include <environment.h> #ifdef CFG_FLASH_CFI_DRIVER @@ -931,27 +932,18 @@ static void flash_write_cmd (flash_info_t * info, flash_sect_t sect, uint offset debug ("fwc addr %p cmd %x %x 8bit x %d bit\n", addr.cp, cmd, cword.c, info->chipwidth << CFI_FLASH_SHIFT_WIDTH); *addr.cp = cword.c; -#ifdef CONFIG_BLACKFIN - asm("ssync;"); -#endif break; case FLASH_CFI_16BIT: debug ("fwc addr %p cmd %x %4.4x 16bit x %d bit\n", addr.wp, cmd, cword.w, info->chipwidth << CFI_FLASH_SHIFT_WIDTH); *addr.wp = cword.w; -#ifdef CONFIG_BLACKFIN - asm("ssync;"); -#endif break; case FLASH_CFI_32BIT: debug ("fwc addr %p cmd %x %8.8lx 32bit x %d bit\n", addr.lp, cmd, cword.l, info->chipwidth << CFI_FLASH_SHIFT_WIDTH); *addr.lp = cword.l; -#ifdef CONFIG_BLACKFIN - asm("ssync;"); -#endif break; case FLASH_CFI_64BIT: #ifdef DEBUG @@ -966,11 +958,11 @@ static void flash_write_cmd (flash_info_t * info, flash_sect_t sect, uint offset } #endif *addr.llp = cword.ll; -#ifdef CONFIG_BLACKFIN - asm("ssync;"); -#endif break; } + + /* Ensure all the instructions are fully finished */ + sync(); } static void flash_unlock_seq (flash_info_t * info, flash_sect_t sect) |