Commit graph

494 commits

Author SHA1 Message Date
Andrew Rybchenko
a3fe009ab4 sfxge(4): add possibility to control event queue performance profile
It is ignored on SFN5xxx/6xxx (aka Siena).

Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision:  https://reviews.freebsd.org/D8931
2016-12-28 17:45:52 +00:00
Andrew Rybchenko
75fed2ce6f sfxge(4): fix invalid type of eft_unicst_filter_count
Found by clang when boolean_t is defined as bool for DPDK PMD.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 16:28:09 +00:00
Andrew Rybchenko
80d051ee13 sfxge(4): do not initialize enumerated type variable to another type
Fix build warning generated by ICC.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 16:21:46 +00:00
Andrew Rybchenko
406b8d7d9b sfxge(4): translate MC_CMD_ERR_ERANGE to host errno value
This is needed because MCDI command MC_CMD_REKEY can return
MC_CMD_ERR_ERANGE.

Submitted by:   Tom Millington <tmillington at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 15:24:44 +00:00
Andrew Rybchenko
c75d636205 sfxge(4): rename hunt_bist_* methods to ef10_bist_*
Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 13:28:44 +00:00
Andrew Rybchenko
3222b9de29 sfxge(4): cleanup: improve prefast annotations
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:43:11 +00:00
Andrew Rybchenko
1f4bb1bd2a sfxge(4): fix defined-but-not-used warning if neither VPD nor NVRAM opt enabled
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:28:16 +00:00
Andrew Rybchenko
56ec54c70f sfxge(4): cleanup: add missing spaces
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:25:17 +00:00
Andrew Rybchenko
98a9ac91f0 sfxge(4): cleanup: avoid unspecified unsigned
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:19:54 +00:00
Andrew Rybchenko
60cf15c592 sfxge(4): enclose macro complex value in parenthesis
Found by DPDK checkpatches.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:11:15 +00:00
Andrew Rybchenko
09b3e655d5 sfxge(4): make strings array pointer itself immutable
Found by DPDK checkpatches.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:09:45 +00:00
Andrew Rybchenko
a260bd77cf sfxge(4): cleanup: add const qualifier to const array pointer
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:07:34 +00:00
Andrew Rybchenko
69621b26c0 sfxge(4): cleanup: avoid spaces before TAB
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:04:36 +00:00
Andrew Rybchenko
b99afef3b3 sfxge(4): cleanup: avoid space just before TAB in efx_types.h
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:03:06 +00:00
Andrew Rybchenko
01a6119ccf sfxge(4): cleanup: use TAB to indent
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 11:01:01 +00:00
Andrew Rybchenko
6b3fab1a53 sfxge(4): cleanup: add missing space between type and pointer symbol
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:53:53 +00:00
Andrew Rybchenko
bf42516d2c sfxge(4): cleanup: open brace should be on a type name line
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:52:04 +00:00
Andrew Rybchenko
5e9a2dc5d6 sfxge(4): cleanup: remove trailing whitespaces
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:49:41 +00:00
Andrew Rybchenko
fe497b15a1 sfxge(4): cleanup: pointer symbol should go together with struct member name
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:48:15 +00:00
Andrew Rybchenko
75b16fa082 sfxge(4): cleanup: avoid C99 // comments
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:47:04 +00:00
Andrew Rybchenko
1e57660f86 sfxge(4): cleanup: remove unnecessary spaces
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:45:14 +00:00
Andrew Rybchenko
2910c2465f sfxge(4): cleanup: use spaces around binary arithmetic operations
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:44:03 +00:00
Andrew Rybchenko
6d4e783ecb sfxge(4): cleanup: fix wrong indent
Found by DPDK checkpatch.sh

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:43:04 +00:00
Andrew Rybchenko
85365dfcbf sfxge(4): cleanup: remove trailing whitespace
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:40:21 +00:00
Andrew Rybchenko
62b5fe03b9 sfxge(4): cleanup: fix typo in siena_mac_loopback_set() instrumentation
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-12-28 10:39:11 +00:00
Andrew Rybchenko
44fcad033f sfxge(4): do not limit driver RSS table to RSS channels max
Specification of entire RSS table in the driver allows to spread traffic
more equally across CPUs/RSS channels if number of RSS channels is not
power of 2.

