testpmd works with all DPDK devices, PCI included. Use GDB and break on businitfn_pci, main. Check that the PCI register function is called, and then the state of the bus list. You can also break on rte_bus_scan().
If you don't see the PCI bus anywhere, a possible explanation is that the bus is disabled in your build/.config file. Gaëtan On Tue, Nov 26, 2019 at 09:15:42AM +0530, Gadre Nayan wrote: > Hi, > > Thanks Rivet. > I was checking the testpmd application to test if my PMD is registered > on the PCI device list. > With the softnic pmd, rte_eal_init calls vdev_scan() > > But when I run testpmd with options: ./testpmd -l 0-3 -n 4 -- i > it again calls vdev_scan(). > Also only virtual device drivers are getting registered through > rte_vdev_register. > > I was expecting it to register rte_pci_register then call > rte_pci_scan() and then subsequently rte_pci_probe() > > Does testpmd work with PCI devices or only Vdevs. > I am trying to write my own PMD for a NIC on my laptop from Realtek. > > Thanks > Nayan > > On Mon, Nov 25, 2019 at 8:55 PM Gaëtan Rivet <[email protected]> wrote: > > > > On Mon, Nov 25, 2019 at 08:13:00PM +0530, Gadre Nayan wrote: > > > Hi, > > > > > > I am trying to understand RTE_REGISTER_BUS for PCI Bus. > > > > > > 1. Load uio, igb_uio, bind the NIC with igb_uio. > > > 2. load the application. > > > > > > Step 1, is mostly about registering Drivers with the PCI bus. > > > I am looking at when does RTE_REGISTER_BUS get called in this process. > > > > > > Thanks > > > Nayan > > > > Hello, > > > > RTE_REGISTER_ functions all uses RTE_INIT_PRIO(n) macro. > > This macro will only add the GCC attribute __attribute__((constructor(n), > > used)) > > to the symbole defined with RTE_INIT_PRIO() (attribute supported by all > > major compiler). > > > > This attribute adds the related function to the .init section of the > > generated ELF. This section is executed before the main() of the > > program. > > > > This allows libraries to define init and cleanup code that is executed > > automatically when linking against the lib. > > > > -- > > Gaėtan Rivet > > 6WIND -- Gaëtan Rivet 6WIND
