SMI driver fails because of low timeout values. Increasing the erase and write timeouts to 3 seconds
Signed-off-by: Vipin Kumar <vipin.ku...@st.com> --- drivers/mtd/spr_smi.c | 8 ++++---- include/asm-arm/arch-spear/spr_smi.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/mtd/spr_smi.c b/drivers/mtd/spr_smi.c index 9a70a19..189ee6d 100755 --- a/drivers/mtd/spr_smi.c +++ b/drivers/mtd/spr_smi.c @@ -60,11 +60,11 @@ static struct flash_dev flash_ids[] = { */ static void smi_wait_xfer_finish(int timeout) { - while (timeout--) { + do { if (readl(&smicntl->smi_sr) & TFF) break; udelay(1000); - } + } while (timeout--); } /* @@ -215,11 +215,11 @@ static int smi_write_enable(int bank) /* Restore the CTRL REG1 state */ writel(ctrlreg1, &smicntl->smi_cr1); - while (timeout--) { + do { if (smi_read_sr(bank) & (1 << (bank + WM_SHIFT))) break; udelay(1000); - } + } while (timeout--); if (timeout) return 0; diff --git a/include/asm-arm/arch-spear/spr_smi.h b/include/asm-arm/arch-spear/spr_smi.h index 06df745..e2e5e8f 100755 --- a/include/asm-arm/arch-spear/spr_smi.h +++ b/include/asm-arm/arch-spear/spr_smi.h @@ -108,8 +108,8 @@ struct flash_dev { ushort sector_count; }; -#define SFLASH_PAGE_SIZE 0x100 /* flash page size */ -#define XFER_FINISH_TOUT 2 /* xfer finish timeout */ -#define WMODE_TOUT 2 /* write enable timeout */ +#define SFLASH_PAGE_SIZE 0x100 /* flash page size */ +#define XFER_FINISH_TOUT (3 * CONFIG_SYS_HZ) +#define WMODE_TOUT (3 * CONFIG_SYS_HZ) #endif -- 1.6.0.2 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot