1
0
mirror of git://projects.qi-hardware.com/xburst-tools.git synced 2024-11-26 05:12:29 +02:00

Dont' write ecc data if written page is empty.

This commit is contained in:
Lars-Peter Clausen 2009-09-16 21:07:23 +02:00
parent a7cf94340c
commit 476d9bc3c4

View File

@ -541,11 +541,17 @@ u32 nand_read_4740(void *buf, u32 startpage, u32 pagecount, int option)
u32 nand_program_4740(void *context, int spage, int pages, int option) u32 nand_program_4740(void *context, int spage, int pages, int option)
{ {
size_t datasize;
u32 i, j, cur, rowaddr; u32 i, j, cur, rowaddr;
u8 *tmpbuf; u8 *tmpbuf;
u32 ecccnt,oobsize_sav,ecccnt_sav,eccpos_sav; u32 ecccnt,oobsize_sav,ecccnt_sav,eccpos_sav;
u8 ecc_buf[256]; u8 ecc_buf[256];
datasize = pagesize;
if (option != NO_OOB)
datasize += oobsize;
if (wp_pin) if (wp_pin)
__gpio_set_pin(wp_pin); __gpio_set_pin(wp_pin);
restart: restart:
@ -581,20 +587,17 @@ restart:
} }
} }
//if NO_OOB do not perform vaild check! for (j = 0; j < datasize; ++j) {
if ( option != NO_OOB ) {
for ( j = 0 ; j < pagesize + oobsize; j ++) {
if (tmpbuf[j] != 0xff) if (tmpbuf[j] != 0xff)
break; break;
} }
if ( j == oobsize + pagesize ) { if (j == datasize) {
tmpbuf += ( pagesize + oobsize ) ; tmpbuf += datasize;
i ++; ++i;
cur ++; ++cur;
continue; continue;
} }
}
if (pagesize == 512) if (pagesize == 512)
__nand_cmd(CMD_READA); __nand_cmd(CMD_READA);