Reviewed by:    philip
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision: https://reviews.freebsd.org/D8910
2016-12-27 08:51:26 +00:00
Bryan Drewery
28323add09 Fix improper use of "its".
Sponsored by:	Dell EMC Isilon
2016-11-08 23:59:41 +00:00
Andrew Rybchenko
b36a7ad2c9 sfxge(4): update external port mapping for Medford
Extend the mapping table for external port numbering to support port modes
which output to the second external port only. Where supported, map from
the current port mode rather than inferring from all the available modes.
Updated comments for clarity.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision:  https://reviews.freebsd.org/D8210
2016-10-11 13:08:48 +00:00
Andrew Rybchenko
622429035a sfxge(4): sync tlv_layout.h with firmwaresrc and update port-mode definition use
It fixes driver attach issue to a new firmware which reports a new
port-modes.

Reviewed by:    gnn
Submitted by:   Tom Millington <tmillington at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision:  https://reviews.freebsd.org/D8203
2016-10-10 09:54:01 +00:00
Andrew Rybchenko
715a90f64e sfxge(4): bump version to the closest out-of-tree driver version
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-06-09 12:33:53 +00:00
Andrew Rybchenko
af58aa462e sfxge(4): handle negative ticks difference correctly
ticks are signed int and if statistics is not updated for a long time
(more than INT_MAX ticks, but less than UINT_MAX) difference becomes
negative and less than hz for a long time.

Other option to repeat is simply load driver (which initializes
timestamps to 0) when ticks are negative.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6777
2016-06-09 12:29:03 +00:00
Andrew Rybchenko
414dec5f0f sfxge(4): host byte order is required for IP ID in TSO descriptors
Submitted by:   Artem V. Andreev <Artem.Andreev at oktetlabs.ru>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-06-08 13:14:52 +00:00
Andrew Rybchenko
37b580cbf9 sfxge(4): cleanup: add missing probes to ef10_nvram_segment_write_tlv
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-06-08 12:40:21 +00:00
Andrew Rybchenko
ba3049f99c sfxge(4): update TX vFIFO ULL tag location to avoid merge conflict
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-06-06 09:30:31 +00:00
Andrew Rybchenko
3bbc1e08ed sfxge(4): pick an RSS bucket for the packet enqueued and select TXQ accordingly
Submitted by:   Ivan Malov <Ivan.Malov at oktetlabs.ru>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D6723
2016-06-06 09:08:16 +00:00
Andrew Rybchenko
f949e9f802 sfxge(4): set up the indirection table using the kernel-driven RSS bucket ids
Submitted by:   Ivan Malov <Ivan.Malov at oktetlabs.ru>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D6722
2016-06-06 09:07:26 +00:00
Andrew Rybchenko
35c0644e49 sfxge(4): bind interrupts to CPUs in accordance with bucket to CPU map
Submitted by:   Ivan Malov <Ivan.Malov at oktetlabs.ru>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D6721
2016-06-06 09:06:38 +00:00
Andrew Rybchenko
8e7d32065b sfxge(4): restrict the maximum number of RSS channels by the number of RSS buckets
This is done because one has no point to have more channels since they
will be unused.

Submitted by:   Ivan Malov <Ivan.Malov at oktetlabs.ru>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D6720
2016-06-06 09:05:52 +00:00
Andrew Rybchenko
2da8819492 sfxge(4): get RSS key to be programmed into NIC from the kernel
Submitted by:   Ivan Malov <Ivan.Malov at oktetlabs.ru>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D6719
2016-06-06 09:05:06 +00:00
Andrew Rybchenko
995a3bf49c sfxge(4): allow firmware to auto-configure event queues on Medford
On Medford, licenses are required to enable RX and event cut through and to
disable RX batching. To avoid the need for the driver to make decisions based on
the licensing state, the MC_CMD_INIT_EVQ has been extended to allow us to leave
the decision to the firmware. If the adapter is licensed for low-latency use,
the firmware will choose the optimal settings for latency, otherwise it will use
the best settings for throughput.

