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

271 Commits

Author SHA1 Message Date
Carl-Daniel Hailfinger
ef58a9ce3f Use a common parameter variable for all programmers
This allows us to reduce #ifdef clauses a lot if we compile out some
programmers completely.

Corresponding to flashrom svn r679.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2009-08-12 13:32:56 +00:00
Carl-Daniel Hailfinger
415e513d90 Add fallback functions for programmer shutdown and memory mapping and fix FT2232 and IT87
FT2232 and IT87 programmers used functions of the dummy programmer
instead of fallback functions.

The dummy programmer is a "real" programmer with possible side effects
and its functions should not be abused by other programmers. Make
FT2232 and IT87 use official fallback functions instead. Create
fallback_shutdown(). Create fallback_chip_writeb(). Convert the
programmer #defines to an enum.

Corresponding to flashrom svn r678.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2009-08-12 11:39:29 +00:00
Stefan Reinauer
22ea8cd503 The project's new home is flashrom.org now
Change all occurences in the source code and documentation accordingly.

Corresponding to flashrom svn r669.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2009-07-30 13:32:26 +00:00
Carl-Daniel Hailfinger
0a3e5aeaf6 If writing failed, verifying is pointless
Abort instead.

Corresponding to flashrom svn r666.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Oliver Niesner <oli@rhce.servebbs.net>
2009-07-24 12:18:54 +00:00
Carl-Daniel Hailfinger
49b9cab392 Continue erase/write verification after the first error
The first error is printed in detail and all subsequent errors are
listed in statistics. This allows users to check if there was just one
error or if the failure was widespread.

Corresponding to flashrom svn r663.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2009-07-23 01:42:56 +00:00
Carl-Daniel Hailfinger
a80cfbc3d7 Eliminate version string duplication
Corresponding to flashrom svn r659.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2009-07-22 20:13:00 +00:00
Carl-Daniel Hailfinger
bb297f733d Add an optional flash port parameter for IT87* SPI controllers in standalone programmer mode
If the parameter is set, the IT87* SPI driver will set the I/O base
port of the IT87* SPI controller interface to the port specified in the
parameter. Usage: flashrom -p it87spi=port=0x820

Corresponding to flashrom svn r646.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-07-11 18:05:42 +00:00
Carl-Daniel Hailfinger
feea272228 ft2232_spi: Allow runtime selection of FT2232H vs. FT4232H and interface A vs
B.

Corresponding to flashrom svn r638.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Tested-by: Jakob Bornecrantz <wallbraker@gmail.com>
Acked-by: Jakob Bornecrantz <wallbraker@gmail.com>
2009-07-01 00:02:23 +00:00
Uwe Hermann
1432a60c85 Random minor flashrom fixes
- Properly escape '-' chars in manpage.
 
 - Fix typo in chipset_enable.c.

 - Drop useless 'return' in chip_readn().

 - Random other whitespace or cosmetic fixes.

Corresponding to flashrom svn r636.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-28 23:26:37 +00:00
Uwe Hermann
9899cadcd8 Print the bus type(s) of both chipset and chip in the flashrom output
Corresponding to flashrom svn r635.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-28 21:47:57 +00:00
Carl-Daniel Hailfinger
34cc6cc070 Handle programmer init errors and abort
If the programmer didn't initialize correctly, it is pointless to
continue.

Fix standalone IT87* SPI init to set flashbus to NONE if no IT87* SPI
communication is possible. Print the I/O port detected by the IT87* SPI
code.

Corresponding to flashrom svn r633.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ward Vandewege <ward@gnu.org>
2009-06-28 10:57:58 +00:00
Uwe Hermann
ea07f6245c Always verify write operations automatically
Should this be undesireable because of speed reasons, --noverify can be
used to suppress an auto-verify.

Corresponding to flashrom svn r631.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Harald Gutmann <harald.gutmann@gmx.net>
2009-06-24 17:31:08 +00:00
Carl-Daniel Hailfinger
23290664ed Use correct abstraction for verify_range()
The new abstraction can handle out-of-band chip communication protocols
as well. The old abstraction caused spurious false positives for erase
on SPI and spurious false negatives for verify on SPI.

Make verify_flash() use verify_range().

