Hi!
I've got HP EliteBook 9470m, which contains (according to ID, didn't check) Numonyx N25Q128. So I added this chip to flashrom, but anything except probe fails with transaction error:
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=4 Running OPCODE 0x03 failed at address 0x003000 (payload length was 64). Read operation failed!
Can anything be done here? Logs attached. Patch (dirty) below. -- diff -Nur flashrom/flashchips.c flashrom-m/flashchips.c --- flashrom/flashchips.c 2013-03-19 21:06:22.307763803 +0400 +++ flashrom-m/flashchips.c 2013-03-19 19:04:42.000000000 +0400 @@ -6561,6 +6561,40 @@ },
{ + .vendor = "Numonyx", + .name = "N25Q128", + .bustype = BUS_SPI, + .manufacture_id = ST_ID, + .model_id = ST_N25Q128, + .total_size = 16384, + .page_size = 256, + /* supports SFDP */ + /* OTP: 64B total; read 0x4B, write 0x42 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_UNTESTED, + .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 = { {16 * 1024 * 1024, 1} }, + .block_erase = spi_block_erase_c7, + } + }, + .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ + .unlock = spi_disable_blockprotect, + .write = spi_chip_write_256, + .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2700, 3600}, + }, + + { .vendor = "PMC", .name = "Pm25LV010", .bustype = BUS_SPI, diff -Nur flashrom/flashchips.h flashrom-m/flashchips.h --- flashrom/flashchips.h 2013-03-19 21:06:24.747763812 +0400 +++ flashrom-m/flashchips.h 2013-03-19 19:05:12.000000000 +0400 @@ -615,6 +615,7 @@ #define ST_N25Q032__1E 0xBB16 /* N25Q032, 1.8V, (uniform sectors expected) */ #define ST_N25Q064__3E 0xBA17 /* N25Q064, 3.0V, (uniform sectors expected) */ #define ST_N25Q064__1E 0xBB17 /* N25Q064, 1.8V, (uniform sectors expected) */ +#define ST_N25Q128 0xBA18 /* N25Q128, 3.0V, (uniform sectors expected) */
#define SYNCMOS_MVC_ID 0x40 /* SyncMOS (SM) and Mosel Vitelic Corporation (MVC) */ #define MVC_V29C51000T 0x00