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

--
With best regards Nikolay Nikolaev
σ υΧΑΦΕΞΙΕΝ ξΙΛΟΜΑΕΧ ξΙΛΟΜΑΚ