For Huntington we still need to choose the settings ourselves.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6717
2016-06-05 06:37:54 +00:00
Andrew Rybchenko
095bde9316 sfxge(4): always be ready to receive batched events
When the low-latency firmware variant is running, it is reported as not
being capable of batching RX events, but it can still do so if the
FORCE_EV_MERGING flag is set on an RXQ.  Therefore we need to handle
batched RX events even if the capability isn't set.

If this bug is fixed in the firmware such that the capability is set
even when running the low-latency firmware variant, it will almost
always be reported so I don't think we lose much by removing the check.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6705
2016-06-04 09:20:46 +00:00
Andrew Rybchenko
b839ed60bd sfxge(4): add helper to compute timer quantum
This also adjusts the timer values used to match the Linux net
driver implementation:
a) non-zero time intervals should result in at least one quantum
b) timer load/reload values are only zero biased for Falcon/Siena

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6704
2016-06-04 09:17:45 +00:00
Andrew Rybchenko
e26f5dac7f sfxge(4): support EVQ timer workaround via MCDI
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/6675
2016-06-03 05:27:34 +00:00
Andrew Rybchenko
6bf4498cbc sfxge(4): cleanup: remove unused variables in common code
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-06-01 14:16:16 +00:00
Andrew Rybchenko
e6023d7095 sfxge(4): cleanup: add missing space after if keyword
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-06-01 14:11:40 +00:00
Andrew Rybchenko
5c4c3d9285 sfxge(4): set moderation in efx_ev_qcreate
This simplifies setting an initial interrupt moderation value, and
avoids most calls to evx_ev_qmoderate from contexts where MCDI is
not allowed (MCDI is need for an EVQ timer workaround in a later patch).

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6673
2016-06-01 14:03:07 +00:00
Andrew Rybchenko
84bcd65e0f sfxge(4): cope with code duplication on SW events composition
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision:  https://reviews.freebsd.org/D6666
2016-06-01 06:51:19 +00:00
Andrew Rybchenko
e1399ed7a2 sfxge(4): avoid code duplication in SW events definition
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision:  https://reviews.freebsd.org/D6662
2016-05-31 20:54:42 +00:00
Andrew Rybchenko
9885e222ea sfxge(4): move definition of the SW events to sfxge.h
Tx flush done event is defined and Rx-specific header is not a good
place for it.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
2016-05-31 18:34:39 +00:00
Andrew Rybchenko
7d52b4a8a1 sfxge(4): zero should be used as RxQ label in SW event
The buggy code was using the rxq index but should use the evq label
associated with the rxq. It was missed in r298735.

Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision:  https://reviews.freebsd.org/D6661
2016-05-31 18:31:17 +00:00
Andrew Rybchenko
e73954218a sfxge(4): regenerate MCDI headers from firmwaresrc .yml
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-31 18:04:16 +00:00
Andrew Rybchenko
c34e3d6862 sfxge(4): fix typo in monitor types strings in common code
Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:50:26 +00:00
Andrew Rybchenko
8d8507f1ba sfxge(4): avoid necessity to add one more constant condition note
Use for forever loop instead of while.

Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:49:46 +00:00
Andrew Rybchenko
2bfb64322a sfxge(4): cope with always true unsigned comparison with 0 to make lint happier
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:49:05 +00:00
Andrew Rybchenko
2ceb37acba sfxge(4): unsigned 1 should be shifted to produce bitmask
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:48:25 +00:00
Andrew Rybchenko
898285cdb2 sfxge(4): cope with lint for EFX_SET_OWORD_BIT() with const bit arg
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:47:56 +00:00
Andrew Rybchenko
647a7e8f49 sfxge(4): remove set but not used variable
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:47:11 +00:00
Andrew Rybchenko
1972e0c429 sfxge(4): remove unreachable break after goto
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:46:35 +00:00
Andrew Rybchenko
5e951ea735 sfxge(4): add constant condition note to make lint happier
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:45:42 +00:00
Andrew Rybchenko
a92a213321 sfxge(4): note unused variables to make lint happier
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-27 11:44:40 +00:00
Andrew Rybchenko
6dd81be2d2 sfxge(4): correct parenthesis location in if coundition
Found by lint on illumos.

