summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.diff34
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 );