Tested by Uwe on SB600.

Corresponding to flashrom svn r629.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-24 08:20:45 +00:00
Carl-Daniel Hailfinger
5d1f41857b Remove duplicated [file] from usage help
A file is already specified directly in conjunction for -r/-w/-v.

Corresponding to flashrom svn r628.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-24 08:18:38 +00:00
Urja Rannikko
2291535b7b Initial commit of an external serial flasher protocol
Supports RS-232, USB serial converters (untested) and TCP streams.

All functionality is stubbed out to allow multiplatform compile testing
of the headers we use.
The real serial flasher protocol driver will be committed next.

Corresponding to flashrom svn r625.

Signed-off-by: Urja Rannikko <urjaman@gmail.com>
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-06-23 11:33:43 +00:00
Uwe Hermann
a2d05012e8 Various wiki output changes
- Move board_info_url struct to print.c, doesn't have to be global.

 - Simplify flashrom.c a bit by moving stuff to print.c.
   Eliminate two now-useless mini-functions in print.c.

 - Add a note that the wiki page contents are semi-automatically generated.

 - Mention date of last wiki page update as well as the flashrom revision
   that was used to generate the wiki output.

 - Also generate list of supported laptops in -z output now.

 - Add some more board URLs.

 - Add a boards_notes[] table to allow for arbitrary footnotes/comments for
   each board in the table. All notes will automatically be turned into
   wiki footnotes with correct numbers and will appear at the end of the
   respective table.

Corresponding to flashrom svn r615.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-20 01:21:38 +00:00
Carl-Daniel Hailfinger
49eb4dd704 Kill obsolete exclude range feature
It is ignored by almost every chip and does not work for external
flashers. Plus, it gives the user a false sense of security in some
corner cases.

Corresponding to flashrom svn r608.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-19 11:23:57 +00:00
Uwe Hermann
20a293fc68 Allow to print an auto-generated hardware support list in MediaWiki markup
Add a --list-supported-wiki / -z option which outputs the currently
supported flash chips (and their status, size, and type), chipsets (plus
status), mainboards (plus status), and external PCI devices usable as
programmer to stdout.

This allows for very easy pasting into the http://coreboot.org/flashrom
page, so we can keep that page up-to-date without much hassle.

The list of boards is mostly new (known good ones which don't need
write-enable code, and known-bad ones) and also lists URLs to the
vendor's mainboard pages.

Corresponding to flashrom svn r607.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-06-19 10:42:43 +00:00
Uwe Hermann
ba290d1ce3 Move all printing code to print.c
Drop no longer needed MAX macro, we have a max() function.

Corresponding to flashrom svn r601.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-17 12:07:12 +00:00
Uwe Hermann
4e587905ae List the size (in KB) and type of supported flash chips in 'flashrom -L'
Also, list how many chips/chipsets/boards we support in 'flashrom -L'.

Corresponding to flashrom svn r599.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-06-16 23:15:10 +00:00
Paul Fox
05dfbe67d6 This patch adds support for a new SPI programmer, based on the FT2232H/4232H chip from FTDI
FTDI support is autodetected during compilation.

Paul writes:
There are certainly possible improvements: The code has hard-coded
values for which interface of the ftdi chip to use (interface B was
chosen because libftdi seems to have trouble with A right now), what
clock rate use for the SPI interface (I've been running at 30Mhz, but
the patch sets it to 10Mhz), and possibly others. I think this means
that per-programmer options might be a good idea at some point.

Carl-Daniel writes:
There is one additional FIXME comment in the code, but AFAICS that
problem is not solvable with current libftdi.

Corresponding to flashrom svn r598.

Signed-off-by: Paul Fox <pgf@laptop.org>
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-16 21:08:06 +00:00
Carl-Daniel Hailfinger
cbf563cbde Support reads of arbitrary range
That means you can tell flashrom to read exactly bytes 12345-56789
(start 12345, length 44445) and it will not fetch a single byte more.

Uwe tested this on one LPC, one SPI, and one parallel flash board.

Corresponding to flashrom svn r596.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-16 08:55:44 +00:00
Carl-Daniel Hailfinger
30f7cb2f3c Flashrom only checks for very few chips if the erase worked
And even when it checks if the erase worked, the result of that check is
often ignored.

