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

449 Commits

Author SHA1 Message Date
Carl-Daniel Hailfinger
4e3391f505 Always require the --programmer parameter if any flash chip access is requested
Fix a few man page oddities as well.

Corresponding to flashrom svn r1552.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2012-07-22 12:01:43 +00:00
Niklas Söderlund
9e42376c38 Remove exit() call from show_id
The only caller is able to check the return code and handle it
correctly.

Corresponding to flashrom svn r1545.

Signed-off-by: Niklas Söderlund <niso@kth.se>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2012-06-16 00:11:16 +00:00
Carl-Daniel Hailfinger
1c15548888 Add logfile support
Usage: flashrom --output logfile.txt

Logfile output has at least dbg2 verbosity or screen verbosity,
whichever is greater.

Corresponding to flashrom svn r1540.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Tested on Linux, Windows and FreeBSD.
Acked-by: Idwer Vollering <vidwer@gmail.com>
2012-06-06 09:17:06 +00:00
Carl-Daniel Hailfinger
901a3ba023 Convert printf to msg_* where appropriate
Clean up cli_output.c to be more readable.
Use enum instead of #define for message levels.
Kill a few exit(0) calls.
Print the command line arguments in verbose mode.
Move actions (--list-supported etc.) after argument sanity checks.
Reduce the number of code paths which have their own
programmer_shutdown().

Corresponding to flashrom svn r1536.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2012-05-14 22:54:58 +00:00
Virgil-Adrian Teaca
da7c545b06 Add serial port bitbanging code
This adds the pony_spi driver which supports the SI_Prog adapter, which
is commonly used for SPI chips with PonyProg 2000, and a custom adapter
called "SERBANG" which differs in the logic of two pins.

Corresponding to flashrom svn r1525.

Signed-off-by: Virgil-Adrian Teaca <darkstarlinux@gmail.com>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2012-04-30 23:11:06 +00:00
Stefan Tauner
2abab94c18 Add a bunch of new/tested stuff and various small changes 12
Tested Mainboards:
OK:
 - ASUS M4A785T-M
   http://www.flashrom.org/pipermail/flashrom/2012-April/009118.html
 - ASUS P5VD2-MX
   http://www.flashrom.org/pipermail/flashrom/2012-March/009014.html
 - ASUS P8Z68-V PRO/GEN3
   http://www.flashrom.org/pipermail/flashrom/2012-April/009086.html
 - Bachmann electronic OT200
   http://www.flashrom.org/pipermail/flashrom/2012-April/009094.html
 - Biostar N61PB-M2S
   http://www.flashrom.org/pipermail/flashrom/2012-March/008958.html
 - GIGABYTE GA-H61M-D2-B3
   http://www.flashrom.org/pipermail/flashrom/2012-March/009002.html
 - MSI MS-7740 (H61MA-E35(B3))
   http://www.flashrom.org/pipermail/flashrom/2012-March/008985.html
 - Tyan S2875 (Tiger K8W)
   http://www.flashrom.org/pipermail/flashrom/2012-March/008986.html
 - ZOTAC nForce 630i Supreme (N73U-Supreme)
   http://www.flashrom.org/pipermail/flashrom/2012-April/009073.html
 - ZOTAC ZBOX AD02 (PLUS)
   http://www.flashrom.org/pipermail/flashrom/2012-April/009047.html
