Hi David
thank for answer
2013/2/7 David Hendricks dhendrix@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?