The MT25QL128 chip is ‘untested’. Read operations work, but erase and write are broken. I happen to be using ‘serprog’ as the programmer for flashrom v1.2.
To fix this, edit flashchips.c and look for the MT25QL128 entry. Delete the “FEATURE_4BA_WREN” feature. I’ve verified read, erase, and write work perfectly following this change.
This chip by default uses 24 bit addresses. That took me a bit of time to figure out by dumping SPI packets and reading the chip spec till I found the offending packet that was causing the problems. The “FEATURE_4BA_WREN” sends a 0xb7 SPI command (enable 32 bit addresses) that isn’t supported by the MT25QL128, and in addition even if the MT25QL128 supported the ‘b7’ command, 32 bit addressing isn’t supported by many programmers (including serprog).
Hope this helps,