1963 Commits

Author SHA1 Message Date
Stefan Tauner 51e430392d Fix undefined behavior in some preprocessor define checks
Macros like the one below would produce undefined behavior when used as
expression/condition in #if preprocessor directives:
This patch replaces all such statements with a more verbose but
well-defined #if/#define x 1/#else/#define x 0/#endif

Found by clang (warning introduced in r258128), reported by Idwer.

Signed-off-by: Stefan Tauner <stefan.tauner@gmx.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2017-10-12 03:50:05 +02:00
Stefan Tauner 9fbbf55ecb Convert flashrom to git
- Drop support for Subversion in the getrevision script and Makefile.
 - Refinement of getrevision to have a single function determining the
   new flashrom version string (based on git describe).
 - Add .gitignore and .gitattributes file (the latter to limit exports).
 - Restore modification dates of the exported files from the VCS.
 - Stop exporting VCS log dumps to CHANGELOG. This makes no sense.
 - Export VCS metadata needed by the Makefile to versioninfo.inc
 - Do not export the pre-"compiled" manpage. It can be generated like
   anything else from the code dump with versioninfo.inc
 - Add some initial client-side git hooks that get installed automatically
   on make runs:
   * pre-commit:
     - test for whitespace errors via git diff-index --check
   * commit-msg:
     - Use the up to date hook from gerrit to add Change-Id tags.
       Unlike the upstream hook, add them to fixup/squash changes too
       to allow for our staging process.
     - Test for duplicate sign-offs/acks.
   * When pushing to one of the upstream repositories check mandatory rules:
      - existing signoffs and acks in all new commits
      - no deletions of branches
      - no new branches other than versioned branches (e.g., 0.0.x)
      - no history rewriting of branches
 - Various other small refinements, bikesheddings and cosmetic changes to
   slow down progress of flashrom and humanity as a whole.

Original-Change-Id: I64eef21982cac0a0a7419bcd2c8a936672ae9cb2
Original-Reviewed-on: https://review.coreboot.org/19206
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Original-Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Change-Id: I325edb7d9890c412a44ecacb5161268d3dbccc57
Signed-off-by: Stefan Tauner <stefan.tauner@gmx.at>
Signed-off-by: David Hendricks <dhendricks@fb.com>
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/21923
Acked-by: Stefan Tauner <stefan.tauner@gmx.at>
2017-10-12 03:16:10 +02:00
Stefan Tauner 40ba6fd048 Increase flashrom version number to 0.9.9
Corresponding to flashrom svn r1954.

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>
Acked-by: Urja Rannikko <urjaman@gmail.com>
0.9.9 v0.9.9
2016-03-13 17:46:08 +00:00
Carl-Daniel Hailfinger c1099d8f7e Fix fscanf format string security bug in layout.c
An internal security audit of the flashrom project by
Carl-Daniel Hailfinger found a buffer overflow bug present in all
flashrom versions since the year 2005.
This bug was independently found and reported to flashrom.org by
Cosmin Gorgovan a few days ago. 

A buffer on the stack and a buffer on the heap are affected by the
overflow caused by an incorrect fscanf format string.
The buffer overflow can only be triggered if the optional layout feature
is used and if the user manually specifies a specially crafted layout
file on the command line. Command line parsing and flash image handling
do not trigger the buggy code path.
Most usage of flashrom does not involve layout files.

The fix in this commit (changed fscanf format string) can be applied to
layout.c of all past flashrom versions.

Corresponding to flashrom svn r1953.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-03-13 17:36:49 +00:00
Carl-Daniel Hailfinger 8b6690ccbd Shutdown serial port in pony_spi
Implement serial port shutdown both for regular termination and error
conditions in pony_spi.