Convert all erase functions and actually check return codes
almost everywhere.
Check inside all erase_* routines if erase worked, not outside.
erase_sector_jedec and erase_block_jedec have changed prototypes to
enable erase checking.

Uwe successfully tested LPC on an CK804 box and SPI on some SB600 box.

Corresponding to flashrom svn r595.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Signed-off-by: Urja Rannikko <urjaman@gmail.com>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-15 17:23:36 +00:00
Carl-Daniel Hailfinger
0845464499 Split flashchips.h from flash.h
Flash.h not only contains function prototypes and general settings, it
also has a huge chunk of chip and vendor IDs in the middle.

Split them out into a separate flashchips.h and adjust #include wherever
needed.

Corresponding to flashrom svn r594.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Urja Rannikko <urjaman@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
2009-06-15 14:14:48 +00:00
Carl-Daniel Hailfinger
38a059d6ef Every SPI host controller implemented its own way to read flash chips
This was partly due to a design problem in the abstraction layer.

There should be exactly two different functions for reading SPI chips:
- memory mapped reads
- SPI command reads.

Each of them should be contained in a separate function, optionally
taking parameters where needed.

This patch solves the problems mentioned above, shortens the code and
makes the code logic a lot more obvious.

Since open-coding the min() function leads to errors, include it in this
patch as well.

Corresponding to flashrom svn r589.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
2009-06-13 12:04:03 +00:00
Carl-Daniel Hailfinger
01d6aba251 Flashrom does not honor argument ordering for operations
Not only does this violate the principle of least surprise, it also
caused one bug where -Ewv was specified and the flash ended up being
empty.

Support only one operation at a time. As a side benefit, this allows us
to clean up main() quite a bit.

Corresponding to flashrom svn r585.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-12 14:02:07 +00:00
Paul Fox
d51410c3ae Tell the user about the beginning and end of the write operation
Corresponding to flashrom svn r582.

Signed-off-by: Paul Fox <pgf@laptop.org>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-06-12 08:04:08 +00:00
Carl-Daniel Hailfinger
0bd2a2bdc1 Sometimes we want to read/write more than 4 bytes of chip content at once
Add chip_{read,write}n to the external flasher infrastructure which
read/write n bytes at once.

Fix a few places where the code used memcpy/memcmp although that is
strictly impossible with external flashers.
Place a FIXME in the layout.c code because usage is not totally clear
and needs to be fixed to support external flashers.

As a nice side benefit, we get a noticeable speedup for builtin flash
reading which is now a memcpy() of the full flash area instead of a
series of single-byte reads.

Corresponding to flashrom svn r579.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Urja Rannikko <urjaman@gmail.com>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-05 18:32:07 +00:00
Carl-Daniel Hailfinger
ca8bfc6c22 Add programmer-specific delay functions
Add external programmer delay functions so external programmers can
handle the delay on their own if needed.

Corresponding to flashrom svn r578.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Urja Rannikko <urjaman@gmail.com>
2009-06-05 17:48:08 +00:00
Stephan Guilloux
21dd55b49e Use read_flash() when flash chip probe is forced
Corresponding to flashrom svn r563.

Signed-off-by: Stephan Guilloux <stephan.guilloux@free.fr>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-06-01 22:07:52 +00:00
Stephan Guilloux
5a8b24478f Add a missing free() in read_flash()
Corresponding to flashrom svn r562.

Signed-off-by: Stephan Guilloux <stephan.guilloux@free.fr>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-06-01 21:37:00 +00:00
Carl-Daniel Hailfinger
b22918cadc Only probe for chips with compatible bus protocols
It doesn't make sense to probe for SPI chips on a LPC host, nor does it
make sense to probe for LPC chips on a Parallel host.

This change is backwards compatible, but adding host protocol info to
chipset init functions will speed up probing.

Once all chipset init functions are updated and the Winbond W29EE011 and
AMIC A49LF040A chip definitions are updated, the W29EE011 workaround can
be deleted as the W29/A49 conflict magically disappears.

Corresponding to flashrom svn r560.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Tested on real hardware and
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-01 02:08:58 +00:00
Carl-Daniel Hailfinger
3504b539bf Add bus type support to the dummy external programmer
The syntax is explained in the man page.
Example: flashrom -p dummy=lpc,fwh

