The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=23ea903f68017f781ff579325caa01c928612d57
commit 23ea903f68017f781ff579325caa01c928612d57 Author: Abdelkader Boudih <[email protected]> AuthorDate: 2026-07-20 22:47:49 +0000 Commit: Adrian Chadd <[email protected]> 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;