NOT OK:
 - ASRock H67M
   http://www.flashrom.org/pipermail/flashrom/2012-March/008909.html
 - ASUS P8P67 LE
   http://paste.flashrom.org/view.php?id=1097
 - ASUS Maximus IV Extreme
   http://www.flashrom.org/pipermail/flashrom/2012-March/009033.html
 - Biostar H61MU3
   http://www.flashrom.org/pipermail/flashrom/2012-February/008832.html
 - Biostar M7VIQ
   http://www.flashrom.org/pipermail/flashrom/2012-February/008863.html
 - Dell Inspiron 580
   http://www.flashrom.org/pipermail/flashrom/2012-March/008888.html
 - Dell Vostro 460
   http://www.flashrom.org/pipermail/flashrom/2012-April/009144.html
 - Fujitsu-Siemens CELSIUS W410 (D3062-A1)
   http://www.flashrom.org/pipermail/flashrom/2012-March/008987.html
 - EPoX EP-3PTA
   http://www.flashrom.org/pipermail/flashrom/2012-April/009043.html
 - HP XW6400
   http://www.flashrom.org/pipermail/flashrom/2012-March/009006.html
 - HP XW9300
   http://www.flashrom.org/pipermail/flashrom/2012-February/008862.html
 - Intel DG965OT
   http://paste.flashrom.org/view.php?id=1096
 - Intel DN2800MT (Marshalltown)
   http://www.flashrom.org/pipermail/flashrom/2012-April/009095.html
 - Lenovo T420
   http://paste.flashrom.org/view.php?id=1095
 - Lenovo X1
   http://www.flashrom.org/pipermail/flashrom/2012-April/009135.html
 - MSI GF615M-P33
   http://www.flashrom.org/pipermail/flashrom/2012-March/008956.html

Tested flash chips:
 - mark EN25Q32(A/B) as TEST_OK_PROBE (+P)
   http://www.flashrom.org/pipermail/flashrom/2012-February/008832.html
 - mark S25FL032A as TEST_OK_PR (+PR)
   http://www.flashrom.org/pipermail/flashrom/2012-April/009105.html
 - mark AT25DF161 as TEST_OK_PROBE (+P)
   http://www.flashrom.org/pipermail/flashrom/2012-April/009095.html
 - mark SST as TEST_OK_PREW (+EW)
   http://www.flashrom.org/pipermail/flashrom/2012-April/009094.html

Tested chipset enables:
 - H61 (various reports)
 - SiS 755
   http://www.flashrom.org/pipermail/flashrom/2012-April/009072.html

 - Fix compilation of ich_descriptor_tool which was broken since r1492.
 - Add Documentation regarding unlocking the ME region on Intel chipsets.
 - Fix reading the flash descriptor via FDOC/FDOD and prettyprinting of the
   descriptor on boards with 5 active regions.
 - Reorder some boards in print.c.
 - Add Intel 7 Series (Panther Point) PCI IDs.
 - Add preliminary PCI IDs for future Intel chipsets (DH89xxCC and Lynx Point)
   see https://lkml.org/lkml/2012/2/20/467
 - Change the message for untested chipsets to send only after an attempt to
   update the firmware with flashrom.
 - Fix warnings in ich_descriptor_tool's build.

Corresponding to flashrom svn r1524.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2012-04-27 20:41:23 +00:00
Stefan Tauner
ac1b4c8bd7 Add support for SFDP (JESD216)
Similar to modules using the opaque programmer framework (e.g. ICH Hardware
Sequencing) this uses a template struct flashchip element in flashchips.c with
a special probe function that fills the obtained values into that struct.

This allows yet unknown SPI chips to be supported (read, erase, write) almost
as if it was already added to flashchips.c.

Documentation used:
http://www.jedec.org/standards-documents/docs/jesd216 (2011-04)
W25Q32BV data sheet Revision F (2011-04-01)
EN25QH16 data sheet Revision F (2011-06-01)
MX25L6436E data sheet Revision 1.8 (2011-12-26)

Tested-by: David Hendricks <dhendrix@google.com>
on W25Q64CV + dediprog
Tested-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
on a 2010 MX25L6436E with preliminary (i.e. incorrect) SFDP implementation + serprog

Thanks also to Michael Karcher for his comments and preliminary review!

Corresponding to flashrom svn r1500.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2012-02-17 14:51:04 +00:00
Daniel Lenski
65922a3860 Warn of one-time programmable (OTP) memory
Some flash chips contain OTP memory that we cannot read or write (yet). This
prohibits us from cloning them, hence warn the user if we detect it. Not all
variations of the tagged chips contain OTP memory. They are often only
enabled on request or have there own ordering numbers. There is usually no
way to distinguish them. Because this is a supposedly seldomly used feature
the warning is shown in with dbg verbosity.

The manpage is extended to describe the backgrounds a bit.