Tested, works perfectly. ;-)

As a nice benefit, it allows easy testing of the "probe only compatible
flashes" patch.

Corresponding to flashrom svn r559.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-06-01 00:02:11 +00:00
Carl-Daniel Hailfinger
b8afecd0f5 Add IT87xx SPI as external flasher option
This is a fast way to test if a IT87xx board_enable() would work.

Corresponding to flashrom svn r557.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Tested-by: Harald Gutmann <harald.gutmann@gmx.net>
Acked-by: Harald Gutmann <harald.gutmann@gmx.net>
2009-05-31 18:00:57 +00:00
Uwe Hermann
e8ba538d03 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>
2009-05-22 11:37:27 +00:00
Uwe Hermann
a9720405f6 Improve flashrom test report text a bit
- Mention that we'd like to have -V output for all operations
   which were tested by the user.

 - Mention that we'd like to know the exact mainboard vendor/name.

Corresponding to flashrom svn r540.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-21 15:55:46 +00:00
Uwe Hermann
c7e8a0ce1e Documentation improvements and small code/whitespace fixes
Corresponding to flashrom svn r535.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-19 14:14:21 +00:00
Uwe Hermann
c6915939d9 Factor out fallback_map/unmap, most external programmers don't need and special handling here
Corresponding to flashrom svn r531.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-17 23:12:17 +00:00
Uwe Hermann
eaefb48ee5 Various smaller flashrom improvements
- Document new 'satasii' programmer in -L output and manpage.

 - Drop PCI_IO_BASE_ADDRESS, pci.h has such #defines already.

 - Beautify flashrom output and make it more consistent.
 
 - Same for the 'make' output (reordered some $CC parameters).
   Build-tested on i386, shouldn't break any builds, I think.

 - Some variable renaming and other cosmetic fixes.

Corresponding to flashrom svn r529.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-17 22:57:34 +00:00
Rudolf Marek
68720c7bed This patch adds support for BIOS flashing on the all SiliconImage SATA controllers
It was easy because

1) flashrom has now nice API 2) documentation is public on the web site

Corresponding to flashrom svn r527.

Signed-off-by: Rudolf Marek <r.marek@assembler.cz>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-17 19:39:27 +00:00
Uwe Hermann
05fab75d73 List all boards which are
- Supported out of the box (no flash enables required)

 - Verifiably not yet working (unknown flash enable)

Also, move some structs to flash.h in preparation for later wiki
output support.

Corresponding to flashrom svn r523.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-16 23:42:17 +00:00
Uwe Hermann
09e04f74c3 Eliminate all 'inline's from the flashrom code
They serve pretty much no purpose, compilers can optimize pretty much
all of what we might mark as inline anyway, _and_ inlines are not
enforced in any way by the compiler either. They're totally unneeded.
Kill them.

Corresponding to flashrom svn r522.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-05-16 22:36:00 +00:00
Uwe Hermann
2cac6860c3 Drop unused/duplicated #includes and some dead code
Build-tested on 32bit x86.

Corresponding to flashrom svn r521.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-16 22:05:42 +00:00
Carl-Daniel Hailfinger
5820f42ef2 Introduce a type "chipaddr" to abstract the offsets within flash regions
Use chipaddr instead of volatile uint8_t * because when we access chips
in external flashers, they are not accessed via pointers at all.

Benefits: This allows us to differentiate between volatile machine
memory accesses and flash chip accesses. It also enforces usage
of chip_{read,write}[bwl] to access flash chips, so nobody will
unintentionally use pointers to access chips anymore. Some unneeded
casts are removed as well. Grepping for chip operations and machine
memory operations doesn't yield any false positives anymore.

Compile tested on 32 bit and 64 bit Linux.

Corresponding to flashrom svn r519.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-16 21:22:56 +00:00
Carl-Daniel Hailfinger
9ee107721f Add generic 16 bit and 32 bit chip read/write emulation to the external flasher infrastructure
The emulation works by splitting 32 bit accesses into 16 bit accesses
and 16 bit accesses into to 8 bit accesses. That way, external flashers
can mix and match the amount of emulation they need.

