---------- Forwarded message ----------
From: Iain <selsinork(a)gmail.com>
Date: 2010/9/29
Subject: flashrom on Intel Nics,
To: Idwer Vollering <vidwer(a)gmail.com>
Hi,
So I have a couple of other intel nics that I've been trying with your
flashrom driver, if you're interested in the results...
root@p7fe-64:~/flashrom# ./flashrom -p nicintel_spi -VV
flashrom v0.9.2-r1182 on Linux 2.6.35-dt (x86_64), built with libpci 3.1.4,
GCC 4.4.3, little endian
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OS timer resolution is 1 usecs, 1785M loops per
second, 10 myus = 10 us, 100 myus = 107 us, 1000 myus = 1019 us, 10000 myus
= 10032 us, 4 myus = 4 us, OK.
Initializing nicintel_spi programmer
Found "Intel 82540EM Gigabit Ethernet Controller" (8086:100e, BDF 06:01.0).
Requested BAR is MEM, 32bit, not prefetchable
Probing for AMD Am29F010A/B, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29F002(N)BB, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for AMD Am29F002(N)BT, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for AMD Am29F016D, 2048 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29F040B, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29F080B, 1024 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29LV040B, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29LV081B, 1024 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMIC A25L05PT, 64 KB:
and it hangs there seemingly indefinately, or at least 10mins which is as
long as I've been bothered to wait.. The card has an Atmel 25F1024N which I
gather from the flashrom source probably isn't supported as it may not have
a device id, but the hang was unexpected.
root@p7fe-64:~/flashrom# ./flashrom -p nicintel_spi:pci=01:00.0 -VV
flashrom v0.9.2-r1182 on Linux 2.6.35-dt (x86_64), built with libpci 3.1.4,
GCC 4.4.3, little endian
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OS timer resolution is 1 usecs, 1785M loops per
second, 10 myus = 10 us, 100 myus = 99 us, 1000 myus = 1019 us, 10000 myus =
10023 us, 4 myus = 4 us, OK.
Initializing nicintel_spi programmer
Found "Intel 82571EB Gigabit Ethernet Controller" (8086:105e, BDF 01:00.0).
Requested BAR is MEM, 32bit, not prefetchable
Probing for AMD Am29F010A/B, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29F002(N)BB, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for AMD Am29F002(N)BT, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for AMD Am29F016D, 2048 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29F040B, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29F080B, 1024 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29LV040B, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMD Am29LV081B, 1024 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMIC A25L05PT, 64 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L05PU, 64 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L10PT, 128 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L10PU, 128 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L20PT, 256 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L20PU, 256 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L40PT, 512 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L40PU, 512 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L80P, 1024 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L16PT, 2048 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L16PU, 2048 KB: RDID returned 0xff 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L512, 64 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L010, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L020, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L040, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L080, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L016, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25L032, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A25LQ032, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for AMIC A29002B, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMIC A29002T, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMIC A29040B, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for AMIC A49LF040A, 512 KB: skipped. Host bus type SPI and chip bus
type LPC are incompatible.
Probing for Atmel AT25DF021, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF041A, 512 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF081, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF081A, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF161, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF321, 4096 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF321A, 4096 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DF641, 8192 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25DQ161, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25F512B, 64 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25FS010, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT25FS040, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF041, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF081A, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF161, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26DF161A, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT26F004, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT29C512, 64 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Atmel AT29C010A, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Atmel AT29C020, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Atmel AT29C040A, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Atmel AT45CS1282, 16896 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB011D, 128 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB021D, 256 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB041D, 512 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB081D, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB161D, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB321C, 4224 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB321D, 4096 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT45DB642D, 8192 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Atmel AT49BV512, 64 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Atmel AT49F020, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Atmel AT49F002(N), 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Atmel AT49F002(N)T, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Bright BM29F040, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for EMST F49B002UA, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for EMST F25L008A, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B05, 64 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B05T, 64 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B10, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B10T, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B20, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B20T, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B40, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B40T, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B80, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B80T, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B16, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B16T, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B32, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B32T, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B64, 8192 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25B64T, 8192 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25D16, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25F05, 64 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25F10, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25F20, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25F40, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25F80, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25F16, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN25F32, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Eon EN29F010, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Eon EN29F002(A)(N)B, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Eon EN29F002(A)(N)T, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Fujitsu MBM29F004BC, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Fujitsu MBM29F004TC, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Fujitsu MBM29F400BC, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Fujitsu MBM29F400TC, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Hyundai HY29F002T, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Hyundai HY29F002B, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Hyundai HY29F040A, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Intel 28F001BX-B, 128 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Intel 28F001BX-T, 128 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Intel 28F002BC-T, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Intel 28F004S5, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Intel 28F004BV/BE-B, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Intel 28F004BV/BE-T, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Intel 28F400BV/CV/CE-B, 512 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for Intel 28F400BV/CV/CE-T, 512 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for Intel 82802AB, 512 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for Intel 82802AC, 1024 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for Macronix MX25L512, 64 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L1005, 128 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L2005, 256 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L4005, 512 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L8005, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L1605, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L1635D, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L1635E, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L3205, 4096 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L3235D, 4096 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L6405, 8192 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX25L12805, 16384 KB: RDID returned 0xff 0xff 0xff.
RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix MX29F001B, 128 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Macronix MX29F001T, 128 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Macronix MX29F002B, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Macronix MX29F002T, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Macronix MX29F040, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Macronix MX29LV040, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for MoselVitelic V29C51000B, 64 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for MoselVitelic V29C51000T, 64 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for MoselVitelic V29C51400B, 512 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for MoselVitelic V29C51400T, 512 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for MoselVitelic V29LC51000, 64 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for MoselVitelic V29LC51001, 128 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for MoselVitelic V29LC51002, 256 KB: skipped. Host bus type SPI and
chip bus type Parallel are incompatible.
Probing for Numonyx M25PE10, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE20, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE40, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE80, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Numonyx M25PE16, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV010, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV016B, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV020, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV040, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV080B, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm25LV512, 64 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for PMC Pm29F002T, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for PMC Pm29F002B, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for PMC Pm39LV010, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for PMC Pm39LV020, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for PMC Pm39LV040, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for PMC Pm49FL002, 256 KB: skipped. Host bus type SPI and chip bus
type LPC,FWH are incompatible.
Probing for PMC Pm49FL004, 512 KB: skipped. Host bus type SPI and chip bus
type LPC,FWH are incompatible.
Probing for Sanyo LF25FW203A, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Sharp LHF00L04, 1024 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for Spansion S25FL008A, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Spansion S25FL016A, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF016B, 2048 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF032B, 4096 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF064C, 8192 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25VF040.REMS, 512 KB: REMS returned ff ff.
probe_spi_rems: id1 0xff, id2 0xff
Probing for SST SST25VF040B, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST25LF040A.RES, 512 KB: RES returned 0xff 0xff.
probe_spi_res2: id1 0xff, id2 0xff
Probing for SST SST25VF040B.REMS, 512 KB: REMS returned ff ff.
probe_spi_rems: id1 0xff, id2 0xff
Probing for SST SST25VF080B, 1024 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST SST28SF040A, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST29EE010, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST29LE010, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST29EE020A, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST29LE020, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39SF512, 64 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39SF010A, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39SF020A, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39SF040, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39VF512, 64 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39VF010, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39VF020, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39VF040, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST39VF080, 1024 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for SST SST49LF002A/B, 256 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for SST SST49LF003A/B, 384 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for SST SST49LF004A/B, 512 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for SST SST49LF004C, 512 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for SST SST49LF008A, 1024 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for SST SST49LF008C, 1024 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for SST SST49LF016C, 2048 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for SST SST49LF020, 256 KB: skipped. Host bus type SPI and chip bus
type LPC are incompatible.
Probing for SST SST49LF020A, 256 KB: skipped. Host bus type SPI and chip bus
type LPC are incompatible.
Probing for SST SST49LF040, 512 KB: skipped. Host bus type SPI and chip bus
type LPC are incompatible.
Probing for SST SST49LF040B, 512 KB: skipped. Host bus type SPI and chip bus
type LPC are incompatible.
Probing for SST SST49LF080A, 1024 KB: skipped. Host bus type SPI and chip
bus type LPC are incompatible.
Probing for SST SST49LF160C, 2048 KB: skipped. Host bus type SPI and chip
bus type LPC are incompatible.
Probing for ST M25P05-A, 64 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P05.RES, 64 KB: RDID returned 0xff 0xff 0xff. REMS
returned ff ff. RES returned 0xff. probe_spi_res1: id 0xff
Probing for ST M25P10-A, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P10.RES, 128 KB: RDID returned 0xff 0xff 0xff. REMS
returned ff ff. RES returned 0xff. probe_spi_res1: id 0xff
Probing for ST M25P20, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P40, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P40-old, 512 KB: RDID returned 0xff 0xff 0xff. REMS
returned ff ff. RES returned 0xff. probe_spi_res1: id 0xff
Probing for ST M25P80, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P16, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P32, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P64, 8192 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25P128, 16384 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25PX32, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M25PX64, 8192 KB: RDID returned 0xff 0xff 0xff. RDID byte 0
parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST M29F002B, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for ST M29F002T/NT, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for ST M29F040B, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for ST M29F400BB, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for ST M29F400BT, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for ST M29W010B, 128 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for ST M29W040B, 512 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for ST M29W512B, 64 KB: skipped. Host bus type SPI and chip bus type
Parallel are incompatible.
Probing for ST M50FLW040A, 512 KB: skipped. Host bus type SPI and chip bus
type LPC,FWH are incompatible.
Probing for ST M50FLW040B, 512 KB: skipped. Host bus type SPI and chip bus
type LPC,FWH are incompatible.
Probing for ST M50FLW080A, 1024 KB: skipped. Host bus type SPI and chip bus
type LPC,FWH are incompatible.
Probing for ST M50FLW080B, 1024 KB: skipped. Host bus type SPI and chip bus
type LPC,FWH are incompatible.
Probing for ST M50FW002, 256 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for ST M50FW016, 2048 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for ST M50FW040, 512 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for ST M50FW080, 1024 KB: skipped. Host bus type SPI and chip bus
type FWH are incompatible.
Probing for ST M50LPW116, 2048 KB: skipped. Host bus type SPI and chip bus
type LPC are incompatible.
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 KB: skipped. Host bus
type SPI and chip bus type Parallel are incompatible.
Probing for TI TMS29F002RB, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for TI TMS29F002RT, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Winbond W25Q80, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25Q16, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25Q32, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25Q64, 8192 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x10, 128 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x20, 256 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x40, 512 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x80, 1024 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x16, 2048 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x32, 4096 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W25x64, 8192 KB: RDID returned 0xff 0xff 0xff. RDID byte
0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 KB: skipped.
Host bus type SPI and chip bus type Parallel are incompatible.
Probing for Winbond W29C020(C)/W29C022, 256 KB: skipped. Host bus type SPI
and chip bus type Parallel are incompatible.
Probing for Winbond W29C040/P, 512 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 KB: skipped.
Host bus type SPI and chip bus type Parallel are incompatible.
Probing for Winbond W39V040A, 512 KB: skipped. Host bus type SPI and chip
bus type LPC are incompatible.
Probing for Winbond W39V040(F)B, 512 KB: skipped. Host bus type SPI and chip
bus type LPC are incompatible.
Probing for Winbond W39V040(F)C, 512 KB: skipped. Host bus type SPI and chip
bus type LPC are incompatible.
Probing for Winbond W39V040FA, 512 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for Winbond W39V080A, 1024 KB: skipped. Host bus type SPI and chip
bus type LPC are incompatible.
Probing for Winbond W49F002U/N, 256 KB: skipped. Host bus type SPI and chip
bus type Parallel are incompatible.
Probing for Winbond W49F020, 256 KB: skipped. Host bus type SPI and chip bus
type Parallel are incompatible.
Probing for Winbond W49V002A, 256 KB: skipped. Host bus type SPI and chip
bus type LPC are incompatible.
Probing for Winbond W49V002FA, 256 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for Winbond W39V080FA, 1024 KB: skipped. Host bus type SPI and chip
bus type FWH are incompatible.
Probing for Winbond W39V080FA (dual mode), 512 KB: skipped. Host bus type
SPI and chip bus type FWH are incompatible.
Probing for AMIC unknown AMIC SPI chip, 0 KB: RDID returned 0xff 0xff 0xff
0xff. RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2
0xffff
Probing for Atmel unknown Atmel SPI chip, 0 KB: RDID returned 0xff 0xff
0xff. RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2
0xffff
Probing for Eon unknown Eon SPI chip, 0 KB: RDID returned 0xff 0xff 0xff.
RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Macronix unknown Macronix SPI chip, 0 KB: RDID returned 0xff
0xff 0xff. RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff,
id2 0xffff
Probing for PMC unknown PMC SPI chip, 0 KB: RDID returned 0xff 0xff 0xff.
RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for SST unknown SST SPI chip, 0 KB: RDID returned 0xff 0xff 0xff.
RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for ST unknown ST SPI chip, 0 KB: RDID returned 0xff 0xff 0xff. RDID
byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
Probing for Sanyo unknown Sanyo SPI chip, 0 KB: RDID returned 0xff 0xff
0xff. RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2
0xffff
Probing for Generic unknown SPI chip (RDID), 0 KB: RDID returned 0xff 0xff
0xff. RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2
0xffff
Probing for Generic unknown SPI chip (REMS), 0 KB: REMS returned ff ff.
probe_spi_rems: id1 0xff, id2 0xff
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
So this is a dual port card, not sure which function the spi device would
show up under, but the same result on both. It has an Atmel 25F1024AN, so
again possibly not something that flashrom can handle anyway, but at least
there's no hang this time.. Since this is a newish card I'll have a look and
see if I can find one with some different SPI device, would be nice to know
it works but is just the 25F1024 that's the problem here.
If there's more information I can supply about either of these, or anything
you'd like me to test, not a problem, just let me know.
Rgds,
Iain
Update README to list al the needed rpm files [1] and update the download
location of csdpmi.
[1]: http://www.flashrom.org/pipermail/flashrom/2010-May/003116.html
---
Index: README
===================================================================
--- README (revision 1022)
+++ README (working copy)
@@ -85,8 +85,8 @@
Get RPMs of the cross compiler from the DJGPP site and install them:
djcross-binutils-2.19.1-10ap.i386.rpm
- djcross-gcc-tools-4.4.1-1ap.i686.rpm
djcross-gcc-4.3.2-8ap.i686.rpm
+ djcrx-2.04pre_20090725-13ap.i386.rpm
Download pciutils 3.1.5 and apply
http://assembler.cz/flashrom/pciutils.patch
Download and compile http://assembler.cz/flashrom/libgetopt/
Compile pciutils, see README.DJGPP for instructions.
@@ -98,7 +98,7 @@
or (above settings hardcoded)
make djgpp-dos
You might have to add WARNERROR=no to the make command line.
- To run flashrom.exe, download http://clio.rice.edu/djgpp/csdpmi7b.zip and
+ To run flashrom.exe, download
http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and
make sure CWSDPMI.EXE is in the current directory.
Installation
Author: hailfinger
Date: Tue Oct 5 15:31:12 2010
New Revision: 1186
URL: http://flashrom.org/trac/flashrom/changeset/1186
Log:
Update README to list all the needed rpm files for DOS cross-compilation
and update the download location of cwsdpmi.
Signed-off-by: Idwer Vollering <vidwer+flashrom(a)gmail.com>
Acked-by: Uwe Hermann <uwe(a)hermann-uwe.de>
Modified:
trunk/README
Modified: trunk/README
==============================================================================
--- trunk/README Tue Oct 5 13:16:14 2010 (r1185)
+++ trunk/README Tue Oct 5 15:31:12 2010 (r1186)
@@ -94,8 +94,8 @@
Get RPMs of the cross compiler from the DJGPP site and install them:
djcross-binutils-2.19.1-10ap.i386.rpm
- djcross-gcc-tools-4.4.1-1ap.i686.rpm
djcross-gcc-4.3.2-8ap.i686.rpm
+ djcrx-2.04pre_20090725-13ap.i386.rpm
Download pciutils 3.1.5 and apply http://assembler.cz/flashrom/pciutils.patch
Download and compile http://assembler.cz/flashrom/libgetopt/
Compile pciutils, see README.DJGPP for instructions.
@@ -107,8 +107,9 @@
or (above settings hardcoded)
make djgpp-dos
You might have to add WARNERROR=no to the make command line.
- To run flashrom.exe, download http://clio.rice.edu/djgpp/csdpmi7b.zip and
- make sure CWSDPMI.EXE is in the current directory.
+ To run flashrom.exe, download and unpack
+ http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and make sure
+ CWSDPMI.EXE is in the current directory.
Installation
------------
Dear ones,
The MSI PM8PM-IL motherboard has been tested.
Product page:
http://www.msi.com/index.php?func=proddesc&maincat_no=1&prod_no=233
It boots.
Attached is my terminal session with flashrom v0.9.1-r94 in
shahar@shahar-desktop:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.1 LTS
Release: 10.04
Codename: lucid
shahar@shahar-desktop:~$ uname -a
Linux shahar-desktop 2.6.32-25-generic #44-Ubuntu SMP Fri Sep 17
20:05:27 UTC 2010 x86_64 GNU/Linux
Blessings,
Shahar
This is a combination of two patches.
Patch 1:
Thanks to Johannes Sjölund for reporting that the Bus Pirate init could
not deal with a Bus Pirate which is already in binary Bitbang mode. This
is caused by a combination of the slowness of the Bus Pirate, the
slowness of USB and a fast serial port flush routine which just flushes
the buffer contents and does not wait until data arrival stops.
Make the Bus Pirate init more robust by running the flush command 10
times with 1.5 ms delay in between.
This code development was sponsored by Mattias Mattsson. Thanks!
Tested a few dozen times, should work reliably.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Patch 2:
Thanks to Ian Lesnet for adding a new SPI mode to the Bus Pirate which
is specifically designed for flashrom. It has the potential to speed up
reads and writes a lot.
This patch implements flashrom support for the new SPI mode in a
hopefully backward compatible way.
Not for merge. The Bus Pirate interface has not been finalized yet, and
this patch should help testing if the interface works as designed. No
significant speedups expected yet because the code still uses the old
small block sizes.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Index: flashrom-buspirate_newcommands/buspirate_spi.c
===================================================================
--- flashrom-buspirate_newcommands/buspirate_spi.c (Revision 1130)
+++ flashrom-buspirate_newcommands/buspirate_spi.c (Arbeitskopie)
@@ -22,6 +22,7 @@
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
+#include <unistd.h>
#include "flash.h"
#include "chipdrivers.h"
#include "programmer.h"
@@ -45,6 +46,8 @@
#define sp_flush_incoming(...) 0
#endif
+static int buspirate_interface_version;
+
static int buspirate_sendrecv(unsigned char *buf, unsigned int writecnt, unsigned int readcnt)
{
int i, ret = 0;
@@ -130,7 +133,13 @@
return ret;
free(dev);
- /* This is the brute force version, but it should work. */
+ /* This is the brute force version, but it should work.
+ * It is guaranteed to fail if a previous flashrom run was aborted
+ * during a write with the new SPI commands in firmware v4.6 because
+ * that firmware may wait for up to 4096 bytes of input before
+ * responding to 0x00 again. The obvious workaround may cause startup
+ * penalties of more than one second.
+ */
for (i = 0; i < 19; i++) {
/* Enter raw bitbang mode */
buf[0] = 0x00;
@@ -141,6 +150,20 @@
/* Read any response and discard it. */
sp_flush_incoming();
}
+ /* USB is slow. The Bus Pirate is even slower. Apparently the flush
+ * action above is too fast or too early. Some stuff still remains in
+ * the pipe after the flush above, and one additional flush is not
+ * sufficient either. Use a 1.5 ms delay inside the loop to make
+ * mostly sure that at least one USB frame had time to arrive.
+ * Looping only 5 times is not sufficient and causes the
+ * ocassional failure.
+ * Folding the delay into the loop above is not reliable either.
+ */
+ for (i = 0; i < 10; i++) {
+ usleep(1500);
+ /* Read any response and discard it. */
+ sp_flush_incoming();
+ }
/* Enter raw bitbang mode */
buf[0] = 0x00;
ret = buspirate_sendrecv(buf, 1, 5);
@@ -148,6 +171,8 @@
return ret;
if (memcmp(buf, "BBIO", 4)) {
msg_perr("Entering raw bitbang mode failed!\n");
+ msg_pdbg("Got %02x%02x%02x%02x%02x\n",
+ buf[0], buf[1], buf[2], buf[3], buf[4]);
return 1;
}
msg_pdbg("Raw bitbang mode version %c\n", buf[4]);
@@ -159,8 +184,12 @@
/* Enter raw SPI mode */
buf[0] = 0x01;
ret = buspirate_sendrecv(buf, 1, 4);
+ if (ret)
+ return ret;
if (memcmp(buf, "SPI", 3)) {
msg_perr("Entering raw SPI mode failed!\n");
+ msg_pdbg("Got %02x%02x%02x%02x\n",
+ buf[0], buf[1], buf[2], buf[3]);
return 1;
}
msg_pdbg("Raw SPI mode version %c\n", buf[3]);
@@ -210,6 +239,34 @@
return 1;
}
+ /* Test combined SPI write/read, length 0. */
+ buf[0] = 0x04;
+ buf[1] = 0;
+ buf[2] = 0;
+ buf[3] = 0;
+ buf[4] = 0;
+ ret = buspirate_sendrecv(buf, 5, 1);
+ if (ret)
+ return 1;
+ if (buf[0] != 0x01) {
+ msg_pdbg("SPI command set v2 not available, using old commands "
+ "present in firmware vX.Y or later\n");
+
+ /* FIXME: Check the error code? */
+ /* We sent 4 bytes of 0x00, so we expect 4 BBIO1 responses. */
+ buspirate_sendrecv(buf, 0, 4 * 5);
+
+ /* Enter raw SPI mode again. */
+ buf[0] = 0x01;
+ /* FIXME: Check the error code? */
+ buspirate_sendrecv(buf, 1, 4);
+
+ buspirate_interface_version = 1;
+ } else {
+ msg_pdbg("Using SPI command set v2.\n");
+ buspirate_interface_version = 2;
+ }
+
buses_supported = CHIP_BUSTYPE_SPI;
spi_controller = SPI_CONTROLLER_BUSPIRATE;
@@ -251,12 +308,56 @@
return 0;
}
-int buspirate_spi_send_command(unsigned int writecnt, unsigned int readcnt,
+int buspirate_spi_send_command_v2(unsigned int writecnt, unsigned int readcnt,
const unsigned char *writearr, unsigned char *readarr)
{
static unsigned char *buf = NULL;
int i = 0, ret = 0;
+ if (writecnt > 4096 || readcnt > 4096 || (readcnt + writecnt) > 4096)
+ return SPI_INVALID_LENGTH;
+
+ /* 5 bytes extra for command, writelen, readlen.
+ * 1 byte extra for Ack/Nack.
+ */
+ buf = realloc(buf, max(writecnt + 5, readcnt + 1));
+ if (!buf) {
+ msg_perr("Out of memory!\n");
+ exit(1); // -1
+ }
+
+ /* Combined SPI write/read. */
+ buf[i++] = 0x04;
+ buf[i++] = (writecnt >> 8) & 0xff;
+ buf[i++] = writecnt & 0xff;
+ buf[i++] = (readcnt >> 8) & 0xff;
+ buf[i++] = readcnt & 0xff;
+ memcpy(buf + i, writearr, writecnt);
+
+ ret = buspirate_sendrecv(buf, i + writecnt, 1 + readcnt);
+
+ if (ret) {
+ msg_perr("Bus Pirate communication error!\n");
+ return SPI_GENERIC_ERROR;
+ }
+
+ if (buf[0] != 0x01) {
+ msg_perr("Protocol error while sending SPI write/read!\n");
+ return SPI_GENERIC_ERROR;
+ }
+
+ /* Skip Ack. */
+ memcpy(readarr, buf + 1, readcnt);
+
+ return ret;
+}
+
+int buspirate_spi_send_command_v1(unsigned int writecnt, unsigned int readcnt,
+ const unsigned char *writearr, unsigned char *readarr)
+{
+ static unsigned char *buf = NULL;
+ int i = 0, ret = 0;
+
if (writecnt > 16 || readcnt > 16 || (readcnt + writecnt) > 16)
return SPI_INVALID_LENGTH;
@@ -307,6 +408,17 @@
return ret;
}
+int buspirate_spi_send_command(unsigned int writecnt, unsigned int readcnt,
+ const unsigned char *writearr, unsigned char *readarr)
+{
+ switch (buspirate_interface_version) {
+ case 2:
+ return buspirate_spi_send_command_v2(writecnt, readcnt, writearr, readarr);
+ default:
+ return buspirate_spi_send_command_v1(writecnt, readcnt, writearr, readarr);
+ }
+}
+
int buspirate_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
{
return spi_read_chunked(flash, buf, start, len, 12);
Index: flashrom-buspirate_newcommands/serial.c
===================================================================
--- flashrom-buspirate_newcommands/serial.c (Revision 1130)
+++ flashrom-buspirate_newcommands/serial.c (Arbeitskopie)
@@ -200,8 +200,10 @@
#else
tmp = write(sp_fd, buf, writecnt);
#endif
- if (tmp == -1)
+ if (tmp == -1) {
+ msg_perr("Serial port write error!\n");
return 1;
+ }
if (!tmp)
msg_pdbg("Empty write\n");
writecnt -= tmp;
@@ -221,8 +223,10 @@
#else
tmp = read(sp_fd, buf, readcnt);
#endif
- if (tmp == -1)
+ if (tmp == -1) {
+ msg_perr("Serial port read error!\n");
return 1;
+ }
if (!tmp)
msg_pdbg("Empty read\n");
readcnt -= tmp;
--
http://www.hailfinger.org/