[flashrom] Import of 0.9.3 pre-release
Peter Lemenkov
peter at fedoraproject.org
Tue Oct 26 08:32:02 UTC 2010
commit a1e5088739067b6138c8add18bde22366effebe5
Author: Peter Lemenkov <lemenkov at gmail.com>
Date: Tue Oct 26 12:31:54 2010 +0400
Import of 0.9.3 pre-release
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
.gitignore | 1 +
flashrom-0.9.2.tar.bz2.asc | 7 -
...Initial-commit-of-autotools-related-files.patch | 434 +-
flashrom-0001-Sync-with-svn-ver.-1180.patch |19386 --------------------
...dmidecode-path-defined-at-configure-stage.patch | 26 +
...0003-Use-flashrom-s-version-from-config.h.patch | 79 +
..._LIBPCI-from-config.h-instead-of-NEED_PCI.patch | 105 +
...ros-from-config.h-instead-of-HAVE_UTSNAME.patch | 35 +
...86-related-ifdefs-in-code-this-is-now-con.patch | 199 +
flashrom-0007-Simplify-hwaccess.c.patch | 146 +
...diannes-determined-at-the-configure-stage.patch | 91 +
...Kill-unused-__FLASHROM_HAVE_OUTB__-define.patch | 26 +
...Use-HAVE_-_H-macro-for-detecting-includes.patch | 123 +
...om-0011-Add-more-comments-cosmetic-change.patch | 49 +
...ove-arch-checking-ifdef-block-into-header.patch | 78 +
flashrom.spec | 38 +-
sources | 2 +-
17 files changed, 1029 insertions(+), 19796 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 5cac6b0..4028bed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
flashrom-0.9.2.tar.bz2
/flashrom-0.9.2.tar.bz2
+/flashrom-0.9.3.tar.xz
diff --git a/flashrom-0002-Initial-commit-of-autotools-related-files.patch b/flashrom-0001-Initial-commit-of-autotools-related-files.patch
similarity index 72%
rename from flashrom-0002-Initial-commit-of-autotools-related-files.patch
rename to flashrom-0001-Initial-commit-of-autotools-related-files.patch
index 6373acc..11b4454 100644
--- a/flashrom-0002-Initial-commit-of-autotools-related-files.patch
+++ b/flashrom-0001-Initial-commit-of-autotools-related-files.patch
@@ -1,40 +1,24 @@
-From 457ef87be837eb1dab7e62fb22f2b3fc29e2619c Mon Sep 17 00:00:00 2001
+From ea547fead702d32b58cfe48f9f998edea02cb427 Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov at gmail.com>
-Date: Fri, 17 Sep 2010 22:32:07 +0400
-Subject: [PATCH 2/2] Initial commit of autotools-related files
+Date: Fri, 17 Sep 2010 18:58:28 +0400
+Subject: [PATCH 01/12] Initial commit of autotools-related files
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
---
- Makefile | 451 ----------------------------------------------------------
+ Makefile | 452 ----------------------------------------------------------
Makefile.am | 166 +++++++++++++++++++++
- configure.ac | 197 +++++++++++++++++++++++++
- dmi.c | 2 +-
- flash.h | 1 -
- flashrom.c | 12 +-
- hwaccess.h | 6 +-
- ichspi.c | 4 -
- internal.c | 3 +-
- it87spi.c | 4 -
- mcp6x_spi.c | 4 -
- nic3com.c | 6 -
- nicnatsemi.c | 6 -
- nicrealtek.c | 6 -
- print_wiki.c | 3 +-
- programmer.h | 6 +-
- rayer_spi.c | 5 -
- sb600spi.c | 4 -
- wbsio_spi.c | 4 -
- 19 files changed, 383 insertions(+), 507 deletions(-)
+ configure.ac | 204 ++++++++++++++++++++++++++
+ 3 files changed, 370 insertions(+), 452 deletions(-)
delete mode 100644 Makefile
create mode 100644 Makefile.am
create mode 100644 configure.ac
diff --git a/Makefile b/Makefile
deleted file mode 100644
-index e83fc0b..0000000
+index c525e39..0000000
--- a/Makefile
+++ /dev/null
-@@ -1,451 +0,0 @@
+@@ -1,452 +0,0 @@
-#
-# This file is part of the flashrom project.
-#
@@ -79,6 +63,7 @@ index e83fc0b..0000000
-endif
-ifeq ($(OS_ARCH), Darwin)
-CPPFLAGS += -I/opt/local/include -I/usr/local/include
+-# DirectIO framework can be found in the DirectHW library.
-LDFLAGS += -framework IOKit -framework DirectIO -L/opt/local/lib -L/usr/local/lib
-endif
-ifeq ($(OS_ARCH), FreeBSD)
@@ -136,7 +121,7 @@ index e83fc0b..0000000
-# will not require subversion. The downloadable snapshots are already exported.
-SVNVERSION := $(shell LC_ALL=C svnversion -cn . 2>/dev/null | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/" | grep "[0-9]" || LC_ALL=C svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || LC_ALL=C git svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || echo unknown)
-
--RELEASE := 0.9.2
+-RELEASE := 0.9.3
-VERSION := $(RELEASE)-r$(SVNVERSION)
-RELEASENAME ?= $(VERSION)
-
@@ -151,21 +136,6 @@ index e83fc0b..0000000
-# RayeR SPIPGM hardware support
-CONFIG_RAYER_SPI ?= yes
-
--# Bitbanging SPI infrastructure, default off unless needed.
--ifeq ($(CONFIG_RAYER_SPI), yes)
--override CONFIG_BITBANG_SPI = yes
--else
--ifeq ($(CONFIG_INTERNAL), yes)
--override CONFIG_BITBANG_SPI = yes
--else
--ifeq ($(CONFIG_NICINTEL_SPI), yes)
--override CONFIG_BITBANG_SPI = yes
--else
--CONFIG_BITBANG_SPI ?= no
--endif
--endif
--endif
--
-# Always enable 3Com NICs for now.
-CONFIG_NIC3COM ?= yes
-
@@ -206,6 +176,21 @@ index e83fc0b..0000000
-# Disable wiki printing by default. It is only useful if you have wiki access.
-CONFIG_PRINT_WIKI ?= no
-
+-# Bitbanging SPI infrastructure, default off unless needed.
+-ifeq ($(CONFIG_RAYER_SPI), yes)
+-override CONFIG_BITBANG_SPI = yes
+-else
+-ifeq ($(CONFIG_INTERNAL), yes)
+-override CONFIG_BITBANG_SPI = yes
+-else
+-ifeq ($(CONFIG_NICINTEL_SPI), yes)
+-override CONFIG_BITBANG_SPI = yes
+-else
+-CONFIG_BITBANG_SPI ?= no
+-endif
+-endif
+-endif
+-
-ifeq ($(CONFIG_INTERNAL), yes)
-FEATURE_CFLAGS += -D'CONFIG_INTERNAL=1'
-PROGRAMMER_OBJS += processor_enable.o chipset_enable.o board_enable.o cbtable.o dmi.o internal.o
@@ -660,17 +645,17 @@ index 0000000..671287c
+ $(serial_SOURCES)
diff --git a/configure.ac b/configure.ac
new file mode 100644
-index 0000000..18c1262
+index 0000000..a77cb26
--- /dev/null
+++ b/configure.ac
-@@ -0,0 +1,197 @@
-+AC_INIT([flashrom], [0.9.2-r1180], [flashrom at flashrom.org], [flashrom], [http://www.flashrom.org/])
+@@ -0,0 +1,204 @@
++AC_INIT([flashrom], [0.9.3-r1205], [flashrom at flashrom.org], [flashrom], [http://www.flashrom.org/])
+
+AC_CANONICAL_TARGET
+
+AC_CONFIG_SRCDIR([flashrom.c])
+AC_CONFIG_HEADERS([config.h])
-+AM_INIT_AUTOMAKE([foreign dist-xz])
++AM_INIT_AUTOMAKE([foreign])
+
+AC_ARG_WITH([dummy],
+ AC_HELP_STRING([--with-dummy],[dummy flashing support.]),
@@ -734,6 +719,13 @@ index 0000000..18c1262
+ AC_HELP_STRING([--with-print-wiki],[enable wiki export support. It is only useful if you have Flashrom wiki access.]),
+ [print_wiki="$withval"],[print_wiki="no"])
+
++AC_C_BIGENDIAN(
++ [AC_DEFINE([__FLASHROM_BIG_ENDIAN__], [1], [Big endian])],
++ [AC_DEFINE([__FLASHROM_LITTLE_ENDIAN__], [1], [Little endian])],
++ [AC_MSG_ERROR([Unknown endianness])],
++ [AC_MSG_ERROR([No support for universal binaries yet])]
++ )
++
+# Check for CPU-specific features
+case $target_cpu in
+ i386|i486|i586|i686|x86_64)
@@ -799,7 +791,7 @@ index 0000000..18c1262
+AC_PATH_PROG([DMIDECODE], dmidecode, [dmidecode], [$PATH$PATH_SEPARATOR/usr/sbin])
+
+# Checks for header files.
-+AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/ioctl.h sys/socket.h sys/time.h sys/utsname.h termios.h unistd.h])
++AC_CHECK_HEADERS([DirectIO/darwinio.h arpa/inet.h asm/sunddi.h fcntl.h inttypes.h limits.h machine/cpufunc.h machine/sysarch.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/io.h sys/ioctl.h sys/psw.h sys/socket.h sys/sysi86.h sys/time.h sys/utsname.h termios.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_INLINE
@@ -861,356 +853,6 @@ index 0000000..18c1262
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
-diff --git a/dmi.c b/dmi.c
-index f18907f..09009e7 100644
---- a/dmi.c
-+++ b/dmi.c
-@@ -55,7 +55,7 @@ static const char *dmidecode_names[] = {
- };
-
- #define DMI_COMMAND_LEN_MAX 260
--static const char *dmidecode_command = "dmidecode";
-+static const char *dmidecode_command = DMIDECODE_PATH;
-
- static char *dmistrings[ARRAY_SIZE(dmidecode_names)];
-
-diff --git a/flash.h b/flash.h
-index 6f0d7c0..4aba5ab 100644
---- a/flash.h
-+++ b/flash.h
-@@ -182,7 +182,6 @@ enum write_granularity {
- };
- extern enum chipbustype buses_supported;
- extern int verbose;
--extern const char * const flashrom_version;
- extern char *chip_to_probe;
- void map_flash_registers(struct flashchip *flash);
- int read_memmapped(struct flashchip *flash, uint8_t *buf, int start, int len);
-diff --git a/flashrom.c b/flashrom.c
-index f722029..a2be2fc 100644
---- a/flashrom.c
-+++ b/flashrom.c
-@@ -28,14 +28,16 @@
- #include <string.h>
- #include <stdlib.h>
- #include <getopt.h>
--#if HAVE_UTSNAME == 1
-+
-+#include "config.h"
-+
-+#if HAVE_SYS_UTSNAME_H == 1
- #include <sys/utsname.h>
- #endif
- #include "flash.h"
- #include "flashchips.h"
- #include "programmer.h"
-
--const char * const flashrom_version = FLASHROM_VERSION;
- char *chip_to_probe = NULL;
- int verbose = 0;
-
-@@ -1332,7 +1334,7 @@ void list_programmers(char *delim)
-
- void print_sysinfo(void)
- {
--#if HAVE_UTSNAME == 1
-+#if HAVE_UNAME == 1
- struct utsname osinfo;
- uname(&osinfo);
-
-@@ -1342,7 +1344,7 @@ void print_sysinfo(void)
- msg_ginfo(" on unknown machine");
- #endif
- msg_ginfo(", built with");
--#if NEED_PCI == 1
-+#if HAVE_LIBPCI == 1
- #ifdef PCILIB_VERSION
- msg_ginfo(" libpci %s,", PCILIB_VERSION);
- #else
-@@ -1376,7 +1378,7 @@ void print_sysinfo(void)
-
- void print_version(void)
- {
-- msg_ginfo("flashrom v%s", flashrom_version);
-+ msg_ginfo("flashrom v%s", PACKAGE_VERSION);
- print_sysinfo();
- }
-
-diff --git a/hwaccess.h b/hwaccess.h
-index 2d17326..bd78539 100644
---- a/hwaccess.h
-+++ b/hwaccess.h
-@@ -24,13 +24,15 @@
- #ifndef __HWACCESS_H__
- #define __HWACCESS_H__ 1
-
-+#include "config.h"
-+
- #if defined (__i386__) || defined (__x86_64__)
- #if defined(__GLIBC__)
- #include <sys/io.h>
- #endif
- #endif
-
--#if NEED_PCI == 1
-+#if HAVE_LIBPCI == 1
- /*
- * libpci headers use the variable name "index" which triggers shadowing
- * warnings on systems which have the index() function in a default #include
-@@ -160,7 +162,7 @@ cpu_to_be(64)
- #define le_to_cpu32 cpu_to_le32
- #define le_to_cpu64 cpu_to_le64
-
--#if NEED_PCI == 1
-+#if HAVE_LIBPCI == 1
- #if defined (__i386__) || defined (__x86_64__)
-
- #define __FLASHROM_HAVE_OUTB__ 1
-diff --git a/ichspi.c b/ichspi.c
-index bb6007e..7ac8e37 100644
---- a/ichspi.c
-+++ b/ichspi.c
-@@ -33,8 +33,6 @@
- *
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include <string.h>
- #include "flash.h"
- #include "chipdrivers.h"
-@@ -1072,5 +1070,3 @@ int via_init_spi(struct pci_dev *dev)
-
- return 0;
- }
--
--#endif
-diff --git a/internal.c b/internal.c
-index 497ce6c..71965de 100644
---- a/internal.c
-+++ b/internal.c
-@@ -24,8 +24,9 @@
- #include <sys/types.h>
- #include "flash.h"
- #include "programmer.h"
-+#include "config.h"
-
--#if NEED_PCI == 1
-+#if HAVE_LIBPCI == 1
- struct pci_dev *pci_dev_find_filter(struct pci_filter filter)
- {
- struct pci_dev *temp;
-diff --git a/it87spi.c b/it87spi.c
-index 9ecc414..1750cf8 100644
---- a/it87spi.c
-+++ b/it87spi.c
-@@ -23,8 +23,6 @@
- * Contains the ITE IT87* SPI specific routines
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include <string.h>
- #include <stdlib.h>
- #include "flash.h"
-@@ -371,5 +369,3 @@ int it8716f_spi_chip_write_256(struct flashchip *flash, uint8_t *buf, int start,
-
- return 0;
- }
--
--#endif
-diff --git a/mcp6x_spi.c b/mcp6x_spi.c
-index 97c0a1c..a277983 100644
---- a/mcp6x_spi.c
-+++ b/mcp6x_spi.c
-@@ -23,8 +23,6 @@
- * created by Michael Karcher.
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include <stdint.h>
- #include <stdlib.h>
- #include <ctype.h>
-@@ -172,5 +170,3 @@ int mcp6x_spi_init(int want_spi)
-
- return 0;
- }
--
--#endif
-diff --git a/nic3com.c b/nic3com.c
-index 0eb781a..7084edf 100644
---- a/nic3com.c
-+++ b/nic3com.c
-@@ -18,8 +18,6 @@
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include <stdlib.h>
- #include "flash.h"
- #include "programmer.h"
-@@ -114,7 +112,3 @@ uint8_t nic3com_chip_readb(const chipaddr addr)
- OUTL((uint32_t)addr, io_base_addr + BIOS_ROM_ADDR);
- return INB(io_base_addr + BIOS_ROM_DATA);
- }
--
--#else
--#error PCI port I/O access is not supported on this architecture yet.
--#endif
-diff --git a/nicnatsemi.c b/nicnatsemi.c
-index 1683857..e3a2807 100644
---- a/nicnatsemi.c
-+++ b/nicnatsemi.c
-@@ -18,8 +18,6 @@
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include <stdlib.h>
- #include "flash.h"
- #include "programmer.h"
-@@ -89,7 +87,3 @@ uint8_t nicnatsemi_chip_readb(const chipaddr addr)
- */
- return INB(io_base_addr + BOOT_ROM_DATA);
- }
--
--#else
--#error PCI port I/O access is not supported on this architecture yet.
--#endif
-diff --git a/nicrealtek.c b/nicrealtek.c
-index c32e5d6..b5bcbaf 100644
---- a/nicrealtek.c
-+++ b/nicrealtek.c
-@@ -18,8 +18,6 @@
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include <stdlib.h>
- #include "flash.h"
- #include "programmer.h"
-@@ -109,7 +107,3 @@ uint8_t nicrealtek_chip_readb(const chipaddr addr)
-
- return val;
- }
--
--#else
--#error PCI port I/O access is not supported on this architecture yet.
--#endif
-diff --git a/print_wiki.c b/print_wiki.c
-index 313fdea..c061116 100644
---- a/print_wiki.c
-+++ b/print_wiki.c
-@@ -26,6 +26,7 @@
- #include "flash.h"
- #include "flashchips.h"
- #include "programmer.h"
-+#include "config.h"
-
- static const char * const wiki_header = "= Supported devices =\n\n\
- <div style=\"margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; \
-@@ -267,7 +268,7 @@ void print_supported_wiki(void)
- {
- time_t t = time(NULL);
-
-- printf(wiki_header, ctime(&t), flashrom_version);
-+ printf(wiki_header, ctime(&t), PACKAGE_VERSION);
- #if CONFIG_INTERNAL == 1
- print_supported_chips_wiki(2);
- print_supported_chipsets_wiki(3);
-diff --git a/programmer.h b/programmer.h
-index 6407695..dfd99b4 100644
---- a/programmer.h
-+++ b/programmer.h
-@@ -24,6 +24,8 @@
- #ifndef __PROGRAMMER_H__
- #define __PROGRAMMER_H__ 1
-
-+#include "config.h"
-+
- enum programmer {
- #if CONFIG_INTERNAL == 1
- PROGRAMMER_INTERNAL,
-@@ -198,7 +200,7 @@ void myusec_delay(int usecs);
- void myusec_calibrate_delay(void);
- void internal_delay(int usecs);
-
--#if NEED_PCI == 1
-+#if HAVE_LIBPCI == 1
- /* pcidev.c */
- extern uint32_t io_base_addr;
- extern struct pci_access *pacc;
-@@ -253,7 +255,7 @@ void dmi_init(void);
- int dmi_match(const char *pattern);
-
- /* internal.c */
--#if NEED_PCI == 1
-+#if HAVE_LIBPCI == 1
- struct superio {
- uint16_t vendor;
- uint16_t port;
-diff --git a/rayer_spi.c b/rayer_spi.c
-index 722ad14..df6d972 100644
---- a/rayer_spi.c
-+++ b/rayer_spi.c
-@@ -28,7 +28,6 @@
- * most OS parport drivers will perform many unnecessary accesses although
- * this driver just treats the parallel port as a GPIO set.
- */
--#if defined(__i386__) || defined(__x86_64__)
-
- #include "flash.h"
- #include "programmer.h"
-@@ -117,7 +116,3 @@ int rayer_spi_init(void)
-
- return 0;
- }
--
--#else
--#error PCI port I/O access is not supported on this architecture yet.
--#endif
-diff --git a/sb600spi.c b/sb600spi.c
-index 4e3e079..c468ca3 100644
---- a/sb600spi.c
-+++ b/sb600spi.c
-@@ -21,8 +21,6 @@
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include "flash.h"
- #include "chipdrivers.h"
- #include "programmer.h"
-@@ -319,5 +317,3 @@ int sb600_probe_spi(struct pci_dev *dev)
- spi_controller = SPI_CONTROLLER_SB600;
- return 0;
- }
--
--#endif
-diff --git a/wbsio_spi.c b/wbsio_spi.c
-index acf9cb2..1a583a8 100644
---- a/wbsio_spi.c
-+++ b/wbsio_spi.c
-@@ -18,8 +18,6 @@
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
--#if defined(__i386__) || defined(__x86_64__)
--
- #include "flash.h"
- #include "chipdrivers.h"
- #include "programmer.h"
-@@ -185,5 +183,3 @@ int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
- {
- return read_memmapped(flash, buf, start, len);
- }
--
--#endif
--
-1.7.2.3
+1.7.3.1
diff --git a/flashrom-0002-Use-dmidecode-path-defined-at-configure-stage.patch b/flashrom-0002-Use-dmidecode-path-defined-at-configure-stage.patch
new file mode 100644
index 0000000..58eb210
--- /dev/null
+++ b/flashrom-0002-Use-dmidecode-path-defined-at-configure-stage.patch
@@ -0,0 +1,26 @@
+From 4c2775e9957db3722c07c9c7b710867d868cfc2f Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sat, 12 Jun 2010 22:13:53 +0400
+Subject: [PATCH 02/12] Use dmidecode path defined at configure stage
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ dmi.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dmi.c b/dmi.c
+index cda6656..2853c93 100644
+--- a/dmi.c
++++ b/dmi.c
+@@ -75,7 +75,7 @@ static const struct {
+ };
+
+ #define DMI_COMMAND_LEN_MAX 260
+-static const char *dmidecode_command = "dmidecode";
++static const char *dmidecode_command = DMIDECODE_PATH;
+
+ static char *dmistrings[ARRAY_SIZE(dmidecode_names)];
+
+--
+1.7.3.1
+
diff --git a/flashrom-0003-Use-flashrom-s-version-from-config.h.patch b/flashrom-0003-Use-flashrom-s-version-from-config.h.patch
new file mode 100644
index 0000000..52ba1e2
--- /dev/null
+++ b/flashrom-0003-Use-flashrom-s-version-from-config.h.patch
@@ -0,0 +1,79 @@
+From b5d6b6405a831a0b8694629fefa228b7f1f2eb84 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 17 Sep 2010 22:32:07 +0400
+Subject: [PATCH 03/12] Use flashrom's version from config.h
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ flash.h | 1 -
+ flashrom.c | 6 ++++--
+ print_wiki.c | 3 ++-
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/flash.h b/flash.h
+index 9566af9..33a7890 100644
+--- a/flash.h
++++ b/flash.h
+@@ -187,7 +187,6 @@ enum write_granularity {
+ };
+ extern enum chipbustype buses_supported;
+ extern int verbose;
+-extern const char * const flashrom_version;
+ extern char *chip_to_probe;
+ void map_flash_registers(struct flashchip *flash);
+ int read_memmapped(struct flashchip *flash, uint8_t *buf, int start, int len);
+diff --git a/flashrom.c b/flashrom.c
+index e5e334c..dd6d6df 100644
+--- a/flashrom.c
++++ b/flashrom.c
+@@ -30,6 +30,9 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <getopt.h>
++
++#include "config.h"
++
+ #if HAVE_UTSNAME == 1
+ #include <sys/utsname.h>
+ #endif
+@@ -37,7 +40,6 @@
+ #include "flashchips.h"
+ #include "programmer.h"
+
+-const char * const flashrom_version = FLASHROM_VERSION;
+ char *chip_to_probe = NULL;
+ int verbose = 0;
+
+@@ -1420,7 +1422,7 @@ void print_sysinfo(void)
+
+ void print_version(void)
+ {
+- msg_ginfo("flashrom v%s", flashrom_version);
++ msg_ginfo("flashrom v%s", PACKAGE_VERSION);
+ print_sysinfo();
+ }
+
+diff --git a/print_wiki.c b/print_wiki.c
+index 1b46dd0..4363eba 100644
+--- a/print_wiki.c
++++ b/print_wiki.c
+@@ -26,6 +26,7 @@
+ #include "flash.h"
+ #include "flashchips.h"
+ #include "programmer.h"
++#include "config.h"
+
+ static const char * const wiki_header = "= Supported devices =\n\n\
+ <div style=\"margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; \
+@@ -267,7 +268,7 @@ void print_supported_wiki(void)
+ {
+ time_t t = time(NULL);
+
+- printf(wiki_header, ctime(&t), flashrom_version);
++ printf(wiki_header, ctime(&t), PACKAGE_VERSION);
+ print_supported_chips_wiki(2);
+ #if CONFIG_INTERNAL == 1
+ print_supported_chipsets_wiki(3);
+--
+1.7.3.1
+
diff --git a/flashrom-0004-Use-HAVE_LIBPCI-from-config.h-instead-of-NEED_PCI.patch b/flashrom-0004-Use-HAVE_LIBPCI-from-config.h-instead-of-NEED_PCI.patch
new file mode 100644
index 0000000..6f90fc3
--- /dev/null
+++ b/flashrom-0004-Use-HAVE_LIBPCI-from-config.h-instead-of-NEED_PCI.patch
@@ -0,0 +1,105 @@
+From 39bd06642030c29b202ae52162de0f437cfffedc Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 17 Sep 2010 22:33:12 +0400
+Subject: [PATCH 04/12] Use HAVE_LIBPCI from config.h instead of NEED_PCI
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ flashrom.c | 2 +-
+ hwaccess.h | 6 ++++--
+ internal.c | 3 ++-
+ programmer.h | 6 ++++--
+ 4 files changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/flashrom.c b/flashrom.c
+index dd6d6df..df4cc67 100644
+--- a/flashrom.c
++++ b/flashrom.c
+@@ -1388,7 +1388,7 @@ void print_sysinfo(void)
+ msg_ginfo(" on unknown machine");
+ #endif
+ msg_ginfo(", built with");
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ #ifdef PCILIB_VERSION
+ msg_ginfo(" libpci %s,", PCILIB_VERSION);
+ #else
+diff --git a/hwaccess.h b/hwaccess.h
+index 63a2bf2..920b82c 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -24,13 +24,15 @@
+ #ifndef __HWACCESS_H__
+ #define __HWACCESS_H__ 1
+
++#include "config.h"
++
+ #if defined (__i386__) || defined (__x86_64__)
+ #if defined(__GLIBC__)
+ #include <sys/io.h>
+ #endif
+ #endif
+
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ /*
+ * libpci headers use the variable name "index" which triggers shadowing
+ * warnings on systems which have the index() function in a default #include
+@@ -160,7 +162,7 @@ cpu_to_be(64)
+ #define le_to_cpu32 cpu_to_le32
+ #define le_to_cpu64 cpu_to_le64
+
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ #if defined (__i386__) || defined (__x86_64__)
+
+ #define __FLASHROM_HAVE_OUTB__ 1
+diff --git a/internal.c b/internal.c
+index c96db99..8bc49b9 100644
+--- a/internal.c
++++ b/internal.c
+@@ -22,8 +22,9 @@
+ #include <stdlib.h>
+ #include "flash.h"
+ #include "programmer.h"
++#include "config.h"
+
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ struct pci_dev *pci_dev_find_filter(struct pci_filter filter)
+ {
+ struct pci_dev *temp;
+diff --git a/programmer.h b/programmer.h
+index 6407695..dfd99b4 100644
+--- a/programmer.h
++++ b/programmer.h
+@@ -24,6 +24,8 @@
+ #ifndef __PROGRAMMER_H__
+ #define __PROGRAMMER_H__ 1
+
++#include "config.h"
++
+ enum programmer {
+ #if CONFIG_INTERNAL == 1
+ PROGRAMMER_INTERNAL,
+@@ -198,7 +200,7 @@ void myusec_delay(int usecs);
+ void myusec_calibrate_delay(void);
+ void internal_delay(int usecs);
+
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ /* pcidev.c */
+ extern uint32_t io_base_addr;
+ extern struct pci_access *pacc;
+@@ -253,7 +255,7 @@ void dmi_init(void);
+ int dmi_match(const char *pattern);
+
+ /* internal.c */
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ struct superio {
+ uint16_t vendor;
+ uint16_t port;
+--
+1.7.3.1
+
diff --git a/flashrom-0005-Use-macros-from-config.h-instead-of-HAVE_UTSNAME.patch b/flashrom-0005-Use-macros-from-config.h-instead-of-HAVE_UTSNAME.patch
new file mode 100644
index 0000000..e787d11
--- /dev/null
+++ b/flashrom-0005-Use-macros-from-config.h-instead-of-HAVE_UTSNAME.patch
@@ -0,0 +1,35 @@
+From a03c6656f46d44d48229571bde54f6c2e1192380 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sat, 18 Sep 2010 09:05:43 +0400
+Subject: [PATCH 05/12] Use macros from config.h instead of HAVE_UTSNAME
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ flashrom.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/flashrom.c b/flashrom.c
+index df4cc67..b9285a3 100644
+--- a/flashrom.c
++++ b/flashrom.c
+@@ -33,7 +33,7 @@
+
+ #include "config.h"
+
+-#if HAVE_UTSNAME == 1
++#if HAVE_SYS_UTSNAME_H == 1
+ #include <sys/utsname.h>
+ #endif
+ #include "flash.h"
+@@ -1378,7 +1378,7 @@ void list_programmers_linebreak(int startcol, int cols, int paren)
+
+ void print_sysinfo(void)
+ {
+-#if HAVE_UTSNAME == 1
++#if HAVE_UNAME == 1
+ struct utsname osinfo;
+ uname(&osinfo);
+
+--
+1.7.3.1
+
diff --git a/flashrom-0006-Kill-some-x86-related-ifdefs-in-code-this-is-now-con.patch b/flashrom-0006-Kill-some-x86-related-ifdefs-in-code-this-is-now-con.patch
new file mode 100644
index 0000000..e9308de
--- /dev/null
+++ b/flashrom-0006-Kill-some-x86-related-ifdefs-in-code-this-is-now-con.patch
@@ -0,0 +1,199 @@
+From eaa749e886343597ddf01353f19c260e42d66270 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sat, 18 Sep 2010 09:40:01 +0400
+Subject: [PATCH 06/12] Kill some x86-related ifdefs in code - this is now controlled via autotools
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ ichspi.c | 4 ----
+ it87spi.c | 4 ----
+ mcp6x_spi.c | 4 ----
+ nic3com.c | 6 ------
+ nicnatsemi.c | 6 ------
+ nicrealtek.c | 6 ------
+ rayer_spi.c | 5 -----
+ sb600spi.c | 4 ----
+ wbsio_spi.c | 4 ----
+ 9 files changed, 0 insertions(+), 43 deletions(-)
+
+diff --git a/ichspi.c b/ichspi.c
+index c26366e..5438efe 100644
+--- a/ichspi.c
++++ b/ichspi.c
+@@ -34,8 +34,6 @@
+ *
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <string.h>
+ #include "flash.h"
+ #include "chipdrivers.h"
+@@ -1131,5 +1129,3 @@ int via_init_spi(struct pci_dev *dev)
+
+ return 0;
+ }
+-
+-#endif
+diff --git a/it87spi.c b/it87spi.c
+index 9ecc414..1750cf8 100644
+--- a/it87spi.c
++++ b/it87spi.c
+@@ -23,8 +23,6 @@
+ * Contains the ITE IT87* SPI specific routines
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <string.h>
+ #include <stdlib.h>
+ #include "flash.h"
+@@ -371,5 +369,3 @@ int it8716f_spi_chip_write_256(struct flashchip *flash, uint8_t *buf, int start,
+
+ return 0;
+ }
+-
+-#endif
+diff --git a/mcp6x_spi.c b/mcp6x_spi.c
+index 0e0d311..d9bb893 100644
+--- a/mcp6x_spi.c
++++ b/mcp6x_spi.c
+@@ -23,8 +23,6 @@
+ * created by Michael Karcher.
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdlib.h>
+ #include <ctype.h>
+ #include "flash.h"
+@@ -171,5 +169,3 @@ int mcp6x_spi_init(int want_spi)
+
+ return 0;
+ }
+-
+-#endif
+diff --git a/nic3com.c b/nic3com.c
+index 0eb781a..7084edf 100644
+--- a/nic3com.c
++++ b/nic3com.c
+@@ -18,8 +18,6 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdlib.h>
+ #include "flash.h"
+ #include "programmer.h"
+@@ -114,7 +112,3 @@ uint8_t nic3com_chip_readb(const chipaddr addr)
+ OUTL((uint32_t)addr, io_base_addr + BIOS_ROM_ADDR);
+ return INB(io_base_addr + BIOS_ROM_DATA);
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/nicnatsemi.c b/nicnatsemi.c
+index 1683857..e3a2807 100644
+--- a/nicnatsemi.c
++++ b/nicnatsemi.c
+@@ -18,8 +18,6 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdlib.h>
+ #include "flash.h"
+ #include "programmer.h"
+@@ -89,7 +87,3 @@ uint8_t nicnatsemi_chip_readb(const chipaddr addr)
+ */
+ return INB(io_base_addr + BOOT_ROM_DATA);
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/nicrealtek.c b/nicrealtek.c
+index c32e5d6..b5bcbaf 100644
+--- a/nicrealtek.c
++++ b/nicrealtek.c
+@@ -18,8 +18,6 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdlib.h>
+ #include "flash.h"
+ #include "programmer.h"
+@@ -109,7 +107,3 @@ uint8_t nicrealtek_chip_readb(const chipaddr addr)
+
+ return val;
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/rayer_spi.c b/rayer_spi.c
+index a01ee80..e64137b 100644
+--- a/rayer_spi.c
++++ b/rayer_spi.c
+@@ -28,7 +28,6 @@
+ * most OS parport drivers will perform many unnecessary accesses although
+ * this driver just treats the parallel port as a GPIO set.
+ */
+-#if defined(__i386__) || defined(__x86_64__)
+
+ #include <stdlib.h>
+ #include "flash.h"
+@@ -139,7 +138,3 @@ int rayer_spi_init(void)
+
+ return 0;
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/sb600spi.c b/sb600spi.c
+index 4e3e079..c468ca3 100644
+--- a/sb600spi.c
++++ b/sb600spi.c
+@@ -21,8 +21,6 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include "flash.h"
+ #include "chipdrivers.h"
+ #include "programmer.h"
+@@ -319,5 +317,3 @@ int sb600_probe_spi(struct pci_dev *dev)
+ spi_controller = SPI_CONTROLLER_SB600;
+ return 0;
+ }
+-
+-#endif
+diff --git a/wbsio_spi.c b/wbsio_spi.c
+index acf9cb2..1a583a8 100644
+--- a/wbsio_spi.c
++++ b/wbsio_spi.c
+@@ -18,8 +18,6 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include "flash.h"
+ #include "chipdrivers.h"
+ #include "programmer.h"
+@@ -185,5 +183,3 @@ int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
+ {
+ return read_memmapped(flash, buf, start, len);
+ }
+-
+-#endif
+--
+1.7.3.1
+
diff --git a/flashrom-0007-Simplify-hwaccess.c.patch b/flashrom-0007-Simplify-hwaccess.c.patch
new file mode 100644
index 0000000..d326294
--- /dev/null
+++ b/flashrom-0007-Simplify-hwaccess.c.patch
@@ -0,0 +1,146 @@
+From c3103091f40eaedd03a1f1bcb3503311a6072927 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Tue, 21 Sep 2010 17:51:08 +0400
+Subject: [PATCH 07/12] Simplify hwaccess.c
+
+This file is saturated with superfluous ifdefs arranged into
+several nested levels. This in turn adds additional complexity
+to process of adding another architecture.
+
+I re-arranged all ifdef blocks and killed duplicated function
+definitions. Also I added define(__amd64) to the list of x86-arches.
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ hwaccess.c | 85 +++++++++++++++++++++--------------------------------------
+ 1 files changed, 30 insertions(+), 55 deletions(-)
+
+diff --git a/hwaccess.c b/hwaccess.c
+index bbb91a6..e700b67 100644
+--- a/hwaccess.c
++++ b/hwaccess.c
+@@ -31,30 +31,47 @@
+ #endif
+ #include "flash.h"
+
++#if !( defined(__i386__) || \
++ defined(__x86_64__) || defined(__amd64) || \
++ defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips) || \
++ defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__))
++#error Unknown architecture
++#endif
++
+ #if defined(__i386__) || defined(__x86_64__)
++#if defined(__FreeBSD__) || defined(__DragonFly__)
++int io_fd;
++#endif
++#endif
+
+-/* sync primitive is not needed because x86 uses uncached accesses
+- * which have a strongly ordered memory model.
+- */
+ static inline void sync_primitive(void)
+ {
+-}
+-
+-#if defined(__FreeBSD__) || defined(__DragonFly__)
+-int io_fd;
++/* sync primitive is needed only on PowerPC because
++ * x86 uses uncached accesses which have a strongly ordered memory model
++ * /dev/mem on MIPS uses uncached accesses in mode 2 which has a strongly ordered memory model.
++ */
++#if defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
++ /* Prevent reordering and/or merging of reads/writes to hardware.
++ * Such reordering and/or merging would break device accesses which
++ * depend on the exact access order.
++ */
++ asm("eieio" : : : "memory");
+ #endif
++}
+
+ void get_io_perms(void)
+ {
++/* PCI port I/O is not yet implemented on PowerPC or MIPS. */
++#if defined(__i386__) || defined(__x86_64__) || defined(__amd64)
+ #if defined(__DJGPP__) || defined(__LIBPAYLOAD__)
+ /* We have full permissions by default. */
+ return;
+ #else
+-#if defined (__sun) && (defined(__i386) || defined(__amd64))
++#if defined (__sun)
+ if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
+ #elif defined(__FreeBSD__) || defined (__DragonFly__)
+ if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
+-#else
++#else
+ if (iopl(3) != 0) {
+ #endif
+ msg_perr("ERROR: Could not get I/O privileges (%s).\n"
+@@ -67,60 +84,18 @@ void get_io_perms(void)
+ exit(1);
+ }
+ #endif
++#endif
+ }
+
+ void release_io_perms(void)
+ {
++/* PCI port I/O is not yet implemented on PowerPC or MIPS. */
++#if defined(__i386__) || defined(__x86_64__) || defined(__amd64)
+ #if defined(__FreeBSD__) || defined(__DragonFly__)
+ close(io_fd);
+ #endif
+-}
+-
+-#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
+-
+-static inline void sync_primitive(void)
+-{
+- /* Prevent reordering and/or merging of reads/writes to hardware.
+- * Such reordering and/or merging would break device accesses which
+- * depend on the exact access order.
+- */
+- asm("eieio" : : : "memory");
+-}
+-
+-/* PCI port I/O is not yet implemented on PowerPC. */
+-void get_io_perms(void)
+-{
+-}
+-
+-/* PCI port I/O is not yet implemented on PowerPC. */
+-void release_io_perms(void)
+-{
+-}
+-
+-#elif defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips)
+-
+-/* sync primitive is not needed because /dev/mem on MIPS uses uncached accesses
+- * in mode 2 which has a strongly ordered memory model.
+- */
+-static inline void sync_primitive(void)
+-{
+-}
+-
+-/* PCI port I/O is not yet implemented on MIPS. */
+-void get_io_perms(void)
+-{
+-}
+-
+-/* PCI port I/O is not yet implemented on MIPS. */
+-void release_io_perms(void)
+-{
+-}
+-
+-#else
+-
+-#error Unknown architecture
+-
+ #endif
++}
+
+ void mmio_writeb(uint8_t val, void *addr)
+ {
+--
+1.7.3.1
+
diff --git a/flashrom-0008-Use-endiannes-determined-at-the-configure-stage.patch b/flashrom-0008-Use-endiannes-determined-at-the-configure-stage.patch
new file mode 100644
index 0000000..248dac6
--- /dev/null
+++ b/flashrom-0008-Use-endiannes-determined-at-the-configure-stage.patch
@@ -0,0 +1,91 @@
+From f0185abacc6a326a0778f480d1fde1cc4380c442 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sun, 26 Sep 2010 18:25:31 +0400
+Subject: [PATCH 08/12] Use endiannes determined at the configure stage
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ hwaccess.h | 53 ++---------------------------------------------------
+ 1 files changed, 2 insertions(+), 51 deletions(-)
+
+diff --git a/hwaccess.h b/hwaccess.h
+index 920b82c..4655003 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -43,51 +43,6 @@
+ #undef index
+ #endif
+
+-#if defined (__i386__) || defined (__x86_64__)
+-
+-/* All x86 is little-endian. */
+-#define __FLASHROM_LITTLE_ENDIAN__ 1
+-
+-#elif defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips)
+-
+-/* MIPS can be either endian. */
+-#if defined (__MIPSEL) || defined (__MIPSEL__) || defined (_MIPSEL) || defined (MIPSEL)
+-#define __FLASHROM_LITTLE_ENDIAN__ 1
+-#elif defined (__MIPSEB) || defined (__MIPSEB__) || defined (_MIPSEB) || defined (MIPSEB)
+-#define __FLASHROM_BIG_ENDIAN__ 1
+-#endif
+-
+-#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
+-
+-/* PowerPC can be either endian. */
+-#if defined (_BIG_ENDIAN) || defined (__BIG_ENDIAN__)
+-#define __FLASHROM_BIG_ENDIAN__ 1
+-/* Error checking in case some weird header has #defines for LE as well. */
+-#if defined (_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__)
+-#error Conflicting endianness #define
+-#endif
+-#else
+-#error Little-endian PowerPC #defines are unknown
+-#endif
+-
+-#endif
+-
+-#if !defined (__FLASHROM_BIG_ENDIAN__) && !defined (__FLASHROM_LITTLE_ENDIAN__)
+-/* Nonstandard libc-specific macros for determining endianness. */
+-#if defined(__GLIBC__)
+-#include <endian.h>
+-#if BYTE_ORDER == LITTLE_ENDIAN
+-#define __FLASHROM_LITTLE_ENDIAN__ 1
+-#elif BYTE_ORDER == BIG_ENDIAN
+-#define __FLASHROM_BIG_ENDIAN__ 1
+-#endif
+-#endif
+-#endif
+-
+-#if !defined (__FLASHROM_BIG_ENDIAN__) && !defined (__FLASHROM_LITTLE_ENDIAN__)
+-#error Unable to determine endianness. Please add support for your arch or libc.
+-#endif
+-
+ #define ___constant_swab8(x) ((uint8_t) ( \
+ (((uint8_t)(x) & (uint8_t)0xffU))))
+
+@@ -129,7 +84,7 @@ cpu_to_le(64)
+ #define cpu_to_be32
+ #define cpu_to_be64
+
+-#elif defined (__FLASHROM_LITTLE_ENDIAN__)
++#else /* defined (__FLASHROM_BIG_ENDIAN__) */
+
+ #define cpu_to_be(bits) \
+ static inline uint##bits##_t cpu_to_be##bits(uint##bits##_t val) \
+@@ -147,11 +102,7 @@ cpu_to_be(64)
+ #define cpu_to_le32
+ #define cpu_to_le64
+
+-#else
+-
+-#error Could not determine endianness.
+-
+-#endif
++#endif /* defined (__FLASHROM_BIG_ENDIAN__) */
+
+ #define be_to_cpu8 cpu_to_be8
+ #define be_to_cpu16 cpu_to_be16
+--
+1.7.3.1
+
diff --git a/flashrom-0009-Kill-unused-__FLASHROM_HAVE_OUTB__-define.patch b/flashrom-0009-Kill-unused-__FLASHROM_HAVE_OUTB__-define.patch
new file mode 100644
index 0000000..ba3569c
--- /dev/null
+++ b/flashrom-0009-Kill-unused-__FLASHROM_HAVE_OUTB__-define.patch
@@ -0,0 +1,26 @@
+From aa1ca481e2f28fd442c129884fdb08d169efdd41 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sun, 26 Sep 2010 20:14:18 +0400
+Subject: [PATCH 09/12] Kill unused __FLASHROM_HAVE_OUTB__ define
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ hwaccess.h | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/hwaccess.h b/hwaccess.h
+index 4655003..111f7d9 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -116,8 +116,6 @@ cpu_to_be(64)
+ #if HAVE_LIBPCI == 1
+ #if defined (__i386__) || defined (__x86_64__)
+
+-#define __FLASHROM_HAVE_OUTB__ 1
+-
+ /* for iopl and outb under Solaris */
+ #if defined (__sun) && (defined(__i386) || defined(__amd64))
+ #include <strings.h>
+--
+1.7.3.1
+
diff --git a/flashrom-0010-Use-HAVE_-_H-macro-for-detecting-includes.patch b/flashrom-0010-Use-HAVE_-_H-macro-for-detecting-includes.patch
new file mode 100644
index 0000000..2a6c585
--- /dev/null
+++ b/flashrom-0010-Use-HAVE_-_H-macro-for-detecting-includes.patch
@@ -0,0 +1,123 @@
+From 0ed4f34440b0da7957b4f301da35ba2c8354405a Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sun, 26 Sep 2010 21:05:50 +0400
+Subject: [PATCH 10/12] Use HAVE_*_H macro for detecting includes
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ hwaccess.h | 62 ++++++++++++++++++++++++++++++++++++++++++-----------------
+ 1 files changed, 44 insertions(+), 18 deletions(-)
+
+diff --git a/hwaccess.h b/hwaccess.h
+index 111f7d9..3326383 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -26,13 +26,11 @@
+
+ #include "config.h"
+
+-#if defined (__i386__) || defined (__x86_64__)
+-#if defined(__GLIBC__)
++#if defined (HAVE_SYS_IO_H)
+ #include <sys/io.h>
+-#endif
+-#endif
++#endif /* defined (HAVE_SYS_IO_H) */
+
+-#if HAVE_LIBPCI == 1
++#if defined (HAVE_LIBPCI)
+ /*
+ * libpci headers use the variable name "index" which triggers shadowing
+ * warnings on systems which have the index() function in a default #include
+@@ -41,7 +39,47 @@
+ #define index shadow_workaround_index
+ #include <pci/pci.h>
+ #undef index
+-#endif
++
++#if defined (HAVE_STRINGS_H)
++#include <strings.h>
++#endif /* defined (HAVE_STRINGS_H) */
++
++#if defined (HAVE_STDINT_H)
++#include <stdint.h>
++#endif /* defined (HAVE_STDINT_H) */
++
++#if defined (HAVE_SYS_TYPES_H)
++#include <sys/types.h>
++#endif /* defined (HAVE_SYS_TYPES_H) */
++
++#if defined (HAVE_MACHINE_SYSARCH_H)
++#include <machine/sysarch.h>
++#endif /* defined (HAVE_MACHINE_SYSARCH_H) */
++
++#if defined (HAVE_MACHINE_CPUFUNC_H)
++#include <machine/cpufunc.h>
++#endif /* defined (HAVE_MACHINE_CPUFUNC_H) */
++
++/* for iopl and outb under Solaris */
++#if defined HAVE_ASM_SUNDDI_H
++#include <asm/sunddi.h>
++#endif /* defined HAVE_ASM_SUNDDI_H */
++#if defined HAVE_SYS_SYSI86_H
++#include <sys/sysi86.h>
++#endif /* defined HAVE_SYS_SYSI86_H */
++#if defined HAVE_SYS_PSW_H
++#include <sys/psw.h>
++#endif /* defined HAVE_SYS_PSW_H */
++
++#ifdef __DJGPP__
++#include <pc.h>
++#endif /* __DJGPP__ */
++
++#if defined HAVE_DIRECTIO_DARWINIO_H
++#include <DirectIO/darwinio.h>
++#endif /* defined HAVE_DIRECTIO_DARWINIO_H */
++
++#endif /* defined (HAVE_LIBPCI) */
+
+ #define ___constant_swab8(x) ((uint8_t) ( \
+ (((uint8_t)(x) & (uint8_t)0xffU))))
+@@ -116,13 +154,6 @@ cpu_to_be(64)
+ #if HAVE_LIBPCI == 1
+ #if defined (__i386__) || defined (__x86_64__)
+
+-/* for iopl and outb under Solaris */
+-#if defined (__sun) && (defined(__i386) || defined(__amd64))
+-#include <strings.h>
+-#include <sys/sysi86.h>
+-#include <sys/psw.h>
+-#include <asm/sunddi.h>
+-#endif
+
+ #if (defined(__MACH__) && defined(__APPLE__))
+ #define __DARWIN__
+@@ -133,7 +164,6 @@ cpu_to_be(64)
+ */
+
+ #if defined(__FreeBSD__) || defined(__DragonFly__)
+- #include <machine/cpufunc.h>
+ #define off64_t off_t
+ #define lseek64 lseek
+ #define OUTB(x, y) do { u_int outb_tmp = (y); outb(outb_tmp, (x)); } while (0)
+@@ -161,8 +191,6 @@ cpu_to_be(64)
+
+ #ifdef __DJGPP__
+
+-#include <pc.h>
+-
+ #define OUTB(x,y) outportb(y, x)
+ #define OUTW(x,y) outportw(y, x)
+ #define OUTL(x,y) outportl(y, x)
+@@ -189,8 +217,6 @@ cpu_to_be(64)
+ #define off64_t off_t
+ #define lseek64 lseek
+ #if defined(__i386__) || defined(__x86_64__)
+- #include <sys/types.h>
+- #include <machine/sysarch.h>
+ #if defined(__NetBSD__)
+ #if defined(__i386__)
+ #define iopl i386_iopl
+--
+1.7.3.1
+
diff --git a/flashrom-0011-Add-more-comments-cosmetic-change.patch b/flashrom-0011-Add-more-comments-cosmetic-change.patch
new file mode 100644
index 0000000..107508a
--- /dev/null
+++ b/flashrom-0011-Add-more-comments-cosmetic-change.patch
@@ -0,0 +1,49 @@
+From 074d25561454e4f6f23c3c0b2c27bb0454a25f90 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sun, 17 Oct 2010 12:52:02 +0400
+Subject: [PATCH 11/12] Add more comments (cosmetic change)
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ hwaccess.h | 10 +++++++---
+ 1 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/hwaccess.h b/hwaccess.h
+index 3326383..9fb078f 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -152,8 +152,10 @@ cpu_to_be(64)
+ #define le_to_cpu64 cpu_to_le64
+
+ #if HAVE_LIBPCI == 1
+-#if defined (__i386__) || defined (__x86_64__)
+
++/* PCI port I/O is not yet implemented on PowerPC. */
++/* PCI port I/O is not yet implemented on MIPS. */
++#if defined (__i386__) || defined (__x86_64__)
+
+ #if (defined(__MACH__) && defined(__APPLE__))
+ #define __DARWIN__
+@@ -273,7 +275,8 @@ static inline uint32_t inl(uint16_t port)
+ typedef struct { uint32_t hi, lo; } msr_t;
+ msr_t rdmsr(int addr);
+ int wrmsr(int addr, msr_t msr);
+-#endif
++#endif /* !defined(__DARWIN__) && !defined(__FreeBSD__) && !defined(__DragonFly__) */
++
+ #if defined(__FreeBSD__) || defined(__DragonFly__)
+ /* FreeBSD already has conflicting definitions for wrmsr/rdmsr. */
+ #undef rdmsr
+@@ -283,7 +286,8 @@ int wrmsr(int addr, msr_t msr);
+ typedef struct { uint32_t hi, lo; } msr_t;
+ msr_t freebsd_rdmsr(int addr);
+ int freebsd_wrmsr(int addr, msr_t msr);
+-#endif
++#endif /* defined(__FreeBSD__) || defined(__DragonFly__) */
++
+ #if defined(__LIBPAYLOAD__)
+ #include <arch/io.h>
+ #include <arch/msr.h>
+--
+1.7.3.1
+
diff --git a/flashrom-0012-Move-arch-checking-ifdef-block-into-header.patch b/flashrom-0012-Move-arch-checking-ifdef-block-into-header.patch
new file mode 100644
index 0000000..7ea9a55
--- /dev/null
+++ b/flashrom-0012-Move-arch-checking-ifdef-block-into-header.patch
@@ -0,0 +1,78 @@
+From 25d6e8fc99c76e37af16ec068e35b4c053b2fc3c Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Sun, 17 Oct 2010 12:53:18 +0400
+Subject: [PATCH 12/12] Move arch-checking #ifdef block into header
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ hwaccess.c | 7 -------
+ hwaccess.h | 21 ++++++++-------------
+ 2 files changed, 8 insertions(+), 20 deletions(-)
+
+diff --git a/hwaccess.c b/hwaccess.c
+index e700b67..5fcc83e 100644
+--- a/hwaccess.c
++++ b/hwaccess.c
+@@ -31,13 +31,6 @@
+ #endif
+ #include "flash.h"
+
+-#if !( defined(__i386__) || \
+- defined(__x86_64__) || defined(__amd64) || \
+- defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips) || \
+- defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__))
+-#error Unknown architecture
+-#endif
+-
+ #if defined(__i386__) || defined(__x86_64__)
+ #if defined(__FreeBSD__) || defined(__DragonFly__)
+ int io_fd;
+diff --git a/hwaccess.h b/hwaccess.h
+index 9fb078f..b166429 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -26,6 +26,13 @@
+
+ #include "config.h"
+
++#if !( defined(__i386__) || \
++ defined(__x86_64__) || defined(__amd64) || \
++ defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips) || \
++ defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__))
++#error Unknown architecture
++#endif
++
+ #if defined (HAVE_SYS_IO_H)
+ #include <sys/io.h>
+ #endif /* defined (HAVE_SYS_IO_H) */
+@@ -181,7 +188,7 @@ cpu_to_be(64)
+ #define off64_t off_t
+ #define lseek64 lseek
+ #endif
+-#if defined (__sun) && (defined(__i386) || defined(__amd64))
++#if defined (__sun)
+ /* Note different order for outb */
+ #define OUTB(x,y) outb(y, x)
+ #define OUTW(x,y) outw(y, x)
+@@ -299,18 +306,6 @@ int libpayload_wrmsr(int addr, msr_t msr);
+ #define wrmsr libpayload_wrmsr
+ #endif
+
+-#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
+-
+-/* PCI port I/O is not yet implemented on PowerPC. */
+-
+-#elif defined (__mips) || defined (__mips__) || defined (_mips) || defined (mips)
+-
+-/* PCI port I/O is not yet implemented on MIPS. */
+-
+-#else
+-
+-#error Unknown architecture, please check if it supports PCI port IO.
+-
+ #endif
+ #endif
+
+--
+1.7.3.1
+
diff --git a/flashrom.spec b/flashrom.spec
index e035c03..9ba1336 100644
--- a/flashrom.spec
+++ b/flashrom.spec
@@ -1,14 +1,27 @@
Summary: Simple program for reading/writing BIOS chips content
Name: flashrom
-Version: 0.9.2
-Release: 7.svn1180%{?dist}
+Version: 0.9.3
+Release: 0.1.svn1205%{?dist}
License: GPLv2
Group: Applications/System
URL: http://flashrom.org
-Source0: http://qa.coreboot.org/releases/%{name}-%{version}.tar.bz2
-Source1: http://qa.coreboot.org/releases/%{name}-%{version}.tar.bz2.asc
-Patch1: flashrom-0001-Sync-with-svn-ver.-1180.patch
-Patch2: flashrom-0002-Initial-commit-of-autotools-related-files.patch
+#Source0: http://qa.coreboot.org/releases/%{name}-%{version}.tar.bz2
+#Source1: http://qa.coreboot.org/releases/%{name}-%{version}.tar.bz2.asc
+## svn co svn://coreboot.org/flashrom/tags/flashrom-0.9.3
+## tar cJf flashrom-0.9.3.tar.xz flashrom-0.9.3/
+Source0: %{name}-%{version}.tar.xz
+Patch1: flashrom-0001-Initial-commit-of-autotools-related-files.patch
+Patch2: flashrom-0002-Use-dmidecode-path-defined-at-configure-stage.patch
+Patch3: flashrom-0003-Use-flashrom-s-version-from-config.h.patch
+Patch4: flashrom-0004-Use-HAVE_LIBPCI-from-config.h-instead-of-NEED_PCI.patch
+Patch5: flashrom-0005-Use-macros-from-config.h-instead-of-HAVE_UTSNAME.patch
+Patch6: flashrom-0006-Kill-some-x86-related-ifdefs-in-code-this-is-now-con.patch
+Patch7: flashrom-0007-Simplify-hwaccess.c.patch
+Patch8: flashrom-0008-Use-endiannes-determined-at-the-configure-stage.patch
+Patch9: flashrom-0009-Kill-unused-__FLASHROM_HAVE_OUTB__-define.patch
+Patch10: flashrom-0010-Use-HAVE_-_H-macro-for-detecting-includes.patch
+Patch11: flashrom-0011-Add-more-comments-cosmetic-change.patch
+Patch12: flashrom-0012-Move-arch-checking-ifdef-block-into-header.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: pciutils-devel
@@ -30,6 +43,16 @@ and write new contents on the chips ("flash the chip").
%setup -q
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
%build
autoreconf -ivf
@@ -51,6 +74,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man8/%{name}.*
%changelog
+* Tue Oct 26 2010 Peter Lemenkov <lemenkov at gmail.com> 0.9.3-0.1.svn1205
+- Ver. 0.9.3 (pre-release, exported from SCM)
+
* Wed Sep 29 2010 jkeating - 0.9.2-7.svn1180
- Rebuilt for gcc bug 634757
diff --git a/sources b/sources
index 8ad156e..4ba7274 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-21751b4ea93c5a82c725adae7b63014a flashrom-0.9.2.tar.bz2
+0ebf2b296798ba27c6cced35b9fb4a8c flashrom-0.9.3.tar.xz
More information about the scm-commits
mailing list