<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/ofed/include/linux/mlx4/device.h, branch stable/9</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=stable%2F9</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=stable%2F9'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2017-08-07T13:27:35Z</updated>
<entry>
<title>MFC r321782:</title>
<updated>2017-08-07T13:27:35Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2017-08-07T13:27:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4f2377f3caddadadfddc2ad0a5d88b8529bef5f0'/>
<id>urn:sha1:4f2377f3caddadadfddc2ad0a5d88b8529bef5f0</id>
<content type='text'>
Remove some dead statistics related code and a structure field from the
mlx4en driver which is used by its Linux counterpart, but not under
FreeBSD.

Sponsored by:	Mellanox Technologies
</content>
</entry>
<entry>
<title>MFC r321772:</title>
<updated>2017-08-07T13:17:57Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2017-08-07T13:17:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=446ebe996f21e4e235a97cd88b398edaaf45b1b9'/>
<id>urn:sha1:446ebe996f21e4e235a97cd88b398edaaf45b1b9</id>
<content type='text'>
Fix broken usage of the mlx4_read_clock() function:
 - return value has too small width
 - cycle_t is unsigned and cannot be less than zero

Sponsored by:	Mellanox Technologies
</content>
</entry>
<entry>
<title>MFC r313555:</title>
<updated>2017-05-19T12:56:18Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2017-05-19T12:56:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a38a6ce867c4f1e619c44ef09bcbab8eaf7abe1c'/>
<id>urn:sha1:a38a6ce867c4f1e619c44ef09bcbab8eaf7abe1c</id>
<content type='text'>
Flexible and asymmetric allocation of EQs and MSI-X vectors for PF/VFs.

Previously, the mlx4 driver queried the firmware in order to get the
number of supported EQs. Under SRIOV, since this was done before the
driver notified the firmware how many VFs it actually needs, the
firmware had to take into account a worst case scenario and always
allocated four EQs per VF, where one was used for events while the
others were used for completions. Now, when the firmware supports the
asymmetric allocation scheme, denoted by exposing num_sys_eqs &gt; 0 (--&gt;
MLX4_DEV_CAP_FLAG2_SYS_EQS), we use the QUERY_FUNC command to query
the firmware before enabling SRIOV. Thus we can get more EQs and MSI-X
vectors per function. Moreover, when running in the new
firmware/driver mode, the limitation that the number of EQs should be
a power of two is lifted.

Obtained from:		Linux (dual BSD/GPLv2 licensed)
Submitted by:		Dexuan Cui @ microsoft . com
Differential Revision:	https://reviews.freebsd.org/D8867
Sponsored by:		Mellanox Technologies
</content>
</entry>
<entry>
<title>MFC r313556:</title>
<updated>2017-05-19T12:42:33Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2017-05-19T12:42:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a13d6b41829ba9e41df347fd8002fad1a7f1d41d'/>
<id>urn:sha1:a13d6b41829ba9e41df347fd8002fad1a7f1d41d</id>
<content type='text'>
Change mlx4 QP allocation scheme.

When using Blue-Flame, BF, the QPN overrides the VLAN, CV, and SV
fields in the WQE. Thus, BF may only be used for QPNs with bits 6,7
unset.

The current ethernet driver code reserves a TX QP range with 256b
alignment.

This is wrong because if there are more than 64 TX QPs in use, QPNs &gt;=
base + 65 will have bits 6/7 set.

This problem is not specific for the Ethernet driver, any entity that
tries to reserve more than 64 BF-enabled QPs should fail. Also, using
ranges is not necessary here and is wasteful.

The new mechanism introduced here will support reservation for "Eth
QPs eligible for BF" for all drivers: bare-metal, multi-PF, and VFs
(when hypervisors support WC in VMs). The flow we use is:

1. In mlx4_en, allocate Tx QPs one by one instead of a range allocation,
   and request "BF enabled QPs" if BF is supported for the function

2. In the ALLOC_RES FW command, change param1 to:
a. param1[23:0]  - number of QPs
b. param1[31-24] - flags controlling QPs reservation

Bit 31 refers to Eth blueflame supported QPs. Those QPs must have bits
6 and 7 unset in order to be used in Ethernet.

Bits 24-30 of the flags are currently reserved.

When a function tries to allocate a QP, it states the required
attributes for this QP. Those attributes are considered "best-effort".
If an attribute, such as Ethernet BF enabled QP, is a must-have
attribute, the function has to check that attribute is supported
before trying to do the allocation.

In a lower layer of the code, mlx4_qp_reserve_range masks out the bits
which are unsupported. If SRIOV is used, the PF validates those
attributes and masks out unsupported attributes as well. In order to
notify VFs which attributes are supported, the VF uses QUERY_FUNC_CAP
command. This command's mailbox is filled by the PF, which notifies
which QP allocation attributes it supports.

