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
This commit is contained in:
parent
42c009e2be
commit
e046954d53
|
@ -258,8 +258,10 @@ static int davinci_write_page(struct nand_device_s *nand, u32 page,
|
||||||
return ERROR_NAND_OPERATION_FAILED;
|
return ERROR_NAND_OPERATION_FAILED;
|
||||||
|
|
||||||
/* Always write both data and OOB ... we are not "raw" I/O! */
|
/* 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;
|
return ERROR_NAND_OPERATION_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
/* If we're not given OOB, write 0xff where we don't write ECC codes. */
|
/* If we're not given OOB, write 0xff where we don't write ECC codes. */
|
||||||
switch (nand->page_size) {
|
switch (nand->page_size) {
|
||||||
|
@ -277,7 +279,7 @@ static int davinci_write_page(struct nand_device_s *nand, u32 page,
|
||||||
}
|
}
|
||||||
if (!oob) {
|
if (!oob) {
|
||||||
ooballoc = malloc(oob_size);
|
ooballoc = malloc(oob_size);
|
||||||
if (ooballoc)
|
if (!ooballoc)
|
||||||
return ERROR_NAND_OPERATION_FAILED;
|
return ERROR_NAND_OPERATION_FAILED;
|
||||||
oob = ooballoc;
|
oob = ooballoc;
|
||||||
memset(oob, 0x0ff, oob_size);
|
memset(oob, 0x0ff, oob_size);
|
||||||
|
|
Loading…
Reference in New Issue