Corresponding to flashrom svn r1493.

This patch is based on the idea and code of Daniel Lenski.
Signed-off-by: Daniel Lenski <dlenski@gmail.com>
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2012-02-15 23:40:23 +00:00
Paul Menzel
e38001399e Reorder list of options to test
If a chip is unknown the user is asked to test and report the result to
the mailing list. Having `-VE` listed as the last option can result in
an unbootable system for users not knowing what the command does, since
rebooting the system after that command is fatal since the flash chip is
empty. Example report at
http://www.flashrom.org/pipermail/flashrom/2012-January/008551.html

Reorder the options to prevent such accidents in the future.
Suggested by Idwer Vollering.

Corresponding to flashrom svn r1485.

Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2012-01-12 13:58:43 +00:00
Carl-Daniel Hailfinger
c40cff7b86 Have all programmer init functions register bus masters/programmers
All programmer types (Parallel, SPI, Opaque) now register themselves
into a generic programmer list and probing is now programmer-centric
instead of chip-centric.
Registering multiple SPI/... masters at the same time is now possible
without any problems. Handling multiple flash chips is still unchanged,
but now we have the infrastructure to deal with "dual BIOS" and "one
flash behind southbridge and one flash behind EC" sanely.

A nice side effect is that this patch kills quite a few global variables
and improves the situation for libflashrom.

Hint for developers:
struct {spi,par,opaque}_programmer now have a void *data pointer to
store any additional programmer-specific data, e.g. hardware
configuration info.

Note:
flashrom -f -c FOO -r forced_read.bin
does not work anymore. We have to find an architecturally clean way to
solve this.

Corresponding to flashrom svn r1475.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2011-12-20 00:19:29 +00:00
Carl-Daniel Hailfinger
8a3c60cdd0 Add struct flashctx * parameter to all functions accessing flash chips
All programmer access function prototypes except init have been made
static and moved to the respective file.

A few internal functions in flash chip drivers had chipaddr parameters
which are no longer needed.

The lines touched by flashctx changes have been adjusted to 80 columns
except in header files.

Corresponding to flashrom svn r1474.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2011-12-18 15:01:24 +00:00
Carl-Daniel Hailfinger
63fd9026f1 Use struct flashctx instead of struct flashchip for flash chip access
Struct flashchip is used only for the flashchips array and for
operations which do not access hardware, e.g. printing a list of
supported flash chips.

struct flashctx (flash context) contains all data available in
struct flashchip, but it also contains runtime information like
mapping addresses. struct flashctx is expected to grow additional
members over time, a prime candidate being programmer info.
struct flashctx contains all of struct flashchip with identical
member layout, but struct flashctx has additional members at the end.

The separation between struct flashchip/flashctx shrinks the memory
requirement of the big flashchips array and allows future extension
of flashctx without having to worry about bloat.

Corresponding to flashrom svn r1473.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2011-12-14 22:25:15 +00:00
Stefan Tauner
c69c9c84e0 Unsignify lengths and addresses in chip functions and structs
Push those changes forward where needed to prevent new sign
conversion warnings where possible.

Corresponding to flashrom svn r1470.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-11-23 09:13:48 +00:00
Carl-Daniel Hailfinger
eaacd2d4e7 Register Parallel/LPC/FWH programmers the same way SPI programmers are registered
All programmers are now calling programmer registration functions and
direct manipulations of buses_supported are not needed/possible anymore.

Note: Programmers without parallel/LPC/FWH chip support should not call
register_par_programmer().

Additional fixes:
Set max_rom_decode.parallel for drkaiser.
Remove abuse of programmer_map_flash_region in it85spi.
Annotate several FIXMEs in it85spi.

Corresponding to flashrom svn r1463.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2011-11-09 23:40:00 +00:00
Stefan Tauner
8c35745fcf Revert "Unsignify lengths and addresses in chip functions and structs"
- probe_timing was changed to unsigned although we use negative values
  for special cases
- some code was not changed along hence did no longer compile:
  * dediprog's read and write functions
  * linux_spi's read and write functions
