Bug 235983 - [firewire] external firewire drive does not create device node
Summary: [firewire] external firewire drive does not create device node
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 12.0-RELEASE
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-scsi (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-02-24 06:33 UTC by Trev
Modified: 2021-12-02 11:34 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Trev 2019-02-24 06:33:04 UTC
FreeBSD citadel.sentry.org 12.0-RELEASE FreeBSD 12.0-RELEASE #3 r344269M
Apple Mac mini model 3,1 (late 2009)

Feb 24 16:51:57 citadel kernel: fwohci0: <1394 Open Host Controller Interface> mem 0xd3100000-0xd3100fff at device 0.0 on pci4
Feb 24 16:51:57 citadel kernel: fwohci0: OHCI version 1.10 (ROM=0)
Feb 24 16:51:57 citadel kernel: fwohci0: No. of Isochronous channels is 8.
Feb 24 16:51:57 citadel kernel: fwohci0: EUI64 00:26:bb:ff:fe:5a:ac:b4
Feb 24 16:51:57 citadel kernel: fwohci0: invalid speed 7 (fixed to 3).
Feb 24 16:51:57 citadel kernel: fwohci0: Phy 1394a available S800, 3 ports.
Feb 24 16:51:57 citadel kernel: fwohci0: Link S800, max_rec 4096 bytes.
Feb 24 16:51:57 citadel kernel: firewire0: <IEEE1394(FireWire) bus> on fwohci0
Feb 24 16:51:57 citadel kernel: fwohci0: Initiate bus reset
Feb 24 16:51:57 citadel kernel: fwohci0: fwohci_intr_core: BUS reset
Feb 24 16:51:57 citadel kernel: fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=2, CYCLEMASTER mode
Feb 24 16:51:57 citadel kernel: firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0)  (me) 
Feb 24 16:51:57 citadel kernel: firewire0: bus manager 0 
Feb 24 16:51:57 citadel kernel: sbp0: <SBP-2/SCSI over FireWire> on firewire0
Feb 24 16:52:56 citadel wpa_supplicant[256]: wlan0: WPA: Group rekeying completed with 34:31:c4:bc:d0:22 [GTK=CCMP]
Feb 24 16:55:27 citadel kernel: fwohci0: fwohci_intr_core: BUS reset
Feb 24 16:55:27 citadel kernel: fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=3, non CYCLEMASTER mode
Feb 24 16:55:27 citadel kernel: firewire0: 2 nodes, maxhop <= 1 cable IRM irm(0)  (me) 
Feb 24 16:55:27 citadel kernel: firewire0: root node is not cycle master capable
Feb 24 16:55:27 citadel kernel: firewire0: bus manager 0 
Feb 24 16:55:27 citadel kernel: fwohci0: too many cycles lost, no cycle master present?
Feb 24 16:55:45 citadel kernel: firewire0: 2 nodes, maxhop <= 1 cable IRM irm(1)  (me) 
Feb 24 16:55:45 citadel kernel: firewire0: bus manager 1 
Feb 24 16:55:45 citadel kernel: sbp0: sbp_show_sdev_info: sbp0:0:0: ordered:1 type:0 EUI:00203702002855b4 node:0 speed:3 maxrec:8
Feb 24 16:55:45 citadel kernel: sbp0: sbp_show_sdev_info: sbp0:0:0 'Seagate' 'FreeAgent FW' '000110'
Feb 24 16:55:51 citadel kernel: sbp0: sbp_mgm_timeout:sbp0:0:0 request timeout(mgm orb:0x7e6df028)
Feb 24 16:55:51 citadel kernel: sbp0: sbp_mgm_timeout:sbp0:0:0 reset start
Feb 24 16:57:53 citadel kernel: fwohci0: Initiate bus reset
Feb 24 16:57:53 citadel kernel: fwohci0: fwohci_intr_core: BUS reset
Feb 24 16:57:53 citadel kernel: fwohci0: fwohci_intr_core: node_id=0x00000001, SelfID Count=5, CYCLEMASTER mode
Feb 24 16:57:53 citadel kernel: firewire0: 2 nodes, maxhop <= 1 cable IRM irm(1)  (me) 
Feb 24 16:57:53 citadel kernel: firewire0: bus manager 1 
Feb 24 16:57:54 citadel kernel: sbp0: sbp_show_sdev_info: sbp0:0:0: ordered:1 type:0 EUI:00203702002855b4 node:0 speed:3 maxrec:8
Feb 24 16:57:54 citadel kernel: sbp0: sbp_show_sdev_info: sbp0:0:0 'Seagate' 'FreeAgent FW' '000110'
Feb 24 16:58:00 citadel kernel: sbp0: sbp_mgm_timeout:sbp0:0:0 request timeout(mgm orb:0x7e6df1b8)
Feb 24 16:58:00 citadel kernel: sbp0: sbp_mgm_timeout:sbp0:0:0 reset start
Feb 24 16:58:55 citadel kernel: fwohci0: fwphy_rddata:: 0x0 loop=100, retry=100
[last message repeats]
Comment 1 Trev 2019-02-24 06:36:48 UTC
FreeBSD tiger 11.2-STABLE FreeBSD 11.2-STABLE #1 r344227M
Apple Mac mini model 2,1 (mid 2007)

