From nobody Fri May 08 23:55:14 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gC5bC4XjTz6byy5 for ; Fri, 08 May 2026 23:55:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gC5bC4F4Xz3Ncr for ; Fri, 08 May 2026 23:55:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1778284519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B+aoTseTtBcxmocZ36fyuA7Conoh6tsEaZO4CkGzmtc=; b=B5e925oRNvFDKnYAC23E//CWeePYOpOtiZOljpjVsqb5gGYhcCNdVJNuBcQdxq3b+fwITX sbbaj6Jo2/HA/72lt2HlCvMGdwilPSuck4CBPAKSJJdYpxsXwnmbzdhFW/IltZV8fvYmm5 EI5+1sgmEpEUbMT5kz/r0rrlA3NUrGmkXzknwN8N8Z5dJmdJOspb0pYb7mTjwG/nKDd5Wt tCEr8UAuqXMf9oriZnT9Wp6+YlBc2pYphWvkj6Fl6d0uE+zyvRPoh8w5T0Pz4LfIUxZPJo u6uvaORmPdZS3ivZIgCPBncIbYxwL8Zal8i8YzVFsFJ1MWq2sXjvJa2qDkxtIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1778284519; a=rsa-sha256; cv=none; b=X8mrXm/MxDuSXIUZBi2rK5M5o0LdgohpzaGa/5YluMCAGVPr4y3lXVlQAgb/HJnvaBH/Oj o2Daew+zoaLAnaoYwlhqdo9XnzZfNRsaUTpMSbOnG3GBdD1AsbaP/kuR6Zbqdu2dx4F/3v Mu8Fqu5K0AQXE1ckRCPpWYMziRVoep0BPFt5qkrMlqNnXokX+ee7iHd4QRpWPv2+I8HI95 lxadrwLhwfr4cMa8IdmYFQXDx6NLgPbZFC6U2TD9FbfjLOR+tZk2G1W9UDOhFaTIVBBtOr oeUKZ1tBbHPz1rUJlMl40Az/lqmAX0yY5P5XMJ+6rnRQn3qJlWC3vnE8omjO9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1778284519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B+aoTseTtBcxmocZ36fyuA7Conoh6tsEaZO4CkGzmtc=; b=P6WWGy6kbKcCo13ysT9Ocixd6Po14495qN5uPak2jhbaxw/vS8jsE+GBdKU4vcpNd7cHvd a6Kuj/PoIhmaEUZGSz0WBpy3LiDlTRHubmEFczgVEhC9aXylEoGsxfEEghe17VnNLoF4IQ xm5lvoMWPDOFEbc7vhrh9u5PTgnTDdi76JuzyoHd6irFS67c/PXFTqDFreTLk03pj03yRH DpSfGtPcgRWu5PG+ky2Dja7O9GVEkcoLZr7qV7KrK2oK0b4OY6PcHtgpXdheq1VcA8wGHP YzTpYmOmchMTyD1be1dkTzQlSRzVBJq+c0QuLBz1pzgJFbPk00YnaxYy/SXXaw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gC5bC3rD2zbWc for ; Fri, 08 May 2026 23:55:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f107 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 08 May 2026 23:55:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar Subject: git: 1bef5535c1f1 - main - cxgbe(4): Updates to the hw and fw headers and config file List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1bef5535c1f191055e545cad029eabe939d93d24 Auto-Submitted: auto-generated Date: Fri, 08 May 2026 23:55:14 +0000 Message-Id: <69fe77e2.3f107.57b32233@gitrepo.freebsd.org> The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=1bef5535c1f191055e545cad029eabe939d93d24 commit 1bef5535c1f191055e545cad029eabe939d93d24 Author: Navdeep Parhar AuthorDate: 2026-03-09 18:19:49 +0000 Commit: Navdeep Parhar CommitDate: 2026-05-08 22:26:02 +0000 cxgbe(4): Updates to the hw and fw headers and config file MFC after: 1 week Sponsored by: Chelsio Communications --- sys/dev/cxgbe/common/t4_regs.h | 51 ++++++-------- sys/dev/cxgbe/firmware/t4fw_interface.h | 107 +++++++++++++++++++++++++++--- sys/dev/cxgbe/firmware/t7fw_cfg.txt | 19 +++--- sys/dev/cxgbe/firmware/t7fw_cfg_uwire.txt | 19 +++--- sys/dev/cxgbe/t4_main.c | 15 +++-- 5 files changed, 154 insertions(+), 57 deletions(-) diff --git a/sys/dev/cxgbe/common/t4_regs.h b/sys/dev/cxgbe/common/t4_regs.h index 09d0d4aa2c08..9984461352d0 100644 --- a/sys/dev/cxgbe/common/t4_regs.h +++ b/sys/dev/cxgbe/common/t4_regs.h @@ -1465,10 +1465,10 @@ #define A_SGE_INT_ENABLE3 0x1040 #define A_SGE_FL_BUFFER_SIZE0 0x1044 -#define S_SIZE 4 +#define CXGBE_S_SIZE 4 #define CXGBE_M_SIZE 0xfffffffU -#define V_SIZE(x) ((x) << S_SIZE) -#define G_SIZE(x) (((x) >> S_SIZE) & CXGBE_M_SIZE) +#define CXGBE_V_SIZE(x) ((x) << S_SIZE) +#define CXGBE_G_SIZE(x) (((x) >> S_SIZE) & CXGBE_M_SIZE) #define S_T6_SIZE 4 #define M_T6_SIZE 0xfffffU @@ -26578,15 +26578,10 @@ #define V_CIM_ULP_TX_PKT_ERR_CODE(x) ((x) << S_CIM_ULP_TX_PKT_ERR_CODE) #define G_CIM_ULP_TX_PKT_ERR_CODE(x) (((x) >> S_CIM_ULP_TX_PKT_ERR_CODE) & M_CIM_ULP_TX_PKT_ERR_CODE) -#define S_CIM_SGE1_PKT_ERR_CODE 8 -#define M_CIM_SGE1_PKT_ERR_CODE 0xffU -#define V_CIM_SGE1_PKT_ERR_CODE(x) ((x) << S_CIM_SGE1_PKT_ERR_CODE) -#define G_CIM_SGE1_PKT_ERR_CODE(x) (((x) >> S_CIM_SGE1_PKT_ERR_CODE) & M_CIM_SGE1_PKT_ERR_CODE) - -#define S_CIM_SGE0_PKT_ERR_CODE 0 -#define M_CIM_SGE0_PKT_ERR_CODE 0xffU -#define V_CIM_SGE0_PKT_ERR_CODE(x) ((x) << S_CIM_SGE0_PKT_ERR_CODE) -#define G_CIM_SGE0_PKT_ERR_CODE(x) (((x) >> S_CIM_SGE0_PKT_ERR_CODE) & M_CIM_SGE0_PKT_ERR_CODE) +#define S_CIM_SGE_PKT_ERR_CODE 0 +#define M_CIM_SGE_PKT_ERR_CODE 0xffU +#define V_CIM_SGE_PKT_ERR_CODE(x) ((x) << S_CIM_SGE_PKT_ERR_CODE) +#define G_CIM_SGE_PKT_ERR_CODE(x) (((x) >> S_CIM_SGE_PKT_ERR_CODE) & M_CIM_SGE_PKT_ERR_CODE) #define S_CIM_PCIE_PKT_ERR_CODE 8 #define M_CIM_PCIE_PKT_ERR_CODE 0xffU @@ -60550,17 +60545,15 @@ #define A_MAC_PORT_PTP_DRIFT_ADJUST_COUNT 0x9a0 #define A_MAC_PORT_PTP_OFFSET_ADJUST_FINE 0x9a4 -#if 0 -#define S_B 16 -#define M_B 0xffffU -#define V_B(x) ((x) << S_B) -#define G_B(x) (((x) >> S_B) & M_B) -#endif +#define CXGBE_S_B 16 +#define CXGBE_M_B 0xffffU +#define CXGBE_V_B(x) ((x) << CXGBE_S_B) +#define CXGBE_G_B(x) (((x) >> CXGBE_S_B) & CXGBE_M_B) -#define S_A 0 -#define M_A 0xffffU -#define V_A(x) ((x) << S_A) -#define G_A(x) (((x) >> S_A) & M_A) +#define CXGBE_S_A 0 +#define CXGBE_M_A 0xffffU +#define CXGBE_V_A(x) ((x) << CXGBE_S_A) +#define CXGBE_G_A(x) (((x) >> CXGBE_S_A) & CXGBE_M_A) #define A_MAC_PORT_PTP_OFFSET_ADJUST_TOTAL 0x9a8 #define A_MAC_PORT_PTP_CFG 0x9ac @@ -62257,10 +62250,10 @@ #define A_MAC_PORT_MTIP_VLAN_TPID_0 0x1a00 -#define S_VLANTAG 0 +#define CXGBE_S_VLANTAG 0 #define CXGBE_M_VLANTAG 0xffffU -#define V_VLANTAG(x) ((x) << S_VLANTAG) -#define G_VLANTAG(x) (((x) >> S_VLANTAG) & M_VLANTAG) +#define CXGBE_V_VLANTAG(x) ((x) << CXGBE_S_VLANTAG) +#define CXGBE_G_VLANTAG(x) (((x) >> CXGBE_S_VLANTAG) & CXGBE_M_VLANTAG) #define A_MAC_PORT_MTIP_VLAN_TPID_1 0x1a04 #define A_MAC_PORT_MTIP_VLAN_TPID_2 0x1a08 @@ -69613,10 +69606,10 @@ #define V_INIT_ENABLE(x) ((x) << S_INIT_ENABLE) #define F_INIT_ENABLE V_INIT_ENABLE(1U) -#define S_WAIT 16 -#define M_WAIT 0xfffU -#define CXGBE_V_WAIT(x) ((x) << S_WAIT) -#define G_WAIT(x) (((x) >> S_WAIT) & M_WAIT) +#define CXGBE_S_WAIT 16 +#define CXGBE_M_WAIT 0xfffU +#define CXGBE_V_WAIT(x) ((x) << CXGBE_S_WAIT) +#define CXGBE_G_WAIT(x) (((x) >> CXGBE_S_WAIT) & CXGBE_M_WAIT) #define S_EN_MULTI_RANK_SEL 4 #define V_EN_MULTI_RANK_SEL(x) ((x) << S_EN_MULTI_RANK_SEL) diff --git a/sys/dev/cxgbe/firmware/t4fw_interface.h b/sys/dev/cxgbe/firmware/t4fw_interface.h index b11552dce021..6235a2c3fab4 100644 --- a/sys/dev/cxgbe/firmware/t4fw_interface.h +++ b/sys/dev/cxgbe/firmware/t4fw_interface.h @@ -2560,6 +2560,22 @@ struct fw_ri_wr { __be32 tpt_offset_t10_config; __be32 r8[2]; } nvmet_init; + struct fw_ri_iscsi_init { + __u8 type; + __u8 dcrc_dis_to_hcrc; + __u8 r4[3]; + __u8 qp_caps; + __be16 r5; + __be32 pdid; + __be32 qpid; + __be32 sq_eqid; + __be32 r6; + __be32 scqid; + __be32 rcqid; + __be32 r7[4]; + __be32 r8[2]; + __be64 r9; + } iscsi_init; struct fw_ri_fini { __u8 type; __u8 r3[7]; @@ -2634,6 +2650,37 @@ struct fw_ri_wr { #define G_FW_RI_WR_T10_CONFIG(x) \ (((x) >> S_FW_RI_WR_T10_CONFIG) & M_FW_RI_WR_T10_CONFIG) +#define S_FW_RI_WR_DCRC_DIS 7 +#define M_FW_RI_WR_DCRC_DIS 0x1 +#define V_FW_RI_WR_DCRC_DIS(x) ((x) << S_FW_RI_WR_DCRC_DIS) +#define G_FW_RI_WR_DCRC_DIS(x) \ + (((x) >> S_FW_RI_WR_DCRC_DIS) & M_FW_RI_WR_DCRC_DIS) +#define F_FW_RI_WR_DCRC_DIS V_FW_RI_WR_DCRC_DIS(1U) + +#define S_FW_RI_WR_HCRC_DIS 6 +#define M_FW_RI_WR_HCRC_DIS 0x1 +#define V_FW_RI_WR_HCRC_DIS(x) ((x) << S_FW_RI_WR_HCRC_DIS) +#define G_FW_RI_WR_HCRC_DIS(x) \ + (((x) >> S_FW_RI_WR_HCRC_DIS) & M_FW_RI_WR_HCRC_DIS) +#define F_FW_RI_WR_HCRC_DIS V_FW_RI_WR_HCRC_DIS(1U) + +#define S_FW_RI_WR_PSZ_IDX 4 +#define M_FW_RI_WR_PSZ_IDX 0x3 +#define V_FW_RI_WR_PSZ_IDX(x) ((x) << S_FW_RI_WR_PSZ_IDX) +#define G_FW_RI_WR_PSZ_IDX(x) \ + (((x) >> S_FW_RI_WR_PSZ_IDX) & M_FW_RI_WR_PSZ_IDX) + +#define S_FW_RI_WR_DCRC 1 +#define M_FW_RI_WR_DCRC 0x1 +#define V_FW_RI_WR_DCRC(x) ((x) << S_FW_RI_WR_DCRC) +#define G_FW_RI_WR_DCRC(x) (((x) >> S_FW_RI_WR_DCRC) & M_FW_RI_WR_DCRC) +#define F_FW_RI_WR_DCRC V_FW_RI_WR_DCRC(1U) + +#define S_FW_RI_WR_HCRC 0 +#define M_FW_RI_WR_HCRC 0x1 +#define V_FW_RI_WR_HCRC(x) ((x) << S_FW_RI_WR_HCRC) +#define G_FW_RI_WR_HCRC(x) (((x) >> S_FW_RI_WR_HCRC) & M_FW_RI_WR_HCRC) +#define F_FW_RI_WR_HCRC V_FW_RI_WR_HCRC(1U) /****************************************************************************** * R o C E V 2 W O R K R E Q U E S T s @@ -2951,6 +2998,24 @@ struct fw_v2_nvmet_tx_data_wr { #endif }; +#define S_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE 20 +#define M_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE 0x1 +#define V_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE(x) \ + ((x) << S_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE) +#define G_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE(x) \ + (((x) >> S_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE) & \ + M_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE) +#define F_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE \ + V_FW_V2_NVMET_TX_DATA_WR_DACK_CHANGE(1U) + +#define S_FW_V2_NVMET_TX_DATA_WR_DACK_MODE 18 +#define M_FW_V2_NVMET_TX_DATA_WR_DACK_MODE 0x3 +#define V_FW_V2_NVMET_TX_DATA_WR_DACK_MODE(x) \ + ((x) << S_FW_V2_NVMET_TX_DATA_WR_DACK_MODE) +#define G_FW_V2_NVMET_TX_DATA_WR_DACK_MODE(x) \ + (((x) >> S_FW_V2_NVMET_TX_DATA_WR_DACK_MODE) & \ + M_FW_V2_NVMET_TX_DATA_WR_DACK_MODE) + #define S_FW_V2_NVMET_TX_DATA_WR_FLAGS_HI 10 #define M_FW_V2_NVMET_TX_DATA_WR_FLAGS_HI 0x3fffff #define V_FW_V2_NVMET_TX_DATA_WR_FLAGS_HI(x) \ @@ -4990,6 +5055,16 @@ struct fw_crypto_update_sa_wr { } key; }; +#define S_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER 3 +#define M_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER 0x1 +#define V_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER(x) \ + ((x) << S_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER) +#define G_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER(x) \ + (((x) >> S_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER) & \ + M_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER) +#define F_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER \ + V_FW_CRYPTO_UPDATE_SA_WR_EG_IPVER(1U) + #define S_FW_CRYPTO_UPDATE_SA_WR_SAOP 2 #define M_FW_CRYPTO_UPDATE_SA_WR_SAOP 0x1 #define V_FW_CRYPTO_UPDATE_SA_WR_SAOP(x) \ @@ -8952,24 +9027,40 @@ enum fw_port_type { FW_PORT_TYPE_KX4 = 5, /* No, 4, No, No, Yes, Yes, 10G */ FW_PORT_TYPE_CX4 = 6, /* No, 4, No, No, No, No, 10G */ FW_PORT_TYPE_KX = 7, /* No, 1, No, No, Yes, No, 1G */ - FW_PORT_TYPE_KR = 8, /* No, 1, No, No, Yes, Yes, 10G */ + FW_PORT_TYPE_KR = 8, /* No, 1, No, No, Yes, Yes, 10G BP AN */ FW_PORT_TYPE_SFP = 9, /* No, 1, Yes, No, No, No, 10G */ - FW_PORT_TYPE_BP_AP = 10, /* No, 1, No, No, Yes, Yes, 10G, BP ANGE */ - FW_PORT_TYPE_BP4_AP = 11, /* No, 4, No, No, Yes, Yes, 10G, BP ANGE */ + FW_PORT_TYPE_BP_AP = 10, /* No, 1, No, No, Yes, Yes, 10G, BP AN */ + FW_PORT_TYPE_BP4_AP = 11, /* No, 4, No, No, Yes, Yes, 10G, BP AN */ FW_PORT_TYPE_QSFP_10G = 12, /* No, 1, Yes, No, No, No, 10G */ FW_PORT_TYPE_QSA = 13, /* No, 1, Yes, No, No, No, 10G */ FW_PORT_TYPE_QSFP = 14, /* No, 4, Yes, No, No, No, 40G */ - FW_PORT_TYPE_BP40_BA = 15, /* No, 4, No, No, Yes, Yes, 40G/10G/1G, BP ANGE */ - FW_PORT_TYPE_KR4_100G = 16, /* No, 4, 100G/40G/25G, Backplane */ + FW_PORT_TYPE_BP40_BA = 15, /* No, 4, No, No, Yes, Yes, 40G/10G/1G, BP AN */ + FW_PORT_TYPE_KR4_100G = 16, /* No, 4, 100G/40G/50G/25G/10G/1G, BP AN */ FW_PORT_TYPE_CR4_QSFP = 17, /* No, 4, 100G/40G/25G */ - FW_PORT_TYPE_CR_QSFP = 18, /* No, 1, 25G Spider cable */ - FW_PORT_TYPE_CR2_QSFP = 19, /* No, 2, 50G */ + FW_PORT_TYPE_CR_QSFP = 18, /* No, 1, 25G, Spider cable */ + FW_PORT_TYPE_CR2_QSFP = 19, /* No, 2, 50G, Spider cable */ FW_PORT_TYPE_SFP28 = 20, /* No, 1, 25G/10G/1G */ FW_PORT_TYPE_KR_SFP28 = 21, /* No, 1, 25G/10G/1G using Backplane */ FW_PORT_TYPE_KR_XLAUI = 22, /* No, 4, 40G/10G/1G, No AN*/ + FW_PORT_TYPE_BARE_LINK_50G = 23, /* No, 1, 50G */ + FW_PORT_TYPE_BARE_LINK_100G = 24, /* No, 2, 100G/50G */ + FW_PORT_TYPE_BARE_LINK_200G = 25, /* No, 4, 200G/100G/50G */ FW_PORT_TYPE_SFP56 = 26, /* No, 1, 50G/25G */ FW_PORT_TYPE_QSFP56 = 27, /* No, 4, 200G/100G/50G/25G */ - FW_PORT_TYPE_QSFPDD = 34, /* No, 8, 400G/200G/100G/50G */ + FW_PORT_TYPE_QSFP56_4_50G = 28, /* No, 1, 50G, Spider cable */ + FW_PORT_TYPE_KR_50G = 29, /* No, 1, 50G/25G/10G/1G, BP AN */ + FW_PORT_TYPE_KR2_100G = 30, /* No, 2, 100G/50G/25G/10G/1G, BP AN */ + FW_PORT_TYPE_KR4_200G = 31, /* No, 4, 200G/100G/40G/50G/25G/10G/1G, BP AN */ + FW_PORT_TYPE_QSFP56_2_50G = 32, /* No, 1, 50G, Spider cable */ + FW_PORT_TYPE_OSFP = 33, /* No, 8, 400G/200G/100G/50G */ + FW_PORT_TYPE_QSFPDD = 34, /* No, 8, 400G/200G/100G/50G */ + FW_PORT_TYPE_OSFP_2_200G = 35, /* No, 4, 200G, Spider cable */ + FW_PORT_TYPE_QSFPDD_2_200G = 36,/* No, 4, 200G, Spider cable */ + FW_PORT_TYPE_KR8_400G = 37, /* No, 8, 400G/200G/100G/50G/40G/25G/10G/1G, BP AN */ + FW_PORT_TYPE_QSFP56_2_100G = 38,/* No, 2, 100G, Spider cable */ + FW_PORT_TYPE_QSFPDD_4_100G = 39,/* No, 2, 100G, Spider cable */ + FW_PORT_TYPE_KR2_50G = 40, /* No, 1, 50G/25G/10G/1G, BP AN */ + FW_PORT_TYPE_MAX, FW_PORT_TYPE_NONE = M_FW_PORT_CMD_PORTTYPE32 }; diff --git a/sys/dev/cxgbe/firmware/t7fw_cfg.txt b/sys/dev/cxgbe/firmware/t7fw_cfg.txt index 70b05da04a23..33c703fdc9d7 100644 --- a/sys/dev/cxgbe/firmware/t7fw_cfg.txt +++ b/sys/dev/cxgbe/firmware/t7fw_cfg.txt @@ -175,6 +175,11 @@ # TPT error. # Err2uP = 0 + # ULP_TX_ACCELERATOR_CTL + reg[0x8f90] = 0x00000015/0x00000015 # Compression block clock gating + # Dedupe clock gating + # Erasure Coding clock gating + #ULP_RX_CTL1 reg[0x19330] = 0x000000f0/0x000000f0 # RDMA_Invld_Msg_Dis = 3 # ROCE_Invld_Msg_Dis = 3 @@ -201,7 +206,7 @@ # default gc enabled. # HMA configuration (uncomment following lines to enable HMA) - hma_size = 128 # Size (in MBs) of host memory expected + hma_size = 256 # Size (in MBs) of host memory expected hma_regions = iscsi,rrq,tls,ddp,pmrx,stag,pbl,rq # What all regions to place in host memory #mc[0]=0 @@ -394,8 +399,7 @@ neq = 16 # niqflint + nethctrl Egress Queues nexactf = 8 # number of exact MPSTCAM MAC filters cmask = all # access to all channels - #pmask = 0x4 # access to only one port - pmask = 0x1 # access to only one port + pmask = 0x4 # access to only one port [function "3"] nvf = 16 # NVF on this function @@ -407,7 +411,7 @@ neq = 16 # niqflint + nethctrl Egress Queues nexactf = 8 # number of exact MPSTCAM MAC filters cmask = all # access to all channels - #pmask = 0x2 # access to only one port + pmask = 0x8 # access to only one port # Some OS Drivers manage all application functions for all ports via PF4. # Thus we need to provide a large number of resources here. For Egress @@ -421,7 +425,7 @@ r_caps = all # read permissions for all commands nvi = 28 # NVI_UNIFIED niqflint = 170 # NFLIQ_UNIFIED + NLFIQ_WD - nethctrl = 224 # NETHCTRL_UNIFIED + NETHCTRL_WD + nethctrl = 288 # NETHCTRL_UNIFIED + NETHCTRL_WD neq = 252 # NEQ_UNIFIED + NEQ_WD nqpcq = 12288 nexactf = 40 # NMPSTCAM_UNIFIED @@ -435,8 +439,7 @@ nserver = 480 # number of server region entries nhash = 12288 # number of hash region entries nhpfilter = 64 # number of high priority filter region entries - #protocol = nic_vm, ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif, tlskeys, crypto_lookaside, ipsec_inline, rocev2, nic_hashfilter, ofld_sendpath - protocol = nic_vm, ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif, tlskeys, crypto_lookaside, ipsec_inline, rocev2, nic_hashfilter, nvme_tcp + protocol = nic_vm, ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif, tlskeys, crypto_lookaside, ipsec_inline, rocev2, nic_hashfilter, nvme_tcp, ofld_sendpath tp_l2t = 3072 tp_ddp = 2 tp_ddp_iscsi = 2 @@ -643,7 +646,7 @@ [fini] version = 0x1425001d - checksum = 0x3671da3b + checksum = 0x2419f987 # Total resources used by above allocations: # Virtual Interfaces: 104 diff --git a/sys/dev/cxgbe/firmware/t7fw_cfg_uwire.txt b/sys/dev/cxgbe/firmware/t7fw_cfg_uwire.txt index b1f5129238eb..9da841153138 100644 --- a/sys/dev/cxgbe/firmware/t7fw_cfg_uwire.txt +++ b/sys/dev/cxgbe/firmware/t7fw_cfg_uwire.txt @@ -175,6 +175,11 @@ # TPT error. # Err2uP = 0 + # ULP_TX_ACCELERATOR_CTL + reg[0x8f90] = 0x00000015/0x00000015 # Compression block clock gating + # Dedupe clock gating + # Erasure Coding clock gating + #ULP_RX_CTL1 reg[0x19330] = 0x000000f0/0x000000f0 # RDMA_Invld_Msg_Dis = 3 # ROCE_Invld_Msg_Dis = 3 @@ -201,7 +206,7 @@ # default gc enabled. # HMA configuration (uncomment following lines to enable HMA) - hma_size = 128 # Size (in MBs) of host memory expected + hma_size = 256 # Size (in MBs) of host memory expected hma_regions = iscsi,rrq,tls,ddp,pmrx,stag,pbl,rq # What all regions to place in host memory #mc[0]=0 @@ -394,8 +399,7 @@ neq = 16 # niqflint + nethctrl Egress Queues nexactf = 8 # number of exact MPSTCAM MAC filters cmask = all # access to all channels - #pmask = 0x4 # access to only one port - pmask = 0x1 # access to only one port + pmask = 0x4 # access to only one port [function "3"] nvf = 16 # NVF on this function @@ -407,7 +411,7 @@ neq = 16 # niqflint + nethctrl Egress Queues nexactf = 8 # number of exact MPSTCAM MAC filters cmask = all # access to all channels - #pmask = 0x2 # access to only one port + pmask = 0x8 # access to only one port # Some OS Drivers manage all application functions for all ports via PF4. # Thus we need to provide a large number of resources here. For Egress @@ -421,7 +425,7 @@ r_caps = all # read permissions for all commands nvi = 28 # NVI_UNIFIED niqflint = 170 # NFLIQ_UNIFIED + NLFIQ_WD - nethctrl = 224 # NETHCTRL_UNIFIED + NETHCTRL_WD + nethctrl = 288 # NETHCTRL_UNIFIED + NETHCTRL_WD neq = 252 # NEQ_UNIFIED + NEQ_WD nqpcq = 12288 nexactf = 40 # NMPSTCAM_UNIFIED @@ -435,8 +439,7 @@ nserver = 480 # number of server region entries nhash = 12288 # number of hash region entries nhpfilter = 64 # number of high priority filter region entries - #protocol = nic_vm, ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif, tlskeys, crypto_lookaside, ipsec_inline, rocev2, nic_hashfilter, ofld_sendpath - protocol = nic_vm, ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif, tlskeys, crypto_lookaside, ipsec_inline, rocev2, nic_hashfilter, nvme_tcp + protocol = nic_vm, ofld, rddp, rdmac, iscsi_initiator_pdu, iscsi_target_pdu, iscsi_t10dif, tlskeys, crypto_lookaside, ipsec_inline, rocev2, nic_hashfilter, nvme_tcp, ofld_sendpath tp_l2t = 3072 tp_ddp = 2 tp_ddp_iscsi = 2 @@ -643,7 +646,7 @@ [fini] version = 0x1425001d - checksum = 0x96513217 + checksum = 0x83f95163 # Total resources used by above allocations: # Virtual Interfaces: 104 diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 69ecfce1dade..d73204eb808c 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -3760,10 +3760,17 @@ port_mword(struct port_info *pi, uint32_t speed) return (IFM_NONE); } break; - case M_FW_PORT_CMD_PTYPE: /* FW_PORT_TYPE_NONE for old firmware */ - if (chip_id(pi->adapter) >= CHELSIO_T7) - return (IFM_UNKNOWN); - /* fall through */ + case FW_PORT_TYPE_KR4_200G: { + /* + * Pre-T7 firmware used M_FW_PORT_CMD_PTYPE for PORT_TYPE_NONE + * and driver needs to deal with both. + */ + _Static_assert(M_FW_PORT_CMD_PTYPE == FW_PORT_TYPE_KR4_200G, + "driver/firmware mismatch"); + if (chip_id(pi->adapter) < CHELSIO_T7) + return (IFM_NONE); + return (IFM_200G_KR4_PAM4); + } case FW_PORT_TYPE_NONE: return (IFM_NONE); }