- it introduced a number of new sign conversion warnings
  (http://paste.flashrom.org/view.php?id=832)

To be safe this patch reverts all changes made in r1448, a corrected
patch will follow later.

Thanks to idwer for pointing out the problem first!

Corresponding to flashrom svn r1450.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-09-18 22:42:18 +00:00
Stefan Tauner
d196e7c138 Unsignify lengths and addresses in chip functions and structs
Corresponding to flashrom svn r1448.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-09-18 00:41:33 +00:00
Carl-Daniel Hailfinger
2e681601b1 Change programmer selection in cli and generic code
Bugfix: Do not accept multiple conflicting --programmer selections.
Restriction: Do not accept multiple --programmer selections even if
  there is no conflict.
Unexport the programmer variable.
programmer_init requires the programmer as first parameter.
The default programmer selection is now part of cli_classic.

Corresponding to flashrom svn r1433.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-09-08 00:00:29 +00:00
Sven Schnelle
5ce5f70ed3 Add support for the Linux SPI subsystem (spidev)
See http://www.kernel.org/doc/Documentation/spi/spidev for an introduction.

Usage is as follows:

  flashrom -p linux_spi:dev=/dev/spidevX.Y

where X is the bus number, and Y device. It accepts an optional parameter
'speed' which allows to set the SPI clock speed in kHz.

Tested on an Atmel AVR32AP7000 board (NGW100 Network Gateway Kit), see
below, which was used to program a ThinkPad X60, but it should work on every
other Linux system, too.
  
  http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4102)

Corresponding to flashrom svn r1427.

Signed-off-by: Sven Schnelle <svens@stackframe.org>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2011-09-03 18:37:52 +00:00
Carl-Daniel Hailfinger
97d5b126c6 Shorten some board enable related function names
Corresponding to flashrom svn r1424.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-08-31 16:19:50 +00:00
Uwe Hermann
394ee78325 Move the main() function from flashrom.c to cli_classic.c
The file flashrom.c is part of libflashrom and should thus not contain a
main() function, that would break compilation of all frontends using
libflashrom. Also, cli_classic.c is the right place anyway, as it's the
main() of the CLI tool.

Rename the simple wrapper cli_classic() in cli_classic.c to main(), as
it's not really needed.

Corresponding to flashrom svn r1417.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-08-20 14:14:22 +00:00
Carl-Daniel Hailfinger
082c8b559c Fixup of r1397
- Mixing uninitialized and initialized local variables leads to
  confusion.
- ft2232_spi error cases should have gotten some error handling, and
  that's the reason the curly braces were there.
- Fixing typos/wording in some places would have been nice given that
  those places were touched anyway.

Corresponding to flashrom svn r1413.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-08-15 19:54:20 +00:00
Uwe Hermann
91f4afa110 Random whitespace and coding-style fixes
Also, indentation fixes, e.g. due to conversion to msg_*, use ARRAY_SIZE
where possible, wrap overly long line, etc.

Compile-tested. There should be no functional changes.

Corresponding to flashrom svn r1397.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2011-07-28 08:13:25 +00:00
Carl-Daniel Hailfinger
1a227954f2 Rename CHIP_BUSTYPE_FOO to BUS_FOO
It's shorter to type, and we have less problems with the 80 column limit.

Corresponding to flashrom svn r1396.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2011-07-27 07:13:06 +00:00
Stefan Tauner
93f7023e16 Add a bunch of new/tested stuff and various small changes 6
- add J-7BXAN to the list of supported boards
  http://www.flashrom.org/pipermail/flashrom/2011-July/007397.html

- fix urls, typos, whitespace etc.

- fix counting of supported chips in the wiki output

Corresponding to flashrom svn r1393.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
the last one is
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
everything else is
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-07-26 14:33:46 +00:00
Carl-Daniel Hailfinger
84d1968250 Fix output of erase_and_write_flash and surroundings
See http://www.flashrom.org/pipermail/flashrom/2011-July/007220.html
for a discussion about the details.

