ppc/pnv: Add a 'rp_model' class attribute for the PHB4 PEC
authorCédric Le Goater <clg@kaod.org>
Tue, 18 Jan 2022 11:56:31 +0000 (12:56 +0100)
committerCédric Le Goater <clg@kaod.org>
Tue, 18 Jan 2022 11:56:31 +0000 (12:56 +0100)
PHB5 will introduce its own root port model. Prepare ground for it.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20220117122753.1655504-3-clg@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
hw/pci-host/pnv_phb4_pec.c
include/hw/pci-host/pnv_phb4.h

index b19e89236a637c99e9e3853780264f7a1b6c58c5..a3c4b4ef850c5fc1bb86ded6a16af9afcf3d1bda 100644 (file)
@@ -134,7 +134,9 @@ static void pnv_pec_default_phb_realize(PnvPhb4PecState *pec,
     }
 
     /* Add a single Root port if running with defaults */
-    pnv_phb_attach_root_port(PCI_HOST_BRIDGE(phb), TYPE_PNV_PHB4_ROOT_PORT);
+    pnv_phb_attach_root_port(PCI_HOST_BRIDGE(phb),
+                             PNV_PHB4_PEC_GET_CLASS(pec)->rp_model);
+
 }
 
 static void pnv_pec_realize(DeviceState *dev, Error **errp)
@@ -267,6 +269,7 @@ static void pnv_pec_class_init(ObjectClass *klass, void *data)
     pecc->stk_compat_size = sizeof(stk_compat);
     pecc->version = PNV_PHB4_VERSION;
     pecc->num_phbs = pnv_pec_num_phbs;
+    pecc->rp_model = TYPE_PNV_PHB4_ROOT_PORT;
 }
 
 static const TypeInfo pnv_pec_type_info = {
index 74fdec2b478bfc3157200354de4da75d2c791648..0c7635dec591c1faea2783f395357a7a2fbcc0dc 100644 (file)
@@ -203,6 +203,7 @@ struct PnvPhb4PecClass {
     int stk_compat_size;
     uint64_t version;
     const uint32_t *num_phbs;
+    const char *rp_model;
 };
 
 #endif /* PCI_HOST_PNV_PHB4_H */