
SMI controller reports an error when the code tries to write on the flash area with Write Enable command not issued or the bank has come out of the write mode.
This error is reported even with a fresh write once the ERF1 or ERF2 is set. Clear these flags while initiating a fresh write
Signed-off-by: Vipin Kumar vipin.kumar@st.com --- drivers/mtd/st_smi.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/mtd/st_smi.c b/drivers/mtd/st_smi.c index 7507e5d..63b10fc 100644 --- a/drivers/mtd/st_smi.c +++ b/drivers/mtd/st_smi.c @@ -392,6 +392,8 @@ static int smi_write(unsigned int *src_addr, unsigned int *dst_addr, return -1; }
+ clrbits_le32(&smicntl->smi_sr, ERF1 | ERF2); + if (smi_wait_till_ready(banknum, CONFIG_SYS_FLASH_WRITE_TOUT)) return -EBUSY;