On Thu, Jan 14, 2010 at 02:09:51AM +0100, Uwe Hermann wrote:
> I'll post a patch tomorrow or so and test on my HPT370A.

Here's the first draft. It does not yet work, the chip cannot be
detected, all reads return 0x00 so far.

Attached is the patch, an lspci -xxxnnnvvv after a fresh boot and before
any flashrom runs, and the output of 'flashrom -p atahpt -V'.

I desoldered the SST39SF512 chip and soldered on a PLCC socket onto the
HPT card for easier testing. I already posted a patch for the
SST39SF512, which I tested in a supported mainboard and it works fine.

Note that the WE# pin is at 3.3V while the HPT card is powered, thus
writes are _dis_abled, unless I'm mistaken. The WE# pin is connected to
some pin of the HPT370A chip (probably a GPIO), so it can in theory
toggle the WE# pin.

The PCI registers suggest that the flash access is enabled per default,
and the IO-vs-MMIO bit is set to I/O per default.


HTH, Uwe.
-- 
http://www.hermann-uwe.de  | http://www.randomprojects.org
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
Index: flashrom.8
===================================================================
--- flashrom.8	(revision 862)
+++ flashrom.8	(working copy)
@@ -146,6 +146,8 @@
 .sp
 .BR "* satasii" " (for flash ROMs on Silicon Image SATA/IDE controllers)"
 .sp
+.BR "* atahpt" " (for flash ROMs on Highpoint ATA/RAID controllers)"
+.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)"
@@ -185,7 +187,8 @@
 Currently the following programmers support this mechanism:
 .BR nic3com ,
 .BR gfxnvidia ,
-.BR satasii .
+.BR satasii ,
+.BR atahpt .
 .sp
 The it87spi programmer has an optional parameter which will set the I/O base
 port of the IT87* SPI controller interface to the port specified in the
Index: flash.h
===================================================================
--- flash.h	(revision 862)
+++ flash.h	(working copy)
@@ -55,6 +55,9 @@
 #if SATASII_SUPPORT == 1
 	PROGRAMMER_SATASII,
 #endif
+#if ATAHPT_SUPPORT == 1
+	PROGRAMMER_ATAHPT,
+#endif
 #if INTERNAL_SUPPORT == 1
 	PROGRAMMER_IT87SPI,
 #endif
@@ -312,7 +315,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)
+#if (NIC3COM_SUPPORT == 1) || (GFXNVIDIA_SUPPORT == 1) || (DRKAISER_SUPPORT == 1) || (SATASII_SUPPORT == 1) || (ATAHPT_SUPPORT == 1)
 void print_supported_pcidevs(struct pcidev_status *devs);
 #endif
 void print_supported_wiki(void);
@@ -444,6 +447,15 @@
 extern struct pcidev_status satas_sii[];
 #endif
 
+/* atahpt.c */
+#if ATAHPT_SUPPORT == 1
+int atahpt_init(void);
+int atahpt_shutdown(void);
+void atahpt_chip_writeb(uint8_t val, chipaddr addr);
+uint8_t atahpt_chip_readb(const chipaddr addr);
+extern struct pcidev_status ata_hpt[];
+#endif
+
 /* ft2232_spi.c */
 #define FTDI_FT2232H 0x6010
 #define FTDI_FT4232H 0x6011
