flashrom
Threads by month
- ----- 2026 -----
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
May 2010
- 64 participants
- 169 discussions
Author: hailfinger
Date: Wed May 19 18:55:43 2010
New Revision: 1001
URL: http://flashrom.org/trac/coreboot/changeset/1001
Log:
Tag flashrom 0.9.2
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Acked-by: Sean Nelson <audiohacked(a)gmail.com>
Acked-by: Michael Karcher <flashrom(a)mkarcher.dialup.fu-berlin.de>
Acked-by: Luc Verhaegen <libv(a)skynet.be>
Acked-by: Uwe Hermann <uwe(a)hermann-uwe.de>
Added:
tags/flashrom-0.9.2/
- copied from r1000, trunk/
3
3
Hi,
flashrom should work fine since version 0.9.2 revision 1008 on all Tyan
S2915 OEM boards.
The reason for the failing access was that those boards have two MCP55
LPC bridges. flashrom enabled the first LPC bridge (oddball PCI class)
instead of the second one (ISA bridge PCI class). Since we don't have
any reports of PCI ID 10de:0361 being used as "real" primary LPC bridge,
we blacklisted that ID for now until class checking is in place (which
may break on other boards with buggy BIOS, not sure). The "real" LPC
bridge on this board has the PCI ID
I'd appreciate full output of
flashrom -V
with latest flashrom (at least 0.9.2-r1008).
Thanks to everyone who tested and provided lspci output.
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
4
6
Re: [flashrom] [PATCH, v2, compilable] Board enable for IP530
by Carl-Daniel Hailfinger May 31, 2010
by Carl-Daniel Hailfinger May 31, 2010
May 31, 2010
On 03.04.2010 11:44, Michael Karcher wrote:
> Now also leaves conf mode and selects the right logical device number.
> Autodetection fixed by putting the chip with (bogus) subdevice first.
>
The patch can be found at http://patchwork.coreboot.org/patch/1195/
Michael, do you want to add your signoff?
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
2
3
May 31, 2010
On 30.05.2010 19:42, Michael Karcher wrote:
> Also modifies nvidia_mcp_gpio_set to cope with multiple MCP55 chips on
> the same board, like on the Tyan S2915-E.
>
Thanks a lot for tracking this down!
> Signed-off-by: Michael Karcher <flashrom(a)mkarcher.dialup.fu-berlin.de>
>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Please see the comments below.
> ---
> board_enable.c | 43 +++++++++++++++++++++++++++++++++++--------
> 1 files changed, 35 insertions(+), 8 deletions(-)
>
> diff --git a/board_enable.c b/board_enable.c
> index b5eb63f..497cfd9 100644
> --- a/board_enable.c
> +++ b/board_enable.c
> @@ -552,6 +552,7 @@ static int nvidia_mcp_gpio_set(int gpio, int raise)
> {
> struct pci_dev *dev;
> uint16_t base;
> + uint16_t devclass;
> uint8_t tmp;
>
> if ((gpio < 0) || (gpio >= 0x40)) {
> @@ -566,17 +567,33 @@ static int nvidia_mcp_gpio_set(int gpio, int raise)
> case 0x0050: /* MCP04 */
> case 0x0060: /* MCP2 */
> break;
> - default:
> - /* Newer MCPs use the SMBus Controller */
> - dev = pci_dev_find_vendorclass(0x10DE, 0x0C05);
> - switch (dev->device_id) {
> - case 0x0264: /* MCP51 */
> + case 0x0260: /* MCP51 */
> + case 0x0364: /* MCP55 */
> + /* find SMBus controller on *this* southbridge */
> + /* The infamous Tyan S2915-E has two south bridges; they are
> + easily told apart from each other by the class of the
> + LPC bridge, but have the same SMBus bridge IDs */
> + if (dev->func != 0) {
> + msg_perr("MCP LCP bridge at unexpected function"
> + " number %d\n", dev->func);
> + return -1;
> + }
> +
> + dev = pci_get_dev(pacc, dev->domain, dev->bus, dev->dev, 1);
> + if (!dev) {
> + msg_perr("MCP SMBus controller could not be found\n");
> + return -1;
> + }
> + devclass = pci_read_word(dev, 0x0a);
>
PCI_CLASS_DEVICE instead of 0x0a would be appreciated.
> + if (devclass != 0x0C05) {
> + msg_perr("Unexpected device class %04x for SMBus"
> + " controller\n", devclass);
> + return -1;
> + }
> break;
> - default:
> + default:
> msg_perr("\nERROR: no NVIDIA LPC/SMBus controller found.\n");
> return -1;
> - }
> - break;
> }
>
> base = pci_read_long(dev, 0x64) & 0x0000FF00; /* System control area */
> @@ -618,6 +635,15 @@ static int nvidia_mcp_gpio2_raise(const char *name)
> return nvidia_mcp_gpio_set(0x02, 1);
> }
>
> +
> +/**
> + * Suited for HP xw9400 (Tyan S2915-E OEM): nVidia MCP55.
> + */
>
Please add the comment about the two SMBus devices here as well in case
someone later changes the mcp GPIO code.
> +static int nvidia_mcp_gpio5_raise(const char *name)
> +{
> + return nvidia_mcp_gpio_set(0x05, 1);
> +}
> +
> /**
> * Suited for Abit NF7-S: NVIDIA CK804.
> */
>
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
1
0
This patch unifies the code for different Winbond W83627-family chips,
to be applied before I add another W83627 GPIO raise function.
Pleas comment on whether this approach is too sophisticated or a good
idea.
Signed-off-by: Michael Karcher <flashrom(a)mkarcher.dialup.fu-berlin.de>
---
board_enable.c | 88 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 47 insertions(+), 41 deletions(-)
diff --git a/board_enable.c b/board_enable.c
index b5eb63f..edba408 100644
--- a/board_enable.c
+++ b/board_enable.c
@@ -138,41 +138,67 @@ static int fdc37b787_gpio50_raise_3f0(const char *name)
return fdc37b787_gpio50_raise(0x3f0, name);
}
-/**
- * Winbond W83627HF: Raise GPIO24.
- *
- * Suited for:
- * - Agami Aruma
- * - IWILL DK8-HTX
- */
-static int w83627hf_gpio24_raise(uint16_t port, const char *name)
+struct w83627x_gpio {
+ uint8_t device_id; /* reg 0x20 of the expected w83626x */
+ uint8_t ldn; /* LDN this GPIO register is located in */
+
+ uint8_t mux_reg; /* register that selects GPIO/special fn mux,
+ or 0 if none */
+ uint8_t enable_bit; /* bit in 0x30 of that LDN to enable
+ the GPIO port */
+ uint8_t base; /* base register in that LDN for the port */
+};
+
+static const struct w83627x_gpio w83627hf_2 = {0x52, 0x08, 0x2B, 0, 0xF0};
+static const struct w83627x_gpio w83627thf_4 = {0x82, 0x09, 0, 1, 0xF4};
+
+static int w83627x_gpio_set(uint16_t port, const struct w83627x_gpio * gpio,
+ int bit, int raise)
{
w836xx_ext_enter(port);
- /* Is this the W83627HF? */
- if (sio_read(port, 0x20) != 0x52) { /* Super I/O device ID reg. */
- msg_perr("\nERROR: %s: W83627HF: Wrong ID: 0x%02X.\n",
- name, sio_read(port, 0x20));
+ /* Is this the right Super I/O chip? */
+ if (sio_read(port, 0x20) != gpio->device_id) {
+ msg_perr("\nERROR: W83627x: Wrong ID: 0x%02X, expecting 0x%02X.\n",
+ sio_read(port, 0x20), gpio->device_id);
w836xx_ext_leave(port);
return -1;
}
- /* PIN89S: WDTO/GP24 multiplex -> GPIO24 */
- sio_mask(port, 0x2B, 0x10, 0x10);
+ /* Select logical device */
+ sio_write(port, 0x07, gpio->ldn);
- /* Select logical device 8: GPIO port 2 */
- sio_write(port, 0x07, 0x08);
+ /* Activate logical device. */
+ sio_mask(port, 0x30, 1 << gpio->enable_bit, 1 << gpio->enable_bit);
- sio_mask(port, 0x30, 0x01, 0x01); /* Activate logical device. */
- sio_mask(port, 0xF0, 0x00, 0x10); /* GPIO24 -> output */
- sio_mask(port, 0xF2, 0x00, 0x10); /* Clear GPIO24 inversion */
- sio_mask(port, 0xF1, 0x10, 0x10); /* Raise GPIO24 */
+ /* Select GPIO function of that pin */
+ if(gpio->mux_reg)
+ sio_mask(port, gpio->mux_reg, 1 << bit, 1 << bit);
+
+ sio_mask(port, gpio->base + 0, 0, 1 << bit); /* make pin output */
+ sio_mask(port, gpio->base + 2, 0, 1 << bit); /* Clear inversion */
+ if(raise)
+ sio_mask(port, gpio->base + 1, 1 << bit, 1 << bit);
+ else
+ sio_mask(port, gpio->base + 1, 0, 1 << bit);
w836xx_ext_leave(port);
return 0;
}
+/**
+ * Winbond W83627HF: Raise GPIO24.
+ *
+ * Suited for:
+ * - Agami Aruma
+ * - IWILL DK8-HTX
+ */
+static int w83627hf_gpio24_raise(uint16_t port, const char *name)
+{
+ return w83627x_gpio_set(port, &w83627hf_2, 4, 1);
+}
+
static int w83627hf_gpio24_raise_2e(const char *name)
{
return w83627hf_gpio24_raise(0x2e, name);
@@ -187,27 +213,7 @@ static int w83627hf_gpio24_raise_2e(const char *name)
*/
static int w83627thf_gpio4_4_raise(uint16_t port, const char *name)
{
- w836xx_ext_enter(port);
-
- /* Is this the W83627THF? */
- if (sio_read(port, 0x20) != 0x82) { /* Super I/O device ID reg. */
- msg_perr("\nERROR: %s: W83627THF: Wrong ID: 0x%02X.\n",
- name, sio_read(port, 0x20));
- w836xx_ext_leave(port);
- return -1;
- }
-
- /* PINxxxxS: GPIO4/bit 4 multiplex -> GPIOXXX */
-
- sio_write(port, 0x07, 0x09); /* Select LDN 9: GPIO port 4 */
- sio_mask(port, 0x30, 0x02, 0x02); /* Activate logical device. */
- sio_mask(port, 0xF4, 0x00, 0x10); /* GPIO4 bit 4 -> output */
- sio_mask(port, 0xF6, 0x00, 0x10); /* Clear GPIO4 bit 4 inversion */
- sio_mask(port, 0xF5, 0x10, 0x10); /* Raise GPIO4 bit 4 */
-
- w836xx_ext_leave(port);
-
- return 0;
+ return w83627x_gpio_set(port, &w83627thf_4, 4, 1);
}
static int w83627thf_gpio4_4_raise_2e(const char *name)
--
1.7.1
1
0
May 31, 2010
So far, we have up to 4 different names for the same thing (ignoring
capitalization):
CONFIG_FT2232SPI (makefile config option)
FT2232_SPI_SUPPORT (#define)
ft2232spi (programmer name)
ft2232_spi.c (programmer file)
Use CONFIG_* with underscores for makefile config options and #defines
and kill the useless _SUPPORT idiom.
Use lowercase names with underscores for programmer names and programmer
files.
With this, you can run "grep -i ft2232_spi" and find everything related
to the ft2232_spi driver. Same applies to all other programmers.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Index: flashrom-config_foo_foo_support/flashrom.8
===================================================================
--- flashrom-config_foo_foo_support/flashrom.8 (Revision 1002)
+++ flashrom-config_foo_foo_support/flashrom.8 (Arbeitskopie)
@@ -162,11 +162,11 @@
.sp
.BR "* it87spi" " (for flash ROMs behind an ITE IT87xx Super I/O LPC/SPI translation unit)"
.sp
-.BR "* ft2232spi" " (for flash ROMs attached to a FT2232H/FT4232H based USB SPI programmer)"
+.BR "* ft2232_spi" " (for flash ROMs attached to a FT2232H/FT4232H based USB SPI programmer)"
.sp
.BR "* serprog" " (for flash ROMs attached to Urja's AVR programmer)"
.sp
-.BR "* buspiratespi" " (for flash ROMs attached to a Bus Pirate)"
+.BR "* buspirate_spi" " (for flash ROMs attached to a Bus Pirate)"
.sp
Some programmers have optional or mandatory parameters which are described
in detail in the
@@ -303,10 +303,10 @@
.B portnum
is an I/O port number which must be a multiple of 8.
.TP
-.BR "ft2232spi " programmer
+.BR "ft2232_spi " programmer
An optional parameter species the controller
type and interface/port it should support. For that you have to use the
-.B "flashrom -p ft2232spi:model,port=interface"
+.B "flashrom -p ft2232_spi:model,port=interface"
syntax where
.B model
can be any of
@@ -331,12 +331,12 @@
instead. More information about serprog is available in serprog-protocol.txt in
the source distribution.
.TP
-.BR "buspiratespi " programmer
+.BR "buspirate_spi " programmer
A required dev parameter specifies the Bus Pirate device node and an optional
spispeed parameter specifies the frequency of the SPI bus. The parameter
delimiter is a comma. Syntax is
.sp
-.B "flashrom -p buspiratespi:dev=/dev/device,spispeed=frequency"
+.B "flashrom -p buspirate_spi:dev=/dev/device,spispeed=frequency"
.sp
where
.B frequency
Index: flashrom-config_foo_foo_support/flash.h
===================================================================
--- flashrom-config_foo_foo_support/flash.h (Revision 1002)
+++ flashrom-config_foo_foo_support/flash.h (Arbeitskopie)
@@ -37,44 +37,44 @@
typedef unsigned long chipaddr;
enum programmer {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
PROGRAMMER_INTERNAL,
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
PROGRAMMER_DUMMY,
#endif
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
PROGRAMMER_NIC3COM,
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
PROGRAMMER_NICREALTEK,
PROGRAMMER_NICREALTEK2,
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
PROGRAMMER_GFXNVIDIA,
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
PROGRAMMER_DRKAISER,
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
PROGRAMMER_SATASII,
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
PROGRAMMER_ATAHPT,
#endif
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
PROGRAMMER_IT87SPI,
#endif
-#if FT2232_SPI_SUPPORT == 1
- PROGRAMMER_FT2232SPI,
+#if CONFIG_FT2232_SPI == 1
+ PROGRAMMER_FT2232_SPI,
#endif
-#if SERPROG_SUPPORT == 1
+#if CONFIG_SERPROG == 1
PROGRAMMER_SERPROG,
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
- PROGRAMMER_BUSPIRATESPI,
+#if CONFIG_BUSPIRATE_SPI == 1
+ PROGRAMMER_BUSPIRATE_SPI,
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
PROGRAMMER_DEDIPROG,
#endif
PROGRAMMER_INVALID /* This must always be the last entry. */
@@ -254,7 +254,7 @@
extern struct flashchip flashchips[];
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
struct penable {
uint16_t vendor_id;
uint16_t device_id;
@@ -334,7 +334,7 @@
/* print.c */
char *flashbuses_to_text(enum chipbustype bustype);
void print_supported(void);
-#if (NIC3COM_SUPPORT == 1) || (GFXNVIDIA_SUPPORT == 1) || (DRKAISER_SUPPORT == 1) || (SATASII_SUPPORT == 1) || (ATAHPT_SUPPORT == 1) || (NICREALTEK_SUPPORT == 1)
+#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT >= 1
void print_supported_pcidevs(struct pcidev_status *devs);
#endif
void print_supported_wiki(void);
@@ -386,7 +386,7 @@
#endif
void get_io_perms(void);
void release_io_perms(void);
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
extern int is_laptop;
extern int force_boardenable;
extern int force_boardmismatch;
@@ -422,7 +422,7 @@
void fallback_chip_readn(uint8_t *buf, const chipaddr addr, size_t len);
/* dummyflasher.c */
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
int dummy_init(void);
int dummy_shutdown(void);
void *dummy_map(const char *descr, unsigned long phys_addr, size_t len);
@@ -440,7 +440,7 @@
#endif
/* nic3com.c */
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
int nic3com_init(void);
int nic3com_shutdown(void);
void nic3com_chip_writeb(uint8_t val, chipaddr addr);
@@ -449,7 +449,7 @@
#endif
/* gfxnvidia.c */
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
int gfxnvidia_init(void);
int gfxnvidia_shutdown(void);
void gfxnvidia_chip_writeb(uint8_t val, chipaddr addr);
@@ -458,7 +458,7 @@
#endif
/* drkaiser.c */
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
int drkaiser_init(void);
int drkaiser_shutdown(void);
void drkaiser_chip_writeb(uint8_t val, chipaddr addr);
@@ -467,7 +467,7 @@
#endif
/* nicrealtek.c */
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
int nicrealtek_init(void);
int nicsmc1211_init(void);
int nicrealtek_shutdown(void);
@@ -479,7 +479,7 @@
/* satasii.c */
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
int satasii_init(void);
int satasii_shutdown(void);
void satasii_chip_writeb(uint8_t val, chipaddr addr);
@@ -488,7 +488,7 @@
#endif
/* atahpt.c */
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
int atahpt_init(void);
int atahpt_shutdown(void);
void atahpt_chip_writeb(uint8_t val, chipaddr addr);
@@ -602,7 +602,7 @@
/* spi.c */
enum spi_controller {
SPI_CONTROLLER_NONE,
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
SPI_CONTROLLER_ICH7,
SPI_CONTROLLER_ICH9,
SPI_CONTROLLER_IT87XX,
@@ -610,16 +610,16 @@
SPI_CONTROLLER_VIA,
SPI_CONTROLLER_WBSIO,
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
SPI_CONTROLLER_FT2232,
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
SPI_CONTROLLER_DUMMY,
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
SPI_CONTROLLER_BUSPIRATE,
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
SPI_CONTROLLER_DEDIPROG,
#endif
SPI_CONTROLLER_INVALID /* This must always be the last entry. */
Index: flashrom-config_foo_foo_support/spi25.c
===================================================================
--- flashrom-config_foo_foo_support/spi25.c (Revision 1002)
+++ flashrom-config_foo_foo_support/spi25.c (Arbeitskopie)
@@ -171,23 +171,23 @@
{
/* only some SPI chipsets support 4 bytes commands */
switch (spi_controller) {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
case SPI_CONTROLLER_ICH7:
case SPI_CONTROLLER_ICH9:
case SPI_CONTROLLER_VIA:
case SPI_CONTROLLER_SB600:
case SPI_CONTROLLER_WBSIO:
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
case SPI_CONTROLLER_FT2232:
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
case SPI_CONTROLLER_DUMMY:
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
case SPI_CONTROLLER_BUSPIRATE:
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
case SPI_CONTROLLER_DEDIPROG:
#endif
return probe_spi_rdid_generic(flash, 4);
@@ -949,7 +949,7 @@
int result;
switch (spi_controller) {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
case SPI_CONTROLLER_WBSIO:
msg_cerr("%s: impossible with Winbond SPI masters,"
" degrading to byte program\n", __func__);
Index: flashrom-config_foo_foo_support/buspirate_spi.c
===================================================================
--- flashrom-config_foo_foo_support/buspirate_spi.c (Revision 1002)
+++ flashrom-config_foo_foo_support/buspirate_spi.c (Arbeitskopie)
@@ -116,7 +116,7 @@
}
if (!dev) {
msg_perr("No serial device given. Use flashrom -p "
- "buspiratespi:dev=/dev/ttyUSB0\n");
+ "buspirate_spi:dev=/dev/ttyUSB0\n");
return 1;
}
if (speed) {
Index: flashrom-config_foo_foo_support/spi.c
===================================================================
--- flashrom-config_foo_foo_support/spi.c (Revision 1002)
+++ flashrom-config_foo_foo_support/spi.c (Arbeitskopie)
@@ -41,7 +41,7 @@
.write_256 = NULL,
},
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
{ /* SPI_CONTROLLER_ICH7 */
.command = ich_spi_send_command,
.multicommand = ich_spi_send_multicommand,
@@ -85,7 +85,7 @@
},
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
{ /* SPI_CONTROLLER_FT2232 */
.command = ft2232_spi_send_command,
.multicommand = default_spi_send_multicommand,
@@ -94,7 +94,7 @@
},
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
{ /* SPI_CONTROLLER_DUMMY */
.command = dummy_spi_send_command,
.multicommand = default_spi_send_multicommand,
@@ -103,7 +103,7 @@
},
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
{ /* SPI_CONTROLLER_BUSPIRATE */
.command = buspirate_spi_send_command,
.multicommand = default_spi_send_multicommand,
@@ -112,7 +112,7 @@
},
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
{ /* SPI_CONTROLLER_DEDIPROG */
.command = dediprog_spi_send_command,
.multicommand = default_spi_send_multicommand,
Index: flashrom-config_foo_foo_support/Makefile
===================================================================
--- flashrom-config_foo_foo_support/Makefile (Revision 1002)
+++ flashrom-config_foo_foo_support/Makefile (Arbeitskopie)
@@ -51,7 +51,7 @@
ifeq ($(OS_ARCH), DOS)
CPPFLAGS += -I../libgetopt -I../libpci/include
# Bus Pirate and Serprog are not supported under DOS.
-CONFIG_BUSPIRATESPI = no
+CONFIG_BUSPIRATE_SPI = no
CONFIG_SERPROG = no
endif
@@ -102,7 +102,7 @@
CONFIG_ATAHPT ?= no
# Always enable FT2232 SPI dongles for now.
-CONFIG_FT2232SPI ?= yes
+CONFIG_FT2232_SPI ?= yes
# Always enable dummy tracing for now.
CONFIG_DUMMY ?= yes
@@ -114,7 +114,7 @@
CONFIG_NICREALTEK ?= yes
# Always enable Bus Pirate SPI for now.
-CONFIG_BUSPIRATESPI ?= yes
+CONFIG_BUSPIRATE_SPI ?= yes
# Disable Dediprog SF100 until support is complete and tested.
CONFIG_DEDIPROG ?= no
@@ -123,13 +123,13 @@
CONFIG_PRINT_WIKI ?= no
ifeq ($(CONFIG_INTERNAL), yes)
-FEATURE_CFLAGS += -D'INTERNAL_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_INTERNAL=1'
PROGRAMMER_OBJS += chipset_enable.o board_enable.o cbtable.o dmi.o it87spi.o ichspi.o sb600spi.o wbsio_spi.o internal.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_SERPROG), yes)
-FEATURE_CFLAGS += -D'SERPROG_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_SERPROG=1'
PROGRAMMER_OBJS += serprog.o
ifeq ($(OS_ARCH), SunOS)
LIBS += -lsocket
@@ -137,66 +137,66 @@
endif
ifeq ($(CONFIG_BITBANG_SPI), yes)
-FEATURE_CFLAGS += -D'BITBANG_SPI_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_BITBANG_SPI=1'
PROGRAMMER_OBJS += bitbang_spi.o
endif
ifeq ($(CONFIG_NIC3COM), yes)
-FEATURE_CFLAGS += -D'NIC3COM_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_NIC3COM=1'
PROGRAMMER_OBJS += nic3com.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_GFXNVIDIA), yes)
-FEATURE_CFLAGS += -D'GFXNVIDIA_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_GFXNVIDIA=1'
PROGRAMMER_OBJS += gfxnvidia.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_SATASII), yes)
-FEATURE_CFLAGS += -D'SATASII_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_SATASII=1'
PROGRAMMER_OBJS += satasii.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_ATAHPT), yes)
-FEATURE_CFLAGS += -D'ATAHPT_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_ATAHPT=1'
PROGRAMMER_OBJS += atahpt.o
NEED_PCI := yes
endif
-ifeq ($(CONFIG_FT2232SPI), yes)
+ifeq ($(CONFIG_FT2232_SPI), yes)
FTDILIBS := $(shell pkg-config --libs libftdi 2>/dev/null || printf "%s" "-lftdi -lusb")
# This is a totally ugly hack.
-FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'FT2232_SPI_SUPPORT=1'")
+FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'CONFIG_FT2232_SPI=1'")
FEATURE_LIBS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "$(FTDILIBS)")
PROGRAMMER_OBJS += ft2232_spi.o
endif
ifeq ($(CONFIG_DUMMY), yes)
-FEATURE_CFLAGS += -D'DUMMY_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_DUMMY=1'
PROGRAMMER_OBJS += dummyflasher.o
endif
ifeq ($(CONFIG_DRKAISER), yes)
-FEATURE_CFLAGS += -D'DRKAISER_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_DRKAISER=1'
PROGRAMMER_OBJS += drkaiser.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_NICREALTEK), yes)
-FEATURE_CFLAGS += -D'NICREALTEK_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_NICREALTEK=1'
PROGRAMMER_OBJS += nicrealtek.o
NEED_PCI := yes
endif
-ifeq ($(CONFIG_BUSPIRATESPI), yes)
-FEATURE_CFLAGS += -D'BUSPIRATE_SPI_SUPPORT=1'
+ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
+FEATURE_CFLAGS += -D'CONFIG_BUSPIRATE_SPI=1'
PROGRAMMER_OBJS += buspirate_spi.o
endif
ifeq ($(CONFIG_DEDIPROG), yes)
-FEATURE_CFLAGS += -D'DEDIPROG_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_DEDIPROG=1'
FEATURE_LIBS += -lusb
PROGRAMMER_OBJS += dediprog.o
endif
@@ -205,7 +205,7 @@
ifeq ($(CONFIG_SERPROG), yes)
LIB_OBJS += serial.o
else
-ifeq ($(CONFIG_BUSPIRATESPI), yes)
+ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
LIB_OBJS += serial.o
endif
endif
@@ -231,7 +231,7 @@
endif
ifeq ($(CONFIG_PRINT_WIKI), yes)
-FEATURE_CFLAGS += -D'PRINT_WIKI_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_PRINT_WIKI=1'
CLI_OBJS += print_wiki.o
endif
@@ -304,7 +304,7 @@
.features: features
-ifeq ($(CONFIG_FT2232SPI), yes)
+ifeq ($(CONFIG_FT2232_SPI), yes)
features: compiler
@echo "FEATURES := yes" > .features.tmp
@printf "Checking for FTDI support... "
Index: flashrom-config_foo_foo_support/ft2232_spi.c
===================================================================
--- flashrom-config_foo_foo_support/ft2232_spi.c (Revision 1002)
+++ flashrom-config_foo_foo_support/ft2232_spi.c (Arbeitskopie)
@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
#include <stdio.h>
#include <stdint.h>
Index: flashrom-config_foo_foo_support/cli_classic.c
===================================================================
--- flashrom-config_foo_foo_support/cli_classic.c (Revision 1002)
+++ flashrom-config_foo_foo_support/cli_classic.c (Arbeitskopie)
@@ -38,7 +38,7 @@
enum programmer p;
printf("Usage: %s [-n] [-V] [-f] [-h|-R|-L|"
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
"-z|"
#endif
"-E|-r <file>|-w <file>|-v <file>]\n"
@@ -65,7 +65,7 @@
" -V | --verbose more verbose output\n"
" -c | --chip <chipname> probe only for specified "
"flash chip\n"
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
/* FIXME: --mainboard should be a programmer parameter */
" -m | --mainboard <[vendor:]part> override mainboard "
"detection\n"
@@ -78,7 +78,7 @@
" -i | --image <name> only flash image <name> "
"from flash layout\n"
" -L | --list-supported print supported devices\n"
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
" -z | --list-supported-wiki print supported devices "
"in wiki syntax\n"
#endif
@@ -110,7 +110,7 @@
}
printf("\nYou can specify one of -h, -R, -L, "
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
"-z, "
#endif
"-E, -r, -w, -v or no operation.\n"
@@ -136,7 +136,7 @@
int force = 0;
int read_it = 0, write_it = 0, erase_it = 0, verify_it = 0;
int dont_verify_it = 0, list_supported = 0;
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
int list_supported_wiki = 0;
#endif
int operation_specified = 0;
@@ -236,7 +236,7 @@
erase_it = 1;
break;
case 'm':
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
tempstr = strdup(optarg);
lb_vendor_dev_from_string(tempstr);
#else
@@ -267,7 +267,7 @@
list_supported = 1;
break;
case 'z':
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
if (++operation_specified > 1) {
fprintf(stderr, "More than one operation "
"specified. Aborting.\n");
@@ -343,7 +343,7 @@
exit(0);
}
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
if (list_supported_wiki) {
print_supported_wiki();
exit(0);
@@ -355,7 +355,7 @@
cli_classic_abort_usage(argv[0]);
}
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
if ((programmer != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) {
fprintf(stderr, "Error: --mainboard requires the internal "
"programmer. Aborting.\n");
Index: flashrom-config_foo_foo_support/flashrom.c
===================================================================
--- flashrom-config_foo_foo_support/flashrom.c (Revision 1002)
+++ flashrom-config_foo_foo_support/flashrom.c (Arbeitskopie)
@@ -37,9 +37,9 @@
char *chip_to_probe = NULL;
int verbose = 0;
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
enum programmer programmer = PROGRAMMER_INTERNAL;
-#elif DUMMY_SUPPORT == 1
+#elif CONFIG_DUMMY == 1
enum programmer programmer = PROGRAMMER_DUMMY;
#else
/* If neither internal nor dummy are selected, we must pick a sensible default.
@@ -47,39 +47,39 @@
* if more than one of them is selected. If only one is selected, it is clear
* that the user wants that one to become the default.
*/
-#if NIC3COM_SUPPORT+GFXNVIDIA_SUPPORT+DRKAISER_SUPPORT+SATASII_SUPPORT+ATAHPT_SUPPORT+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_SPI_SUPPORT+DEDIPROG_SUPPORT+NICREALTEK_SUPPORT > 1
-#error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all external programmers except one.
+#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT+CONFIG_FT2232_SPI+CONFIG_SERPROG+CONFIG_BUSPIRATE_SPI+CONFIG_DEDIPROG > 1
+#error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all programmers except one.
#endif
enum programmer programmer =
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
PROGRAMMER_NIC3COM
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
PROGRAMMER_NICREALTEK
PROGRAMMER_NICREALTEK2
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
PROGRAMMER_GFXNVIDIA
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
PROGRAMMER_DRKAISER
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
PROGRAMMER_SATASII
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
PROGRAMMER_ATAHPT
#endif
-#if FT2232_SPI_SUPPORT == 1
- PROGRAMMER_FT2232SPI
+#if CONFIG_FT2232_SPI == 1
+ PROGRAMMER_FT2232_SPI
#endif
-#if SERPROG_SUPPORT == 1
+#if CONFIG_SERPROG == 1
PROGRAMMER_SERPROG
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
- PROGRAMMER_BUSPIRATESPI
+#if CONFIG_BUSPIRATE_SPI == 1
+ PROGRAMMER_BUSPIRATE_SPI
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
PROGRAMMER_DEDIPROG
#endif
;
@@ -106,7 +106,7 @@
};
const struct programmer_entry programmer_table[] = {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
{
.name = "internal",
.init = internal_init,
@@ -125,7 +125,7 @@
},
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
{
.name = "dummy",
.init = dummy_init,
@@ -144,7 +144,7 @@
},
#endif
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
{
.name = "nic3com",
.init = nic3com_init,
@@ -163,7 +163,7 @@
},
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
{
.name = "nicrealtek",
.init = nicrealtek_init,
@@ -199,7 +199,7 @@
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
{
.name = "gfxnvidia",
.init = gfxnvidia_init,
@@ -218,7 +218,7 @@
},
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
{
.name = "drkaiser",
.init = drkaiser_init,
@@ -237,7 +237,7 @@
},
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
{
.name = "satasii",
.init = satasii_init,
@@ -256,7 +256,7 @@
},
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
{
.name = "atahpt",
.init = atahpt_init,
@@ -275,7 +275,7 @@
},
#endif
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
{
.name = "it87spi",
.init = it87spi_init,
@@ -294,9 +294,9 @@
},
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
{
- .name = "ft2232spi",
+ .name = "ft2232_spi",
.init = ft2232_spi_init,
.shutdown = noop_shutdown, /* Missing shutdown */
.map_flash_region = fallback_map,
@@ -313,7 +313,7 @@
},
#endif
-#if SERPROG_SUPPORT == 1
+#if CONFIG_SERPROG == 1
{
.name = "serprog",
.init = serprog_init,
@@ -332,9 +332,9 @@
},
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
{
- .name = "buspiratespi",
+ .name = "buspirate_spi",
.init = buspirate_spi_init,
.shutdown = buspirate_spi_shutdown,
.map_flash_region = fallback_map,
@@ -351,7 +351,7 @@
},
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
{
.name = "dediprog",
.init = dediprog_init,
@@ -1251,7 +1251,7 @@
msg_gerr("SPI programmer table miscompilation!\n");
ret = 1;
}
-#if BITBANG_SPI_SUPPORT == 1
+#if CONFIG_BITBANG_SPI == 1
if (bitbang_spi_master_count - 1 != BITBANG_SPI_INVALID) {
msg_gerr("Bitbanging SPI master table miscompilation!\n");
ret = 1;
@@ -1402,7 +1402,7 @@
}
numbytes = fread(buf, 1, size, image);
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
show_id(buf, size, force);
#endif
fclose(image);
Index: flashrom-config_foo_foo_support/internal.c
===================================================================
--- flashrom-config_foo_foo_support/internal.c (Revision 1002)
+++ flashrom-config_foo_foo_support/internal.c (Arbeitskopie)
@@ -98,7 +98,7 @@
}
#endif
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
struct superio superio = {};
int force_boardenable = 0;
int force_boardmismatch = 0;
Index: flashrom-config_foo_foo_support/layout.c
===================================================================
--- flashrom-config_foo_foo_support/layout.c (Revision 1002)
+++ flashrom-config_foo_foo_support/layout.c (Arbeitskopie)
@@ -23,7 +23,7 @@
#include <ctype.h>
#include "flash.h"
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
char *mainboard_vendor = NULL;
char *mainboard_part = NULL;
#endif
@@ -40,7 +40,7 @@
romlayout_t rom_entries[MAX_ROMLAYOUT];
-#if INTERNAL_SUPPORT == 1 /* FIXME: Move the whole block to cbtable.c? */
+#if CONFIG_INTERNAL == 1 /* FIXME: Move the whole block to cbtable.c? */
static char *def_name = "DEFAULT";
int show_id(uint8_t *bios, int size, int force)
Index: flashrom-config_foo_foo_support/print_wiki.c
===================================================================
--- flashrom-config_foo_foo_support/print_wiki.c (Revision 1002)
+++ flashrom-config_foo_foo_support/print_wiki.c (Arbeitskopie)
@@ -25,7 +25,7 @@
#include "flash.h"
#include "flashchips.h"
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
struct board_info_url {
const char *vendor;
const char *name;
@@ -46,7 +46,7 @@
generated by pasting '''flashrom -z''' output.<br />\
'''Last update:''' %s(generated by flashrom %s)\n</small></div>\n";
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
const char *chipset_th = "{| border=\"0\" style=\"font-size: smaller\"\n\
|- bgcolor=\"#6699dd\"\n! align=\"left\" | Vendor\n\
! align=\"left\" | Southbridge\n! align=\"left\" | PCI IDs\n\
@@ -89,7 +89,7 @@
! align=\"left\" | Device\n! align=\"left\" | PCI IDs\n\
! align=\"left\" | Status\n\n";
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
const char *laptop_intro = "\n== Supported laptops/notebooks ==\n\n\
In general, flashing laptops is more difficult because laptops\n\n\
* often use the flash chip for stuff besides the BIOS,\n\
@@ -582,25 +582,25 @@
time_t t = time(NULL);
printf(wiki_header, ctime(&t), flashrom_version);
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
print_supported_chips_wiki();
print_supported_chipsets_wiki();
print_supported_boards_wiki();
#endif
printf("%s", programmer_section);
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
print_supported_pcidevs_wiki(nics_3com);
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
print_supported_pcidevs_wiki(gfx_nvidia);
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
print_supported_pcidevs_wiki(drkaiser_pcidev);
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
print_supported_pcidevs_wiki(satas_sii);
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
print_supported_pcidevs_wiki(ata_hpt);
#endif
printf("\n|}\n");
Index: flashrom-config_foo_foo_support/print.c
===================================================================
--- flashrom-config_foo_foo_support/print.c (Revision 1002)
+++ flashrom-config_foo_foo_support/print.c (Arbeitskopie)
@@ -144,7 +144,7 @@
}
}
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
void print_supported_chipsets(void)
{
int i, j, chipsetcount = 0;
@@ -227,33 +227,33 @@
void print_supported(void)
{
print_supported_chips();
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
print_supported_chipsets();
print_supported_boards();
#endif
-#if (NIC3COM_SUPPORT == 1) || (GFXNVIDIA_SUPPORT == 1) || (DRKAISER_SUPPORT == 1) || (SATASII_SUPPORT == 1)
+#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT >= 1
printf("\nSupported PCI devices flashrom can use "
"as programmer:\n\n");
#endif
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
print_supported_pcidevs(nics_3com);
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
print_supported_pcidevs(gfx_nvidia);
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
print_supported_pcidevs(drkaiser_pcidev);
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
print_supported_pcidevs(satas_sii);
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
print_supported_pcidevs(ata_hpt);
#endif
}
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
/* Please keep this list alphabetically ordered by vendor/board. */
const struct board_info boards_ok[] = {
/* Verified working boards that don't need write-enables. */
--
http://www.hailfinger.org/
2
4
Author: hailfinger
Date: Mon May 31 17:27:27 2010
New Revision: 1023
URL: http://flashrom.org/trac/coreboot/changeset/1023
Log:
So far, we have up to 4 different names for the same thing (ignoring
capitalization):
CONFIG_FT2232SPI (makefile config option)
FT2232_SPI_SUPPORT (#define)
ft2232spi (programmer name)
ft2232_spi.c (programmer file)
Use CONFIG_* with underscores for makefile config options and #defines
and kill the useless _SUPPORT idiom.
Use lowercase names with underscores for programmer names and programmer
files.
With this, you can run "grep -i ft2232_spi" and find everything related
to the ft2232_spi driver. Same applies to all other programmers.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Acked-by: Uwe Hermann <uwe(a)hermann-uwe.de>
Modified:
trunk/Makefile
trunk/buspirate_spi.c
trunk/cli_classic.c
trunk/flash.h
trunk/flashrom.8
trunk/flashrom.c
trunk/ft2232_spi.c
trunk/internal.c
trunk/layout.c
trunk/print.c
trunk/print_wiki.c
trunk/spi.c
trunk/spi25.c
Modified: trunk/Makefile
==============================================================================
--- trunk/Makefile Mon May 31 00:35:14 2010 (r1022)
+++ trunk/Makefile Mon May 31 17:27:27 2010 (r1023)
@@ -51,7 +51,7 @@
ifeq ($(OS_ARCH), DOS)
CPPFLAGS += -I../libgetopt -I../libpci/include
# Bus Pirate and Serprog are not supported under DOS.
-CONFIG_BUSPIRATESPI = no
+CONFIG_BUSPIRATE_SPI = no
CONFIG_SERPROG = no
endif
@@ -102,7 +102,7 @@
CONFIG_ATAHPT ?= no
# Always enable FT2232 SPI dongles for now.
-CONFIG_FT2232SPI ?= yes
+CONFIG_FT2232_SPI ?= yes
# Always enable dummy tracing for now.
CONFIG_DUMMY ?= yes
@@ -114,7 +114,7 @@
CONFIG_NICREALTEK ?= yes
# Always enable Bus Pirate SPI for now.
-CONFIG_BUSPIRATESPI ?= yes
+CONFIG_BUSPIRATE_SPI ?= yes
# Disable Dediprog SF100 until support is complete and tested.
CONFIG_DEDIPROG ?= no
@@ -123,7 +123,7 @@
CONFIG_PRINT_WIKI ?= no
ifeq ($(CONFIG_INTERNAL), yes)
-FEATURE_CFLAGS += -D'INTERNAL_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_INTERNAL=1'
PROGRAMMER_OBJS += chipset_enable.o board_enable.o cbtable.o dmi.o internal.o
# FIXME: The PROGRAMMER_OBJS below should only be included on x86.
PROGRAMMER_OBJS += it87spi.o ichspi.o sb600spi.o wbsio_spi.o
@@ -131,7 +131,7 @@
endif
ifeq ($(CONFIG_SERPROG), yes)
-FEATURE_CFLAGS += -D'SERPROG_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_SERPROG=1'
PROGRAMMER_OBJS += serprog.o
ifeq ($(OS_ARCH), SunOS)
LIBS += -lsocket
@@ -139,66 +139,66 @@
endif
ifeq ($(CONFIG_BITBANG_SPI), yes)
-FEATURE_CFLAGS += -D'BITBANG_SPI_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_BITBANG_SPI=1'
PROGRAMMER_OBJS += bitbang_spi.o
endif
ifeq ($(CONFIG_NIC3COM), yes)
-FEATURE_CFLAGS += -D'NIC3COM_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_NIC3COM=1'
PROGRAMMER_OBJS += nic3com.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_GFXNVIDIA), yes)
-FEATURE_CFLAGS += -D'GFXNVIDIA_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_GFXNVIDIA=1'
PROGRAMMER_OBJS += gfxnvidia.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_SATASII), yes)
-FEATURE_CFLAGS += -D'SATASII_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_SATASII=1'
PROGRAMMER_OBJS += satasii.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_ATAHPT), yes)
-FEATURE_CFLAGS += -D'ATAHPT_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_ATAHPT=1'
PROGRAMMER_OBJS += atahpt.o
NEED_PCI := yes
endif
-ifeq ($(CONFIG_FT2232SPI), yes)
+ifeq ($(CONFIG_FT2232_SPI), yes)
FTDILIBS := $(shell pkg-config --libs libftdi 2>/dev/null || printf "%s" "-lftdi -lusb")
# This is a totally ugly hack.
-FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'FT2232_SPI_SUPPORT=1'")
+FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'CONFIG_FT2232_SPI=1'")
FEATURE_LIBS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "$(FTDILIBS)")
PROGRAMMER_OBJS += ft2232_spi.o
endif
ifeq ($(CONFIG_DUMMY), yes)
-FEATURE_CFLAGS += -D'DUMMY_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_DUMMY=1'
PROGRAMMER_OBJS += dummyflasher.o
endif
ifeq ($(CONFIG_DRKAISER), yes)
-FEATURE_CFLAGS += -D'DRKAISER_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_DRKAISER=1'
PROGRAMMER_OBJS += drkaiser.o
NEED_PCI := yes
endif
ifeq ($(CONFIG_NICREALTEK), yes)
-FEATURE_CFLAGS += -D'NICREALTEK_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_NICREALTEK=1'
PROGRAMMER_OBJS += nicrealtek.o
NEED_PCI := yes
endif
-ifeq ($(CONFIG_BUSPIRATESPI), yes)
-FEATURE_CFLAGS += -D'BUSPIRATE_SPI_SUPPORT=1'
+ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
+FEATURE_CFLAGS += -D'CONFIG_BUSPIRATE_SPI=1'
PROGRAMMER_OBJS += buspirate_spi.o
endif
ifeq ($(CONFIG_DEDIPROG), yes)
-FEATURE_CFLAGS += -D'DEDIPROG_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_DEDIPROG=1'
FEATURE_LIBS += -lusb
PROGRAMMER_OBJS += dediprog.o
endif
@@ -207,7 +207,7 @@
ifeq ($(CONFIG_SERPROG), yes)
LIB_OBJS += serial.o
else
-ifeq ($(CONFIG_BUSPIRATESPI), yes)
+ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
LIB_OBJS += serial.o
endif
endif
@@ -233,7 +233,7 @@
endif
ifeq ($(CONFIG_PRINT_WIKI), yes)
-FEATURE_CFLAGS += -D'PRINT_WIKI_SUPPORT=1'
+FEATURE_CFLAGS += -D'CONFIG_PRINT_WIKI=1'
CLI_OBJS += print_wiki.o
endif
@@ -308,7 +308,7 @@
.features: features
-ifeq ($(CONFIG_FT2232SPI), yes)
+ifeq ($(CONFIG_FT2232_SPI), yes)
features: compiler
@echo "FEATURES := yes" > .features.tmp
@printf "Checking for FTDI support... "
Modified: trunk/buspirate_spi.c
==============================================================================
--- trunk/buspirate_spi.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/buspirate_spi.c Mon May 31 17:27:27 2010 (r1023)
@@ -116,7 +116,7 @@
}
if (!dev) {
msg_perr("No serial device given. Use flashrom -p "
- "buspiratespi:dev=/dev/ttyUSB0\n");
+ "buspirate_spi:dev=/dev/ttyUSB0\n");
return 1;
}
if (speed) {
Modified: trunk/cli_classic.c
==============================================================================
--- trunk/cli_classic.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/cli_classic.c Mon May 31 17:27:27 2010 (r1023)
@@ -39,7 +39,7 @@
enum programmer p;
printf("Usage: %s [-n] [-V] [-f] [-h|-R|-L|"
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
"-z|"
#endif
"-E|-r <file>|-w <file>|-v <file>]\n"
@@ -66,7 +66,7 @@
" -V | --verbose more verbose output\n"
" -c | --chip <chipname> probe only for specified "
"flash chip\n"
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
/* FIXME: --mainboard should be a programmer parameter */
" -m | --mainboard <[vendor:]part> override mainboard "
"detection\n"
@@ -79,7 +79,7 @@
" -i | --image <name> only flash image <name> "
"from flash layout\n"
" -L | --list-supported print supported devices\n"
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
" -z | --list-supported-wiki print supported devices "
"in wiki syntax\n"
#endif
@@ -111,7 +111,7 @@
}
printf("\nYou can specify one of -h, -R, -L, "
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
"-z, "
#endif
"-E, -r, -w, -v or no operation.\n"
@@ -137,7 +137,7 @@
int force = 0;
int read_it = 0, write_it = 0, erase_it = 0, verify_it = 0;
int dont_verify_it = 0, list_supported = 0;
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
int list_supported_wiki = 0;
#endif
int operation_specified = 0;
@@ -237,7 +237,7 @@
erase_it = 1;
break;
case 'm':
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
tempstr = strdup(optarg);
lb_vendor_dev_from_string(tempstr);
#else
@@ -268,7 +268,7 @@
list_supported = 1;
break;
case 'z':
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
if (++operation_specified > 1) {
fprintf(stderr, "More than one operation "
"specified. Aborting.\n");
@@ -344,7 +344,7 @@
exit(0);
}
-#if PRINT_WIKI_SUPPORT == 1
+#if CONFIG_PRINT_WIKI == 1
if (list_supported_wiki) {
print_supported_wiki();
exit(0);
@@ -356,7 +356,7 @@
cli_classic_abort_usage(argv[0]);
}
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
if ((programmer != PROGRAMMER_INTERNAL) && (lb_part || lb_vendor)) {
fprintf(stderr, "Error: --mainboard requires the internal "
"programmer. Aborting.\n");
Modified: trunk/flash.h
==============================================================================
--- trunk/flash.h Mon May 31 00:35:14 2010 (r1022)
+++ trunk/flash.h Mon May 31 17:27:27 2010 (r1023)
@@ -39,46 +39,46 @@
typedef unsigned long chipaddr;
enum programmer {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
PROGRAMMER_INTERNAL,
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
PROGRAMMER_DUMMY,
#endif
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
PROGRAMMER_NIC3COM,
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
PROGRAMMER_NICREALTEK,
PROGRAMMER_NICREALTEK2,
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
PROGRAMMER_GFXNVIDIA,
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
PROGRAMMER_DRKAISER,
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
PROGRAMMER_SATASII,
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
PROGRAMMER_ATAHPT,
#endif
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
#if defined(__i386__) || defined(__x86_64__)
PROGRAMMER_IT87SPI,
#endif
#endif
-#if FT2232_SPI_SUPPORT == 1
- PROGRAMMER_FT2232SPI,
+#if CONFIG_FT2232_SPI == 1
+ PROGRAMMER_FT2232_SPI,
#endif
-#if SERPROG_SUPPORT == 1
+#if CONFIG_SERPROG == 1
PROGRAMMER_SERPROG,
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
- PROGRAMMER_BUSPIRATESPI,
+#if CONFIG_BUSPIRATE_SPI == 1
+ PROGRAMMER_BUSPIRATE_SPI,
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
PROGRAMMER_DEDIPROG,
#endif
PROGRAMMER_INVALID /* This must always be the last entry. */
@@ -258,7 +258,7 @@
extern struct flashchip flashchips[];
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
struct penable {
uint16_t vendor_id;
uint16_t device_id;
@@ -338,7 +338,7 @@
/* print.c */
char *flashbuses_to_text(enum chipbustype bustype);
void print_supported(void);
-#if (NIC3COM_SUPPORT == 1) || (GFXNVIDIA_SUPPORT == 1) || (DRKAISER_SUPPORT == 1) || (SATASII_SUPPORT == 1) || (ATAHPT_SUPPORT == 1) || (NICREALTEK_SUPPORT == 1)
+#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT >= 1
void print_supported_pcidevs(struct pcidev_status *devs);
#endif
void print_supported_wiki(void);
@@ -390,7 +390,7 @@
#endif
void get_io_perms(void);
void release_io_perms(void);
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
extern int is_laptop;
extern int force_boardenable;
extern int force_boardmismatch;
@@ -432,7 +432,7 @@
void fallback_chip_readn(uint8_t *buf, const chipaddr addr, size_t len);
/* dummyflasher.c */
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
int dummy_init(void);
int dummy_shutdown(void);
void *dummy_map(const char *descr, unsigned long phys_addr, size_t len);
@@ -450,7 +450,7 @@
#endif
/* nic3com.c */
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
int nic3com_init(void);
int nic3com_shutdown(void);
void nic3com_chip_writeb(uint8_t val, chipaddr addr);
@@ -459,7 +459,7 @@
#endif
/* gfxnvidia.c */
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
int gfxnvidia_init(void);
int gfxnvidia_shutdown(void);
void gfxnvidia_chip_writeb(uint8_t val, chipaddr addr);
@@ -468,7 +468,7 @@
#endif
/* drkaiser.c */
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
int drkaiser_init(void);
int drkaiser_shutdown(void);
void drkaiser_chip_writeb(uint8_t val, chipaddr addr);
@@ -477,7 +477,7 @@
#endif
/* nicrealtek.c */
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
int nicrealtek_init(void);
int nicsmc1211_init(void);
int nicrealtek_shutdown(void);
@@ -489,7 +489,7 @@
/* satasii.c */
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
int satasii_init(void);
int satasii_shutdown(void);
void satasii_chip_writeb(uint8_t val, chipaddr addr);
@@ -498,7 +498,7 @@
#endif
/* atahpt.c */
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
int atahpt_init(void);
int atahpt_shutdown(void);
void atahpt_chip_writeb(uint8_t val, chipaddr addr);
@@ -611,7 +611,7 @@
/* spi.c */
enum spi_controller {
SPI_CONTROLLER_NONE,
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
#if defined(__i386__) || defined(__x86_64__)
SPI_CONTROLLER_ICH7,
SPI_CONTROLLER_ICH9,
@@ -621,16 +621,16 @@
SPI_CONTROLLER_WBSIO,
#endif
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
SPI_CONTROLLER_FT2232,
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
SPI_CONTROLLER_DUMMY,
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
SPI_CONTROLLER_BUSPIRATE,
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
SPI_CONTROLLER_DEDIPROG,
#endif
SPI_CONTROLLER_INVALID /* This must always be the last entry. */
Modified: trunk/flashrom.8
==============================================================================
--- trunk/flashrom.8 Mon May 31 00:35:14 2010 (r1022)
+++ trunk/flashrom.8 Mon May 31 17:27:27 2010 (r1023)
@@ -166,11 +166,11 @@
.sp
.BR "* it87spi" " (for flash ROMs behind an ITE IT87xx Super I/O LPC/SPI translation unit)"
.sp
-.BR "* ft2232spi" " (for flash ROMs attached to a FT2232H/FT4232H based USB SPI programmer)"
+.BR "* ft2232_spi" " (for flash ROMs attached to a FT2232H/FT4232H based USB SPI programmer)"
.sp
.BR "* serprog" " (for flash ROMs attached to Urja's AVR programmer)"
.sp
-.BR "* buspiratespi" " (for flash ROMs attached to a Bus Pirate)"
+.BR "* buspirate_spi" " (for flash ROMs attached to a Bus Pirate)"
.sp
Some programmers have optional or mandatory parameters which are described
in detail in the
@@ -307,10 +307,10 @@
.B portnum
is an I/O port number which must be a multiple of 8.
.TP
-.BR "ft2232spi " programmer
+.BR "ft2232_spi " programmer
An optional parameter species the controller
type and interface/port it should support. For that you have to use the
-.B "flashrom -p ft2232spi:model,port=interface"
+.B "flashrom -p ft2232_spi:model,port=interface"
syntax where
.B model
can be any of
@@ -335,12 +335,12 @@
instead. More information about serprog is available in serprog-protocol.txt in
the source distribution.
.TP
-.BR "buspiratespi " programmer
+.BR "buspirate_spi " programmer
A required dev parameter specifies the Bus Pirate device node and an optional
spispeed parameter specifies the frequency of the SPI bus. The parameter
delimiter is a comma. Syntax is
.sp
-.B "flashrom -p buspiratespi:dev=/dev/device,spispeed=frequency"
+.B "flashrom -p buspirate_spi:dev=/dev/device,spispeed=frequency"
.sp
where
.B frequency
Modified: trunk/flashrom.c
==============================================================================
--- trunk/flashrom.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/flashrom.c Mon May 31 17:27:27 2010 (r1023)
@@ -38,9 +38,9 @@
char *chip_to_probe = NULL;
int verbose = 0;
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
enum programmer programmer = PROGRAMMER_INTERNAL;
-#elif DUMMY_SUPPORT == 1
+#elif CONFIG_DUMMY == 1
enum programmer programmer = PROGRAMMER_DUMMY;
#else
/* If neither internal nor dummy are selected, we must pick a sensible default.
@@ -48,39 +48,39 @@
* if more than one of them is selected. If only one is selected, it is clear
* that the user wants that one to become the default.
*/
-#if NIC3COM_SUPPORT+GFXNVIDIA_SUPPORT+DRKAISER_SUPPORT+SATASII_SUPPORT+ATAHPT_SUPPORT+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_SPI_SUPPORT+DEDIPROG_SUPPORT+NICREALTEK_SUPPORT > 1
-#error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all external programmers except one.
+#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT+CONFIG_FT2232_SPI+CONFIG_SERPROG+CONFIG_BUSPIRATE_SPI+CONFIG_DEDIPROG > 1
+#error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all programmers except one.
#endif
enum programmer programmer =
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
PROGRAMMER_NIC3COM
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
PROGRAMMER_NICREALTEK
PROGRAMMER_NICREALTEK2
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
PROGRAMMER_GFXNVIDIA
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
PROGRAMMER_DRKAISER
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
PROGRAMMER_SATASII
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
PROGRAMMER_ATAHPT
#endif
-#if FT2232_SPI_SUPPORT == 1
- PROGRAMMER_FT2232SPI
+#if CONFIG_FT2232_SPI == 1
+ PROGRAMMER_FT2232_SPI
#endif
-#if SERPROG_SUPPORT == 1
+#if CONFIG_SERPROG == 1
PROGRAMMER_SERPROG
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
- PROGRAMMER_BUSPIRATESPI
+#if CONFIG_BUSPIRATE_SPI == 1
+ PROGRAMMER_BUSPIRATE_SPI
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
PROGRAMMER_DEDIPROG
#endif
;
@@ -107,7 +107,7 @@
};
const struct programmer_entry programmer_table[] = {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
{
.name = "internal",
.init = internal_init,
@@ -126,7 +126,7 @@
},
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
{
.name = "dummy",
.init = dummy_init,
@@ -145,7 +145,7 @@
},
#endif
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
{
.name = "nic3com",
.init = nic3com_init,
@@ -164,7 +164,7 @@
},
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
{
.name = "nicrealtek",
.init = nicrealtek_init,
@@ -200,7 +200,7 @@
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
{
.name = "gfxnvidia",
.init = gfxnvidia_init,
@@ -219,7 +219,7 @@
},
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
{
.name = "drkaiser",
.init = drkaiser_init,
@@ -238,7 +238,7 @@
},
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
{
.name = "satasii",
.init = satasii_init,
@@ -257,7 +257,7 @@
},
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
{
.name = "atahpt",
.init = atahpt_init,
@@ -276,7 +276,7 @@
},
#endif
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
#if defined(__i386__) || defined(__x86_64__)
{
.name = "it87spi",
@@ -297,9 +297,9 @@
#endif
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
{
- .name = "ft2232spi",
+ .name = "ft2232_spi",
.init = ft2232_spi_init,
.shutdown = noop_shutdown, /* Missing shutdown */
.map_flash_region = fallback_map,
@@ -316,7 +316,7 @@
},
#endif
-#if SERPROG_SUPPORT == 1
+#if CONFIG_SERPROG == 1
{
.name = "serprog",
.init = serprog_init,
@@ -335,9 +335,9 @@
},
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
{
- .name = "buspiratespi",
+ .name = "buspirate_spi",
.init = buspirate_spi_init,
.shutdown = buspirate_spi_shutdown,
.map_flash_region = fallback_map,
@@ -354,7 +354,7 @@
},
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
{
.name = "dediprog",
.init = dediprog_init,
@@ -1259,7 +1259,7 @@
msg_gerr("SPI programmer table miscompilation!\n");
ret = 1;
}
-#if BITBANG_SPI_SUPPORT == 1
+#if CONFIG_BITBANG_SPI == 1
if (bitbang_spi_master_count - 1 != BITBANG_SPI_INVALID) {
msg_gerr("Bitbanging SPI master table miscompilation!\n");
ret = 1;
@@ -1410,7 +1410,7 @@
}
numbytes = fread(buf, 1, size, image);
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
show_id(buf, size, force);
#endif
fclose(image);
Modified: trunk/ft2232_spi.c
==============================================================================
--- trunk/ft2232_spi.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/ft2232_spi.c Mon May 31 17:27:27 2010 (r1023)
@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
#include <stdio.h>
#include <stdint.h>
Modified: trunk/internal.c
==============================================================================
--- trunk/internal.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/internal.c Mon May 31 17:27:27 2010 (r1023)
@@ -98,7 +98,7 @@
}
#endif
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
int force_boardenable = 0;
int force_boardmismatch = 0;
Modified: trunk/layout.c
==============================================================================
--- trunk/layout.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/layout.c Mon May 31 17:27:27 2010 (r1023)
@@ -24,7 +24,7 @@
#include <ctype.h>
#include "flash.h"
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
char *mainboard_vendor = NULL;
char *mainboard_part = NULL;
#endif
@@ -41,7 +41,7 @@
romlayout_t rom_entries[MAX_ROMLAYOUT];
-#if INTERNAL_SUPPORT == 1 /* FIXME: Move the whole block to cbtable.c? */
+#if CONFIG_INTERNAL == 1 /* FIXME: Move the whole block to cbtable.c? */
static char *def_name = "DEFAULT";
int show_id(uint8_t *bios, int size, int force)
Modified: trunk/print.c
==============================================================================
--- trunk/print.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/print.c Mon May 31 17:27:27 2010 (r1023)
@@ -145,7 +145,7 @@
}
}
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
void print_supported_chipsets(void)
{
int i, j, chipsetcount = 0;
@@ -228,37 +228,37 @@
void print_supported(void)
{
print_supported_chips();
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
print_supported_chipsets();
print_supported_boards();
#endif
-#if (NIC3COM_SUPPORT == 1) || (GFXNVIDIA_SUPPORT == 1) || (DRKAISER_SUPPORT == 1) || (SATASII_SUPPORT == 1)
+#if CONFIG_NIC3COM+CONFIG_NICREALTEK+CONFIG_GFXNVIDIA+CONFIG_DRKAISER+CONFIG_SATASII+CONFIG_ATAHPT >= 1
printf("\nSupported PCI devices flashrom can use "
"as programmer:\n\n");
#endif
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
print_supported_pcidevs(nics_3com);
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
print_supported_pcidevs(nics_realtek);
print_supported_pcidevs(nics_realteksmc1211);
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
print_supported_pcidevs(gfx_nvidia);
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
print_supported_pcidevs(drkaiser_pcidev);
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
print_supported_pcidevs(satas_sii);
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
print_supported_pcidevs(ata_hpt);
#endif
}
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
/* Please keep this list alphabetically ordered by vendor/board. */
const struct board_info boards_ok[] = {
/* Verified working boards that don't need write-enables. */
Modified: trunk/print_wiki.c
==============================================================================
--- trunk/print_wiki.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/print_wiki.c Mon May 31 17:27:27 2010 (r1023)
@@ -25,7 +25,7 @@
#include "flash.h"
#include "flashchips.h"
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
struct board_info_url {
const char *vendor;
const char *name;
@@ -46,7 +46,7 @@
generated by pasting '''flashrom -z''' output.<br />\
'''Last update:''' %s(generated by flashrom %s)\n</small></div>\n";
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
const char *chipset_th = "{| border=\"0\" style=\"font-size: smaller\"\n\
|- bgcolor=\"#6699dd\"\n! align=\"left\" | Vendor\n\
! align=\"left\" | Southbridge\n! align=\"left\" | PCI IDs\n\
@@ -89,7 +89,7 @@
! align=\"left\" | Device\n! align=\"left\" | PCI IDs\n\
! align=\"left\" | Status\n\n";
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
const char *laptop_intro = "\n== Supported laptops/notebooks ==\n\n\
In general, flashing laptops is more difficult because laptops\n\n\
* often use the flash chip for stuff besides the BIOS,\n\
@@ -599,29 +599,29 @@
time_t t = time(NULL);
printf(wiki_header, ctime(&t), flashrom_version);
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
print_supported_chips_wiki(2);
print_supported_chipsets_wiki(3);
print_supported_boards_wiki();
#endif
printf("%s", programmer_section);
-#if NIC3COM_SUPPORT == 1
+#if CONFIG_NIC3COM == 1
print_supported_pcidevs_wiki(nics_3com);
#endif
-#if NICREALTEK_SUPPORT == 1
+#if CONFIG_NICREALTEK == 1
print_supported_pcidevs_wiki(nics_realtek);
print_supported_pcidevs_wiki(nics_realteksmc1211);
#endif
-#if GFXNVIDIA_SUPPORT == 1
+#if CONFIG_GFXNVIDIA == 1
print_supported_pcidevs_wiki(gfx_nvidia);
#endif
-#if DRKAISER_SUPPORT == 1
+#if CONFIG_DRKAISER == 1
print_supported_pcidevs_wiki(drkaiser_pcidev);
#endif
-#if SATASII_SUPPORT == 1
+#if CONFIG_SATASII == 1
print_supported_pcidevs_wiki(satas_sii);
#endif
-#if ATAHPT_SUPPORT == 1
+#if CONFIG_ATAHPT == 1
print_supported_pcidevs_wiki(ata_hpt);
#endif
printf("\n|}\n");
Modified: trunk/spi.c
==============================================================================
--- trunk/spi.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/spi.c Mon May 31 17:27:27 2010 (r1023)
@@ -40,7 +40,7 @@
.write_256 = NULL,
},
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
#if defined(__i386__) || defined(__x86_64__)
{ /* SPI_CONTROLLER_ICH7 */
.command = ich_spi_send_command,
@@ -86,7 +86,7 @@
#endif
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
{ /* SPI_CONTROLLER_FT2232 */
.command = ft2232_spi_send_command,
.multicommand = default_spi_send_multicommand,
@@ -95,7 +95,7 @@
},
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
{ /* SPI_CONTROLLER_DUMMY */
.command = dummy_spi_send_command,
.multicommand = default_spi_send_multicommand,
@@ -104,7 +104,7 @@
},
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
{ /* SPI_CONTROLLER_BUSPIRATE */
.command = buspirate_spi_send_command,
.multicommand = default_spi_send_multicommand,
@@ -113,7 +113,7 @@
},
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
{ /* SPI_CONTROLLER_DEDIPROG */
.command = dediprog_spi_send_command,
.multicommand = default_spi_send_multicommand,
@@ -214,7 +214,7 @@
uint32_t spi_get_valid_read_addr(void)
{
switch (spi_controller) {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
#if defined(__i386__) || defined(__x86_64__)
case SPI_CONTROLLER_ICH7:
/* Return BBAR for ICH chipsets. */
Modified: trunk/spi25.c
==============================================================================
--- trunk/spi25.c Mon May 31 00:35:14 2010 (r1022)
+++ trunk/spi25.c Mon May 31 17:27:27 2010 (r1023)
@@ -171,7 +171,7 @@
{
/* only some SPI chipsets support 4 bytes commands */
switch (spi_controller) {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
#if defined(__i386__) || defined(__x86_64__)
case SPI_CONTROLLER_ICH7:
case SPI_CONTROLLER_ICH9:
@@ -180,16 +180,16 @@
case SPI_CONTROLLER_WBSIO:
#endif
#endif
-#if FT2232_SPI_SUPPORT == 1
+#if CONFIG_FT2232_SPI == 1
case SPI_CONTROLLER_FT2232:
#endif
-#if DUMMY_SUPPORT == 1
+#if CONFIG_DUMMY == 1
case SPI_CONTROLLER_DUMMY:
#endif
-#if BUSPIRATE_SPI_SUPPORT == 1
+#if CONFIG_BUSPIRATE_SPI == 1
case SPI_CONTROLLER_BUSPIRATE:
#endif
-#if DEDIPROG_SUPPORT == 1
+#if CONFIG_DEDIPROG == 1
case SPI_CONTROLLER_DEDIPROG:
#endif
return probe_spi_rdid_generic(flash, 4);
@@ -1023,7 +1023,7 @@
int result;
switch (spi_controller) {
-#if INTERNAL_SUPPORT == 1
+#if CONFIG_INTERNAL == 1
#if defined(__i386__) || defined(__x86_64__)
case SPI_CONTROLLER_WBSIO:
msg_cerr("%s: impossible with Winbond SPI masters,"
1
0
GIGABYTE GA-6BXE works out of the box :)
1
0
I've not actually flashed the BIOS yet, as I'm apprehensive. Having said
this here are the results of commands for your projects reference which
have also been pastebinned http://flashrom.pastebin.com/Ts5FxCHB
/home/naesk$ sudo flashrom
flashrom v0.9.1-r946
No coreboot table found.
Found chipset "Intel ICH5/ICH5R", enabling flash write... OK.
This chipset supports the following protocols: Non-SPI.
Calibrating delay loop... OK.
Found chip "SST SST49LF004A/B" (512 KB, FWH) at physical address
0xfff80000.
No operations were specified.
/home/naesk$ sudo flashrom -r backup.bin
flashrom v0.9.1-r946
No coreboot table found.
Found chipset "Intel ICH5/ICH5R", enabling flash write... OK.
This chipset supports the following protocols: Non-SPI.
Calibrating delay loop... OK.
Found chip "SST SST49LF004A/B" (512 KB, FWH) at physical address
0xfff80000.
Reading flash... done.
/home/naesk$ sudo flashrom -V
flashrom v0.9.1-r946
No coreboot table found.
DMI string system-manufacturer: "System manufacturer"
DMI string system-product-name: "System Product Name"
DMI string system-version: "System Version"
DMI string baseboard-manufacturer: "ASUSTeK Computer Inc."
DMI string baseboard-product-name: "P5P800-SE"
DMI string baseboard-version: "Rev 1.xx"
DMI string chassis-type: "Desktop"
Found chipset "Intel ICH5/ICH5R", enabling flash write...
BIOS Lock Enable: disabled, BIOS Write Enable: enabled, BIOS_CNTL is 0x1
OK.
This chipset supports the following protocols: Non-SPI.
Calibrating delay loop... 853M loops per second, 100 myus = 200 us. OK.
Probing for AMD Am29F010A/B, 128 KB: probe_jedec_common: id1 0x69, id2
0xe9, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMD Am29F002(N)BB, 256 KB: probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMD Am29F002(N)BT, 256 KB: probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMD Am29F016D, 2048 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMD Am29F040B, 512 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMD Am29F080B, 1024 KB: probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMD Am29LV040B, 512 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMD Am29LV081B, 1024 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for ASD AE49F2008, 256 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xbf, id2
0x60
Probing for Atmel AT25DF021, 256 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25DF041A, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25DF081, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25DF161, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25DF321, 4096 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25DF321A, 4096 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT25DF641, 8192 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25F512B, 64 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25FS010, 128 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT25FS040, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT26DF041, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT26DF081A, 1024 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT26DF161, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT26DF161A, 2048 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT26F004, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT29C512, 64 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Atmel AT29C010A, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Atmel AT29C020, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Atmel AT29C040A, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Atmel AT45CS1282, 16896 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT45DB011D, 128 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT45DB021D, 256 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT45DB041D, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Atmel AT45DB081D, 1024 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT45DB161D, 2048 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT45DB321C, 4224 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT45DB321D, 4096 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT45DB642D, 8192 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Atmel AT49BV512, 64 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Atmel AT49F002(N), 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec_common: id1 0xbf,
id2 0x60
Probing for AMIC A25L40PT, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for AMIC A25L40PU, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for AMIC A29002B, 256 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMIC A29002T, 256 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMIC A29040B, 512 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for AMIC A49LF040A, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for EMST F49B002UA, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Eon EN25B05, 64 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25B05T, 64 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25B10, 128 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25B10T, 128 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B20, 256 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25B20T, 256 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B40, 512 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25B40T, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B80, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B80T, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B16, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B16T, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B32, 4096 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B32T, 4096 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B64, 8192 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25B64T, 8192 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25D16, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25F05, 64 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25F10, 128 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25F20, 256 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25F40, 512 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for Eon EN25F80, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25F16, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN25F32, 4096 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Eon EN29F010, 128 KB: probe_jedec_common: id1 0x69, id2
0xe9, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for EON EN29F002(A)(N)B, 256 KB: probe_jedec_common: id1 0x3f,
id2 0x46, id1 parity violation, id1 is normal flash content, id2 is
normal flash content
Probing for EON EN29F002(A)(N)T, 256 KB: probe_jedec_common: id1 0x3f,
id2 0x46, id1 parity violation, id1 is normal flash content, id2 is
normal flash content
Probing for Fujitsu MBM29F004BC, 512 KB: probe_jedec_common: id1 0xff,
id2 0xff, id1 parity violation, id1 is normal flash content, id2 is
normal flash content
Probing for Fujitsu MBM29F004TC, 512 KB: probe_jedec_common: id1 0xff,
id2 0xff, id1 parity violation, id1 is normal flash content, id2 is
normal flash content
Probing for Fujitsu MBM29F400BC, 512 KB: probe_m29f400bt: id1 0xff, id2
0xff
Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0xff, id2
0xff
Probing for Intel 28F001BX-B, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Intel 28F001BX-T, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Intel 28F004S5, 512 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for Intel 82802AB, 512 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for Intel 82802AC, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for Macronix MX25L512, 64 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Macronix MX25L1005, 128 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L2005, 256 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L4005, 512 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L8005, 1024 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L1605, 2048 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L1635D, 2048 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L3205, 4096 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L3235D, 4096 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L6405, 8192 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Macronix MX25L12805, 16384 KB: skipped. Host bus type
Non-SPI and chip bus type SPI are incompatible.
Probing for Macronix MX29F001B, 128 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x69, id2
0xe9, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Macronix MX29F001T, 128 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x69, id2
0xe9, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Macronix MX29F002B, 256 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Macronix MX29F002T, 256 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Macronix MX29LV040, 512 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Numonyx M25PE10, 128 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Numonyx M25PE20, 256 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Numonyx M25PE40, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Numonyx M25PE80, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Numonyx M25PE16, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for PMC Pm25LV010, 128 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for PMC Pm25LV016B, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for PMC Pm25LV020, 256 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for PMC Pm25LV040, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for PMC Pm25LV080B, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for PMC Pm25LV512, 64 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for PMC Pm29F002T, 256 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for PMC Pm29F002B, 256 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for PMC Pm39LV010, 128 KB: probe_jedec_common: id1 0x69, id2
0xe9, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for PMC Pm49FL002, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for PMC Pm49FL004, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Sanyo LF25FW203A, 2048 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Sharp LHF00L04, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for Spansion S25FL008A, 1024 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Spansion S25FL016A, 2048 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for SST SST25VF016B, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for SST SST25VF032B, 4096 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for SST SST25VF040.REMS, 512 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for SST SST25VF040B, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for SST SST25VF040B.REMS, 512 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for SST SST25VF080B, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for SST SST28SF040A, 512 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for SST SST29EE010, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST29LE010, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST29EE020A, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST29LE020, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39SF512, 64 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39SF010A, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39SF020A, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39SF040, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39VF512, 64 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39VF010, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39VF020, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39VF040, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST39VF080, 1024 KB: probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for SST SST49LF002A/B, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST49LF003A/B, 384 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST49LF004A/B, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Found chip "SST SST49LF004A/B" (512 KB, FWH) at physical address
0xfff80000.
Lock status for 0x000000 (size 0x010000) is 00, full access
Lock status for 0x010000 (size 0x010000) is 00, full access
Lock status for 0x020000 (size 0x010000) is 00, full access
Lock status for 0x030000 (size 0x010000) is 00, full access
Lock status for 0x040000 (size 0x010000) is 00, full access
Lock status for 0x050000 (size 0x010000) is 00, full access
Lock status for 0x060000 (size 0x010000) is 00, full access
Lock status for 0x070000 (size 0x010000) is 00, full access
Probing for SST SST49LF004C, 512 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for SST SST49LF008A, 1024 KB: probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for SST SST49LF008C, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for SST SST49LF016C, 2048 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for SST SST49LF020, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST49LF020A, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST49LF040, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST49LF040B, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for SST SST49LF080A, 1024 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for SST SST49LF160C, 2048 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M25P05-A, 64 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P05.RES, 64 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for ST M25P10-A, 128 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P10.RES, 128 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for ST M25P20, 256 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P40, 512 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P40-old, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for ST M25P80, 1024 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P16, 2048 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P32, 4096 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P64, 8192 KB: skipped. Host bus type Non-SPI and chip
bus type SPI are incompatible.
Probing for ST M25P128, 16384 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for ST M29F002B, 256 KB: probe_jedec_common: id1 0x3f, id2 0x46,
id1 parity violation, id1 is normal flash content, id2 is normal flash
content
Probing for ST M29F002T/NT, 256 KB: probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for ST M29F040B, 512 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0xff, id2 0xff
Probing for ST M29W010B, 128 KB: probe_jedec_common: id1 0x69, id2 0xe9,
id1 parity violation, id1 is normal flash content, id2 is normal flash
content
Probing for ST M29W040B, 512 KB: probe_jedec_common: id1 0xff, id2 0xff,
id1 parity violation, id1 is normal flash content, id2 is normal flash
content
Probing for ST M29W512B, 64 KB: probe_jedec_common: id1 0xfc, id2 0xa3,
id1 parity violation, id1 is normal flash content, id2 is normal flash
content
Probing for ST M50FLW040A, 512 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50FLW040B, 512 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50FLW080A, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50FLW080B, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50FW002, 256 KB: probe_82802ab: id1 0x3f, id2 0x46
Probing for ST M50FW016, 2048 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50FW040, 512 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50FW080, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for ST M50LPW116, 2048 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for SyncMOS S29C31004T, 512 KB: probe_jedec_common: id1 0xbf,
id2 0x60
Probing for SyncMOS S29C51001T, 128 KB: probe_jedec_common: id1 0xbf,
id2 0x60
Probing for SyncMOS S29C51002T, 256 KB: probe_jedec_common: id1 0xbf,
id2 0x60
Probing for SyncMOS S29C51004T, 512 KB: probe_jedec_common: id1 0xbf,
id2 0x60
Probing for TI TMS29F002RB, 256 KB: probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for TI TMS29F002RT, 256 KB: probe_jedec_common: id1 0x3f, id2
0x46, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Winbond W25x10, 128 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Winbond W25x20, 256 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Winbond W25x40, 512 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Winbond W25x80, 1024 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Winbond W25x16, 2048 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Winbond W25x32, 4096 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Winbond W25x64, 8192 KB: skipped. Host bus type Non-SPI and
chip bus type SPI are incompatible.
Probing for Winbond W29C011, 128 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W29C020C, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W29C040P, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W29EE011, 128 KB: Probing disabled for Winbond
W29EE011 because the probing sequence puts the AMIC A49LF040A in a funky
state. Use 'flashrom -c W29EE011' if you have a board with this chip.
Probing for Winbond W39V040A, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W39V040B, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W39V040C, 512 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W39V040FA, 512 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W39V080A, 1024 KB: probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Winbond W49F002U, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W49V002A, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W49V002FA, 256 KB: probe_jedec_common: id1 0xbf, id2
0x60
Probing for Winbond W39V080FA, 1024 KB: Chip lacks correct probe timing
information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2
0xff, id1 parity violation, id1 is normal flash content, id2 is normal
flash content
Probing for Winbond W39V080FA (dual mode), 512 KB: Chip lacks correct
probe timing information, using default 10mS/40uS. probe_jedec_common:
id1 0xbf, id2 0x60
Probing for Atmel unknown Atmel SPI chip, 0 KB: skipped. Host bus type
Non-SPI and chip bus type SPI are incompatible.
Probing for EON unknown EON SPI chip, 0 KB: skipped. Host bus type
Non-SPI and chip bus type SPI are incompatible.
Probing for Macronix unknown Macronix SPI chip, 0 KB: skipped. Host bus
type Non-SPI and chip bus type SPI are incompatible.
Probing for PMC unknown PMC SPI chip, 0 KB: skipped. Host bus type
Non-SPI and chip bus type SPI are incompatible.
Probing for SST unknown SST SPI chip, 0 KB: skipped. Host bus type
Non-SPI and chip bus type SPI are incompatible.
Probing for ST unknown ST SPI chip, 0 KB: skipped. Host bus type Non-SPI
and chip bus type SPI are incompatible.
Probing for Sanyo unknown Sanyo SPI chip, 0 KB: skipped. Host bus type
Non-SPI and chip bus type SPI are incompatible.
Probing for Generic unknown SPI chip (RDID), 0 KB: skipped. Host bus
type Non-SPI and chip bus type SPI are incompatible.
Probing for Generic unknown SPI chip (REMS), 0 KB: skipped. Host bus
type Non-SPI and chip bus type SPI are incompatible.
No operations were specified.
/home/naesk$ lspci -nnvvxxx
00:00.0 Host bridge [0600]: Intel Corporation 82865G/PE/P DRAM
Controller/Host-Hub Interface [8086:2570] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:80f2]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ >SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
Capabilities: <access denied>
Kernel driver in use: agpgart-intel
Kernel modules: intel-agp
00: 86 80 70 25 06 01 90 20 02 00 00 06 00 00 00 00
10: 08 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 f2 80
30: 00 00 00 00 e4 00 00 00 00 00 00 00 00 00 00 00
00:01.0 PCI bridge [0604]: Intel Corporation 82865G/PE/P PCI to AGP
Controller [8086:2571] (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Latency: 64
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: f9000000-fbefffff
Prefetchable memory behind bridge: e0000000-f7ffffff
Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA+ MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Kernel modules: shpchp
00: 86 80 71 25 07 01 a0 00 02 00 04 06 00 40 01 00
10: 00 00 00 00 00 00 00 00 00 01 01 40 d0 d0 a0 22
20: 00 f9 e0 fb 00 e0 f0 f7 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00
00:06.0 System peripheral [0880]: Intel Corporation 82865G/PE/P
Processor to I/O Memory Interface [8086:2576] (rev 02)
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Region 0: Memory at fecf0000 (32-bit, non-prefetchable) [size=4K]
00: 86 80 76 25 02 00 80 00 02 00 80 08 00 00 00 00
10: 00 00 cf fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:1d.0 USB Controller [0c03]: Intel Corporation 82801EB/ER (ICH5/ICH5R)
USB UHCI Controller #1 [8086:24d2] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 4: I/O ports at b800 [size=32]
Kernel driver in use: uhci_hcd
00: 86 80 d2 24 05 00 80 02 02 00 03 0c 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 b8 00 00 00 00 00 00 00 00 00 00 43 10 a6 80
30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00
00:1d.1 USB Controller [0c03]: Intel Corporation 82801EB/ER (ICH5/ICH5R)
USB UHCI Controller #2 [8086:24d4] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 19
Region 4: I/O ports at c000 [size=32]
Kernel driver in use: uhci_hcd
00: 86 80 d4 24 05 00 80 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 c0 00 00 00 00 00 00 00 00 00 00 43 10 a6 80
30: 00 00 00 00 00 00 00 00 00 00 00 00 03 02 00 00
00:1d.2 USB Controller [0c03]: Intel Corporation 82801EB/ER (ICH5/ICH5R)
USB UHCI Controller #3 [8086:24d7] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin C routed to IRQ 18
Region 4: I/O ports at c400 [size=32]
Kernel driver in use: uhci_hcd
00: 86 80 d7 24 05 00 80 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 c4 00 00 00 00 00 00 00 00 00 00 43 10 a6 80
30: 00 00 00 00 00 00 00 00 00 00 00 00 05 03 00 00
00:1d.3 USB Controller [0c03]: Intel Corporation 82801EB/ER (ICH5/ICH5R)
USB UHCI Controller #4 [8086:24de] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 4: I/O ports at c800 [size=32]
Kernel driver in use: uhci_hcd
00: 86 80 de 24 05 00 80 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 c8 00 00 00 00 00 00 00 00 00 00 43 10 a6 80
30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00
00:1d.7 USB Controller [0c03]: Intel Corporation 82801EB/ER (ICH5/ICH5R)
USB2 EHCI Controller [8086:24dd] (rev 02) (prog-if 20)
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin D routed to IRQ 23
Region 0: Memory at f8fffc00 (32-bit, non-prefetchable) [size=1K]
Capabilities: <access denied>
Kernel driver in use: ehci_hcd
00: 86 80 dd 24 06 01 90 02 02 20 03 0c 00 00 00 00
10: 00 fc ff f8 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 a6 80
30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 04 00 00
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge
[8086:244e] (rev c2)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=64
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fbf00000-fbffffff
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Kernel modules: shpchp
00: 86 80 4e 24 07 01 80 00 c2 00 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 02 02 40 e0 e0 80 22
20: f0 fb f0 fb f0 ff 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00
00:1f.0 ISA bridge [0601]: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC
Interface Bridge [8086:24d0] (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Kernel modules: iTCO_wdt, intel-rng
00: 86 80 d0 24 0f 00 80 02 02 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:1f.1 IDE interface [0101]: Intel Corporation 82801EB/ER (ICH5/ICH5R)
IDE Controller [8086:24db] (rev 02) (prog-if 8a [Master SecP PriP])
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 18
Region 0: I/O ports at 01f0 [size=8]
Region 1: I/O ports at 03f4 [size=1]
Region 2: I/O ports at 0170 [size=8]
Region 3: I/O ports at 0374 [size=1]
Region 4: I/O ports at fc00 [size=16]
Region 5: Memory at c0000000 (32-bit, non-prefetchable) [size=1K]
Kernel driver in use: ata_piix
00: 86 80 db 24 07 00 80 02 02 8a 01 01 00 00 00 00
10: 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
20: 01 fc 00 00 00 00 00 c0 00 00 00 00 43 10 a6 80
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00
00:1f.2 IDE interface [0101]: Intel Corporation 82801EB (ICH5) SATA
Controller [8086:24d1] (rev 02) (prog-if 8f [Master SecP SecO PriP
PriO])
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 18
Region 0: I/O ports at a800 [size=8]
Region 1: I/O ports at a400 [size=4]
Region 2: I/O ports at a000 [size=8]
Region 3: I/O ports at 9800 [size=4]
Region 4: I/O ports at 9400 [size=16]
Kernel driver in use: ata_piix
00: 86 80 d1 24 05 00 a0 02 02 8f 01 01 00 00 00 00
10: 01 a8 00 00 01 a4 00 00 01 a0 00 00 01 98 00 00
20: 01 94 00 00 00 00 00 00 00 00 00 00 43 10 a6 80
30: 00 00 00 00 00 00 00 00 00 00 00 00 05 01 00 00
00:1f.3 SMBus [0c05]: Intel Corporation 82801EB/ER (ICH5/ICH5R) SMBus
Controller [8086:24d3] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:80a6]
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin B routed to IRQ 6
Region 4: I/O ports at 0400 [size=32]
Kernel modules: i2c-i801
00: 86 80 d3 24 01 00 80 02 02 00 05 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 04 00 00 00 00 00 00 00 00 00 00 43 10 a6 80
30: 00 00 00 00 00 00 00 00 00 00 00 00 06 02 00 00
00:1f.5 Multimedia audio controller [0401]: Intel Corporation 82801EB/ER
(ICH5/ICH5R) AC'97 Audio Controller [8086:24d5] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:810d]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 17
Region 0: I/O ports at b400 [size=256]
Region 1: I/O ports at b000 [size=64]
Region 2: Memory at f8fff800 (32-bit, non-prefetchable) [size=512]
Region 3: Memory at f8fff400 (32-bit, non-prefetchable) [size=256]
Capabilities: <access denied>
Kernel driver in use: Intel ICH
Kernel modules: snd-intel8x0
00: 86 80 d5 24 07 00 90 02 02 00 01 04 00 00 00 00
10: 01 b4 00 00 01 b0 00 00 00 f8 ff f8 00 f4 ff f8
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 0d 81
30: 00 00 00 00 50 00 00 00 00 00 00 00 06 02 00 00
01:00.0 VGA compatible controller [0300]: nVidia Corporation NV44A
[GeForce 6200] [10de:0221] (rev a1)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 248 (1250ns min, 250ns max)
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at e0000000 (32-bit, prefetchable) [size=256M]
Region 2: Memory at f9000000 (32-bit, non-prefetchable) [size=16M]
[virtual] Expansion ROM at fbee0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidia-current, nvidia-173, nvidiafb, nouveau
00: de 10 21 02 07 01 b0 02 a1 00 00 03 00 f8 00 00
10: 00 00 00 fa 08 00 00 e0 00 00 00 f9 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 60 00 00 00 00 00 00 00 0a 01 05 01
02:05.0 Ethernet controller [0200]: Intel Corporation 82540EM Gigabit
Ethernet Controller [8086:100e] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:80ee]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (63750ns min), Cache Line Size: 16 bytes
Interrupt: pin A routed to IRQ 22
Region 0: Memory at fbfe0000 (32-bit, non-prefetchable) [size=128K]
Region 2: I/O ports at e800 [size=64]
Capabilities: <access denied>
Kernel driver in use: e1000
Kernel modules: e1000
00: 86 80 0e 10 17 01 30 02 02 00 00 02 04 40 00 00
10: 00 00 fe fb 00 00 00 00 01 e8 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 ee 80
30: 00 00 00 00 dc 00 00 00 00 00 00 00 0b 01 ff 00
02:0b.0 Multimedia controller [0480]: Philips Semiconductors
SAA7131/SAA7133/SAA7135 Video Broadcast Decoder [1131:7133] (rev d0)
Subsystem: Pinnacle Systems Inc. Device [11bd:002f]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (21000ns min, 8000ns max)
Interrupt: pin A routed to IRQ 23
Region 0: Memory at fbfdb800 (32-bit, non-prefetchable) [size=2K]
Capabilities: <access denied>
Kernel driver in use: saa7134
Kernel modules: saa7134
00: 31 11 33 71 06 01 90 02 d0 00 80 04 00 40 00 00
10: 00 b8 fd fb 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 bd 11 2f 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 54 20
02:0c.0 Network controller [0280]: RaLink RT2561/RT61 802.11g PCI
[1814:0301]
Subsystem: RaLink Device [1814:2561]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Latency: 64, Cache Line Size: 128 bytes
Interrupt: pin A routed to IRQ 20
Region 0: Memory at fbfd0000 (32-bit, non-prefetchable) [size=32K]
Capabilities: <access denied>
Kernel driver in use: rt61pci
Kernel modules: rt61pci
00: 14 18 01 03 17 01 10 04 00 00 80 02 20 40 00 00
10: 00 00 fd fb 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 01 06 00 00 14 18 61 25
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00
/home/naesk$ sudo superiotool -deV
superiotool r3844
Probing for ALi Super I/O at 0x3f0...
Failed. Returned data: id=0xffff, rev=0xff
Probing for ALi Super I/O at 0x370...
Failed. Returned data: id=0xffff, rev=0xff
Probing for Fintek Super I/O at 0x2e...
Failed. Returned data: vid=0x4400, id=0x6388
Probing for Fintek Super I/O at 0x4e...
Failed. Returned data: vid=0xffff, id=0xffff
Probing for ITE Super I/O (init=standard) at 0x2e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8761e) at 0x2e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8228e) at 0x2e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x2e...
Failed. Returned data: id=0x8863, rev=0xf
Probing for ITE Super I/O (init=standard) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8761e) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8228e) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8661f) at 0x370...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8671f) at 0x370...
Failed. Returned data: id=0xffff, rev=0xf
Probing for NSC Super I/O at 0x2e...
Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x4e...
Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x15c...
Failed. Returned data: port=0xff, port+1=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370...
Failed. Returned data: id=0xff, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x2e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x2e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e...
Found Winbond W83627EHF/EF/EHG/EG (id=0x88, rev=0x63) at 0x2e
Register dump:
idx 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
val 88 63 ff 00 44 00 00 ff 50 04 00 00 98 21 00 ff
def 88 MM ff 00 MM 00 MM RR 50 04 00 RR 00 21 00 00
LDN 0x00 (Floppy)
idx 30 60 61 70 74 f0 f1 f2 f4 f5
val 00 03 f0 06 02 0e 00 ff 00 00
def 01 03 f0 06 02 8e 00 ff 00 00
LDN 0x01 (Parallel port)
idx 30 60 61 70 74 f0
val 01 03 78 07 03 3a
def 01 03 78 07 04 3f
LDN 0x02 (COM1)
idx 30 60 61 70 f0
val 01 03 f8 04 00
def 01 03 f8 04 00
LDN 0x03 (COM2)
idx 30 60 61 70 f0 f1
val 00 02 f8 03 00 00
def 01 02 f8 03 00 00
LDN 0x05 (Keyboard)
idx 30 60 61 62 63 70 72 f0
val 01 00 60 00 64 01 0c 83
def 01 00 60 00 64 01 0c 83
LDN 0x06 (Serial flash interface)
idx 30 62 63
val 00 ff ff
def 00 00 00
LDN 0x07 (GPIO 1, GPIO 6, game port, MIDI port)
idx 30 60 61 62 63 70 f0 f1 f2 f3 f4 f5 f6 f7
val 00 02 01 03 30 00 ff ff ff ff ff ff ff 00
def 00 02 01 03 30 09 ff 00 00 00 ff 00 00 00
LDN 0x08 (WDTO#, PLED)
idx 30 f5 f6 f7
val 00 ff 00 ff
def 00 00 00 00
LDN 0x09 (GPIO 2, GPIO 3, GPIO 4, GPIO 5, SUSLED)
idx 30 e0 e1 e2 e3 e4 e5 f0 f1 f2 f3 f4 f5 f6 f7
val 0b fe 20 00 f7 08 00 f3 0c 00 09 ff ff ff ff
def 00 ff 00 00 ff 00 00 ff 00 00 00 ff 00 00 00
LDN 0x0a (ACPI)
idx 30 70 e0 e1 e2 e3 e4 e5 e6 e7 e8 f2 f3 f4 f6 f7
val 01 00 00 00 ff 24 00 02 0c 10 09 7d 00 00 00 00
def 00 00 01 00 ff 08 00 RR 00 00 RR 7c 00 00 00 00
LDN 0x0b (Hardware monitor)
idx 30 60 61 70 f0 f1
val 01 02 90 00 c1 16
def 00 00 00 00 c1 00
Hardware monitor (0x0295)
Probing for Winbond Super I/O (init=0x88) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
1
0
Add support for RayeR SPIPGM hardware as described in
http://rayer.ic.cz/elektro/spipgm.htm
Thanks go to Martin Rehak for giving me his SPIPGM source code as reference.
Should work on all supported platforms (maybe even Windows, not sure
about that), but you may have to unload any parport drivers on Linux to
avoid any interactions between flashrom and other stuff
accessing/watching the parallel port.
Side note: I expect this to be slower than the original SPIPGM software
because the flashrom SPI code has a few unnecessary delays which I'll
eliminate in a separate patch.
Tests of probing are sufficient for now. If probing fails, I will try to
fix it.
Usage:
flashrom -V -p rayerbitbangspi
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Index: flashrom-bitbang_spi_rayer/flash.h
===================================================================
--- flashrom-bitbang_spi_rayer/flash.h (Revision 1013)
+++ flashrom-bitbang_spi_rayer/flash.h (Arbeitskopie)
@@ -79,6 +79,9 @@
#if DEDIPROG_SUPPORT == 1
PROGRAMMER_DEDIPROG,
#endif
+#if RAYER_BITBANG_SPI_SUPPORT == 1
+ PROGRAMMER_RAYER_BITBANG_SPI,
+#endif
PROGRAMMER_INVALID /* This must always be the last entry. */
};
@@ -126,6 +129,7 @@
void programmer_delay(int usecs);
enum bitbang_spi_master {
+ BITBANG_SPI_MASTER_RAYER,
BITBANG_SPI_INVALID /* This must always be the last entry. */
};
@@ -512,6 +516,13 @@
int ft2232_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len);
int ft2232_spi_write_256(struct flashchip *flash, uint8_t *buf);
+/* rayer_bitbang_spi.c */
+int rayer_bitbang_spi_init(void);
+void rayer_bitbang_set_cs(int val);
+void rayer_bitbang_set_sck(int val);
+void rayer_bitbang_set_mosi(int val);
+int rayer_bitbang_get_miso(void);
+
/* bitbang_spi.c */
extern int bitbang_spi_half_period;
extern const struct bitbang_spi_master_entry bitbang_spi_master_table[];
@@ -632,6 +643,9 @@
#if DEDIPROG_SUPPORT == 1
SPI_CONTROLLER_DEDIPROG,
#endif
+#if RAYER_BITBANG_SPI_SUPPORT == 1
+ SPI_CONTROLLER_RAYER_BITBANG,
+#endif
SPI_CONTROLLER_INVALID /* This must always be the last entry. */
};
extern const int spi_programmer_count;
Index: flashrom-bitbang_spi_rayer/hwaccess.h
===================================================================
--- flashrom-bitbang_spi_rayer/hwaccess.h (Revision 1013)
+++ flashrom-bitbang_spi_rayer/hwaccess.h (Arbeitskopie)
@@ -169,6 +169,10 @@
#define __DARWIN__
#endif
+/* Clarification about OUTB/OUTW/OUTL argument order:
+ * OUT[BWL](val, port)
+ */
+
#if defined(__FreeBSD__) || defined(__DragonFly__)
#include <machine/cpufunc.h>
#define off64_t off_t
Index: flashrom-bitbang_spi_rayer/bitbang_spi.c
===================================================================
--- flashrom-bitbang_spi_rayer/bitbang_spi.c (Revision 1013)
+++ flashrom-bitbang_spi_rayer/bitbang_spi.c (Arbeitskopie)
@@ -32,11 +32,18 @@
enum bitbang_spi_master bitbang_spi_master = BITBANG_SPI_INVALID;
const struct bitbang_spi_master_entry bitbang_spi_master_table[] = {
- {}, /* This entry corresponds to BITBANG_SPI_INVALID. */
+ {
+ .set_cs = rayer_bitbang_set_cs,
+ .set_sck = rayer_bitbang_set_sck,
+ .set_mosi = rayer_bitbang_set_mosi,
+ .get_miso = rayer_bitbang_get_miso,
+ },
+ {}, /* This entry corresponds to SPI_BITBANG_INVALID. */
};
const int bitbang_spi_master_count = ARRAY_SIZE(bitbang_spi_master_table);
+/* Note that CS# is active low, so val=0 means the chip is active. */
void bitbang_spi_set_cs(int val)
{
bitbang_spi_master_table[bitbang_spi_master].set_cs(val);
Index: flashrom-bitbang_spi_rayer/spi.c
===================================================================
--- flashrom-bitbang_spi_rayer/spi.c (Revision 1013)
+++ flashrom-bitbang_spi_rayer/spi.c (Arbeitskopie)
@@ -123,6 +123,15 @@
},
#endif
+#if RAYER_BITBANG_SPI_SUPPORT == 1
+ { /* SPI_CONTROLLER_RAYER_BITBANG */
+ .command = bitbang_spi_send_command,
+ .multicommand = default_spi_send_multicommand,
+ .read = bitbang_spi_read,
+ .write_256 = bitbang_spi_write_256,
+ },
+#endif
+
{}, /* This entry corresponds to SPI_CONTROLLER_INVALID. */
};
Index: flashrom-bitbang_spi_rayer/Makefile
===================================================================
--- flashrom-bitbang_spi_rayer/Makefile (Revision 1013)
+++ flashrom-bitbang_spi_rayer/Makefile (Arbeitskopie)
@@ -85,8 +85,15 @@
# Always enable serprog for now. Needs to be disabled on Windows.
CONFIG_SERPROG ?= yes
-# Bitbanging SPI infrastructure is not used yet.
+# RayeR SPIPGM hardware support
+CONFIG_RAYER_BITBANG_SPI ?= yes
+
+# Bitbanging SPI infrastructure, default off unless needed.
+ifeq ($(CONFIG_RAYER_BITBANG_SPI), yes)
+CONFIG_BITBANG_SPI = yes
+else
CONFIG_BITBANG_SPI ?= no
+endif
# Always enable 3Com NICs for now.
CONFIG_NIC3COM ?= yes
@@ -138,6 +145,13 @@
endif
endif
+ifeq ($(CONFIG_RAYER_BITBANG_SPI), yes)
+FEATURE_CFLAGS += -D'RAYER_BITBANG_SPI_SUPPORT=1'
+PROGRAMMER_OBJS += rayer_bitbang_spi.o
+# Actually, NEED_PCI is wrong. NEED_IOPORT_ACCESS would be more correct.
+NEED_PCI := yes
+endif
+
ifeq ($(CONFIG_BITBANG_SPI), yes)
FEATURE_CFLAGS += -D'BITBANG_SPI_SUPPORT=1'
PROGRAMMER_OBJS += bitbang_spi.o
Index: flashrom-bitbang_spi_rayer/flashrom.c
===================================================================
--- flashrom-bitbang_spi_rayer/flashrom.c (Revision 1013)
+++ flashrom-bitbang_spi_rayer/flashrom.c (Arbeitskopie)
@@ -47,7 +47,7 @@
* if more than one of them is selected. If only one is selected, it is clear
* that the user wants that one to become the default.
*/
-#if NIC3COM_SUPPORT+GFXNVIDIA_SUPPORT+DRKAISER_SUPPORT+SATASII_SUPPORT+ATAHPT_SUPPORT+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_SPI_SUPPORT+DEDIPROG_SUPPORT+NICREALTEK_SUPPORT > 1
+#if NIC3COM_SUPPORT+GFXNVIDIA_SUPPORT+DRKAISER_SUPPORT+SATASII_SUPPORT+ATAHPT_SUPPORT+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_SPI_SUPPORT+DEDIPROG_SUPPORT+NICREALTEK_SUPPORT+RAYER_BITBANG_SPI_SUPPORT > 1
#error Please enable either CONFIG_DUMMY or CONFIG_INTERNAL or disable support for all external programmers except one.
#endif
enum programmer programmer =
@@ -82,6 +82,9 @@
#if DEDIPROG_SUPPORT == 1
PROGRAMMER_DEDIPROG
#endif
+#if RAYER_BITBANG_SPI_SUPPORT == 1
+ PROGRAMMER_RAYER_BITBANG_SPI
+#endif
;
#endif
@@ -372,6 +375,25 @@
},
#endif
+#if RAYER_BITBANG_SPI_SUPPORT == 1
+ {
+ .name = "rayerbitbangspi",
+ .init = rayer_bitbang_spi_init,
+ .shutdown = noop_shutdown,
+ .map_flash_region = fallback_map,
+ .unmap_flash_region = fallback_unmap,
+ .chip_readb = noop_chip_readb,
+ .chip_readw = fallback_chip_readw,
+ .chip_readl = fallback_chip_readl,
+ .chip_readn = fallback_chip_readn,
+ .chip_writeb = noop_chip_writeb,
+ .chip_writew = fallback_chip_writew,
+ .chip_writel = fallback_chip_writel,
+ .chip_writen = fallback_chip_writen,
+ .delay = internal_delay,
+ },
+#endif
+
{}, /* This entry corresponds to PROGRAMMER_INVALID. */
};
Index: flashrom-bitbang_spi_rayer/rayer_bitbang_spi.c
===================================================================
--- flashrom-bitbang_spi_rayer/rayer_bitbang_spi.c (Revision 0)
+++ flashrom-bitbang_spi_rayer/rayer_bitbang_spi.c (Revision 0)
@@ -0,0 +1,95 @@
+/*
+ * This file is part of the flashrom project.
+ *
+ * Copyright (C) 2009,2010 Carl-Daniel Hailfinger
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/* Driver for the SPIPGM hardware by "RayeR" Martin Rehak.
+ * See http://rayer.ic.cz/elektro/spipgm.htm for schematics and instructions.
+ */
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include "flash.h"
+
+/* We have two sets of pins, out and in. The numbers for both sets are
+ * independent and are bitshift values, not real pin numbers.
+ */
+/* Pins for master->slave direction */
+#define SPI_CS_PIN 5
+#define SPI_SCK_PIN 6
+#define SPI_MOSI_PIN 7
+/* Pins for slave->master direction */
+#define SPI_MISO_PIN 6
+
+static int lpt_iobase;
+
+/* FIXME: All rayer_bitbang_set_* functions could use caching of the value
+ * stored at port lpt_iobase to avoid unnecessary INB. In theory, only one
+ * INB(lpt_iobase) would be needed on programmer init to get the initial
+ * value.
+ */
+
+void rayer_bitbang_set_cs(int val)
+{
+ uint8_t byte;
+
+ byte = INB(lpt_iobase);
+ byte |= (val << SPI_CS_PIN);
+ OUTB(byte, lpt_iobase);
+}
+
+void rayer_bitbang_set_sck(int val)
+{
+ uint8_t byte;
+
+ byte = INB(lpt_iobase);
+ byte |= (val << SPI_SCK_PIN);
+ OUTB(byte, lpt_iobase);
+}
+
+void rayer_bitbang_set_mosi(int val)
+{
+ uint8_t byte;
+
+ byte = INB(lpt_iobase);
+ byte |= (val << SPI_MOSI_PIN);
+ OUTB(byte, lpt_iobase);
+}
+
+int rayer_bitbang_get_miso(void)
+{
+ uint8_t byte;
+
+ byte = INB(lpt_iobase + 1);
+ byte = (byte >> SPI_MISO_PIN) & 0x1;
+ return byte;
+}
+
+int rayer_bitbang_spi_init(void)
+{
+ /* Pick a default value for now. */
+ lpt_iobase = 0x378;
+
+ get_io_perms();
+
+ if (bitbang_spi_init())
+ return 1;
+ spi_controller = SPI_CONTROLLER_RAYER_BITBANG;
+
+ return 0;
+}
--
http://www.hailfinger.org/
7
14