From nobody Thu Nov 14 07:13:11 2024 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 4Xprw80kXnz5dFFC; Thu, 14 Nov 2024 07:13:12 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Xprw75n5Hz4d6n; Thu, 14 Nov 2024 07:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1731568391; 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=gXZFceapMqHMoibagUXY8SOK+kBISqqWpJ4+T6DO3dQ=; b=ghMZpxNW/gLHNL+VKC9T7jSOHHwSbTP7zTfuiLJA+lQoxopkUNWRoMd2axHalOb96pGR0Z KY+Rqg/ts73P7UQCBfYBeBM2ye/s7Vp/nIXBzQZHLPSfUJ+X3T2kmuNd+H/wjx76E7zfbr 9UW2o1zhBj/3Ywe8SdEYxf805y8MjedEhTDmhBxki12jGhd/hi4aGS6mQtQsz7/PDMskWY DwQ3Na3aMilVLWeuh6jxWtDl2LstKzUGEmv6LwV33Ha1nCS4rXGIjhxQzyp9ypoLr5jrVV tAdDdWQByY5XywJOt4vI6P/G3ePAdUlazmWM6DVQj41i8T8nRb/TZRdfSCZxpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1731568391; 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=gXZFceapMqHMoibagUXY8SOK+kBISqqWpJ4+T6DO3dQ=; b=nUP3iDEfOaFY50tEAKdHrWPnhJ3/CihvpaJ4rXA/N0l948bf/d7BglsKvx4myjECSI6ekq RwRpS5TXwFHrelILOGZyZz0FSfzjojD3f2emgzbJs6g082hfc0yBXQB32BazQeu7+9cE7c 71wabx3J9NwVaSeKK62qXiChBmiNFMG/oHHDfxDV9yhgKvPfGM5GuWGA6aZ7BtfTEHiRBy ETYJc3gmEwABk6kO8ALVracJRkUHezmuFyDO8Byhrn0IL3BKsXJ8nvFnTBNXVTnqnJe98l sIFkaCXx9LO4kcbx0UP19fBR1gNKeapfifvTHgefL5RZk7bnYq0Wg52yDxcsOA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1731568391; a=rsa-sha256; cv=none; b=OQQUYPH/5tNZ3GtMDZI1dznIqX6Fm0n5N/h5xXaiUtKO4cUD+B469OqPhZLPvCvHHiACo0 VOA91giC1Q30HDcjcKlnL0u5PxCwgIu4YwhCl7gJ5Li/QecatxQ3T6v8ROwaHYYy6fiYTF 5YtaYTUDPeGaK+l06eLUpj4JHe8imHz8ZqJVREBBLgjtYPBdwFLrjQKECgkcUew39VhpM2 DFN7i/jJWg8OI+j0Wkk9alLcfV+7mjGHZ38UcA8wEAJj5MiAfR001ypu6oz3d2VtxYye7Z zhtnBFQypWTD1fS8CQskvjtrmY02YYaK2/Bt9zPjMLAPFfqFu9vfq1YCMSFxZw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Xprw75PTPzTxF; Thu, 14 Nov 2024 07:13:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 4AE7DBUh051121; Thu, 14 Nov 2024 07:13:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4AE7DBmM051118; Thu, 14 Nov 2024 07:13:11 GMT (envelope-from git) Date: Thu, 14 Nov 2024 07:13:11 GMT Message-Id: <202411140713.4AE7DBmM051118@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kevin Bowling Subject: git: 48ddd1b9f887 - main - ixgbe: Add support for 1Gbit DAC links 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 48ddd1b9f88753c6875566fbb67bc622453e4993 Auto-Submitted: auto-generated The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=48ddd1b9f88753c6875566fbb67bc622453e4993 commit 48ddd1b9f88753c6875566fbb67bc622453e4993 Author: Kevin Bowling AuthorDate: 2024-11-14 06:33:28 +0000 Commit: Kevin Bowling CommitDate: 2024-11-14 07:11:08 +0000 ixgbe: Add support for 1Gbit DAC links This is a relatively well known trick for the X520 (82599), can be useful for testing and lab settings. It's not an official standard or particularly common but ubiquitous Broadcom switch ASICs deal with it. We'll call it 1000Base-KX because it's SerDes on the passive cable and I don't think it's worth adding another media type for this. Reviewed by: emaste MFC after: 1 week Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D47352 --- sys/dev/ixgbe/if_ix.c | 7 ++++++- sys/dev/ixgbe/ixgbe_82599.c | 11 +++++++++++ sys/dev/ixgbe/ixgbe_phy.c | 3 ++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c index 80f288a4ccf0..f8a620295aa4 100644 --- a/sys/dev/ixgbe/if_ix.c +++ b/sys/dev/ixgbe/if_ix.c @@ -1315,9 +1315,11 @@ ixgbe_add_media_types(if_ctx_t ctx) } if (layer & IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU || - layer & IXGBE_PHYSICAL_LAYER_SFP_ACTIVE_DA) + layer & IXGBE_PHYSICAL_LAYER_SFP_ACTIVE_DA) { ifmedia_add(sc->media, IFM_ETHER | IFM_10G_TWINAX, 0, NULL); + ifmedia_add(sc->media, IFM_ETHER | IFM_1000_KX, 0, NULL); + } if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_LR) { ifmedia_add(sc->media, IFM_ETHER | IFM_10G_LR, 0, NULL); @@ -2323,6 +2325,9 @@ ixgbe_if_media_status(if_ctx_t ctx, struct ifmediareq * ifmr) case IXGBE_LINK_SPEED_10GB_FULL: ifmr->ifm_active |= IFM_10G_TWINAX | IFM_FDX; break; + case IXGBE_LINK_SPEED_1GB_FULL: + ifmr->ifm_active |= IFM_1000_KX | IFM_FDX; + break; } if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_LR) switch (sc->link_speed) { diff --git a/sys/dev/ixgbe/ixgbe_82599.c b/sys/dev/ixgbe/ixgbe_82599.c index 1ecab83a4e92..b2b40371648b 100644 --- a/sys/dev/ixgbe/ixgbe_82599.c +++ b/sys/dev/ixgbe/ixgbe_82599.c @@ -441,6 +441,17 @@ s32 ixgbe_get_link_capabilities_82599(struct ixgbe_hw *hw, goto out; } + if (hw->phy.sfp_type == ixgbe_sfp_type_da_cu_core0 || + hw->phy.sfp_type == ixgbe_sfp_type_da_cu_core1) { + *speed = IXGBE_LINK_SPEED_10GB_FULL; + *autoneg = true; + + if (hw->phy.multispeed_fiber) + *speed |= IXGBE_LINK_SPEED_1GB_FULL; + + goto out; + } + /* * Determine link capabilities based on the stored value of AUTOC, * which represents EEPROM defaults. If AUTOC value has not diff --git a/sys/dev/ixgbe/ixgbe_phy.c b/sys/dev/ixgbe/ixgbe_phy.c index da7d16a514d0..218a9dac3b78 100644 --- a/sys/dev/ixgbe/ixgbe_phy.c +++ b/sys/dev/ixgbe/ixgbe_phy.c @@ -1436,7 +1436,8 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw) if (((comp_codes_1g & IXGBE_SFF_1GBASESX_CAPABLE) && (comp_codes_10g & IXGBE_SFF_10GBASESR_CAPABLE)) || ((comp_codes_1g & IXGBE_SFF_1GBASELX_CAPABLE) && - (comp_codes_10g & IXGBE_SFF_10GBASELR_CAPABLE))) + (comp_codes_10g & IXGBE_SFF_10GBASELR_CAPABLE)) || + (cable_tech & IXGBE_SFF_DA_PASSIVE_CABLE)) hw->phy.multispeed_fiber = true; /* Determine PHY vendor */