As announced in the deprecation notice, most ABIs in PCI bus will be removed.
As there exist some applications that want to access PCI memory resource, two new APIs are defined in Patch 1 and corresponding changes are applied to testpmd in Patch 2. Patch 3-4 clean up the unnecessary usage of PCI bus header in examples. Patch 5-6 clean up the unused PCI related structure in kni library and related tests and examples. Patch 7 finally removes most of ABIs in PCI bus. --- v2: - Add check on call of port_id_pci_reg_write (Xiaoyun) - Combine two clean-up patches in test and example, and backport (David) Chenbo Xia (7): bus/pci: add new memory resource access APIs app/testpmd: use PCI memory resource access APIs examples/ethtool: use PCI library API to get PCI address examples/kni: remove unused PCI bus header kni: remove unused PCI info from test and example kni: replace unused variable definition with reserved bytes bus/pci: remove ABIs in PCI bus app/test-pmd/config.c | 50 +-- app/test-pmd/testpmd.h | 54 +-- app/test/test_kni.c | 57 --- app/test/virtual_pmd.c | 2 +- doc/guides/rel_notes/release_21_11.rst | 8 + drivers/baseband/acc100/rte_acc100_pmd.c | 2 +- .../fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 2 +- drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 2 +- drivers/bus/pci/bsd/pci.c | 1 - drivers/bus/pci/linux/pci.c | 1 - drivers/bus/pci/linux/pci_uio.c | 1 - drivers/bus/pci/linux/pci_vfio.c | 1 - drivers/bus/pci/meson.build | 4 + drivers/bus/pci/pci_common.c | 78 ++++ drivers/bus/pci/pci_common_uio.c | 1 - drivers/bus/pci/pci_driver.h | 402 ++++++++++++++++++ drivers/bus/pci/pci_params.c | 1 - drivers/bus/pci/private.h | 3 +- drivers/bus/pci/rte_bus_pci.h | 387 ++--------------- drivers/bus/pci/version.map | 28 +- drivers/common/cnxk/roc_platform.h | 2 +- drivers/common/mlx5/linux/mlx5_common_verbs.c | 2 +- drivers/common/mlx5/mlx5_common_pci.c | 2 +- drivers/common/octeontx2/otx2_dev.h | 2 +- drivers/common/octeontx2/otx2_sec_idev.c | 2 +- drivers/common/qat/qat_device.h | 2 +- drivers/common/qat/qat_qp.c | 2 +- drivers/common/sfc_efx/sfc_efx.h | 2 +- drivers/compress/mlx5/mlx5_compress.c | 2 +- drivers/compress/octeontx/otx_zip.h | 2 +- drivers/compress/qat/qat_comp.c | 2 +- drivers/crypto/ccp/ccp_dev.h | 2 +- drivers/crypto/ccp/ccp_pci.h | 2 +- drivers/crypto/ccp/rte_ccp_pmd.c | 2 +- drivers/crypto/cnxk/cn10k_cryptodev.c | 2 +- drivers/crypto/cnxk/cn9k_cryptodev.c | 2 +- drivers/crypto/mlx5/mlx5_crypto.c | 2 +- drivers/crypto/nitrox/nitrox_device.h | 2 +- drivers/crypto/octeontx/otx_cryptodev.c | 2 +- drivers/crypto/octeontx/otx_cryptodev_ops.c | 2 +- drivers/crypto/octeontx2/otx2_cryptodev.c | 2 +- drivers/crypto/qat/qat_sym.c | 2 +- drivers/crypto/qat/qat_sym_pmd.c | 2 +- drivers/crypto/virtio/virtio_cryptodev.c | 2 +- drivers/crypto/virtio/virtio_pci.h | 2 +- drivers/event/dlb2/pf/dlb2_main.h | 2 +- drivers/event/dlb2/pf/dlb2_pf.c | 2 +- drivers/event/octeontx/ssovf_probe.c | 2 +- drivers/event/octeontx/timvf_probe.c | 2 +- drivers/event/octeontx2/otx2_evdev.c | 2 +- drivers/mempool/cnxk/cnxk_mempool.c | 2 +- drivers/mempool/octeontx/octeontx_fpavf.c | 2 +- drivers/mempool/octeontx2/otx2_mempool.c | 2 +- drivers/mempool/octeontx2/otx2_mempool.h | 2 +- drivers/mempool/octeontx2/otx2_mempool_irq.c | 2 +- drivers/meson.build | 4 + drivers/net/ark/ark_ethdev.c | 2 +- drivers/net/avp/avp_ethdev.c | 2 +- drivers/net/bnx2x/bnx2x.h | 2 +- drivers/net/bnxt/bnxt.h | 2 +- drivers/net/bonding/rte_eth_bond_args.c | 2 +- drivers/net/cxgbe/base/adapter.h | 2 +- drivers/net/cxgbe/cxgbe_ethdev.c | 2 +- drivers/net/e1000/em_ethdev.c | 2 +- drivers/net/e1000/em_rxtx.c | 2 +- drivers/net/e1000/igb_ethdev.c | 2 +- drivers/net/e1000/igb_pf.c | 2 +- drivers/net/ena/ena_ethdev.h | 2 +- drivers/net/enic/base/vnic_dev.h | 2 +- drivers/net/enic/enic_ethdev.c | 2 +- drivers/net/enic/enic_main.c | 2 +- drivers/net/enic/enic_vf_representor.c | 2 +- drivers/net/hinic/base/hinic_pmd_hwdev.c | 2 +- drivers/net/hinic/base/hinic_pmd_hwif.c | 2 +- drivers/net/hinic/base/hinic_pmd_nicio.c | 2 +- drivers/net/hinic/hinic_pmd_ethdev.c | 2 +- drivers/net/hns3/hns3_ethdev.c | 2 +- drivers/net/hns3/hns3_rxtx.c | 2 +- drivers/net/i40e/i40e_ethdev.c | 2 +- drivers/net/i40e/i40e_ethdev_vf.c | 2 +- drivers/net/i40e/i40e_vf_representor.c | 2 +- drivers/net/igc/igc_ethdev.c | 2 +- drivers/net/ionic/ionic.h | 2 +- drivers/net/ionic/ionic_ethdev.c | 2 +- drivers/net/ipn3ke/ipn3ke_ethdev.c | 2 +- drivers/net/ipn3ke/ipn3ke_representor.c | 2 +- drivers/net/ipn3ke/ipn3ke_tm.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.h | 2 +- drivers/net/mlx4/mlx4_ethdev.c | 2 +- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 2 +- drivers/net/mlx5/linux/mlx5_os.c | 2 +- drivers/net/mlx5/mlx5.c | 2 +- drivers/net/mlx5/mlx5_ethdev.c | 2 +- drivers/net/mlx5/mlx5_txq.c | 2 +- drivers/net/netvsc/hn_vf.c | 2 +- drivers/net/octeontx/base/octeontx_pkivf.c | 2 +- drivers/net/octeontx/base/octeontx_pkovf.c | 2 +- drivers/net/octeontx2/otx2_ethdev_irq.c | 2 +- drivers/net/qede/base/bcm_osal.h | 2 +- drivers/net/sfc/sfc.h | 2 +- drivers/net/sfc/sfc_ethdev.c | 2 +- drivers/net/sfc/sfc_sriov.c | 2 +- drivers/net/thunderx/nicvf_ethdev.c | 2 +- drivers/net/txgbe/txgbe_ethdev.h | 2 +- drivers/net/txgbe/txgbe_flow.c | 2 +- drivers/net/txgbe/txgbe_pf.c | 2 +- drivers/net/virtio/virtio_pci.h | 2 +- drivers/net/virtio/virtio_pci_ethdev.c | 2 +- drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy_irq.c | 2 +- drivers/raw/cnxk_bphy/cnxk_bphy_irq.h | 2 +- drivers/raw/ifpga/ifpga_rawdev.c | 2 +- drivers/raw/ifpga/rte_pmd_ifpga.c | 2 +- drivers/raw/ioat/idxd_pci.c | 2 +- drivers/raw/ioat/ioat_rawdev.c | 2 +- drivers/raw/ntb/ntb.c | 2 +- drivers/raw/ntb/ntb_hw_intel.c | 2 +- drivers/raw/octeontx2_dma/otx2_dpi_rawdev.c | 2 +- drivers/raw/octeontx2_ep/otx2_ep_enqdeq.c | 2 +- drivers/raw/octeontx2_ep/otx2_ep_rawdev.c | 2 +- drivers/regex/mlx5/mlx5_regex.c | 2 +- drivers/regex/mlx5/mlx5_regex_fastpath.c | 2 +- drivers/vdpa/ifc/base/ifcvf_osdep.h | 2 +- drivers/vdpa/ifc/ifcvf_vdpa.c | 2 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 2 +- examples/ethtool/lib/rte_ethtool.c | 14 +- examples/ethtool/meson.build | 2 +- examples/ip_pipeline/kni.c | 16 - examples/kni/main.c | 1 - lib/ethdev/ethdev_pci.h | 2 +- lib/eventdev/eventdev_pmd_pci.h | 2 +- lib/kni/rte_kni.h | 4 +- 135 files changed, 711 insertions(+), 633 deletions(-) create mode 100644 drivers/bus/pci/pci_driver.h -- 2.17.1