Index: atahpt.c
===================================================================
--- atahpt.c	(revision 0)
+++ atahpt.c	(revision 0)
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the flashrom project.
+ *
+ * Copyright (C) 2010 Uwe Hermann <[email protected]>
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include "flash.h"
+
+#define BIOS_ROM_ADDR		0x90
+#define BIOS_ROM_DATA		0x94
+
+#define REG_FLASH_ACCESS	0x58
+
+#define PCI_VENDOR_ID_HPT	0x1103
+
+struct pcidev_status ata_hpt[] = {
+	{0x1103, 0x0004, PCI_NT, "Highpoint", "HPT366/368/370/370A/372/372N"},
+	{0x1103, 0x0005, PCI_NT, "Highpoint", "HPT372A/372N"},
+	{0x1103, 0x0006, PCI_NT, "Highpoint", "HPT302/302N"},
+
+	{},
+};
+
+int atahpt_init(void)
+{
+	uint32_t reg32;
+
+	get_io_perms();
+
+	io_base_addr = pcidev_init(PCI_VENDOR_ID_HPT, PCI_BASE_ADDRESS_4,
+				   ata_hpt, programmer_param);
+
+	/* Enable flash access. */
+	reg32 = pci_read_long(pcidev_dev, REG_FLASH_ACCESS);
+	reg32 |= (1 << 24);
+	pci_write_long(pcidev_dev, REG_FLASH_ACCESS, reg32);
+
+	buses_supported = CHIP_BUSTYPE_PARALLEL;
+
+	return 0;
+}
+
+int atahpt_shutdown(void)
+{
+	uint32_t reg32;
+
+	/* Disable flash access again. */
+	reg32 = pci_read_long(pcidev_dev, REG_FLASH_ACCESS);
+	reg32 &= ~(1 << 24);
+	pci_write_long(pcidev_dev, REG_FLASH_ACCESS, reg32);
+
+	free(programmer_param);
+	pci_cleanup(pacc);
+	release_io_perms();
+	return 0;
+}
+
+void atahpt_chip_writeb(uint8_t val, chipaddr addr)
+{
+	OUTL((uint32_t)addr, io_base_addr + BIOS_ROM_ADDR);
+	OUTB(val, io_base_addr + BIOS_ROM_DATA);
+}
+
+uint8_t atahpt_chip_readb(const chipaddr addr)
+{
+	OUTL((uint32_t)addr, io_base_addr + BIOS_ROM_ADDR);
+	return INB(io_base_addr + BIOS_ROM_DATA);
+}
Index: Makefile
===================================================================
--- Makefile	(revision 862)
+++ Makefile	(working copy)
@@ -84,6 +84,9 @@
 # Always enable SiI SATA controllers for now.
 CONFIG_SATASII ?= yes
 
+# Always enable Highpoint (HPT) ATA/RAID controllers for now.
+CONFIG_ATAHPT ?= yes
+
 # Always enable FT2232 SPI dongles for now.
 CONFIG_FT2232SPI ?= yes
 
@@ -136,6 +139,12 @@
 NEED_PCI := yes
 endif
 
+ifeq ($(CONFIG_ATAHPT), yes)
+FEATURE_CFLAGS += -D'ATAHPT_SUPPORT=1'
+PROGRAMMER_OBJS += atahpt.o
+NEED_PCI := yes
+endif
+
 ifeq ($(CONFIG_FT2232SPI), yes)
 FTDILIBS := $(shell pkg-config --libs libftdi 2>/dev/null || printf "%s" "-lftdi -lusb")
 # This is a totally ugly hack.
Index: flashrom.c
===================================================================
--- flashrom.c	(revision 862)
+++ flashrom.c	(working copy)
@@ -44,7 +44,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+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_SPI_SUPPORT > 1
+#if NIC3COM_SUPPORT+GFXNVIDIA_SUPPORT+DRKAISER_SUPPORT+SATASII_SUPPORT+ATAHPT_SUPPORT+FT2232_SPI_SUPPORT+SERPROG_SUPPORT+BUSPIRATE_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 =
@@ -60,6 +60,9 @@
 #if SATASII_SUPPORT == 1
 	PROGRAMMER_SATASII
 #endif
+#if ATAHPT_SUPPORT == 1
+	PROGRAMMER_ATAHPT
+#endif
 #if FT2232_SPI_SUPPORT == 1
 	PROGRAMMER_FT2232SPI
 #endif
@@ -207,6 +210,25 @@
 	},
 #endif
 