Submitted by:   Garrett D'Amore <garrett at damore.org>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-26 13:19:44 +00:00
Andrew Rybchenko
131bc376b9 sfxge(4): enable Medford support
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6510
2016-05-24 12:20:23 +00:00
Andrew Rybchenko
1baf53ec8d sfxge(4): bump driver version to the closest out-of-tree version
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-24 12:19:14 +00:00
Andrew Rybchenko
929c7feb83 sfxge(4): cleanup: update copyright to 2016
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6509
2016-05-24 12:16:57 +00:00
Andrew Rybchenko
ecaa500c4b sfxge(4): provide option to disable not a local MAC address check
Option EFSYS_OPT_ALLOW_UNCONFIGURED_NIC disables check that the adapter
MAC address is not a local address (beginning 02).

Submitted by:   Laurence Evans <levans at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6508
2016-05-24 12:15:30 +00:00
Andrew Rybchenko
bdb482bfa0 sfxge(4): be ready to receive events immediately after event queues are created
Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6507
2016-05-24 12:14:19 +00:00
Andrew Rybchenko
899466f91e sfxge(4): cleanup: remove unused EFX preempt macros
The EFSYS_PREEMPT_DISABLE() and EFSYS_PREEMPT_ENABLE() macros
were used to ensure correct timing of I2C operations. The APIs
for I2C operations have been removed, so these macros have no
callers.

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-23 13:17:37 +00:00
Andrew Rybchenko
b108666635 sfxge(4): cleanup: remove trailing whitespaces
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-18 09:57:11 +00:00
Eitan Adler
cef367e6a1 Don't repeat the the word 'the'
(one manual change to fix grammar)

Confirmed With: db
Approved by: secteam (not really, but this is a comment typo fix)
2016-05-17 12:52:31 +00:00
Andrew Rybchenko
2be4ef39bc sfxge(4): only raise an exception after MC assert or reboot in the common code
Fix efx_mcdi_request_poll so it only raises an exception if EIO is
reported from a detected MC assert or reboot. This prevents
an unnecessary exception being raised if an MCDI response error code
is trandlated to EIO.

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6392
2016-05-17 06:28:03 +00:00
Andrew Rybchenko
fdbffbab18 sfxge(4): restore clearing of MCDI new epoch flag in common code
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6390
2016-05-17 06:27:19 +00:00
Andrew Rybchenko
78e5c87c3b sfxge(4): fix Medford timer quantum calculation in common code
The event/timer block used sysclk in Huntington, but has been
moved to the dpcpu clock domain for Medford. Fix the computed
timer quantum to use the right clock.

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6389
2016-05-17 06:26:02 +00:00
Andrew Rybchenko
d8484af2ba sfxge(4): query and use current MTU if setting the MTU fails
This allows the driver to fall back to the largest usable MTU if a
user attempts to configure an unprivileged function with an MTU higher
than that of the attached port.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6387
2016-05-17 06:25:00 +00:00
Andrew Rybchenko
5df3232c85 sfxge(4): store licensing state in efx_lic
Check licensing support at NIC startup to avoid multiple checks later.
As state is stored, licensing initialisation is moved later in start
procedure.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6385
2016-05-17 06:23:50 +00:00
Andrew Rybchenko
bba8dcbcd3 sfxge(4): cleanup: quieten more common code MCDI handlers
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 08:32:21 +00:00
Andrew Rybchenko
fb39178368 sfxge(4): cleanup: remove misnamed function declaration
Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 08:28:27 +00:00
Andrew Rybchenko
c6190b10d9 sfxge(4): cleanup: make MCDI license queries quieter in common code
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 08:27:20 +00:00
Andrew Rybchenko
ca2eff6584 sfxge(4): cleanup: simplify ef10_ev_qcreate
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 08:04:40 +00:00
Andrew Rybchenko
e9660953ab sfxge(4): translate MC_CMD_ERR_EEXIST to host errno value
This is needed because the new MCDI command nvram_private_append can
return MC_CMD_ERR_EEXIST

