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>
This commit is contained in:
parent
913684cd2e
commit
a81bef1bd6
|
@ -28,6 +28,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int ifd_version;
|
static int ifd_version;
|
||||||
|
static int max_regions = 0;
|
||||||
static int selected_chip = 0;
|
static int selected_chip = 0;
|
||||||
|
|
||||||
static const struct region_name region_names[MAX_REGIONS] = {
|
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) {
|
switch (read_freq) {
|
||||||
case SPI_FREQUENCY_20MHZ:
|
case SPI_FREQUENCY_20MHZ:
|
||||||
ifd_version = IFD_VERSION_1;
|
ifd_version = IFD_VERSION_1;
|
||||||
|
max_regions = MAX_REGIONS_OLD;
|
||||||
break;
|
break;
|
||||||
case SPI_FREQUENCY_17MHZ:
|
case SPI_FREQUENCY_17MHZ:
|
||||||
ifd_version = IFD_VERSION_2;
|
ifd_version = IFD_VERSION_2;
|
||||||
|
max_regions = MAX_REGIONS;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Unknown descriptor version: %d\n",
|
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)
|
static void write_regions(char *image, int size)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int max_regions = MAX_REGIONS;
|
|
||||||
|
|
||||||
fdbar_t *fdb = find_fd(image, size);
|
fdbar_t *fdb = find_fd(image, size);
|
||||||
if (!fdb)
|
if (!fdb)
|
||||||
|
@ -662,10 +664,6 @@ static void write_regions(char *image, int size)
|
||||||
frba_t *frba =
|
frba_t *frba =
|
||||||
(frba_t *) (image + (((fdb->flmap0 >> 16) & 0xff) << 4));
|
(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++) {
|
for (i = 0; i < max_regions; i++) {
|
||||||
region_t region = get_region(frba, i);
|
region_t region = get_region(frba, i);
|
||||||
dump_region(i, frba);
|
dump_region(i, frba);
|
||||||
|
|
Loading…
Reference in New Issue