201532 Commits

Author SHA1 Message Date
arybchik
2f8109724f MFC r294372
sfxge: refresh version to note matching version of out-of-tree driver

Sponsored by:   Solarflare Communications, Inc.
2016-01-20 09:00:42 +00:00
arybchik
8e1b4efdf3 MFC r294310
sfxge: improve error handling in ef10_ev_rx()

Ensure that checksum flags and L3/L4 fields are ignored
if lower level errors are reported in the event.

Remove checks for CRC0_ERR (bad iSCSI header CRC) and
CRC1_ERR (bad iSCSI payload or FCoE/FCoIP CRC) as they
are not used by any existing code.

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:28:32 +00:00
arybchik
c051b72131 MFC r294309
sfxge: select whether to read current or backup partition in Medford A/B scheme

The dynamic config on Medford is stored using two partitions in flash, and at
any time one is the 'current' partition, used to provide the active config,
and the other 'backup' partition is used for writes.  This means that there
are two potential partitions that can be used to service reads, and which is
required can depend on, for example, whether the read is to get the current
contents or to verify a write.

When the partition write lock is held, the default behaviour is to read from
the backup partition, which was wrong for most reads in the common code which
require the current partition. This change allows the current partition to be
read whilst the write lock is held.
There is one read in Manftest which needs the backup partition.

ef10_nvram_partn_read_mode() is created to avoid changing
ef10_nvram_partn_read() which shares a prototype with the equivalent Falcon
and Siena methods.

MC_CMD_NVRAM_READ_IN_V2 adds an extra field, but firmware which doesn't support
it just ignores it.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:26:58 +00:00
arybchik
1dee23352d MFC r294259
sfxge: regenerate EF10 registers definition for Medford

Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:25:41 +00:00
arybchik
bdc333fcf3 MFC r294257
sfxge: regenerate siena_flash.h from FW sources

Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:24:00 +00:00
arybchik
42521ae1a6 MFC r294256
sfxge: cleanup: remove extra empty lines

Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:21:07 +00:00
arybchik
af0e4d5ba3 MFC r294255
sfxge: highlight that descriptor cache sizes are configured using TLV now

Submitted by:   Tom Millington <tmillington at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:20:00 +00:00
arybchik
85a4a8aa58 MFC r294254
sfxge: support RFID-selectable segments of dynamic configuration

tlv_partition_header has field *preset* to support RFID-selectable
segments of dynamic configuration

Submitted by:   Mateusz Wrzesinski <mwrzesinski at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:18:43 +00:00
arybchik
9922da0262 MFC r294253
sfxge: if supported by firmware, use enhanced SET_MAC command to only configure the MTU

This allows an MTU change to be requested on unpriviliged functions
without also setting all the other parameters supported by MC_CMD_SET_MAC.

The enhanced SET_MAC command was introduced in v4_7 firmware.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:17:28 +00:00
arybchik
e3a3a0b3d0 MFC r294094
sfxge: check the RX DMA end padding configuration on Medford

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:16:30 +00:00
arybchik
75532d9d50 MFC r294092
sfxge: rename Huntington MAC methods to EF10 and use for Medford

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:14:42 +00:00
arybchik
b93db4d029 MFC r294091
sfxge: rename common hunt PHY methods to ef10 and use for Medford

Leaving BIST methods for now as, though the Medford bootrom now has lots
of BIST support, production firmware doesn't appear to have been updated
yet.

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:13:59 +00:00
arybchik
3523a88c0d MFC r294081
sfxge: cleanup: simplify ef10_get_datapath_caps

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:13:10 +00:00
arybchik
be43d11767 MFC r294079
sfxge: Medford still needs fallback for no privilege mask

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:11:12 +00:00
arybchik
c4ff19d5d9 MFC r294078
sfxge: medford stores a single global copy of VPD

Not per PF copies as on Huntington.

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:08:44 +00:00
arybchik
ae46773d3c MFC r294077
sfxge: support FATSOv2

Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:07:30 +00:00
arybchik
883a89bce1 MFC r294076
sfxge: rework MCDI request completion

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:05:56 +00:00
arybchik
5ce9cb2350 MFC r294075
sfxge: rename hunt_link_state_t to ef10_link_state_t

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:03:30 +00:00
arybchik
b7871cb668 MFC r293902
sfxge: cleanup: quieten efx_mcdi_read_resonse_header error reporting