Corresponding to flashrom svn r1952.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-03-13 16:24:09 +00:00
Stefan Tauner 0be072cbe4 Add a bunch of new/tested stuff and various small changes 25
Tested mainboards:
OK:
 - ASRock Fatal1ty 970 Performance and P4i65G
   Reported by anonymous email message ID:
   932677687262b1300eaf14260999d9262c31@guerrillamail.com
   The latter actually had a tested board enable already.

Flash chips:
 - Eon EN25Q128 to PREW (+PREW)
   Reported by Adrian Graham
 - GigaDevice GD25VQ41B to PREW (+PREW)
   Reported by David Hendricks
 - Winbond W39V040FB to PREW (+EW)
   Reported by fjed on IRC

Miscellaneous:
 - Change PCI IDs of "MS-6577 (Xenon)" board enable.
   The previous IDs contained the on-board display adapter which is
   disabled when a dedicated graphics card is installed.
 - Add a note to the README how to overcome the clang warning if only a
   single programmer is enabled.
 - Fix some typo and manpage problems found by lintian
 - r1920 introduced some explicit calls to pkg-config instead of $(PKG_CONFIG).
   This patch corrects that.
 - Make MS-7094 (K8T Neo2-F V2.0) board enable less contestable.
   Previous PCI IDs were board-specific but ot the other of devices
   that could be disabled by the firmware or that vary among
   hardware revions. There are no good alternatives available.
   However, since we always have a DMI decoder available now, we can
   use non-board-specific devices without taking risks. Thanks to
   Uwe Hermann for reporting and testing.
 - Some other small changes to clean up whitespace and fix some warnings
   from Debian's lintian.

Corresponding to flashrom svn r1951.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-03-13 15:16:30 +00:00
Stefan Tauner fc3ecc2a81 Fix compilation on SunOS
This came up when I was testing if building on SunOS still works
on the buildbot's instance of OmniOS r151014 which is based on illumos.

The fix is
 - to link against libnsl
 - a small C type fix in ich_descriptor_tool

Corresponding to flashrom svn r1950.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-03-13 12:57:03 +00:00
Carl-Daniel Hailfinger 57cdd6ba66 sb600spi: rewrite and fix corner case
Specifying spispeed=reserved as programmer parameter resulted in
selecting the default SPI speed instead of aborting. Rewrite the logic
to be more readable.

Corresponding to flashrom svn r1949.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-03-12 19:49:14 +00:00
Stefan Tauner 8e6565449b Add support for GNU Hurd
Corresponding to flashrom svn r1948.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-03-06 22:32:16 +00:00
Hatim Kanchwala d059535856 Add support for GD25VQ21B, GD25VQ40C, GD25VQ80C and GD25VQ16C
Corresponding to flashrom svn r1947.

Signed-off-by: Hatim Kanchwala <hatim@hatimak.me>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-03-06 14:33:49 +00:00
Carl-Daniel Hailfinger 601f4cd02d Makefile: Fix driver blacklist dependencies
Allow mstarddc_spi and pony_spi on Android.
Allow mstarddc_spi and pony_spi on architectures with unsupported raw
access.

Corresponding to flashrom svn r1946.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-28 22:04:51 +00:00
Stefan Tauner fdb1659107 rayer_spi: add support for SPI Tiny Tools-compatible hardware
Apparently, there is at least one board of Russian origin (coined
SPI_TT LPT) that works with SPI Tiny Tools which is a closed-source
Windows GUI program somewhat similar to flashrom.

Corresponding to flashrom svn r1945.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-28 17:04:38 +00:00
Stefan Tauner f35033739d makefile: allow to disable all default-yes config variables with CONFIG_NOTHING=yes
All credit for this should be given to Patrick Georgi (see r1869).

Corresponding to flashrom svn r1944.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-02-26 23:51:21 +00:00
Carl-Daniel Hailfinger 8d0d53fdd0 Partial architecture support for alpha hppa m68k sh s390
Only hardware not needing raw access (PCI, memory, port I/O) is supported.

