diff options
Diffstat (limited to 'dev-embedded/jtag/files/jtag-0.5.1-no-erase-overshoot.diff')
-rw-r--r-- | dev-embedded/jtag/files/jtag-0.5.1-no-erase-overshoot.diff | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dev-embedded/jtag/files/jtag-0.5.1-no-erase-overshoot.diff b/dev-embedded/jtag/files/jtag-0.5.1-no-erase-overshoot.diff new file mode 100644 index 000000000000..a79450d2bf58 --- /dev/null +++ b/dev-embedded/jtag/files/jtag-0.5.1-no-erase-overshoot.diff @@ -0,0 +1,34 @@ +*** jtag-0.5.1/src/flash.c.orig Wed Jun 23 14:02:44 2004 +--- jtag-0.5.1/src/flash.c Wed Jun 23 14:03:39 2004 +*************** +*** 293,306 **** + int bc = 0, bn = 0; + int block_no = find_block( cfi, adr ); + +! if (!erased[block_no]) { + flash_driver->unlock_block( cfi_array, adr ); + printf( _("\nblock %d unlocked\n"), block_no ); + printf( _("erasing block %d: %d\n"), block_no, flash_driver->erase_block( cfi_array, adr ) ); + erased[block_no] = 1; + } + +- bn = fread( b, 1, BSIZE, f ); + for (bc = 0; bc < bn; bc += flash_driver->bus_width) { + int j; + printf( _("addr: 0x%08X"), adr ); +--- 293,307 ---- + int bc = 0, bn = 0; + int block_no = find_block( cfi, adr ); + +! bn = fread( b, 1, BSIZE, f ); +! +! if (bn && !erased[block_no]) { + flash_driver->unlock_block( cfi_array, adr ); + printf( _("\nblock %d unlocked\n"), block_no ); + printf( _("erasing block %d: %d\n"), block_no, flash_driver->erase_block( cfi_array, adr ) ); + erased[block_no] = 1; + } + + for (bc = 0; bc < bn; bc += flash_driver->bus_width) { + int j; + printf( _("addr: 0x%08X"), adr ); |