flashrom
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
February 2014
- 36 participants
- 93 discussions
TYAN Computer Corp. S2721-533 Thunder i7501 Pro/S2721-533 Thunder i7501 Pro
by Bozhan Boiadzhiev May 2, 2014
by Bozhan Boiadzhiev May 2, 2014
May 2, 2014
TYAN Computer Corp. S2721-533 Thunder i7501 Pro/S2721-533 Thunder i7501 Pro
root@satlan:~/tyan_bios# flashrom -p internal -V
flashrom v0.9.6.1-r1563 on Linux 3.11-2-686-pae (i686)
flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.1.9, GCC 4.7.1, little endian
Command line (3 args): flashrom -p internal -V
Calibrating delay loop... OS timer resolution is 1 usecs, 1597M loops per second, 10 myus = 11 us, 100 myus = 100 us, 1000 myus = 999 us, 10000 myus = 13228 us, 4 myus = 5 us, OK.
Initializing internal programmer
No coreboot table found.
DMI string system-manufacturer: "TYAN Computer Corp."
DMI string system-product-name: "S2721-533 Thunder i7501 Pro"
DMI string system-version: "To Be Filled By O.E.M."
DMI string baseboard-manufacturer: "TYAN Computer Corp."
DMI string baseboard-product-name: "S2721-533 Thunder i7501 Pro"
DMI string baseboard-version: " To be filled by O.E.M."
DMI string chassis-type: "Desktop"
Found Winbond Super I/O, id 52
Found chipset "Intel ICH3-S" with PCI ID 8086:2480. Enabling flash write...
BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0
OK.
The following protocols are supported: FWH.
Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xfb, id2 0x05, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, 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 PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for 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 SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xbf, id2 0x60
Found SST flash chip "SST49LF004A/B" (512 kB, FWH) at physical address 0xfff80000.
Lock status for 0x000000 (size 0x010000) is 00, full access
Lock status for 0x010000 (size 0x010000) is 00, full access
Lock status for 0x020000 (size 0x010000) is 00, full access
Lock status for 0x030000 (size 0x010000) is 00, full access
Lock status for 0x040000 (size 0x010000) is 00, full access
Lock status for 0x050000 (size 0x010000) is 00, full access
Lock status for 0x060000 (size 0x010000) is 00, full access
Lock status for 0x070000 (size 0x010000) is 00, full access
Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xbf, id2 0x60
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 ST M50FLW040A, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, 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 0xfb, id2 0x05, 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 0xff, id2 0xff, id1 parity violation, 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 Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xbf, id2 0x60
Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xbf, id2 0x60
Found SST flash chip "SST49LF004A/B" (512 kB, FWH).
No operations were specified.
Restoring PCI config space for 00:1f:0 reg 0x4e
root@satlan:~/tyan_bios# lspci -nnvvxxx
00:00.0 Host bridge [0600]: Intel Corporation E7501 Memory Controller Hub [8086:254c] (rev 01)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [40] Vendor Specific Information: Len=05 <?>
00: 86 80 4c 25 06 01 90 00 01 00 00 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00
40: 09 00 05 11 00 00 00 00 00 00 00 00 00 00 00 00
50: 04 60 0d 00 00 00 00 00 00 10 11 11 00 00 33 33
60: 00 00 00 00 08 10 10 10 00 00 00 00 00 00 00 00
70: 00 00 33 00 00 00 00 00 14 02 01 39 79 02 67 20
80: b1 0b 71 00 00 00 00 00 00 98 10 d2 8b 00 00 00
90: 00 00 00 00 00 00 00 00 55 05 55 05 03 1a 38 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 44 c0 50 11 00 40 ff 03 00 00 00 00 00 00 00 00
d0: 02 28 00 0e 03 00 00 33 80 09 31 b5 00 00 01 01
e0: 1d 1d 00 00 00 00 00 00 4e 50 00 00 00 00 00 00
f0: 00 00 00 00 74 00 30 40 40 0f 00 00 00 00 00 00
00:02.0 PCI bridge [0604]: Intel Corporation E7500/E7501 Hub Interface B PCI-to-PCI Bridge [8086:2543] (rev 01) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64
Bus: primary=00, secondary=05, subordinate=07, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: fe800000-feafffff
Prefetchable memory behind bridge: ff700000-ff9fffff
Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
00: 86 80 43 25 07 01 a0 00 01 00 04 06 00 40 01 00
10: 00 00 00 00 00 00 00 00 00 05 07 00 d0 d0 a0 02
20: 80 fe a0 fe 70 ff 90 ff 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 3e 00 00 0e 4e 4e 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:03.0 PCI bridge [0604]: Intel Corporation E7500/E7501 Hub Interface C PCI-to-PCI Bridge [8086:2545] (rev 01) (prog-if 00 [Normal decode])
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64
Bus: primary=00, secondary=02, subordinate=04, sec-latency=0
Memory behind bridge: fe500000-fe7fffff
Prefetchable memory behind bridge: ff400000-ff6fffff
Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
00: 86 80 45 25 06 01 a0 00 01 00 04 06 00 40 01 00
10: 00 00 00 00 00 00 00 00 00 02 04 00 f0 00 a0 22
20: 50 fe 70 fe 40 ff 60 ff 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 3e 00 00 0e 4e 50 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:1d.0 USB controller [0c03]: Intel Corporation 82801CA/CAM USB Controller #1 [8086:2482] (rev 02) (prog-if 00 [UHCI])
Subsystem: Intel Corporation Device [8086:2480]
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
Region 4: I/O ports at e800 [size=32]
Kernel driver in use: uhci_hcd
00: 86 80 82 24 05 00 80 02 02 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 e8 00 00 00 00 00 00 00 00 00 00 86 80 80 24
30: 00 00 00 00 00 00 00 00 00 00 00 00 09 01 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 47 0f 00 00 00 00 00 00
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev 42) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: fc400000-fe4fffff
Prefetchable memory behind bridge: ff300000-ff3fffff
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA+ MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
00: 86 80 4e 24 07 01 80 00 42 00 04 06 00 00 01 00
10: 00 00 00 00 00 00 00 00 00 01 01 20 c0 c0 80 22
20: 40 fc 40 fe 30 ff 30 ff 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00
40: 02 28 20 20 00 01 00 00 00 00 00 00 00 00 00 00
50: 02 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 88 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 10 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 01 00 02 00 00 00 c0 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 47 0f 00 00 00 00 69 2e
00:1f.0 ISA bridge [0601]: Intel Corporation 82801CA LPC Interface Controller [8086:2480] (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Kernel driver in use: lpc_ich
00: 86 80 80 24 0f 00 80 02 02 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 01 04 00 00 10 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 01 05 00 00 10 00 00 00
60: 89 80 8b 85 d1 00 00 00 80 80 80 80 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: ff fc 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 02 00 00 00 00 00 00 0d 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 86 21 00 00 02 02 00 00 04 00 00 00 00 00 00 00
e0: 10 00 00 c0 00 00 0f 14 33 22 11 00 00 00 67 45
f0: 00 00 60 86 00 00 00 00 47 0f 0e 00 00 00 81 00
00:1f.1 IDE interface [0101]: Intel Corporation 82801CA Ultra ATA Storage Controller [8086:248b] (rev 02) (prog-if 8a [Master SecP PriP])
Subsystem: Intel Corporation Device [8086:2480]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 18
Region 0: I/O ports at 01f0 [size=8]
Region 1: I/O ports at 03f4
Region 2: I/O ports at 0170 [size=8]
Region 3: I/O ports at 0374
Region 4: I/O ports at ffa0 [size=16]
Region 5: Memory at 40000000 (32-bit, non-prefetchable) [size=1K]
Kernel driver in use: ata_piix
00: 86 80 8b 24 07 00 80 02 02 8a 01 01 00 00 00 00
10: 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
20: a1 ff 00 00 00 00 00 40 00 00 00 00 86 80 80 24
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00
40: 07 e3 03 e3 00 00 00 00 05 00 01 02 00 00 00 00
50: 00 00 00 00 30 14 00 00 00 00 00 00 00 00 00 00
60: 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 47 0f 00 00 00 00 00 00
00:1f.3 SMBus [0c05]: Intel Corporation 82801CA/CAM SMBus Controller [8086:2483] (rev 02)
Subsystem: Intel Corporation Device [8086:2480]
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin B routed to IRQ 17
Region 4: I/O ports at 0540 [size=32]
Kernel driver in use: i801_smbus
00: 86 80 83 24 01 00 80 02 02 00 05 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 41 05 00 00 00 00 00 00 00 00 00 00 86 80 80 24
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00
40: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 47 0f 00 00 00 00 00 00
01:01.0 Ethernet controller [0200]: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 [8086:1229] (rev 10)
Subsystem: Intel Corporation EtherExpress PRO/100 S Server Adapter [8086:1040]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (2000ns min, 14000ns max), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: Memory at fe4fe000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at c400 [size=64]
Region 2: Memory at fe4a0000 (32-bit, non-prefetchable) [size=128K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-
Kernel driver in use: e100
00: 86 80 29 12 17 01 90 02 10 00 00 02 10 40 00 00
10: 00 e0 4f fe 01 c4 00 00 00 00 4a fe 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 40 10
30: 00 00 00 00 dc 00 00 00 00 00 00 00 05 01 08 38
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 22 fe
e0: 00 40 00 4b 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01:02.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Rage XL PCI [1002:4752] (rev 27) (prog-if 00 [VGA controller])
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Rage XL [1002:8008]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (2000ns min), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 11
Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
Region 1: I/O ports at c800 [size=256]
Region 2: Memory at fe4ff000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at fe4c0000 [disabled] [size=128K]
Capabilities: [5c] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
00: 02 10 52 47 87 00 90 02 27 00 00 03 10 40 00 00
10: 00 00 00 fd 01 c8 00 00 00 f0 4f fe 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 02 10 08 80
30: 00 00 4c fe 5c 00 00 00 00 00 00 00 0b 01 08 00
40: 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 02 5c 10 00 01 00 00 ff 00 00 00 00 01 00 02 06
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
02:1c.0 PIC [0800]: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461] (rev 04) (prog-if 20 [IO(X)-APIC])
Subsystem: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at fe7fe000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [50] PCI-X non-bridge device
Command: DPERE- ERO- RBC=512 OST=1
Status: Dev=02:1c.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=512 DMOST=1 DMCRS=8 RSCEM- 266MHz- 533MHz-
00: 86 80 61 14 06 01 30 00 04 20 00 08 00 00 00 00
10: 00 e0 7f fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 61 14
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00
40: 14 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 00 00 e0 02 03 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 96 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
02:1d.0 PCI bridge [0604]: Intel Corporation 82870P2 P64H2 Hub PCI Bridge [8086:1460] (rev 04) (prog-if 00 [Normal decode])
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64, Cache Line Size: 64 bytes
Bus: primary=02, secondary=04, subordinate=04, sec-latency=64
Memory behind bridge: fe600000-fe6fffff
Prefetchable memory behind bridge: 00000000ff500000-00000000ff5fffff
Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] PCI-X bridge device
Secondary Status: 64bit+ 133MHz+ SCD- USC- SCO- SRD- Freq=100MHz
Status: Dev=02:1d.0 64bit+ 133MHz+ SCD- USC- SCO- SRD-
Upstream: Capacity=65535 CommitmentLimit=65535
Downstream: Capacity=65535 CommitmentLimit=65535
00: 86 80 60 14 06 01 30 00 04 00 04 06 10 40 01 00
10: 00 00 00 00 00 00 00 00 02 04 04 40 f0 00 a0 22
20: 60 fe 60 fe 51 ff 51 ff 00 00 00 00 00 00 00 00
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 06 00
40: 80 e1 08 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 83 00 e8 02 03 00 ff ff ff ff ff ff ff ff
60: 00 04 e0 00 00 00 00 00 00 00 00 00 0f 0a 00 00
70: 00 f8 00 00 00 00 00 00 04 e8 02 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 8f c3 00 00 22 20 00 00 00 00 00 00 00 00 00 00
f0: 12 02 04 00 00 00 00 00 23 22 37 77 ff bf ff bf
02:1e.0 PIC [0800]: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461] (rev 04) (prog-if 20 [IO(X)-APIC])
Subsystem: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at fe7ff000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [50] PCI-X non-bridge device
Command: DPERE- ERO- RBC=512 OST=1
Status: Dev=02:1e.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=512 DMOST=1 DMCRS=8 RSCEM- 266MHz- 533MHz-
00: 86 80 61 14 06 01 30 00 04 20 00 08 00 00 00 00
10: 00 f0 7f fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 61 14
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00
40: 10 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 00 00 f0 02 03 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
02:1f.0 PCI bridge [0604]: Intel Corporation 82870P2 P64H2 Hub PCI Bridge [8086:1460] (rev 04) (prog-if 00 [Normal decode])
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64, Cache Line Size: 64 bytes
Bus: primary=02, secondary=03, subordinate=03, sec-latency=64
Memory behind bridge: fe500000-fe5fffff
Prefetchable memory behind bridge: 00000000ff400000-00000000ff4fffff
Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] PCI-X bridge device
Secondary Status: 64bit+ 133MHz+ SCD- USC- SCO- SRD- Freq=133MHz
Status: Dev=02:1f.0 64bit+ 133MHz+ SCD- USC- SCO- SRD-
Upstream: Capacity=65535 CommitmentLimit=65535
Downstream: Capacity=65535 CommitmentLimit=65535
00: 86 80 60 14 06 01 30 00 04 00 04 06 10 40 01 00
10: 00 00 00 00 00 00 00 00 02 03 03 40 f0 00 a0 22
20: 50 fe 50 fe 41 ff 41 ff 00 00 00 00 00 00 00 00
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 06 00
40: c0 f1 08 00 01 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 c3 00 f8 02 03 00 ff ff ff ff ff ff ff ff
60: 00 04 f0 00 00 00 00 00 00 00 00 00 0f 0a 00 00
70: 00 f8 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 8f c3 00 00 24 20 00 00 00 00 00 00 00 00 00 00
f0: 32 02 04 c0 5b 20 00 00 23 22 37 77 ff bf ff bf
05:1c.0 PIC [0800]: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461] (rev 04) (prog-if 20 [IO(X)-APIC])
Subsystem: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at feafe000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [50] PCI-X non-bridge device
Command: DPERE- ERO- RBC=512 OST=1
Status: Dev=05:1c.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=512 DMOST=1 DMCRS=8 RSCEM- 266MHz- 533MHz-
00: 86 80 61 14 06 01 30 00 04 20 00 08 00 00 00 00
10: 00 e0 af fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 61 14
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00
40: 04 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 00 00 e0 05 03 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00
90: 61 a9 00 00 61 a9 00 00 61 a9 00 00 61 a9 00 00
a0: 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
05:1d.0 PCI bridge [0604]: Intel Corporation 82870P2 P64H2 Hub PCI Bridge [8086:1460] (rev 04) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64, Cache Line Size: 64 bytes
Bus: primary=05, secondary=07, subordinate=07, sec-latency=64
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: fe900000-fe9fffff
Prefetchable memory behind bridge: 00000000ff800000-00000000ff8fffff
Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] PCI-X bridge device
Secondary Status: 64bit+ 133MHz+ SCD- USC- SCO- SRD- Freq=133MHz
Status: Dev=05:1d.0 64bit+ 133MHz+ SCD- USC- SCO- SRD-
Upstream: Capacity=65535 CommitmentLimit=65535
Downstream: Capacity=65535 CommitmentLimit=65535
00: 86 80 60 14 07 01 30 00 04 00 04 06 10 40 01 00
10: 00 00 00 00 00 00 00 00 05 07 07 40 d0 d0 a0 02
20: 90 fe 90 fe 81 ff 81 ff 00 00 00 00 00 00 00 00
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 06 00
40: c0 f1 08 00 01 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 c3 00 e8 05 03 00 ff ff ff ff ff ff ff ff
60: 00 04 e0 00 00 00 00 00 00 00 00 00 0f 0a 00 00
70: 00 f8 00 00 00 00 00 00 07 e8 05 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 8f c3 00 00 22 20 00 00 00 00 00 00 00 00 00 00
f0: 12 02 04 00 00 00 00 00 23 22 37 77 ff bf ff bf
05:1e.0 PIC [0800]: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461] (rev 04) (prog-if 20 [IO(X)-APIC])
Subsystem: Intel Corporation 82870P2 P64H2 I/OxAPIC [8086:1461]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Region 0: Memory at feaff000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [50] PCI-X non-bridge device
Command: DPERE- ERO- RBC=512 OST=1
Status: Dev=05:1e.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=512 DMOST=1 DMCRS=8 RSCEM- 266MHz- 533MHz-
00: 86 80 61 14 06 01 30 00 04 20 00 08 00 00 00 00
10: 00 f0 af fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 61 14
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00
40: 00 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 00 00 f0 05 03 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
05:1f.0 PCI bridge [0604]: Intel Corporation 82870P2 P64H2 Hub PCI Bridge [8086:1460] (rev 04) (prog-if 00 [Normal decode])
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64, Cache Line Size: 64 bytes
Bus: primary=05, secondary=06, subordinate=06, sec-latency=64
Memory behind bridge: fe800000-fe8fffff
Prefetchable memory behind bridge: 00000000ff700000-00000000ff7fffff
Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] PCI-X bridge device
Secondary Status: 64bit+ 133MHz+ SCD- USC- SCO- SRD- Freq=133MHz
Status: Dev=05:1f.0 64bit+ 133MHz+ SCD- USC- SCO- SRD-
Upstream: Capacity=65535 CommitmentLimit=65535
Downstream: Capacity=65535 CommitmentLimit=65535
00: 86 80 60 14 06 01 30 00 04 00 04 06 10 40 01 00
10: 00 00 00 00 00 00 00 00 05 06 06 40 f0 00 a0 22
20: 80 fe 80 fe 71 ff 71 ff 00 00 00 00 00 00 00 00
30: 00 00 00 00 50 00 00 00 00 00 00 00 00 00 06 00
40: c0 f1 08 00 01 00 00 00 00 00 00 00 00 00 00 00
50: 07 00 c3 00 f8 05 03 00 ff ff ff ff ff ff ff ff
60: 00 04 f0 00 00 00 00 00 00 00 00 00 0f 0a 00 00
70: 00 f8 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 8f c3 00 00 23 20 00 00 00 00 00 00 00 00 00 00
f0: 32 02 04 c2 5b 21 00 00 23 22 37 77 ff bf ff bf
07:01.0 Ethernet controller [0200]: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) [8086:1010] (rev 01)
Subsystem: Intel Corporation PRO/1000 MT Dual Port Server Adapter [8086:1011]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (63750ns min), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 48
Region 0: Memory at fe9c0000 (64-bit, non-prefetchable) [size=128K]
Region 4: I/O ports at d400 [size=64]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [e4] PCI-X non-bridge device
Command: DPERE- ERO+ RBC=512 OST=1
Status: Dev=07:01.0 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=16 RSCEM- 266MHz- 533MHz-
Capabilities: [f0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel driver in use: e1000
00: 86 80 10 10 17 01 30 02 01 00 00 02 10 40 80 00
10: 04 00 9c fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d4 00 00 00 00 00 00 00 00 00 00 86 80 11 10
30: 00 00 00 00 dc 00 00 00 00 00 00 00 09 01 ff 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 e4 22 48
e0: 00 20 00 28 07 f0 02 00 08 07 43 04 00 00 00 00
f0: 05 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00
07:01.1 Ethernet controller [0200]: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) [8086:1010] (rev 01)
Subsystem: Intel Corporation PRO/1000 MT Dual Port Server Adapter [8086:1011]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64 (63750ns min), Cache Line Size: 64 bytes
Interrupt: pin B routed to IRQ 49
Region 0: Memory at fe9e0000 (64-bit, non-prefetchable) [size=128K]
Region 4: I/O ports at d800 [size=64]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [e4] PCI-X non-bridge device
Command: DPERE- ERO+ RBC=512 OST=1
Status: Dev=07:01.1 64bit+ 133MHz+ SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=16 RSCEM- 266MHz- 533MHz-
Capabilities: [f0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Kernel driver in use: e1000
00: 86 80 10 10 17 01 30 02 01 00 00 02 10 40 80 00
10: 04 00 9e fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d8 00 00 00 00 00 00 00 00 00 00 86 80 11 10
30: 00 00 00 00 dc 00 00 00 00 00 00 00 09 02 ff 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 e4 22 48
e0: 00 20 00 28 07 f0 02 00 09 07 43 04 00 00 00 00
f0: 05 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00
root@satlan:~/tyan_bios# superiotool -deV
superiotool r6637
Probing for ALi Super I/O at 0x3f0...
Failed. Returned data: id=0xffff, rev=0xff
Probing for ALi Super I/O at 0x370...
Failed. Returned data: id=0xffff, rev=0xff
Probing for Fintek Super I/O at 0x2e...
Failed. Returned data: vid=0x44fe, id=0x1752
Probing for Fintek Super I/O at 0x4e...
Failed. Returned data: vid=0xffff, id=0xffff
Probing for Fintek Super I/O at 0x2e...
Failed. Returned data: vid=0x0000, id=0x0000
Probing for Fintek Super I/O at 0x4e...
Failed. Returned data: vid=0xffff, id=0xffff
Probing for ITE Super I/O (init=standard) at 0x25e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8502e) at 0x25e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8761e) at 0x25e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8228e) at 0x25e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x25e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=standard) at 0x2e...
Failed. Returned data: id=0x0000, rev=0x0
Probing for ITE Super I/O (init=it8502e) at 0x2e...
Failed. Returned data: id=0x0000, rev=0x0
Probing for ITE Super I/O (init=it8761e) at 0x2e...
Failed. Returned data: id=0x0000, rev=0x0
Probing for ITE Super I/O (init=it8228e) at 0x2e...
Failed. Returned data: id=0x0000, rev=0x0
Probing for ITE Super I/O (init=0x87,0x87) at 0x2e...
Failed. Returned data: id=0x5217, rev=0xf
Probing for ITE Super I/O (init=standard) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8502e) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8761e) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8228e) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8661f) at 0x370...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8671f) at 0x370...
Failed. Returned data: id=0xffff, rev=0xf
Probing for NSC Super I/O at 0x2e...
Failed. Returned data: port=0x00, port+1=0x00
Probing for NSC Super I/O at 0x4e...
Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x15c...
Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x164e...
Failed. Returned data: port=0xff, port+1=0xff
Probing for Nuvoton Super I/O at 0x164e...
Failed. Returned data: chip_id=0xffff
Probing for Nuvoton Super I/O (sid=0xfc) at 0x164e...
Failed. Returned data: sid=0xff, id=0xffff, rev=0x00
Probing for Nuvoton Super I/O at 0x2e...
Failed. Returned data: chip_id=0x5217
Probing for Nuvoton Super I/O (sid=0xfc) at 0x2e...
Failed. Returned data: sid=0x00, id=0x5217, rev=0x00
Probing for Nuvoton Super I/O at 0x4e...
Failed. Returned data: chip_id=0xffff
Probing for Nuvoton Super I/O (sid=0xfc) at 0x4e...
Failed. Returned data: sid=0xff, id=0xffff, rev=0x00
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e...
Failed. Returned data: id=0x00, rev=0x00
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e...
Failed. Returned data: id=0x00, rev=0x00
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370...
Failed. Returned data: id=0xff, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x2e...
Failed. Returned data: id/oldid=0x00/0x00, rev=0x00
Probing for Winbond Super I/O (init=0x89) at 0x2e...
Failed. Returned data: id/oldid=0x00/0x00, rev=0x00
Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e...
Failed. Returned data: id/oldid=0x00/0x00, rev=0x00
Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e...
Found Winbond W83627HF/F/HG/G (id=0x52, rev=0x17) at 0x2e
Register dump:
idx 02 20 21 22 23 24 25 26 28 29 2a 2b 2c 2e 2f
val ff 52 17 ff fe 44 00 00 00 00 7c 00 ff 00 ff
def 00 52 NA ff 00 MM 00 00 00 00 7c c0 00 00 00
LDN 0x00 (Floppy)
idx 30 60 61 70 74 f0 f1 f2 f4 f5
val 00 03 f0 06 02 0e 00 ff 00 00
def 01 03 f0 06 02 0e 00 ff 00 00
LDN 0x01 (Parallel port)
idx 30 60 61 70 74 f0
val 00 03 78 00 04 3c
def 01 03 78 07 04 3f
LDN 0x02 (COM1)
idx 30 60 61 70 f0
val 00 03 f8 04 00
def 01 03 f8 04 00
LDN 0x03 (COM2)
idx 30 60 61 70 f0 f1
val 00 02 f8 03 00 00
def 01 02 f8 03 00 00
LDN 0x05 (Keyboard)
idx 30 60 61 62 63 70 72 f0
val 01 00 60 00 64 01 0c 82
def 01 00 60 00 64 01 0c 80
LDN 0x06 (Consumer IR)
idx 30 60 61 70
val 01 03 e0 0a
def 00 00 00 00
LDN 0x07 (Game port, MIDI port, GPIO 1)
idx 30 60 61 62 63 70 f0 f1 f2
val 00 02 01 03 30 00 ff ff ff
def 00 02 01 03 30 09 ff 00 00
LDN 0x08 (GPIO 2, watchdog timer)
idx 30 f0 f1 f2 f3 f5 f6 f6 f7
val 00 ff ff ff 00 40 00 00 00
def 00 ff 00 00 00 00 00 00 00
LDN 0x09 (GPIO 3)
idx 30 f0 f1 f2 f3
val 00 ff ff ff 00
def 00 ff 00 00 00
LDN 0x0a (ACPI)
idx 30 70 e0 e1 e2 e3 e4 e5 e6 e7 f0 f1 f3 f4 f6 f7 f9 fe ff
val 00 00 00 00 20 00 00 00 00 00 00 cf 30 00 00 00 00 00 00
def 00 00 00 00 NA NA 00 00 00 00 00 00 00 00 00 00 00 00 00
LDN 0x0b (Hardware monitor)
idx 30 60 61 70 f0
val 01 02 90 00 00
def 00 00 00 00 00
Hardware monitor (0x0295)
Probing for Winbond Super I/O (init=0x88) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for VIA Super I/O at 0x3f0...
PCI device 1106:0686 not found.
Probing for Server Engines Super I/O at 0x2e...
Failed. Returned data: id=0x0000, rev=0x00
2
1
After the built-in Q-Bios would not program the flash ("The current flash
utility is outdated"), and failing to find where Gigabyte hid the DOS-based
flash utilities, I fired up flashrom.
I got the latest r1764 from SVN, and it proceeded to complain
about Macronix's ambiguous chip IDs:
[501]# flashrom -p internal
flashrom v0.9.7-r1764 on Linux 3.12.1-00045-g27b879d64d (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
Found chipset "Intel X79". Enabling flash write... OK.
Found Macronix flash chip "MX25L6405(D)" (8192 kB, SPI) at physical address 0xff800000.
Found Macronix flash chip "MX25L6406E/MX25L6436E" (8192 kB, SPI) at physical address 0xff800000.
Found Macronix flash chip "MX25L6445E" (8192 kB, SPI) at physical address 0xff800000.
Multiple flash chip definitions match the detected chip(s): "MX25L6405(D)", "MX25L6406E/MX25L6436E", "MX25L6445E"
Please specify which chip definition to use with the -c <chipname> option.
After failing to read the chip ID without removing my motherboard,
I found a high-resolution picture at
http://forums.overclockers.co.uk/showthread.php?t=18477560
(search for "The DualBIOS chips.")
This confirmed the Flash as MX25L6406E, so I added the appropriate -c
option, and... success!
It had to reboot a few times before popping into the BIOS, but
it worked.
The only problem is that the BIOS settings were blown away (a fairly
simple reset procedure) and my ethernet MAC address got reset to
88:88:88:88:87:88 (working on fixing that).
Looking in the -V output, I see some mention of
0x54: 0x00000000 FREG0: Flash Descriptor region (0x00000000-0x00000fff) is read-write.
0x58: 0x07ff0000 FREG1: BIOS region (0x00000000-0x007fffff) is read-write.
0x5C: 0x01ff0003 FREG2: Management Engine region (0x00003000-0x001fffff) is read-write.
0x60: 0x00020001 FREG3: Gigabit Ethernet region (0x00001000-0x00002fff) is read-write.
And, indeed, the 4K pages at 0x001000 and 0x002000 include the old MAC
address in the first 8 bytes. So let me try creating a layout file:
000000:000fff descriptor
001000:002fff enet
003000:01ffff management
020000:7fffff bios
And try restoring that oprtion from the backup I took:
flashrom -p internal -c MX25L6406E/MX25L6436E -V -l layout -i enet -w X79UP4.F2a
flashrom v0.9.7-r1764 on Linux 3.12.1-00045-g27b879d64d (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.2.0, GCC 4.8.2, little endian
Command line (11 args): flashrom -p internal -c MX25L6406E/MX25L6436E -V -l layout -i enet -w X79UP4.F2a
romlayout 00000000 - 00000fff named descriptor
romlayout 00001000 - 00002fff named enet
romlayout 00003000 - 0001ffff named management
romlayout 00020000 - 007fffff named bios
Using region: "enet".
Calibrating delay loop... OS timer resolution is 1 usecs, 3546M loops per second, 10 myus = 10 us, 100 myus = 95 us, 1000 myus = 939 us, 10000 myus = 9345 us, 4 myus = 4 us, OK.
Initializing internal programmer
No coreboot table found.
Using Internal DMI decoder.
DMI string chassis-type: "Desktop"
DMI string system-manufacturer: "Gigabyte Technology Co., Ltd."
DMI string system-product-name: "To be filled by O.E.M."
DMI string system-version: "To be filled by O.E.M."
DMI string baseboard-manufacturer: "Gigabyte Technology Co., Ltd."
DMI string baseboard-product-name: "X79-UP4"
DMI string baseboard-version: "To be filled by O.E.M."
Found ITE Super I/O, ID 0x8728 on port 0x2e
Found chipset "Intel X79" with PCI ID 8086:1d41. Enabling flash write... Root Complex Register Block address = 0xfed1c000
GCS = 0xc04: BIOS Interface Lock-Down: disabled, Boot BIOS Straps: 0x3 (SPI)
Top Swap : not enabled
0xfff80000/0xffb80000 FWH IDSEL: 0x0
0xfff00000/0xffb00000 FWH IDSEL: 0x0
0xffe80000/0xffa80000 FWH IDSEL: 0x1
0xffe00000/0xffa00000 FWH IDSEL: 0x1
0xffd80000/0xff980000 FWH IDSEL: 0x2
0xffd00000/0xff900000 FWH IDSEL: 0x2
0xffc80000/0xff880000 FWH IDSEL: 0x3
0xffc00000/0xff800000 FWH IDSEL: 0x3
0xff700000/0xff300000 FWH IDSEL: 0x4
0xff600000/0xff200000 FWH IDSEL: 0x5
0xff500000/0xff100000 FWH IDSEL: 0x6
0xff400000/0xff000000 FWH IDSEL: 0x7
0xfff80000/0xffb80000 FWH decode enabled
0xfff00000/0xffb00000 FWH decode enabled
0xffe80000/0xffa80000 FWH decode enabled
0xffe00000/0xffa00000 FWH decode enabled
0xffd80000/0xff980000 FWH decode enabled
0xffd00000/0xff900000 FWH decode enabled
0xffc80000/0xff880000 FWH decode enabled
0xffc00000/0xff800000 FWH decode enabled
0xff700000/0xff300000 FWH decode disabled
0xff600000/0xff200000 FWH decode disabled
0xff500000/0xff100000 FWH decode disabled
0xff400000/0xff000000 FWH decode disabled
Maximum FWH chip size: 0x100000 bytesSPI Read Configuration: prefetching enabled, caching enabled,
BIOS_CNTL = 0x09: BIOS Lock Enable: disabled, BIOS Write Enable: enabled
SPIBAR = 0xf772c000 + 0x3800
0x04: 0x6008 (HSFS)
HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=0
Programming OPCODES... done
0x06: 0x0000 (HSFC)
HSFC: FGO=0, FCYCLE=0, FDBC=0, SME=0
0x50: 0x0000ffff (FRAP)
BMWAG 0x00, BMRAG 0x00, BRWA 0xff, BRRA 0xff
0x54: 0x00000000 FREG0: Flash Descriptor region (0x00000000-0x00000fff) is read-write.
0x58: 0x07ff0000 FREG1: BIOS region (0x00000000-0x007fffff) is read-write.
0x5C: 0x01ff0003 FREG2: Management Engine region (0x00003000-0x001fffff) is read-write.
0x60: 0x00020001 FREG3: Gigabit Ethernet region (0x00001000-0x00002fff) is read-write.
0x90: 0x84 (SSFS)
SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0
0x91: 0xf87f10 (SSFC)
SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0
0x94: 0x5006 (PREOP)
0x96: 0x463b (OPTYPE)
0x98: 0x05d80302 (OPMENU)
0x9C: 0xc79f0190 (OPMENU+4)
0xA0: 0x00000000 (BBAR)
0xC4: 0x00002005 (LVSCC)
LVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0
0xC8: 0x00002005 (UVSCC)
UVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0
0xD0: 0x00000000 (FPB)
OK.
No IT87* serial flash segment enabled.
The following protocols are supported: FWH, SPI.
Probing for Macronix MX25L6406E/MX25L6436E, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017
Found Macronix flash chip "MX25L6406E/MX25L6436E" (8192 kB, SPI) at physical address 0xff800000.
Chip status register is 0x00.
Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set
Chip status register: Bit 6 is not set
Chip status register: Block Protect 3 (BP3) is not set
Chip status register: Block Protect 2 (BP2) is not set
Chip status register: Block Protect 1 (BP1) is not set
Chip status register: Block Protect 0 (BP0) is not set
Chip status register: Write Enable Latch (WEL) is not set
Chip status register: Write In Progress (WIP/BUSY) is not set
This chip may contain one-time programmable memory. flashrom cannot read
and may never be able to write it, hence it may not be able to completely
clone the contents of this chip (see man page for details).
Flash image seems to be a legacy BIOS. Disabling coreboot-related checks.
Reading old flash chip contents... done.
Erasing and writing flash chip... Trying erase function 0... 0x000000-0x000fff:S, 0x001000-0x001fff:EW, 0x002000-0x002fff:EW, 0x003000-0x003fff:S, 0x004000-0x004fff:S, 0x005000-0x005fff:S, 0x006000-0x006fff:S, 0x007000-0x007fff:S, 0x008000-0x008fff:S, 0x009000-0x009fff:S, 0x00a000-0x00afff:S, 0x00b000-0x00bfff:S, 0x00c000-0x00cfff:S, 0x00d000-0x00dfff:S, 0x00e000-0x00efff:S, 0x00f000-0x00ffff:S, 0x010000-0x010fff:S, 0x011000-0x011fff:S, 0x012000-0x012fff:S, 0x013000-0x013fff:S, 0x014000-0x014fff:S, 0x015000-0x015fff:S, 0x016000-0x016fff:S, 0x017000-0x017fff:S, 0x018000-0x018fff:S, 0x019000-0x019fff:S, 0x01a000-0x01afff:S, 0x01b000-0x01bfff:S, 0x01c000-0x01cfff:S, 0x01d000-0x01dfff:S, 0x01e000-0x01efff:S, 0x01f000-0x01ffff:S, 0x020000-0x020fff:S, 0x021000-0x021fff:S, 0x022000-0x022fff:S, 0x023000-0x023fff:S, 0x024000-0x024fff:S, 0x025000-0x025fff:S, 0x026000-0x026fff:S, 0x027000-0x027fff:S, 0x028000-0x028fff:S, 0x029000-0x029fff:S, 0x02a000-0x02afff:S, 0x02b000-0x02bfff:S, 0x02c000-0x02cfff:S, 0x02d000-0x02dfff:S, 0x02e000-0x02efff:S, 0x02f000-0x02ffff:S, 0x030000-0x030fff:S, 0x031000-0x031fff:S, 0x032000-0x032fff:S, 0x033000-0x033fff:S, 0x034000-0x034fff:S, 0x035000-0x035fff:S, 0x036000-0x036fff:S, 0x037000-0x037fff:S, 0x038000-0x038fff:S, 0x039000-0x039fff:S, 0x03a000-0x03afff:S, 0x03b000-0x03bfff:S, 0x03c000-0x03cfff:S, 0x03d000-0x03dfff:S, 0x03e000-0x03efff:S, 0x03f000-0x03ffff:S, 0x040000-0x040fff:S, 0x041000-0x041fff:S, 0x042000-0x042fff:S, 0x043000-0x043fff:S, 0x044000-0x044fff:S, 0x045000-0x045fff:S, 0x046000-0x046fff:S, 0x047000-0x047fff:S, 0x048000-0x048fff:S, 0x049000-0x049fff:S, 0x04a000-0x04afff:S, 0x04b000-0x04bfff:S, 0x04c000-0x04cfff:S, 0x04d000-0x04dfff:S, 0x04e000-0x04efff:S, 0x04f000-0x04ffff:S, 0x050000-0x050fff:S, 0x051000-0x051fff:S, 0x052000-0x052fff:S, 0x053000-0x053fff:S, 0x054000-0x054fff:S, 0x055000-0x055fff:S, 0x056000-0x056fff:S, 0x057000-0x057fff:S, 0x058000-0x058fff:S, 0x059000-0x059fff:S, 0x05a000-0x05afff:S, 0x05b000-0x05bfff:S, 0x05c000-0x05cfff:S, 0x05d000-0x05dfff:S, 0x05e000-0x05efff:S, 0x05f000-0x05ffff:S, 0x060000-0x060fff:S, 0x061000-0x061fff:S, 0x062000-0x062fff:S, 0x063000-0x063fff:S, 0x064000-0x064fff:S, 0x065000-0x065fff:S, 0x066000-0x066fff:S, 0x067000-0x067fff:S, 0x068000-0x068fff:S, 0x069000-0x069fff:S, 0x06a000-0x06afff:S, 0x06b000-0x06bfff:S, 0x06c000-0x06cfff:S, 0x06d000-0x06dfff:S, 0x06e000-0x06efff:S, 0x06f000-0x06ffff:S, 0x070000-0x070fff:S, 0x071000-0x071fff:S, 0x072000-0x072fff:S, 0x073000-0x073fff:S, 0x074000-0x074fff:S, 0x075000-0x075fff:S, 0x076000-0x076fff:S, 0x077000-0x077fff:S, 0x078000-0x078fff:S, 0x079000-0x079fff:S, 0x07a000-0x07afff:S, 0x07b000-0x07bfff:S, 0x07c000-0x07cfff:S, 0x07d000-0x07dfff:S, 0x07e000-0x07efff:S, 0x07f000-0x07ffff:S, 0x080000-0x080fff:S, 0x081000-0x081fff:S, 0x082000-0x082fff:S, 0x083000-0x083fff:S, 0x084000-0x084fff:S, 0x085000-0x085fff:S, 0x086000-0x086fff:S, 0x087000-0x087fff:S, 0x088000-0x088fff:S, 0x089000-0x089fff:S, 0x08a000-0x08afff:S, 0x08b000-0x08bfff:S, 0x08c000-0x08cfff:S, 0x08d000-0x08dfff:S, 0x08e000-0x08efff:S, 0x08f000-0x08ffff:S, 0x090000-0x090fff:S, 0x091000-0x091fff:S, 0x092000-0x092fff:S, 0x093000-0x093fff:S, 0x094000-0x094fff:S, 0x095000-0x095fff:S, 0x096000-0x096fff:S, 0x097000-0x097fff:S, 0x098000-0x098fff:S, 0x099000-0x099fff:S, 0x09a000-0x09afff:S, 0x09b000-0x09bfff:S, 0x09c000-0x09cfff:S, 0x09d000-0x09dfff:S, 0x09e000-0x09efff:S, 0x09f000-0x09ffff:S, 0x0a0000-0x0a0fff:S, 0x0a1000-0x0a1fff:S, 0x0a2000-0x0a2fff:S, 0x0a3000-0x0a3fff:S, 0x0a4000-0x0a4fff:S, 0x0a5000-0x0a5fff:S, 0x0a6000-0x0a6fff:S, 0x0a7000-0x0a7fff:S, 0x0a8000-0x0a8fff:S, 0x0a9000-0x0a9fff:S, 0x0aa000-0x0aafff:S, 0x0ab000-0x0abfff:S, 0x0ac000-0x0acfff:S, 0x0ad000-0x0adfff:S, 0x0ae000-0x0aefff:S, 0x0af000-0x0affff:S, 0x0b0000-0x0b0fff:S, 0x0b1000-0x0b1fff:S, 0x0b2000-0x0b2fff:S, 0x0b3000-0x0b3fff:S, 0x0b4000-0x0b4fff:S, 0x0b5000-0x0b5fff:S, 0x0b6000-0x0b6fff:S, 0x0b7000-0x0b7fff:S, 0x0b8000-0x0b8fff:S, 0x0b9000-0x0b9fff:S, 0x0ba000-0x0bafff:S, 0x0bb000-0x0bbfff:S, 0x0bc000-0x0bcfff:S, 0x0bd000-0x0bdfff:S, 0x0be000-0x0befff:S, 0x0bf000-0x0bffff:S, 0x0c0000-0x0c0fff:S, 0x0c1000-0x0c1fff:S, 0x0c2000-0x0c2fff:S, 0x0c3000-0x0c3fff:S, 0x0c4000-0x0c4fff:S, 0x0c5000-0x0c5fff:S, 0x0c6000-0x0c6fff:S, 0x0c7000-0x0c7fff:S, 0x0c8000-0x0c8fff:S, 0x0c9000-0x0c9fff:S, 0x0ca000-0x0cafff:S, 0x0cb000-0x0cbfff:S, 0x0cc000-0x0ccfff:S, 0x0cd000-0x0cdfff:S, 0x0ce000-0x0cefff:S, 0x0cf000-0x0cffff:S, 0x0d0000-0x0d0fff:S, 0x0d1000-0x0d1fff:S, 0x0d2000-0x0d2fff:S, 0x0d3000-0x0d3fff:S, 0x0d4000-0x0d4fff:S, 0x0d5000-0x0d5fff:S, 0x0d6000-0x0d6fff:S, 0x0d7000-0x0d7fff:S, 0x0d8000-0x0d8fff:S, 0x0d9000-0x0d9fff:S, 0x0da000-0x0dafff:S, 0x0db000-0x0dbfff:S, 0x0dc000-0x0dcfff:S, 0x0dd000-0x0ddfff:S, 0x0de000-0x0defff:S, 0x0df000-0x0dffff:S, 0x0e0000-0x0e0fff:S, 0x0e1000-0x0e1fff:S, 0x0e2000-0x0e2fff:S, 0x0e3000-0x0e3fff:S, 0x0e4000-0x0e4fff:S, 0x0e5000-0x0e5fff:S, 0x0e6000-0x0e6fff:S, 0x0e7000-0x0e7fff:S, 0x0e8000-0x0e8fff:S, 0x0e9000-0x0e9fff:S, 0x0ea000-0x0eafff:S, 0x0eb000-0x0ebfff:S, 0x0ec000-0x0ecfff:S, 0x0ed000-0x0edfff:S, 0x0ee000-0x0eefff:S, 0x0ef000-0x0effff:S, 0x0f0000-0x0f0fff:S, 0x0f1000-0x0f1fff:S, 0x0f2000-0x0f2fff:S, 0x0f3000-0x0f3fff:S, 0x0f4000-0x0f4fff:S, 0x0f5000-0x0f5fff:S, 0x0f6000-0x0f6fff:S, 0x0f7000-0x0f7fff:S, 0x0f8000-0x0f8fff:S, 0x0f9000-0x0f9fff:S, 0x0fa000-0x0fafff:S, 0x0fb000-0x0fbfff:S, 0x0fc000-0x0fcfff:S, 0x0fd000-0x0fdfff:S, 0x0fe000-0x0fefff:S, 0x0ff000-0x0fffff:S, 0x100000-0x100fff:S, 0x101000-0x101fff:S, 0x102000-0x102fff:S, 0x103000-0x103fff:S, 0x104000-0x104fff:S, 0x105000-0x105fff:S, 0x106000-0x106fff:S, 0x107000-0x107fff:S, 0x108000-0x108fff:S, 0x109000-0x109fff:S, 0x10a000-0x10afff:S, 0x10b000-0x10bfff:S, 0x10c000-0x10cfff:S, 0x10d000-0x10dfff:S, 0x10e000-0x10efff:S, 0x10f000-0x10ffff:S, 0x110000-0x110fff:S, 0x111000-0x111fff:S, 0x112000-0x112fff:S, 0x113000-0x113fff:S, 0x114000-0x114fff:S, 0x115000-0x115fff:S, 0x116000-0x116fff:S, 0x117000-0x117fff:S, 0x118000-0x118fff:S, 0x119000-0x119fff:S, 0x11a000-0x11afff:S, 0x11b000-0x11bfff:S, 0x11c000-0x11cfff:S, 0x11d000-0x11dfff:S, 0x11e000-0x11efff:S, 0x11f000-0x11ffff:S, 0x120000-0x120fff:S, 0x121000-0x121fff:S, 0x122000-0x122fff:S, 0x123000-0x123fff:S, 0x124000-0x124fff:S, 0x125000-0x125fff:S, 0x126000-0x126fff:S, 0x127000-0x127fff:S, 0x128000-0x128fff:S, 0x129000-0x129fff:S, 0x12a000-0x12afff:S, 0x12b000-0x12bfff:S, 0x12c000-0x12cfff:S, 0x12d000-0x12dfff:S, 0x12e000-0x12efff:S, 0x12f000-0x12ffff:S, 0x130000-0x130fff:S, 0x131000-0x131fff:S, 0x132000-0x132fff:S, 0x133000-0x133fff:S, 0x134000-0x134fff:S, 0x135000-0x135fff:S, 0x136000-0x136fff:S, 0x137000-0x137fff:S, 0x138000-0x138fff:S, 0x139000-0x139fff:S, 0x13a000-0x13afff:S, 0x13b000-0x13bfff:S, 0x13c000-0x13cfff:S, 0x13d000-0x13dfff:S, 0x13e000-0x13efff:S, 0x13f000-0x13ffff:S, 0x140000-0x140fff:S, 0x141000-0x141fff:S, 0x142000-0x142fff:S, 0x143000-0x143fff:S, 0x144000-0x144fff:S, 0x145000-0x145fff:S, 0x146000-0x146fff:S, 0x147000-0x147fff:S, 0x148000-0x148fff:S, 0x149000-0x149fff:S, 0x14a000-0x14afff:S, 0x14b000-0x14bfff:S, 0x14c000-0x14cfff:S, 0x14d000-0x14dfff:S, 0x14e000-0x14efff:S, 0x14f000-0x14ffff:S, 0x150000-0x150fff:S, 0x151000-0x151fff:S, 0x152000-0x152fff:S, 0x153000-0x153fff:S, 0x154000-0x154fff:S, 0x155000-0x155fff:S, 0x156000-0x156fff:S, 0x157000-0x157fff:S, 0x158000-0x158fff:S, 0x159000-0x159fff:S, 0x15a000-0x15afff:S, 0x15b000-0x15bfff:S, 0x15c000-0x15cfff:S, 0x15d000-0x15dfff:S, 0x15e000-0x15efff:S, 0x15f000-0x15ffff:S, 0x160000-0x160fff:S, 0x161000-0x161fff:S, 0x162000-0x162fff:S, 0x163000-0x163fff:S, 0x164000-0x164fff:S, 0x165000-0x165fff:S, 0x166000-0x166fff:S, 0x167000-0x167fff:S, 0x168000-0x168fff:S, 0x169000-0x169fff:S, 0x16a000-0x16afff:S, 0x16b000-0x16bfff:S, 0x16c000-0x16cfff:S, 0x16d000-0x16dfff:S, 0x16e000-0x16efff:S, 0x16f000-0x16ffff:S, 0x170000-0x170fff:S, 0x171000-0x171fff:S, 0x172000-0x172fff:S, 0x173000-0x173fff:S, 0x174000-0x174fff:S, 0x175000-0x175fff:S, 0x176000-0x176fff:S, 0x177000-0x177fff:S, 0x178000-0x178fff:S, 0x179000-0x179fff:S, 0x17a000-0x17afff:S, 0x17b000-0x17bfff:S, 0x17c000-0x17cfff:S, 0x17d000-0x17dfff:S, 0x17e000-0x17efff:S, 0x17f000-0x17ffff:S, 0x180000-0x180fff:S, 0x181000-0x181fff:S, 0x182000-0x182fff:S, 0x183000-0x183fff:S, 0x184000-0x184fff:S, 0x185000-0x185fff:S, 0x186000-0x186fff:S, 0x187000-0x187fff:S, 0x188000-0x188fff:S, 0x189000-0x189fff:S, 0x18a000-0x18afff:S, 0x18b000-0x18bfff:S, 0x18c000-0x18cfff:S, 0x18d000-0x18dfff:S, 0x18e000-0x18efff:S, 0x18f000-0x18ffff:S, 0x190000-0x190fff:S, 0x191000-0x191fff:S, 0x192000-0x192fff:S, 0x193000-0x193fff:S, 0x194000-0x194fff:S, 0x195000-0x195fff:S, 0x196000-0x196fff:S, 0x197000-0x197fff:S, 0x198000-0x198fff:S, 0x199000-0x199fff:S, 0x19a000-0x19afff:S, 0x19b000-0x19bfff:S, 0x19c000-0x19cfff:S, 0x19d000-0x19dfff:S, 0x19e000-0x19efff:S, 0x19f000-0x19ffff:S, 0x1a0000-0x1a0fff:S, 0x1a1000-0x1a1fff:S, 0x1a2000-0x1a2fff:S, 0x1a3000-0x1a3fff:S, 0x1a4000-0x1a4fff:S, 0x1a5000-0x1a5fff:S, 0x1a6000-0x1a6fff:S, 0x1a7000-0x1a7fff:S, 0x1a8000-0x1a8fff:S, 0x1a9000-0x1a9fff:S, 0x1aa000-0x1aafff:S, 0x1ab000-0x1abfff:S, 0x1ac000-0x1acfff:S, 0x1ad000-0x1adfff:S, 0x1ae000-0x1aefff:S, 0x1af000-0x1affff:S, 0x1b0000-0x1b0fff:S, 0x1b1000-0x1b1fff:S, 0x1b2000-0x1b2fff:S, 0x1b3000-0x1b3fff:S, 0x1b4000-0x1b4fff:S, 0x1b5000-0x1b5fff:S, 0x1b6000-0x1b6fff:S, 0x1b7000-0x1b7fff:S, 0x1b8000-0x1b8fff:S, 0x1b9000-0x1b9fff:S, 0x1ba000-0x1bafff:S, 0x1bb000-0x1bbfff:S, 0x1bc000-0x1bcfff:S, 0x1bd000-0x1bdfff:S, 0x1be000-0x1befff:S, 0x1bf000-0x1bffff:S, 0x1c0000-0x1c0fff:S, 0x1c1000-0x1c1fff:S, 0x1c2000-0x1c2fff:S, 0x1c3000-0x1c3fff:S, 0x1c4000-0x1c4fff:S, 0x1c5000-0x1c5fff:S, 0x1c6000-0x1c6fff:S, 0x1c7000-0x1c7fff:S, 0x1c8000-0x1c8fff:S, 0x1c9000-0x1c9fff:S, 0x1ca000-0x1cafff:S, 0x1cb000-0x1cbfff:S, 0x1cc000-0x1ccfff:S, 0x1cd000-0x1cdfff:S, 0x1ce000-0x1cefff:S, 0x1cf000-0x1cffff:S, 0x1d0000-0x1d0fff:S, 0x1d1000-0x1d1fff:S, 0x1d2000-0x1d2fff:S, 0x1d3000-0x1d3fff:S, 0x1d4000-0x1d4fff:S, 0x1d5000-0x1d5fff:S, 0x1d6000-0x1d6fff:S, 0x1d7000-0x1d7fff:S, 0x1d8000-0x1d8fff:S, 0x1d9000-0x1d9fff:S, 0x1da000-0x1dafff:S, 0x1db000-0x1dbfff:S, 0x1dc000-0x1dcfff:S, 0x1dd000-0x1ddfff:S, 0x1de000-0x1defff:S, 0x1df000-0x1dffff:S, 0x1e0000-0x1e0fff:S, 0x1e1000-0x1e1fff:S, 0x1e2000-0x1e2fff:S, 0x1e3000-0x1e3fff:S, 0x1e4000-0x1e4fff:S, 0x1e5000-0x1e5fff:S, 0x1e6000-0x1e6fff:S, 0x1e7000-0x1e7fff:S, 0x1e8000-0x1e8fff:S, 0x1e9000-0x1e9fff:S, 0x1ea000-0x1eafff:S, 0x1eb000-0x1ebfff:S, 0x1ec000-0x1ecfff:S, 0x1ed000-0x1edfff:S, 0x1ee000-0x1eefff:S, 0x1ef000-0x1effff:S, 0x1f0000-0x1f0fff:S, 0x1f1000-0x1f1fff:S, 0x1f2000-0x1f2fff:S, 0x1f3000-0x1f3fff:S, 0x1f4000-0x1f4fff:S, 0x1f5000-0x1f5fff:S, 0x1f6000-0x1f6fff:S, 0x1f7000-0x1f7fff:S, 0x1f8000-0x1f8fff:S, 0x1f9000-0x1f9fff:S, 0x1fa000-0x1fafff:S, 0x1fb000-0x1fbfff:S, 0x1fc000-0x1fcfff:S, 0x1fd000-0x1fdfff:S, 0x1fe000-0x1fefff:S, 0x1ff000-0x1fffff:S, 0x200000-0x200fff:S, 0x201000-0x201fff:S, 0x202000-0x202fff:S, 0x203000-0x203fff:S, 0x204000-0x204fff:S, 0x205000-0x205fff:S, 0x206000-0x206fff:S, 0x207000-0x207fff:S, 0x208000-0x208fff:S, 0x209000-0x209fff:S, 0x20a000-0x20afff:S, 0x20b000-0x20bfff:S, 0x20c000-0x20cfff:S, 0x20d000-0x20dfff:S, 0x20e000-0x20efff:S, 0x20f000-0x20ffff:S, 0x210000-0x210fff:S, 0x211000-0x211fff:S, 0x212000-0x212fff:S, 0x213000-0x213fff:S, 0x214000-0x214fff:S, 0x215000-0x215fff:S, 0x216000-0x216fff:S, 0x217000-0x217fff:S, 0x218000-0x218fff:S, 0x219000-0x219fff:S, 0x21a000-0x21afff:S, 0x21b000-0x21bfff:S, 0x21c000-0x21cfff:S, 0x21d000-0x21dfff:S, 0x21e000-0x21efff:S, 0x21f000-0x21ffff:S, 0x220000-0x220fff:S, 0x221000-0x221fff:S, 0x222000-0x222fff:S, 0x223000-0x223fff:S, 0x224000-0x224fff:S, 0x225000-0x225fff:S, 0x226000-0x226fff:S, 0x227000-0x227fff:S, 0x228000-0x228fff:S, 0x229000-0x229fff:S, 0x22a000-0x22afff:S, 0x22b000-0x22bfff:S, 0x22c000-0x22cfff:S, 0x22d000-0x22dfff:S, 0x22e000-0x22efff:S, 0x22f000-0x22ffff:S, 0x230000-0x230fff:S, 0x231000-0x231fff:S, 0x232000-0x232fff:S, 0x233000-0x233fff:S, 0x234000-0x234fff:S, 0x235000-0x235fff:S, 0x236000-0x236fff:S, 0x237000-0x237fff:S, 0x238000-0x238fff:S, 0x239000-0x239fff:S, 0x23a000-0x23afff:S, 0x23b000-0x23bfff:S, 0x23c000-0x23cfff:S, 0x23d000-0x23dfff:S, 0x23e000-0x23efff:S, 0x23f000-0x23ffff:S, 0x240000-0x240fff:S, 0x241000-0x241fff:S, 0x242000-0x242fff:S, 0x243000-0x243fff:S, 0x244000-0x244fff:S, 0x245000-0x245fff:S, 0x246000-0x246fff:S, 0x247000-0x247fff:S, 0x248000-0x248fff:S, 0x249000-0x249fff:S, 0x24a000-0x24afff:S, 0x24b000-0x24bfff:S, 0x24c000-0x24cfff:S, 0x24d000-0x24dfff:S, 0x24e000-0x24efff:S, 0x24f000-0x24ffff:S, 0x250000-0x250fff:S, 0x251000-0x251fff:S, 0x252000-0x252fff:S, 0x253000-0x253fff:S, 0x254000-0x254fff:S, 0x255000-0x255fff:S, 0x256000-0x256fff:S, 0x257000-0x257fff:S, 0x258000-0x258fff:S, 0x259000-0x259fff:S, 0x25a000-0x25afff:S, 0x25b000-0x25bfff:S, 0x25c000-0x25cfff:S, 0x25d000-0x25dfff:S, 0x25e000-0x25efff:S, 0x25f000-0x25ffff:S, 0x260000-0x260fff:S, 0x261000-0x261fff:S, 0x262000-0x262fff:S, 0x263000-0x263fff:S, 0x264000-0x264fff:S, 0x265000-0x265fff:S, 0x266000-0x266fff:S, 0x267000-0x267fff:S, 0x268000-0x268fff:S, 0x269000-0x269fff:S, 0x26a000-0x26afff:S, 0x26b000-0x26bfff:S, 0x26c000-0x26cfff:S, 0x26d000-0x26dfff:S, 0x26e000-0x26efff:S, 0x26f000-0x26ffff:S, 0x270000-0x270fff:S, 0x271000-0x271fff:S, 0x272000-0x272fff:S, 0x273000-0x273fff:S, 0x274000-0x274fff:S, 0x275000-0x275fff:S, 0x276000-0x276fff:S, 0x277000-0x277fff:S, 0x278000-0x278fff:S, 0x279000-0x279fff:S, 0x27a000-0x27afff:S, 0x27b000-0x27bfff:S, 0x27c000-0x27cfff:S, 0x27d000-0x27dfff:S, 0x27e000-0x27efff:S, 0x27f000-0x27ffff:S, 0x280000-0x280fff:S, 0x281000-0x281fff:S, 0x282000-0x282fff:S, 0x283000-0x283fff:S, 0x284000-0x284fff:S, 0x285000-0x285fff:S, 0x286000-0x286fff:S, 0x287000-0x287fff:S, 0x288000-0x288fff:S, 0x289000-0x289fff:S, 0x28a000-0x28afff:S, 0x28b000-0x28bfff:S, 0x28c000-0x28cfff:S, 0x28d000-0x28dfff:S, 0x28e000-0x28efff:S, 0x28f000-0x28ffff:S, 0x290000-0x290fff:S, 0x291000-0x291fff:S, 0x292000-0x292fff:S, 0x293000-0x293fff:S, 0x294000-0x294fff:S, 0x295000-0x295fff:S, 0x296000-0x296fff:S, 0x297000-0x297fff:S, 0x298000-0x298fff:S, 0x299000-0x299fff:S, 0x29a000-0x29afff:S, 0x29b000-0x29bfff:S, 0x29c000-0x29cfff:S, 0x29d000-0x29dfff:S, 0x29e000-0x29efff:S, 0x29f000-0x29ffff:S, 0x2a0000-0x2a0fff:S, 0x2a1000-0x2a1fff:S, 0x2a2000-0x2a2fff:S, 0x2a3000-0x2a3fff:S, 0x2a4000-0x2a4fff:S, 0x2a5000-0x2a5fff:S, 0x2a6000-0x2a6fff:S, 0x2a7000-0x2a7fff:S, 0x2a8000-0x2a8fff:S, 0x2a9000-0x2a9fff:S, 0x2aa000-0x2aafff:S, 0x2ab000-0x2abfff:S, 0x2ac000-0x2acfff:S, 0x2ad000-0x2adfff:S, 0x2ae000-0x2aefff:S, 0x2af000-0x2affff:S, 0x2b0000-0x2b0fff:S, 0x2b1000-0x2b1fff:S, 0x2b2000-0x2b2fff:S, 0x2b3000-0x2b3fff:S, 0x2b4000-0x2b4fff:S, 0x2b5000-0x2b5fff:S, 0x2b6000-0x2b6fff:S, 0x2b7000-0x2b7fff:S, 0x2b8000-0x2b8fff:S, 0x2b9000-0x2b9fff:S, 0x2ba000-0x2bafff:S, 0x2bb000-0x2bbfff:S, 0x2bc000-0x2bcfff:S, 0x2bd000-0x2bdfff:S, 0x2be000-0x2befff:S, 0x2bf000-0x2bffff:S, 0x2c0000-0x2c0fff:S, 0x2c1000-0x2c1fff:S, 0x2c2000-0x2c2fff:S, 0x2c3000-0x2c3fff:S, 0x2c4000-0x2c4fff:S, 0x2c5000-0x2c5fff:S, 0x2c6000-0x2c6fff:S, 0x2c7000-0x2c7fff:S, 0x2c8000-0x2c8fff:S, 0x2c9000-0x2c9fff:S, 0x2ca000-0x2cafff:S, 0x2cb000-0x2cbfff:S, 0x2cc000-0x2ccfff:S, 0x2cd000-0x2cdfff:S, 0x2ce000-0x2cefff:S, 0x2cf000-0x2cffff:S, 0x2d0000-0x2d0fff:S, 0x2d1000-0x2d1fff:S, 0x2d2000-0x2d2fff:S, 0x2d3000-0x2d3fff:S, 0x2d4000-0x2d4fff:S, 0x2d5000-0x2d5fff:S, 0x2d6000-0x2d6fff:S, 0x2d7000-0x2d7fff:S, 0x2d8000-0x2d8fff:S, 0x2d9000-0x2d9fff:S, 0x2da000-0x2dafff:S, 0x2db000-0x2dbfff:S, 0x2dc000-0x2dcfff:S, 0x2dd000-0x2ddfff:S, 0x2de000-0x2defff:S, 0x2df000-0x2dffff:S, 0x2e0000-0x2e0fff:S, 0x2e1000-0x2e1fff:S, 0x2e2000-0x2e2fff:S, 0x2e3000-0x2e3fff:S, 0x2e4000-0x2e4fff:S, 0x2e5000-0x2e5fff:S, 0x2e6000-0x2e6fff:S, 0x2e7000-0x2e7fff:S, 0x2e8000-0x2e8fff:S, 0x2e9000-0x2e9fff:S, 0x2ea000-0x2eafff:S, 0x2eb000-0x2ebfff:S, 0x2ec000-0x2ecfff:S, 0x2ed000-0x2edfff:S, 0x2ee000-0x2eefff:S, 0x2ef000-0x2effff:S, 0x2f0000-0x2f0fff:S, 0x2f1000-0x2f1fff:S, 0x2f2000-0x2f2fff:S, 0x2f3000-0x2f3fff:S, 0x2f4000-0x2f4fff:S, 0x2f5000-0x2f5fff:S, 0x2f6000-0x2f6fff:S, 0x2f7000-0x2f7fff:S, 0x2f8000-0x2f8fff:S, 0x2f9000-0x2f9fff:S, 0x2fa000-0x2fafff:S, 0x2fb000-0x2fbfff:S, 0x2fc000-0x2fcfff:S, 0x2fd000-0x2fdfff:S, 0x2fe000-0x2fefff:S, 0x2ff000-0x2fffff:S, 0x300000-0x300fff:S, 0x301000-0x301fff:S, 0x302000-0x302fff:S, 0x303000-0x303fff:S, 0x304000-0x304fff:S, 0x305000-0x305fff:S, 0x306000-0x306fff:S, 0x307000-0x307fff:S, 0x308000-0x308fff:S, 0x309000-0x309fff:S, 0x30a000-0x30afff:S, 0x30b000-0x30bfff:S, 0x30c000-0x30cfff:S, 0x30d000-0x30dfff:S, 0x30e000-0x30efff:S, 0x30f000-0x30ffff:S, 0x310000-0x310fff:S, 0x311000-0x311fff:S, 0x312000-0x312fff:S, 0x313000-0x313fff:S, 0x314000-0x314fff:S, 0x315000-0x315fff:S, 0x316000-0x316fff:S, 0x317000-0x317fff:S, 0x318000-0x318fff:S, 0x319000-0x319fff:S, 0x31a000-0x31afff:S, 0x31b000-0x31bfff:S, 0x31c000-0x31cfff:S, 0x31d000-0x31dfff:S, 0x31e000-0x31efff:S, 0x31f000-0x31ffff:S, 0x320000-0x320fff:S, 0x321000-0x321fff:S, 0x322000-0x322fff:S, 0x323000-0x323fff:S, 0x324000-0x324fff:S, 0x325000-0x325fff:S, 0x326000-0x326fff:S, 0x327000-0x327fff:S, 0x328000-0x328fff:S, 0x329000-0x329fff:S, 0x32a000-0x32afff:S, 0x32b000-0x32bfff:S, 0x32c000-0x32cfff:S, 0x32d000-0x32dfff:S, 0x32e000-0x32efff:S, 0x32f000-0x32ffff:S, 0x330000-0x330fff:S, 0x331000-0x331fff:S, 0x332000-0x332fff:S, 0x333000-0x333fff:S, 0x334000-0x334fff:S, 0x335000-0x335fff:S, 0x336000-0x336fff:S, 0x337000-0x337fff:S, 0x338000-0x338fff:S, 0x339000-0x339fff:S, 0x33a000-0x33afff:S, 0x33b000-0x33bfff:S, 0x33c000-0x33cfff:S, 0x33d000-0x33dfff:S, 0x33e000-0x33efff:S, 0x33f000-0x33ffff:S, 0x340000-0x340fff:S, 0x341000-0x341fff:S, 0x342000-0x342fff:S, 0x343000-0x343fff:S, 0x344000-0x344fff:S, 0x345000-0x345fff:S, 0x346000-0x346fff:S, 0x347000-0x347fff:S, 0x348000-0x348fff:S, 0x349000-0x349fff:S, 0x34a000-0x34afff:S, 0x34b000-0x34bfff:S, 0x34c000-0x34cfff:S, 0x34d000-0x34dfff:S, 0x34e000-0x34efff:S, 0x34f000-0x34ffff:S, 0x350000-0x350fff:S, 0x351000-0x351fff:S, 0x352000-0x352fff:S, 0x353000-0x353fff:S, 0x354000-0x354fff:S, 0x355000-0x355fff:S, 0x356000-0x356fff:S, 0x357000-0x357fff:S, 0x358000-0x358fff:S, 0x359000-0x359fff:S, 0x35a000-0x35afff:S, 0x35b000-0x35bfff:S, 0x35c000-0x35cfff:S, 0x35d000-0x35dfff:S, 0x35e000-0x35efff:S, 0x35f000-0x35ffff:S, 0x360000-0x360fff:S, 0x361000-0x361fff:S, 0x362000-0x362fff:S, 0x363000-0x363fff:S, 0x364000-0x364fff:S, 0x365000-0x365fff:S, 0x366000-0x366fff:S, 0x367000-0x367fff:S, 0x368000-0x368fff:S, 0x369000-0x369fff:S, 0x36a000-0x36afff:S, 0x36b000-0x36bfff:S, 0x36c000-0x36cfff:S, 0x36d000-0x36dfff:S, 0x36e000-0x36efff:S, 0x36f000-0x36ffff:S, 0x370000-0x370fff:S, 0x371000-0x371fff:S, 0x372000-0x372fff:S, 0x373000-0x373fff:S, 0x374000-0x374fff:S, 0x375000-0x375fff:S, 0x376000-0x376fff:S, 0x377000-0x377fff:S, 0x378000-0x378fff:S, 0x379000-0x379fff:S, 0x37a000-0x37afff:S, 0x37b000-0x37bfff:S, 0x37c000-0x37cfff:S, 0x37d000-0x37dfff:S, 0x37e000-0x37efff:S, 0x37f000-0x37ffff:S, 0x380000-0x380fff:S, 0x381000-0x381fff:S, 0x382000-0x382fff:S, 0x383000-0x383fff:S, 0x384000-0x384fff:S, 0x385000-0x385fff:S, 0x386000-0x386fff:S, 0x387000-0x387fff:S, 0x388000-0x388fff:S, 0x389000-0x389fff:S, 0x38a000-0x38afff:S, 0x38b000-0x38bfff:S, 0x38c000-0x38cfff:S, 0x38d000-0x38dfff:S, 0x38e000-0x38efff:S, 0x38f000-0x38ffff:S, 0x390000-0x390fff:S, 0x391000-0x391fff:S, 0x392000-0x392fff:S, 0x393000-0x393fff:S, 0x394000-0x394fff:S, 0x395000-0x395fff:S, 0x396000-0x396fff:S, 0x397000-0x397fff:S, 0x398000-0x398fff:S, 0x399000-0x399fff:S, 0x39a000-0x39afff:S, 0x39b000-0x39bfff:S, 0x39c000-0x39cfff:S, 0x39d000-0x39dfff:S, 0x39e000-0x39efff:S, 0x39f000-0x39ffff:S, 0x3a0000-0x3a0fff:S, 0x3a1000-0x3a1fff:S, 0x3a2000-0x3a2fff:S, 0x3a3000-0x3a3fff:S, 0x3a4000-0x3a4fff:S, 0x3a5000-0x3a5fff:S, 0x3a6000-0x3a6fff:S, 0x3a7000-0x3a7fff:S, 0x3a8000-0x3a8fff:S, 0x3a9000-0x3a9fff:S, 0x3aa000-0x3aafff:S, 0x3ab000-0x3abfff:S, 0x3ac000-0x3acfff:S, 0x3ad000-0x3adfff:S, 0x3ae000-0x3aefff:S, 0x3af000-0x3affff:S, 0x3b0000-0x3b0fff:S, 0x3b1000-0x3b1fff:S, 0x3b2000-0x3b2fff:S, 0x3b3000-0x3b3fff:S, 0x3b4000-0x3b4fff:S, 0x3b5000-0x3b5fff:S, 0x3b6000-0x3b6fff:S, 0x3b7000-0x3b7fff:S, 0x3b8000-0x3b8fff:S, 0x3b9000-0x3b9fff:S, 0x3ba000-0x3bafff:S, 0x3bb000-0x3bbfff:S, 0x3bc000-0x3bcfff:S, 0x3bd000-0x3bdfff:S, 0x3be000-0x3befff:S, 0x3bf000-0x3bffff:S, 0x3c0000-0x3c0fff:S, 0x3c1000-0x3c1fff:S, 0x3c2000-0x3c2fff:S, 0x3c3000-0x3c3fff:S, 0x3c4000-0x3c4fff:S, 0x3c5000-0x3c5fff:S, 0x3c6000-0x3c6fff:S, 0x3c7000-0x3c7fff:S, 0x3c8000-0x3c8fff:S, 0x3c9000-0x3c9fff:S, 0x3ca000-0x3cafff:S, 0x3cb000-0x3cbfff:S, 0x3cc000-0x3ccfff:S, 0x3cd000-0x3cdfff:S, 0x3ce000-0x3cefff:S, 0x3cf000-0x3cffff:S, 0x3d0000-0x3d0fff:S, 0x3d1000-0x3d1fff:S, 0x3d2000-0x3d2fff:S, 0x3d3000-0x3d3fff:S, 0x3d4000-0x3d4fff:S, 0x3d5000-0x3d5fff:S, 0x3d6000-0x3d6fff:S, 0x3d7000-0x3d7fff:S, 0x3d8000-0x3d8fff:S, 0x3d9000-0x3d9fff:S, 0x3da000-0x3dafff:S, 0x3db000-0x3dbfff:S, 0x3dc000-0x3dcfff:S, 0x3dd000-0x3ddfff:S, 0x3de000-0x3defff:S, 0x3df000-0x3dffff:S, 0x3e0000-0x3e0fff:S, 0x3e1000-0x3e1fff:S, 0x3e2000-0x3e2fff:S, 0x3e3000-0x3e3fff:S, 0x3e4000-0x3e4fff:S, 0x3e5000-0x3e5fff:S, 0x3e6000-0x3e6fff:S, 0x3e7000-0x3e7fff:S, 0x3e8000-0x3e8fff:S, 0x3e9000-0x3e9fff:S, 0x3ea000-0x3eafff:S, 0x3eb000-0x3ebfff:S, 0x3ec000-0x3ecfff:S, 0x3ed000-0x3edfff:S, 0x3ee000-0x3eefff:S, 0x3ef000-0x3effff:S, 0x3f0000-0x3f0fff:S, 0x3f1000-0x3f1fff:S, 0x3f2000-0x3f2fff:S, 0x3f3000-0x3f3fff:S, 0x3f4000-0x3f4fff:S, 0x3f5000-0x3f5fff:S, 0x3f6000-0x3f6fff:S, 0x3f7000-0x3f7fff:S, 0x3f8000-0x3f8fff:S, 0x3f9000-0x3f9fff:S, 0x3fa000-0x3fafff:S, 0x3fb000-0x3fbfff:S, 0x3fc000-0x3fcfff:S, 0x3fd000-0x3fdfff:S, 0x3fe000-0x3fefff:S, 0x3ff000-0x3fffff:S, 0x400000-0x400fff:S, 0x401000-0x401fff:S, 0x402000-0x402fff:S, 0x403000-0x403fff:S, 0x404000-0x404fff:S, 0x405000-0x405fff:S, 0x406000-0x406fff:S, 0x407000-0x407fff:S, 0x408000-0x408fff:S, 0x409000-0x409fff:S, 0x40a000-0x40afff:S, 0x40b000-0x40bfff:S, 0x40c000-0x40cfff:S, 0x40d000-0x40dfff:S, 0x40e000-0x40efff:S, 0x40f000-0x40ffff:S, 0x410000-0x410fff:S, 0x411000-0x411fff:S, 0x412000-0x412fff:S, 0x413000-0x413fff:S, 0x414000-0x414fff:S, 0x415000-0x415fff:S, 0x416000-0x416fff:S, 0x417000-0x417fff:S, 0x418000-0x418fff:S, 0x419000-0x419fff:S, 0x41a000-0x41afff:S, 0x41b000-0x41bfff:S, 0x41c000-0x41cfff:S, 0x41d000-0x41dfff:S, 0x41e000-0x41efff:S, 0x41f000-0x41ffff:S, 0x420000-0x420fff:S, 0x421000-0x421fff:S, 0x422000-0x422fff:S, 0x423000-0x423fff:S, 0x424000-0x424fff:S, 0x425000-0x425fff:S, 0x426000-0x426fff:S, 0x427000-0x427fff:S, 0x428000-0x428fff:S, 0x429000-0x429fff:S, 0x42a000-0x42afff:S, 0x42b000-0x42bfff:S, 0x42c000-0x42cfff:S, 0x42d000-0x42dfff:S, 0x42e000-0x42efff:S, 0x42f000-0x42ffff:S, 0x430000-0x430fff:S, 0x431000-0x431fff:S, 0x432000-0x432fff:S, 0x433000-0x433fff:S, 0x434000-0x434fff:S, 0x435000-0x435fff:S, 0x436000-0x436fff:S, 0x437000-0x437fff:S, 0x438000-0x438fff:S, 0x439000-0x439fff:S, 0x43a000-0x43afff:S, 0x43b000-0x43bfff:S, 0x43c000-0x43cfff:S, 0x43d000-0x43dfff:S, 0x43e000-0x43efff:S, 0x43f000-0x43ffff:S, 0x440000-0x440fff:S, 0x441000-0x441fff:S, 0x442000-0x442fff:S, 0x443000-0x443fff:S, 0x444000-0x444fff:S, 0x445000-0x445fff:S, 0x446000-0x446fff:S, 0x447000-0x447fff:S, 0x448000-0x448fff:S, 0x449000-0x449fff:S, 0x44a000-0x44afff:S, 0x44b000-0x44bfff:S, 0x44c000-0x44cfff:S, 0x44d000-0x44dfff:S, 0x44e000-0x44efff:S, 0x44f000-0x44ffff:S, 0x450000-0x450fff:S, 0x451000-0x451fff:S, 0x452000-0x452fff:S, 0x453000-0x453fff:S, 0x454000-0x454fff:S, 0x455000-0x455fff:S, 0x456000-0x456fff:S, 0x457000-0x457fff:S, 0x458000-0x458fff:S, 0x459000-0x459fff:S, 0x45a000-0x45afff:S, 0x45b000-0x45bfff:S, 0x45c000-0x45cfff:S, 0x45d000-0x45dfff:S, 0x45e000-0x45efff:S, 0x45f000-0x45ffff:S, 0x460000-0x460fff:S, 0x461000-0x461fff:S, 0x462000-0x462fff:S, 0x463000-0x463fff:S, 0x464000-0x464fff:S, 0x465000-0x465fff:S, 0x466000-0x466fff:S, 0x467000-0x467fff:S, 0x468000-0x468fff:S, 0x469000-0x469fff:S, 0x46a000-0x46afff:S, 0x46b000-0x46bfff:S, 0x46c000-0x46cfff:S, 0x46d000-0x46dfff:S, 0x46e000-0x46efff:S, 0x46f000-0x46ffff:S, 0x470000-0x470fff:S, 0x471000-0x471fff:S, 0x472000-0x472fff:S, 0x473000-0x473fff:S, 0x474000-0x474fff:S, 0x475000-0x475fff:S, 0x476000-0x476fff:S, 0x477000-0x477fff:S, 0x478000-0x478fff:S, 0x479000-0x479fff:S, 0x47a000-0x47afff:S, 0x47b000-0x47bfff:S, 0x47c000-0x47cfff:S, 0x47d000-0x47dfff:S, 0x47e000-0x47efff:S, 0x47f000-0x47ffff:S, 0x480000-0x480fff:S, 0x481000-0x481fff:S, 0x482000-0x482fff:S, 0x483000-0x483fff:S, 0x484000-0x484fff:S, 0x485000-0x485fff:S, 0x486000-0x486fff:S, 0x487000-0x487fff:S, 0x488000-0x488fff:S, 0x489000-0x489fff:S, 0x48a000-0x48afff:S, 0x48b000-0x48bfff:S, 0x48c000-0x48cfff:S, 0x48d000-0x48dfff:S, 0x48e000-0x48efff:S, 0x48f000-0x48ffff:S, 0x490000-0x490fff:S, 0x491000-0x491fff:S, 0x492000-0x492fff:S, 0x493000-0x493fff:S, 0x494000-0x494fff:S, 0x495000-0x495fff:S, 0x496000-0x496fff:S, 0x497000-0x497fff:S, 0x498000-0x498fff:S, 0x499000-0x499fff:S, 0x49a000-0x49afff:S, 0x49b000-0x49bfff:S, 0x49c000-0x49cfff:S, 0x49d000-0x49dfff:S, 0x49e000-0x49efff:S, 0x49f000-0x49ffff:S, 0x4a0000-0x4a0fff:S, 0x4a1000-0x4a1fff:S, 0x4a2000-0x4a2fff:S, 0x4a3000-0x4a3fff:S, 0x4a4000-0x4a4fff:S, 0x4a5000-0x4a5fff:S, 0x4a6000-0x4a6fff:S, 0x4a7000-0x4a7fff:S, 0x4a8000-0x4a8fff:S, 0x4a9000-0x4a9fff:S, 0x4aa000-0x4aafff:S, 0x4ab000-0x4abfff:S, 0x4ac000-0x4acfff:S, 0x4ad000-0x4adfff:S, 0x4ae000-0x4aefff:S, 0x4af000-0x4affff:S, 0x4b0000-0x4b0fff:S, 0x4b1000-0x4b1fff:S, 0x4b2000-0x4b2fff:S, 0x4b3000-0x4b3fff:S, 0x4b4000-0x4b4fff:S, 0x4b5000-0x4b5fff:S, 0x4b6000-0x4b6fff:S, 0x4b7000-0x4b7fff:S, 0x4b8000-0x4b8fff:S, 0x4b9000-0x4b9fff:S, 0x4ba000-0x4bafff:S, 0x4bb000-0x4bbfff:S, 0x4bc000-0x4bcfff:S, 0x4bd000-0x4bdfff:S, 0x4be000-0x4befff:S, 0x4bf000-0x4bffff:S, 0x4c0000-0x4c0fff:S, 0x4c1000-0x4c1fff:S, 0x4c2000-0x4c2fff:S, 0x4c3000-0x4c3fff:S, 0x4c4000-0x4c4fff:S, 0x4c5000-0x4c5fff:S, 0x4c6000-0x4c6fff:S, 0x4c7000-0x4c7fff:S, 0x4c8000-0x4c8fff:S, 0x4c9000-0x4c9fff:S, 0x4ca000-0x4cafff:S, 0x4cb000-0x4cbfff:S, 0x4cc000-0x4ccfff:S, 0x4cd000-0x4cdfff:S, 0x4ce000-0x4cefff:S, 0x4cf000-0x4cffff:S, 0x4d0000-0x4d0fff:S, 0x4d1000-0x4d1fff:S, 0x4d2000-0x4d2fff:S, 0x4d3000-0x4d3fff:S, 0x4d4000-0x4d4fff:S, 0x4d5000-0x4d5fff:S, 0x4d6000-0x4d6fff:S, 0x4d7000-0x4d7fff:S, 0x4d8000-0x4d8fff:S, 0x4d9000-0x4d9fff:S, 0x4da000-0x4dafff:S, 0x4db000-0x4dbfff:S, 0x4dc000-0x4dcfff:S, 0x4dd000-0x4ddfff:S, 0x4de000-0x4defff:S, 0x4df000-0x4dffff:S, 0x4e0000-0x4e0fff:S, 0x4e1000-0x4e1fff:S, 0x4e2000-0x4e2fff:S, 0x4e3000-0x4e3fff:S, 0x4e4000-0x4e4fff:S, 0x4e5000-0x4e5fff:S, 0x4e6000-0x4e6fff:S, 0x4e7000-0x4e7fff:S, 0x4e8000-0x4e8fff:S, 0x4e9000-0x4e9fff:S, 0x4ea000-0x4eafff:S, 0x4eb000-0x4ebfff:S, 0x4ec000-0x4ecfff:S, 0x4ed000-0x4edfff:S, 0x4ee000-0x4eefff:S, 0x4ef000-0x4effff:S, 0x4f0000-0x4f0fff:S, 0x4f1000-0x4f1fff:S, 0x4f2000-0x4f2fff:S, 0x4f3000-0x4f3fff:S, 0x4f4000-0x4f4fff:S, 0x4f5000-0x4f5fff:S, 0x4f6000-0x4f6fff:S, 0x4f7000-0x4f7fff:S, 0x4f8000-0x4f8fff:S, 0x4f9000-0x4f9fff:S, 0x4fa000-0x4fafff:S, 0x4fb000-0x4fbfff:S, 0x4fc000-0x4fcfff:S, 0x4fd000-0x4fdfff:S, 0x4fe000-0x4fefff:S, 0x4ff000-0x4fffff:S, 0x500000-0x500fff:S, 0x501000-0x501fff:S, 0x502000-0x502fff:S, 0x503000-0x503fff:S, 0x504000-0x504fff:S, 0x505000-0x505fff:S, 0x506000-0x506fff:S, 0x507000-0x507fff:S, 0x508000-0x508fff:S, 0x509000-0x509fff:S, 0x50a000-0x50afff:S, 0x50b000-0x50bfff:S, 0x50c000-0x50cfff:S, 0x50d000-0x50dfff:S, 0x50e000-0x50efff:S, 0x50f000-0x50ffff:S, 0x510000-0x510fff:S, 0x511000-0x511fff:S, 0x512000-0x512fff:S, 0x513000-0x513fff:S, 0x514000-0x514fff:S, 0x515000-0x515fff:S, 0x516000-0x516fff:S, 0x517000-0x517fff:S, 0x518000-0x518fff:S, 0x519000-0x519fff:S, 0x51a000-0x51afff:S, 0x51b000-0x51bfff:S, 0x51c000-0x51cfff:S, 0x51d000-0x51dfff:S, 0x51e000-0x51efff:S, 0x51f000-0x51ffff:S, 0x520000-0x520fff:S, 0x521000-0x521fff:S, 0x522000-0x522fff:S, 0x523000-0x523fff:S, 0x524000-0x524fff:S, 0x525000-0x525fff:S, 0x526000-0x526fff:S, 0x527000-0x527fff:S, 0x528000-0x528fff:S, 0x529000-0x529fff:S, 0x52a000-0x52afff:S, 0x52b000-0x52bfff:S, 0x52c000-0x52cfff:S, 0x52d000-0x52dfff:S, 0x52e000-0x52efff:S, 0x52f000-0x52ffff:S, 0x530000-0x530fff:S, 0x531000-0x531fff:S, 0x532000-0x532fff:S, 0x533000-0x533fff:S, 0x534000-0x534fff:S, 0x535000-0x535fff:S, 0x536000-0x536fff:S, 0x537000-0x537fff:S, 0x538000-0x538fff:S, 0x539000-0x539fff:S, 0x53a000-0x53afff:S, 0x53b000-0x53bfff:S, 0x53c000-0x53cfff:S, 0x53d000-0x53dfff:S, 0x53e000-0x53efff:S, 0x53f000-0x53ffff:S, 0x540000-0x540fff:S, 0x541000-0x541fff:S, 0x542000-0x542fff:S, 0x543000-0x543fff:S, 0x544000-0x544fff:S, 0x545000-0x545fff:S, 0x546000-0x546fff:S, 0x547000-0x547fff:S, 0x548000-0x548fff:S, 0x549000-0x549fff:S, 0x54a000-0x54afff:S, 0x54b000-0x54bfff:S, 0x54c000-0x54cfff:S, 0x54d000-0x54dfff:S, 0x54e000-0x54efff:S, 0x54f000-0x54ffff:S, 0x550000-0x550fff:S, 0x551000-0x551fff:S, 0x552000-0x552fff:S, 0x553000-0x553fff:S, 0x554000-0x554fff:S, 0x555000-0x555fff:S, 0x556000-0x556fff:S, 0x557000-0x557fff:S, 0x558000-0x558fff:S, 0x559000-0x559fff:S, 0x55a000-0x55afff:S, 0x55b000-0x55bfff:S, 0x55c000-0x55cfff:S, 0x55d000-0x55dfff:S, 0x55e000-0x55efff:S, 0x55f000-0x55ffff:S, 0x560000-0x560fff:S, 0x561000-0x561fff:S, 0x562000-0x562fff:S, 0x563000-0x563fff:S, 0x564000-0x564fff:S, 0x565000-0x565fff:S, 0x566000-0x566fff:S, 0x567000-0x567fff:S, 0x568000-0x568fff:S, 0x569000-0x569fff:S, 0x56a000-0x56afff:S, 0x56b000-0x56bfff:S, 0x56c000-0x56cfff:S, 0x56d000-0x56dfff:S, 0x56e000-0x56efff:S, 0x56f000-0x56ffff:S, 0x570000-0x570fff:S, 0x571000-0x571fff:S, 0x572000-0x572fff:S, 0x573000-0x573fff:S, 0x574000-0x574fff:S, 0x575000-0x575fff:S, 0x576000-0x576fff:S, 0x577000-0x577fff:S, 0x578000-0x578fff:S, 0x579000-0x579fff:S, 0x57a000-0x57afff:S, 0x57b000-0x57bfff:S, 0x57c000-0x57cfff:S, 0x57d000-0x57dfff:S, 0x57e000-0x57efff:S, 0x57f000-0x57ffff:S, 0x580000-0x580fff:S, 0x581000-0x581fff:S, 0x582000-0x582fff:S, 0x583000-0x583fff:S, 0x584000-0x584fff:S, 0x585000-0x585fff:S, 0x586000-0x586fff:S, 0x587000-0x587fff:S, 0x588000-0x588fff:S, 0x589000-0x589fff:S, 0x58a000-0x58afff:S, 0x58b000-0x58bfff:S, 0x58c000-0x58cfff:S, 0x58d000-0x58dfff:S, 0x58e000-0x58efff:S, 0x58f000-0x58ffff:S, 0x590000-0x590fff:S, 0x591000-0x591fff:S, 0x592000-0x592fff:S, 0x593000-0x593fff:S, 0x594000-0x594fff:S, 0x595000-0x595fff:S, 0x596000-0x596fff:S, 0x597000-0x597fff:S, 0x598000-0x598fff:S, 0x599000-0x599fff:S, 0x59a000-0x59afff:S, 0x59b000-0x59bfff:S, 0x59c000-0x59cfff:S, 0x59d000-0x59dfff:S, 0x59e000-0x59efff:S, 0x59f000-0x59ffff:S, 0x5a0000-0x5a0fff:S, 0x5a1000-0x5a1fff:S, 0x5a2000-0x5a2fff:S, 0x5a3000-0x5a3fff:S, 0x5a4000-0x5a4fff:S, 0x5a5000-0x5a5fff:S, 0x5a6000-0x5a6fff:S, 0x5a7000-0x5a7fff:S, 0x5a8000-0x5a8fff:S, 0x5a9000-0x5a9fff:S, 0x5aa000-0x5aafff:S, 0x5ab000-0x5abfff:S, 0x5ac000-0x5acfff:S, 0x5ad000-0x5adfff:S, 0x5ae000-0x5aefff:S, 0x5af000-0x5affff:S, 0x5b0000-0x5b0fff:S, 0x5b1000-0x5b1fff:S, 0x5b2000-0x5b2fff:S, 0x5b3000-0x5b3fff:S, 0x5b4000-0x5b4fff:S, 0x5b5000-0x5b5fff:S, 0x5b6000-0x5b6fff:S, 0x5b7000-0x5b7fff:S, 0x5b8000-0x5b8fff:S, 0x5b9000-0x5b9fff:S, 0x5ba000-0x5bafff:S, 0x5bb000-0x5bbfff:S, 0x5bc000-0x5bcfff:S, 0x5bd000-0x5bdfff:S, 0x5be000-0x5befff:S, 0x5bf000-0x5bffff:S, 0x5c0000-0x5c0fff:S, 0x5c1000-0x5c1fff:S, 0x5c2000-0x5c2fff:S, 0x5c3000-0x5c3fff:S, 0x5c4000-0x5c4fff:S, 0x5c5000-0x5c5fff:S, 0x5c6000-0x5c6fff:S, 0x5c7000-0x5c7fff:S, 0x5c8000-0x5c8fff:S, 0x5c9000-0x5c9fff:S, 0x5ca000-0x5cafff:S, 0x5cb000-0x5cbfff:S, 0x5cc000-0x5ccfff:S, 0x5cd000-0x5cdfff:S, 0x5ce000-0x5cefff:S, 0x5cf000-0x5cffff:S, 0x5d0000-0x5d0fff:S, 0x5d1000-0x5d1fff:S, 0x5d2000-0x5d2fff:S, 0x5d3000-0x5d3fff:S, 0x5d4000-0x5d4fff:S, 0x5d5000-0x5d5fff:S, 0x5d6000-0x5d6fff:S, 0x5d7000-0x5d7fff:S, 0x5d8000-0x5d8fff:S, 0x5d9000-0x5d9fff:S, 0x5da000-0x5dafff:S, 0x5db000-0x5dbfff:S, 0x5dc000-0x5dcfff:S, 0x5dd000-0x5ddfff:S, 0x5de000-0x5defff:S, 0x5df000-0x5dffff:S, 0x5e0000-0x5e0fff:S, 0x5e1000-0x5e1fff:S, 0x5e2000-0x5e2fff:S, 0x5e3000-0x5e3fff:S, 0x5e4000-0x5e4fff:S, 0x5e5000-0x5e5fff:S, 0x5e6000-0x5e6fff:S, 0x5e7000-0x5e7fff:S, 0x5e8000-0x5e8fff:S, 0x5e9000-0x5e9fff:S, 0x5ea000-0x5eafff:S, 0x5eb000-0x5ebfff:S, 0x5ec000-0x5ecfff:S, 0x5ed000-0x5edfff:S, 0x5ee000-0x5eefff:S, 0x5ef000-0x5effff:S, 0x5f0000-0x5f0fff:S, 0x5f1000-0x5f1fff:S, 0x5f2000-0x5f2fff:S, 0x5f3000-0x5f3fff:S, 0x5f4000-0x5f4fff:S, 0x5f5000-0x5f5fff:S, 0x5f6000-0x5f6fff:S, 0x5f7000-0x5f7fff:S, 0x5f8000-0x5f8fff:S, 0x5f9000-0x5f9fff:S, 0x5fa000-0x5fafff:S, 0x5fb000-0x5fbfff:S, 0x5fc000-0x5fcfff:S, 0x5fd000-0x5fdfff:S, 0x5fe000-0x5fefff:S, 0x5ff000-0x5fffff:S, 0x600000-0x600fff:S, 0x601000-0x601fff:S, 0x602000-0x602fff:S, 0x603000-0x603fff:S, 0x604000-0x604fff:S, 0x605000-0x605fff:S, 0x606000-0x606fff:S, 0x607000-0x607fff:S, 0x608000-0x608fff:S, 0x609000-0x609fff:S, 0x60a000-0x60afff:S, 0x60b000-0x60bfff:S, 0x60c000-0x60cfff:S, 0x60d000-0x60dfff:S, 0x60e000-0x60efff:S, 0x60f000-0x60ffff:S, 0x610000-0x610fff:S, 0x611000-0x611fff:S, 0x612000-0x612fff:S, 0x613000-0x613fff:S, 0x614000-0x614fff:S, 0x615000-0x615fff:S, 0x616000-0x616fff:S, 0x617000-0x617fff:S, 0x618000-0x618fff:S, 0x619000-0x619fff:S, 0x61a000-0x61afff:S, 0x61b000-0x61bfff:S, 0x61c000-0x61cfff:S, 0x61d000-0x61dfff:S, 0x61e000-0x61efff:S, 0x61f000-0x61ffff:S, 0x620000-0x620fff:S, 0x621000-0x621fff:S, 0x622000-0x622fff:S, 0x623000-0x623fff:S, 0x624000-0x624fff:S, 0x625000-0x625fff:S, 0x626000-0x626fff:S, 0x627000-0x627fff:S, 0x628000-0x628fff:S, 0x629000-0x629fff:S, 0x62a000-0x62afff:S, 0x62b000-0x62bfff:S, 0x62c000-0x62cfff:S, 0x62d000-0x62dfff:S, 0x62e000-0x62efff:S, 0x62f000-0x62ffff:S, 0x630000-0x630fff:S, 0x631000-0x631fff:S, 0x632000-0x632fff:S, 0x633000-0x633fff:S, 0x634000-0x634fff:S, 0x635000-0x635fff:S, 0x636000-0x636fff:S, 0x637000-0x637fff:S, 0x638000-0x638fff:S, 0x639000-0x639fff:S, 0x63a000-0x63afff:S, 0x63b000-0x63bfff:S, 0x63c000-0x63cfff:S, 0x63d000-0x63dfff:S, 0x63e000-0x63efff:S, 0x63f000-0x63ffff:S, 0x640000-0x640fff:S, 0x641000-0x641fff:S, 0x642000-0x642fff:S, 0x643000-0x643fff:S, 0x644000-0x644fff:S, 0x645000-0x645fff:S, 0x646000-0x646fff:S, 0x647000-0x647fff:S, 0x648000-0x648fff:S, 0x649000-0x649fff:S, 0x64a000-0x64afff:S, 0x64b000-0x64bfff:S, 0x64c000-0x64cfff:S, 0x64d000-0x64dfff:S, 0x64e000-0x64efff:S, 0x64f000-0x64ffff:S, 0x650000-0x650fff:S, 0x651000-0x651fff:S, 0x652000-0x652fff:S, 0x653000-0x653fff:S, 0x654000-0x654fff:S, 0x655000-0x655fff:S, 0x656000-0x656fff:S, 0x657000-0x657fff:S, 0x658000-0x658fff:S, 0x659000-0x659fff:S, 0x65a000-0x65afff:S, 0x65b000-0x65bfff:S, 0x65c000-0x65cfff:S, 0x65d000-0x65dfff:S, 0x65e000-0x65efff:S, 0x65f000-0x65ffff:S, 0x660000-0x660fff:S, 0x661000-0x661fff:S, 0x662000-0x662fff:S, 0x663000-0x663fff:S, 0x664000-0x664fff:S, 0x665000-0x665fff:S, 0x666000-0x666fff:S, 0x667000-0x667fff:S, 0x668000-0x668fff:S, 0x669000-0x669fff:S, 0x66a000-0x66afff:S, 0x66b000-0x66bfff:S, 0x66c000-0x66cfff:S, 0x66d000-0x66dfff:S, 0x66e000-0x66efff:S, 0x66f000-0x66ffff:S, 0x670000-0x670fff:S, 0x671000-0x671fff:S, 0x672000-0x672fff:S, 0x673000-0x673fff:S, 0x674000-0x674fff:S, 0x675000-0x675fff:S, 0x676000-0x676fff:S, 0x677000-0x677fff:S, 0x678000-0x678fff:S, 0x679000-0x679fff:S, 0x67a000-0x67afff:S, 0x67b000-0x67bfff:S, 0x67c000-0x67cfff:S, 0x67d000-0x67dfff:S, 0x67e000-0x67efff:S, 0x67f000-0x67ffff:S, 0x680000-0x680fff:S, 0x681000-0x681fff:S, 0x682000-0x682fff:S, 0x683000-0x683fff:S, 0x684000-0x684fff:S, 0x685000-0x685fff:S, 0x686000-0x686fff:S, 0x687000-0x687fff:S, 0x688000-0x688fff:S, 0x689000-0x689fff:S, 0x68a000-0x68afff:S, 0x68b000-0x68bfff:S, 0x68c000-0x68cfff:S, 0x68d000-0x68dfff:S, 0x68e000-0x68efff:S, 0x68f000-0x68ffff:S, 0x690000-0x690fff:S, 0x691000-0x691fff:S, 0x692000-0x692fff:S, 0x693000-0x693fff:S, 0x694000-0x694fff:S, 0x695000-0x695fff:S, 0x696000-0x696fff:S, 0x697000-0x697fff:S, 0x698000-0x698fff:S, 0x699000-0x699fff:S, 0x69a000-0x69afff:S, 0x69b000-0x69bfff:S, 0x69c000-0x69cfff:S, 0x69d000-0x69dfff:S, 0x69e000-0x69efff:S, 0x69f000-0x69ffff:S, 0x6a0000-0x6a0fff:S, 0x6a1000-0x6a1fff:S, 0x6a2000-0x6a2fff:S, 0x6a3000-0x6a3fff:S, 0x6a4000-0x6a4fff:S, 0x6a5000-0x6a5fff:S, 0x6a6000-0x6a6fff:S, 0x6a7000-0x6a7fff:S, 0x6a8000-0x6a8fff:S, 0x6a9000-0x6a9fff:S, 0x6aa000-0x6aafff:S, 0x6ab000-0x6abfff:S, 0x6ac000-0x6acfff:S, 0x6ad000-0x6adfff:S, 0x6ae000-0x6aefff:S, 0x6af000-0x6affff:S, 0x6b0000-0x6b0fff:S, 0x6b1000-0x6b1fff:S, 0x6b2000-0x6b2fff:S, 0x6b3000-0x6b3fff:S, 0x6b4000-0x6b4fff:S, 0x6b5000-0x6b5fff:S, 0x6b6000-0x6b6fff:S, 0x6b7000-0x6b7fff:S, 0x6b8000-0x6b8fff:S, 0x6b9000-0x6b9fff:S, 0x6ba000-0x6bafff:S, 0x6bb000-0x6bbfff:S, 0x6bc000-0x6bcfff:S, 0x6bd000-0x6bdfff:S, 0x6be000-0x6befff:S, 0x6bf000-0x6bffff:S, 0x6c0000-0x6c0fff:S, 0x6c1000-0x6c1fff:S, 0x6c2000-0x6c2fff:S, 0x6c3000-0x6c3fff:S, 0x6c4000-0x6c4fff:S, 0x6c5000-0x6c5fff:S, 0x6c6000-0x6c6fff:S, 0x6c7000-0x6c7fff:S, 0x6c8000-0x6c8fff:S, 0x6c9000-0x6c9fff:S, 0x6ca000-0x6cafff:S, 0x6cb000-0x6cbfff:S, 0x6cc000-0x6ccfff:S, 0x6cd000-0x6cdfff:S, 0x6ce000-0x6cefff:S, 0x6cf000-0x6cffff:S, 0x6d0000-0x6d0fff:S, 0x6d1000-0x6d1fff:S, 0x6d2000-0x6d2fff:S, 0x6d3000-0x6d3fff:S, 0x6d4000-0x6d4fff:S, 0x6d5000-0x6d5fff:S, 0x6d6000-0x6d6fff:S, 0x6d7000-0x6d7fff:S, 0x6d8000-0x6d8fff:S, 0x6d9000-0x6d9fff:S, 0x6da000-0x6dafff:S, 0x6db000-0x6dbfff:S, 0x6dc000-0x6dcfff:S, 0x6dd000-0x6ddfff:S, 0x6de000-0x6defff:S, 0x6df000-0x6dffff:S, 0x6e0000-0x6e0fff:S, 0x6e1000-0x6e1fff:S, 0x6e2000-0x6e2fff:S, 0x6e3000-0x6e3fff:S, 0x6e4000-0x6e4fff:S, 0x6e5000-0x6e5fff:S, 0x6e6000-0x6e6fff:S, 0x6e7000-0x6e7fff:S, 0x6e8000-0x6e8fff:S, 0x6e9000-0x6e9fff:S, 0x6ea000-0x6eafff:S, 0x6eb000-0x6ebfff:S, 0x6ec000-0x6ecfff:S, 0x6ed000-0x6edfff:S, 0x6ee000-0x6eefff:S, 0x6ef000-0x6effff:S, 0x6f0000-0x6f0fff:S, 0x6f1000-0x6f1fff:S, 0x6f2000-0x6f2fff:S, 0x6f3000-0x6f3fff:S, 0x6f4000-0x6f4fff:S, 0x6f5000-0x6f5fff:S, 0x6f6000-0x6f6fff:S, 0x6f7000-0x6f7fff:S, 0x6f8000-0x6f8fff:S, 0x6f9000-0x6f9fff:S, 0x6fa000-0x6fafff:S, 0x6fb000-0x6fbfff:S, 0x6fc000-0x6fcfff:S, 0x6fd000-0x6fdfff:S, 0x6fe000-0x6fefff:S, 0x6ff000-0x6fffff:S, 0x700000-0x700fff:S, 0x701000-0x701fff:S, 0x702000-0x702fff:S, 0x703000-0x703fff:S, 0x704000-0x704fff:S, 0x705000-0x705fff:S, 0x706000-0x706fff:S, 0x707000-0x707fff:S, 0x708000-0x708fff:S, 0x709000-0x709fff:S, 0x70a000-0x70afff:S, 0x70b000-0x70bfff:S, 0x70c000-0x70cfff:S, 0x70d000-0x70dfff:S, 0x70e000-0x70efff:S, 0x70f000-0x70ffff:S, 0x710000-0x710fff:S, 0x711000-0x711fff:S, 0x712000-0x712fff:S, 0x713000-0x713fff:S, 0x714000-0x714fff:S, 0x715000-0x715fff:S, 0x716000-0x716fff:S, 0x717000-0x717fff:S, 0x718000-0x718fff:S, 0x719000-0x719fff:S, 0x71a000-0x71afff:S, 0x71b000-0x71bfff:S, 0x71c000-0x71cfff:S, 0x71d000-0x71dfff:S, 0x71e000-0x71efff:S, 0x71f000-0x71ffff:S, 0x720000-0x720fff:S, 0x721000-0x721fff:S, 0x722000-0x722fff:S, 0x723000-0x723fff:S, 0x724000-0x724fff:S, 0x725000-0x725fff:S, 0x726000-0x726fff:S, 0x727000-0x727fff:S, 0x728000-0x728fff:S, 0x729000-0x729fff:S, 0x72a000-0x72afff:S, 0x72b000-0x72bfff:S, 0x72c000-0x72cfff:S, 0x72d000-0x72dfff:S, 0x72e000-0x72efff:S, 0x72f000-0x72ffff:S, 0x730000-0x730fff:S, 0x731000-0x731fff:S, 0x732000-0x732fff:S, 0x733000-0x733fff:S, 0x734000-0x734fff:S, 0x735000-0x735fff:S, 0x736000-0x736fff:S, 0x737000-0x737fff:S, 0x738000-0x738fff:S, 0x739000-0x739fff:S, 0x73a000-0x73afff:S, 0x73b000-0x73bfff:S, 0x73c000-0x73cfff:S, 0x73d000-0x73dfff:S, 0x73e000-0x73efff:S, 0x73f000-0x73ffff:S, 0x740000-0x740fff:S, 0x741000-0x741fff:S, 0x742000-0x742fff:S, 0x743000-0x743fff:S, 0x744000-0x744fff:S, 0x745000-0x745fff:S, 0x746000-0x746fff:S, 0x747000-0x747fff:S, 0x748000-0x748fff:S, 0x749000-0x749fff:S, 0x74a000-0x74afff:S, 0x74b000-0x74bfff:S, 0x74c000-0x74cfff:S, 0x74d000-0x74dfff:S, 0x74e000-0x74efff:S, 0x74f000-0x74ffff:S, 0x750000-0x750fff:S, 0x751000-0x751fff:S, 0x752000-0x752fff:S, 0x753000-0x753fff:S, 0x754000-0x754fff:S, 0x755000-0x755fff:S, 0x756000-0x756fff:S, 0x757000-0x757fff:S, 0x758000-0x758fff:S, 0x759000-0x759fff:S, 0x75a000-0x75afff:S, 0x75b000-0x75bfff:S, 0x75c000-0x75cfff:S, 0x75d000-0x75dfff:S, 0x75e000-0x75efff:S, 0x75f000-0x75ffff:S, 0x760000-0x760fff:S, 0x761000-0x761fff:S, 0x762000-0x762fff:S, 0x763000-0x763fff:S, 0x764000-0x764fff:S, 0x765000-0x765fff:S, 0x766000-0x766fff:S, 0x767000-0x767fff:S, 0x768000-0x768fff:S, 0x769000-0x769fff:S, 0x76a000-0x76afff:S, 0x76b000-0x76bfff:S, 0x76c000-0x76cfff:S, 0x76d000-0x76dfff:S, 0x76e000-0x76efff:S, 0x76f000-0x76ffff:S, 0x770000-0x770fff:S, 0x771000-0x771fff:S, 0x772000-0x772fff:S, 0x773000-0x773fff:S, 0x774000-0x774fff:S, 0x775000-0x775fff:S, 0x776000-0x776fff:S, 0x777000-0x777fff:S, 0x778000-0x778fff:S, 0x779000-0x779fff:S, 0x77a000-0x77afff:S, 0x77b000-0x77bfff:S, 0x77c000-0x77cfff:S, 0x77d000-0x77dfff:S, 0x77e000-0x77efff:S, 0x77f000-0x77ffff:S, 0x780000-0x780fff:S, 0x781000-0x781fff:S, 0x782000-0x782fff:S, 0x783000-0x783fff:S, 0x784000-0x784fff:S, 0x785000-0x785fff:S, 0x786000-0x786fff:S, 0x787000-0x787fff:S, 0x788000-0x788fff:S, 0x789000-0x789fff:S, 0x78a000-0x78afff:S, 0x78b000-0x78bfff:S, 0x78c000-0x78cfff:S, 0x78d000-0x78dfff:S, 0x78e000-0x78efff:S, 0x78f000-0x78ffff:S, 0x790000-0x790fff:S, 0x791000-0x791fff:S, 0x792000-0x792fff:S, 0x793000-0x793fff:S, 0x794000-0x794fff:S, 0x795000-0x795fff:S, 0x796000-0x796fff:S, 0x797000-0x797fff:S, 0x798000-0x798fff:S, 0x799000-0x799fff:S, 0x79a000-0x79afff:S, 0x79b000-0x79bfff:S, 0x79c000-0x79cfff:S, 0x79d000-0x79dfff:S, 0x79e000-0x79efff:S, 0x79f000-0x79ffff:S, 0x7a0000-0x7a0fff:S, 0x7a1000-0x7a1fff:S, 0x7a2000-0x7a2fff:S, 0x7a3000-0x7a3fff:S, 0x7a4000-0x7a4fff:S, 0x7a5000-0x7a5fff:S, 0x7a6000-0x7a6fff:S, 0x7a7000-0x7a7fff:S, 0x7a8000-0x7a8fff:S, 0x7a9000-0x7a9fff:S, 0x7aa000-0x7aafff:S, 0x7ab000-0x7abfff:S, 0x7ac000-0x7acfff:S, 0x7ad000-0x7adfff:S, 0x7ae000-0x7aefff:S, 0x7af000-0x7affff:S, 0x7b0000-0x7b0fff:S, 0x7b1000-0x7b1fff:S, 0x7b2000-0x7b2fff:S, 0x7b3000-0x7b3fff:S, 0x7b4000-0x7b4fff:S, 0x7b5000-0x7b5fff:S, 0x7b6000-0x7b6fff:S, 0x7b7000-0x7b7fff:S, 0x7b8000-0x7b8fff:S, 0x7b9000-0x7b9fff:S, 0x7ba000-0x7bafff:S, 0x7bb000-0x7bbfff:S, 0x7bc000-0x7bcfff:S, 0x7bd000-0x7bdfff:S, 0x7be000-0x7befff:S, 0x7bf000-0x7bffff:S, 0x7c0000-0x7c0fff:S, 0x7c1000-0x7c1fff:S, 0x7c2000-0x7c2fff:S, 0x7c3000-0x7c3fff:S, 0x7c4000-0x7c4fff:S, 0x7c5000-0x7c5fff:S, 0x7c6000-0x7c6fff:S, 0x7c7000-0x7c7fff:S, 0x7c8000-0x7c8fff:S, 0x7c9000-0x7c9fff:S, 0x7ca000-0x7cafff:S, 0x7cb000-0x7cbfff:S, 0x7cc000-0x7ccfff:S, 0x7cd000-0x7cdfff:S, 0x7ce000-0x7cefff:S, 0x7cf000-0x7cffff:S, 0x7d0000-0x7d0fff:S, 0x7d1000-0x7d1fff:S, 0x7d2000-0x7d2fff:S, 0x7d3000-0x7d3fff:S, 0x7d4000-0x7d4fff:S, 0x7d5000-0x7d5fff:S, 0x7d6000-0x7d6fff:S, 0x7d7000-0x7d7fff:S, 0x7d8000-0x7d8fff:S, 0x7d9000-0x7d9fff:S, 0x7da000-0x7dafff:S, 0x7db000-0x7dbfff:S, 0x7dc000-0x7dcfff:S, 0x7dd000-0x7ddfff:S, 0x7de000-0x7defff:S, 0x7df000-0x7dffff:S, 0x7e0000-0x7e0fff:S, 0x7e1000-0x7e1fff:S, 0x7e2000-0x7e2fff:S, 0x7e3000-0x7e3fff:S, 0x7e4000-0x7e4fff:S, 0x7e5000-0x7e5fff:S, 0x7e6000-0x7e6fff:S, 0x7e7000-0x7e7fff:S, 0x7e8000-0x7e8fff:S, 0x7e9000-0x7e9fff:S, 0x7ea000-0x7eafff:S, 0x7eb000-0x7ebfff:S, 0x7ec000-0x7ecfff:S, 0x7ed000-0x7edfff:S, 0x7ee000-0x7eefff:S, 0x7ef000-0x7effff:S, 0x7f0000-0x7f0fff:S, 0x7f1000-0x7f1fff:S, 0x7f2000-0x7f2fff:S, 0x7f3000-0x7f3fff:S, 0x7f4000-0x7f4fff:S, 0x7f5000-0x7f5fff:S, 0x7f6000-0x7f6fff:S, 0x7f7000-0x7f7fff:S, 0x7f8000-0x7f8fff:S, 0x7f9000-0x7f9fff:S, 0x7fa000-0x7fafff:S, 0x7fb000-0x7fbfff:S, 0x7fc000-0x7fcfff:S, 0x7fd000-0x7fdfff:S, 0x7fe000-0x7fefff:S, 0x7ff000-0x7fffff:S
Erase/write done.
Verifying flash... VERIFIED.
Restoring MMIO space at 0xf772f8a0
Restoring MMIO space at 0xf772f89c
Restoring MMIO space at 0xf772f898
Restoring MMIO space at 0xf772f896
Restoring MMIO space at 0xf772f894
Restoring PCI config space for 00:1f:0 reg 0xdc
3
3
Attached is the output from "flashrom -V" as the output requested.
I backed up the running BIOS with AFUDOS and flashrom getting different
sum values under fedora 18.
$ sum *.ROM
19558 4096 SGIBIOS.ROM
$ sum *.rom
16753 4096 MX25L3205A.rom
I'm getting ready to flash over the SGI BIOS with the latest Supermicro
and I'm worried about using flashrom instead of AFUDOS.
Let me know if anyone is interested in helping my efforts.
Thanks,
2
1
Hello,
I tested flashrom on an Attro G5G100-P industrial board.
Reading and writing the original BIOS were successful, both with the original
chip and a spare PLCC chip.
The logs are attached.
Christoph
2
1
remotely flashed, rebooted and worked
--
Gianluigi Tiesi <sherpya(a)netfarm.it>
EDP Project Leader
Netfarm S.r.l. - http://www.netfarm.it/
Free Software: http://oss.netfarm.it/
Q: Because it reverses the logical flow of conversation.
A: Why is putting a reply at the top of the message frowned upon?
2
1
time flashrom -p ft2232_spi:type=2232H -V
flashrom v0.9.7-r1751 on Linux 3.8.0-30-generic (i686)
flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.1.9, GCC 4.7.3, little endian
Command line (3 args): flashrom -p ft2232_spi:type=2232H -V
Calibrating delay loop... OS timer resolution is 1 usecs, 2793M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 998 us, 10000 myus = 10000 us, 4 myus = 4 us, OK.
Initializing ft2232_spi programmer
Using device type FTDI FT2232H channel A.
FTDI chip type 2 is not high-speed.
Set clock divisor
MPSSE clock: 12.000000 MHz, divisor: 2, SPI clock: 6.000000 MHz
No loopback of TDI/DO TDO/DI
Set data bits
The following protocols are supported: SPI.
Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25LQ16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25LQ032/A25LQ32A, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for AMIC A25LQ64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DF641(A), 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25F512, 64 kB: probe_spi_at25f: id1 0xff, id2 0xff
Probing for Atmel AT25F512A, 64 kB: probe_spi_at25f: id1 0xff, id2 0xff
Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25F1024(A), 128 kB: probe_spi_at25f: id1 0xff, id2 0xff
Probing for Atmel AT25F2048, 256 kB: probe_spi_at25f: id1 0xff, id2 0xff
Probing for Atmel AT25F4096, 512 kB: probe_spi_at25f: id1 0xff, id2 0xff
Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB321E, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for ESMT F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25F64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25QH32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25QH64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25QH128, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25S10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25S20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25S40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25S80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25S16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25S32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon EN25S64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25LQ32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q512, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q20(B), 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q40(B), 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q80(B), 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q16(B), 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q32(B), 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q64(B), 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25Q128B, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for GigaDevice GD25T80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Intel 25F160S33B8, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Intel 25F160S33T8, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Intel 25F320S33B8, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Intel 25F320S33T8, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Intel 25F640S33B8, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Intel 25F640S33T8, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L512(E)/MX25V512(C), 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L1005(C)/MX25L1006E, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L2005(C), 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L4005(A/C), 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L8005/MX25V8005, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L1605A/MX25L1606E, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L1605D/MX25L1608D, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L3205(A), 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L3205D/MX25L3208D, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L3206E, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L6405(D), 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L6406E/MX25L6436E, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L6445E, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25L12805(D), 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25U1635E, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25U3235E/F, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix MX25U6435E/F, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P05, 64 kB: Ignoring RES in favour of RDID.
Probing for Micron/Numonyx/ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P10, 128 kB: Ignoring RES in favour of RDID.
Probing for Micron/Numonyx/ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P20-old, 256 kB: Ignoring RES in favour of RDID.
Probing for Micron/Numonyx/ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P40-old, 512 kB: Ignoring RES in favour of RDID.
Probing for Micron/Numonyx/ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PX80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M45PE10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M45PE20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M45PE40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M45PE80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST M45PE16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST N25Q016, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST N25Q032..1E, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST N25Q032..3E, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST N25Q064..1E, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST N25Q128..1E, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Micron/Numonyx/ST N25Q128..3E, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Nantronics N25S10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Nantronics N25S20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Nantronics N25S40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Nantronics N25S80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Nantronics N25S16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Found Nantronics flash chip "N25S16" (2048 kB, SPI) on ft2232_spi.
Chip status register is 0x00.
Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set
Chip status register: Bit 6 is not set
Chip status register: Block Protect 3 (BP3) is not set
Chip status register: Block Protect 2 (BP2) is not set
Chip status register: Block Protect 1 (BP1) is not set
Chip status register: Block Protect 0 (BP0) is not set
Chip status register: Write Enable Latch (WEL) is not set
Chip status register: Write In Progress (WIP/BUSY) is not set
Probing for PMC Pm25LD256C, 32 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LD512(C), 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LD010(C), 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LD020(C), 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LD040(C), 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LV512(A), 64 kB: probe_spi_res3: id1 0x1414, id2 0x14
Probing for PMC Pm25LV010, 128 kB: probe_spi_res3: id1 0x1414, id2 0x14
Probing for PMC Pm25LV010A, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Sanyo LE25FW203A, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Sanyo LE25FW403A, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Sanyo LE25FW418A, 512 kB: probe_spi_res2: id1 0x14, id2 0x14
Probing for Sanyo LE25FW806, 1024 kB: probe_spi_res2: id1 0x14, id2 0x14
Probing for Sanyo LE25FW808, 1024 kB: probe_spi_res2: id1 0x14, id2 0x14
Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL032A/P, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL064A/P, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL204K, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL208K, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL116K/S25FL216K, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Spansion S25FL128S......0, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25LF040A, 512 kB: probe_spi_res2: id1 0x14, id2 0x14
Probing for SST SST25LF080(A), 1024 kB: probe_spi_res2: id1 0x14, id2 0x14
Probing for SST SST25VF010, 128 kB: probe_spi_rems: id1 0xd5, id2 0x14
Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0xd5, id2 0x14
Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xd5, id2 0x14
Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25WF512, 64 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25WF010, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25WF020, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST SST25WF040, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q80.V, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q16.V, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q32.V, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q64.V, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q128.V, 16384 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q20.W, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q40.W, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q80.W, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q16.W, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q32.W, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25Q64.W, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Unknown SFDP-capable chip, 0 kB: No SFDP signature found.
Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xd5, id2 0x3015
Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1 0xd5, id2 0x14
Found Nantronics flash chip "N25S16" (2048 kB, SPI).
===
This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom(a)flashrom.org if any of the above operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -Vr,
-VE, -Vw), and mention which mainboard or programmer you tested.
Please mention your board in the subject line. Thanks for your help!
No operations were specified.
real 0m1.922s
user 0m0.800s
sys 0m0.008s
2
1
Hello,
You have listed as a supported mainboard the x7spa-hf, it turns out
there is a very similar board that also works, the x7spe-hf-d525.
I just wanted to write to you to let you know so you could update your
supported mainboard page.
micah
2
1
On Sun, 24 Mar 2013 11:10:19 -0400
Justin Chevrier <jchevrier(a)gmail.com> wrote:
> From the 'You can never have enough programmers' file, comes support
> for another programmer type.
Supporting the internal one becomes more painful every day, so
expanding the support for external programmers is very welcomed, thanks!
> Specifically it's the PICkit2. This patch was inspired by the code in
> AVRDude (open source Atmel AVR
> programmer) to support the PICkit2 written by Doug Brown [1]. The
> Dediprog code in Flashrom was used
> as the template for this code with some reference to the ft2232 code
> as well. I left Carl-Daniel in
> the copyright assignment as I thought it made the most sense as I
> basically copied and pasted then
> modified the code as needed. Hopefully that was the right thing to do.
Sure, the copyright does not vanish when you copy some code to a new
file, so all previous copyright notices should be copied over too
(if one thinks they are useful at all... :)
> A few notes:
>
> 1) The code makes no provision for externally powered targets (where
> VDD from the PICkit can be connected to
> the device and an external power source and it will detect external
> power and not apply its own).
> I'm assuming that code needs to be written for this to work and that
> the PICkit itself doesn't make it happen
> automagically. Not sure on that one
I have *no* idea about that programmer or the protocol... but maybe
that's what the equivalent of voltage_selector = 0 is for?
>
> 2) I've tested with PICkit2 firmware version 2.32. I suspect that
> there are earlier versions of the
> firmware that are not capable of talking SPI, but I'm not sure. Should
> we include a warning if we detect
> that a user is running on older firmware and ask users to submit if
> their firmware version works
> for them?
Maybe... other programmers use their devices struct for such things. I
don't think dediprog is a good example in this regard.
> 3) I've only tested with the one easily accessible SPI chip I have on
> hand (GigaDevice GD25Q80)
>
> Connections are as follows:
>
> PICkit2 Pin 1 - VPP/MCLR -> CS
> PICkit2 Pin 2 - VDD -> Vcc
> PICkit2 Pin 3 - GND -> Vss
> PICkit2 Pin 4 - PGD -> SO
> PICkit2 Pin 5 - PDC -> SCLK
> PICkit2 Pin 6 - AUX -> SI
Creating a wiki page would be welcomed. If you want an account to do
that, just ask.
> Feedback welcomed! Hopefully this is useful to someone.
>
> Thanks for the great tools as always guys.
Thanks for your patch!
The following is not a full review, but I mention a few things I
spotted while skimming through. Feel free to ignore them (for now :) if
you don't agree.
> Index: Makefile
> ===================================================================
> --- Makefile (revision 1657)
> +++ Makefile (working copy)
> @@ -117,7 +117,7 @@
> else
> override CONFIG_PONY_SPI = no
> endif
> -# Dediprog and FT2232 are not supported under DOS (missing USB support).
> +# Dediprog, FT2232 and PICkit2 are not supported under DOS (missing USB support).
> ifeq ($(CONFIG_DEDIPROG), yes)
> UNSUPPORTED_FEATURES += CONFIG_DEDIPROG=yes
> else
> @@ -128,7 +128,12 @@
> else
> override CONFIG_FT2232_SPI = no
> endif
> +ifeq ($(CONFIG_PICKIT2_SPI), yes)
> +UNSUPPORTED_FEATURES += CONFIG_PICKIT2_SPI=yes
> +else
> +override CONFIG_PICKIT2_SPI = no
> endif
> +endif
>
> # FIXME: Should we check for Cygwin/MSVC as well?
> ifeq ($(TARGET_OS), MinGW)
> @@ -229,7 +234,7 @@
> else
> override CONFIG_SERPROG = no
> endif
> -# Dediprog and FT2232 are not supported with libpayload (missing libusb support)
> +# Dediprog, FT2232 and PICkit2 are not supported with libpayload (missing libusb support)
> ifeq ($(CONFIG_DEDIPROG), yes)
> UNSUPPORTED_FEATURES += CONFIG_DEDIPROG=yes
> else
> @@ -240,7 +245,12 @@
> else
> override CONFIG_FT2232_SPI = no
> endif
> +ifeq ($(CONFIG_PICKIT2_SPI), yes)
> +UNSUPPORTED_FEATURES += CONFIG_PICKIT2_SPI=yes
> +else
> +override CONFIG_PICKIT2_SPI = no
> endif
> +endif
>
> ifneq ($(TARGET_OS), Linux)
> ifeq ($(CONFIG_LINUX_SPI), yes)
> @@ -382,6 +392,9 @@
> # Enable Linux spidev interface by default. We disable it on non-Linux targets.
> CONFIG_LINUX_SPI ?= yes
>
> +# Always enable PICkit2 SPI dongles for now.
> +CONFIG_PICKIT2_SPI ?= yes
> +
> # Disable wiki printing by default. It is only useful if you have wiki access.
> CONFIG_PRINT_WIKI ?= no
>
> @@ -549,6 +562,12 @@
> PROGRAMMER_OBJS += linux_spi.o
> endif
>
> +ifeq ($(CONFIG_PICKIT2_SPI), yes)
> +FEATURE_CFLAGS += -D'CONFIG_PICKIT2_SPI=1'
> +PROGRAMMER_OBJS += pickit2_spi.o
> +NEED_USB := yes
> +endif
> +
> ifeq ($(NEED_SERIAL), yes)
> LIB_OBJS += serial.o
> endif
> Index: flashrom.8
> ===================================================================
> --- flashrom.8 (revision 1657)
> +++ flashrom.8 (working copy)
> @@ -220,6 +220,8 @@
> .sp
> .BR "* linux_spi" " (for SPI flash ROMs accessible via /dev/spidevX.Y on Linux)"
> .sp
> +.BR "* pickit2_spi" " (for SPI flash ROMs accessible via Microchip PICkit2 on Linux)"
Linux only? I guess that's a copy & paste error and it will work whereever flashrom and libusb work.
> +.sp
> Some programmers have optional or mandatory parameters which are described
> in detail in the
> .B PROGRAMMER SPECIFIC INFO
TODO: explanation of programmer parameters in an detailed section.
> Index: flashrom.c
> ===================================================================
> --- flashrom.c (revision 1657)
> +++ flashrom.c (working copy)
> @@ -308,6 +308,19 @@
> },
> #endif
>
> +#if CONFIG_PICKIT2_SPI == 1
> + {
> + .name = "pickit2_spi",
> + .type = OTHER,
> + /* FIXME */
> + .devs.note = "Microchip PICkit2\n",
> + .init = pickit2_spi_init,
> + .map_flash_region = fallback_map,
> + .unmap_flash_region = fallback_unmap,
> + .delay = internal_delay,
> + },
> +#endif
> +
> {0}, /* This entry corresponds to PROGRAMMER_INVALID. */
> };
>
> Index: pickit2_spi.c
> ===================================================================
> --- pickit2_spi.c (revision 0)
> +++ pickit2_spi.c (working copy)
> @@ -0,0 +1,519 @@
> +/*
> + * This file is part of the flashrom project.
> + *
> + * Copyright (C) 2010 Carl-Daniel Hailfinger
> + * Copyright (C) 2013 Justin Chevrier
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; version 2 of the License.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
Links to or citations of relevant documentation should go here (or the
to be written manpage section, if useful to users too), at least a
reference to avrdude should be given IMHO, but feel free to be as
verbose as the commit log.
> +#include <stdio.h>
> +#include <string.h>
> +#include <limits.h>
> +#include <errno.h>
> +#include <usb.h>
> +#include "flash.h"
> +#include "chipdrivers.h"
> +#include "programmer.h"
> +#include "spi.h"
> +
> +static usb_dev_handle *pickit2_handle;
> +
> +#define DEFAULT_TIMEOUT 10000
which unit? when is it used? etc.
> +
> +#define CMD_LENGTH 64
> +#define ENDPOINT_OUT 0x01
> +#define ENDPOINT_IN 0x81
> +
> +#define PICKIT2_VID 0x04D8
> +#define PICKIT2_PID 0x0033
> +
> +#define CMD_GET_VERSION 0x76
> +#define CMD_SET_VDD 0xA0
> +#define CMD_SET_VPP 0xA1
> +#define CMD_READ_VDD_VPP 0xA3
> +#define CMD_EXEC_SCRIPT 0xA6
> +#define CMD_CLR_DLOAD_BUFF 0xA7
> +#define CMD_DOWNLOAD_DATA 0xA8
> +#define CMD_CLR_ULOAD_BUFF 0xA9
> +#define CMD_UPLOAD_DATA 0xAA
> +#define CMD_END_OF_BUFFER 0xAD
> +
> +#define SCR_SPI_READ_BUF 0xC5
> +#define SCR_SPI_WRITE_BUF 0xC6
> +#define SCR_SET_AUX 0xCF
> +#define SCR_LOOP 0xE9
> +#define SCR_SET_ICSP_CLK_PERIOD 0xEA
> +#define SCR_SET_PINS 0xF3
> +#define SCR_BUSY_LED_OFF 0xF4
> +#define SCR_BUSY_LED_ON 0xF5
> +#define SCR_MCLR_GND_OFF 0xF6
> +#define SCR_MCLR_GND_ON 0xF7
> +#define SCR_VPP_PWM_OFF 0xF8
> +#define SCR_VPP_PWM_ON 0xF9
> +#define SCR_VPP_OFF 0xFA
> +#define SCR_VPP_ON 0xFB
> +#define SCR_VDD_OFF 0xFE
> +#define SCR_VDD_ON 0xFF
> +
> +/* Might be useful for other USB devices as well. static for now. */
We need to sort stuff like this out, but that's not your problem.
> +/* device parameter allows user to specify one device of multiple installed */
> +static struct usb_device *get_device_by_vid_pid(uint16_t vid, uint16_t pid, unsigned int device)
> +{
> + struct usb_bus *bus;
> + struct usb_device *dev;
> +
> + for (bus = usb_get_busses(); bus; bus = bus->next)
> + for (dev = bus->devices; dev; dev = dev->next)
> + if ((dev->descriptor.idVendor == vid) &&
> + (dev->descriptor.idProduct == pid)) {
> + if (device == 0)
> + return dev;
> + device--;
> + }
> +
> + return NULL;
> +}
> +
> +static int pickit2_get_firmware_version(void)
> +{
> + int ret;
> + unsigned char command[CMD_LENGTH] = {CMD_GET_VERSION, CMD_END_OF_BUFFER};
> +
> + ret = usb_interrupt_write(pickit2_handle, ENDPOINT_OUT, (char *)command, CMD_LENGTH, DEFAULT_TIMEOUT);
> + ret = usb_interrupt_read(pickit2_handle, ENDPOINT_IN, (char *)command, CMD_LENGTH, DEFAULT_TIMEOUT);
> +
> + msg_pdbg("PICkit2 Firmware Version: %d.%d\n", (int)command[0], (int)command[1]);
> + if (ret != CMD_LENGTH) {
> + msg_perr("Command Get Firmware Version failed (%s)!\n",
> + usb_strerror());
> + return 1;
> + }
> +
> + return 0;
> +}
> +
> +static int pickit2_set_spi_voltage(int millivolt)
> +{
> + int ret;
> + uint16_t voltage_selector;
> […]
> + voltage_selector = 1.8;
that would be in the best case some "creative" usage of floating point constants. ;)
> […]
> +
> + unsigned char command[CMD_LENGTH] = {
I personally favor uint8_t instead of unsigned chars...
> + CMD_SET_VDD,
> + (uint8_t)(voltage_selector * 2048+672),
... especially if you cast to them anyway :)
> + (uint8_t)((voltage_selector * 2048+672)/256),
We normally add spaces around all binary ops.
> + (uint8_t)(voltage_selector * 36),
> + CMD_SET_VPP,
> + 0x40,
> + (uint8_t)(voltage_selector * 18.61),
I am not sure I want to understand that protocol better, if this is correct. :)
> + (uint8_t)(voltage_selector * 13),
> + CMD_END_OF_BUFFER
> + };
> +
> + ret = usb_interrupt_write(pickit2_handle, ENDPOINT_OUT, (char *)command, CMD_LENGTH, DEFAULT_TIMEOUT);
> +
> + if (ret != CMD_LENGTH) {
> + msg_perr("Command Set Voltage failed (%s)!\n",
> + usb_strerror());
> + return 1;
> + }
> +
> + return 0;
> +}
> +
> +
> +struct pickit2_spispeeds {
> + const char *const name;
> + const int speed;
> +};
> +
> +static const struct pickit2_spispeeds spispeeds[] = {
> + { "1M", 0x1 },
> + { "500k", 0x2 },
> + { "333k", 0x3 },
> + { "250k", 0x4 },
> + { NULL, 0x0 },
> +};
> +
> +static int pickit2_set_spi_speed(unsigned int spispeed_idx)
> +{
> + int ret;
> +
> + msg_pdbg("SPI speed is %sHz\n", spispeeds[spispeed_idx].name);
> +
> + unsigned char command[CMD_LENGTH] = {
> + CMD_EXEC_SCRIPT,
> + 2,
> + SCR_SET_ICSP_CLK_PERIOD,
> + spispeed_idx,
> + CMD_END_OF_BUFFER
> + };
> +
> + ret = usb_interrupt_write(pickit2_handle, ENDPOINT_OUT, (char *)command, CMD_LENGTH, DEFAULT_TIMEOUT);
> +
> + if (ret != CMD_LENGTH) {
> + msg_perr("Command Set SPI Speed failed (%s)!\n",
> + usb_strerror());
> + return 1;
> + }
> +
> + return 0;
> +}
> +
> +static int pickit2_spi_send_command(struct flashctx *flash,
> + unsigned int writecnt,
> + unsigned int readcnt,
> + const unsigned char *writearr,
> + unsigned char *readarr)
> +{
> + int ret,i;
> +
> + unsigned char buf[CMD_LENGTH] = {CMD_DOWNLOAD_DATA, writecnt};
> +
> + /* Maximum number of bytes per transaction (including command overhead) is 64. Lets play it safe
> + * and always assume the worst case scenario of 20 bytes command overhead.
> + */
> + msg_pspew("%s, writecnt=%i, readcnt=%i\n", __func__, writecnt, readcnt);
> + if (writecnt + readcnt + 20 > CMD_LENGTH) {
> + msg_perr("\nTotal packetsize (%i) is greater than 64 supported, aborting.\n", writecnt + readcnt + 20);
> + return 1;
> + }
> +
> + for (i = 2; i < writecnt + 2; i++)
> + {
The curly brace should be at the end of the "for line" according to our style.
> + buf[i] = writearr[i - 2];
> + }
> +
> + buf[i++] = CMD_CLR_ULOAD_BUFF;
> + buf[i++] = CMD_EXEC_SCRIPT;
> +
> + /* Determine script length based on number of bytes to be read or written */
> + if (writecnt == 1 && readcnt == 1)
> + buf[i++] = 7;
> + else if (writecnt == 1 || readcnt == 1)
> + buf[i++] = 10;
> + else
> + buf[i++] = 13;
> +
> + /* Assert CS# */
> + buf[i++] = SCR_VPP_OFF;
> + buf[i++] = SCR_MCLR_GND_ON;
> +
> + buf[i++] = SCR_SPI_WRITE_BUF;
> +
> + if (writecnt > 1) {
> + buf[i++] = SCR_LOOP;
> + buf[i++] = 1; /* Loop back one instruction */
> + buf[i++] = writecnt - 1; /* Number of times to loop */
> + }
> +
> + if (readcnt)
> + buf[i++] = SCR_SPI_READ_BUF;
> +
> + if (readcnt > 1) {
> + buf[i++] = SCR_LOOP;
> + buf[i++] = 1; /* Loop back one instruction */
> + buf[i++] = readcnt - 1; /* Number of times to loop */
> + }
> +
> + /* De-assert CS# */
> + buf[i++] = SCR_MCLR_GND_OFF;
> + buf[i++] = SCR_VPP_PWM_ON;
> + buf[i++] = SCR_VPP_ON;
> +
> + buf[i++] = CMD_UPLOAD_DATA;
> + buf[i++] = CMD_END_OF_BUFFER;
> +
> + ret = usb_interrupt_write(pickit2_handle, ENDPOINT_OUT, (char *)buf, CMD_LENGTH, DEFAULT_TIMEOUT);
> +
> + if (ret != CMD_LENGTH) {
> + msg_perr("Send SPI failed, expected %i, got %i %s!\n",
> + writecnt, ret, usb_strerror());
> + return 1;
> + }
> +
> + if (readcnt) {
> + memset(readarr, 0, readcnt);
> + memset(buf, 0, sizeof(buf));
Is this really necessary?
> +
> + ret = usb_interrupt_read(pickit2_handle, ENDPOINT_IN, (char *)buf, CMD_LENGTH, DEFAULT_TIMEOUT);
> +
> + if (ret != CMD_LENGTH) {
> + msg_perr("Receive SPI failed, expected %i, got %i %s!\n",
> + readcnt, ret, usb_strerror());
> + return 1;
> + }
> +
> + /* First byte indicates number of bytes transferred from upload buffer */
> + if (buf[0] != readcnt) {
> + msg_perr("Unexpected number of bytes transferred, expected %i, got %i!\n",
> + readcnt, ret);
> + return 1;
> + }
> +
> + /* Actual data starts at byte number two */
> + memcpy(readarr, &buf[1], readcnt);
> + }
> +
> + return 0;
> +}
> +
This is a candidate for a ultity "class" too, please add the "might be useful" comment here too:
/* Might be useful for other USB devices as well. static for now. */
And maybe add a reference to dediprog (and likewise for other copied
functions) so that we know immediately that they have been copied.
> +static int parse_voltage(char *voltage)
> +{
> + char *tmp = NULL;
> + int i;
> + int millivolt = 0, fraction = 0;
> +
> + if (!voltage || !strlen(voltage)) {
> + msg_perr("Empty voltage= specified.\n");
> + return -1;
> + }
> + millivolt = (int)strtol(voltage, &tmp, 0);
> + voltage = tmp;
> + /* Handle "," and "." as decimal point. Everything after it is assumed
> + * to be in decimal notation.
> + */
> + if ((*voltage == '.') || (*voltage == ',')) {
> + voltage++;
> + for (i = 0; i < 3; i++) {
> + fraction *= 10;
> + /* Don't advance if the current character is invalid,
> + * but continue multiplying.
> + */
> + if ((*voltage < '0') || (*voltage > '9'))
> + continue;
> + fraction += *voltage - '0';
> + voltage++;
> + }
> + /* Throw away remaining digits. */
> + voltage += strspn(voltage, "0123456789");
> + }
> + /* The remaining string must be empty or "mV" or "V". */
> + tolower_string(voltage);
> +
> + /* No unit or "V". */
> + if ((*voltage == '\0') || !strncmp(voltage, "v", 1)) {
> + millivolt *= 1000;
> + millivolt += fraction;
> + } else if (!strncmp(voltage, "mv", 2) ||
> + !strncmp(voltage, "milliv", 6)) {
> + /* No adjustment. fraction is discarded. */
> + } else {
> + /* Garbage at the end of the string. */
> + msg_perr("Garbage voltage= specified.\n");
> + return -1;
> + }
> + return millivolt;
> +}
> +
I think this function can be inlined without disadvantages. The comment
is clear enough.
OTOH it might be worth it if you can generify a pickit2_teardown or
similar (the code in the shutdown function).
> +static int pickit2_setup(void)
> +{
> + int ret;
> + /* Configure pins for correct directions and logic levels,
> + * turn Vdd on, turn busy LED on and clear buffers
> + */
> + unsigned char buf[CMD_LENGTH] = {
> + CMD_EXEC_SCRIPT,
> + 10, /* Script length */
> + SCR_SET_PINS,
> + /* Bit-0=0(PDC Out), Bit-1=1(PGD In), Bit-2=0(PDC LL), Bit-3=0(PGD LL) */
> + 2,
> + SCR_SET_AUX,
> + /* Bit-0=0(Aux Out), Bit-1=0(Aux LL) */
> + 0,
> + SCR_VDD_ON,
> + SCR_MCLR_GND_OFF, /* Let CS# float */
> + SCR_VPP_PWM_ON,
> + SCR_VPP_ON, /* Pull CS# high */
> + SCR_BUSY_LED_ON,
> + CMD_CLR_DLOAD_BUFF,
> + CMD_CLR_ULOAD_BUFF,
> + CMD_END_OF_BUFFER
> + };
> +
> + ret = usb_interrupt_write(pickit2_handle, ENDPOINT_OUT, (char *)buf, CMD_LENGTH, DEFAULT_TIMEOUT);
> +
> + if (ret != CMD_LENGTH) {
> + msg_perr("Command Setup failed (%s)!\n",
> + usb_strerror());
> + return 1;
> + }
> +
> + return 0;
> +}
> +
> +[…]
> +
> +static int pickit2_shutdown(void *data)
> +{
> + int ret;
> + msg_pspew("%s\n", __func__);
> +
> + /* Set all pins to float and turn voltages off */
> + unsigned char command[CMD_LENGTH] = {
> + CMD_EXEC_SCRIPT,
> + 8,
> + SCR_SET_PINS,
> + /* Bit-0=1(PDC In), Bit-1=1(PGD In), Bit-2=0(PDC LL), Bit-3=0(PGD LL) */
> + 3,
> + SCR_SET_AUX,
> + /* Bit-0=1(Aux In), Bit-1=0(Aux LL) */
> + 1,
> + SCR_MCLR_GND_OFF,
> + SCR_VPP_OFF,
> + SCR_VDD_OFF,
> + SCR_BUSY_LED_OFF,
> + CMD_END_OF_BUFFER
> + };
> +
> + ret = usb_interrupt_write(pickit2_handle, ENDPOINT_OUT, (char *)command, CMD_LENGTH, DEFAULT_TIMEOUT);
> +
> + if (ret != CMD_LENGTH) {
> + msg_perr("Command Shutdown failed (%s)!\n",
> + usb_strerror());
> + return 1;
> + }
> +
> + if (usb_release_interface(pickit2_handle, 0)) {
> + msg_perr("Could not release USB interface!\n");
> + return 1;
> + }
> + if (usb_close(pickit2_handle)) {
> + msg_perr("Could not close USB device!\n");
> + return 1;
> + }
> + return 0;
> […]
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
3
2
Hello, I was trying to read out the flashrom from a Supermicro X10SLM-F
and found it wasn't supported. So I compiled the latest svn HEAD and
tried it with the -Vr option so I could send it to you.
Unfortunately, I can only test the read option on this server, as it is
a production machine.
Please let me know if there is any additional information I can provide.
Thank you!
micah
flashrom -Vr bios --programmer internal
flashrom v0.9.5.2-r1546 on Linux 3.10-1-amd64 (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.1.7, GCC 4.6.2, little endian
Command line (4 args): flashrom -Vr bios --programmer internal
Calibrating delay loop... OS timer resolution is 1 usecs, 3560M loops per second, 10 myus = 10 us, 100 myus = 102 us, 1000 myus = 1008 us, 10000 myus = 9703 us, 4 myus = 5 us, OK.
Initializing internal programmer
No coreboot table found.
DMI string system-manufacturer: "Supermicro"
DMI string system-product-name: "X10SLM-F"
DMI string system-version: "0123456789"
DMI string baseboard-manufacturer: "Supermicro"
DMI string baseboard-product-name: "X10SLM-F"
DMI string baseboard-version: "0123456789"
DMI string chassis-type: "Main Server Chassis"
Found chipset "Intel Lynx Point" with PCI ID 8086:8c54.
This chipset is marked as untested. If you are using an up-to-date version
of flashrom *and* were (not) able to successfully update your firmware with it,
then please email a report to flashrom(a)flashrom.org including a verbose (-V) log.
Thank you!
Enabling flash write... enable_flash_ich_dc_spi: unknown ICH generation. Please report!
0xfff80000/0xffb80000 FWH IDSEL: 0x0
0xfff00000/0xffb00000 FWH IDSEL: 0x0
0xffe80000/0xffa80000 FWH IDSEL: 0x1
0xffe00000/0xffa00000 FWH IDSEL: 0x1
0xffd80000/0xff980000 FWH IDSEL: 0x2
0xffd00000/0xff900000 FWH IDSEL: 0x2
0xffc80000/0xff880000 FWH IDSEL: 0x3
0xffc00000/0xff800000 FWH IDSEL: 0x3
0xff700000/0xff300000 FWH IDSEL: 0x4
0xff600000/0xff200000 FWH IDSEL: 0x5
0xff500000/0xff100000 FWH IDSEL: 0x6
0xff400000/0xff000000 FWH IDSEL: 0x7
0xfff80000/0xffb80000 FWH decode enabled
0xfff00000/0xffb00000 FWH decode enabled
0xffe80000/0xffa80000 FWH decode enabled
0xffe00000/0xffa00000 FWH decode enabled
0xffd80000/0xff980000 FWH decode enabled
0xffd00000/0xff900000 FWH decode enabled
0xffc80000/0xff880000 FWH decode enabled
0xffc00000/0xff800000 FWH decode enabled
0xff700000/0xff300000 FWH decode enabled
0xff600000/0xff200000 FWH decode enabled
0xff500000/0xff100000 FWH decode enabled
0xff400000/0xff000000 FWH decode enabled
Maximum FWH chip size: 0x100000 bytes
BIOS Lock Enable: enabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x2a
WARNING: BIOS region SMM protection is enabled!
WARNING: Setting 0xdc from 0x2a to 0x2b on Lynx Point failed. New value is 0x2a.
Root Complex Register Block address = 0xfed1c000
GCS = 0xc61: BIOS Interface Lock-Down: enabled, Boot BIOS Straps: 0x3 (unknown)
Top Swap : not enabled
SPIBAR = 0xfed1c000 + 0x3800
0x04: 0xf008 (HSFS)
HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=1
WARNING: SPI Configuration Lockdown activated.
Reading OPCODES... done
0x06: 0x0000 (HSFC)
HSFC: FGO=0, FCYCLE=0, FDBC=0, SME=0
0x08: 0x00020000 (FADDR)
0x50: 0x00005a5b (FRAP)
BMWAG 0x00, BMRAG 0x00, BRWA 0x5a, BRRA 0x5b
0x54: 0x000f0000 FREG0: WARNING: Flash Descriptor region (0x00000000-0x0000ffff) is read-only.
0x58: 0x0fff0500 FREG1: BIOS region (0x00500000-0x00ffffff) is read-write.
0x5C: 0x04ff0020 FREG2: WARNING: Management Engine region (0x00020000-0x004fffff) is locked.
0x60: 0x001f0010 FREG3: Gigabit Ethernet region (0x00010000-0x0001ffff) is read-write.
Please send a verbose log to flashrom(a)flashrom.org if this board is not listed on
http://flashrom.org/Supported_hardware#Supported_mainboards yet.
Writes have been disabled. You can enforce write support with the
ich_spi_force programmer option, but it will most likely harm your hardware!
If you force flashrom you will get no support if something breaks.
0x90: 0x84 (SSFS)
SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0
0x91: 0xf90000 (SSFC)
SSFC: SCGO=0, ACS=0, SPOP=0, COP=0, DBC=0, SME=0, SCF=1
0x94: 0x0006 (PREOP)
0x96: 0x043b (OPTYPE)
0x98: 0x05200302 (OPMENU)
0x9C: 0x0000019f (OPMENU+4)
0xA0: 0x00000000 (BBAR)
0xC4: 0x80802025 (LVSCC)
LVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=1
0xC8: 0x00002025 (UVSCC)
UVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0
0xD0: 0x50444653 (FPB)
SPI Read Configuration: prefetching enabled, caching enabled, PROBLEMS, continuing anyway
The following protocols are supported: FWH, SPI.
Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DF641(A), 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon EN25QH32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for GigaDevice GD25Q20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for GigaDevice GD25Q40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for GigaDevice GD25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for GigaDevice GD25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for GigaDevice GD25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for GigaDevice GD25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for GigaDevice GD25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Numonyx N25Q064, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for SST SST25LF040A, 512 kB: Invalid OPCODE 0xab, will not execute.
Probing for SST SST25LF080A, 1024 kB: Invalid OPCODE 0xab, will not execute.
Probing for SST SST25VF010, 128 kB: Invalid OPCODE 0x90, will not execute.
Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for SST SST25VF040, 512 kB: Invalid OPCODE 0x90, will not execute.
Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for SST SST25VF040B.REMS, 512 kB: Invalid OPCODE 0x90, will not execute.
Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P05, 64 kB: Ignoring RES in favour of RDID.
Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P10, 128 kB: Ignoring RES in favour of RDID.
Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID.
Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Chip status register is 00
Found Winbond flash chip "W25Q128" (16384 kB, SPI) at physical address 0xff000000.
Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Unknown SFDP-capable chip, 0 kB: Invalid OPCODE 0x5a, will not execute.
Receiving SFDP signature failed.
Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xef, id2 0x4018
Probing for Generic unknown SPI chip (REMS), 0 kB: Invalid OPCODE 0x90, will not execute.
Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0xf9, id2 0x3f, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for SST SST49LF016C, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0x0f, id2 0xb6, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW016, 2048 kB: Chip size 2048 kB is bigger than supported size 1024 kB of chipset/board/programmer for FWH interface, probe/read/erase/write may fail. probe_82802ab: id1 0x0f, id2 0xb6, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0xea, id2 0xd0, id1 is normal flash content, id2 is normal flash content
Found Winbond flash chip "W25Q128" (16384 kB, SPI).
This chip may contain one-time programmable memory. flashrom cannot read
and may never be able to write it, hence it may not be able to completely
clone the contents of this chip (see man page for details).
===
This flash part has status UNTESTED for operations: READ ERASE WRITE
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom(a)flashrom.org if any of the above operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -Vr,
-VE, -Vw), and mention which mainboard or programmer you tested.
Please mention your board in the subject line. Thanks for your help!
Reading flash... Transaction error!
SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0
SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=1
Running OPCODE 0x03 failed at address 0x020000 (payload length was 64).
Read operation failed!
FAILED.
Restoring MMIO space at 0x7f77f10a08a0
Restoring PCI config space for 00:1f:0 reg 0xdc
2
1
April 29, 2014
Hi Iain,
your Intel 82540EM which hangs on a flashrom run should spew "Timeout!"
messages with this patch. It would be nice if you could tell us how long
it waits for each chip probe so I can adjust the timeout value.
Please note that this patch will _not_ fix the underlying issue, but I
believe that an endless loop on possibly broken hardware is worse than
aborting.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006(a)gmx.net>
Index: flashrom-bitbang_timeout/flash.h
===================================================================
--- flashrom-bitbang_timeout/flash.h (Revision 1185)
+++ flashrom-bitbang_timeout/flash.h (Arbeitskopie)
@@ -35,6 +35,9 @@
#define ERROR_PTR ((void*)-1)
+/* Error codes */
+#define TIMEOUT_ERROR -101
+
typedef unsigned long chipaddr;
int register_shutdown(void (*function) (void *data), void *data);
Index: flashrom-bitbang_timeout/bitbang_spi.c
===================================================================
--- flashrom-bitbang_timeout/bitbang_spi.c (Revision 1185)
+++ flashrom-bitbang_timeout/bitbang_spi.c (Arbeitskopie)
@@ -53,10 +53,11 @@
return bitbang_spi_master->get_miso();
}
-static void bitbang_spi_request_bus(void)
+static int bitbang_spi_request_bus(void)
{
if (bitbang_spi_master->request_bus)
- bitbang_spi_master->request_bus();
+ return bitbang_spi_master->request_bus();
+ return 0;
}
static void bitbang_spi_release_bus(void)
@@ -86,7 +87,7 @@
bitbang_spi_master = master;
bitbang_spi_half_period = halfperiod;
- /* FIXME: Run bitbang_spi_request_bus here or in programmer init? */
+ /* FIXME: Run bitbang_spi_request_bus here or per command? */
bitbang_spi_set_cs(1);
bitbang_spi_set_sck(0);
bitbang_spi_set_mosi(0);
@@ -131,13 +132,15 @@
int bitbang_spi_send_command(unsigned int writecnt, unsigned int readcnt,
const unsigned char *writearr, unsigned char *readarr)
{
- int i;
+ int i, ret;
/* FIXME: Run bitbang_spi_request_bus here or in programmer init?
* Requesting and releasing the SPI bus is handled in here to allow the
* programmer to use its own SPI engine for native accesses.
*/
- bitbang_spi_request_bus();
+ ret = bitbang_spi_request_bus();
+ if (ret)
+ return ret;
bitbang_spi_set_cs(0);
for (i = 0; i < writecnt; i++)
bitbang_spi_readwrite_byte(writearr[i]);
Index: flashrom-bitbang_timeout/nicintel_spi.c
===================================================================
--- flashrom-bitbang_timeout/nicintel_spi.c (Revision 1185)
+++ flashrom-bitbang_timeout/nicintel_spi.c (Arbeitskopie)
@@ -58,6 +58,8 @@
// #define FL_BUSY 30
// #define FL_ER 31
+#define MAX_REQUEST_LOOPS 10000
+
uint8_t *nicintel_spibar;
const struct pcidev_status nics_intel_spi[] = {
@@ -68,16 +70,27 @@
{},
};
-static void nicintel_request_spibus(void)
+static void nicintel_release_spibus(void);
+
+static int nicintel_request_spibus(void)
{
uint32_t tmp;
+ int i = 0;
tmp = pci_mmio_readl(nicintel_spibar + FLA);
tmp |= 1 << FL_REQ;
pci_mmio_writel(tmp, nicintel_spibar + FLA);
/* Wait until we are allowed to use the SPI bus. */
- while (!(pci_mmio_readl(nicintel_spibar + FLA) & (1 << FL_GNT))) ;
+ while (!(pci_mmio_readl(nicintel_spibar + FLA) & (1 << FL_GNT))) {
+ if (i++ > MAX_REQUEST_LOOPS) {
+ nicintel_release_spibus();
+ msg_perr("%s: Timeout! Aborting.\n", __func__);
+ return TIMEOUT_ERROR;
+ }
+ }
+
+ return 0;
}
static void nicintel_release_spibus(void)
Index: flashrom-bitbang_timeout/mcp6x_spi.c
===================================================================
--- flashrom-bitbang_timeout/mcp6x_spi.c (Revision 1185)
+++ flashrom-bitbang_timeout/mcp6x_spi.c (Arbeitskopie)
@@ -40,22 +40,37 @@
#define MCP6X_SPI_REQUEST 0
#define MCP6X_SPI_GRANT 8
+#define MAX_REQUEST_LOOPS 10000
+
void *mcp6x_spibar = NULL;
/* Cached value of last GPIO state. */
static uint8_t mcp_gpiostate;
-static void mcp6x_request_spibus(void)
+static void mcp6x_release_spibus(void);
+
+static int mcp6x_request_spibus(void)
{
+ int i = 0;
+
mcp_gpiostate = mmio_readb(mcp6x_spibar + 0x530);
mcp_gpiostate |= 1 << MCP6X_SPI_REQUEST;
mmio_writeb(mcp_gpiostate, mcp6x_spibar + 0x530);
/* Wait until we are allowed to use the SPI bus. */
- while (!(mmio_readw(mcp6x_spibar + 0x530) & (1 << MCP6X_SPI_GRANT))) ;
+ while (!(mmio_readw(mcp6x_spibar + 0x530) & (1 << MCP6X_SPI_GRANT))) {
+ if (i++ > MAX_REQUEST_LOOPS) {
+ /* Update the cache. */
+ mcp_gpiostate = mmio_readb(mcp6x_spibar + 0x530);
+ mcp6x_release_spibus();
+ msg_perr("%s: Timeout! Aborting.\n", __func__);
+ return TIMEOUT_ERROR;
+ }
+ }
/* Update the cache. */
mcp_gpiostate = mmio_readb(mcp6x_spibar + 0x530);
+ return 0;
}
static void mcp6x_release_spibus(void)
Index: flashrom-bitbang_timeout/programmer.h
===================================================================
--- flashrom-bitbang_timeout/programmer.h (Revision 1185)
+++ flashrom-bitbang_timeout/programmer.h (Arbeitskopie)
@@ -131,7 +131,7 @@
void (*set_sck) (int val);
void (*set_mosi) (int val);
int (*get_miso) (void);
- void (*request_bus) (void);
+ int (*request_bus) (void);
void (*release_bus) (void);
};
--
http://www.hailfinger.org/
4
15