[flashrom] Varification trouble - flashrom v0.9.9-r1954, Intel I210 NIC over SPI, Microchip SST25VF040B

Lamont Dean lamont.dean at imsar.com
Thu Dec 14 00:32:24 CET 2017


I've checked voltages on write protect and hold pins and searched through
the code hoping for some extra bit of insight.  I've now changed to the
Microchip SST26VF016B flash chip that I wanted originally and have added
the part to the flashrom flashchips.h and .c. Flashrom now recognizes the
SST26VF016B flash chip and tries to program it but can't verify the code.
The SST26VF016B doesn't have the block protection that the others do and
programs once the write enable command is sent.  Flashrom looks like its
sending the right enable code so I'm not sure what's going on.

Thanks,

LaMont

... flashrom> sudo flashrom -VVVV -p nicintel_spi:pci=01:00.0 -w
Dev_Start_I210_Copper_MCTP_16Mb_A2_3.25_0.03.bin
flashrom v0.9.9-r1954 on Linux 4.4.38-tegra (aarch64)
flashrom is free software, get the source code at https://flashrom.org

flashrom was built with libpci 3.3.1, GCC 5.4.0 20160609, little endian
Command line (5 args): flashrom -VVVV -p nicintel_spi:pci=01:00.0 -w
Dev_Start_I210_Copper_MCTP_16Mb_A2_3.25_0.03.bin
Calibrating delay loop... OS timer resolution is 1 usecs, 2524M loops per
second, 10 myus = 16 us, 100 myus = 106 us, 1000 myus = 1000 us, 10000 myus
= 9988 us, 4 myus = 12 us, OK.
Initializing nicintel_spi programmer
Found "Intel Unprogrammed i210 Gigabit Ethernet Controller" (8086:1531, BDF
01:00.0).
===
This PCI device is UNTESTED. Please report the 'flashrom -p xxxx' output
to flashrom at flashrom.org if it works for you. Please add the name of your
PCI device to the subject. Thank you for your help!
===
PCI header type 0x00
Requested BAR is of type MEM, 32bit, not prefetchable
PCI header type 0x00
Requested BAR is of type MEM, 32bit, not prefetchable
page_size=1000
pre-rounding:  start=0x0000000050800000, len=0x1000, end=0x0000000050801000
post-rounding: start=0x0000000050800000, len=0x1000, end=0x0000000050801000
The following protocols are supported: SPI.
Probing for AMIC A25L05PT, 64 kB: programmer_map_flash_region: mapping
A25L05PT from 0x00000000ffff0000 to 0x0000000000000000
RDID returned 0xbf 0x26 0x41 0xbf. probe_spi_rdid_generic: id1 0xbf, id2
0x2641
...
"depreciated"
...
Probing for Generic unknown SPI chip (REMS), 0 kB: REMS returned 0xff 0xff.
probe_spi_rems: id1 0xff, id2 0xff
Found SST flash chip "SST26VF016B" (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 at flashrom.org if any of the above
operations
work correctly for you with this flash chip. Please include the flashrom log
file for all operations you tested (see the man page for details), and
mention
which mainboard or programmer you tested in the subject line.
Thanks for your help!
programmer_map_flash_region: mapping SST26VF016B from 0x00000000ffe00000 to
0x0000000000000000
Block protection is disabled.
Reading old flash chip contents... done.
Erasing and writing flash chip... Trying erase function 0...
0x000000-0x000fff:W, 0x001000-0x001fff:S, 0x002000-0x002fff:S,
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,
...
"depreciated"
...
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
Erase/write done.
Verifying flash... FAILED at 0x00000000! Expected=0x00, Found=0xff, failed
byte count from 0x00000000-0x001fffff: 0x352ba
Your flash chip is in an unknown state.
Please report this on IRC at chat.freenode.net (channel #flashrom) or
mail flashrom at flashrom.org, thanks!
programmer_unmap_flash_region: unmapped 0x0000000000000000


On Tue, Dec 12, 2017 at 11:07 AM, Lamont Dean <lamont.dean at imsar.com> wrote:

> Okay, I'm seeing it better now and it isn't removing the block protection.
>
> On Tue, Dec 12, 2017 at 10:23 AM, Lamont Dean <lamont.dean at imsar.com>
> wrote:
>
>> Hello,
>>
>> Flashrom can find the Intel I210 NIC SPI connected to the SST25VF040B
>> flash chip and seems to program but fails to verify and gave me this email
>> to write to about it.  The output is included below.  Before and after a
>> power cycle the Intel I210 still says its in its unprogrammed state.
>>
>> I'd like to program a Microchip SST26VF016B flash in place of the
>> ...25VF040... but its not on the list so I'm going through the comments I
>> found on the wedsite Design Guide
>> <https://www.flashrom.org/Development_Guidelines>.  I'm new to Linux and
>> things so we'll see how it goes.
>>
>> Any help you can offer would be greatly appreciated.
>>
>> Thanks,
>>
>> LaMont Dean
>> Hardware Engineer
>> ImSAR, LLC.
>>
>> ...flashrom> sudo flashrom -VVVV -p nicintel_spi:pci=01:00.0 -c
>> SST25VF040B -w Dev_Start_I210_Copper_NOMNG_4Mb_A2_3.25_0.03.bin
>> flashrom v0.9.9-r1954 on Linux 4.4.38-tegra (aarch64)
>> flashrom is free software, get the source code at https://flashrom.org
>>
>> flashrom was built with libpci 3.3.1, GCC 5.4.0 20160609, little endian
>> Command line (7 args): flashrom -VVVV -p nicintel_spi:pci=01:00.0 -c
>> SST25VF040B -w Dev_Start_I210_Copper_NOMNG_4Mb_A2_3.25_0.03.bin
>> Calibrating delay loop... OS timer resolution is 1 usecs, 2531M loops per
>> second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 1001 us, 10000 myus
>> = 10022 us, 4 myus = 4 us, OK.
>> Initializing nicintel_spi programmer
>> Found "Intel Unprogrammed i210 Gigabit Ethernet Controller" (8086:1531,
>> BDF 01:00.0).
>> ===
>> This PCI device is UNTESTED. Please report the 'flashrom -p xxxx' output
>> to flashrom at flashrom.org if it works for you. Please add the name of your
>> PCI device to the subject. Thank you for your help!
>> ===
>> PCI header type 0x00
>> Requested BAR is of type MEM, 32bit, not prefetchable
>> PCI header type 0x00
>> Requested BAR is of type MEM, 32bit, not prefetchable
>> page_size=1000
>> pre-rounding:  start=0x0000000050800000, len=0x1000,
>> end=0x0000000050801000
>> post-rounding: start=0x0000000050800000, len=0x1000,
>> end=0x0000000050801000
>> The following protocols are supported: SPI.
>> Probing for SST SST25VF040B, 512 kB: programmer_map_flash_region: mapping
>> SST25VF040B from 0x00000000fff80000 to 0x0000000000000000
>> RDID returned 0xbf 0x25 0x8d. probe_spi_rdid_generic: id1 0xbf, id2 0x258d
>> Found SST flash chip "SST25VF040B" (512 kB, SPI) on nicintel_spi.
>> Chip status register is 0x1c.
>> Chip status register: Block Protect Write Disable (BPL) is not set
>> Chip status register: Auto Address Increment Programming (AAI) is not set
>> Chip status register: Block Protect 3 (BP3) is not set
>> Chip status register: Block Protect 2 (BP2) is set
>> Chip status register: Block Protect 1 (BP1) is set
>> Chip status register: Block Protect 0 (BP0) is set
>> Chip status register: Write Enable Latch (WEL) is not set
>> Chip status register: Write In Progress (WIP/BUSY) is not set
>> Resulting block protection : all blocks
>> programmer_unmap_flash_region: unmapped 0x0000000000000000
>> programmer_map_flash_region: mapping SST25VF040B from 0x00000000fff80000
>> to 0x0000000000000000
>> Some block protection in effect, disabling... Block protection could not
>> be disabled!
>> Chip status register is 0x1c.
>> Chip status register: Block Protect Write Disable (BPL) is not set
>> Chip status register: Auto Address Increment Programming (AAI) is not set
>> Chip status register: Block Protect 3 (BP3) is not set
>> Chip status register: Block Protect 2 (BP2) is set
>> Chip status register: Block Protect 1 (BP1) is set
>> Chip status register: Block Protect 0 (BP0) is set
>> Chip status register: Write Enable Latch (WEL) is not set
>> Chip status register: Write In Progress (WIP/BUSY) is not set
>> Resulting block protection : all blocks
>> Reading old flash chip contents... done.
>> Erasing and writing flash chip... Trying erase function 0...
>> 0x000000-0x000fff:W, 0x001000-0x001fff:S, 0x002000-0x002fff:W,
>> 0x003000-0x003fff:W, 0x004000-0x004fff:W, 0x005000-0x005fff:W,
>> 0x006000-0x006fff:W, 0x007000-0x007fff:W, 0x008000-0x008fff:W,
>> 0x009000-0x009fff:W, 0x00a000-0x00afff:W, 0x00b000-0x00bfff:W,
>> 0x00c000-0x00cfff:W, 0x00d000-0x00dfff:W, 0x00e000-0x00efff:W,
>> 0x00f000-0x00ffff:W, 0x010000-0x010fff:W, 0x011000-0x011fff:W,
>> 0x012000-0x012fff:W, 0x013000-0x013fff:W, 0x014000-0x014fff:W,
>> 0x015000-0x015fff:W, 0x016000-0x016fff:W, 0x017000-0x017fff:W,
>> 0x018000-0x018fff:W, 0x019000-0x019fff:W, 0x01a000-0x01afff:W,
>> 0x01b000-0x01bfff:W, 0x01c000-0x01cfff:W, 0x01d000-0x01dfff:W,
>> 0x01e000-0x01efff:W, 0x01f000-0x01ffff:W, 0x020000-0x020fff:W,
>> 0x021000-0x021fff:W, 0x022000-0x022fff:W, 0x023000-0x023fff:W,
>> 0x024000-0x024fff:W, 0x025000-0x025fff:W, 0x026000-0x026fff:W,
>> 0x027000-0x027fff:W, 0x028000-0x028fff:W, 0x029000-0x029fff:W,
>> 0x02a000-0x02afff:W, 0x02b000-0x02bfff:W, 0x02c000-0x02cfff:W,
>> 0x02d000-0x02dfff:W, 0x02e000-0x02efff:W, 0x02f000-0x02ffff:W,
>> 0x030000-0x030fff:W, 0x031000-0x031fff:W, 0x032000-0x032fff:W,
>> 0x033000-0x033fff:W, 0x034000-0x034fff:W, 0x035000-0x035fff:W,
>> 0x036000-0x036fff:W, 0x037000-0x037fff:W, 0x038000-0x038fff:S,
>> 0x039000-0x039fff:S, 0x03a000-0x03afff:S, 0x03b000-0x03bfff:S,
>> 0x03c000-0x03cfff:W, 0x03d000-0x03dfff:W, 0x03e000-0x03efff:W,
>> 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
>> Erase/write done.
>> Verifying flash... FAILED at 0x00000000! Expected=0x00, Found=0xff,
>> failed byte count from 0x00000000-0x0007ffff: 0x3527c
>> Your flash chip is in an unknown state.
>> Please report this on IRC at chat.freenode.net (channel #flashrom) or
>> mail flashrom at flashrom.org, thanks!
>> programmer_unmap_flash_region: unmapped 0x0000000000000000
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/flashrom/attachments/20171213/70d4b15a/attachment-0001.html>


More information about the flashrom mailing list