From: David Brownell Date: Fri, 18 Dec 2009 18:09:35 +0000 (-0800) Subject: Subject: flash fill[bwh] should use bulk i/o X-Git-Tag: v0.4.0-rc1~16 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=013b05f7f813f0d0c15a6bb20068e9423a28bd0d;p=openocd Subject: flash fill[bwh] should use bulk i/o It's currently allocating a big buffer but writing it out in units of sizeof(host's pointer) ... sub-optimal. Plus fix a couple minor coding style goofs. Signed-off-by: David Brownell --- diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c index 1e933b27..b5e1b2ce 100644 --- a/src/flash/nor/tcl.c +++ b/src/flash/nor/tcl.c @@ -534,14 +534,16 @@ COMMAND_HANDLER(handle_flash_fill_command) for (wrote = 0; wrote < (count*wordsize); wrote += cur_size) { - cur_size = MIN((count*wordsize - wrote), sizeof(chunk)); struct flash_bank *bank; + bank = get_flash_bank_by_addr(target, address); if (bank == NULL) { retval = ERROR_FAIL; goto done; } + + cur_size = MIN((count * wordsize - wrote), chunksize); err = flash_driver_write(bank, chunk, address - bank->base + wrote, cur_size); if (err != ERROR_OK) { @@ -576,7 +578,7 @@ COMMAND_HANDLER(handle_flash_fill_command) duration_elapsed(&bench), duration_kbps(&bench, wrote)); } - done: +done: free(readback); free(chunk);