Prepare for pvpanic-mmio configure interface. Signed-off-by: Peng Hao <peng.h...@zte.com.cn> --- hw/arm/sysbus-fdt.c | 2 ++ hw/arm/virt.c | 2 ++ hw/misc/pvpanic.c | 11 +++++++++-- 3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/hw/arm/sysbus-fdt.c b/hw/arm/sysbus-fdt.c index ad698d4..34577f3 100644 --- a/hw/arm/sysbus-fdt.c +++ b/hw/arm/sysbus-fdt.c @@ -38,6 +38,7 @@ #include "hw/vfio/vfio-amd-xgbe.h" #include "hw/display/ramfb.h" #include "hw/arm/fdt.h" +#include "hw/misc/pvpanic.h" /* * internal struct that contains the information to create dynamic @@ -459,6 +460,7 @@ static const BindingEntry bindings[] = { VFIO_PLATFORM_BINDING("amd,xgbe-seattle-v1a", add_amd_xgbe_fdt_node), #endif TYPE_BINDING(TYPE_RAMFB_DEVICE, no_fdt_node), + TYPE_BINDING(TYPE_PVPANIC_MMIO, no_fdt_node), TYPE_BINDING("", NULL), /* last element */ }; diff --git a/hw/arm/virt.c b/hw/arm/virt.c index f2cb5de..1fd5941 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -59,6 +59,7 @@ #include "qapi/visitor.h" #include "standard-headers/linux/input.h" #include "hw/arm/smmuv3.h" +#include "hw/misc/pvpanic.h" #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \ static void virt_##major##_##minor##_class_init(ObjectClass *oc, \ @@ -1783,6 +1784,7 @@ static void virt_machine_class_init(ObjectClass *oc, void *data) machine_class_allow_dynamic_sysbus_dev(mc, TYPE_VFIO_CALXEDA_XGMAC); machine_class_allow_dynamic_sysbus_dev(mc, TYPE_VFIO_AMD_XGBE); machine_class_allow_dynamic_sysbus_dev(mc, TYPE_RAMFB_DEVICE); + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_PVPANIC_MMIO); machine_class_allow_dynamic_sysbus_dev(mc, TYPE_VFIO_PLATFORM); mc->block_default_type = IF_VIRTIO; mc->no_cdrom = 1; diff --git a/hw/misc/pvpanic.c b/hw/misc/pvpanic.c index c9382a8..b6b5c89 100644 --- a/hw/misc/pvpanic.c +++ b/hw/misc/pvpanic.c @@ -67,7 +67,7 @@ typedef struct PVPanicISAState { typedef struct PVPanicMMIOState { SysBusDevice parent_obj; /*<private>*/ - + uint32_t base; /* public */ MemoryRegion mr; } PVPanicMMIOState; @@ -151,10 +151,17 @@ static void pvpanic_mmio_initfn(Object *obj) sysbus_init_mmio(sbd, &s->mr); } +static Property pvpanic_mmio_properties[] = { + DEFINE_PROP_UINT32("mmio", PVPanicMMIOState, base, 0x09070000), + DEFINE_PROP_END_OF_LIST(), +}; + static void pvpanic_mmio_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); - + + dc->user_creatable = true; + dc->props = pvpanic_mmio_properties; set_bit(DEVICE_CATEGORY_MISC, dc->categories); } -- 1.8.3.1