[Bug 235983] [firewire] external firewire drive does not create device node

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 28 Nov 2021 18:17:29 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235983

Keve Nagy <freebsd.bug@nagykeve.e4ward.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |freebsd.bug@nagykeve.e4ward
                   |                            |.com

--- Comment #4 from Keve Nagy <freebsd.bug@nagykeve.e4ward.com> ---
I run into the same issue reported by OP. My conclusion is that the problem is
related to the particular firewire controller found integrated on the
motherboard of these Apple Mac computers. 

Discussed in detail on
https://forums.freebsd.org/threads/unable-to-access-a-firewire-disk.83051/#post-543658 


FreeBSD 13.0-Release/amd64 on a 2006 iMac 4.1:
root@imac41:~ # pciconf -lv ...
fwohci0@pci0:4:3:0:     class=0x0c0010 rev=0x61 hdr=0x00 vendor=0x11c1
device=0x5811 subvendor=0x11c1 subdevice=0x5811
    vendor     = 'LSI Corporation'
    device     = 'FW322/323 [TrueFire] 1394a Controller'
    class      = serial bus
    subclass   = FireWire
root@imac41:~ # kldload firewire
bwi0: <Broadcom BCM4312 802.11a/b/g Wireless Lan> mem 0xc8100000-0xc8103fff irq
17 at device 0.0 on pci3
bwi0: BBP: id 0x4311, rev 0x1, pkg 0
bwi0: MAC: rev 10
bwi0: PHY: type 2, rev 8, ver 4
bwi0: RF: manu 0x17f, type 0x2050, rev 2
bwi_v3_ucode: could not load firmware image, error 2
bwi0: request firmware bwi_v3_ucode failed
device_attach: bwi0 attach returned 2
fwohci0: <Lucent FW322/323> mem 0xc8000000-0xc8000fff at device 3.0 on pci4
fwohci0: OHCI version 1.0 (ROM=0)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 00:14:51:ff:fe:bb:76:80
fwohci0: Phy 1394a available S400, 3 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwohci0: Initiate bus reset
fwohci0: fwohci_intr_core: BUS reset
root@imac41:~ #
root@imac41:~ # kldload cam
kldload: can't load cam: module already loaded or in kernel
root@imac41:~ #
root@imac41:~ # kldload sbp
sbp0: <SBP-2/SCSI over FireWire> on firewire0
root@imac41:~ #
root@imac41:~ # ### This is when I plug-in and power-on the firewire disk ###
fwohci0: fwohci_intr_core: BUS reset
fwohci0: PhysicalUpperBound register is not implemented.  Physical memory
access is limited to the first 4GB
fwohci0: PhysicalUpperBound = 0x00000000
fwohci0: fwohci_intr_core: node_id=0x00000001, SelfID Count=3, CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1 cable IRM irm(1)  (me)
firewire0: bus manager 1
fwohci0: fwohci_intr_core: BUS reset
fwohci0: PhysicalUpperBound register is not implemented.  Physical memory
access is limited to the first 4GB
fwohci0: PhysicalUpperBound = 0x00000000
fwohci0: fwohci_intr_core: node_id=0x00000001, SelfID Count=4, CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1 cable IRM irm(1)  (me)
firewire0: bus manager 1
fwohci0: too many cycles lost, no cycle master present?

## There is no da0, and "camcontrol devlist" shows only my SATA disk.

## SUMMARY: No da0 device, not working. :-(
## PROBABLE CAUSE: FW322/323 TrueFire 1394a Controller



HP 8300 Elite CMT with PCIe x1 Firewire-800 add-in card.
FreeBSD 13.0-Release/amd64 (same on i386, and 12.x too)

# pciconf -lv | ...
fwohci0@pci0:3:0:0:     class=0x0c0010 rev=0x01 hdr=0x00 vendor=0x104c
device=0x823f subvendor=0x3412 subdevice=0x7856
    vendor     = 'Texas Instruments'
    device     = 'XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah
Express]'
    class      = serial bus
    subclass   = FireWire

#
# kldload firewire
fwohci0: <1394 Open Host Controller Interface> mem
0xf7c04000-0xf7c047ff,0xf7c00000-0xf7c03fff irq 16 at device 0.0 on pci3
fwohci0: OHCI version 1.10 (ROM=1)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 78:56:34:12:78:56:34:12
fwohci0: invalid speed 7 (fixed to 3).
fwohci0: Phy 1394a available S800, 3 ports.
fwohci0: Link S800, max_rec 4096 bytes.
fwohci0: phy int
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwohci0: Initiate bus reset
fwohci0: fwohci_intr_core: BUS reset
fwohci0: PhysicalUpperBound register is not implemented.  Physical memory
access is limited to the first 4GB
fwohci0: PhysicalUpperBound = 0x00000000
fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0)  (me)
firewire0: bus manager 0

# kldload cam
kldload: can't load cam: module already loaded or in kernel

# kldload sbp
sbp0: <SBP-2/SCSI over FireWire> on firewire0

#   ## Here is when I connect and turn-on the external firewire disk ...
fwohci0: fwohci_intr_core: BUS reset
fwohci0: PhysicalUpperBound register is not implemented.  Physical memory
access is limited to the first 4GB
fwohci0: PhysicalUpperBound = 0x00000000
fwohci0: fwohci_intr_core: node_id=0x00000001, SelfID Count=3, CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1 cable IRM irm(1)  (me)
firewire0: bus manager 1
fwohci0: fwohci_intr_core: BUS reset
fwohci0: PhysicalUpperBound register is not implemented.  Physical memory
access is limited to the first 4GB
fwohci0: PhysicalUpperBound = 0x00000000
fwohci0: fwohci_intr_core: node_id=0x00000001, SelfID Count=4, CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1 cable IRM irm(1)  (me)
firewire0: bus manager 1
firewire0: fw_explore_node: fwdev->speed(S800) decremented due to negotiation
sbp0: sbp_show_sdev_info: sbp0:0:0: ordered:1 type:14 EUI:0030e002e0454647
node:0 speed:2 maxrec:8
sbp0: sbp_show_sdev_info: sbp0:0:0 'OEM' 'OEM ATA Device 00' '000110'
da1 at sbp0 bus 0 scbus4 target 0 lun 0
da1: <OEM OEM ATA Device 0 0110> Fixed Direct Access SPC-2 SCSI device
da1: Serial Number
da1: 50.000MB/s transfers
da1: 239372MB (490234752 512 byte

## SUMMARY: There is a da1, disk access is all OK, user is happy. :-)
## PROBABLE CAUSE: The TI based Controller.

So, in this machine, using this firewire controller, everything worked fine as
expected.
My suspicion is that what trev bug-reported and what I experienced earlier, is
caused by the kind of firewire controller found integrated on these Apple Macs.
I am going to add these findings to trev's bug-report. Hopefully support for
these firewire controllers can be added to the FreeBSD codebase. This would be
particularly interesting in the PPC architecture, as G4 and G5 processor based
Macs can still be made useful by running a recent release of FreeBSD/PPC. But
equally apply to later model, Intel processor based Macs too.

To be considered: adding support for the firewire controller found on Apple Mac
computers.

Regards,
Keve Nagy * Debrecen * Hungary

-- 
You are receiving this mail because:
You are the assignee for the bug.