- Timestamp:
- 09/08/11 02:00:29 (9 months ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
cli_classic.c (modified) (6 diffs)
-
flashrom.c (modified) (2 diffs)
-
it87spi.c (modified) (1 diff)
-
programmer.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/cli_classic.c
r1417 r1433 32 32 #include "programmer.h" 33 33 34 #if CONFIG_INTERNAL == 1 35 static enum programmer default_programmer = PROGRAMMER_INTERNAL; 36 #elif CONFIG_DUMMY == 1 37 static enum programmer default_programmer = PROGRAMMER_DUMMY; 38 #else 39 /* If neither internal nor dummy are selected, we must pick a sensible default. 40 * Since there is no reason to prefer a particular external programmer, we fail 41 * if more than one of them is selected. If only one is selected, it is clear 42 * that the user wants that one to become the default. 43 */ 44 #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 45 #error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all programmers except one. 46 #endif 47 static enum programmer default_programmer = 48 #if CONFIG_NIC3COM == 1 49 PROGRAMMER_NIC3COM 50 #endif 51 #if CONFIG_NICREALTEK == 1 52 PROGRAMMER_NICREALTEK 53 #endif 54 #if CONFIG_NICNATSEMI == 1 55 PROGRAMMER_NICNATSEMI 56 #endif 57 #if CONFIG_GFXNVIDIA == 1 58 PROGRAMMER_GFXNVIDIA 59 #endif 60 #if CONFIG_DRKAISER == 1 61 PROGRAMMER_DRKAISER 62 #endif 63 #if CONFIG_SATASII == 1 64 PROGRAMMER_SATASII 65 #endif 66 #if CONFIG_ATAHPT == 1 67 PROGRAMMER_ATAHPT 68 #endif 69 #if CONFIG_FT2232_SPI == 1 70 PROGRAMMER_FT2232_SPI 71 #endif 72 #if CONFIG_SERPROG == 1 73 PROGRAMMER_SERPROG 74 #endif 75 #if CONFIG_BUSPIRATE_SPI == 1 76 PROGRAMMER_BUSPIRATE_SPI 77 #endif 78 #if CONFIG_DEDIPROG == 1 79 PROGRAMMER_DEDIPROG 80 #endif 81 #if CONFIG_RAYER_SPI == 1 82 PROGRAMMER_RAYER_SPI 83 #endif 84 #if CONFIG_NICINTEL == 1 85 PROGRAMMER_NICINTEL 86 #endif 87 #if CONFIG_NICINTEL_SPI == 1 88 PROGRAMMER_NICINTEL_SPI 89 #endif 90 #if CONFIG_OGP_SPI == 1 91 PROGRAMMER_OGP_SPI 92 #endif 93 #if CONFIG_SATAMV == 1 94 PROGRAMMER_SATAMV 95 #endif 96 #if CONFIG_LINUX_SPI == 1 97 PROGRAMMER_LINUX_SPI 98 #endif 99 ; 100 #endif 101 34 102 static void cli_classic_usage(const char *name) 35 103 { … … 112 180 int read_it = 0, write_it = 0, erase_it = 0, verify_it = 0; 113 181 int dont_verify_it = 0, list_supported = 0, operation_specified = 0; 182 enum programmer prog = PROGRAMMER_INVALID; 114 183 int ret = 0; 115 184 … … 259 328 break; 260 329 case 'p': 261 for (programmer = 0; programmer < PROGRAMMER_INVALID; programmer++) { 262 name = programmer_table[programmer].name; 330 if (prog != PROGRAMMER_INVALID) { 331 fprintf(stderr, "Error: --programmer specified " 332 "more than once. You can separate " 333 "multiple\nparameters for a programmer " 334 "with \",\". Please see the man page " 335 "for details.\n"); 336 cli_classic_abort_usage(); 337 } 338 for (prog = 0; prog < PROGRAMMER_INVALID; prog++) { 339 name = programmer_table[prog].name; 263 340 namelen = strlen(name); 264 341 if (strncmp(optarg, name, namelen) == 0) { … … 284 361 } 285 362 } 286 if (prog rammer== PROGRAMMER_INVALID) {363 if (prog == PROGRAMMER_INVALID) { 287 364 fprintf(stderr, "Error: Unknown programmer " 288 365 "%s.\n", optarg); … … 330 407 print_supported_wiki(); 331 408 exit(0); 332 }333 #endif334 335 #if CONFIG_INTERNAL == 1336 if ((programmer != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) {337 fprintf(stderr, "Error: --mainboard requires the internal "338 "programmer. Aborting.\n");339 cli_classic_abort_usage();340 409 } 341 410 #endif … … 356 425 } 357 426 427 if (prog == PROGRAMMER_INVALID) 428 prog = default_programmer; 429 430 #if CONFIG_INTERNAL == 1 431 if ((prog != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) { 432 fprintf(stderr, "Error: --mainboard requires the internal " 433 "programmer. Aborting.\n"); 434 cli_classic_abort_usage(); 435 } 436 #endif 437 358 438 /* FIXME: Delay calibration should happen in programmer code. */ 359 439 myusec_calibrate_delay(); 360 440 361 if (programmer_init(p param)) {441 if (programmer_init(prog, pparam)) { 362 442 fprintf(stderr, "Error: Programmer initialization failed.\n"); 363 443 ret = 1; -
trunk/flashrom.c
r1427 r1433 43 43 int verbose = 0; 44 44 45 #if CONFIG_INTERNAL == 1 46 enum programmer programmer = PROGRAMMER_INTERNAL; 47 #elif CONFIG_DUMMY == 1 48 enum programmer programmer = PROGRAMMER_DUMMY; 49 #else 50 /* If neither internal nor dummy are selected, we must pick a sensible default. 51 * Since there is no reason to prefer a particular external programmer, we fail 52 * if more than one of them is selected. If only one is selected, it is clear 53 * that the user wants that one to become the default. 54 */ 55 #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 56 #error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all programmers except one. 57 #endif 58 enum programmer programmer = 59 #if CONFIG_NIC3COM == 1 60 PROGRAMMER_NIC3COM 61 #endif 62 #if CONFIG_NICREALTEK == 1 63 PROGRAMMER_NICREALTEK 64 #endif 65 #if CONFIG_NICNATSEMI == 1 66 PROGRAMMER_NICNATSEMI 67 #endif 68 #if CONFIG_GFXNVIDIA == 1 69 PROGRAMMER_GFXNVIDIA 70 #endif 71 #if CONFIG_DRKAISER == 1 72 PROGRAMMER_DRKAISER 73 #endif 74 #if CONFIG_SATASII == 1 75 PROGRAMMER_SATASII 76 #endif 77 #if CONFIG_ATAHPT == 1 78 PROGRAMMER_ATAHPT 79 #endif 80 #if CONFIG_FT2232_SPI == 1 81 PROGRAMMER_FT2232_SPI 82 #endif 83 #if CONFIG_SERPROG == 1 84 PROGRAMMER_SERPROG 85 #endif 86 #if CONFIG_BUSPIRATE_SPI == 1 87 PROGRAMMER_BUSPIRATE_SPI 88 #endif 89 #if CONFIG_DEDIPROG == 1 90 PROGRAMMER_DEDIPROG 91 #endif 92 #if CONFIG_RAYER_SPI == 1 93 PROGRAMMER_RAYER_SPI 94 #endif 95 #if CONFIG_NICINTEL == 1 96 PROGRAMMER_NICINTEL 97 #endif 98 #if CONFIG_NICINTEL_SPI == 1 99 PROGRAMMER_NICINTEL_SPI 100 #endif 101 #if CONFIG_OGP_SPI == 1 102 PROGRAMMER_OGP_SPI 103 #endif 104 #if CONFIG_SATAMV == 1 105 PROGRAMMER_SATAMV 106 #endif 107 #if CONFIG_LINUX_SPI == 1 108 PROGRAMMER_LINUX_SPI 109 #endif 110 ; 111 #endif 45 static enum programmer programmer = PROGRAMMER_INVALID; 112 46 113 47 static char *programmer_param = NULL; … … 516 450 } 517 451 518 int programmer_init( char *param)452 int programmer_init(enum programmer prog, char *param) 519 453 { 520 454 int ret; 455 456 if (prog >= PROGRAMMER_INVALID) { 457 msg_perr("Invalid programmer specified!\n"); 458 return -1; 459 } 460 programmer = prog; 521 461 /* Initialize all programmer specific data. */ 522 462 /* Default to unlimited decode sizes. */ -
trunk/it87spi.c
r1413 r1433 130 130 /* NOLDN, reg 0x24, mask out lowest bit (suspend) */ 131 131 tmp = sio_read(port, 0x24) & 0xFE; 132 /* If IT87SPI was not explicitly selected, we want to check 133 * quickly if LPC->SPI translation is active. 134 */ 135 if ((programmer == PROGRAMMER_INTERNAL) && !(tmp & (0x0E))) { 132 /* Check if LPC->SPI translation is active. */ 133 if (!(tmp & 0x0e)) { 136 134 msg_pdbg("No IT87* serial flash segment enabled.\n"); 137 135 exit_conf_mode_ite(port); -
trunk/programmer.h
r1427 r1433 86 86 }; 87 87 88 extern enum programmer programmer;89 90 88 struct programmer_entry { 91 89 const char *vendor; … … 111 109 extern const struct programmer_entry programmer_table[]; 112 110 113 int programmer_init( char *param);111 int programmer_init(enum programmer prog, char *param); 114 112 int programmer_shutdown(void); 115 113
Note: See TracChangeset
for help on using the changeset viewer.
