Skip to content

Commit 070ccb4

Browse files
committed
Fix bad block table overflow: read whole page in order to access spare area
1 parent 7c54dc0 commit 070ccb4

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

firmware/nand_programmer.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,8 @@ static int np_read_bad_block_info_from_page(np_prog_t *prog, uint32_t block,
328328
prog->chip_info.bb_mark_off, 1);
329329
if (status == NAND_INVALID_CMD)
330330
{
331-
status = nand_read_data(prog->page.buf, page,
332-
prog->chip_info.bb_mark_off, 1);
331+
status = nand_read_page(prog->page.buf, page,
332+
prog->chip_info.page_size + prog->chip_info.spare_size);
333333
}
334334

335335
switch (status)
@@ -347,7 +347,8 @@ static int np_read_bad_block_info_from_page(np_prog_t *prog, uint32_t block,
347347
return NP_ERR_NAND_RD;
348348
}
349349

350-
*is_bad = prog->page.buf[0] != NP_NAND_GOOD_BLOCK_MARK;
350+
*is_bad = prog->page.buf[prog->chip_info.page_size +
351+
prog->chip_info.bb_mark_off] != NP_NAND_GOOD_BLOCK_MARK;
351352

352353
return 0;
353354
}

0 commit comments

Comments
 (0)