summaryrefslogtreecommitdiffstats
path: root/layout.c
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2005-12-18 18:40:46 +0000
committerStefan Reinauer <stefan.reinauer@coreboot.org>2005-12-18 18:40:46 +0000
commit3a431602df23999249e2240af0895d2c90f77050 (patch)
tree8c6127f55e4b362cb94d9626cdab728509e5385e /layout.c
parente3705282c7be0bc88089d877ba904053eb7fa8f3 (diff)
downloadflashrom-3a431602df23999249e2240af0895d2c90f77050.tar.gz
flashrom-3a431602df23999249e2240af0895d2c90f77050.tar.bz2
flashrom-3a431602df23999249e2240af0895d2c90f77050.zip
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.
Diffstat (limited to 'layout.c')
-rw-r--r--layout.c44
1 files changed, 31 insertions, 13 deletions
diff --git a/layout.c b/layout.c
index 8ac3af876..5478782f4 100644
--- a/layout.c
+++ b/layout.c
@@ -50,28 +50,46 @@ int show_id(uint8_t *bios, int size)
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 @@ int read_romlayout(char *name)
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 @@ int read_romlayout(char *name)
}
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);