comparison loadtools/flmisc.c @ 406:0b8e5072abde

fc-loadtool flash: reset to read mode added where appropriate
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Tue, 17 Jun 2014 00:53:07 +0000
parents a212b4968b29
children 431023033c86
comparison
equal deleted inserted replaced
405:a212b4968b29 406:0b8e5072abde
44 fprintf(stderr, 44 fprintf(stderr,
45 "error: specified offset+length exceed flash bank size (0x%lx)\n", 45 "error: specified offset+length exceed flash bank size (0x%lx)\n",
46 (u_long) bi->geom->total_size); 46 (u_long) bi->geom->total_size);
47 return(-1); 47 return(-1);
48 } 48 }
49 /* reset flash to read mode */
50 if (bi->ops->reset_cmd(bi) < 0)
51 return(-1);
49 sprintf(targ_start, "%lx", (u_long) bi->base_addr + offset); 52 sprintf(targ_start, "%lx", (u_long) bi->base_addr + offset);
50 sprintf(targ_len, "%lx", len); 53 sprintf(targ_len, "%lx", len);
51 targv[0] = "blankchk"; 54 targv[0] = "blankchk";
52 targv[1] = targ_start; 55 targv[1] = targ_start;
53 targv[2] = targ_len; 56 targv[2] = targ_len;
109 default: 112 default:
110 fprintf(stderr, 113 fprintf(stderr,
111 "internal bug: bad format in flashcmd_dump2file()\n"); 114 "internal bug: bad format in flashcmd_dump2file()\n");
112 return(-1); 115 return(-1);
113 } 116 }
117 /* reset flash to read mode */
118 if (bi->ops->reset_cmd(bi) < 0)
119 return(-1);
114 return loadtool_memdump(bi->base_addr + offset, dumplen, argv[2], 120 return loadtool_memdump(bi->base_addr + offset, dumplen, argv[2],
115 format); 121 format);
116 } 122 }
117 123
118 flashcmd_erase(argc, argv, bank) 124 flashcmd_erase(argc, argv, bank)
210 } 216 }
211 if (tpinterf_send_cmd() < 0) 217 if (tpinterf_send_cmd() < 0)
212 return(-1); 218 return(-1);
213 return tpinterf_pass_output(1); 219 return tpinterf_pass_output(1);
214 } 220 }
221
222 flashcmd_reset(argc, argv, bank)
223 char **argv;
224 {
225 struct flash_bank_info *bi;
226
227 if (argc > 2) {
228 fprintf(stderr, "error: too many arguments\n");
229 return(-1);
230 }
231 if (flash_get_cfi(bank) < 0)
232 return(-1);
233 bi = flash_bank_info + bank;
234 return bi->ops->reset_cmd(bi);
235 }