The "mcdi_err_arg" probe still reports results of failed MCDI
commands, unless the caller invoked efx_mcdi_execute_quiet().

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:02:11 +00:00
arybchik
95a756ad4d MFC r293901,r294371
sfxge: add accessors for license-related MCDI calls to common code

Add support for Huntington MCDI licensing interface to common code.
Ported from Linux net driver IOCTL functions with restructuring for
initial support for V3 licensing API.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:01:21 +00:00
arybchik
bbc583eeb0 MFC r293900
sfxge: add table entries for License NVRAM partition

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:59:04 +00:00
arybchik
4b9f4885a9 MFC r293899
sfxge: cleanup: adjust efx_mcdi_get_port_modes() comment for clarity

Fix an explanatory comment which did not explain very well.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:57:18 +00:00
arybchik
59fb3e0b1e MFC r293895
sfxge: fix common code VPD iterator and duplicate tag verification

Fix efx_vpd_hunk_next() which has -- since its inception -- failed to
correctly iterate over the tags and keywords contained in the VPD data.
Only the first tag or keyword would be returned and the next call with
*contp == 1 would walk to the end of the data and finish.

This was spotted when fixing up errors spotted by Prefast code analysis
(which neglected to set all of the out parameters in all successful cases)

Also fix efx_vpd_verify() on Siena and EF10 which (as a side effect of
correctly iterating over all the tags and keywords) was failing as it
detected that both the static VPD and dynamic VPD storage contained an
RV keyword in the VPD-R tag.  This is intentional as the static VPD and
dynamic VPD are stored separately (firmware merges their contents and
computes a new RV keyword checksum for the data readable from the VPD
capability in PCIe configuration space).

Submitted by:   Andrew Lee <alee at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:53:26 +00:00
arybchik
9d665fc54f MFC r293892
sfxge: use correct register definitions for setting interrupt moderation on Medford

The only value which has changed is the number of rows
(ER_DZ_EVQ_TMR_REG_ROWS is 2048 vs 1024 for FR_BZ_TIMER_COMMAND_REGP0_ROWS)
but that isn't used, so this shouldn't change behaviour.

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:52:24 +00:00
arybchik
aeca94898e MFC r293891
sfxge: support FATSOv2 in common code

Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:51:23 +00:00
arybchik
fa1d117e18 MFC r293890
sfxge: rx_prefix_pktlen methods do not require EFSYS_OPT_RX_SCALE

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:50:00 +00:00
arybchik
13a2c477eb MFC r293889,r294080,r294093,r294201,r294249-r294252
sfxge: convert nvram methods to use partition id

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:48:49 +00:00
arybchik
d19037575e MFC r293888
sfxge: rework MCDI start request

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:44:05 +00:00
arybchik
f7859a7f29 MFC r293887
sfxge: add Medford NIC methods

Submitted by:   Mark Spender <mspender at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 07:42:31 +00:00
jhb
24f353ebf7 Regen for r294368. 2016-01-20 01:11:01 +00:00
jhb
77733541d4 MFC 289769,289822,290143,290144:
Rename remaining linux32 symbols from linux_* to linux32_*.

289769:
Rename remaining linux32 symbols such as linux_sysent[] and
linux_syscallnames[] from linux_* to linux32_* to avoid conflicts with
linux64.ko.  While here, add support for linux64 binaries to systrace.
- Update NOPROTO entries in amd64/linux/syscalls.master to match the
  main table to fix systrace build.
- Add a special case for union l_semun arguments to the systrace
  generation.
- The systrace_linux32 module now only builds the systrace_linux32.ko.
  module on amd64.
- Add a new systrace_linux module that builds on both i386 and amd64.
  For i386 it builds the existing systrace_linux.ko.  For amd64 it
  builds a systrace_linux.ko for 64-bit binaries.

289822:
Fix build for the KTR-enabled kernels.

290143:
Fix build with DEBUG defined.

