A bunch of output beautifications and improvements, as well as doc fixes
- Update manpage, we now report supported boards via -L.
- Add some missing escaping for '-' characters in the manpage.
Corresponding to flashrom svn r543.
- Shorten some of the really long device names, so that -L output looks
nicer.
- Display a "table header" for all entries/columns in -L output.
- Make -L output tabular for all lists for better readability.
- Do not print "unknown XXXX SPI chip" entries in -L output.
- And random other cosmetics...
Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>
diff --git a/board_enable.c b/board_enable.c
index ffc43ed..1819080 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -822,7 +822,9 @@
int i, j;
struct board_pciid_enable *b = board_pciid_enables;
- printf("\nSupported boards which need write-enable code:\n\n");
+ printf("\nSupported boards which need write-enable code:\n\nVendor: "
+ " Board: Required option:\n\n");
+
for (i = 0; b[i].vendor_name != NULL; i++) {
printf("%s", b[i].vendor_name);
for (j = 0; j < 25 - strlen(b[i].vendor_name); j++)
@@ -831,9 +833,9 @@
for (j = 0; j < 25 - strlen(b[i].board_name); j++)
printf(" ");
if (b[i].lb_vendor != NULL)
- printf("(-m %s:%s)\n", b[i].lb_vendor, b[i].lb_part);
+ printf("-m %s:%s\n", b[i].lb_vendor, b[i].lb_part);
else
- printf("(autodetected)\n");
+ printf("(none, board is autodetected)\n");
}
printf("\nSupported boards which don't need write-enable code:\n\n");
diff --git a/chipset_enable.c b/chipset_enable.c
index 15e5df4..3cac2c8 100644
--- a/chipset_enable.c
+++ b/chipset_enable.c
@@ -26,6 +26,7 @@
#define _LARGEFILE64_SOURCE
#include <stdlib.h>
+#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
@@ -1011,16 +1012,21 @@
void print_supported_chipsets(void)
{
- int i;
+ int i, j;
+ const struct penable *c = chipset_enables;
- printf("\nSupported chipsets:\n\n");
+ printf("\nSupported chipsets:\n\nVendor: Chipset:"
+ " PCI IDs:\n\n");
- for (i = 0; chipset_enables[i].vendor_name != NULL; i++) {
- printf("%s %s [%04x:%04x]%s\n", chipset_enables[i].vendor_name,
- chipset_enables[i].device_name,
- chipset_enables[i].vendor_id,
- chipset_enables[i].device_id,
- (chipset_enables[i].status == OK) ? "" : " (untested)");
+ for (i = 0; c[i].vendor_name != NULL; i++) {
+ printf("%s", c[i].vendor_name);
+ for (j = 0; j < 25 - strlen(c[i].vendor_name); j++)
+ printf(" ");
+ printf("%s", c[i].device_name);
+ for (j = 0; j < 25 - strlen(c[i].device_name); j++)
+ printf(" ");
+ printf("%04x:%04x%s\n", c[i].vendor_id, c[i].device_id,
+ (c[i].status == OK) ? "" : " (untested)");
}
}
diff --git a/flashrom.8 b/flashrom.8
index 98f8bdd..193fc28 100644
--- a/flashrom.8
+++ b/flashrom.8
@@ -1,4 +1,4 @@
-.TH FLASHROM 8 "May 14, 2009"
+.TH FLASHROM 8 "May 21, 2009"
.SH NAME
flashrom \- detect, read, write, verify and erase flash chips
.SH SYNOPSIS
@@ -7,7 +7,7 @@
[\fB\-l\fR file] [\fB\-i\fR image] [\fB\-p\fR programmer] [file]
.SH DESCRIPTION
.B flashrom
-is a utility for detecting, reading, writing, verifying and erasing flash ROM
+is a utility for detecting, reading, writing, verifying and erasing flash
chips. It's often used to flash BIOS/EFI/coreboot/firmware images in-system
using a supported mainboard, but it also supports flashing of network cards
(NICs), SATA controller cards, and other external devices which can program
@@ -23,8 +23,7 @@
.SH OPTIONS
Please note that the command line interface for flashrom will change before
flashrom 1.0. Do not use flashrom in scripts or other automated tools without
-checking that your flashrom version won't interpret them in a totally different
-way.
+checking that your flashrom version won't interpret options in a different way.
.PP
If no file is specified, then all that happens
is that flash info is dumped and the flash chip is set to writable.
@@ -77,7 +76,7 @@
.sp
Currently overlapping sections are not supported.
.sp
-ROM layouts should replace the -s and -e option since they are more
+ROM layouts should replace the \-s and \-e option since they are more
flexible and they should lead to a ROM update file format with the
ROM layout and the ROM image in one file (cpio, zip or something?).
.TP
@@ -89,11 +88,11 @@
.sp
flashrom reads the coreboot table to determine the current mainboard. If no
coreboot table could be read or if you want to override these values, you can
-specify -m, e.g.:
+specify \-m, e.g.:
.sp
.B " flashrom -w --mainboard AGAMI:ARUMA agami_aruma.rom"
.sp
-See the 'Supported mainboards' section in the output of 'flashrom -L' for
+See the 'Supported mainboards' section in the output of 'flashrom \-L' for
a list of boards which require the specification of the board name, if no
coreboot table is found.
.TP
@@ -114,18 +113,14 @@
from flash layout.
.TP
.B "\-L, \-\-list\-supported"
-List the ROM chips, chipsets, and mainboards supported by flashrom.
-The list of mainboards consists of those boards which need a special
-ROM write-enable function for flashrom to work.
+List the flash chips, chipsets, mainboards, and PCI card "programmers"
+supported by flashrom.
.sp
-There are many other boards which will work out of the box, without such
-special support in flashrom. Some of the known-good/known-bad and tested ones
-are listed at
-.BR http://coreboot.org/Flashrom#Supported_mainboards ,
-but the list is not exhaustive, of course.
-.sp
-Please let us know if you can verify other boards to work or not work out
-of the box.
+There are many unlisted boards which will work out of the box, without
+special support in flashrom. Please let us know if you can verify that
+other boards work or do not work out of the box. For verification you have
+to test an ERASE and/or WRITE operation, so make sure you only do that
+if you have proper means to recover from failure!
.TP
.B "\-p, \-\-programmer <name>"
Specify the programmer device. Currently supported are:
diff --git a/flashrom.c b/flashrom.c
index e002ca2..c47c6fd 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -313,7 +313,7 @@
void print_supported_chips(void)
{
- int okcol = 0, pos = 0;
+ int okcol = 0, pos = 0, i;
struct flashchip *f;
for (f = flashchips; f->name != NULL; f++) {
@@ -323,7 +323,8 @@
}
okcol = (okcol + 7) & ~7;
- POS_PRINT("Supported flash chips:");
+ printf("Supported flash chips:\n\n");
+ POS_PRINT("Vendor: Device:");
while (pos < okcol) {
printf("\t");
pos += 8 - (pos % 8);
@@ -331,8 +332,16 @@
printf("Tested OK operations:\tKnown BAD operations:\n\n");
for (f = flashchips; f->name != NULL; f++) {
- printf("%s %s", f->vendor, f->name);
- pos = strlen(f->vendor) + 1 + strlen(f->name);
+ /* Don't print "unknown XXXX SPI chip" entries. */
+ if (!strncmp(f->name, "unknown", 7))
+ continue;
+
+ printf("%s", f->vendor);
+ for (i = 0; i < 10 - strlen(f->vendor); i++)
+ printf(" ");
+ printf("%s", f->name);
+
+ pos = 10 + strlen(f->name);
while (pos < okcol) {
printf("\t");
pos += 8 - (pos % 8);
@@ -368,13 +377,13 @@
void usage(const char *name)
{
printf("usage: %s [-EVfLhR] [-r file] [-w file] [-v file] [-c chipname] [-s addr]\n"
- " [-e addr] [-m [vendor:]part] [-l file] [-i image] [-p programmer] [file]",
+ " [-e addr] [-m [vendor:]part] [-l file] [-i image] [-p programmer] [file]\n\n",
name);
- printf("\n\nPlease note that the command line interface for flashrom will "
- "change before flashrom 1.0.\nDo not use flashrom in scripts or "
- "other automated tools without checking that your flashrom\n"
- "version won't interpret them in a totally different way.\n\n");
+ printf("Please note that the command line interface for flashrom will "
+ "change before\nflashrom 1.0. Do not use flashrom in scripts "
+ "or other automated tools without\nchecking that your flashrom"
+ " version won't interpret options in a different way.\n\n");
printf
(" -r | --read: read flash and save into file\n"
@@ -387,7 +396,7 @@
" -e | --eend <addr>: exclude end postion\n"
" -m | --mainboard <[vendor:]part>: override mainboard settings\n"
" -f | --force: force write without checking image\n"
- " -l | --layout <file.layout>: read rom layout from file\n"
+ " -l | --layout <file.layout>: read ROM layout from file\n"
" -i | --image <name>: only flash image name from flash layout\n"
" -L | --list-supported: print supported devices\n"
" -p | --programmer <name>: specify the programmer device\n"
diff --git a/satasii.c b/satasii.c
index 217ac71..8919d06 100644
--- a/satasii.c
+++ b/satasii.c
@@ -34,11 +34,11 @@
uint16_t id;
struct pcidev_status satas_sii[] = {
- {0x1095, 0x0680, PCI_OK, "Silicon Image", "PCI0680 Ultra ATA-133 Host Controller"},
- {0x1095, 0x3114, PCI_OK, "Silicon Image", "SiI 3114 [SATALink/SATARaid] Serial ATA Controller"},
- {0x1095, 0x3124, PCI_NT, "Silicon Image", "SiI 3124 PCI-X Serial ATA Controller"},
- {0x1095, 0x3132, PCI_OK, "Silicon Image", "SiI 3132 Serial ATA Raid II Controller"},
- {0x1095, 0x3512, PCI_NT, "Silicon Image", "SiI 3512 [SATALink/SATARaid] Serial ATA Controller"},
+ {0x1095, 0x0680, PCI_OK, "Silicon Image", "PCI0680 Ultra ATA-133 Host Ctrl"},
+ {0x1095, 0x3114, PCI_OK, "Silicon Image", "SiI 3114 [SATALink/SATARaid] SATA Ctrl"},
+ {0x1095, 0x3124, PCI_NT, "Silicon Image", "SiI 3124 PCI-X SATA Ctrl"},
+ {0x1095, 0x3132, PCI_OK, "Silicon Image", "SiI 3132 SATA Raid II Ctrl"},
+ {0x1095, 0x3512, PCI_NT, "Silicon Image", "SiI 3512 [SATALink/SATARaid] SATA Ctrl"},
{},
};