Corresponding to flashrom svn r1943.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-25 20:10:26 +00:00
Stefan Tauner fdec7475bf dediprog: use ordinary USB devs array
Even though there is currently only one USB device ID in the wild using our
standard way to define the devices creates nicer output for -L and -z.

Corresponding to flashrom svn r1942.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-02-22 08:59:27 +00:00
Stefan Tauner f31fe841d7 pickit2_spi: use ordinary USB devs array
Even though there is currently only one USB device ID in the wild using our
standard way to define the devices creates nicer output for -L and -z.

Corresponding to flashrom svn r1941.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-02-22 08:59:15 +00:00
Stefan Tauner 2a0feae699 Increase version number to 0.9.9-rc1
Corresponding to flashrom svn r1939.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Urja Rannikko <urjaman@gmail.com>
v0.9.9-rc1 0.9.9-rc1
2016-02-21 18:17:14 +00:00
Stefan Tauner e016826a07 Automatically disable atapromise for libpayload as well
The atapromise module uses the rom_size field of the struct pci_dev found
in pci.h that does not exist in libpayload's implementation and thus does
not compile with libpayload.

Corresponding to flashrom svn r1938.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-21 11:18:24 +00:00
Hatim Kanchwala e0c7abf219 Add support for GigaDevice GD25VQ41B and GD25Q128C
Corresponding to flashrom svn r1937.

Signed-off-by: Hatim Kanchwala <hatim@hatimak.me>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-21 00:21:11 +00:00
Carl-Daniel Hailfinger 4b2b3151e3 Allow global disable of all drivers requiring libusb* or libpci
This is especially helpful for compile tests with CONFIG_EVERYTHING=yes,
but can also be used without CONFIG_EVERYTHING.

Usage:
make CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no
CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no

Corresponding to flashrom svn r1936.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-20 22:28:16 +00:00
Carl-Daniel Hailfinger f636ffc4ef Automatically disable atapromise on non-x86
We do not support PCI port I/O on non-x86 (yet).
Atapromise needs PCI port I/O.

Corresponding to flashrom svn r1935.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-20 22:04:39 +00:00
Carl-Daniel Hailfinger 16c0aecebe Do not require PCI code for RayeR SPI driver
CONFIG_RAYER_SPI only needs raw hardware access, but not libpci.
Disable CONFIG_RAYER_SPI on Android because of missing inb/outb.
Introduce NEED_RAW_ACCESS for raw memory access, PCI port I/O
and MSR access.

Corresponding to flashrom svn r1934.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-20 21:43:56 +00:00
Stefan Tauner 74367bf314 dediprog: tremendously improve performance on SF600 by ignoring the spec
The solution was discovered in a collaborative bug hunt with testing done by
David Hendricks. The actual culprit was found by Urja Rannikko by comparing
vanilla flashrom with David's version in chromiumos.

Corresponding to flashrom svn r1933.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Tested-by: David Hendricks <dhendrix@chromium.org>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
2016-02-20 20:53:46 +00:00
Stefan Tauner 2c57bbee3c Include sys/glibc-syscalls.h instead of inexistent sys/io.h on Android
This won't make raw I/O work magically but at least it would provide iopl()
if some driver requires it and there is no better alternative currently.

Corresponding to flashrom svn r1932.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-02-20 20:21:58 +00:00
Stefan Tauner 45207061d8 Makefile: fix overriding of make command line arguments
Command line arguments given when executing make should not stop us
from setting commonly user-configurable variables like CPPFLAGS or
LDFLAGS.
Without this patch 'make CPPFLAGS="-Ifail"' would fail to find
libusb1 headers and abort.
Add override statements where we append mandatory options to
these variables to make (Debian) packagers more happy.

Also, r1920 introduced some explicit calls to pkg-config instead of
$(PKG_CONFIG). This patch corrects that as well.

Corresponding to flashrom svn r1931.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2016-02-19 08:17:24 +00:00