From: Klaus Jensen <k.jensen@samsung.com>
Fix mmio read issues on big-endian hosts. The core issue is that values
in the BAR is not stored in little endian as required.
Fix that and add a regression test for this. This required a bit of
cleanup, so it blew up into a series.
v4:
* "hw/nvme: split pmrmsc register into upper and lower"
- Fix missing left-shift (Peter)
* "hw/nvme: fix mmio read"
- Remove unnecessary masking (Peter)
- Keep existing behaviour and do not zero the register fields doing
initialization (Peter)
v3:
* "hw/nvme: use symbolic names for registers"
Use offsetof(NvmeBar, reg) instead of explicit offsets (Philippe)
* "hw/nvme: fix mmio read"
Use the st/ld API instead of cpu_to_X (Philippe)
Klaus Jensen (5):
hw/nvme: split pmrmsc register into upper and lower
hw/nvme: use symbolic names for registers
hw/nvme: fix out-of-bounds reads
hw/nvme: fix mmio read
tests/qtest/nvme-test: add mmio read test
include/block/nvme.h | 60 +++++--
hw/nvme/ctrl.c | 352 ++++++++++++++++++++++------------------
tests/qtest/nvme-test.c | 26 +++
3 files changed, 265 insertions(+), 173 deletions(-)
--
2.32.0