Commit 484963ce authored by Yinjun Zhang's avatar Yinjun Zhang Committed by David S. Miller
Browse files

nfp: extend capability and control words



Currently the 32-bit capability word is almost exhausted, now
allocate some more words to support new features, and control
word is also extended accordingly. Packet-type offloading is
implemented in NIC application firmware, but it's not used in
kernel driver, so reserve this bit here in case it's redefined
for other use.

Signed-off-by: default avatarYinjun Zhang <yinjun.zhang@corigine.com>
Reviewed-by: default avatarLouis Peens <louis.peens@corigine.com>
Signed-off-by: default avatarSimon Horman <simon.horman@corigine.com>
Reviewed-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8719a1c3
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -541,6 +541,7 @@ struct nfp_net_dp {
 * @id:			vNIC id within the PF (0 for VFs)
 * @fw_ver:		Firmware version
 * @cap:                Capabilities advertised by the Firmware
 * @cap_w1:             Extended capabilities word advertised by the Firmware
 * @max_mtu:            Maximum support MTU advertised by the Firmware
 * @rss_hfunc:		RSS selected hash function
 * @rss_cfg:            RSS configuration
@@ -617,6 +618,7 @@ struct nfp_net {
	u32 id;

	u32 cap;
	u32 cap_w1;
	u32 max_mtu;

	u8 rss_hfunc;
+1 −0
Original line number Diff line number Diff line
@@ -2452,6 +2452,7 @@ static int nfp_net_read_caps(struct nfp_net *nn)
{
	/* Get some of the read-only fields from the BAR */
	nn->cap = nn_readl(nn, NFP_NET_CFG_CAP);
	nn->cap_w1 = nn_readq(nn, NFP_NET_CFG_CAP_WORD1);
	nn->max_mtu = nn_readl(nn, NFP_NET_CFG_MAX_MTU);

	/* ABI 4.x and ctrl vNIC always use chained metadata, in other cases
+11 −3
Original line number Diff line number Diff line
@@ -257,10 +257,18 @@
#define   NFP_NET_CFG_BPF_CFG_MASK	7ULL
#define   NFP_NET_CFG_BPF_ADDR_MASK	(~NFP_NET_CFG_BPF_CFG_MASK)

/* 40B reserved for future use (0x0098 - 0x00c0)
/* 3 words reserved for extended ctrl words (0x0098 - 0x00a4)
 * 3 words reserved for extended cap words (0x00a4 - 0x00b0)
 * Currently only one word is used, can be extended in future.
 */
#define NFP_NET_CFG_RESERVED		0x0098
#define NFP_NET_CFG_RESERVED_SZ		0x0028
#define NFP_NET_CFG_CTRL_WORD1		0x0098
#define   NFP_NET_CFG_CTRL_PKT_TYPE	  (0x1 << 0) /* Pkttype offload */

#define NFP_NET_CFG_CAP_WORD1		0x00a4

/* 16B reserved for future use (0x00b0 - 0x00c0) */
#define NFP_NET_CFG_RESERVED		0x00b0
#define NFP_NET_CFG_RESERVED_SZ		0x0010

/* RSS configuration (0x0100 - 0x01ac):
 * Used only when NFP_NET_CFG_CTRL_RSS is enabled