qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

pnv_phb.h (1171B)


      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 /*
     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 
     55 #endif /* PCI_HOST_PNV_PHB_H */