290144:
Update for LINUX32 rename.  The assembler didn't complain about undefined
symbols but just used 0 after the rename.
2016-01-20 01:09:53 +00:00
ian
2651e6b1c6 MFC r292337, r292552, r292553:
Build mount_smbfs for arm.  Also sort the subdirs.

  Avoid unaligned memory accesses when encoding netbios names in libsmb.

  The current code for encoding a netbios name converts each byte to a 16-bit
  value and stores the result by casting a char* to u_short*, resulting in
  alignment faults on strict-alignment platforms.

  This change reimplements the encoding routine using only byte accesses to
  memory. There is no particular reason to work with 16-bit values just
  because the encoding process creates two bytes of output for every byte of
  input. Working a byte at at time also avoids endian problems for big-endian
  platforms.

  Make the building of libsmb and mount_smbfs unconditional, now that r292552
  has eliminated alignment and endian problems that were making it fail on
  some platforms.

PR:           180438
PR:           189415
Relnotes:	Yes
2016-01-19 23:36:49 +00:00
ngie
223081e0c8 Default __MAKE_SHELL to /bin/sh when generating aton_ether_subr.c via
`gen_ether_subr`.

__MAKE_SHELL is only defined when installworld is run on stable/10,
which breaks workflows dealing with source trees mounted with noexec [*]

This is a direct commit to stable/10

Reported by: Mark Martinec <Mark.Martinec+freebsd@ijs.si>
Sponsored by: EMC / Isilon Storage Division
2016-01-19 23:18:49 +00:00
ian
73c42f454f MFC r292888:
Fix the error checking for the ubenv command.  This moves the check for an
  empty ldvar (which amounts to the varname string starting with '=') into
  the if block that manipulates ldvar, which avoids later referencing ldvar
  when it was never initialized.
2016-01-19 21:42:19 +00:00
ian
3c5bf8f9ae MFC r292584:
Set env vars from values on the efi loader command line.

  Examine each cmdline arg and if it contains an '=' convert it to ascii and
  pass it to putenv(). This allows var=value settings to come in on the
  command line.

  This will allow overriding dhcp server-provided data in loader(8), as
  discussed in PR 202098

PR:           202098
Relnotes:	Yes (this goes together with r294343)
2016-01-19 21:39:21 +00:00
ian
8d32f22531 MFC r292583:
Allow dhcp/bootp server-provided values to be overriden from environment
  variables in loader(8) and other libstand applications.

  Sometimes a dhcp server provides incorrect information along with the IP
  address. It would be useful to have a way to override this with
  locally-supplied information, such as command line parameters passed from a
  prior-stage bootloader. This change allows pre-existing env vars to take
  precedence over values delivered by the dhcp or bootp server.

  The bootp/dhcp code in libstand automatically creates environment variables
  from the data provided by the server (dhcp.root-path, dhcp.domain-name,
  etc). It also transcribes the values to some global variables such as
  'rootpath' and 'hostname'.

  This change does two things:

      When adding dhcp.* vars to the environment, don't replace existing
      vars/values.

      When setting the global vars rootpath and hostname, use the
      dhcp.root-path and dhcp.host-name env var values if they exist.

  This allows the platform-specific part of loader(8) to obtain override
  values in some platform-specific way and store them in the environment
  before opening the network device. The set of values that can be overriden
  is currently limited to just string options. The values that are delivered
  as binary data are things that probably shouldn't be overridden (IP,
  netmask, gateway, etc).

  The original patch this evolved from was submitted by martymac@

PR:           202098
Relnotes:	Yes
2016-01-19 21:35:09 +00:00
ian
f2c0efd7de MFC r292234, r292527:
Add strlcat() and strlcpy() to libstand and libstand32.
2016-01-19 21:27:25 +00:00
ian
c6f06f22fc MFC r291164, r291876, r292227:
Print more detailed info about the disk and partition chosen for booting.
  No behavioral changes, just cosmetics.

  Remove stray unescaped `%` in `Booting from ...` informational message.

  Enhance the "ubenv import" command to allow importing a u-boot env var
  directly into a loader (and thus kernel) env var.
