aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sfxge
Commit message (Collapse)AuthorAgeFilesLines
* sfxge: clean up empty lines in .c and .h filesMateusz Guzik2020-09-0163-843/+0
| | | | Notes: svn path=/head/; revision=365086
* Remove support for FreeBSD 7 and 8Warner Losh2020-02-273-13/+1
| | | | | | | Also, unifdef -DSFXGE_HAVE_DESCRIBE_INTR since it's now always defined. Notes: svn path=/head/; revision=358389
* Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)Pawel Biernacki2020-02-265-68/+55
| | | | | | | | | | | | | | | | | | | r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision: https://reviews.freebsd.org/D23718 Notes: svn path=/head/; revision=358333
* Remove sparc64 kernel supportWarner Losh2020-02-031-20/+0
| | | | | | | | | Remove all sparc64 specific files Remove all sparc64 ifdefs Removee indireeect sparc64 ifdefs Notes: svn path=/head/; revision=357455
* Convert to if_foreach_llmaddr() KPI.Gleb Smirnoff2019-10-141-22/+22
| | | | | | | Reviewed by: philip Notes: svn path=/head/; revision=353520
* sfxge(4): unify power of 2 alignment check macroAndrew Rybchenko2019-07-273-27/+48
| | | | | | | | | | | | | | | | Substitute driver-defined IS_P2ALIGNED() with EFX_IS_P2ALIGNED() defined in libefx. Add type argument and cast value and alignment to one specified type. Reported by: Andrea Valsania <andrea.valsania at answervad.it> Reviewed by: philip Sponsored by: Solarflare Communications, Inc. MFC after: 2 days Differential Revision: https://reviews.freebsd.org/D21076 Notes: svn path=/head/; revision=350371
* sfxge(4): fix align to power of 2 when align has smaller typeAndrew Rybchenko2019-07-273-5/+5
| | | | | | | | | | | | | | | | | Substitute driver-defined P2ALIGN() with EFX_P2ALIGN() defined in libefx. Cast value and alignment to one specified type to guarantee result correctness. Reported by: Andrea Valsania <andrea.valsania at answervad.it> Reviewed by: philip Sponsored by: Solarflare Communications, Inc. MFC after: 2 days Differential Revision: https://reviews.freebsd.org/D21075 Notes: svn path=/head/; revision=350370
* sfxge(4): fix power of 2 round up when align has smaller typeAndrew Rybchenko2019-07-279-24/+33
| | | | | | | | | | | | | | | | | Substitute driver-defined P2ROUNDUP() h with EFX_P2ROUNDUP() defined in libefx. Cast value and alignment to one specified type to guarantee result correctness. Reported by: Andrea Valsania <andrea.valsania at answervad.it> Reviewed by: philip Sponsored by: Solarflare Communications, Inc. MFC after: 2 days Differential Revision: https://reviews.freebsd.org/D21074 Notes: svn path=/head/; revision=350369
* sfxge(4): use n Tx queues instead of n + 2 on EF10 HWAndrew Rybchenko2018-12-105-43/+131
| | | | | | | | | | | | | | | On EF10 HW we can avoid sending packets without checksum offload or with IP-only checksum offload to dedicated queues. Instead, we can use option descriptors to change offload policy on any queue during runtime. Thus, we don't need to create two dedicated queues. Submitted by: Ivan Malov <Ivan.Malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18390 Notes: svn path=/head/; revision=341785
* sfxge(4): prepare the number of Tx queues on event queue 0 to become variableAndrew Rybchenko2018-12-104-11/+14
| | | | | | | | | | | | | | The number of Tx queues on event queue 0 can depend on the NIC family type, and this property will be leveraged by future patches. This patch prepares the code for this change. Submitted by: Ivan Malov <Ivan.Malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18389 Notes: svn path=/head/; revision=341784
* sfxge(4): report support for Tx checksum op descriptorsAndrew Rybchenko2018-12-102-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | FreeBSD driver needs a patch to provide a means for packets which do not need checksum offload but have flow ID set to avoid hitting only the first Tx queue (which has been used for packets not needing checksum offload). This should be possible on Huntington, Medford or Medford2 chips since these support toggling checksum offload on any given queue dynamically by means of pushing option descriptors. The patch for FreeBSD driver will then need a means to figure out whether the feature can be used, and testing adapter family might not be a good solution. This patch adds a feature bit specifically to indicate support for checksum option descriptors. The new feature bits may have more users in future, apart from the mentioned FreeBSD patch. Submitted by: Ivan Malov <Ivan.Malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18388 Notes: svn path=/head/; revision=341783
* sfxge(4): populate per-event queue stats in sysctlAndrew Rybchenko2018-12-102-8/+110
| | | | | | | | | | | | | In order to find out why the first event queue and corresponding interrupt is triggered more frequent, it is useful to know which events go to each event queue. Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18418 Notes: svn path=/head/; revision=341782
* sfxge(4): rollback last seen VLAN TCI if Tx packet is droppedAndrew Rybchenko2018-11-301-0/+4
| | | | | | | | | | | | | | Early processing of a packet on transmit may change last seen VLAN TCI in the queue context. If such a packet is eventually dropped, last seen VLAN TCI must be set to its previous value. Submitted by: Ivan Malov <Ivan.Malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18288 Notes: svn path=/head/; revision=341327
* sfxge(4): ensure EvQ poll stops when abort is requestedAndrew Rybchenko2018-11-301-0/+8
| | | | | | | | | | | | | | | | If an event handler requested an abort, only the inner loop was guarenteed to be broken out of - the outer loop could continue if total == batch. Fix this by poisoning batch to ensure it is different to total. Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18287 Notes: svn path=/head/; revision=341326
* sfxge(4): support Medford2Andrew Rybchenko2018-11-302-1/+6
| | | | | | | | Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18286 Notes: svn path=/head/; revision=341325
* sfxge(4): update external port number calculationAndrew Rybchenko2018-11-301-39/+48
| | | | | | | | | | | | | Revise the external port calculation to support all X2 port modes. The previous algorithm could not handle different port numbering schemes on each cage. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18285 Notes: svn path=/head/; revision=341324
* sfxge(4): correct annotations where NULL input is OKAndrew Rybchenko2018-11-305-20/+34
| | | | | | | | | | | Correct annotations where NULL input can be permitted Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18284 Notes: svn path=/head/; revision=341323
* sfxge(4): support new link modes in the driverAndrew Rybchenko2018-11-301-0/+13
| | | | | | | | | Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18283 Notes: svn path=/head/; revision=341322
* sfxge(4): use transceiver ID when reading infoAndrew Rybchenko2018-11-301-6/+40
| | | | | | | | | | | | | | | In efx_mcdi_phy_module_get_info() probe the transceiver identification byte rather than assume the module matches the fixed port type. This supports scenarios such as a SFP mounted in a QSFP port via a QSA module. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18282 Notes: svn path=/head/; revision=341321
* sfxge(4): add accessor to whole link statusAndrew Rybchenko2018-11-307-25/+66
| | | | | | | | | | | | | | | | Add a function which makes an MCDI GET_LINK request and packages up the results. Currently, the get-link function is triggered from several entry points which then pass on or store selected parts of the data. When the driver needs to obtain the current link state, it is more efficient to do this in a single call. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18281 Notes: svn path=/head/; revision=341320
* sfxge(4): guard Rx scale code with corresponding optionAndrew Rybchenko2018-11-303-0/+11
| | | | | | | | | | | | Previously only some of the code was guarded by this which caused a build error when EFSYS_OPT_RX_SCALE is 0 (e.g. in manftest). Submitted by: Tom Millington <tmillington at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18280 Notes: svn path=/head/; revision=341319
* sfxge(4): infer port mode bandwidth from max link speedAndrew Rybchenko2018-11-301-3/+20
| | | | | | | | | | | | | Limit the port mode bandwidth calculations by the maximum reported link speed. This system detects 25G vs 10G cards, and 100G port modes vs 40G. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18279 Notes: svn path=/head/; revision=341317
* sfxge(4): support improvements to bandwidth calculationsAndrew Rybchenko2018-11-305-36/+19
| | | | | | | | | | | | | | Change the interface to ef10_nic_get_port_mode_bandwidth() so more NIC information can be used to infer bandwidth requirements. Huntington calculations separated out completely. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18278 Notes: svn path=/head/; revision=341316
* sfxge(4): add X2 port modes to bandwidth calculatorAndrew Rybchenko2018-11-301-9/+34
| | | | | | | | | | | | | Add cases for the new port modes supported by X2 NICs. Lane bandwidth is calculated for pre-X2 cards so is an underestimate for X2 in 25G/100G modes. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18277 Notes: svn path=/head/; revision=341315
* sfxge(4): update to current port mode terminologyAndrew Rybchenko2018-11-301-19/+22
| | | | | | | | | | | | >From Medford onwards, the newer constants enumerating port modes should be used. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18276 Notes: svn path=/head/; revision=341314
* sfxge(4): adjust PHY module info interfaceAndrew Rybchenko2018-11-304-12/+21
| | | | | | | | | | | | | Adjust data types in interface to permit the complete module information buffer to be obtained in a single call. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18275 Notes: svn path=/head/; revision=341313
* sfxge(4): expose PHY module device address constantsAndrew Rybchenko2018-11-302-21/+21
| | | | | | | | | | | Rearrange so the valid addresses are visible to the caller. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18274 Notes: svn path=/head/; revision=341312
* sfxge(4): make last byte of module information availableAndrew Rybchenko2018-11-301-1/+1
| | | | | | | | | | | | | Adjust bounds so the interface supports reading the last available byte of data. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18273 Notes: svn path=/head/; revision=341311
* sfxge(4): add helper API to make Geneve filter specAndrew Rybchenko2018-11-302-13/+95
| | | | | | | | | Submitted by: Vijay Srivastava <vijays at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18272 Notes: svn path=/head/; revision=341310
* sfxge(4): fix MAC Tx stats for less or equal to 64 bytesAndrew Rybchenko2018-11-301-1/+1
| | | | | | | | | | | | | This statistic should include 64byte and smaller frames. Fix EF10 calculation to match Siena code. Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18271 Notes: svn path=/head/; revision=341309
* sfxge(4): modify phy caps to indicate FEC requestAndrew Rybchenko2018-11-302-7/+16
| | | | | | | | | | | | | | | | The capability bits to request FEC modes are implicitly valid when the corresponding FEC mode is a supported capability. Drivers expect that it is only valid to advertise those capabilities explicitly marked as supported. The capabilities reported by firmware is modified with the implicit capabilities to present the explicit model to drivers. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18270 Notes: svn path=/head/; revision=341308
* sfxge(4): improve handling of legacy RSS hash flagsAndrew Rybchenko2018-11-302-73/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Client drivers may use either legacy flags, for example, EFX_RX_HASH_TCPIPV4, or generalised flags, for example, EFX_RX_HASH(IPV4_TCP, 4TUPLE), to configure RSS hash. The libefx is able to recognise what scheme is used. Legacy flags may be consumed directly by a chip-specific handler to configure the NIC, that is, on EF10, these flags can be used to fill in legacy RSS mode field in MCDI request. Generalised flags can also be directly used in EF10-specific handler as they are fully compatible with additional fields of the same MCDI request. Legacy flags undergo conversion to generalised flags before they are consumed by a chip-specific handler. This conversion is used to make sure that chip-specific handlers expect only generalised flags in the input for the sake of clarity of the code. Depending on firmware capabilities, a chip-specififc handler either supplies the input to the NIC directly, for example, EFX_RX_HASH(IPV4_TCP, 4TUPLE) flag will enable 4 bits in RSS_CONTEXT_SET_FLAGS_IN_TCP_IPV4_RSS_MODE field on EF10, or takes the opportunity to translate the input to enable bits which don't map to the generic flag, like setting RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_TCPV4_EN on EF10 when the firmware claims no support for additional modes. However, this approach has introduced a severe problem which can be reproduced with ultra-low-latency firmware variant. In order to enable IP hash, EF10-specific handler requires the user to request 2-tuple hash for IP-other, TCP and UDP traffic classes, unconditionally. In example, IPv4 hash can be enabled using the following input: EFX_RX_HASH(IPV4_TCP, 2TUPLE) | EFX_RX_HASH(IPV4_UDP, 2TUPLE) | EFX_RX_HASH(IPV4, 2TUPLE). At the same time, on ultra-low-latency firmware, the common code will never report support for any UDP tuple to the client driver. That is, in the same example, the driver will use EFX_RX_HASH(IPV4_TCP, 2TUPLE) | EFX_RX_HASH(IPV4, 2TUPLE). This input will not be recognised by EF10-specific handler, and RSS_CONTEXT_SET_FLAGS_IN_TOEPLITZ_IPV4_EN bit will not be set in the MCDI request. In order to solve the problem, the patch removes conversion code from chip-specific handlers and adds appropriate code to convert EFX_RX_HASH() flags to their legacy counterparts to the common scale mode set function. If the firmware does not support additional modes, the function will convert generalised flags to legacy flags correctly without any demand for UDP flags and pass the result to a chip-specific handler. Submitted by: Ivan Malov <ivan.malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18269 Notes: svn path=/head/; revision=341307
* sfxge(4): simplify the code to parse RSS hash typeAndrew Rybchenko2018-11-302-15/+11
| | | | | | | | | | | | | RSS mode bits can be accessed a lot easier in the hash type value provided that the variable type is uint32_t. The macro helper can be removed to enhance readability. Submitted by: Ivan Malov <ivan.malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18268 Notes: svn path=/head/; revision=341306
* sfxge(4): check buffer size for hash flagsAndrew Rybchenko2018-11-303-44/+80
| | | | | | | | | | | | | | | The efx_rx_scale_hash_flags_get interface is unsafe, as it does not have an argument for the size of the output buffer used to return the flags. While the only caller currently supplies a sufficiently large buffer, this should be checked at runtime to avoid writing past the end of the buffer. Submitted by: Ivan Malov <ivan.malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18267 Notes: svn path=/head/; revision=341305
* sfxge(4): use simpler code to check hash algorithm typeAndrew Rybchenko2018-11-301-26/+13
| | | | | | | | | | | | | | | The API which is used to list supported hash flags verifies hash algorithm choice before writing the output. This check is based on a switch() statement which has only two options and no distinctive actions to be conducted for each of them. Use simpler code instead of switch() to improve readability. Submitted by: Ivan Malov <ivan.malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18266 Notes: svn path=/head/; revision=341304
* sfxge(4): add support to get active FEC typeAndrew Rybchenko2018-11-305-6/+111
| | | | | | | | | Submitted by: Vijay Srivastava <vijays at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18265 Notes: svn path=/head/; revision=341303
* sfxge(4): fix a typo in unicast filter insertion commentAndrew Rybchenko2018-11-301-1/+1
| | | | | | | | | | Submitted by: Ivan Malov <ivan.malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18264 Notes: svn path=/head/; revision=341302
* sfxge(4): prevent access to the NIC config before probeAndrew Rybchenko2018-11-301-0/+1
| | | | | | | | | | | | NIC config is initialized during NIC probe. Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18263 Notes: svn path=/head/; revision=341301
* sfxge(4): fix ID retrieval in v3 licensingAndrew Rybchenko2018-11-301-30/+9
| | | | | | | | | | Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18262 Notes: svn path=/head/; revision=341300
* sfxge(4): add API to inform libefx of hardware removalAndrew Rybchenko2018-11-305-4/+35
| | | | | | | | | | | | | | | | The efx_nic_hw_unavailable() checks ensure that if the NIC hardware has failed or has been physically removed then libefx will stop further attempts to access the hardware. Add an interface for libefx clients to force unavailability, so the hardware is treated as dead or removed even if still physically present. Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18261 Notes: svn path=/head/; revision=341299
* sfxge(4): add routine to check for hardware presenceAndrew Rybchenko2018-11-307-4/+71
| | | | | | | | | | | | Add efx_nic_hw_unavailable() routine to check for hardware presence before continuing with NIC operations. Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18260 Notes: svn path=/head/; revision=341298
* sfxge(4): fix out of bounds read when dereferencing sdupAndrew Rybchenko2018-11-3019-273/+199
| | | | | | | | | | | | | Introduce and use macro to make sure that MCDI buffers allocated on stack are rounded up properly. Submitted by: Gautam Dawar <gdawar at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18259 Notes: svn path=/head/; revision=341297
* sfxge(4): add information if TSO workaround is requiredAndrew Rybchenko2018-11-304-0/+10
| | | | | | | | | | | | | | | | | | | In SF bug 61297 it's been confirmed that the hardware does not always calculate the TCP checksum correctly with TSO sends. The value of the Total Length field (IPv4) or Payload Length field (IPv6) is the critical factor. We're sufficiently confident that if these fields are zero then the checksum will be calculated correctly. The information may be used by the drivers to check if the workaround is required when FATSOv2 is implemented. Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18258 Notes: svn path=/head/; revision=341296
* sfxge(4): avoid usage of too big arrays on stackAndrew Rybchenko2018-11-302-12/+33
| | | | | | | | | | | | Found by PreFAST static analysis. Submitted by: Martin Harvey <mharvey at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18257 Notes: svn path=/head/; revision=341295
* sfxge(4): generalise EF10 NVRAM buffer interfaceAndrew Rybchenko2018-11-305-41/+174
| | | | | | | | | | | | | | | | The SFN driver's PartitionControl WMI object requires an API to parse and filter partition data in TLV format, particularly for the Dynamic Config partition. The ef10_nvram_buffer functions provide this functionality but are tied to use with license partition only. Modify functions so they are applicable to all TLV partitions and add functions to support in-place tag modification. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18256 Notes: svn path=/head/; revision=341294
* sfxge(4): add accessor for default port modeAndrew Rybchenko2018-11-305-7/+16
| | | | | | | | | | | | | | Extend efx_mcdi_get_port_modes() to optionally pass on the default port mode field. This provides a more direct way of handling the case where the dynamic config does not specify the port mode than the alternative of a lookup table indexed by MCFW subtype. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18255 Notes: svn path=/head/; revision=341293
* sfxge(4): add buffer editing functions to boot configAndrew Rybchenko2018-11-303-51/+672
| | | | | | | | | | | | | | | | | Functions to process the DHCP option list format used by the expansion ROM config buffers, to support extracting and updating of individual options. The initial use case is the driver presenting the global and per-PF options as separate items, with the driver implementing the synchronization of global options across the configuration buffers for all PFs. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18254 Notes: svn path=/head/; revision=341292
* sfxge(4): add API to retrieve sensor limitsAndrew Rybchenko2018-11-305-1/+206
| | | | | | | | | Submitted by: Martin Harvey <mharvey at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18253 Notes: svn path=/head/; revision=341291
* sfxge(4): check size of memory to read sensors data toAndrew Rybchenko2018-11-301-0/+11
| | | | | | | | | | | | Size of provided memory should be consistent with specified size. Submitted by: Martin Harvey <mharvey at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D18252 Notes: svn path=/head/; revision=341290
* sfxge(4): add generated description of sensorsAndrew Rybchenko2018-11-304-15/+252
| | | | | | | | | | | Description of sensors is generated from firmware sources. Submitted by: Martin Harvey <mharvey at solarflare.com> Sponsored by: Solarflare Communications, Inc. Differential Revision: https://reviews.freebsd.org/D18251 Notes: svn path=/head/; revision=341286