diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/man/man4/Makefile | 8 | ||||
-rw-r--r-- | share/man/man4/if_ntb.4 | 16 | ||||
-rw-r--r-- | share/man/man4/ntb.4 | 91 | ||||
-rw-r--r-- | share/man/man4/ntb_hw_intel.4 (renamed from share/man/man4/ntb_hw.4) | 66 | ||||
-rw-r--r-- | share/man/man4/ntb_hw_plx.4 | 118 | ||||
-rw-r--r-- | share/man/man4/ntb_transport.4 | 47 |
6 files changed, 280 insertions, 66 deletions
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 86bdc37..1a92920 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -383,7 +383,9 @@ MAN= aac.4 \ ng_vlan.4 \ nmdm.4 \ nsp.4 \ - ${_ntb_hw.4} \ + ${_ntb.4} \ + ${_ntb_hw_intel.4} \ + ${_ntb_hw_plx.4} \ ${_ntb_transport.4} \ ${_if_ntb.4} \ null.4 \ @@ -707,7 +709,6 @@ MLINKS+=netintro.4 net.4 \ netintro.4 networking.4 MLINKS+=${_nfe.4} ${_if_nfe.4} MLINKS+=nge.4 if_nge.4 -MLINKS+=${_ntb_hw.4} ${_ntb.4} MLINKS+=${_nxge.4} ${_if_nxge.4} MLINKS+=ow.4 onewire.4 MLINKS+=patm.4 if_patm.4 @@ -853,7 +854,8 @@ _xnb.4= xnb.4 _if_ntb.4= if_ntb.4 _ioat.4= ioat.4 _ntb.4= ntb.4 -_ntb_hw.4= ntb_hw.4 +_ntb_hw_intel.4= ntb_hw_intel.4 +_ntb_hw_plx.4= ntb_hw_plx.4 _ntb_transport.4=ntb_transport.4 _qlxge.4= qlxge.4 _qlxgb.4= qlxgb.4 diff --git a/share/man/man4/if_ntb.4 b/share/man/man4/if_ntb.4 index 6f52d77..5629eb4 100644 --- a/share/man/man4/if_ntb.4 +++ b/share/man/man4/if_ntb.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 29, 2016 +.Dd September 2, 2017 .Dt IF_NTB 4 .Os .Sh NAME @@ -35,6 +35,8 @@ To compile this driver into your kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device ntb" +.Cd "device ntb_transport" .Cd "device if_ntb" .Ed .Pp @@ -48,7 +50,7 @@ The following tunables are settable from the .Xr loader 8 : .Bl -ohang .It Va hw.if_ntb.num_queues -Number of transport queues to use per interface. +Limits maximal number of queues per interface. Default is unlimited. .El .Sh DESCRIPTION @@ -56,12 +58,10 @@ The .Nm driver attaches on top of the .Xr ntb_transport 4 -driver to utilize its resources to create virtual Ethernet interface between -the systems. -Interface capabilities depend on the underlying transport. -Typical MTU is about 64KB to reduce overhead. -By default one queue is used, but more may be configured. -The MAC address for interface is randomly generated. +driver to utilize one or more of its packet queues to create virtual +Ethernet network interface between the systems. +Typical MTU for the interface is about 64KB to reduce overhead. +Default MAC address for the interface is randomly generated. .Pp The .Nm diff --git a/share/man/man4/ntb.4 b/share/man/man4/ntb.4 new file mode 100644 index 0000000..598852d --- /dev/null +++ b/share/man/man4/ntb.4 @@ -0,0 +1,91 @@ +.\" +.\" Copyright (c) 2017 Alexander Motin <mav@FreeBSD.org> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd September 2, 2017 +.Dt NTB 4 +.Os +.Sh NAME +.Nm ntb +.Nd Non-Transparent Bridge subsystem +.Sh SYNOPSIS +To compile it into your kernel, +place the following lines in your kernel configuration file: +.Bd -ragged -offset indent +.Cd "device ntb" +.Ed +.Pp +Or, to load it as a module at boot, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +ntb_load="YES" +.Ed +.Pp +The following tunables are settable from the +.Xr loader 8 : +.Bl -ohang +.It Va hw.ntb.debug_level +Driver debug level. +The default value is 0, higher means more verbose. +.It Va hint.ntb_hw. Ns Ar X Ns Va .config +Configures a set of NTB functions, separated by commas, +and their resource allocation. +Each function can be configured as: "[<name>][:<mw>[:<spad>[:<db>]]]", where: +.Va name +is a name of the driver to attach (empty means any), +.Va mw +is a number of memory windows to allocate (empty means all available), +.Va spad +is a number of scratchpad registers to allocate (empty means all available), +.Va db +is a number of doorbells to allocate (empty means all available). +The default configuration is empty string, which means single function +with all available resources, allowing any driver to attach. +.El +.Sh DESCRIPTION +Non-Transparent Bridges allow to connect two computer systems with PCIe +link(s), providing each of them limited access to others memory space, +scratchpad registers and interrupts. +The +.Nm +subsystem uses those resources provided in generic way by hardware drivers +and splits them between several functions, according to specified +configuration. +.Sh SEE ALSO +.Xr if_ntb 4 , +.Xr ntb_transport 4 , +.Xr ntb_hw_intel 4 , +.Xr ntb_hw_plx 4 +.Sh AUTHORS +.An -nosplit +The +.Nm +subsystem was developed by Intel and originally written by +.An Carl Delsey Aq Mt carl@FreeBSD.org . +Later improvements were done by +.An Conrad E. Meyer Aq Mt cem@FreeBSD.org +and +.An Alexander Motin Aq Mt mav@FreeBSD.org . diff --git a/share/man/man4/ntb_hw.4 b/share/man/man4/ntb_hw_intel.4 index b6dffce..423dc96 100644 --- a/share/man/man4/ntb_hw.4 +++ b/share/man/man4/ntb_hw_intel.4 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2016 Alexander Motin <mav@FreeBSD.org> +.\" Copyright (c) 2016-2017 Alexander Motin <mav@FreeBSD.org> .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,66 +25,45 @@ .\" .\" $FreeBSD$ .\" -.Dd July 28, 2016 -.Dt NTB_HW 4 +.Dd August 30, 2017 +.Dt NTB_HW_INTEL 4 .Os .Sh NAME -.Nm ntb , -.Nm ntb_hw +.Nm ntb_hw_intel .Nd Intel(R) Non-Transparent Bridge driver .Sh SYNOPSIS To compile this driver into your kernel, place the following lines in your kernel configuration file: .Bd -ragged -offset indent -.Cd "device ntb_hw" +.Cd "device ntb" +.Cd "device ntb_hw_intel" .Ed .Pp Or, to load the driver as a module at boot, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent -ntb_hw_load="YES" +ntb_hw_intel_load="YES" .Ed -.Pp -The following tunables are settable from the -.Xr loader 8 : -.Bl -ohang -.It Va hw.ntb.debug_level -Driver debug level. -The default value is 0, higher means more verbose. -.It Va hint.ntb_hw. Ns Ar X Ns Va .config -Configures NTB resources split between several consumer devices. -Configuration of multiple consumer devices separated by commas. -Each device can be configured as: "<name>[:<mw>[:<spad>[:<db>]]]", where: -.Va name -is a name of the driver which should attach the device (empty means any), -.Va mw -is a number of memory windows to allocate (empty means all available), -.Va spad -is a number of scratchpad registers to allocate (empty means all available), -.Va db -is a number of doorbells to allocate (empty means all available). -The default configuration is empty string, which means single device -with all available resources allowing any driver attachment. -.El .Sh DESCRIPTION -The NTB allows you to connect two computer systems using a PCIe link if they -have the correct equipment and connectors. -The -.Nm ntb_hw -driver provides support for the Non-Transparent Bridge (NTB) in the Intel S1200 -and Xeon E3/E5 processor families. The -.Nm -driver hides hardware details, exposing memory windows, scratchpads and -doorbells via hardware independent KPI. +.Nm ntb_hw_intel +driver provides support for the Non-Transparent Bridge (NTB) hardware in +Intel Xeon E3/E5 and S1200 processor families, which allow one of their PCIe +ports to be switched from transparent to non-transparent bridge mode. +In this mode bridge looks not as a PCI bridge, but as PCI endpoint device. +The driver hides hardware details, exposing memory windows, scratchpads +and doorbells of the other side via hardware independent KPI to +.Xr ntb 4 +subsystem. .Pp -The hardware provides 2-3 memory windows to the other system's memory, -16 scratchpad registers and 14/34 doorbells to interrupt the other system. +The hardware provides 2 or 3 memory windows to the other system's memory, +16 scratchpad registers and 14 or 34 doorbells to interrupt the other system. On Xeon processors one of memory windows is typically consumed by the driver -to workaround multiple hardware erratas. +itself to workaround multiple hardware erratas. .Sh CONFIGURATION The NTB configuration should be set by BIOS. -It includes enabling NTB, choosing between NTB-to-NTB or NTB-to-Root Port mode, +It includes enabling NTB, choosing between NTB-to-NTB (back-to-back) or +NTB-to-Root Port mode, enabling split BAR mode (one of two 64-bit BARs can be split into two 32-bit ones) and configuring BAR sizes in bits (from 12 to 29/39) for both NTB sides. .Pp @@ -92,8 +71,9 @@ The recommended configuration is NTB-to-NTB mode, split bar is enabled and all BAR sizes are set to 20 (1 MiB). This needs to be done on both systems. .Sh SEE ALSO +.Xr if_ntb 4 , .Xr ntb_transport 4 , -.Xr if_ntb 4 +.Xr ntb 4 , .Sh AUTHORS .An -nosplit The diff --git a/share/man/man4/ntb_hw_plx.4 b/share/man/man4/ntb_hw_plx.4 new file mode 100644 index 0000000..54500a1 --- /dev/null +++ b/share/man/man4/ntb_hw_plx.4 @@ -0,0 +1,118 @@ +.\" +.\" Copyright (c) 2017 Alexander Motin <mav@FreeBSD.org> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd August 30, 2017 +.Dt NTB_HW_PLX 4 +.Os +.Sh NAME +.Nm ntb_hw_plx +.Nd PLX/Avago/Broadcom Non-Transparent Bridge driver +.Sh SYNOPSIS +To compile this driver into your kernel, +place the following lines in your kernel configuration file: +.Bd -ragged -offset indent +.Cd "device ntb" +.Cd "device ntb_hw_plx" +.Ed +.Pp +Or, to load the driver as a module at boot, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +ntb_hw_plx_load="YES" +.Ed +.Pp +The following tunables are settable from the +.Xr loader 8 : +.Bl -ohang +.It Va hint.ntb_hw. Ns Ar X Ns Va .b2b +Being set to 1 (default) tells the driver attached to Virtual Interface of the +NTB that it works in NTB-to-NTB (back-to-back) mode, 0 -- NTB-to-Root Port. +Driver attached to Link Interface (visible from Root Port side) switches to +NTB-to-Root Port mode automatically, but one attached to Virtual Interface +can't detect what is on the other side and require external knowledge. +.El +.Sh DESCRIPTION +The +.Nm +driver provides support for the Non-Transparent Bridge (NTB) hardware in +PLX PCIe bridge chips, which allow up to two of their PCIe ports to be +switched from transparent to non-transparent bridge mode. +In this mode bridge looks not as a PCI bridge, but as PCI endpoint device. +The driver hides hardware details, exposing memory windows, scratchpads +and doorbells of the other side via hardware independent KPI to +.Xr ntb 4 +subsystem. +.Pp +Each PLX NTB provides up to 2 64-bit or 4 32-bit memory windows to the +other system's memory, 6 or 12 scratchpad registers and 16 doorbells to +interrupt the other system. +In NTB-to-NTB mode one of memory windows (or half of it, if bigger then 1MB) +is consumed by the driver itself to access scratchpad and doorbell registers +of the other side. +.Sh HARDWARE +The following PLX/Avago/Broadcom chips are supported by the +.Nm +driver: +.Pp +.Bl -bullet -compact +.It +PEX 8713 +.It +PEX 8717 +.It +PEX 8725 +.It +PEX 8733 +.It +PEX 8749 +.El +.Pp +, but it may also work with other compatible ones. +.Sh CONFIGURATION +The basic chip configuration should be done by serial EEPROM or via i2c. +It includes enabling NTB on one or both sides (choosing between NTB-to-NTB +(back-to-back) and NTB-to-Root Port modes) and configuring BARs sizes. +.Pp +The recommended mode is NTB-to-NTB mode, since while NTB-to-Root Port is +generally supported by the driver, it require PCI hotplug handling on the +Root Port, that may be difficult or cause different kinds of problems. +.Sh SEE ALSO +.Xr if_ntb 4 , +.Xr ntb_transport 4 , +.Xr ntb 4 , +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Alexander Motin Aq Mt mav@FreeBSD.org . +.Sh BUGS +There is no way to protect your system from malicious behavior on the other +system once the link is brought up. +Anyone with root or kernel access on the other system can read or write to +any location on your system. +In other words, only connect two systems that completely trust each other. diff --git a/share/man/man4/ntb_transport.4 b/share/man/man4/ntb_transport.4 index 43b412c..ef12b2a 100644 --- a/share/man/man4/ntb_transport.4 +++ b/share/man/man4/ntb_transport.4 @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2016 Alexander Motin <mav@FreeBSD.org> +.\" Copyright (c) 2016-2017 Alexander Motin <mav@FreeBSD.org> .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,14 +25,21 @@ .\" .\" $FreeBSD$ .\" -.Dd July 29, 2016 +.Dd September 2, 2017 .Dt NTB_TRANSPORT 4 .Os .Sh NAME .Nm ntb_transport .Nd Packet-oriented transport for Non-Transparent Bridges .Sh SYNOPSIS -To load the driver as a module at boot, place the following line in +To compile this driver into your kernel, +place the following lines in your kernel configuration file: +.Bd -ragged -offset indent +.Cd "device ntb" +.Cd "device ntb_transport" +.Ed +.Pp +Or, to load the driver as a module at boot, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent ntb_transport_load="YES" @@ -45,28 +52,44 @@ The following tunables are settable from the Driver debug level. The default value is 0, higher means more verbose. .It Va hint.ntb_transport. Ns Ar X Ns Va .config -Configures queues allocation for consumer devices, separated by commas. -Each device can be configured as: "<name>[:<queues>]", where: +Configures a set of the transport consumers, separated by commas. +Each consumer can be configured as: "[<name>][:<queues>]", where: .Va name -is a name of the driver which should attach the device (empty means any), +is a name of the driver to attach (empty means any), .Va queues -is a number of queues to allocate (empty means automatic), -The default configuration is empty string, which means single device -with one queue per memory window allowing any driver attachment. +is a number of queues to allocate (empty means automatic). +The default configuration is empty string, which means single consumer +with one queue per memory window, allowing any driver to attach. .El .Sh DESCRIPTION The .Nm driver attaches on top of the .Nm ntb -driver to utilize its resources to create set of bidirectional queues, +driver to utilize its resources to create a set of bidirectional queues, delivering packets between the systems. -The primary purpose of this is to be used by +The primary purpose of this driver is to be used by .Nm if_ntb network interface, but other consumers may also be developed using KPI. +.Pp +Each +.Nm +require from underlying +.Nm ntb +instance: +.Bl -bullet -compact +.It +1 or more memory windows; +.It +6 scratchpads, plus 2 more for each additional memory window; +.It +1 doorbell for each memory window or configured queue. +.El .Sh SEE ALSO .Xr if_ntb 4 , -.Xr ntb_hw 4 +.Xr ntb 4 , +.Xr ntb_hw_intel 4 , +.Xr ntb_hw_plx 4 .Sh AUTHORS .An -nosplit The |