Alexander Amelkin wrote:
Also, I couldn't manage to make this patch work with MXIC MX25L25635F chip which supports all the 4BA modes (direct, EN4B, EAR). I tried various combinations, but it couldn't properly erase the chip anyway. Didn't work in SFDP mode as well (only SFDP 1.0 is supported by the chip). Hence, I couldn't check if it reads back properly what was written. I didn't do any debugging though to find out the reason.
Try to to uncomment FBA_USE_EXT_ADDR_REG_BY_DEFAULT define It may work after.
I'll try that. Thanks.
By checking MX25L25635F datasheet I found that the Enter4BA instruction doesn't require WREN before. By default 4BA patch does WREN + Enter4BA to switch to 4-byte.addr.mode.
To make Flashrom work with this chip I see 3 ways:
1) Uncomment FBA_USE_EXT_ADDR_REG_BY_DEFAULT define in sfdp.c to use 3-bytes addressing with Extended Address Register by default. This should work on MX25L25635F. It seems that it's the best way for default access to 4BA-chips.
2) Define this chip in flashchips.c with all direct functions (it has them) or define with 4BA functions and set "enter_4ba = spi_enter_4ba_b7" to prevent of using WREN before EN4B instruction.
3) Add some heuristics to 4BA mode switch to try both types (with WREN and without WREN).