[flashrom] issue with Micron N25Q128

Shih-Chieh Huang shih-chieh.huang at ericsson.com
Fri May 2 22:42:47 CEST 2014


Stefan,

Thank you for helping me on this. We disable the security from AMI BIOS temporary to walk around this. In the future, we will need to re-enable the security feature. I was wondering if flashrom has plan to support such feature.  Thanks.

Regards,
Cliff


-----Original Message-----
From: Stefan Tauner [mailto:stefan.tauner at alumni.tuwien.ac.at] 
Sent: Friday, May 02, 2014 12:02 PM
To: Shih-Chieh Huang
Cc: flashrom at flashrom.org; Vincent Wang K
Subject: Re: [flashrom] issue with Micron N25Q128

On Tue, 3 Dec 2013 18:59:08 +0000
Shih-Chieh Huang <shih-chieh.huang at ericsson.com> wrote:

> Hi,
> 
> I am having problem programing N25Q128 using flashrom0.9.7.  I got  the following errors from erasing  address at 0x83f000. I have tried different boards and they failed at the same locations.  There are three versions of N25Q128, uniform, top, and bottom. Only the 8 first/last sectors of top/bottom version supports subsector erase. But, from N25Q128 configuration in flashchip.c, it first tries SSE (0x20) for the entire chip. Could  it be the problem? Is there a fix for this? Thank you very much.
> 
> 
> Found Micron/Numonyx/ST flash chip "N25Q128..3E" (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).
> Block protection is disabled.
> 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.....   <skip some subsector erase messages..... > 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-0x7a0 (payload length was 64).
> 
> spi_nbyte_program failed during command execution at address 0x83f000 
> Reading current flash chip contents... done. Looking for another erase function.
> Trying erase function 1... 0x000000-0x00ffff:S, 0x010000-0x01ffff:S, 0x020000-0x02ffff:S, 0x030000-0x03ffff:S, 0x040000-0x04ffff:S, 0x050000-0x05ffff:S, 0x060000-0x06ffff:S, 0x070000-0x07ffff:S, 0x080000-0x08ffff:S, 0x090000-0x09ffff:S, 0x0a0000-0x0affff:S, 0x0b0000-0x0bffff:S, 0x0c0000-0x0cffff:S, 0x0d0000-0x0dffff:S, 0x0e0000-0x0effff:S, 0x0f0000-0x0fffff:S, 0x100000-0x10ffff:S, 0x110000-0x11ffff:S, 0x120000-0x12ffff:S, 0x130000-0x13ffff:S, 0x140000-0x14ffff:S, 0x150000-0x15ffff:S, 0x160000-0x16ffff:S, 0x170000-0x17ffff:S, 0x180000-0x18ffff:S, 0x190000-0x19ffff:S, 0x1a0000-0x1affff:S, 0x1b0000-0x1bffff:S, 0x1c0000-0x1cffff:S, 0x1d0000-0x1dffff:S, 0x1e0000-0x1effff:S, 0x1f0000-0x1fffff:S, 0x200000-0x20ffff:S, 0x210000-0x21ffff:S, 0x220000-0x22ffff:S, 0x230000-0x23ffff:S, 0x240000-0x24ffff:S, 0x250000-0x25ffff:S, 0x260000-0x26ffff:S, 0x270000-0x27ffff:S, 0x280000-0x28ffff:S, 0x290000-0x29ffff:S, 0x2a0000-0x2affff:S, 0x2b0000-0x2bffff:S, 0x2c0000-0x2cffff:S, 0x2d0000-0x2dffff:S, 0x2e0000-0x2effff:S, 0x2f0000-0x2fffff:S, 0x300000-0x30ffff:S, 0x310000-0x31ffff:S, 0x320000-0x32ffff:S, 0x330000-0x33ffff:S, 0x340000-0x34ffff:S, 0x350000-0x35ffff:S, 0x360000-0x36ffff:S, 0x370000-0x37ffff:S, 0x380000-0x38ffff:S, 0x390000-0x39ffff:S, 0x3a0000-0x3affff:S, 0x3b0000-0x3bffff:S, 0x3c0000-0x3cffff:S, 0x3d0000-0x3dffff:S, 0x3e0000-0x3effff:S, 0x3f0000-0x3fffff:S, 0x400000-0x40ffff:S, 0x410000-0x41ffff:S, 0x420000-0x42ffff:S, 0x430000-0x43ffff:S, 0x440000-0x44ffff:S, 0x450000-0x45ffff:S, 0x460000-0x46ffff:S, 0x470000-0x47ffff:S, 0x480000-0x48ffff:S, 0x490000-0x49ffff:S, 0x4a0000-0x4affff:S, 0x4b0000-0x4bffff:S, 0x4c0000-0x4cffff:S, 0x4d0000-0x4dffff:S, 0x4e0000-0x4effff:S, 0x4f0000-0x4fffff:S, 0x500000-0x50ffff:S, 0x510000-0x51ffff:S, 0x520000-0x52ffff:S, 0x530000-0x53ffff:S, 0x540000-0x54ffff:S, 0x550000-0x55ffff:S, 0x560000-0x56ffff:S, 0x570000-0x57ffff:S, 0x580000-0x58ffff:S, 0x590000-0x59ffff:S, 0x5a0000-0x5affff:S, 0x5b0000-0x5bffff:S, 0x5c0000-0x5cffff:S, 0x5d0000-0x5dffff:S, 0x5e0000-0x5effff:S, 0x5f0000-0x5fffff:S, 0x600000-0x60ffff:S, 0x610000-0x61ffff:S, 0x620000-0x62ffff:S, 0x630000-0x63ffff:S, 0x640000-0x64ffff:S, 0x650000-0x65ffff:S, 0x660000-0x66ffff:S, 0x670000-0x67ffff:S, 0x680000-0x68ffff:S, 0x690000-0x69ffff:S, 0x6a0000-0x6affff:S, 0x6b0000-0x6bffff:S, 0x6c0000-0x6cffff:S, 0x6d0000-0x6dffff:S, 0x6e0000-0x6effff:S, 0x6f0000-0x6fffff:S, 0x700000-0x70ffff:S, 0x710000-0x71ffff:S, 0x720000-0x72ffff:S, 0x730000-0x73ffff:S, 0x740000-0x74ffff:S, 0x750000-0x75ffff:S, 0x760000-0x76ffff:S, 0x770000-0x77ffff:S, 0x780000-0x78ffff:S, 0x790000-0x79ffff:S, 0x7a0000-0x7affff:S, 0x7b0000-0x7bffff:S, 0x7c0000-0x7cffff:S, 0x7d0000-0x7dffff:S, 0x7e0000-0x7effff:S, 0x7f0000-0x7fffff:S, 0x800000-0x80ffff:S, 0x810000-0x81ffff:S, 0x820000-0x82ffff:S, 0x830000-0x83ffff:WTransaction error!
> SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0
> SSFC: SCGO=0, ACS=1, SPOP=0, COP=0, DBC=63, SME=0, SCF=0 Running 
> OPCODE 0x02 failed at address 0x83f000 (payload length was 64).
> spi_nbyte_program failed during command execution at address 0x83f000 
> Reading current flash chip contents... done. Looking for another erase function.
> Trying erase function 2... 0x000000-0xffffff:WTransaction error!
> SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0
> SSFC: SCGO=0, ACS=1, SPOP=0, COP=0, DBC=63, SME=0, SCF=0 Running 
> OPCODE 0x02 failed at address 0x83f000 (payload length was 64).
> spi_nbyte_program failed during command execution at address 0x83f000 
> Looking for another erase function.
> No usable erase functions left.
> FAILED!
> Uh oh. Erase/write failed. Checking if anything changed.
> Good. It seems nothing was changed.
> Writing to the flash chip apparently didn't do anything.
> This means we have to add special support for your board, programmer 
> or flash chip. Please report this on IRC at chat.freenode.net (channel 
> #flashrom) or mail flashrom at flashrom.org, thanks!
> ----------------------------------------------------------------------
> --------- You may now reboot or simply leave the machine running.
> Restoring MMIO space at 0x7ff240f028a0 Restoring MMIO space at 
> 0x7ff240f0289c Restoring MMIO space at 0x7ff240f02898 Restoring MMIO 
> space at 0x7ff240f02896 Restoring MMIO space at 0x7ff240f02894
> 
> 
> 
> 
> flashchips.c:
> 
>                 {
>                                 .vendor                                = "Micron/Numonyx/ST",
>                                 .name                   = "N25Q128..3E", /* ..3E = 3V, uniform 64KB/4KB blocks/sectors */
>                                 .bustype              = BUS_SPI,
>                                 .manufacture_id = ST_ID,
>                                 .model_id           = ST_N25Q128__3E,
>                                 .total_size           = 16384,
>                                 .page_size          = 256,
>                                 /* supports SFDP */
>                                 /* OTP: 64B total; read 0x4B, write 0x42 */
>                                 .feature_bits     = FEATURE_WRSR_WREN | FEATURE_OTP,
>                                 .tested                 = TEST_OK_PREW,
>                                 .probe                  = probe_spi_rdid,
>                                 .probe_timing   = TIMING_ZERO,
>                                 .block_erasers  = {
>                                                 {
>                                                                 .eraseblocks = { {4 * 1024, 4096 } },
>                                                                 .block_erase = spi_block_erase_20,
>                                                 }, {
>                                                                 .eraseblocks = { {64 * 1024, 256} },
>                                                                 .block_erase = spi_block_erase_d8,
>                                                 }, {
>                                                                 .eraseblocks = { {16384 * 1024, 1} },
>                                                                 .block_erase = spi_block_erase_c7,
>                                                 }
>                                 },

Hello,

sorry for the late reply. I believe your problem is the chipset configuration. The most interesting parts of your log are missing... if you still need help, please send a complete verbose log (feel free to redact the DMI data if you have to).

--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner


More information about the flashrom mailing list