From 013b05f7f813f0d0c15a6bb20068e9423a28bd0d Mon Sep 17 00:00:00 2001 From: David Brownell Date: Fri, 18 Dec 2009 10:09:35 -0800 Subject: [PATCH] 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 --- src/flash/nor/tcl.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c index 1e933b273..b5e1b2ce8 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);