ppc/pnv: Add a 'rp_model' class attribute for the PHB4 PEC

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>
staging
Cédric Le Goater 2022-01-18 12:56:31 +01:00
parent 45d22dcf2d
commit 32a07887be
2 changed files with 5 additions and 1 deletions

View 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 = {

View 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 */