fallback for no implementation of multi word CFI write. Successful codepath not affected.

git-svn-id: svn://svn.berlios.de/openocd/trunk@711 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe 2008-06-16 18:44:20 +00:00
parent d52d7f69be
commit 996acf082c
1 changed files with 11 additions and 7 deletions

View File

@ -1738,21 +1738,25 @@ int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
/* fall back to memory writes */ /* fall back to memory writes */
while (count >= bank->bus_width) while (count >= bank->bus_width)
{ {
int fallback;
if ((write_p & 0xff) == 0) if ((write_p & 0xff) == 0)
{ {
LOG_INFO("Programming at %08x, count %08x bytes remaining", write_p, count); LOG_INFO("Programming at %08x, count %08x bytes remaining", write_p, count);
} }
fallback = 1;
if ((bufferwsize > 0) && (count >= buffersize) && !(write_p & buffermask)) if ((bufferwsize > 0) && (count >= buffersize) && !(write_p & buffermask))
{ {
retval = cfi_write_words(bank, buffer, bufferwsize, write_p); retval = cfi_write_words(bank, buffer, bufferwsize, write_p);
if (retval != ERROR_OK) if (retval == ERROR_OK)
return retval; {
buffer += buffersize;
buffer += buffersize; write_p += buffersize;
write_p += buffersize; count -= buffersize;
count -= buffersize; fallback=0;
}
} }
else /* try the slow way? */
if (fallback)
{ {
for (i = 0; i < bank->bus_width; i++) for (i = 0; i < bank->bus_width; i++)
current_word[i] = 0; current_word[i] = 0;