FreeCalypso > hg > freecalypso-sw
comparison loadtools/flerase.c @ 400:f027c6fbe37e
fc-loadtool flash: first round of refactoring for CFI
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 15 Jun 2014 20:05:54 +0000 |
parents | cd12d1049f91 |
children |
comparison
equal
deleted
inserted
replaced
399:d26a9e3de626 | 400:f027c6fbe37e |
---|---|
70 return(-1); | 70 return(-1); |
71 } | 71 } |
72 offset = strtoul(argv[2], &strtoul_endp, 16); | 72 offset = strtoul(argv[2], &strtoul_endp, 16); |
73 if (*strtoul_endp) | 73 if (*strtoul_endp) |
74 goto inv; | 74 goto inv; |
75 if (flash_get_cfi(bank) < 0) | |
76 return(-1); | |
75 bi = flash_bank_info + bank; | 77 bi = flash_bank_info + bank; |
76 if (offset >= bi->total_size) { | 78 if (bi->cfi->cmdset_style != 2) { |
79 fprintf(stderr, | |
80 "error: this command is currently only implemented for AMD-style flash\n"); | |
81 return(-1); | |
82 } | |
83 if (offset >= bi->cfi->total_size) { | |
77 fprintf(stderr, | 84 fprintf(stderr, |
78 "error: specified offset exceeds flash bank size (0x%lx)\n", | 85 "error: specified offset exceeds flash bank size (0x%lx)\n", |
79 (u_long) bi->total_size); | 86 (u_long) bi->cfi->total_size); |
80 return(-1); | 87 return(-1); |
81 } | 88 } |
82 len = strtoul(argv[3], &strtoul_endp, 16); | 89 len = strtoul(argv[3], &strtoul_endp, 16); |
83 if (*strtoul_endp) | 90 if (*strtoul_endp) |
84 goto inv; | 91 goto inv; |
85 if (len > bi->total_size - offset) { | 92 if (len > bi->cfi->total_size - offset) { |
86 fprintf(stderr, | 93 fprintf(stderr, |
87 "error: specified offset+length exceed flash bank size (0x%lx)\n", | 94 "error: specified offset+length exceed flash bank size (0x%lx)\n", |
88 (u_long) bi->total_size); | 95 (u_long) bi->cfi->total_size); |
89 return(-1); | 96 return(-1); |
90 } | 97 } |
91 if (!len) { | 98 if (!len) { |
92 printf("Zero length specified - nothing to do!\n"); | 99 printf("Zero length specified - nothing to do!\n"); |
93 return(0); | 100 return(0); |