summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README7
-rw-r--r--flashrom.819
-rw-r--r--flashrom.c17
-rw-r--r--nic3com.c6
4 files changed, 29 insertions, 20 deletions
diff --git a/README b/README
index d72f225..9db8d4b 100644
--- a/README
+++ b/README
@@ -3,7 +3,10 @@ flashrom README
-------------------------------------------------------------------------------
flashrom is a utility for reading, writing, verifying and erasing flash ROM
-chips. It's often used to flash BIOS/coreboot/firmware images.
+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 flash chips.
It supports a wide range of DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, and
TSOP40 chips, which use various protocols such as LPC, FWH, parallel flash,
@@ -80,7 +83,7 @@ Supported Flash Chips / Chipsets / Mainboards
---------------------------------------------
Please check the output of 'flashrom -L' for the list of supported
-flash chips, chipsets/southbridges, and mainboards.
+flash chips, chipsets/southbridges, mainboards, and flash programmers.
See also http://coreboot.org/Flashrom for more details.
diff --git a/flashrom.8 b/flashrom.8
index bd0f6cc..98f8bdd 100644
--- a/flashrom.8
+++ b/flashrom.8
@@ -132,11 +132,18 @@ Specify the programmer device. Currently supported are:
.sp
.BR "* internal" " (default, for in-system flashing in the mainboard)"
.sp
+.BR "* dummy" " (just prints all operations and accesses)"
+.sp
.BR "* nic3com" " (for flash ROMs on 3COM network cards)"
.sp
-If you have multiple supported NICs in your system, you must use
-.B "flashrom -p nic3com=bb:dd.f"
-to explicitly select one of them, where
+.BR "* satasii" " (for flash ROMs on Silicon Image SATA/IDE controllers)"
+.sp
+If you have multiple supported PCI cards which can program flash chips
+(NICs, SATA/IDE controllers, etc.) in your system, you must use the
+.B "flashrom -p xxxx=bb:dd.f"
+syntax to explicitly select one of them, where
+.B xxxx
+is the name of the programmer
.B bb
is the PCI bus number,
.B dd
@@ -147,9 +154,9 @@ is the PCI function number of the desired NIC.
Example:
.B "flashrom -p nic3com=05:04.0"
.sp
-.BR "* satasii" " (for flash ROMs on Silicon Image SATA/IDE controller cards)"
-.sp
-.BR "* dummy" " (just prints all operations and accesses)"
+Currently the following programmers support this mechanism:
+.BR nic3com ,
+.BR satasii .
.TP
.B "\-h, \-\-help"
Show a help text and exit.
diff --git a/flashrom.c b/flashrom.c
index 673c288..167a5b1 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 2000 Silicon Integrated System Corporation
* Copyright (C) 2004 Tyan Corp <yhlu@tyan.com>
- * Copyright (C) 2005-2008 coresystems GmbH
+ * Copyright (C) 2005-2008 coresystems GmbH
* Copyright (C) 2008,2009 Carl-Daniel Hailfinger
*
* This program is free software; you can redistribute it and/or modify
@@ -367,13 +367,15 @@ void print_supported_chips(void)
void usage(const char *name)
{
- printf("usage: %s [-rwvEVfLhR] [-c chipname] [-s exclude_start]\n",
+ 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]",
name);
- printf(" [-e exclude_end] [-m [vendor:]part] [-l file.layout] [-i imagename] [file]\n");
- printf("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 "
+
+ 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
(" -r | --read: read flash and save into file\n"
" -w | --write: write file into flash\n"
@@ -389,9 +391,10 @@ void usage(const char *name)
" -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"
+ " (internal, dummy, nic3com, satasii)\n"
" -h | --help: print this help text\n"
" -R | --version: print the version (release)\n"
- "\n" " If no file is specified, then all that happens"
+ "\nIf no file is specified, then all that happens"
" is that flash info is dumped.\n\n");
exit(1);
}
diff --git a/nic3com.c b/nic3com.c
index 023ec35..c6341ed 100644
--- a/nic3com.c
+++ b/nic3com.c
@@ -110,10 +110,6 @@ void nic3com_chip_writeb(uint8_t val, chipaddr addr)
uint8_t nic3com_chip_readb(const chipaddr addr)
{
- uint8_t val;
-
OUTL((uint32_t)addr, io_base_addr + BIOS_ROM_ADDR);
- val = INB(io_base_addr + BIOS_ROM_DATA);
-
- return val;
+ return INB(io_base_addr + BIOS_ROM_DATA);
}
OpenPOWER on IntegriCloud