ifdtool: Enable GbE/PDR/EC region access only if they exist

Instead of assuming GbE/PDR/EC regions may exist or not, check if there
is a valid region defined in the descriptor and set the region access
permissions based on that.

The net effect change is to enable the use of the PDR region on the
sarien platform, which also uses the GbE and EC regions.

This results in the following example changes:

mb/google/sarien (GbE, PDR, EC)
.      DESC BIOS ME GbE PDR EC
-BIOS  r    rw      rw      r
-------------------------------
+BIOS  r    rw      rw  rw  r

mb/google/eve: (no GbE, no PDR, no EC)
.      DESC BIOS ME GbE PDR EC
-BIOS  r    rw      rw      r
-ME    r         rw r
-GbE   r            rw
-EC    r                    rw
-------------------------------
+BIOS  r    rw
+ME    r         rw
+GbE
+EC

BUG=b:134703987

Change-Id: I7aeffc8f8194638c6012340b43aea8f8460d268a
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33273
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/util/ifdtool/ifdtool.h b/util/ifdtool/ifdtool.h
index 49463b9..f3b9a53 100644
--- a/util/ifdtool/ifdtool.h
+++ b/util/ifdtool/ifdtool.h
@@ -94,6 +94,15 @@
 #define MAX_REGIONS 9
 #define MAX_REGIONS_OLD 5
 
+enum flash_regions {
+	REGION_DESC,
+	REGION_BIOS,
+	REGION_ME,
+	REGION_GBE,
+	REGION_PDR,
+	REGION_EC = 8,
+};
+
 typedef struct {
 	uint32_t flreg[MAX_REGIONS];
 } __attribute__((packed)) frba_t;