From nobody Mon Nov 02 07:56:44 2026 X-Original-To: dev-commits-src-main@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 4jJ3v60ts4z6xnKk for ; Mon, 02 Nov 2026 07:56:50 +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) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jJ3v55CC8z4CNG for ; Mon, 02 Nov 2026 07:56:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793606209; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bDnzVeLS7fT7QggDYjVKLaD7J+wtFgrsBwGSTPlH3Ps=; b=GBgEfOsZi9QhUDpCFItey2yWM8E5vHSIIGBRGDIwCMZY4zFj+VDy9pJvXnCwvK6ziCMpVn fs488wh8n9pJAo6dWW6yL9TaU2Zr6VFLkgbaieFZZCeFXl9JQwSAK7Ss6bKyssHgS3TWxA 0wtFJiqoe+CzogAg7nRnwVJo7QDtImpP8KazEZowh43rPCYyfAODEv/91EsfWUG3DEsRRn TWk3a1hdFqHUxejhZUmmgTwJEqN+cmpejv8mvzpG1ErJ2LLPq/S60BjL/EuA263XQ/Pa3R JiY5cnMw5n8saES5iC2dcJomfOR6izoOdFcGBHT4TkDBqnY0M/JsEhOE1OIQTw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793606209; b=BMAsr5Y74ctH5vlN8vNo9q1Bmb8LYFB/kN2jSahQCRLGgqvDqH7w5k73zV0jvzymh3wH+n Lzq8QCWqR5K111b4/HqVJkcYWc88UtJgYnXL01sp/rlXeTSg6PFNds/WW7nijGvp5OO/pA 5qXLa50wHMwV8nNloDhKe/9ZZd41E7/hl8adVUPd8D5FVywgWNpAY39DAwvXLpnbkT80EE UDMM7z+Qu0a1xpB4WxQlwkos94K1RqyrTbANzK7TDQWv6F3QKFS6cYC80SzVEghN857b/z cQY0vKaZB4iy0nZIywRuTbSIP87sbx4YZNDwfo8WmnaKmzOwe1/wMcwHtZWkmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793606209; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bDnzVeLS7fT7QggDYjVKLaD7J+wtFgrsBwGSTPlH3Ps=; b=i6ChRT3/dc11mkLmAsor7OEz1NwlncGUuGXv09ntLk206P3V9SIM22zsz4Wsc0Vkd32X1L fIWAKs/Vb3PpyhMSwsdUK/eJCcqV+UQMAj5BxsqYfnli9Nhgqdt08u/wj97nhqEBIeoZ0l yrZtuophboH8/iGUbhX6R4ayKw+5erZsja523Ek1Y0XhVpSt6r6wVSHGmqu3pNp1prTua7 QAWkcUwTEMm8OuFmGj4osWcyrtYNky7kFsznlfFHhsDp+hvtNGssiqAv9t7jr8sOGS+1Ox PFUzvoj/Z0ELQND/jjxamA14tArUiz8G0vBw5dDfQkBaoeXzHBYyYhRCfHTIHg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4jJ3v54Pmqzd7h for ; Mon, 02 Nov 2026 07:56:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 320ae by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 02 Nov 2026 07:56:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Sumit Saxena From: Sumit Saxena Subject: git: aca2e5fae3d9 - main - if_bnxt: size MRAV from the AV split entry for backing store V2 List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: Commit messages for the main branch of the src repository 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: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: aca2e5fae3d9c3350b47ee3e7d00937a73dba9a9 Auto-Submitted: auto-generated Date: Mon, 02 Nov 2026 07:56:44 +0000 Message-Id: <6ae8423c.320ae.3063edf4@gitrepo.freebsd.org> The branch main has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=aca2e5fae3d9c3350b47ee3e7d00937a73dba9a9 commit aca2e5fae3d9c3350b47ee3e7d00937a73dba9a9 Author: Sumit Saxena AuthorDate: 2026-10-22 10:48:42 +0000 Commit: Sumit Saxena CommitDate: 2026-11-02 07:55:42 +0000 if_bnxt: size MRAV from the AV split entry for backing store V2 On RoCE-capable Thor2, attach fails with HWRM_FUNC_BACKING_STORE_CFG_V2 returning INVALID_PARAMS, as MRAV is sized the pre-V2 way and the firmware's AV split value is sent as is. Size MRAV from the AV split entry, and move the legacy entry-count packing into bnxt_hwrm_func_backing_store_cfg(). Fixes: d5ce906da7c5 ("bnxt_en: Add backing store V2 support") Reviewed by: gallatin Sponsored by: Broadcom Inc MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D60976 --- sys/dev/bnxt/bnxt_en/bnxt.h | 2 ++ sys/dev/bnxt/bnxt_en/bnxt_hwrm.c | 12 +++++++++++- sys/dev/bnxt/bnxt_en/if_bnxt.c | 24 ++++++++++++------------ 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/sys/dev/bnxt/bnxt_en/bnxt.h b/sys/dev/bnxt/bnxt_en/bnxt.h index 07108cec9f98..5c37fb4b2857 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt.h +++ b/sys/dev/bnxt/bnxt_en/bnxt.h @@ -964,6 +964,8 @@ struct bnxt_ctx_mem_type { struct bnxt_ctx_pg_info *pg_info; }; +#define BNXT_CTX_MRAV_AV_SPLIT_ENTRY 0 + #define BNXT_CTX_QP HWRM_FUNC_BACKING_STORE_CFG_V2_INPUT_TYPE_QP #define BNXT_CTX_SRQ HWRM_FUNC_BACKING_STORE_CFG_V2_INPUT_TYPE_SRQ #define BNXT_CTX_CQ HWRM_FUNC_BACKING_STORE_CFG_V2_INPUT_TYPE_CQ diff --git a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c index cbafba396827..54e06f3a7972 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c @@ -696,12 +696,22 @@ int bnxt_hwrm_func_backing_store_cfg(struct bnxt_softc *softc, uint32_t enables) &req.cq_page_dir); } if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_MRAV) { + u32 units; + ctxm = &ctx->ctx_arr[BNXT_CTX_MRAV]; ctx_pg = ctxm->pg_info; req.mrav_num_entries = htole32(ctx_pg->entries); - if (ctxm->mrav_num_entries_units) + units = ctxm->mrav_num_entries_units; + if (units) { + u32 num_mr, num_ah = ctxm->mrav_av_entries; + + num_mr = ctx_pg->entries - num_ah; + req.mrav_num_entries = + htole32(((num_mr / units) << 16) | + (num_ah / units)); flags |= HWRM_FUNC_BACKING_STORE_CFG_INPUT_FLAGS_MRAV_RESERVATION_SPLIT; + } req.mrav_entry_size = htole16(ctxm->entry_size); bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, &req.mrav_pg_size_mrav_lvl, diff --git a/sys/dev/bnxt/bnxt_en/if_bnxt.c b/sys/dev/bnxt/bnxt_en/if_bnxt.c index 630301604e3e..4f380b7b956e 100644 --- a/sys/dev/bnxt/bnxt_en/if_bnxt.c +++ b/sys/dev/bnxt/bnxt_en/if_bnxt.c @@ -1480,7 +1480,6 @@ bnxt_backing_store_cfg_v2(struct bnxt_softc *softc, u32 ena) static int bnxt_alloc_ctx_mem(struct bnxt_softc *softc) { - struct bnxt_ctx_pg_info *ctx_pg; struct bnxt_ctx_mem_type *ctxm; struct bnxt_ctx_mem_info *ctx; u32 l2_qps, qp1_qps, max_qps; @@ -1558,21 +1557,22 @@ static int bnxt_alloc_ctx_mem(struct bnxt_softc *softc) goto skip_rdma; ctxm = &ctx->ctx_arr[BNXT_CTX_MRAV]; - ctx_pg = ctxm->pg_info; - /* 128K extra is needed to accomodate static AH context - * allocation by f/w. - */ - num_mr = min_t(u32, ctxm->max_entries / 2, 1024 * 256); - num_ah = min_t(u32, num_mr, 1024 * 128); + if (BNXT_SW_RES_LMT(softc) && + ctxm->split_entry_cnt == BNXT_CTX_MRAV_AV_SPLIT_ENTRY + 1) { + num_ah = ctxm->mrav_av_entries; + num_mr = ctxm->max_entries - num_ah; + } else { + /* 128K extra for static AH contexts allocated by f/w. */ + num_mr = min_t(u32, ctxm->max_entries / 2, 1024 * 256); + num_ah = min_t(u32, num_mr, 1024 * 128); + ctxm->split_entry_cnt = BNXT_CTX_MRAV_AV_SPLIT_ENTRY + 1; + if (!ctxm->mrav_av_entries || ctxm->mrav_av_entries > num_ah) + ctxm->mrav_av_entries = num_ah; + } rc = bnxt_setup_ctxm_pg_tbls(softc, ctxm, num_mr + num_ah, 2); if (rc) return rc; - ctx_pg->entries = num_mr + num_ah; ena = HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_MRAV; - if (ctxm->mrav_num_entries_units) - ctx_pg->entries = - ((num_mr / ctxm->mrav_num_entries_units) << 16) | - (num_ah / ctxm->mrav_num_entries_units); ctxm = &ctx->ctx_arr[BNXT_CTX_TIM]; rc = bnxt_setup_ctxm_pg_tbls(softc, ctxm, l2_qps + qp1_qps + extra_qps, 1);