Hi! I package linux-rt and linux-rt-lts for Arch Linux. Due to time constraints over the past months I did not have the time to test all of my own hardware setups with the recent realtime kernels. Unfortunately firewire-ohci is unable to initialize my firewire controller [1] (a PCIe card [2]) both on 5.4.91-rt50 and on 5.10.8-rt24: No device nodes (i.e. /dev/fw0) are created and therefore no connected devices can be initialized either. The controller is initialized properly on our other stock kernels on Arch Linux though (e.g. linux/ linux-hardened/ linux-lts) and I usually keep the config files for linux-rt[3] and linux-rt-lts[4] as close as possible to that of our respective core linux packages linux[5] and linux-lts[6]. Looking at the kernel logs, this is what the initialization usually looks like on our stock kernels (with `firewire_ohci debug=8` and duplicate lines truncated for brevity): ``` firewire_ohci 0000:05:00.0: enabling device (0000 -> 0002) firewire_ohci 0000:05:00.0: IRQ 00020010 AR_req busReset firewire_ohci 0000:05:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x2 firewire_ohci 0000:05:00.0: IRQ 00030000 selfID busReset firewire_ohci 0000:05:00.0: IRQ 00020000 busReset [..] firewire_ohci 0000:05:00.0: IRQ 00020000 busReset firewire_core 0000:05:00.0: created device fw0: GUID 7856341278563412, S800 firewire_core 0000:05:00.0: phy config: new root=ffc1, gap_count=5 firewire_ohci 0000:05:00.0: IRQ 00020010 AR_req busReset firewire_ohci 0000:05:00.0: IRQ 00030000 selfID busReset firewire_ohci 0000:05:00.0: IRQ 00020000 busReset [..] firewire_ohci 0000:05:00.0: IRQ 00020000 busReset firewire_core 0000:05:00.0: created device fw1: GUID 000a3500ada83262, S400 ``` And this is how the initialization looks like on the realtime kernels (with `firewire_ohci debug=-1`): ``` firewire_ohci 0000:05:00.0: enabling device (0000 -> 0002) firewire_ohci 0000:05:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x2 firewire_ohci 0000:05:00.0: IRQ 00020010 AR_req busReset firewire_ohci 0000:05:00.0: AR evt_bus_reset, generation 1 ``` I have a laptop using an ExpressCard34 that provides Firewire800 [7], with the same Texas Instruments chip which initializes properly (i.e. /dev/fw0 is created, subsequently connected devices are initialized and are usable) on the realtime kernels: ``` firewire_ohci 0000:06:00.0: added OHCI v1.10 device as card 0, 8 IR + 8 IT contexts, quirks 0x2 firewire_ohci 0000:06:00.0: IRQ 00030010 selfID AR_req busReset firewire_ohci 0000:06:00.0: IRQ 00020000 busReset [..] firewire_ohci 0000:06:00.0: IRQ 00020000 busReset firewire_core 0000:06:00.0: created device fw0: GUID 000acd12007000ff, S800 firewire_ohci 0000:06:00.0: IRQ 00030010 selfID AR_req busReset firewire_ohci 0000:06:00.0: IRQ 00020000 busReset [..] firewire_ohci 0000:06:00.0: IRQ 00020000 busReset firewire_ohci 0000:06:00.0: IRQ 00020010 AR_req busReset firewire_ohci 0000:06:00.0: IRQ 00020000 busReset firewire_ohci 0000:06:00.0: IRQ 00830000 selfID cycleInconsistent busReset firewire_ohci 0000:06:00.0: isochronous cycle inconsistent firewire_ohci 0000:06:00.0: IRQ 00020000 busReset [..] firewire_ohci 0000:06:00.0: IRQ 00020000 busReset firewire_core 0000:06:00.0: created device fw1: GUID 000a3500ada83262, S800 firewire_core 0000:06:00.0: phy config: new root=ffc0, gap_count=5 firewire_ohci 0000:06:00.0: IRQ 00030010 selfID AR_req busReset firewire_ohci 0000:06:00.0: IRQ 00020000 busReset [..] firewire_ohci 0000:06:00.0: IRQ 00020000 busReset ``` At this point in time I'm uncertain whether this is a general problem with the kernel module on the realtime kernels or a problem with the kernel module on the realtime kernels with my PCIe controller specifically. That it works using the ExpressCard34 based controller on my laptop makes it extra odd (but I guess the underlying driver is handling this differently due to the PCI bridge?). Any pointers to solving this issue would be greatly appreciated, as not being able to use firewire audio interfaces on a realtime kernel in a workstation context is bad for pro-audio people on Linux in general (and me in particular ;-) ). Best, David [1] ``` $ lspci -kP -s 05:00.0 00:01.2/00.0/00.0/00.0/00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01) Subsystem: Device 3412:7856 Kernel driver in use: firewire_ohci Kernel modules: firewire_ohci ``` [2] https://www.delock.de/produkte/1114_FireWire/89153/merkmale.html [3] https://aur.archlinux.org/cgit/aur.git/tree/config?h=linux-rt&id=3aef702717033d63ddc7c078f6d1fc388ea0e420 [4] https://aur.archlinux.org/cgit/aur.git/tree/config?h=linux-rt-lts&id=6c529a838f028fd0c55b97b6f98a9d35108f6696 [5] https://github.com/archlinux/svntogit-packages/blob/a0a47291449ab346e0dd209a2f23c82264c60d79/trunk/config [6] https://github.com/archlinux/svntogit-packages/blob/1a0e0ed59007a8c0ddd34f847a92174e2838244f/trunk/config [7] ``` $ lspci -kP -s 05:00.0 00:1c.3/00.0 PCI bridge: Texas Instruments XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] (rev 01) $ lspci -kP -s 06:00.0 00:1c.3/00.0/00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01) Subsystem: Device 3412:7856 Kernel driver in use: firewire_ohci Kernel modules: firewire_ohci ``` -- https://sleepmap.de