From nobody Fri Aug 18 17:35:47 2023 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 4RS8DJ51C4z4qq57 for ; Fri, 18 Aug 2023 17:36:00 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RS8DJ35TKz3Y4v for ; Fri, 18 Aug 2023 17:36:00 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-3fe4ad22e36so11424275e9.2 for ; Fri, 18 Aug 2023 10:36:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692380159; x=1692984959; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qrD5C1S6U2/lsGJPSHaSPEuojLaTeHGekT7oSZEr4gE=; b=SkWrfmXw5TooUvQjSqaLrl93U+uL0DbDoS8Io0VFUlvJomDm9ta+8+jf1DetiGkUvK Zhm4ggziw7LUr97iKbGjtYPXBKMvAS00dA4aNFf+lqkbWTl6IFxilmmgZ4shoGw6I6mJ 0l8cJI6n6Ua+reyOTQ6AA1z//IbD6nXTEEyA/zT7FrDHlgzqSex/kPsCiaThvE3FomBY KOhGKaSJQ90nZKYGCMcS5k0jv221k7kZ0cDpjSIo5lC3VZUtPfF9v8Fz0k0xayAnnNnf 7y+l0VJr+X+EJVRoIvZ1rayZBsxv3oPRqHxawUOG8CyZIDLAEgQisbTDVo4AZ+f1v3hQ v7OA== X-Gm-Message-State: AOJu0Yxie+lt92g50aEVqdeYFfLLb+fqFX44gaHWKf4W1qRxqcC+m7pp AJ50q1/Mj47euAlpr6N1vykuUV9ic8bOWil/IXI= X-Google-Smtp-Source: AGHT+IEYeI/jgfkeN9paa7Vba120ECAtjnAOOAw9zS2fS5jzbiE1EL+ERkPkpUOZ9D5Kh5h9cyjmGg== X-Received: by 2002:adf:f202:0:b0:317:1b08:b317 with SMTP id p2-20020adff202000000b003171b08b317mr2473331wro.6.1692380158406; Fri, 18 Aug 2023 10:35:58 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.246]) by smtp.gmail.com with ESMTPSA id p6-20020a5d68c6000000b00317c742ca9asm3539785wrw.43.2023.08.18.10.35.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 18 Aug 2023 10:35:58 -0700 (PDT) Content-Type: text/plain; charset=utf-8 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.600.7\)) Subject: Re: git: 2a9021898c4e - main - sff: Add SFP driver (fdt-based draft) From: Jessica Clarke In-Reply-To: <86h6ow5k9y.fsf@peasant.tower.home> Date: Fri, 18 Aug 2023 18:35:47 +0100 Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <00BDB172-6E09-4000-B59F-843DA4F723F7@freebsd.org> References: <202308181040.37IAetMR060855@gitrepo.freebsd.org> <7DD26452-7D0C-45BA-AA01-825B1073FEC6@freebsd.org> <86h6ow5k9y.fsf@peasant.tower.home> To: Dmitry Salychev X-Mailer: Apple Mail (2.3731.600.7) X-Rspamd-Queue-Id: 4RS8DJ35TKz3Y4v X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] On 18 Aug 2023, at 18:18, Dmitry Salychev wrote: >=20 >=20 > Jessica Clarke writes: >=20 >> On 18 Aug 2023, at 11:40, Dmitry Salychev wrote: >>>=20 >>> The branch main has been updated by dsl: >>>=20 >>> URL: = https://cgit.FreeBSD.org/src/commit/?id=3D2a9021898c4ee2154787da862c238cfe= ccd655df >>>=20 >>> commit 2a9021898c4ee2154787da862c238cfeccd655df >>> Author: Dmitry Salychev >>> AuthorDate: 2023-08-18 09:17:31 +0000 >>> Commit: Dmitry Salychev >>> CommitDate: 2023-08-18 10:40:11 +0000 >>>=20 >>> sff: Add SFP driver (fdt-based draft) >>>=20 >>> This basic version of the driver obtains properties of the = "sff,sfp" >>> compatible devices and implements a simple interface to provide an = I2C >>> bus device for the rest of the drivers (e.g. to implement = SIOCGI2C). >>>=20 >>> Both of the interface and driver are subjects for a further >>> generalization to be used in case of non-FDT and non-arm64 = platforms. >>>=20 >>> Reviewed by: bz, manu >>> Approved by: bz (mentor) >>> MFC after: 3 weeks >>> Differential Revision: https://reviews.freebsd.org/D41440 >>> --- >>> sys/arm64/conf/std.nxp | 3 + >>> sys/conf/files | 2 + >>> sys/dev/sff/sff_if.m | 35 +++++++++++ >>> sys/dev/sff/sfp_fdt.c | 155 = +++++++++++++++++++++++++++++++++++++++++++++++ >>> sys/modules/Makefile | 2 + >>> sys/modules/sff/Makefile | 13 ++++ >>> 6 files changed, 210 insertions(+) >>>=20 >>> diff --git a/sys/arm64/conf/std.nxp b/sys/arm64/conf/std.nxp >>> index 5b2e2b52d4e6..b4552fadaff4 100644 >>> --- a/sys/arm64/conf/std.nxp >>> +++ b/sys/arm64/conf/std.nxp >>> @@ -25,6 +25,9 @@ device sdhci >>> device dpaa2 # Data Path Acceleration Architecture (2nd Gen) >>> device enetc # QorIQ LS1028A NIC >>>=20 >>> +# SFF/SFP >>> +device sff # Small Form Factor Transceivers >>> + >>> options FDT >>> device acpi >>>=20 >>> diff --git a/sys/conf/files b/sys/conf/files >>> index 0db5887e6a75..b5cd85cba0e4 100644 >>> --- a/sys/conf/files >>> +++ b/sys/conf/files >>> @@ -3044,6 +3044,8 @@ dev/sdhci/sdhci_pci.c optional sdhci pci >>> dev/sdio/sdio_if.m optional mmccam >>> dev/sdio/sdio_subr.c optional mmccam >>> dev/sdio/sdiob.c optional mmccam >>> +dev/sff/sff_if.m optional sff >>> +dev/sff/sfp_fdt.c optional sff fdt >>> dev/sge/if_sge.c optional sge pci >>> dev/siis/siis.c optional siis pci >>> dev/sis/if_sis.c optional sis pci >>> diff --git a/sys/dev/sff/sff_if.m b/sys/dev/sff/sff_if.m >>> new file mode 100644 >>> index 000000000000..823e557992c2 >>> --- /dev/null >>> +++ b/sys/dev/sff/sff_if.m >>> @@ -0,0 +1,35 @@ >>> +#- >>> +# SPDX-License-Identifier: BSD-2-Clause >>> +# >>> +# Copyright =C2=A9 2023 Dmitry Salychev >>> +# >>> +# Redistribution and use in source and binary forms, with or = without >>> +# modification, are permitted provided that the following = conditions >>> +# are met: >>> +# 1. Redistributions of source code must retain the above copyright >>> +# notice, this list of conditions and the following disclaimer. >>> +# 2. Redistributions in binary form must reproduce the above = copyright >>> +# notice, this list of conditions and the following disclaimer = in the >>> +# documentation and/or other materials provided with the = distribution. >>> +# >>> +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS = IS'' AND >>> +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, = THE >>> +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A = PARTICULAR PURPOSE >>> +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE = LIABLE >>> +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL >>> +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS >>> +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) >>> +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT >>> +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN = ANY WAY >>> +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF >>> +# SUCH DAMAGE. >>> +# >>> + >>> +#include >>> + >>> +INTERFACE sff; >>> + >>> +METHOD int get_i2c_bus { >>> + device_t dev; >>> + device_t *i2c_bus; >>> +}; >>> diff --git a/sys/dev/sff/sfp_fdt.c b/sys/dev/sff/sfp_fdt.c >>> new file mode 100644 >>> index 000000000000..7430282ede70 >>> --- /dev/null >>> +++ b/sys/dev/sff/sfp_fdt.c >>> @@ -0,0 +1,155 @@ >>> +/*- >>> + * SPDX-License-Identifier: BSD-2-Clause >>> + * >>> + * Copyright =C2=A9 2023 Dmitry Salychev >>> + * >>> + * Redistribution and use in source and binary forms, with or = without >>> + * modification, are permitted provided that the following = conditions >>> + * are met: >>> + * 1. Redistributions of source code must retain the above = copyright >>> + * notice, this list of conditions and the following disclaimer. >>> + * 2. Redistributions in binary form must reproduce the above = copyright >>> + * notice, this list of conditions and the following disclaimer = in the >>> + * documentation and/or other materials provided with the = distribution. >>> + * >>> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS = IS'' AND >>> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED = TO, THE >>> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A = PARTICULAR PURPOSE >>> + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE = LIABLE >>> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL >>> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF = SUBSTITUTE GOODS >>> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) >>> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT >>> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING = IN ANY WAY >>> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF >>> + * SUCH DAMAGE. >>> + */ >>> + >>> +/* >>> + * Small Form Factor (SFF) Committee Pluggable (SFP) Transceiver = (FDT-based). >>> + */ >>> + >>> +#include >>> +#include >>> +#include >>> +#include >>> + >>> +#include >>> +#include >>> +#include >>> + >>> +#include "sff_if.h" >>> + >>> +struct sfp_fdt_softc { >>> + phandle_t ofw_node; >>> + phandle_t i2c_bus; >>> + >>> + phandle_t mod_def; >>> + phandle_t los; >>> + phandle_t tx_fault; >>> + phandle_t tx_disable; >>> + phandle_t rx_rate; >>> + phandle_t tx_rate; >>=20 >> These names sound like they should be numbers, not handles to GPIOs. >>=20 >=20 > FDT example: >=20 > sfp_xg1: dpmac1-sfp { > compatible =3D "sff,sfp"; > i2c-bus =3D <&sfpupper_i2c>; > tx-fault-gpios =3D <&sfpgpio 4 GPIO_ACTIVE_HIGH>; > tx-disable-gpios =3D <&sfpgpio 5 GPIO_ACTIVE_HIGH>; > mod-def0-gpios =3D <&sfpgpio 6 GPIO_ACTIVE_LOW>; > los-gpios =3D <&sfpgpio 7 GPIO_ACTIVE_HIGH>; > maximum-power-milliwatt =3D <2000>; > }; Yes, exactly. =E2=80=9Ctx_rate=E2=80=9D sounds like it=E2=80=99s some = kind of bits-per-second measure, for example, that would be a uint32_t (like max_power), but is in fact a property called =E2=80=9Crate-select1-gpios=E2=80=9D that=E2=80=99= s a handle. That is, the softc member names are very confusing. Jess