Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Jul 2026 22:50:20 +0000
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Cc:        Abdelkader Boudih <freebsd@seuros.com>
Subject:   git: 23ea903f6801 - main - firewire: force root change when root node is not cycle master capable
Message-ID:  <6a5ea62c.31b90.15b33c5b@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by adrian:

URL: https://cgit.FreeBSD.org/src/commit/?id=23ea903f68017f781ff579325caa01c928612d57

commit 23ea903f68017f781ff579325caa01c928612d57
Author:     Abdelkader Boudih <freebsd@seuros.com>
AuthorDate: 2026-07-20 22:47:49 +0000
Commit:     Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2026-07-20 22:47:58 +0000

    firewire: force root change when root node is not cycle master capable
    
    When a FireWire bus resets, all devices negotiate who is the new boss.
    when we detect the root node can't be cycle master,
    we send a PHY config packet that forces a reelection.
    
    Reviewed by:    adrian
    Differential Revision:  https://reviews.freebsd.org/D58309
---
 sys/dev/firewire/firewire.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index cc0cf9e5b7ad..1020aff31929 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -2491,9 +2491,10 @@ fw_bmr(struct firewire_comm *fc)
 			cmstr = fc->max_node;
 		else {
 			device_printf(fc->bdev,
-			    "root node is not cycle master capable\n");
-			/* TODO: issue PHY config to force root change + bus reset */
-			cmstr = fc->nodeid;
+			    "root node is not cycle master capable, "
+			    "forcing root to node %d\n", fc->nodeid);
+			fw_phy_config(fc, fc->nodeid, -1);
+			return 0;
 		}
 	} else
 		cmstr = -1;


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a5ea62c.31b90.15b33c5b>