Re: PCIe multipliers, how do they work?
Kurt Lidl <[email protected]> Mon, 11 Jun 2018 17:37:16 -0400
| Newsgroups | gmane.os.freebsd.devel.hardware |
|---|---|
| Message-ID | <[email protected]> |
> I'm wondering how these things work. The wikipedia PCIe page [1] says: > "PCI Express switches can create multiple endpoints out of one endpoint > to allow sharing one endpoint with multiple devices." So maybe they > use a PCIe switch? Poking around wikipedia and google has thus far > uncovered very little info about PCIe switches. Wikipedia is less > helpful than usual, and they keep making google less and less useful > for no apparent reason. I don't see any other obvious keywords > to google for. > > It isn't obvious how slot id/address is handled. How do commands and > data get routed to/from the correct card? > > Is any firmware or OS support required? It's worth reading the following two pages closely, as they talk about PCI Express endpoints, and how PCI-Express switches have to work to enable multiple cards. http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tutorial-guide-1 http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tutorial-guide-2 One such family of PCI-express switch parts is from PLX Technologies, now owned by Broadcom. One of typical functions of such as switch is to provide "non transparent bridging" - basically mapping the address space from one machine's PCI address into the address space of another PCI system. This can be used a communication path between devices, for example, using a block and slot type software architecture. There is some support for NTB in FreeBSD's master branch, under sys/dev/ntb - with drivers for the PLX/Avago/Broadcom parts, as well as a driver for the Intel parts found on certain Xeon and Atom CPUs. -Kurt _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-hardware To unsubscribe, send any mail to "[email protected]"