mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 15:12:36 +02:00
Refactor main loop in preparation of libflashrom
To prepare for libflashrom I wanted to make the main loop more readable and more correct and factor out stuff which can be useful in libflashrom. - Factor out printing of supported devices to print.c. - Adjust name of wiki printing function to fit the pattern. - Abort if the user specified --verify and --noverify at the same time. - Check for extra parameters which don't fit commandline syntax. Corresponding to flashrom svn r766. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de>
This commit is contained in:
parent
6161ff1880
commit
f52920581d
6
flash.h
6
flash.h
@ -338,11 +338,9 @@ uint32_t pcidev_init(uint16_t vendor_id, uint32_t bar, struct pcidev_status *dev
|
||||
|
||||
/* print.c */
|
||||
char *flashbuses_to_text(enum chipbustype bustype);
|
||||
void print_supported_chips(void);
|
||||
void print_supported_chipsets(void);
|
||||
void print_supported_boards(void);
|
||||
void print_supported(void);
|
||||
void print_supported_pcidevs(struct pcidev_status *devs);
|
||||
void print_wiki_tables(void);
|
||||
void print_supported_wiki(void);
|
||||
|
||||
/* board_enable.c */
|
||||
void w836xx_ext_enter(uint16_t port);
|
||||
|
38
flashrom.c
38
flashrom.c
@ -801,14 +801,25 @@ int main(int argc, char *argv[])
|
||||
write_it = 1;
|
||||
break;
|
||||
case 'v':
|
||||
//FIXME: gracefully handle superfluous -v
|
||||
if (++operation_specified > 1) {
|
||||
fprintf(stderr, "More than one operation "
|
||||
"specified. Aborting.\n");
|
||||
exit(1);
|
||||
}
|
||||
if (dont_verify_it) {
|
||||
fprintf(stderr, "--verify and --noverify are"
|
||||
"mutually exclusive. Aborting.\n");
|
||||
exit(1);
|
||||
}
|
||||
verify_it = 1;
|
||||
break;
|
||||
case 'n':
|
||||
if (verify_it) {
|
||||
fprintf(stderr, "--verify and --noverify are"
|
||||
"mutually exclusive. Aborting.\n");
|
||||
exit(1);
|
||||
}
|
||||
dont_verify_it = 1;
|
||||
break;
|
||||
case 'c':
|
||||
@ -896,29 +907,13 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (list_supported) {
|
||||
print_supported_chips();
|
||||
print_supported_chipsets();
|
||||
print_supported_boards();
|
||||
printf("\nSupported PCI devices flashrom can use "
|
||||
"as programmer:\n\n");
|
||||
#if NIC3COM_SUPPORT == 1
|
||||
print_supported_pcidevs(nics_3com);
|
||||
#endif
|
||||
#if GFXNVIDIA_SUPPORT == 1
|
||||
print_supported_pcidevs(gfx_nvidia);
|
||||
#endif
|
||||
#if DRKAISER_SUPPORT == 1
|
||||
print_supported_pcidevs(drkaiser_pcidev);
|
||||
#endif
|
||||
#if SATASII_SUPPORT == 1
|
||||
print_supported_pcidevs(satas_sii);
|
||||
#endif
|
||||
print_supported();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
#if PRINT_WIKI_SUPPORT == 1
|
||||
if (list_supported_wiki) {
|
||||
print_wiki_tables();
|
||||
print_supported_wiki();
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
@ -930,6 +925,11 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (optind < argc)
|
||||
filename = argv[optind++];
|
||||
|
||||
if (optind < argc) {
|
||||
printf("Error: Extra parameter found.\n");
|
||||
usage(argv[0]);
|
||||
}
|
||||
|
||||
if (programmer_init()) {
|
||||
fprintf(stderr, "Error: Programmer initialization failed.\n");
|
||||
@ -1146,7 +1146,7 @@ int main(int argc, char *argv[])
|
||||
if (write_it)
|
||||
programmer_delay(1000*1000);
|
||||
ret = verify_flash(flash, buf);
|
||||
/* If we tried to write, and now we don't properly verify, we
|
||||
/* If we tried to write, and verification now fails, we
|
||||
* might have an emergency situation.
|
||||
*/
|
||||
if (ret && write_it)
|
||||
|
21
print.c
21
print.c
@ -222,6 +222,27 @@ void print_supported_boards(void)
|
||||
"Laptops which have been verified to NOT work yet");
|
||||
}
|
||||
|
||||
void print_supported(void)
|
||||
{
|
||||
print_supported_chips();
|
||||
print_supported_chipsets();
|
||||
print_supported_boards();
|
||||
printf("\nSupported PCI devices flashrom can use "
|
||||
"as programmer:\n\n");
|
||||
#if NIC3COM_SUPPORT == 1
|
||||
print_supported_pcidevs(nics_3com);
|
||||
#endif
|
||||
#if GFXNVIDIA_SUPPORT == 1
|
||||
print_supported_pcidevs(gfx_nvidia);
|
||||
#endif
|
||||
#if DRKAISER_SUPPORT == 1
|
||||
print_supported_pcidevs(drkaiser_pcidev);
|
||||
#endif
|
||||
#if SATASII_SUPPORT == 1
|
||||
print_supported_pcidevs(satas_sii);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/* Please keep this list alphabetically ordered by vendor/board. */
|
||||
const struct board_info boards_ok[] = {
|
||||
|
@ -539,7 +539,7 @@ void print_supported_pcidevs_wiki(struct pcidev_status *devs)
|
||||
}
|
||||
}
|
||||
|
||||
void print_wiki_tables(void)
|
||||
void print_supported_wiki(void)
|
||||
{
|
||||
time_t t = time(NULL);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user