nvdimm acpi: build ACPI NFIT table
commit87252e1b61cb6e651da6cd3e9996ade8bd59a388
authorXiao Guangrong <guangrong.xiao@linux.intel.com>
Wed, 2 Dec 2015 07:20:58 +0000 (2 15:20 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 22 Dec 2015 16:39:20 +0000 (22 18:39 +0200)
tree6c1d6420df4737323247952507732b65535a7ff2
parent8870ca0e94f2524644812dd759863c0851ffb870
nvdimm acpi: build ACPI NFIT table

NFIT is defined in ACPI 6.0: 5.2.25 NVDIMM Firmware Interface Table (NFIT)

Currently, we only support PMEM mode. Each device has 3 structures:
- SPA structure, defines the PMEM region info

- MEM DEV structure, it has the @handle which is used to associate specified
  ACPI NVDIMM  device we will introduce in later patch.
  Also we can happily ignored the memory device's interleave, the real
  nvdimm hardware access is hidden behind host

- DCR structure, it defines vendor ID used to associate specified vendor
  nvdimm driver. Since we only implement PMEM mode this time, Command
  window and Data window are not needed

The NVDIMM functionality is controlled by the parameter, 'nvdimm', which
is introduced for the machine, there is a example to enable it:
-machine pc,nvdimm -m 8G,maxmem=100G,slots=100  -object \
memory-backend-file,id=mem1,share,mem-path=/tmp/nvdimm1,size=10G -device \
nvdimm,memdev=mem1,id=nv1

It is disabled on default

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
default-configs/i386-softmmu.mak
default-configs/x86_64-softmmu.mak
hw/acpi/Makefile.objs
hw/acpi/nvdimm.c [new file with mode: 0644]
hw/i386/acpi-build.c
hw/i386/pc.c
include/hw/i386/pc.h
include/hw/mem/nvdimm.h
qemu-options.hx