r253688:
Reserve room for ioctls that aren't in this copy of the driver yet.

(cherry picked from commit 8bcd06ba279bdbf87b5ea1451f30c81c684476fb)
MFC r253701, r253829, r253873, r253889, r253890, r254577, r254727, and r254933.

r253701:
Display a string instead of a numeric code in the linkdnrc sysctl.

r253829:
Display SGE tunables in the sysctl tree.

dev.t5nex.0.fl_pktshift: payload DMA offset in rx buffer (bytes)
dev.t5nex.0.fl_pad: payload pad boundary (bytes)
dev.t5nex.0.spg_len: status page size (bytes)
dev.t5nex.0.cong_drop: congestion drop setting

r253873:
Set up congestion manager context properly for T5 based cards.

r253889:
Fix previous commit (r253873).  "cong" has one bit per channel but the
congestion channel map has 1 nibble per channel.  So bits wxyz need to
be blown up into 000w000x000y000z.

r253890:
Display temperature sensor data.  Shows -1 if sensor not
available on the card.

# sysctl dev.t4nex.0.temperature
# sysctl dev.t5nex.0.temperature

r254577:
Display P/N information in the description.

r254727:
There is no need to hold the freelist lock around alloc/free of
software descriptors.  This also silences WITNESS warnings when
the software descriptors are allocated with M_WAITOK.

r254933:
Use correct mailbox and PCIe PF number when querying RDMA parameters.

(cherry picked from commit b6dff9d537d7f6047df4cda43b341dd2375fa142)
MFC r255047 (with a manual tweak to match the ext_free in stable/9):

Add a routine for attaching an mbuf to a buffer with an external
refcount.  This one is willing to work with buffers that may already be
referenced.  MEXTADD/m_extadd are suitable only for the first attachment
to a cluster -- they initialize the refcount to 1.

(cherry picked from commit 77304f3b509fbfe1c56c8ff49979f6a89ca36b46)
MFC r255050, r255052.

r255050:
Implement support for rx buffer packing.  Enable it by default for T5
cards.

This is a T4 and T5 chip feature which lets the chip deliver multiple
Ethernet frames in a single buffer.  This is more efficient within the
chip, in the driver, and reduces wastage of space in rx buffers.

- Always allocate rx buffers from the jumbop zone, no matter what the
  MTU is.  Do not use the normal cluster refcounting mechanism.
- Reserve space for an mbuf and a refcount in the cluster itself and let
  the chip DMA multiple frames in the rest.
- Use the embedded mbuf for the first frame and allocate mbufs on the
  fly for any additional frames delivered in the cluster.  Each of these
  mbufs has a reference on the underlying cluster.

r255052:
Fix the sysctl that displays whether buffer packing is enabled
or not.

(cherry picked from commit 5b6b44898b2e13d3677695951177d4f5b723cfa7)
MFC r255198, r255410, and r255411.

r255198:
For TOE connections, the window scale factor in CPL_PASS_ACCEPT_REQ is
set to 15 to indicate that the peer did not send a window scale option
with its SYN.  Do not send a window scale option in the SYN|ACK reply
in that case.

r255410:
Fix a miscalculation that caused cxgbe/tom to auto-increment
a TOE socket's tx buffer size too aggressively.

r255411:
Rework the tx credit mechanism between the cxgbe/tom driver
and the card.  This helps smooth out some burstiness in the
exchange.

(cherry picked from commit 0e872ed8e769231a43249c47364b09df0df2e92c)
MFC r256459:
cxgbe(4): Update T4 and T5 firmwares to 1.9.12.0

(cherry picked from commit 7e245fcc9cf13624c6baa8bd27b03f07bbf13ecc)