Fix flashrom running on boards with coreboot

In r1577 we removed the discrimination of coreboot IDs and user-specified
mainboards. The problem is that the board enable code required to find
a board enable if either of these model strings were set. Therefore boards
running coreboot that do not need a board enable failed to execute flashrom
since then. This patch fixes this by handling coreboot IDs and user-supplied
IDs differently again.

Corresponding to flashrom svn r1605.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Idwer Vollering <vidwer@gmail.com>
diff --git a/internal.c b/internal.c
index d31808d..eda4d59 100644
--- a/internal.c
+++ b/internal.c
@@ -257,12 +257,8 @@
 	}
 
 #if defined(__i386__) || defined(__x86_64__)
-	if (cb_parse_table(&cb_vendor, &cb_model) == 0) { /* coreboot IDs valid */
-		/* If no -p internal:mainboard was given but there are valid coreboot IDs then use those. */
-		if (board_vendor == NULL || board_model == NULL) {
-			board_vendor = cb_vendor;
-			board_model = cb_model;
-		} else if (strcasecmp(board_vendor, cb_vendor) || strcasecmp(board_model, cb_model)) {
+	if ((cb_parse_table(&cb_vendor, &cb_model) == 0) && (board_vendor != NULL) && (board_model != NULL)) {
+		if (strcasecmp(board_vendor, cb_vendor) || strcasecmp(board_model, cb_model)) {
 			msg_pinfo("WARNING: The mainboard IDs set by -p internal:mainboard (%s:%s) do not\n"
 				  "         match the current coreboot IDs of the mainboard (%s:%s).\n",
 				  board_vendor, board_model, cb_vendor, cb_model);
@@ -339,7 +335,7 @@
 	init_superio_ite();
 #endif
 
-	if (board_flash_enable(board_vendor, board_model)) {
+	if (board_flash_enable(board_vendor, board_model, cb_vendor, cb_model)) {
 		msg_perr("Aborting to be safe.\n");
 		return 1;
 	}