This patchset is against commit d4207b223eef3 (fw-cfg: support writeable
blobs) on pci branch of Michael's git tree and can be found at:
https://github.com/xiaogr/qemu.git nvdimm-label-v1
This is the last part of vNVDIMM implementation which introduces nvdimm
label support
Currently Linux NVDIMM driver does not support namespace operation on this
kind of PMEM, apply below changes to support dynamical namespace:
@@ -798,7 +823,8 @@ static int acpi_nfit_register_dimms(struct acpi_nfit_desc *a
continue;
}
- if (nfit_mem->bdw && nfit_mem->memdev_pmem)
+ //if (nfit_mem->bdw && nfit_mem->memdev_pmem)
+ if (nfit_mem->memdev_pmem)
flags |= NDD_ALIASING;
You can append a NVDIMM device in guest and do:
# cd /sys/bus/nd/devices/
# cd namespace0.0/
# echo `uuidgen` > uuid
# echo `expr 1024 \* 1024 \* 128` > size
then reload nd.pmem.ko
You can see /dev/pmem0 appears
Xiao Guangrong (15):
pc-dimm: get memory region from ->get_memory_region()
pc-dimm: introduce realize callback
pc-dimm: keep the state of the whole backend memory
nvdimm: support nvdimm label
acpi: add aml_object_type
acpi: add aml_call5
nvdimm acpi: set HDLE properly
nvdimm acpi: save arg3 of _DSM method
nvdimm acpi: check UUID
nvdimm acpi: abstract the operations for root device and nvdimm
devices
nvdimm acpi: check revision
nvdimm acpi: support Get Namespace Label Size function
nvdimm acpi: support Get Namespace Label Data function
nvdimm acpi: support Set Namespace Label Data function
docs: add NVDIMM ACPI documentation
docs/specs/acpi_nvdimm.txt | 132 +++++++++++++++
hw/acpi/aml-build.c | 22 +++
hw/acpi/nvdimm.c | 392 ++++++++++++++++++++++++++++++++++++++++----
hw/mem/nvdimm.c | 95 +++++++++++
hw/mem/pc-dimm.c | 21 ++-
include/hw/acpi/aml-build.h | 3 +
include/hw/mem/nvdimm.h | 61 ++++++-
include/hw/mem/pc-dimm.h | 6 +-
8 files changed, 694 insertions(+), 38 deletions(-)
create mode 100644 docs/specs/acpi_nvdimm.txt
--
1.8.3.1