Obtained from:		Linux (dual BSD/GPLv2 licensed)
Submitted by:		Dexuan Cui @ microsoft . com
Differential Revision:	https://reviews.freebsd.org/D8868
Sponsored by:		Mellanox Technologies
</content>
</entry>
<entry>
<title>MFC r283612, r290710, r291694, r291699 and r291793:</title>
<updated>2015-12-11T18:28:20Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2015-12-11T18:28:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f99c1d32ef7511969efd473e364b1d1dfa33c0f1'/>
<id>urn:sha1:f99c1d32ef7511969efd473e364b1d1dfa33c0f1</id>
<content type='text'>
- Add SIOCGI2C ioctl support to the driver. Would work only on ConnectX-3
  with fresh firmware. The low level code is based on code provided by
  Mellanox.
- Fix print formatting compile warnings for Sparc64 and PowerPC platforms.
- Updated the mlx4 and mlxen drivers to the latest version, v2.1.6:
  - Added support for dumping the SFP EEPROM content to dmesg.
  - Fixed handling of network interface capability IOCTLs.
  - Fixed race when loading and unloading the mlxen driver by applying
    appropriate locking.
  - Removed two unused C-files.
- Convert the mlxen driver to use the BUSDMA(9) APIs instead of
  vtophys() when loading mbufs for transmission and reception. While at
  it all pointer arithmetic and cast qualifier issues were fixed, mostly
  related to transmission and reception.
- Fix i386 build WITH_OFED=YES. Remove some redundant KASSERTs.

Sponsored by:	Mellanox Technologies
Differential Revision:	https://reviews.freebsd.org/D4283
Differential Revision:	https://reviews.freebsd.org/D4284
</content>
</entry>
<entry>
<title>MFC r279584:</title>
<updated>2015-03-07T18:44:42Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2015-03-07T18:44:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c3694738d4a4a8e05fc5395c5d97778782903e50'/>
<id>urn:sha1:c3694738d4a4a8e05fc5395c5d97778782903e50</id>
<content type='text'>
Updates for the Mellanox ethernet driver

&gt; List of fixes:
  * use correct format for GID printouts
  * double array indexing
  * spelling in printouts
  * void pointer arithmetic
  * allow more receive rings
  * correct maximum number of transmit rings
  * use "const" instead of "static" for constants
  * check for invalid VLAN tags
  * check for lack of IRQ resources
&gt; Added more hardware specific defines
&gt; Added more verbose printouts of firmware status codes

Sponsored by:	Mellanox Technologies
</content>
</entry>
<entry>
<title>MFC r273135 and r273867:</title>
<updated>2014-10-30T17:05:32Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2014-10-30T17:05:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b81a4a9cb3aa494ee1d111a9c7a31caca00c825c'/>
<id>urn:sha1:b81a4a9cb3aa494ee1d111a9c7a31caca00c825c</id>
<content type='text'>
Update the OFED Linux compatibility layer and
Mellanox hardware driver(s):

- Properly name an inclusion guard.
- Fix compile warnings regarding unsigned enums.
- Fix compile warning regarding unused variable.
- Add two new sysctl nodes.
- Remove all empty linux header files.
- Make an error printout more verbose.
- Use "mod_delayed_work()" instead of
  cancelling and starting a timeout.
- Implement more Linux scatterlist
  functions.
- Don't forget to add "options OFED" to
  the kernel configuration file before
  using infiniband.

Sponsored by:	Mellanox Technologies
</content>
</entry>
<entry>
<title>MFC r254122, r254123, r256116, r255970, r247671, r269861, r268314, r256269,</title>
<updated>2014-10-30T15:41:25Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2014-10-30T15:41:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f5b416b52dfc022f915ae19d84241c8aa58c4f93'/>
<id>urn:sha1:f5b416b52dfc022f915ae19d84241c8aa58c4f93</id>
<content type='text'>
  r255969, r256179, r230135, r254121, r255932, r255972, r255973, r256281,
  r256470, r257867, r259608, r269862, r271127, r272407, r257864, r256682,
  r258276, r254734, r247675, r254735 and r272683:

Hardware driver update from Mellanox Technologies, including:
 - improved performance
 - better stability
 - new features
 - bugfixes

Supported HCAs:
 - ConnectX-2
 - ConnectX-3
 - ConnectX-3 Pro

NOTE:
  - TSO feature needs r271946, which is not yet merged.

Sponsored by:	Mellanox Technologies
</content>
</entry>
<entry>
<title> - Implement wake-on-lan support in mlxen.</title>
<updated>2011-03-26T00:54:01Z</updated>
<author>
<name>Jeff Roberson</name>
<email>jeff@FreeBSD.org</email>
</author>
<published>2011-03-26T00:54:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cafd78fc6e777b5a126108b05928b760239807f0'/>
<id>urn:sha1:cafd78fc6e777b5a126108b05928b760239807f0</id>
<content type='text'>
</content>
</entry>
<entry>
<title> - Merge in OFED 1.5.3 from projects/ofed/head</title>
<updated>2011-03-21T09:58:24Z</updated>
<author>
<name>Jeff Roberson</name>
<email>jeff@FreeBSD.org</email>
</author>
<published>2011-03-21T09:58:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=aa0a1e58f0189b0fde359a8bda032887e72057fa'/>
<id>urn:sha1:aa0a1e58f0189b0fde359a8bda032887e72057fa</id>
<content type='text'>
</content>
</entry>
</feed>