2016-01-19 21:21:59 +00:00
jhb
86ab8db358 MFC 292669:
Add accessor methods to fetch the BAR holding the MSI-X table and PBA.

While here, explicitly note the requirement that the BAR(s) must be
allocated prior to calling pci_alloc_msix().
2016-01-19 21:08:31 +00:00
jhb
8aa68d7858 MFC 292410,292443,293977:
Exit cleanly if malloc() fails to allocate a buffer for a copy of the
current MBR.

PR:		205322
Submitted by:	Alexander Kuleshov <kuleshovmail@gmail.com>
2016-01-19 19:04:56 +00:00
dim
0458c393d2 MFC r294102:
MFV r294101: 6527 Possible access beyond end of string in zpool comment

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Approved by: Gordon Ross <gwr@nexenta.com>

illumos/illumos-gate@2bd7a8d078

This fixes erroneous double increments of the 'check' variable in a loop
in spa_prop_validate().  I ran into this in the clang380-import branch,
where clang 3.8.0 warns about it.  (It is already fixed there.)
2016-01-19 18:35:22 +00:00
ngie
1a7affd5e6 MFC r294128:
Fix -Wunused warning with clang/gcc

- Get rid of unused argc/argv variables in main
- Bump WARNS to 6
2016-01-19 01:41:19 +00:00
ngie
30ae8fa920 MFC r294103:
- Check for accf_filter before running the tests, otherwise it will always
  fail at subtest 9/11
- Use strncpy instead of strcpy with afa.af_name
2016-01-19 01:38:06 +00:00
ngie
4b07dd5aab MFC r294123:
Add missing newline to message about requiring root privileges

This will help ensure that scripts/parsers don't get confused when the message
is printed out
2016-01-19 01:35:16 +00:00
ngie
95e3008df9 MFC r293715:
Fix a mismerge from NetBSD in r162194 with `xdr_rpcb_entry_list_ptr(..)`

This fixes the potential NULL pointer dereference properly, and also fixes
memory leaks encountered in the process of iterating through `*rp`.

Found by: Valgrind
Submitted by: Miles Ohlrich <miles.ohlrich@isilon.com>
2016-01-19 01:30:22 +00:00
gnn
ba5e3d1893 MFC: 293459,293643
Add netmap support for bhyve
2016-01-18 21:24:28 +00:00
jhb
93e78d3449 MFC 292409:
It seems certain Intel GPUs use GPIO bitbanging over a child device
instead of GMBUS access for I2C transfers.  The GMBUS driver falls back
to this mode when a transfer times out.  However, the first transfer to
timeout was sending the request back to itself resulting in an panic due
to recursing on a lock.  Fix it to forward the request on to the proper
device.  This appears to have been accidentally changed in r277487.
2016-01-18 20:44:29 +00:00
jhb
e8ea29ce3a MFC 291225:
Add a new -B flag for use with list mode (-l) that lists details about
bridges.  Currently this includes information about what resources a
bridge decodes on the upstream side for use by downstream devices including
bus numbers, I/O port resources, and memory resources.  Windows and bus
ranges are enumerated for both PCI-PCI bridges and PCI-CardBus bridges.

To simplify the implementation, all enumeration is done by reading the
appropriate config space registers directly rather than querying the
bridge driver in the kernel via new ioctls.  This does result in a few
limitations.

First, an unimplemented window in a PCI-PCI bridge cannot be accurately
detected as accurate detection requires writing to the window base
register.  That is not safe for pciconf(8).  Instead, this assumes that
any window where both the base and limit read as all zeroes is
unimplemented.

Second, the PCI-PCI bridge driver in a tree has a few quirks for
PCI-PCI bridges that use subtractive decoding but do not indicate that
via the progif config register.  The list of quirks is duplicated in
pciconf's source.
2016-01-18 19:52:20 +00:00
delphij
2a668e7e33 MFC r288303: MFV r288243: nc from OpenBSD 5.8. 2016-01-18 19:42:05 +00:00
delphij
fa1e90c82b MFC r293190: MFV r293125: less v481.
Relnotes:	yes
2016-01-18 19:13:54 +00:00