summaryrefslogtreecommitdiff
path: root/util/ifdtool
diff options
context:
space:
mode:
Diffstat (limited to 'util/ifdtool')
-rw-r--r--util/ifdtool/ifdtool.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/util/ifdtool/ifdtool.c b/util/ifdtool/ifdtool.c
index 43054e0eb2..b8f409a7e8 100644
--- a/util/ifdtool/ifdtool.c
+++ b/util/ifdtool/ifdtool.c
@@ -28,6 +28,7 @@
#endif
static int ifd_version;
+static int max_regions = 0;
static int selected_chip = 0;
static const struct region_name region_names[MAX_REGIONS] = {
@@ -85,9 +86,11 @@ static void check_ifd_version(char *image, int size)
switch (read_freq) {
case SPI_FREQUENCY_20MHZ:
ifd_version = IFD_VERSION_1;
+ max_regions = MAX_REGIONS_OLD;
break;
case SPI_FREQUENCY_17MHZ:
ifd_version = IFD_VERSION_2;
+ max_regions = MAX_REGIONS;
break;
default:
fprintf(stderr, "Unknown descriptor version: %d\n",
@@ -653,7 +656,6 @@ static void dump_layout(char *image, int size, char *layout_fname)
static void write_regions(char *image, int size)
{
int i;
- int max_regions = MAX_REGIONS;
fdbar_t *fdb = find_fd(image, size);
if (!fdb)
@@ -662,10 +664,6 @@ static void write_regions(char *image, int size)
frba_t *frba =
(frba_t *) (image + (((fdb->flmap0 >> 16) & 0xff) << 4));
- /* Older descriptor images have fewer regions */
- if (ifd_version < IFD_VERSION_2)
- max_regions = MAX_REGIONS_OLD;
-
for (i = 0; i < max_regions; i++) {
region_t region = get_region(frba, i);
dump_region(i, frba);