Now I'm using an FPGA board with 4 MiB of flash, was using one with 128 kiB. So now the time to read/write/verify the whole memory is enough to annoy me ;-) So I tried creating a layout like this:
<-- 00000000:00007e2b fpga 00007e2c:003fffff free <--
Note: yes only 32300 bytes used, the rest can be used for other purposes (0,77%).
And then I used "-i fpga". But it didn't help ... flashrom read the 4 MiB twice (one at the beggining and another for the verification). Looking at the code I found a variable named read_all_first with a comment about the lack of implementation. So I implemented the needed code to: 1) Add a command line option to make it 0 (avoiding the big reads). This option can be used only when at least one image is indicated with -i 2) Skip the big read when read_all_first is 0. Only the regions indicated by the user are actually fetched from the memory. 3) Same for the verification stage.
Additionally I added a command line option to show the progress, very usefull for big memories (and impatient users ;-).
Are these additions desired in the project? If yes: I want to discuss the implementation details. If no: I'll just keep them for my use.