From fa9fa7131a4c5a0bc49c17a428bb0388f9bc88e7 Mon Sep 17 00:00:00 2001 From: Stefan Tauner Date: Mon, 24 Sep 2012 21:29:29 +0000 Subject: 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 Acked-by: Idwer Vollering --- internal.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'internal.c') diff --git a/internal.c b/internal.c index d31808d5e..eda4d594a 100644 --- a/internal.c +++ b/internal.c @@ -257,12 +257,8 @@ int internal_init(void) } #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 @@ int internal_init(void) 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; } -- cgit v1.2.3