diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2016-10-08 00:29:15 +0200 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-10-09 19:09:23 +0200 |
commit | a81bef1bd656cb09059a3e2b5708f67d5e614701 (patch) | |
tree | ae820175f3ca8dcf133f13cd882e569d191b62e1 /util | |
parent | 913684cd2e0ec26f443fc128de7dfc18de49da7b (diff) |
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 <lynxis@fe80.eu>
Reviewed-on: https://review.coreboot.org/16934
Tested-by: build bot (Jenkins)
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@googlemail.com>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Diffstat (limited to 'util')
-rw-r--r-- | util/ifdtool/ifdtool.c | 8 |
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); |