From nobody Mon Nov 28 22:08:05 2022 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 4NLfjd63Jgz4j4Wn; Mon, 28 Nov 2022 22:08:05 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NLfjd4TsYz3kVF; Mon, 28 Nov 2022 22:08:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1669673285; 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=7zKZ2wmmotQoRUf35YeqQhYw+zbzlrFprLalwrMUQiY=; b=kyREk3t1plBAiLdfAZMN8OrqS7i3GXhn0U55odxyIou7crUbq8Chl7hnDKpxV002WbwizK Zi4eJvlm/HX0NAaRcg0Iio5hTMyoDzk37sRNNouSQpEBDvr0HSTkHwxIQqzLf3n8f6B9+m qKvpN07/05Fm+BTLGLet+/HLecVbsra+kvbA6LjZuZNk17P3VPKyH0EajgcEwHrrFiF4Ir dgzCaWUwbD5dRz1akz1c6E0EdgaJDJ/gaPfc+7bwE+F2MSgsqa27lgivJQPY4CT8/z/KVT ndw7qqdXVFhtl4UGRmjBFWUuroivjc2OzeHXfhmLnqFsYoSHdyNyQ4WAsUWXDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1669673285; 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=7zKZ2wmmotQoRUf35YeqQhYw+zbzlrFprLalwrMUQiY=; b=gv5evsYK9EeHAGaqXyjUM5fD9iux8s2owzn7ylvoy7oJrGvJMI2ZO6M5sgfdIW7CSF7sDJ +vH4AOA/hfQi3a7YHyWmoLyvjiyL5ezm9xvlcPcQqxSDmptdJgV0OGB/tGtdROFETHFApz KwUwszT40x7Xxq6mSZxVLB1UvuTGuK++f9Afg46s1RZGvCiFdwWUPczQxcMUIcGK/F8JR7 0Fm+s/ECvVfY7tbKTCk46fQYESiiUHWxEqIMFDjHeWFr9CvHMmm+lgIQ4iO713jsSUcsfR sbh4fwExTcjRgbNB+AzkX9f0zDcbMuBlODM6JS3abgGZfn46mn9UBed5XKH3qg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1669673285; a=rsa-sha256; cv=none; b=YLy20RdnlhRsU4b7TvIhuHRnwMHCpGDv39S6Yc5FRUTCaCLpo8eV9zmU7Sa9OL8IBmnxps wvjn4mQg6UKNAAzK/nk0R6SgZW9nDKbnNSOreudQPTUDY/TjO1gl7/3Mn0SxnwoHy0OyFX TBEvLnvcALXl+dtT5YpY32iLphhaZITAKJ/gKeDTlTgRRq95wFXDnXT6gmpViZ1Iy0qWIo +Z61t2fksQIuCT5/twWrGVQu4me+Y/0PFnKAQeVvRkFG6NI10xrzsgyxSYAOxKp2rDYsuu kXCKXer8p1y8gjzn9UqVGtcC90BEu0/It8V7dRwMYlkRSam54DUQ7GfjztCzSg== 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 4NLfjd3RvpztP7; Mon, 28 Nov 2022 22:08:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2ASM85Ds080431; Mon, 28 Nov 2022 22:08:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2ASM850T080430; Mon, 28 Nov 2022 22:08:05 GMT (envelope-from git) Date: Mon, 28 Nov 2022 22:08:05 GMT Message-Id: <202211282208.2ASM850T080430@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 82abe70fe98a - main - dpaa: Don't assume the MDIO is on the same fman as the MAC List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 82abe70fe98aaece817e35ba99fcc4aea4181067 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=82abe70fe98aaece817e35ba99fcc4aea4181067 commit 82abe70fe98aaece817e35ba99fcc4aea4181067 Author: Justin Hibbits AuthorDate: 2022-11-28 22:03:15 +0000 Commit: Justin Hibbits CommitDate: 2022-11-28 22:03:15 +0000 dpaa: Don't assume the MDIO is on the same fman as the MAC The P5040 has the MDIO for FMAN2 on FMAN1 for some reason. Instead of trying to manually find the MDIO, use a real xref. --- sys/dev/dpaa/fman_mdio.c | 2 ++ sys/dev/dpaa/if_dtsec_fdt.c | 46 +++++++++++++++------------------------------ 2 files changed, 17 insertions(+), 31 deletions(-) diff --git a/sys/dev/dpaa/fman_mdio.c b/sys/dev/dpaa/fman_mdio.c index 28ade4e3b315..ee90ba0b9cf9 100644 --- a/sys/dev/dpaa/fman_mdio.c +++ b/sys/dev/dpaa/fman_mdio.c @@ -134,6 +134,8 @@ pqmdio_fdt_attach(device_t dev) bus_get_resource(dev, SYS_RES_MEMORY, 0, &start, &count); sc->sc_offset = start; + OF_device_register_xref(OF_xref_from_node(ofw_bus_get_node(dev)), dev); + mtx_init(&sc->sc_lock, device_get_nameunit(dev), "QorIQ MDIO lock", MTX_DEF); diff --git a/sys/dev/dpaa/if_dtsec_fdt.c b/sys/dev/dpaa/if_dtsec_fdt.c index 179d620fcc3b..4bb96fa74f09 100644 --- a/sys/dev/dpaa/if_dtsec_fdt.c +++ b/sys/dev/dpaa/if_dtsec_fdt.c @@ -111,33 +111,11 @@ dtsec_fdt_probe(device_t dev) return (BUS_PROBE_DEFAULT); } -static int -find_mdio(phandle_t phy_node, device_t mac, device_t *mdio_dev) -{ - device_t bus; - - while (phy_node > 0) { - if (ofw_bus_node_is_compatible(phy_node, "fsl,fman-mdio")) - break; - phy_node = OF_parent(phy_node); - } - - if (phy_node <= 0) - return (ENOENT); - - bus = device_get_parent(mac); - *mdio_dev = ofw_bus_find_child_device_by_phandle(bus, phy_node); - - if (*mdio_dev == NULL) - return (ENOENT); - - return (0); -} - static int dtsec_fdt_attach(device_t dev) { struct dtsec_softc *sc; + device_t phy_dev; phandle_t enet_node, phy_node; phandle_t fman_rxtx_node[2]; char phy_type[6]; @@ -162,24 +140,30 @@ dtsec_fdt_attach(device_t dev) else return(ENXIO); - /* Get MAC memory offset in SoC */ - rid = 0; - sc->sc_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (sc->sc_mem == NULL) - return (ENXIO); - /* Get PHY address */ if (OF_getprop(enet_node, "phy-handle", (void *)&phy_node, sizeof(phy_node)) <= 0) return (ENXIO); - phy_node = OF_instance_to_package(phy_node); + phy_node = OF_node_from_xref(phy_node); if (OF_getprop(phy_node, "reg", (void *)&sc->sc_phy_addr, sizeof(sc->sc_phy_addr)) <= 0) return (ENXIO); - if (find_mdio(phy_node, dev, &sc->sc_mdio) != 0) + phy_dev = OF_device_from_xref(OF_parent(phy_node)); + + if (phy_dev == NULL) { + device_printf(dev, "No PHY found.\n"); + return (ENXIO); + } + + sc->sc_mdio = phy_dev; + + /* Get MAC memory offset in SoC */ + rid = 0; + sc->sc_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); + if (sc->sc_mem == NULL) return (ENXIO); /* Get PHY connection type */