mirror of
https://github.com/linux-msm/openocd.git
synced 2026-02-25 13:15:07 -08:00
NAND: catch read errors when building BBT
nand_build_bbt() was ignoring the return value from nand_read_page() and blindly continuing. It now passes the return value up to the caller if the read fails. Signed-off-by: Jon Povey <jon.povey@racelogic.co.uk>
This commit is contained in:
@@ -226,6 +226,7 @@ int nand_build_bbt(struct nand_device *nand, int first, int last)
|
||||
int i;
|
||||
int pages_per_block = (nand->erase_size / nand->page_size);
|
||||
uint8_t oob[6];
|
||||
int ret;
|
||||
|
||||
if ((first < 0) || (first >= nand->num_blocks))
|
||||
first = 0;
|
||||
@@ -236,7 +237,9 @@ int nand_build_bbt(struct nand_device *nand, int first, int last)
|
||||
page = first * pages_per_block;
|
||||
for (i = first; i <= last; i++)
|
||||
{
|
||||
nand_read_page(nand, page, NULL, 0, oob, 6);
|
||||
ret = nand_read_page(nand, page, NULL, 0, oob, 6);
|
||||
if (ret != ERROR_OK)
|
||||
return ret;
|
||||
|
||||
if (((nand->device->options & NAND_BUSWIDTH_16) && ((oob[0] & oob[1]) != 0xff))
|
||||
|| (((nand->page_size == 512) && (oob[5] != 0xff)) ||
|
||||
|
||||
Reference in New Issue
Block a user