FreeCalypso > hg > freecalypso-tools
annotate loadtools/flerase.c @ 1014:961efadd530a default tip
fc-shell TCH DL handler: add support for CSD modes
TCH DL capture mechanism in FC Tourmaline firmware has been extended
to support CSD modes in addition to speech - add the necessary support
on the host tools side.
It needs to be noted that this mechanism in its present state does NOT
provide the debug utility value that was sought: as we learned only
after the code was implemented, TI's DSP has a misfeature in that the
buffer we are reading (a_dd_0[]) is zeroed out when the IDS block
is enabled, i.e., we are reading all zeros and not the real DL bits
we were after. But since the code has already been written, we are
keeping it - perhaps we can do some tests with IDS disabled.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 26 Nov 2024 06:27:43 +0000 |
parents | 185c9bf208d3 |
children |
rev | line source |
---|---|
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
668
cd48bc4c5460
fc-loadtool code: erase command split out into flerase.c
Mychaela Falconia <falcon@freecalypso.org>
parents:
616
diff
changeset
|
2 * Flash erase operations are implemented here |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 */ |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include <sys/types.h> |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <stdio.h> |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <stdint.h> |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <string.h> |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <strings.h> |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <stdlib.h> |
616
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
11 #include <time.h> |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include "flash.h" |
669
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
13 #include "discontig.h" |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 extern struct flash_bank_info flash_bank_info[2]; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 flashcmd_erase(argc, argv, bank) |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 char **argv; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 { |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 struct flash_bank_info *bi; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 u_long offset, len; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 char *strtoul_endp; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 struct sector_info *startsec, *endsec, *sp; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 int stat; |
616
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
25 time_t start_time, finish_time; |
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
26 unsigned duration, mm, ss; |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 if (argc != 4) { |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 inv: fprintf(stderr, "usage: %s %s hex-start-offset hex-length\n", |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 argv[0], argv[1]); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 return(-1); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 } |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 offset = strtoul(argv[2], &strtoul_endp, 16); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 if (*strtoul_endp) |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 goto inv; |
506
0dd2c87c1b63
fc-loadtool flash support overhaul
Mychaela Falconia <falcon@freecalypso.org>
parents:
0
diff
changeset
|
36 if (flash_detect(bank, 0) < 0) |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 return(-1); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 bi = flash_bank_info + bank; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 if (offset >= bi->geom->total_size) { |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 fprintf(stderr, |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 "error: specified offset exceeds flash bank size (0x%lx)\n", |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 (u_long) bi->geom->total_size); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 return(-1); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 } |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 len = strtoul(argv[3], &strtoul_endp, 16); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 if (*strtoul_endp) |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 goto inv; |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 if (len > bi->geom->total_size - offset) { |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 fprintf(stderr, |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 "error: specified offset+length exceed flash bank size (0x%lx)\n", |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 (u_long) bi->geom->total_size); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 return(-1); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 } |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 if (!len) { |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 printf("Zero length specified - nothing to do!\n"); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 return(0); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 } |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /* now enforce sector alignment for both offset and length */ |
669
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
59 if (get_flash_sector_table(bi) < 0) |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 return(-1); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 if (get_flash_sector_range(bi, offset, len, &startsec, &endsec) < 0) |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 return(-1); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 printf("Erasing %d sector(s)\n", endsec - startsec); |
616
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
64 time(&start_time); |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 for (sp = startsec; sp < endsec; sp++) { |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 stat = bi->ops->erase_sector(bi, sp); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 if (stat) |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 return(stat); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 putchar('.'); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 fflush(stdout); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 } |
616
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
72 time(&finish_time); |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 putchar('\n'); |
616
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
74 duration = finish_time - start_time; |
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
75 mm = duration / 60; |
4be92bcd1535
fc-loadtool: added operation time reporting to flash erase
Mychaela Falconia <falcon@freecalypso.org>
parents:
506
diff
changeset
|
76 ss = duration - mm * 60; |
692
185c9bf208d3
loadtools operation time reporting: two digits for seconds
Mychaela Falconia <falcon@freecalypso.org>
parents:
669
diff
changeset
|
77 printf("Operation completed in %um%02us\n", mm, ss); |
0
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 return(0); |
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 } |
669
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
80 |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
81 erase_sectors_for_prog(bi, regions, nregions) |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
82 struct flash_bank_info *bi; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
83 struct discontig_prog *regions; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
84 unsigned nregions; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
85 { |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
86 struct sector_info *seclist[256], **seclp, **secendp, *sp; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
87 struct discontig_prog *regp, *regendp; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
88 uint32_t endaddr, secendaddr; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
89 int flag, stat; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
90 time_t start_time, finish_time; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
91 unsigned duration, mm, ss; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
92 |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
93 if (get_flash_sector_table(bi) < 0) |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
94 return(-1); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
95 seclp = seclist; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
96 endaddr = regions[nregions-1].end; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
97 regendp = regions + nregions; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
98 for (sp = bi->sectors; sp->size; sp++) { |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
99 if (sp->start >= endaddr) |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
100 break; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
101 secendaddr = sp->start + sp->size; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
102 flag = 0; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
103 for (regp = regions; regp < regendp; regp++) { |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
104 if (regp->start >= secendaddr) |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
105 break; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
106 if (sp->start >= regp->end) |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
107 continue; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
108 flag = 1; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
109 break; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
110 } |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
111 if (flag) |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
112 *seclp++ = sp; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
113 } |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
114 secendp = seclp; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
115 printf("Erasing %d sector(s)\n", secendp - seclist); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
116 time(&start_time); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
117 for (seclp = seclist; seclp < secendp; seclp++) { |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
118 sp = *seclp; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
119 stat = bi->ops->erase_sector(bi, sp); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
120 if (stat) |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
121 return(stat); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
122 putchar('.'); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
123 fflush(stdout); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
124 } |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
125 time(&finish_time); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
126 putchar('\n'); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
127 duration = finish_time - start_time; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
128 mm = duration / 60; |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
129 ss = duration - mm * 60; |
692
185c9bf208d3
loadtools operation time reporting: two digits for seconds
Mychaela Falconia <falcon@freecalypso.org>
parents:
669
diff
changeset
|
130 printf("Operation completed in %um%02us\n", mm, ss); |
669
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
131 return(0); |
ba9523ca6ed8
fc-loadtool code: preparations for e-program-* addition
Mychaela Falconia <falcon@freecalypso.org>
parents:
668
diff
changeset
|
132 } |