Re: [U-Boot] [PATCH] Blackfin: nand: drain the write buffer before returning
On Fri, May 07, 2010 at 01:25:48AM -0400, Mike Frysinger wrote: From: Andrew Caldwell andrew.caldw...@analog.com The current Blackfin nand write function fills up the write buffer but returns before it has had a chance to drain. On faster systems, this isn't a problem as the operation finishes before the ECC registers are read, but on slower systems the ECC may be incomplete when the core tries to read it. So wait for the buffer to drain once we're doing writing to it. Signed-off-by: Andrew Caldwell andrew.caldw...@analog.com Signed-off-by: Mike Frysinger vap...@gentoo.org --- drivers/mtd/nand/bfin_nand.c |7 ++- 1 files changed, 6 insertions(+), 1 deletions(-) Applied to u-boot-nand-flash. -Scott ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] Blackfin: nand: drain the write buffer before returning
On Friday 07 May 2010 13:51:51 Scott Wood wrote: On Fri, May 07, 2010 at 01:25:48AM -0400, Mike Frysinger wrote: From: Andrew Caldwell andrew.caldw...@analog.com The current Blackfin nand write function fills up the write buffer but returns before it has had a chance to drain. On faster systems, this isn't a problem as the operation finishes before the ECC registers are read, but on slower systems the ECC may be incomplete when the core tries to read it. So wait for the buffer to drain once we're doing writing to it. Signed-off-by: Andrew Caldwell andrew.caldw...@analog.com Signed-off-by: Mike Frysinger vap...@gentoo.org --- drivers/mtd/nand/bfin_nand.c |7 ++- 1 files changed, 6 insertions(+), 1 deletions(-) Applied to u-boot-nand-flash. sorry, please drop this. Andrew pointed out that i committed/posted the wrong version. i'll send an update shortly. -mike signature.asc Description: This is a digitally signed message part. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] Blackfin: nand: drain the write buffer before returning
On 05/07/2010 01:48 PM, Mike Frysinger wrote: On Friday 07 May 2010 13:51:51 Scott Wood wrote: On Fri, May 07, 2010 at 01:25:48AM -0400, Mike Frysinger wrote: From: Andrew Caldwellandrew.caldw...@analog.com The current Blackfin nand write function fills up the write buffer but returns before it has had a chance to drain. On faster systems, this isn't a problem as the operation finishes before the ECC registers are read, but on slower systems the ECC may be incomplete when the core tries to read it. So wait for the buffer to drain once we're doing writing to it. Signed-off-by: Andrew Caldwellandrew.caldw...@analog.com Signed-off-by: Mike Frysingervap...@gentoo.org --- drivers/mtd/nand/bfin_nand.c |7 ++- 1 files changed, 6 insertions(+), 1 deletions(-) Applied to u-boot-nand-flash. sorry, please drop this. Andrew pointed out that i committed/posted the wrong version. i'll send an update shortly. OK, done. -Scott ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] Blackfin: nand: drain the write buffer before returning
From: Andrew Caldwell andrew.caldw...@analog.com The current Blackfin nand write function fills up the write buffer but returns before it has had a chance to drain. On faster systems, this isn't a problem as the operation finishes before the ECC registers are read, but on slower systems the ECC may be incomplete when the core tries to read it. So wait for the buffer to drain once we're doing writing to it. Signed-off-by: Andrew Caldwell andrew.caldw...@analog.com Signed-off-by: Mike Frysinger vap...@gentoo.org --- drivers/mtd/nand/bfin_nand.c |7 ++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/drivers/mtd/nand/bfin_nand.c b/drivers/mtd/nand/bfin_nand.c index f134ef1..13a509d 100644 --- a/drivers/mtd/nand/bfin_nand.c +++ b/drivers/mtd/nand/bfin_nand.c @@ -75,7 +75,7 @@ static void bfin_nfc_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl) int bfin_nfc_devready(struct mtd_info *mtd) { pr_stamp(); - return (bfin_read_NFC_STAT() NBUSY ? 1 : 0); + return (bfin_read_NFC_STAT() NBUSY) ? 1 : 0; } /* @@ -132,6 +132,11 @@ static void bfin_nfc_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len bfin_write_NFC_DATA_WR(buf[i]); } + + /* Wait for the buffer to drain before we return */ + while (bfin_read_NFC_STAT() WB_EMPTY) + if (ctrlc()) + return; } /* -- 1.7.1 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot