Hi,
I think I may have an explanation for this behavior. Since EDI is enabled via clock detection, it is possible that the first request cannot be served (as it is received concurrently with clock detection) and so gets lost.
I have added a dummy read before any required transaction, so that the chip can detect EDI and enable it priori to serving any useful request. This change is available on my git repository[0]. Feel free to try and it and report back, so that I can decide whether to send it to upstream flashrom.
[0]: http://git.code.paulk.fr/gitweb/?p=flashrom.git%C2%A0branch next
Cheers!