Submitted by:   Tom Millington <tmillington at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 07:47:20 +00:00
Andrew Rybchenko
7d17c52bb0 fxge(4): cleanup: run genfwdef to propogate prior changes to TLV headers
Submitted by:   Andrew Lee <alee at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 07:45:43 +00:00
Andrew Rybchenko
ce674fe154 sfxge(4): set TSOv2 feature flag on Medford
Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 07:33:56 +00:00
Andrew Rybchenko
44e44413d4 sfxge(4): improve TX/RX queue error messages
Report the full error descriptor in a form that can be passed to
firmwaresrc/dpcpu/scripts/evdecode

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 07:29:50 +00:00
Andrew Rybchenko
95c6a8211c sfxge(4): fix license validation check for V3 licenses
Length consistency checks were failing for ECC hashes.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 07:12:04 +00:00
Andrew Rybchenko
0ecc971831 sfxge(4): regenerate MCDI headers from firmwaresrc .yml
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 06:59:12 +00:00
Andrew Rybchenko
ff2e27e5bb sfxge(4): increase maximum size of license keys
Increase buffer sizes for license keys to 160 bytes to accomodate ECDSA
hashes.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-16 06:42:45 +00:00
Andrew Rybchenko
b59e9e4a81 sfxge(4): fix V1 licensing MCDI operations
Implementation of the MCDI commands for Siena boards was requesting
the wrong operation.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6370
2016-05-16 06:40:17 +00:00
Andrew Rybchenko
f6d61784ad sfxge(4): improve PCIe link speed and width check
Perform a more accurate check of whether the PCIe bandwidth is
sufficient for the current/supported port modes.

Give a different warning if there is sufficient bandwidth to achieve
line rate, but the link is not fast enough for optimal latency.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6369
2016-05-16 06:38:51 +00:00
Andrew Rybchenko
1bc27f39c5 sfxge(4): cleanup: make TLV scans quieter
Find end of segments in a more direct way that avoids an error report at
the terminator.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6367
2016-05-16 06:32:06 +00:00
Andrew Rybchenko
01215be22d sfxge(4): cleanup: make VPD lookups quieter
A lookup on a VPD entry which is missing reports several failure
messages as it propagates through wrapper functions. Restructured
the wrappers to treat this gracefully as an expected case.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6366
2016-05-16 06:26:18 +00:00
Andrew Rybchenko
7d4ce67a76 sfxge(4): cleanup: make licensing function quieter
Silent handling of failure to invoke functions that are not supported on
older licensing versions.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6365
2016-05-16 06:19:17 +00:00
Andrew Rybchenko
fc3a62cf60 sfxge(4): restructure efx_lic to support V3 licensing
Create separate implementations of the efx_lic API for each revision of
the licensing system. All processing of the V1/V2 license partition is
moved to efx_lic, and an implementation of V3 licensing uses the existing
TLV functions with extensions for writing new TLV entries.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6364
2016-05-16 06:17:56 +00:00
Andrew Rybchenko
1943fefa8f sfxge(4): remove unused EFX PHY symbols
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:20:08 +00:00
Andrew Rybchenko
0489c34fc2 sfxge(4): remove obsolete EFX_MON types
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:18:49 +00:00
Andrew Rybchenko
45de2df438 sfxge(4): remove unimplemented sensor reconfigure method
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:17:55 +00:00
Andrew Rybchenko
6faddc3444 sfxge(4): remove unimplemented sensor reset method
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:17:03 +00:00
Andrew Rybchenko
39abff47d7 sfxge(4): fix build with -Werror=pointer-sign
-Werror=pointer-sign is enabled in OmniOS GLD driver build.

Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:16:14 +00:00
Andrew Rybchenko
0c9092472f sfxge(4): remove unimplemented MAC reset method
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:14:28 +00:00
Andrew Rybchenko
34ce59874d sfxge(4): cleanup: remove unused define EFX_EVQ_FALCON_TIMER_QUANTUM_NS
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:13:24 +00:00
Andrew Rybchenko
05716a35e7 sfxge(4): cleanup: remove unused variable flags
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:12:26 +00:00
Andrew Rybchenko
8a53d16bd7 sfxge(4): remove unimplemented EFX PHY methods
Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
2016-05-14 06:06:48 +00:00