+#if ATAHPT_SUPPORT == 1
+	{
+		.name			= "atahpt",
+		.init			= atahpt_init,
+		.shutdown		= atahpt_shutdown,
+		.map_flash_region	= fallback_map,
+		.unmap_flash_region	= fallback_unmap,
+		.chip_readb		= atahpt_chip_readb,
+		.chip_readw		= fallback_chip_readw,
+		.chip_readl		= fallback_chip_readl,
+		.chip_readn		= fallback_chip_readn,
+		.chip_writeb		= atahpt_chip_writeb,
+		.chip_writew		= fallback_chip_writew,
+		.chip_writel		= fallback_chip_writel,
+		.chip_writen		= fallback_chip_writen,
+		.delay			= internal_delay,
+	},
+#endif
+
 #if INTERNAL_SUPPORT == 1
 	{
 		.name			= "it87spi",
Index: print_wiki.c
===================================================================
--- print_wiki.c	(revision 862)
+++ print_wiki.c	(working copy)
@@ -565,6 +565,9 @@
 #if SATASII_SUPPORT == 1
 	print_supported_pcidevs_wiki(satas_sii);
 #endif
+#if ATAHPT_SUPPORT == 1
+	print_supported_pcidevs_wiki(ata_hpt);
+#endif
 	printf("\n|}\n");
 }
 
05:05.0 Mass storage controller [0180]: HighPoint Technologies, Inc. 
HPT366/368/370/370A/372/372N [1103:0004] (rev 03)
        Subsystem: HighPoint Technologies, Inc. HPT370 UDMA100 [1103:0005]
        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: 120 (2000ns min, 2000ns max)
        Interrupt: pin A routed to IRQ 18
        Region 0: I/O ports at 9c00 [size=8]
        Region 1: I/O ports at a000 [size=4]
        Region 2: I/O ports at a400 [size=8]
        Region 3: I/O ports at a800 [size=4]
        Region 4: I/O ports at ac00 [size=256]
        [virtual] Expansion ROM at 20040000 [disabled] [size=128K]
        Kernel driver in use: HPT366_IDE
00: 03 11 04 00 05 00 00 02 03 00 80 01 00 78 00 00
10: 01 9c 00 00 01 a0 00 00 01 a4 00 00 01 a8 00 00
20: 01 ac 00 00 00 00 00 00 00 00 00 00 03 11 05 00
30: 00 00 00 00 60 00 00 00 00 00 00 00 05 01 08 08
40: a7 4e 81 06 a7 4e 81 06 a7 4e 81 06 a7 4e 81 06
50: 05 01 00 00 05 01 00 00 1b 00 00 23 24 00 26 00
60: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 97 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