Corresponding to flashrom svn r517.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-16 01:23:55 +00:00
Uwe Hermann
515ab3de05 Refactor parts of the 3COM NIC code
Move the reusable PCI specific parts into pcidev.c, they'll be usable
for other NIC code (Realtek, VIA, ...) and also for SATA/IDE controller
cards as external programmers (for every PCI device which can program
EEPROMs basically).

Also add print_supported_pcidevs() to show the supported PCI devices
(currently only NICs, soon more) in the 'flashrom -L' output.

Corresponding to flashrom svn r515.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-05-15 17:02:34 +00:00
Christian Ruppert
0cdb0313f1 nic3com: allow selection of a particular PCI device to use as programmer
Add support for users to specify a certain NIC via PCI bus:slot.func
notation, in case there are multiple NICs in one system.

Usage: flashrom -p nic3com=bb:ss.f

Corresponding to flashrom svn r510.

Signed-off-by: Christian Ruppert <spooky85@gmail.com>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-14 18:57:26 +00:00
Uwe Hermann
b4dcb7188f Add support for 3COM NICs as "external programmer" and Atmel AT49BV512
This allows flashrom to identify, read, write, erase and verify flash chips
on (some) 3COM network cards. The patch uses the external programmer
infrastructure, the network card is basically treated as an external
flash programmer.

Usage:

$ ./flashrom -p nic3com
flashrom v0.9.0-r498
Found NIC "3COM 3C905C: EtherLink 10/100 PCI (TX)" (10b7:9200), addr = 0xa400
Calibrating delay loop... OK.
Found chip "Atmel AT49BV512" (64 KB) at physical address 0xffff0000.
No operations were specified.

$ ./flashrom -p nic3com -E
flashrom v0.9.0-r498
Found NIC "3COM 3C905C: EtherLink 10/100 PCI (TX)" (10b7:9200), addr = 0xa400
Calibrating delay loop... OK.
Found chip "Atmel AT49BV512" (64 KB) at physical address 0xffff0000.
Erasing flash chip... SUCCESS.

$ ./flashrom -p nic3com -wv backup.bin
flashrom v0.9.0-r498
Found NIC "3COM 3C905C: EtherLink 10/100 PCI (TX)" (10b7:9200), addr = 0xa400
Calibrating delay loop... OK.
Found chip "Atmel AT49BV512" (64 KB) at physical address 0xffff0000.
Flash image seems to be a legacy BIOS. Disabling checks.
Programming page: 1023 at address: 0x0000ffc0
Verifying flash... VERIFIED.

$ ./flashrom -p nic3com -r backup.bin
flashrom v0.9.0-r498
Found NIC "3COM 3C905C: EtherLink 10/100 PCI (TX)" (10b7:9200), addr = 0xa400
Calibrating delay loop... OK.
Found chip "Atmel AT49BV512" (64 KB) at physical address 0xffff0000.
Reading flash... done.

I have tested this on actual hardware (see PCI IDs above) and all
operations worked fine.

Support for other 3COM cards will follow (I added some more which should
be supportable by this code, but they're untested so far), as well as
support for NICs from other vendors.

The patch also adds support for the Atmel AT49BV512 which is soldered
onto the 3COM NIC I used for testing.

Corresponding to flashrom svn r499.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Mateusz Murawski <matowy@tlen.pl>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2009-05-13 11:36:06 +00:00
Carl-Daniel Hailfinger
1e334e619b Print dummy programmer messages only if verbose mode is selected
Print the return value of dummy_chip_read[bwl].
Align entries in programmer_table.

This is a cosmetic patch and has no effect on code flow.

Corresponding to flashrom svn r495.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
2009-05-11 15:46:43 +00:00
Carl-Daniel Hailfinger
1455b2baea Abstract mapping/unmapping of flash regions
Flash mapping/unmapping was performed without an abstraction layer,
so even the dummy flasher caused memory mappings to be set up. Add
map/unmap functions to the external flasher abstraction.

Fix a possible scribble-over-low-memory corner case which fortunately
never triggered so far.

With this patch, --programmer dummy works fine as non-root.

Corresponding to flashrom svn r493.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2009-05-11 14:13:25 +00:00