If we detected Multiple flash chips than We can easy save all chips in dynamic list - pflashes. and we will not have a restrictions with number chips This is Dynamic List to sorted by Volage beginnig from minimal value. Also I added to dynamic list the new parameter HEAD. This is link on head of Dynamic List. I added a new key "-F" or "--enum" for trying choice chip automatically from array of Multiple chips with identical value model_id. Now we can easy introduce a new chips with identical value model_id and different chip names, reading, writing and other function.
for example: if we have a three chips M50FLW040A - already exists .name = "M50FLW040A", .model_id = ST_M50FLW040A, ... .read = read_memmapped; .volage = { 3000, 3600 },
M50FLW040B - is fairy chip .name = "M50FLW040A", .model_id = ST_M50FLW040A, ... .read = read_memmapped_040B; .volage = { 4500, 5500 },
M50FLW040C - is fairy chip .name = "M50FLW040A", .model_id = ST_M50FLW040A, ... .read = read_memmapped_040C; .volage = { 1690, 1900 },
and we want to add them to file flashrom.c just will do it now runnig the programm and see the array of Multiple chips
=OUT================================================================================== ./flashrom --programmer=internal --r bios.img -o rezult flashrom v0.9.6.1-r1657 on Linux 2.6.32-220.el6.x86_64 (x86_64) flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK. Found chipset "Intel ICH7/ICH7R". Enabling flash write... OK. Found ST flash chip "M50FLW040A" (512 kB, LPC, FWH) at physical address 0xfff80000. Found ST flash chip "M50FLW040B" (512 kB, LPC, FWH) at physical address 0xfff80000. Found ST flash chip "M50FLW040C" (512 kB, LPC, FWH) at physical address 0xfff80000.
Multiple flash chips were detected: "M50FLW040C" with minimal single supply voltage 1690mV "M50FLW040A" with minimal single supply voltage 3000mV "M50FLW040B" with minimal single supply voltage 4500mV
Please specify which chip to use with the -c <chipname> option or use the -F enumeration option.for trying choice chip automatically =END==================================================================================
now running with key "-F"
=OUT================================================================================== ./flashrom --programmer=internal --r bios.img -o rezult -F flashrom v0.9.6.1-r1657 on Linux 2.6.32-220.el6.x86_64 (x86_64) flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK. Found chipset "Intel ICH7/ICH7R". Enabling flash write... OK. Found ST flash chip "M50FLW040A" (512 kB, LPC, FWH) at physical address 0xfff80000. Found ST flash chip "M50FLW040B" (512 kB, LPC, FWH) at physical address 0xfff80000. Found ST flash chip "M50FLW040C" (512 kB, LPC, FWH) at physical address 0xfff80000.
Multiple flash chips were detected: "M50FLW040C" with minimal single supply voltage 1690mV "M50FLW040A" with minimal single supply voltage 3000mV "M50FLW040B" with minimal single supply voltage 4500mV
Please specify which chip to use with the -c <chipname> option or use the -F enumeration option.for trying choice chip automatically === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom@flashrom.org if any of the above operations work correctly for you with this flash part. Please include the flashrom output with the additional -V option for all operations you tested (-V, -Vr, -VE, -Vw), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! Reading flash "M50FLW040C" with minimal single supply voltage 1690mV... done. =END==================================================================================
We found chips and we trying read data from every chip while will not be successful operation read.
and i hope we will not need a reinvent the wheel with names of similar chips like a N25Q064..1E and puzzle over designation MX25U6435F and MX25L6439E