[flashrom] [commit] r1607 - trunk

repository service svn at flashrom.org
Tue Sep 25 23:24:55 CEST 2012


Author: stefanct
Date: Tue Sep 25 23:24:55 2012
New Revision: 1607
URL: http://flashrom.org/trac/flashrom/changeset/1607

Log:
Introduce a compile time option to select a default programmer.

Heavily influenced by a discussion with (and based on code from) Peter Stuge.
Please read the comment in the Makefile before using this option.

Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
Acked-by: Peter Stuge <peter at stuge.se>

Modified:
   trunk/Makefile
   trunk/cli_classic.c

Modified: trunk/Makefile
==============================================================================
--- trunk/Makefile	Tue Sep 25 23:08:41 2012	(r1606)
+++ trunk/Makefile	Tue Sep 25 23:24:55 2012	(r1607)
@@ -39,6 +39,18 @@
 EXPORTDIR ?= .
 AR      ?= ar
 RANLIB  ?= ranlib
+# The following parameter changes the default programmer that will be used if there is no -p/--programmer
+# argument given when running flashrom. The predefined setting does not enable any default so that every
+# user has to declare the programmer he wants to use on every run. The rationale for this to be not set
+# (to e.g. the internal programmer) is that forgetting to specify this when working with another programmer
+# easily puts the system attached to the default programmer at risk (e.g. you want to flash coreboot to another
+# system attached to an external programmer while the default programmer is set to the internal programmer, and
+# you forget to use the -p parameter. This would (try to) overwrite the existing firmware of the computer
+# running flashrom). Please do not enable this without thinking about the possible consequences. Possible
+# values are those specified in enum programmer in programmer.h (which depend on other CONFIG_* options
+# evaluated below, namely those that enable/disable the various programmers).
+# Compilation will fail for unspecified values.
+CONFIG_DEFAULT_PROGRAMMER ?= PROGRAMMER_INVALID
 
 # If your compiler spits out excessive warnings, run make WARNERROR=no
 # You shouldn't have to change this flag.
@@ -399,6 +411,8 @@
 ###############################################################################
 # Programmer drivers and programmer support infrastructure.
 
+FEATURE_CFLAGS += -D'CONFIG_DEFAULT_PROGRAMMER=$(CONFIG_DEFAULT_PROGRAMMER)'
+
 ifeq ($(CONFIG_INTERNAL), yes)
 FEATURE_CFLAGS += -D'CONFIG_INTERNAL=1'
 PROGRAMMER_OBJS += processor_enable.o chipset_enable.o board_enable.o cbtable.o dmi.o internal.o

Modified: trunk/cli_classic.c
==============================================================================
--- trunk/cli_classic.c	Tue Sep 25 23:08:41 2012	(r1606)
+++ trunk/cli_classic.c	Tue Sep 25 23:24:55 2012	(r1607)
@@ -402,11 +402,17 @@
 	}
 
 	if (prog == PROGRAMMER_INVALID) {
-		msg_perr("Please select a programmer with the --programmer parameter.\n"
-			 "Valid choices are:\n");
-		list_programmers_linebreak(0, 80, 0);
-		ret = 1;
-		goto out;
+		if (CONFIG_DEFAULT_PROGRAMMER != PROGRAMMER_INVALID) {
+			prog = CONFIG_DEFAULT_PROGRAMMER;
+			msg_pinfo("Using default programmer \"%s\".\n",
+				  programmer_table[CONFIG_DEFAULT_PROGRAMMER].name);
+		} else {
+			msg_perr("Please select a programmer with the --programmer parameter.\n"
+				 "Valid choices are:\n");
+			list_programmers_linebreak(0, 80, 0);
+			ret = 1;
+			goto out;
+		}
 	}
 
 	/* FIXME: Delay calibration should happen in programmer code. */




More information about the flashrom mailing list