[flashrom] 64Mbit IS25LP064A not recognized

Buhrow, Simon simon.buhrow at sieb-meyer.de
Wed Aug 29 11:56:35 CEST 2018


Hi Nico,

thanks a lot for your quick help.

I got it running by adding the chip data to the database. Before that I run the command with the -VV parameter where I could see that the IDs were read correctly (-> so there was no signal integrity problem).

To get it running I added the following lines:

in flashchips.h:
#define ISSI_IS25LP064		0x6017

in flashchips.c
    {
		.vendor		= "ISSI",
		.name		= "IS25LP064",
		.bustype	= BUS_SPI,
		.manufacture_id	= ISSI_ID_SPI,
		.model_id	= ISSI_IS25LP064,
		.total_size	= 8192,
		.page_size	= 256,
		/* OTP: 1024B total; read 0x48; 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, 2048} },
				.block_erase = spi_block_erase_20,
			}, {
				.eraseblocks = { {4 * 1024, 2048} },
				.block_erase = spi_block_erase_d7,
			}, {
				.eraseblocks = { {32 * 1024, 256} },
				.block_erase = spi_block_erase_52,
			}, {
				.eraseblocks = { {64 * 1024, 128} },
				.block_erase = spi_block_erase_d8,
			}, {
				.eraseblocks = { {8 * 1024 * 1024, 1} },
				.block_erase = spi_block_erase_60,
			}, {
				.eraseblocks = { {8 * 1024 * 1024, 1} },
				.block_erase = spi_block_erase_c7,
			}
		},
		.unlock		= spi_disable_blockprotect,
		.write		= spi_chip_write_256,
		.read		= spi_chip_read,
		.voltage	= {2300, 3600},
    },



So the output now is:
>sudo flashrom -p ft2232_spi:type=2232H,port=A,divisor=30 -VV
flashrom v1.0 on Linux 4.15.0-33-generic (x86_64)
...
Probing for ISSI IS25LP064, 8192 kB: probe_spi_rdid_generic: id1 0x9d, id2 0x6017
Found ISSI flash chip "IS25LP064" (8192 kB, SPI) on ft2232_spi.
...
Found ISSI flash chip "IS25LP064" (8192 kB, SPI) on ft2232_spi.
No operations were specified.
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).
No operations were specified.


As I understand the doc at https://www.flashrom.org/Development_Guidelines#Adding.2Freviewing_a_new_flash_chip
I´m not able to add this to the repo. Could anyone do this? (or tell me how to do if I can)
I was able to write and read from the flash as well. So should be fine.

Regards,
Simon



-----Ursprüngliche Nachricht-----
Von: Nico Huber <nico.huber at secunet.com> 
Gesendet: Dienstag, 28. August 2018 13:52
An: Buhrow, Simon <simon.buhrow at sieb-meyer.de>
Cc: flashrom at flashrom.org; Stefan Tauner <stefan.tauner at alumni.tuwien.ac.at>
Betreff: Re: [flashrom] 64Mbit IS25LP064A not recognized

Hi Simon,

Am 28.08.18 um 10:51 schrieb Buhrow, Simon:
> Measuring the signal I got that the command given above does first a 
> RDJDID Operation and later the RDSFDP operation (which should be 
> according to JESD216).  I attach the signals. You can see the the 
> operations and what is done.

it seems to me that flashrom has already processed parts of the SFDP (5a 00 00 54 means it requests data at offset 0x54 of the SFDP, right?).
You can probably see more details about why it fails if you add one or two -V to your flashrom command.

> According to the datasheet is MF7-MF0: 9Dh and Memory Type + Capacity 
> (ID15 - ID0): 6017h. Which you can see on the RDJDID signals image.
> 
> I know the signal quality is not the best but doing real improves 
> would cost a lot of time. As I already successfully programmed another 
> supported chip and because the Flash chip response the right way I 
> think that it´s not a signal integrity problem.
> 
> So my questions are:
> 1)      Does "unknown SPI chip (RDID)" mean "it´s not in the database"
> or does it mean "RDID could not be read successfully"?

It can mean both as the protocol has no means of error detection. It's
simply: the MISO level wasn't all zero, IIRC.

You can see the response if you add -V to your command. It should print id1:... id2:... for each chip probed. For all RDID commands this should be consistently the 0x9d 0x6017 of your chip.

> 2)      If it means "RDID could not be read successfully": Is there any
> other possibility than signal integrity why flashrom does not show the 
> right RDID?

The programmer is a black box to flashrom, anything in there might fail too. But assuming absence of bugs and that the programmer works nor- mally, no.

> 3)      If it means "it´s not in the database":  Would adding it to the
> database solve the problem or is that not crucial?

Likely, yes. And it's not much work, IS25LP128 is already in the database. If you are lucky, it's just copying that entry and adapting sizes. Let us know if you need help with that.

> 4)      Does flashrom supports flashs with memory of 64Mbit? As I can´t
> find any in the supported hardware list.

A lot. The `Size` column in that list is given in kB, 64Mbit is 8192kB.

> Btw: the JESD216 link at https://www.flashrom.org/Supported_hardware
> does not work. May be
> https://www.jedec.org/standards-documents/docs/jesd216b is what should 
> be linked?

I never looked at flashrom's SFDP code, but somebody told me once it's written against some earlier spec. Probably needs some more investi- gation before we point to a version that is not implemented at all.

Nico



More information about the flashrom mailing list