-
-
Notifications
You must be signed in to change notification settings - Fork 17
Adding a PCIe FireWire Card
ASFireWire currently matches exactly one PCI device. In ASFWDriver/Info.plist:
<key>IOPCIMatch</key>
<string>0x590111c1</string>That is device 0x5901, vendor 0x11c1 — the Agere/Lucent FW643 OHCI controller inside
the Apple Thunderbolt-to-FireWire adapter.
If your PCIe card uses any other OHCI chipset (TI, VIA, NEC/Renesas, JMicron …), IOKit never matches the driver against it, so the dext is never even started for your card. Nothing appears, no logs are produced, and no amount of reinstalling changes that.
This is not "untested" — it cannot work until the card's PCI ID is added.
Note
Adding the ID is necessary but not automatically sufficient. The OHCI register interface is standardised, so there is a fair chance a card just works once matched — but chipset quirks are real, and matching is the point where testing can begin, not a guarantee.
With the card installed, run:
system_profiler SPPCIDataTypeLook for an entry that is a FireWire/1394 controller. If macOS has no driver for it, the
name will be a generic pciVVVV,DDDD and it will say Driver Installed: No — that is
expected and is exactly the card you want. Read off:
Vendor ID: 0x104c
Device ID: 0x8024
IOPCIMatch entries are 32-bit values of the form 0xDDDDVVVV — device ID in the high
half, vendor ID in the low half:
| Vendor ID | 0x104c |
| Device ID | 0x8024 |
IOPCIMatch value |
0x8024104c |
Multiple devices are space-separated in the same string.
Open an issue titled something like "PCI ID request: TI XIO2213 FireWire card", and include:
-
Vendor ID and Device ID (and the computed
0xDDDDVVVVvalue) - The card — make, model, chipset if you know it
-
The full
system_profiler SPPCIDataTypeblock for that device - Your Mac model and macOS version, and how the card is attached (PCIe slot, Thunderbolt-to-PCIe enclosure)
Thunderbolt-to-PCIe enclosures are worth calling out explicitly, since those paths also
need IOPCITunnelCompatible, which the driver already sets.
If you build from source, you can try the ID immediately. In ASFWDriver/Info.plist, add
yours to the existing string, space-separated:
<key>IOPCIMatch</key>
<string>0x590111c1 0x8024104c</string>There are two IOPCIMatch keys in that file:
- under
ASFWDriverService— the main personality - under
ASFWSCSIControllerService— the SBP-2/SCSI HBA
Update both, or your card will be matched for FireWire but not for SBP-2 storage.
Then rebuild, sign, and install — see Building and Signing.
Please report the result either way. "Matched but never enumerates the bus" and "matched and works" are both valuable, and a negative result saves the next person with that chipset a lot of time. Include logs — see Reporting Issues.
Once matched, the driver will at least attempt OHCI bring-up, so you should see ASFW log output where previously there was silence. Capture it:
log show --last 5m --info --debug --predicate 'eventMessage CONTAINS "[Controller]"'Or use System Logs tab inside UI app.
The most likely failure modes are register-layout or interrupt differences during controller initialisation, which is precisely the information needed to add real support for that chipset.