qemu/include/hw/ppc
Shivaprasad G Bhat ee3a71e366 spapr: Add NVDIMM device support
Add support for NVDIMM devices for sPAPR. Piggyback on existing nvdimm
device interface in QEMU to support virtual NVDIMM devices for Power.
Create the required DT entries for the device (some entries have
dummy values right now).

The patch creates the required DT node and sends a hotplug
interrupt to the guest. Guest is expected to undertake the normal
DR resource add path in response and start issuing PAPR SCM hcalls.

The device support is verified based on the machine version unlike x86.

This is how it can be used ..
Ex :
For coldplug, the device to be added in qemu command line as shown below
-object memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm0,share=yes,size=1073872896
-device nvdimm,label-size=128k,uuid=75a3cdd7-6a2f-4791-8d15-fe0a920e8e9e,memdev=memnvdimm0,id=nvdimm0,slot=0

For hotplug, the device to be added from monitor as below
object_add memory-backend-file,id=memnvdimm0,prealloc=yes,mem-path=/tmp/nvdimm0,share=yes,size=1073872896
device_add nvdimm,label-size=128k,uuid=75a3cdd7-6a2f-4791-8d15-fe0a920e8e9e,memdev=memnvdimm0,id=nvdimm0,slot=0

Signed-off-by: Shivaprasad G Bhat <sbhat@linux.ibm.com>
Signed-off-by: Bharata B Rao <bharata@linux.ibm.com>
               [Early implementation]
Message-Id: <158131058078.2897.12767731856697459923.stgit@lep8c.aus.stglabs.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2020-02-21 09:15:04 +11:00
..
fdt.h target/ppc: Pass cpu instead of env to ppc_create_page_sizes_prop() 2018-04-27 18:05:22 +10:00
mac_dbdma.h mac_dbdma: remove DBDMA_init() function 2017-09-27 13:05:41 +10:00
openpic_kvm.h openpic: move KVM-specific declarations into separate openpic_kvm.h file 2018-03-06 13:16:29 +11:00
openpic.h hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
pnv_core.h ppc/pnv: Add support for "hostboot" mode 2020-02-02 14:07:57 +11:00
pnv_homer.h ppc/pnv: Introduce PBA registers 2019-12-17 10:39:48 +11:00
pnv_lpc.h ppc/pnv: add a LPC Controller model for POWER10 2019-12-17 10:39:48 +11:00
pnv_occ.h ppc/pnv: Fix OCC common area region mapping 2019-12-17 10:39:48 +11:00
pnv_pnor.h ppc/pnv: fix check on return value of blk_getlength() 2020-01-08 12:01:14 +11:00
pnv_psi.h ppc/pnv: Drop PnvPsiClass::chip_type 2019-12-17 10:39:48 +11:00
pnv_xive.h pnv/xive: Use device_class_set_parent_realize() 2020-01-08 11:01:59 +11:00
pnv_xscom.h ppc/pnv: Add models for POWER8 PHB3 PCIe Host bridge 2020-02-02 14:07:57 +11:00
pnv.h ppc/pnv: Add models for POWER8 PHB3 PCIe Host bridge 2020-02-02 14:07:57 +11:00
ppc4xx.h Clean up inclusion of exec/cpu-common.h 2019-08-16 13:31:52 +02:00
ppc_e500.h intc/openpic: Build openpic only once 2013-07-09 21:33:02 +02:00
ppc.h hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackware BIOS 2020-02-02 14:07:57 +11:00
spapr_cpu_core.h spapr: Implement H_PROD 2019-08-21 17:17:12 +10:00
spapr_drc.h spapr: Add NVDIMM device support 2020-02-21 09:15:04 +11:00
spapr_irq.h spapr: Pass the maximum number of vCPUs to the KVM interrupt controller 2019-12-17 10:39:48 +11:00
spapr_nvdimm.h spapr: Add NVDIMM device support 2020-02-21 09:15:04 +11:00
spapr_ovec.h spapr: Simplify ovec diff 2019-12-17 10:39:48 +11:00
spapr_rtas.h tests: add RTAS command in the protocol 2016-09-23 10:29:40 +10:00
spapr_tpm_proxy.h spapr: initial implementation for H_TPM_COMM/spapr-tpm-proxy 2019-08-21 17:17:12 +10:00
spapr_vio.h spapr: Implement get_dt_compatible() callback 2020-02-02 14:07:57 +11:00
spapr_xive.h spapr/xive: Use device_class_set_parent_realize() 2020-01-08 11:01:59 +11:00
spapr.h migration: Include migration support for machine check handling 2020-02-03 11:33:11 +11:00
xics_spapr.h spapr: Pass the maximum number of vCPUs to the KVM interrupt controller 2019-12-17 10:39:48 +11:00
xics.h ppc/pnv: Add models for POWER8 PHB3 PCIe Host bridge 2020-02-02 14:07:57 +11:00
xive_regs.h ppc/pnv: Dump the XIVE NVT table 2019-12-17 10:39:48 +11:00
xive.h xive: Add a "presenter" link property to the TCTX object 2020-01-08 11:01:59 +11:00