Hi, This series is based on Stephen Checkoway work (v4): https://lists.gnu.org/archive/html/qemu-devel/2019-04/msg04595.html
Stephen work is a great improvement of the actual code, however while reviewing his patches, I found them quite dense, so I started to split each logical change to be able to digest his series. Sfephen implemented the 'interleaving' feature in way I am not yet confident it is in the project best interest. The relevant thread started here: https://lists.gnu.org/archive/html/qemu-devel/2019-06/msg05395.html However meanwhile we will discuss his interleaving implementation, I don't want to block the rest of his work, so I took that patch of (and rebased his work). I'm spamming all the maintainers of the boards using pflash_cfi02_register(). This series is not 'block' related, it is a classical 'device' model series. Help reviewing is appreciated :) I am still looking for real-world code stressing this flash model. Regards, Phil. Philippe Mathieu-Daudé (20): hw/block/pflash: Simplify trace_pflash_io_read/write() hw/block/pflash: Simplify trace_pflash_data_read/write() hw/block/pflash_cfi02: Fix debug format string hw/block/pflash_cfi02: Add an enum to define the write cycles hw/block/pflash_cfi02: Add helpers to manipulate the status bits hw/block/pflash_cfi02: Simplify a statement using fall through hw/block/pflash_cfi02: Use the ldst API in pflash_write() hw/block/pflash_cfi02: Use the ldst API in pflash_read() hw/block/pflash_cfi02: Extract the pflash_data_read() function hw/block/pflash_cfi02: Unify the MemoryRegionOps tests/pflash-cfi02: Refactor to support testing multiple configurations hw/block/pflash_cfi02: Remove pointless local variable hw/block/pflash_cfi02: Document the current CFI values hw/block/pflash_cfi02: Hold the PRI table offset in a variable hw/block/pflash_cfi02: Document 'Page Mode' operations are not supported hw/block/pflash_cfi02: Extract pflash_regions_count() hw/block/pflash_cfi02: Split if() condition hw/block/pflash_cfi02: Reduce single byte/word write delay hw/block/pflash_cfi02: Document commands hw/block/pflash_cfi02: Reduce I/O accesses to 16-bit Stephen Checkoway (8): tests/pflash-cfi02: Add test for supported CFI commands hw/block/pflash_cfi02: Fix command address comparison hw/block/pflash_cfi02: Implement nonuniform sector sizes hw/block/pflash_cfi02: Fix CFI in autoselect mode hw/block/pflash_cfi02: Fix reset command not ignored during erase hw/block/pflash_cfi02: Implement multi-sector erase hw/block/pflash_cfi02: Implement erase suspend/resume hw/block/pflash_cfi02: Use chip erase time specified in the CFI table hw/block/pflash_cfi01.c | 11 +- hw/block/pflash_cfi02.c | 703 ++++++++++++++++++++++++++------------ hw/block/trace-events | 10 +- tests/Makefile.include | 2 + tests/pflash-cfi02-test.c | 681 ++++++++++++++++++++++++++++++++++++ 5 files changed, 1173 insertions(+), 234 deletions(-) create mode 100644 tests/pflash-cfi02-test.c -- 2.20.1