e4e6db5283
The PnvPHB device is going to be the base device for all other powernv PHBs. It consists of a device that has the same user API as the other PHB, namely being a PCIHostBridge and having chip-id and index properties. It also has a 'backend' pointer that will be initialized with the PHB implementation that the device is going to use. The initialization of the PHB backend is done by checking the PHB version via a 'version' attribute that can be set via a global machine property. The 'version' field will be used to make adjustments based on the running version, e.g. PHB3 uses a 'chip' reference while PHB4 uses 'pec'. To init the PnvPHB bus we'll rely on helpers for each version. The version 3 helper is already added (pnv_phb3_bus_init), the PHB4 helper will be added later on. For now let's add the basic logic of the PnvPHB object, which consists mostly of pnv_phb_realize() doing all the work of checking the phb->version set, initializing the proper backend, passing through its attributes to the chosen backend, finalizing the backend realize and adding a root port in the end. Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com> Message-Id: <20220624084921.399219-3-danielhb413@gmail.com>
41 lines
1.6 KiB
Meson
41 lines
1.6 KiB
Meson
pci_ss = ss.source_set()
|
|
pci_ss.add(when: 'CONFIG_PAM', if_true: files('pam.c'))
|
|
pci_ss.add(when: 'CONFIG_PCI_BONITO', if_true: files('bonito.c'))
|
|
pci_ss.add(when: 'CONFIG_PCI_EXPRESS_DESIGNWARE', if_true: files('designware.c'))
|
|
pci_ss.add(when: 'CONFIG_PCI_EXPRESS_GENERIC_BRIDGE', if_true: files('gpex.c'))
|
|
pci_ss.add(when: ['CONFIG_PCI_EXPRESS_GENERIC_BRIDGE', 'CONFIG_ACPI'], if_true: files('gpex-acpi.c'))
|
|
pci_ss.add(when: 'CONFIG_PCI_EXPRESS_Q35', if_true: files('q35.c'))
|
|
pci_ss.add(when: 'CONFIG_PCI_EXPRESS_XILINX', if_true: files('xilinx-pcie.c'))
|
|
pci_ss.add(when: 'CONFIG_PCI_I440FX', if_true: files('i440fx.c'))
|
|
pci_ss.add(when: 'CONFIG_PCI_SABRE', if_true: files('sabre.c'))
|
|
pci_ss.add(when: 'CONFIG_XEN_IGD_PASSTHROUGH', if_true: files('xen_igd_pt.c'))
|
|
pci_ss.add(when: 'CONFIG_REMOTE_PCIHOST', if_true: files('remote.c'))
|
|
pci_ss.add(when: 'CONFIG_SH_PCI', if_true: files('sh_pci.c'))
|
|
|
|
# PPC devices
|
|
pci_ss.add(when: 'CONFIG_RAVEN_PCI', if_true: files('raven.c'))
|
|
pci_ss.add(when: 'CONFIG_GRACKLE_PCI', if_true: files('grackle.c'))
|
|
# NewWorld PowerMac
|
|
pci_ss.add(when: 'CONFIG_UNIN_PCI', if_true: files('uninorth.c'))
|
|
# PowerPC E500 boards
|
|
pci_ss.add(when: 'CONFIG_PPCE500_PCI', if_true: files('ppce500.c'))
|
|
# Pegasos2
|
|
pci_ss.add(when: 'CONFIG_MV64361', if_true: files('mv64361.c'))
|
|
|
|
# ARM devices
|
|
pci_ss.add(when: 'CONFIG_VERSATILE_PCI', if_true: files('versatile.c'))
|
|
|
|
# HPPA devices
|
|
pci_ss.add(when: 'CONFIG_DINO', if_true: files('dino.c'))
|
|
|
|
softmmu_ss.add_all(when: 'CONFIG_PCI', if_true: pci_ss)
|
|
|
|
specific_ss.add(when: 'CONFIG_PCI_POWERNV', if_true: files(
|
|
'pnv_phb3.c',
|
|
'pnv_phb3_msi.c',
|
|
'pnv_phb3_pbcq.c',
|
|
'pnv_phb4.c',
|
|
'pnv_phb4_pec.c',
|
|
'pnv_phb.c',
|
|
))
|