1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-06-30 21:52:36 +02:00

Always require the --programmer parameter if any flash chip access is requested

Fix a few man page oddities as well.

Corresponding to flashrom svn r1552.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
This commit is contained in:
Carl-Daniel Hailfinger
2012-07-22 12:01:43 +00:00
parent d6bb828b01
commit 4e3391f505
3 changed files with 67 additions and 107 deletions

View File

@ -31,87 +31,20 @@
#include "flashchips.h"
#include "programmer.h"
#if CONFIG_INTERNAL == 1
static enum programmer default_programmer = PROGRAMMER_INTERNAL;
#elif CONFIG_DUMMY == 1
static enum programmer default_programmer = PROGRAMMER_DUMMY;
#else
/* If neither internal nor dummy are selected, we must pick a sensible default.
* Since there is no reason to prefer a particular external programmer, we fail
* if more than one of them is selected. If only one is selected, it is clear
* that the user wants that one to become the default.
*/
#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_NICNATSEMI+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT+CONFIG_FT2232_SPI+CONFIG_SERPROG+CONFIG_BUSPIRATE_SPI+CONFIG_DEDIPROG+CONFIG_RAYER_SPI+CONFIG_NICINTEL+CONFIG_NICINTEL_SPI+CONFIG_OGP_SPI+CONFIG_SATAMV > 1
#error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all programmers except one.
#endif
static enum programmer default_programmer =
#if CONFIG_NIC3COM == 1
PROGRAMMER_NIC3COM
#endif
#if CONFIG_NICREALTEK == 1
PROGRAMMER_NICREALTEK
#endif
#if CONFIG_NICNATSEMI == 1
PROGRAMMER_NICNATSEMI
#endif
#if CONFIG_GFXNVIDIA == 1
PROGRAMMER_GFXNVIDIA
#endif
#if CONFIG_DRKAISER == 1
PROGRAMMER_DRKAISER
#endif
#if CONFIG_SATASII == 1
PROGRAMMER_SATASII
#endif
#if CONFIG_ATAHPT == 1
PROGRAMMER_ATAHPT
#endif
#if CONFIG_FT2232_SPI == 1
PROGRAMMER_FT2232_SPI
#endif
#if CONFIG_SERPROG == 1
PROGRAMMER_SERPROG
#endif
#if CONFIG_BUSPIRATE_SPI == 1
PROGRAMMER_BUSPIRATE_SPI
#endif
#if CONFIG_DEDIPROG == 1
PROGRAMMER_DEDIPROG
#endif
#if CONFIG_RAYER_SPI == 1
PROGRAMMER_RAYER_SPI
#endif
#if CONFIG_NICINTEL == 1
PROGRAMMER_NICINTEL
#endif
#if CONFIG_NICINTEL_SPI == 1
PROGRAMMER_NICINTEL_SPI
#endif
#if CONFIG_OGP_SPI == 1
PROGRAMMER_OGP_SPI
#endif
#if CONFIG_SATAMV == 1
PROGRAMMER_SATAMV
#endif
#if CONFIG_LINUX_SPI == 1
PROGRAMMER_LINUX_SPI
#endif
;
#endif
static void cli_classic_usage(const char *name)
{
printf("Usage: flashrom [-n] [-V] [-f] [-h|-R|-L|"
printf("Usage: flashrom [-h|-R|-L|"
#if CONFIG_PRINT_WIKI == 1
"-z|"
"-z|"
#endif
"-E|-r <file>|-w <file>|-v <file>]\n"
" [-c <chipname>] [-l <file>] [-o <file>]\n"
" [-i <image>] [-p <programmername>[:<parameters>]]\n\n");
"-p <programmername>[:<parameters>]\n"
" [-E|-r <file>|-w <file>|-v <file>] [-c <chipname>]\n"
" [-l <file> [-i <image>]] [-n] [-f]]\n"
" [-V[V[V]]] [-o <logfile>]\n\n");
printf("Please note that the command line interface for flashrom has "
"changed between\n"
"0.9.1 and 0.9.2 and will change again before flashrom 1.0.\n"
"0.9.5 and 0.9.6 and will change again before flashrom 1.0.\n"
"Do not use flashrom in scripts or other automated tools "
"without checking\n"
"that your flashrom version won't interpret options in a "
@ -360,8 +293,9 @@ int main(int argc, char *argv[])
}
}
if (prog == PROGRAMMER_INVALID) {
fprintf(stderr, "Error: Unknown programmer "
"%s.\n", optarg);
fprintf(stderr, "Error: Unknown programmer \"%s\". Valid choices are:\n",
optarg);
list_programmers_linebreak(0, 80, 0);
cli_classic_abort_usage();
}
break;
@ -468,8 +402,13 @@ int main(int argc, char *argv[])
flash = NULL;
}
if (prog == PROGRAMMER_INVALID)
prog = default_programmer;
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;
}
/* FIXME: Delay calibration should happen in programmer code. */
myusec_calibrate_delay();