selfcheck: Check dummy-cycle settings when QPI is advertised

Signed-off-by: Nico Huber <nico.h@gmx.de>

Change-Id: I8395a721dc12fbe078f63b3af7e6404cc45437fa
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/279
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: Nico Huber <nico.h@gmx.de>
diff --git a/flashprog.c b/flashprog.c
index 31a7cdd..2520d11 100644
--- a/flashprog.c
+++ b/flashprog.c
@@ -1551,6 +1551,14 @@
 					 "Please report a bug at flashprog@flashprog.org\n", i, name);
 				ret = 1;
 			}
+			uint8_t zero_cycles[sizeof(chip->dummy_cycles)] = { 0 };
+			if ((chip->feature_bits & (FEATURE_QPI_35_F5 | FEATURE_QPI_38_FF)) &&
+			    !memcmp(&chip->dummy_cycles, zero_cycles, sizeof(zero_cycles))) {
+				msg_gerr("ERROR: Flash chip #%d (%s) misses QPI dummy-cycle\n"
+					 "settings. Please report a bug at flashprog@flashprog.org\n",
+					 i, name);
+				ret = 1;
+			}
 			if (chip->reg_bits.bp[0].reg != INVALID_REG &&
 			    (!chip->wp_write_cfg || !chip->wp_read_cfg ||
 			     !chip->wp_get_ranges || !chip->decode_range)) {