Corresponding to flashrom svn r1392.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-07-26 14:28:35 +00:00
Stefan Tauner
716e09848a Add a bunch of new/tested stuff and various small changes 5
- mark EN25F80 as fully tested
  http://www.flashrom.org/pipermail/flashrom/2011-July/007329.html
- mark W25Q16 as fully tested
  http://www.flashrom.org/pipermail/flashrom/2011-July/007151.html
- mark W39V040A as fully tested
  http://www.flashrom.org/pipermail/flashrom/2011-July/007161.html
- mark Pm25LV040 as fully tested
  reported by TL1 on IRC
- mark W49F002U/N as fully tested
  http://paste.flashrom.org/view.php?id=733g
- mark W39V080FA as fully tested
  http://www.flashrom.org/pipermail/flashrom/2011-July/007225.html

- add ASUS P4S533-X to the list of supported boards
  http://www.flashrom.org/pipermail/flashrom/2011-July/007200.html
- add ASUS M4A785TD-V EVO to the list of supported boards
  http://www.flashrom.org/pipermail/flashrom/2011-July/007329.html
- add GA-945PL-S3P (rev. 6.6) to the list of supported boards
  reported by TL1 on IRC
- add MS-7142 (K8MM-V) to the list of supported boards
  http://www.flashrom.org/pipermail/flashrom/2011-July/007161.html
- add MS-7369 (K9N Neo V2) to the list of supported boards
  http://www.flashrom.org/pipermail/flashrom/2011-July/007181.html
- add X7DBT-INF to the list of supported boards
  http://www.flashrom.org/pipermail/flashrom/2011-July/007225.html

- mark SiS 645DX chipset enable as OK
  http://www.flashrom.org/pipermail/flashrom/2011-July/007200.html
- mark SiS 651 chipset enable as OK
  http://paste.flashrom.org/view.php?id=733

- move intel_ich_gpio34_raise to the correct line(s)
- change the output of unlock_w39_fwh_block from 0x%x to 0x%08x
- fix output for untested chipset enables (missing space)
- reorder the board enable in print.c entry for GA-8SIMLH added in r1385.
- minor other fixes

- fix output for multiple found flash chips by adding quotes and commas
- similarly fix output of "Found/Assuming" chips

Corresponding to flashrom svn r1386.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
the last two points are
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
everything else is
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-07-25 20:38:52 +00:00
Carl-Daniel Hailfinger
d8334dbc4b Fix out-of-bounds access if all erase functions fail
Fix detection of unchanged chip contents on erase failure.
Return error if no usable erase functions exist.

Thanks to Stefan Tauner for spotting the last problem.

Corresponding to flashrom svn r1380.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-07-21 21:21:04 +00:00
Stefan Tauner
269de3533a Fix unchecked malloc calls and casts of malloc return values
In the long term the exit calls should be replaced by returns.
until then this is the correct way to handle failures.

the casts are not needed (in C) and we don't cast malloc return values anywhere else.

Corresponding to flashrom svn r1370.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2011-07-12 22:35:21 +00:00
Sylvain "ythier" Hitier
9db455126f Kill unused "log" argument of count_usable_erasers()
Corresponding to flashrom svn r1364.

Signed-off-by: Sylvain "ythier" Hitier <sylvain.hitier@gmail.com>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-07-04 07:27:17 +00:00
Stefan Tauner
5368dca436 Add count_usable_erasers which returns the number of well-defined erasers for a chip
It solves one FIXME and consequentially allows to remove a later check
right now, and is used in the upcoming SFDP patch.
Adds a forward declaration of check_block_eraser.

Corresponding to flashrom svn r1358.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-07-01 00:19:12 +00:00
Stefan Tauner
00155498a8 Fix memleaks due to incorrect usage of flashbuses_to_text
Corresponding to flashrom svn r1357.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-06-26 20:45:35 +00:00
Stefan Tauner
d5b2228e43 Add a success indicator to the "Reading old flash chip contents..." message
Corresponding to flashrom svn r1355.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-06-26 17:47:40 +00:00
Stefan Tauner
6665244bc7 Constify (a few) parameters.c where possible
Corresponding to flashrom svn r1354.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-06-26 17:38:17 +00:00
Carl-Daniel Hailfinger
b4061f61cd Move erase verification to generic code
Erase functions are no longer called from chip drivers and thus their
internal erase verification can be moved to generic code. This also
makes it easier to skip the verify step if desired and to differentiate
between failed command submission and failed erase verification.

