Redo image checking in conversion case

Please update to this release if you are using flashrom.

Corresponding to flashrom svn r38 and coreboot v2 svn r2147.
diff --git a/layout.c b/layout.c
index 8ac3af8..5478782 100644
--- a/layout.c
+++ b/layout.c
@@ -50,28 +50,46 @@
 		return 0;
 	}
 	
-	printf("LinuxBIOS last image size (not rom size) is %d bytes.\n", *walk);
+	printf_debug("LinuxBIOS last image size "
+		     "(not rom size) is %d bytes.\n", *walk);
 	
 	walk--; mainboard_part=strdup((const char *)(bios+size-*walk));
 	walk--; mainboard_vendor=strdup((const char *)(bios+size-*walk));
-	printf("MANUFACTURER: %s\n", mainboard_vendor);
-	printf("MAINBOARD ID: %s\n", mainboard_part);
+	printf_debug("MANUFACTURER: %s\n", mainboard_vendor);
+	printf_debug("MAINBOARD ID: %s\n", mainboard_part);
+	
+
+	/*
+	 * If lb_vendor is not set, the linuxbios table was
+	 * not found. Nor was -mVENDOR:PART specified
+	 */
+
+	if(!lb_vendor || !lb_part) {
+		printf("Note: If the following flash access fails, "
+		"you might need to specify -m <vendor>:<mainboard>\n");
+		return 0;
+	}
 	
 	/* These comparisons are case insensitive to make things
 	 * a little less user^Werror prone. 
 	 */
-	if(lb_vendor && !strcasecmp(mainboard_vendor, lb_vendor) && 
-	   lb_part && !strcasecmp(mainboard_part, lb_part)) {
-		printf ("This firmware image matches "
-		        "this motherboard.\n");
+
+	if(!strcasecmp(mainboard_vendor, lb_vendor) && 
+	   !strcasecmp(mainboard_part, lb_part)) {
+		printf_debug("This firmware image matches "
+			     "this motherboard.\n");
 	} else {
 		if(force) {
 			printf("WARNING: This firmware image does not "
-			"fit to this machine - forcing it.\n");
+			"seem to fit to this machine - forcing it.\n");
 		} else {
-			printf("ERROR: This firmware image does not "
-			"fit to this machine\nOverride with -m if"
-			"you know exactly what you are doing.\n");
+			printf("ERROR: Your firmware image (%s:%s) does not "
+			"appear to\n       be correct for the detected "
+			"mainboard (%s:%s)\n\nOverride with --force if you "
+			"are absolutely sure that you\nare using a correct "
+			"image for this mainboard or override\nthe detected "
+			"values with --mainboard <vendor>:<mainboard>.\n\n",
+			mainboard_vendor, mainboard_part, lb_vendor, lb_part);
 			exit(1);
 		}
 	}
@@ -88,7 +106,7 @@
 	romlayout=fopen (name, "r");
 	
 	if(!romlayout) {
-		printf("Error while opening rom layout.\n");
+		printf("Error while opening rom layout (%s).\n", name);
 		return -1;
 	}
 	
@@ -110,7 +128,7 @@
 	}
 	
 	for(i=0; i<romimages; i++) {
-		printf("romlayout %08x - %08x named %s\n", 
+		printf_debug("romlayout %08x - %08x named %s\n", 
 			rom_entries[i].start,
 			rom_entries[i].end,
 			rom_entries[i].name);