summaryrefslogtreecommitdiff
path: root/src/flash
diff options
context:
space:
mode:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-05-24 20:56:13 +0000
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2009-05-24 20:56:13 +0000
commite046954d530cc7473ce1ae8d742209a68fe6dcae (patch)
treec2eae7ce3f6ae7e1e772e7ea46e76ab5b35bb80a /src/flash
parent42c009e2bef872074603ba52d17a83de2df6c185 (diff)
downloadopenocd+libswd-e046954d530cc7473ce1ae8d742209a68fe6dcae.tar.gz
openocd+libswd-e046954d530cc7473ce1ae8d742209a68fe6dcae.tar.bz2
openocd+libswd-e046954d530cc7473ce1ae8d742209a68fe6dcae.tar.xz
openocd+libswd-e046954d530cc7473ce1ae8d742209a68fe6dcae.zip
David Brownell <david-b@pacbell.net>: minor davinci_nand bugfix
Fix a bug that joined us at the last minute, when an efficient alloca() call got swapped out for a more portable malloc(). Also log one error, to give a clue in case it appears "in the wild". git-svn-id: svn://svn.berlios.de/openocd/trunk@1907 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/flash')
-rw-r--r--src/flash/davinci_nand.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/flash/davinci_nand.c b/src/flash/davinci_nand.c
index cab489f8..7500fc75 100644
--- a/src/flash/davinci_nand.c
+++ b/src/flash/davinci_nand.c
@@ -258,8 +258,10 @@ static int davinci_write_page(struct nand_device_s *nand, u32 page,
return ERROR_NAND_OPERATION_FAILED;
/* Always write both data and OOB ... we are not "raw" I/O! */
- if (!data)
+ if (!data) {
+ LOG_ERROR("Missing NAND data; try 'nand raw_access enable'\n");
return ERROR_NAND_OPERATION_FAILED;
+ }
/* If we're not given OOB, write 0xff where we don't write ECC codes. */
switch (nand->page_size) {
@@ -277,7 +279,7 @@ static int davinci_write_page(struct nand_device_s *nand, u32 page,
}
if (!oob) {
ooballoc = malloc(oob_size);
- if (ooballoc)
+ if (!ooballoc)
return ERROR_NAND_OPERATION_FAILED;
oob = ooballoc;
memset(oob, 0x0ff, oob_size);