mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +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 */
|
/* print.c */
|
||||||
char *flashbuses_to_text(enum chipbustype bustype);
|
char *flashbuses_to_text(enum chipbustype bustype);
|
||||||
void print_supported_chips(void);
|
void print_supported(void);
|
||||||
void print_supported_chipsets(void);
|
|
||||||
void print_supported_boards(void);
|
|
||||||
void print_supported_pcidevs(struct pcidev_status *devs);
|
void print_supported_pcidevs(struct pcidev_status *devs);
|
||||||
void print_wiki_tables(void);
|
void print_supported_wiki(void);
|
||||||
|
|
||||||
/* board_enable.c */
|
/* board_enable.c */
|
||||||
void w836xx_ext_enter(uint16_t port);
|
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;
|
write_it = 1;
|
||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
|
//FIXME: gracefully handle superfluous -v
|
||||||
if (++operation_specified > 1) {
|
if (++operation_specified > 1) {
|
||||||
fprintf(stderr, "More than one operation "
|
fprintf(stderr, "More than one operation "
|
||||||
"specified. Aborting.\n");
|
"specified. Aborting.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
if (dont_verify_it) {
|
||||||
|
fprintf(stderr, "--verify and --noverify are"
|
||||||
|
"mutually exclusive. Aborting.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
verify_it = 1;
|
verify_it = 1;
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
|
if (verify_it) {
|
||||||
|
fprintf(stderr, "--verify and --noverify are"
|
||||||
|
"mutually exclusive. Aborting.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
dont_verify_it = 1;
|
dont_verify_it = 1;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
@ -896,29 +907,13 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (list_supported) {
|
if (list_supported) {
|
||||||
print_supported_chips();
|
print_supported();
|
||||||
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
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if PRINT_WIKI_SUPPORT == 1
|
#if PRINT_WIKI_SUPPORT == 1
|
||||||
if (list_supported_wiki) {
|
if (list_supported_wiki) {
|
||||||
print_wiki_tables();
|
print_supported_wiki();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -930,6 +925,11 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (optind < argc)
|
if (optind < argc)
|
||||||
filename = argv[optind++];
|
filename = argv[optind++];
|
||||||
|
|
||||||
|
if (optind < argc) {
|
||||||
|
printf("Error: Extra parameter found.\n");
|
||||||
|
usage(argv[0]);
|
||||||
|
}
|
||||||
|
|
||||||
if (programmer_init()) {
|
if (programmer_init()) {
|
||||||
fprintf(stderr, "Error: Programmer initialization failed.\n");
|
fprintf(stderr, "Error: Programmer initialization failed.\n");
|
||||||
@ -1146,7 +1146,7 @@ int main(int argc, char *argv[])
|
|||||||
if (write_it)
|
if (write_it)
|
||||||
programmer_delay(1000*1000);
|
programmer_delay(1000*1000);
|
||||||
ret = verify_flash(flash, buf);
|
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.
|
* might have an emergency situation.
|
||||||
*/
|
*/
|
||||||
if (ret && write_it)
|
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");
|
"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. */
|
/* Please keep this list alphabetically ordered by vendor/board. */
|
||||||
const struct board_info boards_ok[] = {
|
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);
|
time_t t = time(NULL);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user