aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/flash/nand/mx2.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/flash/nand/mx2.c b/src/flash/nand/mx2.c
index 77ae1382..6c3c5508 100644
--- a/src/flash/nand/mx2.c
+++ b/src/flash/nand/mx2.c
@@ -501,15 +501,20 @@ static int imx27_read_page(struct nand_device *nand, uint32_t page,
return retval;
}
/* Reset address_cycles before imx27_command ?? */
- retval = ERROR_OK;
- retval |= imx27_command(nand, NAND_CMD_READ0);
-
- retval |= imx27_address(nand, 0); //col
- retval |= imx27_address(nand, 0); //col
- retval |= imx27_address(nand, page & 0xff); //page address
- retval |= imx27_address(nand, (page >> 8) & 0xff); //page address
- retval |= imx27_address(nand, (page >> 16) & 0xff); //page address
- retval |= imx27_command(nand, NAND_CMD_READSTART);
+ retval = imx27_command(nand, NAND_CMD_READ0);
+ if (retval != ERROR_OK) return retval;
+ retval = imx27_address(nand, 0); //col
+ if (retval != ERROR_OK) return retval;
+ retval = imx27_address(nand, 0); //col
+ if (retval != ERROR_OK) return retval;
+ retval = imx27_address(nand, page & 0xff); //page address
+ if (retval != ERROR_OK) return retval;
+ retval = imx27_address(nand, (page >> 8) & 0xff); //page address
+ if (retval != ERROR_OK) return retval;
+ retval = imx27_address(nand, (page >> 16) & 0xff); //page address
+ if (retval != ERROR_OK) return retval;
+ retval = imx27_command(nand, NAND_CMD_READSTART);
+ if (retval != ERROR_OK) return retval;
target_write_u16(target, MX2_NF_BUFADDR, 0);
mx2_nf_info->fin = MX2_NF_FIN_DATAOUT;