Re: [RFC PATCH] firewire: ohci: disable MSI on Agere/LSI FW643 rev 8
AreYouLoco? via linux1394-devel <[email protected]> Sat, 18 Jul 2026 13:45:02 +0000
| Newsgroups | gmane.linux.kernel.firewire.devel |
|---|---|
| Message-ID | <[email protected]> |
My MacBookPro 9.1's Debian is currently broken. But I booted up LiveUSB real quick to check up and as I expected. Same exact rev 08 on both my platforms. 04:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 08) Sorry I wont attach lspci tree from MBP as I would have to retype it on my phone as text. But believe me its: 01.1 PCI bridge Root Port, then 00.0 which is Host Bridge and then 04:00.0 LSI Firewire directly. On Minisforum X1 Pro exactly same revision using this card. <https://www.ioi.com.tw/products/proddetail.aspx?CatID=106&DeviceID=3021&HostID=2009&ProdID=1060102> But its dual-chip design. Same 08 revision but instead 4x 9-pin ports. $ sudo dmesg -T | grep -i fire [Sat Jul 18 15:27:42 2026] firewire_ohci 0000:68:00.0: enabling device (0000 -> 0002) [Sat Jul 18 15:27:42 2026] firewire_ohci 0000:68:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x49, physUB [Sat Jul 18 15:27:42 2026] firewire_ohci 0000:69:00.0: enabling device (0000 -> 0002) [Sat Jul 18 15:27:42 2026] firewire_ohci 0000:69:00.0: added OHCI v1.10 device as card 1, 8 IR + 8 IT contexts, quirks 0x49, physUB [Sat Jul 18 15:27:43 2026] firewire_core 0000:68:00.0: created device fw0: GUID 00027a1600004bfe, S800, quirks 00000000 [Sat Jul 18 15:27:43 2026] firewire_core 0000:69:00.0: created device fw1: GUID 00027a1600004bff, S800, quirks 00000000 $ lspci | grep -i fire 68:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 08) 69:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 08) But on Strix Point its bridged in longer chain via 2 docks. I hope it helps, Orest On 17 July 2026 21:02:32 UTC, Tchirek Afra <[email protected]> wrote: >Hi, > >Thanks Takashi, and thanks Orest. > >First, a correction: the machine I tested is a MacBookPro9,2, not 9,1. >Sorry for the confusion. > >It has an Intel Ivy Bridge processor, and the FW643 is directly behind: > > 00:1c.2 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series > Chipset Family PCI Express Root Port 3 [8086:1e14] (rev c4) > 03:00.0 FireWire (IEEE 1394) [0c00]: LSI Corporation FW643 > [11c1:5901] (rev 08) > >Orest, could you send the corresponding FW643 and parent-bridge lines >from the MacBookPro9,1? lspci -nn -t plus the lspci -nn line for the >bridge should be enough. > >Also, what revision is the FW643 in the Strix Point system? > >Regards, >Tchirek > >On Mon, 13 Jul 2026 11:09:55 +0000, "AreYouLoco?" ><[email protected]> wrote: >> From my tests on MBP 9.1 I also had to disable MSI for this chipset to work and detect audio interfaces at all. But I have another Strix Point platform with same LSI FW643 chipset as full size PCIe card and there MSI interrupts work fine. So indeed might be Apple platform specific not chipset specific. >> >> On Stix Point working set of quirks is 0x48 or 0x49. Both work 0x49 seem to make hot-plug working. >> >> 1394a extensions I disabled because one of my interfaces do not support it. The other does. So this may vary for particular use case. >> >> BR, >> Orest >> >> On 13 July 2026 10:45:40 UTC, Takashi Sakamoto <[email protected]> wrote: >> >Hi, >> > >> >On Sat, Jul 11, 2026 at 10:52:22AM -0400, Tchirek Afra wrote: >> >> Sent as RFC because the failure is so far characterized on a single >> >> machine; if scoping the quirk to Apple systems is preferred, I am >> >> happy to rework it. >> > >> >When I faced the issue caused by a specific combination of hardware[1], >> >I utilized CPU feature flag (X86_FEATURE_ZEN), the PCI ID for the specific >> >1394 OHCI hardware (PCI_VENDOR_ID_VIA/PCI_DEVICE_ID_VIA_VT630X), and the >> >PCI ID for bus bridge (PCI_VENDOR_ID_ASMEDIA/PCI_DEVICE_ID_ASMEDIA_ASM108X). >> > >> >I don't know exactly how to predict your issue on runtime, however the >> >combination of hardware ID check would be more preferable change than the >> >change applied widely. >> > >> >Does the machine (Apple MacBookPro 9.1) have any specific PCIe bus >> >hardware? >> > >> >[1]https://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git/commit/?id=ac9184fbb847 >> > >> > >> >Regards >> > >> >Takashi Sakamoto >> > >> >> The system also reports an incomplete firmware DMAR table: >> >> >> >> DMAR-IR: [Firmware Bug]: ioapic 2 has no mapping iommu, >> >> interrupt remapping will be disabled >> >> >> >> Therefore, a platform-specific interaction cannot yet be excluded. >> >> >> >> Tested on: >> >> Apple MacBookPro9,1, Debian 13, kernel 6.12.85+deb13-amd64, >> >> default kernel parameters (IOMMU enabled) >> >> 03:00.0 FireWire (IEEE 1394) [0c00]: LSI Corporation FW643 [TrueFire] >> >> PCIe 1394b Controller [11c1:5901] (rev 08) >> >> >> >> Failure signature while MSI is enabled: >> >> IntEvent = 0x04738071 (busReset, selfIDComplete, RQPkt pending) >> >> firewire_ohci count in /proc/interrupts frozen (78079 -> 78079 / 4s) >> >> PhyControl register reads and writes keep completing >> >> >> >> During all three tests the local recovery scripts deployed on this >> >> machine were present but took no action (their logs show only >> >> "already healthy"), so the results are attributable to the quirk >> >> alone. >> >> >> >> With firewire_ohci.quirks=0x10 (INTx): >> >> cold boot enumeration: pass (device visible within 7s) >> >> cable unplug/replug re-enumeration: pass (about 1s) >> >> suspend/resume rediscovery: pass >> >> >> >> Based on mainline commit dd3210c47e8d3ac6b4e9141fc68acc03b38c0ba3. >> >> >> >> drivers/firewire/ohci.c | 4 ++++ >> >> 1 file changed, 4 insertions(+) >> >> >> >> diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c >> >> index 8153d62..175d6ad 100644 >> >> --- a/drivers/firewire/ohci.c >> >> +++ b/drivers/firewire/ohci.c >> >> @@ -3624,6 +3624,10 @@ static int pci_probe(struct pci_dev *dev, >> >> ohci->quirks = ohci_quirks[i].flags; >> >> break; >> >> } >> >> + if (dev->vendor == PCI_VENDOR_ID_ATT && >> >> + dev->device == PCI_DEVICE_ID_AGERE_FW643 && >> >> + dev->revision == 8) >> >> + ohci->quirks |= QUIRK_NO_MSI; >> >> if (param_quirks) >> >> ohci->quirks = param_quirks; >> >> >> >> -- >> >> 2.47.3 >> > >> > >> >_______________________________________________ >> >mailing list [email protected] >> >https://lists.sourceforge.net/lists/listinfo/linux1394-devel