Corresponding to flashrom svn r1353.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-06-26 17:04:16 +00:00
Stefan Tauner
198f2770cc Fix probe_flash to report new values set by probing functions
This is needed if the probing function changes its fill_flash parameter
like in the pattern used to support Intel Hardware Sequencing and SFDP.

Corresponding to flashrom svn r1350.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-06-25 17:04:26 +00:00
Carl-Daniel Hailfinger
6573b74da2 Do not display skipped probe messsages in verbose mode
They are still visible in spew mode (-VV).

Corresponding to flashrom svn r1341.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
2011-06-17 22:38:53 +00:00
David Hendricks
8bb2021d77 Use shutdown callback mechanism to shutdown programmers
This patch attempts to resolve some programmer shutdown ordering issues
by having the programmer init functions register shutdown callbacks explicitly
wherever it makes most sense. Before, assumptions were made that could lead to
the internal programmer's state changing before the external programmer could be
shut down properly. Now, each programmer cleans up after itself and (hopefully)
performs each operation in the correct order.

As a side-effect, this patch gives us a better usage model for reverse
operations such as rpci_* and rmmio_*. In the long-run, this should make
reversing the initialization process easier to understand, less tedious, and
less error-prone.

In short, this patch does the following:
- Registers a shutdown callback during initialization for each programmer.
- Kills the .shutdown function pointer from programmer_entry struct. Also,
  make most shutdown functions static.
- Adds a few minor clean-ups and corrections (e.g. missing physunmap() calls).

TODO: Remove forward declaration of serprog_shutdown() (added to simplify diff)

Corresponding to flashrom svn r1338.

Signed-off-by: David Hendricks <dhendrix@google.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-06-14 01:35:36 +00:00
Stefan Tauner
355cbfdbef Small fixes
- missing spaces in code and output
- improved documentation/naming/output
- missing line breaks in spi probing functions

Corresponding to flashrom svn r1321.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-05-28 02:37:14 +00:00
Stefan Tauner
7bcacb1bdb Eliminate magic numbers indicating maximum column sizes in print.c
Without this the magic numbers need to be kept in sync with the maximum
length of the strings printed in the corresponding column. if not, an
overflow and a nasty ' '-storm occur on executing flashrom -L.

Corresponding to flashrom svn r1318.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-05-26 01:35:19 +00:00
Stefan Tauner
c0aaf95487 Whitespace, documentation and other small stuff
This patch combines three previously posted patches in a revised form.
one is even stolen from Stefan Reinauer (remove umlauts from man page).

Corresponding to flashrom svn r1317.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Signed-off-by: Stefan Reinauer <reinauer@google.com>

Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2011-05-19 02:58:17 +00:00
David Hendricks
77f931a530 Remove filename parameter from chip_safety_check()
Corresponding to flashrom svn r1302.

Signed-off-by: David Hendricks <dhendrix@google.com>
Acked-by: Stefan Reinauer <stepan@coreboot.org>
2011-05-18 01:30:56 +00:00
Michael Karcher
b9dbe48b77 Kill central list of SPI programmers
Remove the array spi_programmer, replace it by dynamic registration
instead. Also initially start with no busses supported, and switch to
the default non-SPI only for the internal programmer.

Also this patch changes the initialization for the buses_supported variable
from "everything-except-SPI" to "nothing". All programmers have to set the
bus type on their own, and this enables register_spi_programmer to just add
the SPI both for on-board SPI interfaces (where the internal programmer
already detected the other bus types), as well as for external programmers
(where we have the default "none").

Corresponding to flashrom svn r1299.

Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2011-05-11 17:07:07 +00:00
Carl-Daniel Hailfinger
b713d2e35c Intel NIC with parallel flash support
Tested-by: Maciej Pijanka <maciej.pijanka@gmail.com>