Feb 17 16:14:15 tiger kernel: fwohci0: <Lucent FW322/323> irq 19 at device 3.0 on pci3
Feb 17 16:14:15 tiger kernel: fwohci0: OHCI version 1.0 (ROM=0)
Feb 17 16:14:15 tiger kernel: fwohci0: No. of Isochronous channels is 8.
Feb 17 16:14:15 tiger kernel: fwohci0: EUI64 00:1d:4f:ff:fe:6c:fe:72
Feb 17 16:14:15 tiger kernel: fwohci0: Phy 1394a available S400, 3 ports.
Feb 17 16:14:15 tiger kernel: fwohci0: Link S400, max_rec 2048 bytes.
Feb 17 16:14:15 tiger kernel: firewire0: <IEEE1394(FireWire) bus> on fwohci0
Feb 17 16:14:15 tiger kernel: fwohci0: Initiate bus reset
Feb 17 16:14:15 tiger kernel: fwohci0: fwohci_intr_core: BUS reset
Feb 17 16:14:15 tiger kernel: fwohci0: PhysicalUpperBound register is not implemented.  Physical memory access is limited to the first 4GB
Feb 17 16:14:15 tiger kernel: fwohci0: PhysicalUpperBound = 0x00000000
Feb 17 16:14:15 tiger kernel: fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=2, CYCLEMASTER mode
Feb 17 16:14:15 tiger kernel: firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0)  (me) 
Feb 17 16:14:15 tiger kernel: firewire0: bus manager 0 
Feb 17 16:17:39 tiger kernel: sbp0: <SBP-2/SCSI over FireWire> on firewire0
Feb 17 16:37:26 tiger kernel: fwohci0: phy int
Feb 17 16:37:28 tiger kernel: fwohci0: fwohci_intr_core: BUS reset
Feb 17 16:37:28 tiger kernel: fwohci0: PhysicalUpperBound register is not implemented.  Physical memory access is limited to the first 4GB
Feb 17 16:37:28 tiger kernel: fwohci0: PhysicalUpperBound = 0x00000000
Feb 17 16:37:28 tiger kernel: fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=3, non CYCLEMASTER mode
Feb 17 16:37:28 tiger kernel: firewire0: 2 nodes, maxhop <= 1 cable IRM irm(0)  (me) 
Feb 17 16:37:28 tiger kernel: firewire0: root node is not cycle master capable
Feb 17 16:37:28 tiger kernel: firewire0: bus manager 0 
Feb 17 16:37:28 tiger kernel: fwohci0: too many cycles lost, no cycle master present?
Feb 17 16:37:45 tiger kernel: fwohci0: fwohci_intr_core: BUS reset
Feb 17 16:37:45 tiger kernel: fwohci0: PhysicalUpperBound register is not implemented.  Physical memory access is limited to the first 4GB
Feb 17 16:37:45 tiger kernel: fwohci0: PhysicalUpperBound = 0x00000000
Feb 17 16:37:45 tiger kernel: fwohci0: fwohci_intr_core: node_id=0x00000001, SelfID Count=4, CYCLEMASTER mode
Feb 17 16:37:45 tiger kernel: firewire0: 2 nodes, maxhop <= 1 cable IRM irm(1)  (me) 
Feb 17 16:37:45 tiger kernel: firewire0: bus manager 1 
Feb 17 16:37:45 tiger kernel: fwohci0: too many cycles lost, no cycle master present?
Feb 17 16:40:54 tiger kernel: fwohci0: fwphy_rddata:: 0x0 loop=100, retry=100
[last message repeats]
Comment 2 Trev 2019-05-04 04:19:18 UTC
Controller info: 
FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 07)
Comment 3 Trev 2019-05-04 04:57:39 UTC
Oops, wrong Mac mini firewire controller above.

The correct controller is: LSI FW322/323 Truefire 1394a.
Comment 4 Keve Nagy 2021-11-28 18:17:29 UTC
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