1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 07:02:34 +02:00

Refine -L output to include all programmer modules

Flashrom -L output did not contain a list of programmers nor were
all programmers listed. Fix it and mention at least the name of each
programmer. Wiki output is unchanged, and will need separate fixups.

Corresponding to flashrom svn r1199.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
This commit is contained in:
Carl-Daniel Hailfinger 2010-10-06 23:48:34 +00:00
parent f992c19fca
commit a73fb4983d
7 changed files with 112 additions and 56 deletions

View File

@ -30,7 +30,7 @@
#define PCI_VENDOR_ID_HPT 0x1103
struct pcidev_status ata_hpt[] = {
const struct pcidev_status ata_hpt[] = {
{0x1103, 0x0004, NT, "Highpoint", "HPT366/368/370/370A/372/372N"},
{0x1103, 0x0005, NT, "Highpoint", "HPT372A/372N"},
{0x1103, 0x0006, NT, "Highpoint", "HPT302/302N"},

View File

@ -33,11 +33,6 @@
static void cli_classic_usage(const char *name)
{
const char *pname;
int pnamelen;
int remaining = 0;
enum programmer p;
printf("Usage: flashrom [-n] [-V] [-f] [-h|-R|-L|"
#if CONFIG_PRINT_WIKI == 1
"-z|"
@ -83,32 +78,9 @@ static void cli_classic_usage(const char *name)
"in wiki syntax\n"
#endif
" -p | --programmer <name>[:<param>] specify the programmer "
"device");
for (p = 0; p < PROGRAMMER_INVALID; p++) {
pname = programmer_table[p].name;
pnamelen = strlen(pname);
if (remaining - pnamelen - 2 < 0) {
printf("\n ");
remaining = 43;
} else {
printf(" ");
remaining--;
}
if (p == 0) {
printf("(");
remaining--;
}
printf("%s", pname);
remaining -= pnamelen;
if (p < PROGRAMMER_INVALID - 1) {
printf(",");
remaining--;
} else {
printf(")\n");
}
}
"device\n");
list_programmers_linebreak(37, 80, 1);
printf("\nYou can specify one of -h, -R, -L, "
#if CONFIG_PRINT_WIKI == 1
"-z, "

View File

@ -200,6 +200,7 @@ int need_erase(uint8_t *have, uint8_t *want, int len, enum write_granularity gra
char *strcat_realloc(char *dest, const char *src);
void print_version(void);
void print_banner(void);
void list_programmers_linebreak(int startcol, int cols, int paren);
int selfcheck(void);
int doit(struct flashchip *flash, int force, char *filename, int read_it, int write_it, int erase_it, int verify_it);

View File

@ -1332,6 +1332,47 @@ void list_programmers(char *delim)
msg_ginfo("\n");
}
void list_programmers_linebreak(int startcol, int cols, int paren)
{
const char *pname;
int pnamelen;
int remaining = 0;
int firstline = 1;
enum programmer p;
int i;
for (p = 0; p < PROGRAMMER_INVALID; p++) {
pname = programmer_table[p].name;
pnamelen = strlen(pname);
if (remaining - pnamelen - 2 < 0) {
if (firstline)
firstline = 0;
else
printf("\n");
for (i = 0; i < startcol; i++)
printf(" ");
remaining = cols - startcol;
} else {
printf(" ");
remaining--;
}
if (paren && (p == 0)) {
printf("(");
remaining--;
}
printf("%s", pname);
remaining -= pnamelen;
if (p < PROGRAMMER_INVALID - 1) {
printf(",");
remaining--;
} else {
if (paren)
printf(")");
printf("\n");
}
}
}
void print_sysinfo(void)
{
#if HAVE_UTSNAME == 1

View File

@ -346,6 +346,7 @@ void print_supported_usbdevs(const struct usbdev_status *devs)
{
int i;
msg_pinfo("USB devices:\n");
for (i = 0; devs[i].vendor_name != NULL; i++) {
msg_pinfo("%s %s [%04x:%04x]%s\n", devs[i].vendor_name,
devs[i].device_name, devs[i].vendor_id,

View File

@ -132,6 +132,7 @@ void print_supported_pcidevs(const struct pcidev_status *devs)
{
int i;
msg_pinfo("PCI devices:\n");
for (i = 0; devs[i].vendor_name != NULL; i++) {
msg_pinfo("%s %s [%02x:%02x]%s\n", devs[i].vendor_name,
devs[i].device_name, devs[i].vendor_id,

90
print.c
View File

@ -223,49 +223,89 @@ static void print_supported_boards_helper(const struct board_info *boards,
void print_supported(void)
{
print_supported_chips();
print_supported_chips();
printf("\nSupported programmers:\n");
list_programmers_linebreak(0, 80, 0);
#if CONFIG_INTERNAL == 1
print_supported_chipsets();
print_supported_boards_helper(boards_known, "boards");
print_supported_boards_helper(laptops_known, "laptops");
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_INTERNAL].name);
print_supported_chipsets();
print_supported_boards_helper(boards_known, "boards");
print_supported_boards_helper(laptops_known, "laptops");
#endif
#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_NICNATSEMI+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT >= 1
printf("\nSupported PCI devices flashrom can use "
"as programmer:\n\n");
#if CONFIG_DUMMY == 1
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_DUMMY].name);
/* FIXME */
#endif
#if CONFIG_NIC3COM == 1
print_supported_pcidevs(nics_3com);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_NIC3COM].name);
print_supported_pcidevs(nics_3com);
#endif
#if CONFIG_NICREALTEK == 1
print_supported_pcidevs(nics_realtek);
print_supported_pcidevs(nics_realteksmc1211);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_NICREALTEK].name);
print_supported_pcidevs(nics_realtek);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_NICREALTEK2].name);
print_supported_pcidevs(nics_realteksmc1211);
#endif
#if CONFIG_NICNATSEMI == 1
print_supported_pcidevs(nics_natsemi);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_NICNATSEMI].name);
print_supported_pcidevs(nics_natsemi);
#endif
#if CONFIG_GFXNVIDIA == 1
print_supported_pcidevs(gfx_nvidia);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_GFXNVIDIA].name);
print_supported_pcidevs(gfx_nvidia);
#endif
#if CONFIG_DRKAISER == 1
print_supported_pcidevs(drkaiser_pcidev);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_DRKAISER].name);
print_supported_pcidevs(drkaiser_pcidev);
#endif
#if CONFIG_SATASII == 1
print_supported_pcidevs(satas_sii);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_SATASII].name);
print_supported_pcidevs(satas_sii);
#endif
#if CONFIG_ATAHPT == 1
print_supported_pcidevs(ata_hpt);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_ATAHPT].name);
print_supported_pcidevs(ata_hpt);
#endif
#if CONFIG_FT2232_SPI == 1
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_FT2232_SPI].name);
print_supported_usbdevs(devs_ft2232spi);
#endif
#if CONFIG_SERPROG == 1
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_SERPROG].name);
/* FIXME */
#endif
#if CONFIG_BUSPIRATE_SPI == 1
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_BUSPIRATE_SPI].name);
/* FIXME */
#endif
#if CONFIG_DEDIPROG == 1
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_DEDIPROG].name);
/* FIXME */
#endif
#if CONFIG_RAYER_SPI == 1
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_RAYER_SPI].name);
/* FIXME */
#endif
#if CONFIG_NICINTEL_SPI == 1
print_supported_pcidevs(nics_intel_spi);
#endif
#if CONFIG_FT2232_SPI+CONFIG_DEDIPROG >= 1
printf("\nSupported USB devices flashrom can use "
"as programmer:\n\n");
#endif
#if CONFIG_FT2232_SPI == 1
print_supported_usbdevs(devs_ft2232spi);
printf("\nSupported devices for the %s programmer:\n",
programmer_table[PROGRAMMER_NICINTEL_SPI].name);
print_supported_pcidevs(nics_intel_spi);
#endif
}