Subject: flash fill[bwh] should use bulk i/o
authorDavid Brownell <dbrownell@users.sourceforge.net>
Fri, 18 Dec 2009 18:09:35 +0000 (10:09 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Fri, 18 Dec 2009 18:09:35 +0000 (10:09 -0800)
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 <dbrownell@users.sourceforge.net>
src/flash/nor/tcl.c

index 1e933b2733a36bd7a2e1671771c60acf8ddc029f..b5e1b2ce8bdd9069278e9b103c16439d9089c202 100644 (file)
@@ -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);