Boards with coreboot have a cbtable containing vendor and board name
Flashrom tries to match these with board enable entries in its database.
If no such board enable entry exists because the board doesn't need one,
flashrom complains. Silence that complaint.
Corresponding to flashrom svn r668.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Slightly updated and
Acked-by: Stefan Reinauer <stepan@coresystems.de>
diff --git a/board_enable.c b/board_enable.c
index b094e9b..a47318f 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -1134,7 +1134,14 @@
if (partmatch)
return partmatch;
- printf("\nUnknown vendor:board from coreboot table or -m option: %s:%s\n\n", vendor, part);
+ if (!partvendor_from_cbtable) {
+ /* Only warn if the mainboard type was not gathered from the
+ * coreboot table. If it was, the coreboot implementor is
+ * expected to fix flashrom, too.
+ */
+ printf("\nUnknown vendor:board from -m option: %s:%s\n\n",
+ vendor, part);
+ }
return NULL;
}
@@ -1187,7 +1194,7 @@
board = board_match_pci_card_ids();
if (board) {
- printf("Found board \"%s %s\", enabling flash write... ",
+ printf("Disabling flash write protection for board \"%s %s\"... ",
board->vendor_name, board->board_name);
ret = board->enable(board->vendor_name);
diff --git a/cbtable.c b/cbtable.c
index 4bcfa88..10fe494 100644
--- a/cbtable.c
+++ b/cbtable.c
@@ -31,6 +31,7 @@
#include "coreboot_tables.h"
char *lb_part = NULL, *lb_vendor = NULL;
+int partvendor_from_cbtable = 0;
static unsigned long compute_checksum(void *addr, unsigned long length)
{
@@ -150,6 +151,7 @@
if (lb_part) {
printf("Overwritten by command line, vendor ID: %s, part ID: %s.\n", lb_vendor, lb_part);
} else {
+ partvendor_from_cbtable = 1;
lb_part = strdup(part);
lb_vendor = strdup(vendor);
}
diff --git a/flash.h b/flash.h
index d8454ff..8a80dc5 100644
--- a/flash.h
+++ b/flash.h
@@ -402,6 +402,7 @@
/* cbtable.c */
int coreboot_init(void);
extern char *lb_part, *lb_vendor;
+extern int partvendor_from_cbtable;
/* spi.c */
enum spi_controller {