]>
Commit | Line | Data |
---|---|---|
e4e6db52 DHB |
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 | ||
5ba76b61 DHB |
39 | /* |
40 | * PHB PCIe Root port | |
41 | */ | |
42 | #define PNV_PHB3_DEVICE_ID 0x03dc | |
43 | #define PNV_PHB4_DEVICE_ID 0x04c1 | |
44 | #define PNV_PHB5_DEVICE_ID 0x0652 | |
45 | ||
46 | typedef struct PnvPHBRootPort { | |
47 | PCIESlot parent_obj; | |
48 | ||
49 | uint32_t version; | |
50 | } PnvPHBRootPort; | |
51 | ||
52 | #define TYPE_PNV_PHB_ROOT_PORT "pnv-phb-root-port" | |
53 | OBJECT_DECLARE_SIMPLE_TYPE(PnvPHBRootPort, PNV_PHB_ROOT_PORT) | |
54 | ||
e4e6db52 | 55 | #endif /* PCI_HOST_PNV_PHB_H */ |