Corresponding to flashrom svn r1297.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Tested-by: Anton Kochkov <anton.kochkov@gmail.com>
Acked-by: Anton Kochkov <anton.kochkov@gmail.com>
2011-05-08 00:24:18 +00:00
Carl-Daniel Hailfinger
4c82318e4a Constify flashchips array
This moves 99.5% of the .data section to .rodata (which ends up in .text).

Corresponding to flashrom svn r1293.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2011-05-04 00:39:50 +00:00
Carl-Daniel Hailfinger
bfecef6986 Add support for more than one Super I/O or EC per machine
Flashrom currently only supports exactly one Super I/O or Embedded
Controller, and this means quite a few notebooks and a small subset of
desktop/server boards cannot be handled reliably and easily.
Allow detection and initialization of up to 3 Super I/O and/or EC chips.

WARNING! If a Super I/O or EC responds on multiple ports (0x2e and
0x4e), the code will do the wrong thing (namely, initialize the hardware
twice). I have no idea if we should handle such situations, and whether
we should ignore the second chip with identical ID or not. Initializing
the hardware twice for the IT87* family is _not_ a problem, but I don't
know how well IT85* can handle it (and whether IT85* would listen at
more than one port anyway).

Corresponding to flashrom svn r1289.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>

Thanks to Thomas Schneider for testing on a board with ITE IT87* SPI.
Test report (success) is here: http://paste.flashrom.org/view.php?id=379

Thanks to David Hendricks for testing on a Google Cr-48 laptop with
ITE IT85* EC SPI. Test report (success) is here:
http://www.flashrom.org/pipermail/flashrom/2011-April/006275.html
Acked-by: David Hendricks <dhendrix@google.com>
2011-04-27 14:34:08 +00:00
Carl-Daniel Hailfinger
d95355880a Fix compilation if CONFIG_INTERNAL=no
Fix compilation if everything except CONFIG_SATAMV is no.
Do not compile in PCI support for wiki printing if no PCI devices are
supported.

Corresponding to flashrom svn r1278.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2011-03-08 00:09:11 +00:00
Carl-Daniel Hailfinger
40446eef1b Remove vendorid parameter from pcidev_init()
Simplify pcidev_init by killing the vendorid parameter which was pretty
useless anyway since it was present in the pcidevs parameter as well.

This also allows us to handle multiple programmers with different vendor
IDs in the same driver.

Fix compilation of flashrom with only the nicrealtek driver.

Corresponding to flashrom svn r1274.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
2011-03-07 01:08:09 +00:00
Carl-Daniel Hailfinger
9a1105cfff Support for Angelbird Wings PCIe SSD (solid-state drive)
It uses a Marvell 88SX7042 SATA controller internally which has access
to a separate flash chip hosting the option ROM.

Thanks to Angelbird Ltd for sponsoring development of this driver!

I expect the code to work for that SATA controller even if it is not
part of the Angelbird SSD.

Corresponding to flashrom svn r1258.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2011-02-04 21:37:59 +00:00
Stefan Reinauer
051e2366fb Avoid printing mapped addresses for programmers that do not map flash chips
Don't print the local memory flash chip address on programmers that
don't actually map the flash chip into local memory (like the dediprog)
because the value does not make sense there.

This version was reworked / rewritten by Mathias Krause to have less
"impact"

Corresponding to flashrom svn r1253.

Signed-off-by: Stefan Reinauer <reinauer@google.com>
Acked-by: Mathias Krause <mathias.krause@secunet.com>
2011-01-19 06:21:54 +00:00
Mathias Krause
a60faab83e Convince compilers to put constant data into the .rodata section
This patch reduces the stack usage by declaring 'const' stack variables
as 'static const' so they end up in the .rodata section instead of being
copied from there to the stack for every invocation of the corresponding
function.

As a plus we end up in having a smaller binary as the "copy from .rodata
to stack" code isn't emitted by the compiler any more (roughly -100
bytes).

Corresponding to flashrom svn r1252.

Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Acked-by: Stefan Reinauer <stepan@coreboot.org>
2011-01-17 07:50:42 +00:00