From nobody Sun Aug 30 04:07:27 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 4hXdqz6WZpz6q8dF for ; Sun, 30 Aug 2026 04:07:27 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hXdqz4GB7z3H8H for ; Sun, 30 Aug 2026 04:07:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1788062847; 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=XeVBaxYY9GYLU6vqdyT3UvEJDuI3WX2wY4+Af3DqVZA=; b=tigpZQW7/THdNXh7fieDXmhwZD7qUl/L5cMCFXqVwQtyTespRhBTsripRd6IGcl1n1nHX8 FaTZhWWCoXit+mr7Q5pSoHW9kCjkUrEmAgR9qBhYZzmzxaucqkp/tQIt6Gl8tJa+QeoWd8 BkGN1309XrgwTgrApA5usGFGNMjItawnBlxdrBwHfb838acyhsvhN1cj64zMm5c6oINveR McBT69CRPHmlL9f/XRqTAgvSJWqnUIs4jwmPV8bVL6WMqhsu1jB0YtHfMist+pKn8+Y5UQ /5H7RKl1u046EE6aPQCmhr402shgTuy/AmhriaFsn83blzBEgwwQTtL/MfvbIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1788062847; a=rsa-sha256; cv=none; b=u0seFZakdyvamQpGYNccyuyV78/aCqST7xNvoi5VvYTJbLrQJHh+5qS4Yzg9kzOzRXnAkk KB2/jDDxSBR16pf33CwBXSbOBAJuZTkYUkIcF49HvXsf/MfnKznY8UKwpEMkpKtDDKIDWK HojIgtoJz6bo6PwCJtnFzrHBF489PF7UjOgDPgxga9xvaCVYrSGlnh+EgmsmzjSnlG9E6y nRY5dRLTmi6R4hPR9/si8oOfjrL2ZHkB9pA+M8V+SVU1hKD3oui/qY+owlTtPPbtGABcer d3h+nIDYV3WJm6T3oQb6WbOsNmNWvmZuXRlPFJh1D7+pRKYONR4xbAO7u/eYvA== 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=1788062847; 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=XeVBaxYY9GYLU6vqdyT3UvEJDuI3WX2wY4+Af3DqVZA=; b=YhOyR9g48+5EcAmD1Ly4HrUO9NDEeb1E5rFISp9+MgDAAkzI14i69Hr+yy3XqJ3GbXs6Gh BRDOIp6NZ4DFoCRgVCFvxRA51H0UpVTpBjXprd/3GufID6+voQOARxzpJkI7+5GtSFICdh LnY2GWo8eT+jsZ4aHYxIk+itblBlnNRHJj1Z80gLoJbqQgrE06ETBC8LuFnB+NUlSUD+U/ iJjCO7f7CBZFAop67dlMkdab/Qlv7k+YeNx9bQhkjaZwGaSzMAMyoEcAm5QfSWvx1bmIhO rEGegQdBAGxDSRU3x/ENQJXfcA1K8ulxqi85rjQiWVo0pXR6pAmqsFssYkOVKg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hXdqz2q5Tz17sb for ; Sun, 30 Aug 2026 04:07:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e526 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 30 Aug 2026 04:07:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 1911838a111a - main - dpaa/fman_xmdio: Make xmdio a "real" MDIO 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: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1911838a111a41ae6e057e6e5abe9448fc960565 Auto-Submitted: auto-generated Date: Sun, 30 Aug 2026 04:07:27 +0000 Message-Id: <6a93ac7f.1e526.33c56cf1@gitrepo.freebsd.org> The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=1911838a111a41ae6e057e6e5abe9448fc960565 commit 1911838a111a41ae6e057e6e5abe9448fc960565 Author: Justin Hibbits AuthorDate: 2026-08-20 20:50:01 +0000 Commit: Justin Hibbits CommitDate: 2026-08-30 04:05:14 +0000 dpaa/fman_xmdio: Make xmdio a "real" MDIO Instead of forcing an `mdio` pseudo-device to hang off the xmdio, rename xmdio to "mdio" and make it an ofw bus device, akin to the mii_fdt driver, so that children can get the device tree goodies. --- sys/dev/dpaa/fman_xmdio.c | 51 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/sys/dev/dpaa/fman_xmdio.c b/sys/dev/dpaa/fman_xmdio.c index 521c30860dc5..22bd661b4ebc 100644 --- a/sys/dev/dpaa/fman_xmdio.c +++ b/sys/dev/dpaa/fman_xmdio.c @@ -51,6 +51,7 @@ static int xmdio_fdt_probe(device_t dev); static int xmdio_fdt_attach(device_t dev); static int xmdio_detach(device_t dev); +static const struct ofw_bus_devinfo *xmdio_fdt_get_devinfo(device_t, device_t); static int xmdio_miibus_readreg(device_t dev, int phy, int reg); static int xmdio_miibus_writereg(device_t dev, int phy, int reg, int value); static int xmdio_mdio_readextreg(device_t dev, int phy, int devad, int reg); @@ -85,20 +86,25 @@ static device_method_t xmdio_methods[] = { DEVMETHOD(mdio_readextreg, xmdio_mdio_readextreg), DEVMETHOD(mdio_writeextreg, xmdio_mdio_writeextreg), + /* ofw_bus interface -- expose devinfo of the FDT children we added. */ + DEVMETHOD(ofw_bus_get_devinfo, xmdio_fdt_get_devinfo), + DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), + DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), + DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), + DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), + DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), + DEVMETHOD_END }; static driver_t xmdio_driver = { - "xmdio", + "mdio", xmdio_methods, sizeof(struct xmdio_softc), }; -EARLY_DRIVER_MODULE(xmdio, fman, xmdio_driver, 0, 0, - BUS_PASS_SUPPORTDEV); -DRIVER_MODULE(miibus, xmdio, miibus_driver, 0, 0); -DRIVER_MODULE(mdio, xmdio, mdio_driver, 0, 0); -MODULE_DEPEND(xmdio, miibus, 1, 1, 1); +EARLY_DRIVER_MODULE(mdio, fman, xmdio_driver, 0, 0, BUS_PASS_SUPPORTDEV); +MODULE_DEPEND(mdio, miibus, 1, 1, 1); static int xmdio_fdt_probe(device_t dev) @@ -119,6 +125,9 @@ static int xmdio_fdt_attach(device_t dev) { struct xmdio_softc *sc; + struct ofw_bus_devinfo *obd; + phandle_t node, child; + device_t cdev; sc = device_get_softc(dev); @@ -129,6 +138,29 @@ xmdio_fdt_attach(device_t dev) mtx_init(&sc->sc_lock, device_get_nameunit(dev), "XMDIO lock", MTX_DEF); + node = ofw_bus_get_node(dev); + for (child = OF_child(node); child != 0; child = OF_peer(child)) { + if (!OF_hasprop(child, "reg")) + continue; + obd = malloc(sizeof(*obd), M_DEVBUF, M_WAITOK | M_ZERO); + if (ofw_bus_gen_setup_devinfo(obd, child) != 0) { + free(obd, M_DEVBUF); + continue; + } + cdev = device_add_child(dev, NULL, DEVICE_UNIT_ANY); + if (cdev == NULL) { + ofw_bus_gen_destroy_devinfo(obd); + free(obd, M_DEVBUF); + continue; + } + device_set_ivars(cdev, obd); + } + + bus_identify_children(dev); + bus_enumerate_hinted_children(dev); + bus_attach_children(dev); + return (0); + return (0); } @@ -282,3 +314,10 @@ xmdio_mdio_writeextreg(device_t dev, int phy, int devad, int reg, int val) return (0); } +static const struct ofw_bus_devinfo * +xmdio_fdt_get_devinfo(device_t bus __unused, device_t child) +{ + + return (device_get_ivars(child)); +} +