Introduce ERROR_FATAL, abort upon failed chipset enables

Corresponding to flashrom svn r1426.

Signed-off-by: Tadas Slotkus <devtadas@gmail.com>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
diff --git a/chipset_enable.c b/chipset_enable.c
index eb4031b..21f2e86 100644
--- a/chipset_enable.c
+++ b/chipset_enable.c
@@ -1325,6 +1325,10 @@
 			msg_pinfo("OK.\n");
 		else if (ret == ERROR_NONFATAL)
 			msg_pinfo("PROBLEMS, continuing anyway\n");
+		if (ret == ERROR_FATAL) {
+			msg_perr("FATAL ERROR!\n");
+			return ret;
+		}
 	}
 
 	s = flashbuses_to_text(buses_supported);
diff --git a/flash.h b/flash.h
index 3d47a16..535c1b8 100644
--- a/flash.h
+++ b/flash.h
@@ -224,9 +224,12 @@
 #define OK 0
 #define NT 1    /* Not tested */
 
-/* Something happened that shouldn't happen, but we can go on */
+/* Something happened that shouldn't happen, but we can go on. */
 #define ERROR_NONFATAL 0x100
 
+/* Something happened that shouldn't happen, we'll abort. */
+#define ERROR_FATAL -0xee
+
 /* cli_output.c */
 /* Let gcc and clang check for correct printf-style format strings. */
 int print(int type, const char *fmt, ...) __attribute__((format(printf, 2, 3)));
diff --git a/internal.c b/internal.c
index 846cf1e..46836b7 100644
--- a/internal.c
+++ b/internal.c
@@ -268,7 +268,8 @@
 	if (ret == -2) {
 		msg_perr("WARNING: No chipset found. Flash detection "
 			 "will most likely fail.\n");
-	}
+	} else if (ret == ERROR_FATAL)
+		return ret;
 
 #if defined(__i386__) || defined(__x86_64__)
 	/* Probe unconditionally for IT87* LPC->SPI translation and for