Patchworkβ ASUS P4SC-E Board Enable / IT8707F support

login
register
about
Submitter Mattias Mattsson
Date 2010-08-31 09:06:40
Message ID <AANLkTik0Yvoi1O3y=by=y-F18moBUSB3JBEHKBBQR=PP@mail.gmail.com>
Download mbox | patch
Permalink /patch/1826/
State Accepted
Commit 1161
Headers show

Comments

Mattias Mattsson - 2010-08-31 09:06:40
Hi,

The attached patch adds board enable for the ASUS P4SC-E board. It
does this by setting bits 3..2 of register 0x24 on the super i/o chip,
while keeping bit 3 of register 0x23 set while manipulating the first
register. I have no idea what this actually means since no public
datasheet is available, but this is how the vendor BIOS does it.

Tested on a P4SC-E with SST 39SF020A flash. Probe, read, erase, write
all work. Matching on NB/SB.

lspci/superio output:
http://www.flashrom.org/pipermail/flashrom/2010-July/004090.html

The ITE IT8707F chip seems to have been manufactured exclusively for ASUS:
http://lists.lm-sensors.org/pipermail/lm-sensors/2002-October/001260.html

In the past (before it's release) the IT8707F was listed on the ITE website:
http://web.archive.org/web/20000510121435/http://www.ite.com.tw/productInfo/ProductdIO.html

By looking through some ASUS manuals I have found that at least 17
ASUS boards is using this chip:

P4S133/-VM
P4S333/-FX/-M/-VF/-VM
P4S533/-E/-VM
P4SC/-E/-EA ("Terminator P4" barebone series)
P4SDR-VM
P4SE/U2
P4SGL-VM

The vendor BIOS of these boards all use the same super i/o flash
enable code described above.

The following boards additionally clears bit 6 of IDX F4, LDN 7 in the
flash enabling routine: P4S133, P4S333, P4S533, P4S533-E, P4SE,
P4SE/U2. (Not included in this patch since I don't own any of these.)

Many thanks to Reinder de Haan for help with reverse engineering this!


Signed-off-by: Mattias Mattsson <vitplister@gmail.com>
flashrom v0.9.2-r1145 on Linux 2.6.32-5-686 (i686), built with libpci 3.1.7, GCC 4.4.5 20100728 (prerelease), little endian
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OS timer resolution is 1 usecs, 1112M loops per second, 10 myus = 10 us, 100 myus = 97 us, 1000 myus = 973 us, 10000 myus = 8661 us, 4 myus = 4 us, OK.
Initializing internal programmer
No coreboot table found.
DMI string system-manufacturer: "System Manufacturer"
DMI string system-product-name: "System Name"
DMI string system-version: "System Version"
DMI string baseboard-manufacturer: "ASUSTeK Computer INC."
DMI string baseboard-product-name: "P4SC-E"
DMI string baseboard-version: "REV 1.xx"
DMI string chassis-type: "Tower"
Found chipset "SiS 651", enabling flash write... chipset PCI ID is 1039:0651, Found southbridge 1039:0962 at 00:02:0
OK.
This chipset supports the following protocols: Non-SPI.
Disabling flash write protection for board "ASUS P4SC-E"... OK.
Probing for AMD Am29F010A/B, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F002(N)BT, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 AMIC A25L05PT, 64 KB: skipped.
Probing for AMIC A25L05PU, 64 KB: skipped.
Probing for AMIC A25L10PT, 128 KB: skipped.
Probing for AMIC A25L10PU, 128 KB: skipped.
Probing for AMIC A25L20PT, 256 KB: skipped.
Probing for AMIC A25L20PU, 256 KB: skipped.
Probing for AMIC A25L40PT, 512 KB: skipped.
Probing for AMIC A25L40PU, 512 KB: skipped.
Probing for AMIC A25L80P, 1024 KB: skipped.
Probing for AMIC A25L16PT, 2048 KB: skipped.
Probing for AMIC A25L16PU, 2048 KB: skipped.
Probing for AMIC A25L512, 64 KB: skipped.
Probing for AMIC A25L010, 128 KB: skipped.
Probing for AMIC A25L020, 256 KB: skipped.
Probing for AMIC A25L040, 512 KB: skipped.
Probing for AMIC A25L080, 1024 KB: skipped.
Probing for AMIC A25L016, 2048 KB: skipped.
Probing for AMIC A25L032, 4096 KB: skipped.
Probing for AMIC A25LQ032, 4096 KB: skipped.
Probing for AMIC A29002B, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for AMIC A49LF040A, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for ASD AE49F2008, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT25DF021, 256 KB: skipped.
Probing for Atmel AT25DF041A, 512 KB: skipped.
Probing for Atmel AT25DF081, 1024 KB: skipped.
Probing for Atmel AT25DF081A, 1024 KB: skipped.
Probing for Atmel AT25DF161, 2048 KB: skipped.
Probing for Atmel AT25DF321, 4096 KB: skipped.
Probing for Atmel AT25DF321A, 4096 KB: skipped.
Probing for Atmel AT25DF641, 8192 KB: skipped.
Probing for Atmel AT25DQ161, 2048 KB: skipped.
Probing for Atmel AT25F512B, 64 KB: skipped.
Probing for Atmel AT25FS010, 128 KB: skipped.
Probing for Atmel AT25FS040, 512 KB: skipped.
Probing for Atmel AT26DF041, 512 KB: skipped.
Probing for Atmel AT26DF081A, 1024 KB: skipped.
Probing for Atmel AT26DF161, 2048 KB: skipped.
Probing for Atmel AT26DF161A, 2048 KB: skipped.
Probing for Atmel AT26F004, 512 KB: skipped.
Probing for Atmel AT29C512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT29C010A, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT29C020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT29C040A, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT45CS1282, 16896 KB: skipped.
Probing for Atmel AT45DB011D, 128 KB: skipped.
Probing for Atmel AT45DB021D, 256 KB: skipped.
Probing for Atmel AT45DB041D, 512 KB: skipped.
Probing for Atmel AT45DB081D, 1024 KB: skipped.
Probing for Atmel AT45DB161D, 2048 KB: skipped.
Probing for Atmel AT45DB321C, 4224 KB: skipped.
Probing for Atmel AT45DB321D, 4096 KB: skipped.
Probing for Atmel AT45DB642D, 8192 KB: skipped.
Probing for Atmel AT49BV512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT49F020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT49F002(N), 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for EMST F49B002UA, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for EMST F25L008A, 1024 KB: skipped.
Probing for Eon EN25B05, 64 KB: skipped.
Probing for Eon EN25B05T, 64 KB: skipped.
Probing for Eon EN25B10, 128 KB: skipped.
Probing for Eon EN25B10T, 128 KB: skipped.
Probing for Eon EN25B20, 256 KB: skipped.
Probing for Eon EN25B20T, 256 KB: skipped.
Probing for Eon EN25B40, 512 KB: skipped.
Probing for Eon EN25B40T, 512 KB: skipped.
Probing for Eon EN25B80, 1024 KB: skipped.
Probing for Eon EN25B80T, 1024 KB: skipped.
Probing for Eon EN25B16, 2048 KB: skipped.
Probing for Eon EN25B16T, 2048 KB: skipped.
Probing for Eon EN25B32, 4096 KB: skipped.
Probing for Eon EN25B32T, 4096 KB: skipped.
Probing for Eon EN25B64, 8192 KB: skipped.
Probing for Eon EN25B64T, 8192 KB: skipped.
Probing for Eon EN25D16, 2048 KB: skipped.
Probing for Eon EN25F05, 64 KB: skipped.
Probing for Eon EN25F10, 128 KB: skipped.
Probing for Eon EN25F20, 256 KB: skipped.
Probing for Eon EN25F40, 512 KB: skipped.
Probing for Eon EN25F80, 1024 KB: skipped.
Probing for Eon EN25F16, 2048 KB: skipped.
Probing for Eon EN25F32, 4096 KB: skipped.
Probing for Eon EN29F010, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Eon EN29F002(A)(N)T, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F004BC, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F004TC, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F400BC, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for Hyundai HY29F002T, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Hyundai HY29F002B, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Intel 28F001BX-B, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Intel 28F001BX-T, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Intel 28F002BC-T, 256 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004S5, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004BV/BE-B, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004BV/BE-T, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F400BV/CV/CE-B, 512 KB: probe_82802ab: id1 0x23, id2 0x2d, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F400BV/CV/CE-T, 512 KB: probe_82802ab: id1 0x23, id2 0x2d, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AB, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AC, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX25L512, 64 KB: skipped.
Probing for Macronix MX25L1005, 128 KB: skipped.
Probing for Macronix MX25L2005, 256 KB: skipped.
Probing for Macronix MX25L4005, 512 KB: skipped.
Probing for Macronix MX25L8005, 1024 KB: skipped.
Probing for Macronix MX25L1605, 2048 KB: skipped.
Probing for Macronix MX25L1635D, 2048 KB: skipped.
Probing for Macronix MX25L3205, 4096 KB: skipped.
Probing for Macronix MX25L3235D, 4096 KB: skipped.
Probing for Macronix MX25L6405, 8192 KB: skipped.
Probing for Macronix MX25L12805, 16384 KB: skipped.
Probing for Macronix MX29F001B, 128 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xdd, id2 0x85, 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 0xdd, id2 0x85, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for MoselVitelic V29C51000B, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29C51000T, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29C51400B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29C51400T, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29LC51000, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29LC51001, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29LC51002, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Numonyx M25PE10, 128 KB: skipped.
Probing for Numonyx M25PE20, 256 KB: skipped.
Probing for Numonyx M25PE40, 512 KB: skipped.
Probing for Numonyx M25PE80, 1024 KB: skipped.
Probing for Numonyx M25PE16, 2048 KB: skipped.
Probing for PMC Pm25LV010, 128 KB: skipped.
Probing for PMC Pm25LV016B, 2048 KB: skipped.
Probing for PMC Pm25LV020, 256 KB: skipped.
Probing for PMC Pm25LV040, 512 KB: skipped.
Probing for PMC Pm25LV080B, 1024 KB: skipped.
Probing for PMC Pm25LV512, 64 KB: skipped.
Probing for PMC Pm29F002T, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV010, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV020, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV040, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm49FL002, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for PMC Pm49FL004, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Sanyo LF25FW203A, 2048 KB: skipped.
Probing for Sharp LHF00L04, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Spansion S25FL008A, 1024 KB: skipped.
Probing for Spansion S25FL016A, 2048 KB: skipped.
Probing for SST SST25VF016B, 2048 KB: skipped.
Probing for SST SST25VF032B, 4096 KB: skipped.
Probing for SST SST25VF064C, 8192 KB: skipped.
Probing for SST SST25VF040.REMS, 512 KB: skipped.
Probing for SST SST25VF040B, 512 KB: skipped.
Probing for SST SST25LF040A.RES, 512 KB: skipped.
Probing for SST SST25VF040B.REMS, 512 KB: skipped.
Probing for SST SST25VF080B, 1024 KB: skipped.
Probing for SST SST28SF040A, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for SST SST29EE010, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST29LE010, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST29EE020A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST29LE020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39SF512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39SF010A, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39SF020A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Found chip "SST SST39SF020A" (256 KB, Parallel) at physical address 0xfffc0000.
Probing for SST SST39SF040, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF010, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF040, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for SST SST49LF003A/B, 384 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF004A/B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF004C, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
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, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF016C, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF020A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF040, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF040B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M25P05-A, 64 KB: skipped.
Probing for ST M25P05.RES, 64 KB: skipped.
Probing for ST M25P10-A, 128 KB: skipped.
Probing for ST M25P10.RES, 128 KB: skipped.
Probing for ST M25P20, 256 KB: skipped.
Probing for ST M25P40, 512 KB: skipped.
Probing for ST M25P40-old, 512 KB: skipped.
Probing for ST M25P80, 1024 KB: skipped.
Probing for ST M25P16, 2048 KB: skipped.
Probing for ST M25P32, 4096 KB: skipped.
Probing for ST M25P64, 8192 KB: skipped.
Probing for ST M25P128, 16384 KB: skipped.
Probing for ST M29F002B, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F002T/NT, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F400BB, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for ST M29W010B, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29W040B, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M29W512B, 64 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040A, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040B, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW080A, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW080B, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW002, 256 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW016, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW040, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW080, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50LPW116, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for TI TMS29F002RB, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for TI TMS29F002RT, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W25Q80, 1024 KB: skipped.
Probing for Winbond W25Q16, 2048 KB: skipped.
Probing for Winbond W25Q32, 4096 KB: skipped.
Probing for Winbond W25Q64, 8192 KB: skipped.
Probing for Winbond W25x10, 128 KB: skipped.
Probing for Winbond W25x20, 256 KB: skipped.
Probing for Winbond W25x40, 512 KB: skipped.
Probing for Winbond W25x80, 1024 KB: skipped.
Probing for Winbond W25x16, 2048 KB: skipped.
Probing for Winbond W25x32, 4096 KB: skipped.
Probing for Winbond W25x64, 8192 KB: skipped.
Probing for Winbond W29C011, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W29C020C, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W29C040P, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for Winbond W39V040B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W39V040C, 512 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W39V040FA, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for Winbond W49F020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W49V002A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W49V002FA, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for AMIC unknown AMIC SPI chip, 0 KB: skipped.
Probing for Atmel unknown Atmel SPI chip, 0 KB: skipped.
Probing for Eon unknown Eon SPI chip, 0 KB: skipped.
Probing for Macronix unknown Macronix SPI chip, 0 KB: skipped.
Probing for PMC unknown PMC SPI chip, 0 KB: skipped.
Probing for SST unknown SST SPI chip, 0 KB: skipped.
Probing for ST unknown ST SPI chip, 0 KB: skipped.
Probing for Sanyo unknown Sanyo SPI chip, 0 KB: skipped.
Probing for Generic unknown SPI chip (RDID), 0 KB: skipped.
Probing for Generic unknown SPI chip (REMS), 0 KB: skipped.
Reading flash... done.
flashrom v0.9.2-r1145 on Linux 2.6.32-5-686 (i686), built with libpci 3.1.7, GCC 4.4.5 20100728 (prerelease), little endian
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OS timer resolution is 1 usecs, 1017M loops per second, delay more than 10% too short (got 89% of expected delay), recalculating... 931M loops per second, delay more than 10% too short (got 82% of expected delay), recalculating... 1027M loops per second, 10 myus = 10 us, 100 myus = 91 us, 1000 myus = 899 us, 10000 myus = 9004 us, 4 myus = 5 us, OK.
Initializing internal programmer
No coreboot table found.
DMI string system-manufacturer: "System Manufacturer"
DMI string system-product-name: "System Name"
DMI string system-version: "System Version"
DMI string baseboard-manufacturer: "ASUSTeK Computer INC."
DMI string baseboard-product-name: "P4SC-E"
DMI string baseboard-version: "REV 1.xx"
DMI string chassis-type: "Tower"
Found chipset "SiS 651", enabling flash write... chipset PCI ID is 1039:0651, Found southbridge 1039:0962 at 00:02:0
OK.
This chipset supports the following protocols: Non-SPI.
Disabling flash write protection for board "ASUS P4SC-E"... OK.
Probing for AMD Am29F010A/B, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F002(N)BT, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 AMIC A25L05PT, 64 KB: skipped.
Probing for AMIC A25L05PU, 64 KB: skipped.
Probing for AMIC A25L10PT, 128 KB: skipped.
Probing for AMIC A25L10PU, 128 KB: skipped.
Probing for AMIC A25L20PT, 256 KB: skipped.
Probing for AMIC A25L20PU, 256 KB: skipped.
Probing for AMIC A25L40PT, 512 KB: skipped.
Probing for AMIC A25L40PU, 512 KB: skipped.
Probing for AMIC A25L80P, 1024 KB: skipped.
Probing for AMIC A25L16PT, 2048 KB: skipped.
Probing for AMIC A25L16PU, 2048 KB: skipped.
Probing for AMIC A25L512, 64 KB: skipped.
Probing for AMIC A25L010, 128 KB: skipped.
Probing for AMIC A25L020, 256 KB: skipped.
Probing for AMIC A25L040, 512 KB: skipped.
Probing for AMIC A25L080, 1024 KB: skipped.
Probing for AMIC A25L016, 2048 KB: skipped.
Probing for AMIC A25L032, 4096 KB: skipped.
Probing for AMIC A25LQ032, 4096 KB: skipped.
Probing for AMIC A29002B, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for AMIC A49LF040A, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for ASD AE49F2008, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT25DF021, 256 KB: skipped.
Probing for Atmel AT25DF041A, 512 KB: skipped.
Probing for Atmel AT25DF081, 1024 KB: skipped.
Probing for Atmel AT25DF081A, 1024 KB: skipped.
Probing for Atmel AT25DF161, 2048 KB: skipped.
Probing for Atmel AT25DF321, 4096 KB: skipped.
Probing for Atmel AT25DF321A, 4096 KB: skipped.
Probing for Atmel AT25DF641, 8192 KB: skipped.
Probing for Atmel AT25DQ161, 2048 KB: skipped.
Probing for Atmel AT25F512B, 64 KB: skipped.
Probing for Atmel AT25FS010, 128 KB: skipped.
Probing for Atmel AT25FS040, 512 KB: skipped.
Probing for Atmel AT26DF041, 512 KB: skipped.
Probing for Atmel AT26DF081A, 1024 KB: skipped.
Probing for Atmel AT26DF161, 2048 KB: skipped.
Probing for Atmel AT26DF161A, 2048 KB: skipped.
Probing for Atmel AT26F004, 512 KB: skipped.
Probing for Atmel AT29C512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT29C010A, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT29C020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT29C040A, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT45CS1282, 16896 KB: skipped.
Probing for Atmel AT45DB011D, 128 KB: skipped.
Probing for Atmel AT45DB021D, 256 KB: skipped.
Probing for Atmel AT45DB041D, 512 KB: skipped.
Probing for Atmel AT45DB081D, 1024 KB: skipped.
Probing for Atmel AT45DB161D, 2048 KB: skipped.
Probing for Atmel AT45DB321C, 4224 KB: skipped.
Probing for Atmel AT45DB321D, 4096 KB: skipped.
Probing for Atmel AT45DB642D, 8192 KB: skipped.
Probing for Atmel AT49BV512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT49F020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT49F002(N), 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for EMST F49B002UA, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for EMST F25L008A, 1024 KB: skipped.
Probing for Eon EN25B05, 64 KB: skipped.
Probing for Eon EN25B05T, 64 KB: skipped.
Probing for Eon EN25B10, 128 KB: skipped.
Probing for Eon EN25B10T, 128 KB: skipped.
Probing for Eon EN25B20, 256 KB: skipped.
Probing for Eon EN25B20T, 256 KB: skipped.
Probing for Eon EN25B40, 512 KB: skipped.
Probing for Eon EN25B40T, 512 KB: skipped.
Probing for Eon EN25B80, 1024 KB: skipped.
Probing for Eon EN25B80T, 1024 KB: skipped.
Probing for Eon EN25B16, 2048 KB: skipped.
Probing for Eon EN25B16T, 2048 KB: skipped.
Probing for Eon EN25B32, 4096 KB: skipped.
Probing for Eon EN25B32T, 4096 KB: skipped.
Probing for Eon EN25B64, 8192 KB: skipped.
Probing for Eon EN25B64T, 8192 KB: skipped.
Probing for Eon EN25D16, 2048 KB: skipped.
Probing for Eon EN25F05, 64 KB: skipped.
Probing for Eon EN25F10, 128 KB: skipped.
Probing for Eon EN25F20, 256 KB: skipped.
Probing for Eon EN25F40, 512 KB: skipped.
Probing for Eon EN25F80, 1024 KB: skipped.
Probing for Eon EN25F16, 2048 KB: skipped.
Probing for Eon EN25F32, 4096 KB: skipped.
Probing for Eon EN29F010, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Eon EN29F002(A)(N)T, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F004BC, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F004TC, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F400BC, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for Hyundai HY29F002T, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Hyundai HY29F002B, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Intel 28F001BX-B, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Intel 28F001BX-T, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Intel 28F002BC-T, 256 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004S5, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004BV/BE-B, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004BV/BE-T, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F400BV/CV/CE-B, 512 KB: probe_82802ab: id1 0x23, id2 0x2d, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F400BV/CV/CE-T, 512 KB: probe_82802ab: id1 0x23, id2 0x2d, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AB, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AC, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX25L512, 64 KB: skipped.
Probing for Macronix MX25L1005, 128 KB: skipped.
Probing for Macronix MX25L2005, 256 KB: skipped.
Probing for Macronix MX25L4005, 512 KB: skipped.
Probing for Macronix MX25L8005, 1024 KB: skipped.
Probing for Macronix MX25L1605, 2048 KB: skipped.
Probing for Macronix MX25L1635D, 2048 KB: skipped.
Probing for Macronix MX25L3205, 4096 KB: skipped.
Probing for Macronix MX25L3235D, 4096 KB: skipped.
Probing for Macronix MX25L6405, 8192 KB: skipped.
Probing for Macronix MX25L12805, 16384 KB: skipped.
Probing for Macronix MX29F001B, 128 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xdd, id2 0x85, 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 0xdd, id2 0x85, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for MoselVitelic V29C51000B, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29C51000T, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29C51400B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29C51400T, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29LC51000, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29LC51001, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for MoselVitelic V29LC51002, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Numonyx M25PE10, 128 KB: skipped.
Probing for Numonyx M25PE20, 256 KB: skipped.
Probing for Numonyx M25PE40, 512 KB: skipped.
Probing for Numonyx M25PE80, 1024 KB: skipped.
Probing for Numonyx M25PE16, 2048 KB: skipped.
Probing for PMC Pm25LV010, 128 KB: skipped.
Probing for PMC Pm25LV016B, 2048 KB: skipped.
Probing for PMC Pm25LV020, 256 KB: skipped.
Probing for PMC Pm25LV040, 512 KB: skipped.
Probing for PMC Pm25LV080B, 1024 KB: skipped.
Probing for PMC Pm25LV512, 64 KB: skipped.
Probing for PMC Pm29F002T, 256 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV010, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV020, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV040, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm49FL002, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for PMC Pm49FL004, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Sanyo LF25FW203A, 2048 KB: skipped.
Probing for Sharp LHF00L04, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Spansion S25FL008A, 1024 KB: skipped.
Probing for Spansion S25FL016A, 2048 KB: skipped.
Probing for SST SST25VF016B, 2048 KB: skipped.
Probing for SST SST25VF032B, 4096 KB: skipped.
Probing for SST SST25VF064C, 8192 KB: skipped.
Probing for SST SST25VF040.REMS, 512 KB: skipped.
Probing for SST SST25VF040B, 512 KB: skipped.
Probing for SST SST25LF040A.RES, 512 KB: skipped.
Probing for SST SST25VF040B.REMS, 512 KB: skipped.
Probing for SST SST25VF080B, 1024 KB: skipped.
Probing for SST SST28SF040A, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for SST SST29EE010, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST29LE010, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST29EE020A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST29LE020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39SF512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39SF010A, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39SF020A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Found chip "SST SST39SF020A" (256 KB, Parallel) at physical address 0xfffc0000.
Probing for SST SST39SF040, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF512, 64 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF010, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST39VF040, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for SST SST49LF003A/B, 384 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF004A/B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF004C, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
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, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF016C, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF020A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF040, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SST SST49LF040B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M25P05-A, 64 KB: skipped.
Probing for ST M25P05.RES, 64 KB: skipped.
Probing for ST M25P10-A, 128 KB: skipped.
Probing for ST M25P10.RES, 128 KB: skipped.
Probing for ST M25P20, 256 KB: skipped.
Probing for ST M25P40, 512 KB: skipped.
Probing for ST M25P40-old, 512 KB: skipped.
Probing for ST M25P80, 1024 KB: skipped.
Probing for ST M25P16, 2048 KB: skipped.
Probing for ST M25P32, 4096 KB: skipped.
Probing for ST M25P64, 8192 KB: skipped.
Probing for ST M25P128, 16384 KB: skipped.
Probing for ST M29F002B, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F002T/NT, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, 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 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F400BB, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0x23, id2 0x2d
Probing for ST M29W010B, 128 KB: probe_jedec_common: id1 0xdd, id2 0x85, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29W040B, 512 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M29W512B, 64 KB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040A, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040B, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW080A, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW080B, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW002, 256 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW016, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW040, 512 KB: probe_82802ab: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW080, 1024 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50LPW116, 2048 KB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for TI TMS29F002RB, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for TI TMS29F002RT, 256 KB: probe_jedec_common: id1 0x23, id2 0xf1, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W25Q80, 1024 KB: skipped.
Probing for Winbond W25Q16, 2048 KB: skipped.
Probing for Winbond W25Q32, 4096 KB: skipped.
Probing for Winbond W25Q64, 8192 KB: skipped.
Probing for Winbond W25x10, 128 KB: skipped.
Probing for Winbond W25x20, 256 KB: skipped.
Probing for Winbond W25x40, 512 KB: skipped.
Probing for Winbond W25x80, 1024 KB: skipped.
Probing for Winbond W25x16, 2048 KB: skipped.
Probing for Winbond W25x32, 4096 KB: skipped.
Probing for Winbond W25x64, 8192 KB: skipped.
Probing for Winbond W29C011, 128 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W29C020C, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W29C040P, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for Winbond W39V040B, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W39V040C, 512 KB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W39V040FA, 512 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for Winbond W49F020, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W49V002A, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
Probing for Winbond W49V002FA, 256 KB: probe_jedec_common: id1 0xbf, id2 0xb6
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 0xb6
Probing for AMIC unknown AMIC SPI chip, 0 KB: skipped.
Probing for Atmel unknown Atmel SPI chip, 0 KB: skipped.
Probing for Eon unknown Eon SPI chip, 0 KB: skipped.
Probing for Macronix unknown Macronix SPI chip, 0 KB: skipped.
Probing for PMC unknown PMC SPI chip, 0 KB: skipped.
Probing for SST unknown SST SPI chip, 0 KB: skipped.
Probing for ST unknown ST SPI chip, 0 KB: skipped.
Probing for Sanyo unknown Sanyo SPI chip, 0 KB: skipped.
Probing for Generic unknown SPI chip (RDID), 0 KB: skipped.
Probing for Generic unknown SPI chip (REMS), 0 KB: skipped.
Flash image seems to be a legacy BIOS. Disabling checks.
Writing flash chip... Erasing flash chip... Looking at blockwise erase function 0... trying... 0x000000-0x000fff, 0x001000-0x001fff, 0x002000-0x002fff, 0x003000-0x003fff, 0x004000-0x004fff, 0x005000-0x005fff, 0x006000-0x006fff, 0x007000-0x007fff, 0x008000-0x008fff, 0x009000-0x009fff, 0x00a000-0x00afff, 0x00b000-0x00bfff, 0x00c000-0x00cfff, 0x00d000-0x00dfff, 0x00e000-0x00efff, 0x00f000-0x00ffff, 0x010000-0x010fff, 0x011000-0x011fff, 0x012000-0x012fff, 0x013000-0x013fff, 0x014000-0x014fff, 0x015000-0x015fff, 0x016000-0x016fff, 0x017000-0x017fff, 0x018000-0x018fff, 0x019000-0x019fff, 0x01a000-0x01afff, 0x01b000-0x01bfff, 0x01c000-0x01cfff, 0x01d000-0x01dfff, 0x01e000-0x01efff, 0x01f000-0x01ffff, 0x020000-0x020fff, 0x021000-0x021fff, 0x022000-0x022fff, 0x023000-0x023fff, 0x024000-0x024fff, 0x025000-0x025fff, 0x026000-0x026fff, 0x027000-0x027fff, 0x028000-0x028fff, 0x029000-0x029fff, 0x02a000-0x02afff, 0x02b000-0x02bfff, 0x02c000-0x02cfff, 0x02d000-0x02dfff, 0x02e000-0x02efff, 0x02f000-0x02ffff, 0x030000-0x030fff, 0x031000-0x031fff, 0x032000-0x032fff, 0x033000-0x033fff, 0x034000-0x034fff, 0x035000-0x035fff, 0x036000-0x036fff, 0x037000-0x037fff, 0x038000-0x038fff, 0x039000-0x039fff, 0x03a000-0x03afff, 0x03b000-0x03bfff, 0x03c000-0x03cfff, 0x03d000-0x03dfff, 0x03e000-0x03efff, 0x03f000-0x03ffff, 
SUCCESS.
Programming page: address: 0x00000000address: 0x00001000address: 0x00002000address: 0x00003000address: 0x00004000address: 0x00005000address: 0x00006000address: 0x00007000address: 0x00008000address: 0x00009000address: 0x0000a000address: 0x0000b000address: 0x0000c000address: 0x0000d000address: 0x0000e000address: 0x0000f000address: 0x00010000address: 0x00011000address: 0x00012000address: 0x00013000address: 0x00014000address: 0x00015000address: 0x00016000address: 0x00017000address: 0x00018000address: 0x00019000address: 0x0001a000address: 0x0001b000address: 0x0001c000address: 0x0001d000address: 0x0001e000address: 0x0001f000address: 0x00020000address: 0x00021000address: 0x00022000address: 0x00023000address: 0x00024000address: 0x00025000address: 0x00026000address: 0x00027000address: 0x00028000address: 0x00029000address: 0x0002a000address: 0x0002b000address: 0x0002c000address: 0x0002d000address: 0x0002e000address: 0x0002f000address: 0x00030000address: 0x00031000address: 0x00032000address: 0x00033000address: 0x00034000address: 0x00035000address: 0x00036000address: 0x00037000address: 0x00038000address: 0x00039000address: 0x0003a000address: 0x0003b000address: 0x0003c000address: 0x0003d000address: 0x0003e000address: 0x0003f000DONE!
COMPLETE.
Verifying flash... VERIFIED.
Uwe Hermann - 2010-09-13 18:29:50
> +static int it8707f_write_enable(uint8_t port)
> +{
> +	uint8_t tmp;
> +
> +	w836xx_ext_enter(port);
> +
> +	tmp = sio_read(port, 0x23);
> +	tmp |= 8;

Please consider (1 << 3) for better readability.


Acked-by: Uwe Hermann <uwe@hermann-uwe.de>

Uwe.
Mattias Mattsson - 2010-09-13 19:41:37
On Mon, Sep 13, 2010 at 20:29, Uwe Hermann <uwe@hermann-uwe.de> wrote:
>> +static int it8707f_write_enable(uint8_t port)
>> +{
>> +     uint8_t tmp;
>> +
>> +     w836xx_ext_enter(port);
>> +
>> +     tmp = sio_read(port, 0x23);
>> +     tmp |= 8;
>
> Please consider (1 << 3) for better readability.

Fixed. Also added some comments.

> Acked-by: Uwe Hermann <uwe@hermann-uwe.de>

Thanks, r1161


-mattias

Patch

Index: print.c
===================================================================
--- print.c	(revision 1145)
+++ print.c	(working copy)
@@ -356,6 +356,7 @@ 
 	B("ASUS",	"P4B533-E",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/sock478/p4b533-e/", NULL),
 	B("ASUS",	"P4C800-E Deluxe",	1, "http://www.asus.com/product.aspx?P_ID=cFuVCr9bXXCckmcK", NULL),
 	B("ASUS",	"P4P800-E Deluxe",	1, "http://www.asus.com/product.aspx?P_ID=INIJUvLlif7LHp3g", NULL),
+	B("ASUS",	"P4SC-E",		1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/sock478/p4sc-e/", "Part of ASUS Terminator P4 533 barebone system"),
 	B("ASUS",	"P4SD-LA",		1, "http://h10025.www1.hp.com/ewfrf/wc/document?docname=c00022505", NULL),
 	B("ASUS",	"P4S800-MX",		1, "http://www.asus.com/product.aspx?P_ID=Bb57zoJhmO1Qkcrh", NULL),
 	B("ASUS",	"P5A",			1, "ftp://ftp.asus.com.tw/pub/ASUS/mb/sock7/ali/p5a/", NULL),
Index: board_enable.c
===================================================================
--- board_enable.c	(revision 1145)
+++ board_enable.c	(working copy)
@@ -496,6 +496,43 @@ 
 	return ret;
 }
 
+/*
+ * The ITE IT8707F is a custom chip made by ITE exclusively for ASUS.
+ * It uses the Winbond command sequence to enter extended configuration
+ * mode and the ITE sequence to exit.
+ */
+static int it8707f_write_enable(uint8_t port)
+{
+	uint8_t tmp;
+
+	w836xx_ext_enter(port);
+
+	tmp = sio_read(port, 0x23);
+	tmp |= 8;
+	sio_write(port, 0x23, tmp);
+
+	tmp = sio_read(port, 0x24);
+	tmp |= 0xc;
+	sio_write(port, 0x24, tmp);
+
+	tmp = sio_read(port, 0x23);
+	tmp &= ~8;
+	sio_write(port, 0x23, tmp);
+
+	exit_conf_mode_ite(port);
+
+	return 0;
+}
+
+/*
+ * Suited for:
+ *  - ASUS P4SC-E: SiS 651 + 962
+ */
+static int it8707f_write_enable_2e(void)
+{
+	return it8707f_write_enable(0x2e);
+}
+
 static int pc87360_gpio_set(uint8_t gpio, int raise)
 {
 	static const int bankbase[] = {0, 4, 8, 10, 12};
@@ -1784,6 +1821,7 @@ 
 	{0x8086, 0x1A30, 0x1043, 0x8088,  0x8086, 0x24C3, 0x1043, 0x8089, NULL,          NULL,         NULL,          "ASUS",        "P4B533-E",              0,   NT, intel_ich_gpio22_raise},
 	{0x8086, 0x24D3, 0x1043, 0x80A6,  0x8086, 0x2578, 0x1043, 0x80F6, NULL,          NULL,         NULL,          "ASUS",        "P4C800-E Deluxe",       0,   OK, intel_ich_gpio21_raise},
 	{0x8086, 0x2570, 0x1043, 0x80F2,  0x105A, 0x3373, 0x1043, 0x80F5, NULL,          NULL,         NULL,          "ASUS",        "P4P800-E Deluxe",       0,   OK, intel_ich_gpio21_raise},
+	{0x1039, 0x0651, 0x1043, 0x8081,  0x1039, 0x0962,      0,      0, NULL,          NULL,         NULL,          "ASUS",        "P4SC-E",                0,   OK, it8707f_write_enable_2e},
 	{0x8086, 0x2570, 0x1043, 0x80A5,  0x105A, 0x24D3, 0x1043, 0x80A6, NULL,          NULL,         NULL,          "ASUS",        "P4SD-LA",               0,   NT, intel_ich_gpio32_raise},
 	{0x1039, 0x0661, 0x1043, 0x8113,  0x1039, 0x5513, 0x1043, 0x8087, NULL,          NULL,         NULL,          "ASUS",        "P4S800-MX",             512, OK, w836xx_memw_enable_2e},
 	{0x10B9, 0x1541,      0,      0,  0x10B9, 0x1533,      0,      0, "^P5A$",       "asus",       "p5a",         "ASUS",        "P5A",                   0,   OK, board_asus_p5a},