flashrom v0.9.1-r862
Found "Highpoint HPT366/368/370/370A/372/372N" (1103:0004, BDF 00:14.0).
===
This PCI device is UNTESTED. Please report the 'flashrom -p xxxx' output 
to [email protected] if it works for you. Thank you for your help!
===
Calibrating delay loop... 142M loops per second, 100 myus = 218 us. OK.
Probing for AMD Am29F010A/B, 128 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for AMD Am29F002(N)BB, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
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 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F016D, 2048 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for AMD Am29F040B, 512 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for AMD Am29F080B, 1024 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV040B, 512 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for AMD Am29LV081B, 1024 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for ASD AE49F2008, 256 KB: Chip lacks correct probe timing information, 
using default 10mS/40uS. probe_jedec_common: id1 0x00, id2 0x00, id1 parity 
violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT25DF021, 256 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25DF041A, 512 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25DF081, 1024 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25DF161, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25DF321, 4096 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25DF321A, 4096 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25DF641, 8192 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25F512B, 64 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25FS010, 128 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT25FS040, 512 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT26DF041, 512 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT26DF081A, 1024 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT26DF161, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT26DF161A, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT26F004, 512 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT29C512, 64 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT29C010A, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT29C020, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT29C040A, 512 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT45CS1282, 16896 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Atmel AT45DB011D, 128 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT45DB021D, 256 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT45DB041D, 512 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT45DB081D, 1024 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT45DB161D, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT45DB321C, 4224 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT45DB321D, 4096 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT45DB642D, 8192 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Atmel AT49BV512, 64 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT49F002(N), 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMIC A25L40PT, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for AMIC A25L40PU, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for AMIC A29002B, 256 KB: probe_29f002: id1 0x00, id2 0x00
Probing for AMIC A29002T, 256 KB: probe_29f002: id1 0x00, id2 0x00
Probing for AMIC A29040B, 512 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for AMIC A49LF040A, 512 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for EMST F49B002UA, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Eon EN25B05, 64 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B05T, 64 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B10, 128 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B10T, 128 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B20, 256 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B20T, 256 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B40, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B40T, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B80, 1024 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B80T, 1024 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B16, 2048 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B16T, 2048 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B32, 4096 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B32T, 4096 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B64, 8192 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25B64T, 8192 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25D16, 2048 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25F05, 64 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25F10, 128 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25F20, 256 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25F40, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25F80, 1024 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25F16, 2048 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for Eon EN25F32, 4096 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for EON EN29F002(A)(N)B, 256 KB: probe_jedec_common: id1 0x00, id2 
0x00, 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 0x00, id2 
0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash 
content
Probing for Fujitsu MBM29F004BC, 512 KB: probe_jedec_common: id1 0x00, id2 
0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash 
content
Probing for Fujitsu MBM29F004TC, 512 KB: probe_jedec_common: id1 0x00, id2 
0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash 
content
Probing for Fujitsu MBM29F400BC, 512 KB: probe_m29f400bt: id1 0x00, id2 0x00
Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0x00, id2 0x00
Probing for Intel 28F001BX-B, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F001BX-T, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AB, 512 KB: skipped. Host bus type Parallel and chip bus 
type FWH are incompatible.
Probing for Intel 82802AC, 1024 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for Macronix MX25L512, 64 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Macronix MX25L1005, 128 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L2005, 256 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L4005, 512 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L8005, 1024 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L1605, 2048 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L1635D, 2048 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L3205, 4096 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L3235D, 4096 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L6405, 8192 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX25L12805, 16384 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix MX29F001B, 128 KB: probe_29f002: id1 0x00, id2 0x00
Probing for Macronix MX29F001T, 128 KB: probe_29f002: id1 0x00, id2 0x00
Probing for Macronix MX29F002B, 256 KB: probe_29f002: id1 0x00, id2 0x00
Probing for Macronix MX29F002T, 256 KB: probe_29f002: id1 0x00, id2 0x00
Probing for Macronix MX29LV040, 512 KB: probe_29f002: id1 0x00, id2 0x00
Probing for Numonyx M25PE10, 128 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Numonyx M25PE20, 256 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Numonyx M25PE40, 256 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Numonyx M25PE80, 1024 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Numonyx M25PE16, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for PMC Pm25LV010, 128 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for PMC Pm25LV016B, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for PMC Pm25LV020, 256 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for PMC Pm25LV040, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for PMC Pm25LV080B, 1024 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for PMC Pm25LV512, 64 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for PMC Pm29F002T, 256 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for PMC Pm29F002B, 256 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for PMC Pm39LV010, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm49FL002, 256 KB: skipped. Host bus type Parallel and chip bus 
type LPC,FWH are incompatible.
Probing for PMC Pm49FL004, 512 KB: skipped. Host bus type Parallel and chip bus 
type LPC,FWH are incompatible.
Probing for Sanyo LF25FW203A, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Sharp LHF00L04, 1024 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for Spansion S25FL008A, 1024 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Spansion S25FL016A, 2048 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for SST SST25VF016B, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for SST SST25VF032B, 4096 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for SST SST25VF040.REMS, 512 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for SST SST25VF040B, 512 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for SST SST25VF040B.REMS, 512 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for SST SST25VF080B, 1024 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for SST SST28SF040A, 512 KB: probe_28sf040: id1 0x00, id2 0x00
Probing for SST SST29EE010, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST29LE010, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST29EE020A, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST29LE020, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39SF010A, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39SF020A, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39SF040, 512 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39VF512, 64 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39VF010, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39VF020, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39VF040, 512 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST39VF080, 1024 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF002A/B, 256 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for SST SST49LF003A/B, 384 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for SST SST49LF004A/B, 512 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for SST SST49LF004C, 512 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for SST SST49LF008A, 1024 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for SST SST49LF008C, 1024 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for SST SST49LF016C, 2048 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for SST SST49LF020, 256 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for SST SST49LF020A, 256 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for SST SST49LF040, 512 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for SST SST49LF040B, 512 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for SST SST49LF080A, 1024 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for SST SST49LF160C, 2048 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for ST M25P05-A, 64 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P05.RES, 64 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P10-A, 128 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P10.RES, 128 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P20, 256 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P40, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P40-old, 512 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P80, 1024 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P16, 2048 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P32, 4096 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P64, 8192 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M25P128, 16384 KB: skipped. Host bus type Parallel and chip bus 
type SPI are incompatible.
Probing for ST M29F002B, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F002T/NT, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F040B, 512 KB: probe_29f040b: id1 0x00, id2 0x00
Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0x00, id2 0x00
Probing for ST M29W010B, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29W040B, 512 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040A, 512 KB: skipped. Host bus type Parallel and chip bus 
type LPC,FWH are incompatible.
Probing for ST M50FLW040B, 512 KB: skipped. Host bus type Parallel and chip bus 
type LPC,FWH are incompatible.
Probing for ST M50FLW080A, 1024 KB: skipped. Host bus type Parallel and chip 
bus type LPC,FWH are incompatible.
Probing for ST M50FLW080B, 1024 KB: skipped. Host bus type Parallel and chip 
bus type LPC,FWH are incompatible.
Probing for ST M50FW002, 256 KB: skipped. Host bus type Parallel and chip bus 
type FWH are incompatible.
Probing for ST M50FW016, 2048 KB: skipped. Host bus type Parallel and chip bus 
type FWH are incompatible.
Probing for ST M50FW040, 512 KB: skipped. Host bus type Parallel and chip bus 
type FWH are incompatible.
Probing for ST M50FW080, 1024 KB: skipped. Host bus type Parallel and chip bus 
type FWH are incompatible.
Probing for ST M50LPW116, 2048 KB: skipped. Host bus type Parallel and chip bus 
type LPC are incompatible.
Probing for SyncMOS S29C31004T, 512 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SyncMOS S29C51001T, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SyncMOS S29C51002T, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SyncMOS S29C51004T, 512 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for TI TMS29F002RB, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for TI TMS29F002RT, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, id1 
parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W25x10, 128 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Winbond W25x20, 256 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Winbond W25x40, 512 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Winbond W25x80, 1024 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Winbond W25x16, 2048 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Winbond W25x32, 4096 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Winbond W25x64, 8192 KB: skipped. Host bus type Parallel and chip 
bus type SPI are incompatible.
Probing for Winbond W29C011, 128 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W29C020C, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W29C040P, 512 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
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: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for Winbond W39V040B, 512 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for Winbond W39V040C, 512 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for Winbond W39V040FA, 512 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for Winbond W39V080A, 1024 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for Winbond W49F002U, 256 KB: probe_jedec_common: id1 0x00, id2 0x00, 
id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W49V002A, 256 KB: skipped. Host bus type Parallel and chip 
bus type LPC are incompatible.
Probing for Winbond W49V002FA, 256 KB: skipped. Host bus type Parallel and chip 
bus type FWH are incompatible.
Probing for Winbond W39V080FA, 1024 KB: skipped. Host bus type Parallel and 
chip bus type FWH are incompatible.
Probing for Winbond W39V080FA (dual mode), 512 KB: skipped. Host bus type 
Parallel and chip bus type FWH are incompatible.
Probing for Atmel unknown Atmel SPI chip, 0 KB: skipped. Host bus type Parallel 
and chip bus type SPI are incompatible.
Probing for EON unknown EON SPI chip, 0 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Macronix unknown Macronix SPI chip, 0 KB: skipped. Host bus type 
Parallel and chip bus type SPI are incompatible.
Probing for PMC unknown PMC SPI chip, 0 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for SST unknown SST SPI chip, 0 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for ST unknown ST SPI chip, 0 KB: skipped. Host bus type Parallel and 
chip bus type SPI are incompatible.
Probing for Sanyo unknown Sanyo SPI chip, 0 KB: skipped. Host bus type Parallel 
and chip bus type SPI are incompatible.
Probing for Generic unknown SPI chip (RDID), 0 KB: skipped. Host bus type 
Parallel and chip bus type SPI are incompatible.
Probing for Generic unknown SPI chip (REMS), 0 KB: skipped. Host bus type 
Parallel and chip bus type SPI are incompatible.
No EEPROM/flash device found.
If you know which flash chip you have, and if this version of flashrom
supports a similar flash chip, you can try to force read your chip. Run:
flashrom -f -r -c similar_supported_flash_chip filename

Note: flashrom can never write when the flash chip isn't found automatically.
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to