From a81bef1bd656cb09059a3e2b5708f67d5e614701 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Sat, 8 Oct 2016 00:29:15 +0200 Subject: [PATCH] ifdtool: promote max_regions as global max_regions is set to the maximal regions based on the ifd version Change-Id: I9fa5a4565f4dbd67b5c6df97756311560e2a18bc Signed-off-by: Alexander Couzens Reviewed-on: https://review.coreboot.org/16934 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese Reviewed-by: Duncan Laurie --- util/ifdtool/ifdtool.c | 8 +++----- 1 file 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);