yay, i have found a way around the const flashchips array. the common/general probing function that loops around the chips array actually does not use the chips form that array directly but copies each to a local non-const(!) buffer and calls the probing function with it as a non-const parameter. so we are free to modify the flashchip struct in the probing function. and this is exactly what i do. i set the total_size and the first eraser in ich_hwseq_probe accordingly to the values found in the registers (derived from the descriptors). this way we can even support dual-chip configurations easily (which i have also added). i think this is almost mergeable. it's probably easier to review this one squashed/combined with the original 11 version, especially if you did not look at that one before.
we still need someone test this on real (recoverable) hardware though. :(