ichspi: Add support for discrete Cannon Lake PCHs

Only minor differences in the Firmware Descriptor, compared to their
predecessors.

We extend our check on the `ICCRIBA` field in the descriptor to dis-
tinguish it from older generation. Alas, the `freq_read` field was
repurposed, so we can't use it as sanity check any more.

Change-Id: I1c2d1e8916cecd756e7ac1f0ba221d7cc361ba02
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/34072
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
diff --git a/ich_descriptors.h b/ich_descriptors.h
index 4225286..c6bf5d8 100644
--- a/ich_descriptors.h
+++ b/ich_descriptors.h
@@ -170,8 +170,9 @@
 	 * Chipset/Generation				#FLREGs		width (bits)
 	 * ICH8			.. Panther Point/7	 5		13
 	 * Lynx Point/8		.. Wildcat Point/9	 7		15
-	 * Sunrise Point/100	..			10		15
+	 * Sunrise Point/100	.. 200 Series		10		15
 	 * Lewisburg/100	..			16		15
+	 * Cannon Point/300	..			16		15
 	 */
 	union {
 		uint32_t FLREGs[MAX_NUM_FLREGS]; /* Flash Descriptor Regions */
@@ -234,9 +235,10 @@
 		};
 		/* From Skylake on */
 		struct {
-			uint32_t	:8,
-				 read	:12,
-				 write	:12;
+			uint32_t ext_read	:4,
+				 ext_write	:4,
+				 read		:12,
+				 write		:12;
 		} mstr[MAX_NUM_MASTERS];
 	};
 };