This series adds NVDIMM support to arm/virt platform. The series reuses some of the patches posted by Eric in his earlier attempt here[1].
This also include few fixes to qemu in general which were discovered while adding nvdimm support to arm/virt. Patch #2 addresses the issue[2] that, during migration, the source and destination might end up with an inconsistency in acpi table memory region sizes. Patch #3 is to fix the qemu_ram_resize() callback issue[2]. Patch #4 is another fix to the nvdimm aml issue discussed here[3]. I have done a basic sanity testing of NVDIMM devices with Guest booting with ACPI. Further testing is always welcome. Please let me know your feedback. Thanks, Shameer [1] https://patchwork.kernel.org/cover/10830777/ [2] https://patchwork.kernel.org/patch/11339591/ [3] https://patchwork.kernel.org/cover/11174959/ v2 --> v3 - Added patch #1 and # 2 to fix the inconsistency in acpi table memory region sizes during migration. Thanks to David H. - The fix for qemu_ram_resize() callback was modified to the one in patch #3. Again thanks to David H. - Addressed comments from MST and Eric on tests added. - Addressed comments from Igor/MST on Integer size in patch #4 - Added Eric's R-by to patch #7. v1 --> v2 -Reworked patch #1 and now fix is inside qemu_ram_resize(). -Added patch #2 to fix the nvdim aml issue. -Dropped support to DT cold plug. -Updated test_acpi_virt_tcg_memhp() with pc-dimm and nvdimms(patch #7) David Hildenbrand (1): exec: Fix for qemu_ram_resize() callback Kwangwoo Lee (2): nvdimm: Use configurable ACPI IO base and size hw/arm/virt: Add nvdimm hot-plug infrastructure Shameer Kolothum (7): acpi: Use macro for table-loader file name fw_cfg: Migrate ACPI table mr sizes separately hw/acpi/nvdimm: Fix for NVDIMM incorrect DSM output buffer length hw/arm/virt: Add nvdimm hotplug support tests: Update ACPI tables list for upcoming arm/virt test changes tests/bios-tables-test: Update arm/virt memhp test tests/acpi: add expected tables for bios-tables-test docs/specs/acpi_hw_reduced_hotplug.rst | 1 + exec.c | 14 +++- hw/acpi/generic_event_device.c | 15 ++++- hw/acpi/nvdimm.c | 72 +++++++++++++++++---- hw/arm/Kconfig | 1 + hw/arm/virt-acpi-build.c | 8 ++- hw/arm/virt.c | 35 ++++++++-- hw/core/machine.c | 1 + hw/i386/acpi-build.c | 8 ++- hw/i386/acpi-build.h | 3 + hw/i386/pc_piix.c | 2 + hw/i386/pc_q35.c | 2 + hw/mem/Kconfig | 2 +- hw/nvram/fw_cfg.c | 86 ++++++++++++++++++++++++- include/hw/acpi/aml-build.h | 1 + include/hw/acpi/generic_event_device.h | 1 + include/hw/arm/virt.h | 1 + include/hw/mem/nvdimm.h | 3 + include/hw/nvram/fw_cfg.h | 6 ++ tests/data/acpi/pc/SSDT.dimmpxm | Bin 685 -> 734 bytes tests/data/acpi/q35/SSDT.dimmpxm | Bin 685 -> 734 bytes tests/data/acpi/virt/DSDT.memhp | Bin 6644 -> 6668 bytes tests/data/acpi/virt/NFIT.memhp | Bin 0 -> 224 bytes tests/data/acpi/virt/SSDT.memhp | Bin 0 -> 736 bytes tests/qtest/bios-tables-test.c | 9 ++- 25 files changed, 244 insertions(+), 27 deletions(-) create mode 100644 tests/data/acpi/virt/NFIT.memhp create mode 100644 tests/data/acpi/virt/SSDT.memhp -- 2.17.1
