On 19.01.2010 09:01, Sean Nelson wrote: > This should be the last-last revision of this patch. > > Convert ST to block erasers: > ST M25P05-A > ST M25P05.RES > ST M25P10-A > ST M25P10.RES > ST M25P20 > ST M25P40 > ST M25P40-old > ST M25P80 > ST M25P16 > ST M25P32 > ST M25P64 > ST M25P128 > ST M29F002B > ST M29F002T/NT > ST M29F040B > ST M29F400BT > ST M29W010B > ST M29W040B > ST M50FLW040A > ST M50FLW040B > ST M50FLW080A > ST M50FLW080B > ST M50FW002 > ST M50FW016 > ST M50FW040 > ST M50FW080 > ST M50LPW116 > > Add erase_chip_stm50flw0x0x to stm50flw0x0x.c > Add copyright to stm50flw0x0x.c > Fix block sizes and counts > Omit M50FLW0x0x mixed sector/block eraser > Convert the used 82802ab functions to their stm50flw0x0x equivalents > Fix incorrect sizes as found by Carl-Daniel. > Add back M50FLW0x0x mixed sector/block eraser sans function pointer. > > Signed-off-by: Sean Nelson <[email protected]>
Acked-by: Carl-Daniel Hailfinger <[email protected]> > { > .vendor = "ST", > .name = "M50FLW040A", > .bustype = CHIP_BUSTYPE_FWH|CHIP_BUSTYPE_LPC, /* A/A Mux > */ > .manufacture_id = ST_ID, > .model_id = ST_M50FLW040A, > .total_size = 512, > .page_size = 64 * 1024, > .feature_bits = FEATURE_REGISTERMAP, > .tested = TEST_UNTESTED, > .probe = probe_jedec, > .probe_timing = TIMING_FIXME, > - .erase = erase_stm50flw0x0x, > + .erase = NULL, > + .block_erasers = > + { > + { > + .eraseblocks = { > + {4 * 1024, 16}, /* sector */ > + {64 * 1024, 5}, /* block */ > + {4 * 1024, 16}, /* sector */ > + {4 * 1024, 16}, /* sector */ > + }, > + .block_erase = NULL, > Not exactly what I had in mind (I thought about specifying the function and not the blocks), but flashrom can deal with this as well. It might be a good idea to change the line {64 * 1024, 5}, to {320 * 1024, -1}, once flashrom can deal with negative sizes and interpret them as "function does not apply to this area". Or we create a special erase function which does different things based on eraseblock size/location. Your code is OK right now (please don't follow my suggestion right now), and I just wanted to discuss further development options. > + }, { > + .eraseblocks = { {64 * 1024, 8}, }, > + .block_erase = erase_block_stm50flw0x0x, > + }, { > + .eraseblocks = { {512 * 1024, 1} }, > + .block_erase = erase_chip_stm50flw0x0x, > + } > + }, > .write = write_stm50flw0x0x, > .read = read_memmapped, > }, > Regards, Carl-Daniel -- Developer quote of the year: "We are juggling too many chainsaws and flaming arrows and tigers." _______________________________________________ flashrom mailing list [email protected] http://www.flashrom.org/mailman/listinfo/flashrom
