[flashrom] flashrom OPCODES for SPI

Николай Николаев evrinoma at gmail.com
Thu Feb 7 12:06:42 CET 2013


Hi David

thank for answer

2013/2/7 David Hendricks <dhendrix at google.com>

> We usually use the .feature_bits member to distinguish these capabilities.
> The feature you describe uses "FEATURE_ADDR_AAA" and corresponds to
> spi_aai_write().
>

I think adding an array of structs struct inside of the flashchip struct
> would be more effort than it is worth. It would make working with the
> flashchip data structure more complicated, and we'd need to add nested
> loops whenever we iterate over the flashchip array. It would also require
> flexible arrays which may cause problems with certain compilers.
>

 Sorry but i don't see this "usually" in this code strings
for example:
{
.vendor = "SST",
.name = "SST25VF040B",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
.model_id = SST_SST25VF040B,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
.tested = TEST_UNTESTED,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
.block_erasers =
{
{
  .eraseblocks = { {4 * 1024, 128} },
.block_erase = spi_block_erase_20,
}, {
.eraseblocks = { {32 * 1024, 16} },
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {64 * 1024, 8} },
.block_erase = spi_block_erase_d8,
}, {
.eraseblocks = { {512 * 1024, 1} },
.block_erase = spi_block_erase_60,
}, {
.eraseblocks = { {512 * 1024, 1} },
.block_erase = spi_block_erase_c7,
},
},
.printlock = spi_prettyprint_status_register_sst25vf040b,
.unlock = spi_disable_blockprotect,
  .write = spi_aai_write,                    /* "FEATURE_ADDR_AAA"  ?  */
this is a fetch  The software must will use  spi_chip_write_256 function.
.read = spi_chip_read,
.voltage = {2700, 3600},
},

and i thinking that this struct is a little complicated
because:
1. this struct has not used field like a voltage and this field can't
uniquely define chip voltage because different chips can have a equivalent
ID
2. this struct has a not informative field like a name  for example that is
that - SST25VF040B.REMS. Sorry but i can't  understanding different
SST25VF040B and that is REMS - is this a comment or other?  and i can't
found documentation on SST25VF040B.REMS chip. Next example EN25Q80(A) Is
this a two chips EN25Q80 and EN25Q80A or other?  Is this chip EN25Q80 real?

I think adding an array of structs struct inside of the flashchip struct
> would be more effort than it is worth.
>

I think adding an array of struct will be not effort, but testing a
software will be effort.


>  It would make working with the flashchip data structure more complicated,
> and we'd need to add nested loops whenever we iterate over the flashchip
> array. It would also require flexible arrays which may cause problems with
> certain compilers.
>

If we know chip ID  that we can  easy searching any chip parameters in
other structure. And i think we can easy exclude this parameters from
structure

The MX25L25835E actually should look the same as MX25L12805D from a
> software perspective. The difference is that MX25L25835E is stacked (two
> 128Mbit flash memories). Each bank is selected by a different chip-select
> line (referred to as CS#1 and CS#2 in the data sheet).
>

thanks. I'm understanding this is a simple stack but we have a one ID on
two different chips..... Will user use flashrom software for program
MX25L25835E if software didn't support this chip in list on wiki page, but
support MX25L12805D? How will you distinguish chip MX25L25835E from
MX25L12805D that chips have a equivalent chip ID.

What do you think about link on chip Documentation on wiki page?

-- 
With best regards Nikolay Nikolaev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.flashrom.org/pipermail/flashrom/attachments/20130207/3f943f2d/attachment.html>


More information about the flashrom mailing list