xref: /openbmc/qemu/hw/pci-host/pnv_phb.h (revision 1f5d6b2ad14df9daad17e81d9e247bd1fd2fd5fc)
1 /*
2  * QEMU PowerPC PowerNV Proxy PHB model
3  *
4  * Copyright (c) 2022, IBM Corporation.
5  *
6  * This code is licensed under the GPL version 2 or later. See the
7  * COPYING file in the top-level directory.
8  */
9 
10 #ifndef PCI_HOST_PNV_PHB_H
11 #define PCI_HOST_PNV_PHB_H
12 
13 #include "hw/pci/pcie_host.h"
14 #include "hw/pci/pcie_port.h"
15 #include "qom/object.h"
16 
17 typedef struct PnvChip PnvChip;
18 typedef struct PnvPhb4PecState PnvPhb4PecState;
19 
20 struct PnvPHB {
21     PCIExpressHost parent_obj;
22 
23     uint32_t chip_id;
24     uint32_t phb_id;
25     uint32_t version;
26     char bus_path[8];
27 
28     PnvChip *chip;
29 
30     PnvPhb4PecState *pec;
31 
32     /* The PHB backend (PnvPHB3, PnvPHB4 ...) being used */
33     Object *backend;
34 };
35 
36 #define TYPE_PNV_PHB "pnv-phb"
37 OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB, PNV_PHB)
38 
39 #endif /* PCI_HOST_PNV_PHB_H */
40