![Logan Gunthorpe](/assets/img/avatar_default.png)
Microsemi's "Switchtec" line of PCI switch devices is already well supported by the kernel with standard PCI switch drivers. However, the Switchtec device advertises a special management endpoint with a separate PCI function address and class code. This endpoint enables some additional functionality which includes: * Packet and Byte Counters * Switch Firmware Upgrades * Event and Error logs * Querying port link status * Custom user firmware commands Add a switchtec kernel module which provides PCI driver that exposes a char device. The char device provides userspace access to this interface through read, write and (optionally) poll calls. A userspace tool and library which utilizes this interface is available at [1]. This tool takes inspiration (and borrows some code) from nvme-cli [2]. The tool is largely complete at this time but additional features may be added in the future. [1] https://github.com/sbates130272/switchtec-user [2] https://github.com/linux-nvme/nvme-cli [Dan Carpenter <dan.carpenter@oracle.com>: don't invert error codes] [Christophe JAILLET <christophe.jaillet@wanadoo.fr>: fix switchtec_dev_open() error handling] Tested-by: Krishna Dhulipala <krishnad@fb.com> Signed-off-by: Logan Gunthorpe <logang@deltatee.com> Signed-off-by: Stephen Bates <stephen.bates@microsemi.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Wei Zhang <wzhang@fb.com> Reviewed-by: Jens Axboe <axboe@fb.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
14 lines
417 B
Plaintext
14 lines
417 B
Plaintext
menu "PCI switch controller drivers"
|
|
depends on PCI
|
|
|
|
config PCI_SW_SWITCHTEC
|
|
tristate "MicroSemi Switchtec PCIe Switch Management Driver"
|
|
help
|
|
Enables support for the management interface for the MicroSemi
|
|
Switchtec series of PCIe switches. Supports userspace access
|
|
to submit MRPC commands to the switch via /dev/switchtecX
|
|
devices. See <file:Documentation/switchtec.txt> for more
|
|
information.
|
|
|
|
endmenu
|