Re: kern/97208: [firewire] System hangs / locks up when a firewire disk is attached

Sean Bruno <[email protected]>
Newsgroups gmane.os.freebsd.devel.firewire
Message-ID <[email protected]>


On Sat, 2009-02-07 at 15:30 +0000, Torfinn Ingolfsen wrote:
>  
>  With i386, I still have the problem that dmesg fills up with messages
>  "phy int" and the drive does not attach. The machine does not hang, I
>  can attach and deattach the drive several times

I will backport a patch to allow CAM to see a drive connect/disconnect
better this week.  Right now, I think you have to reboot if the initial
connection fails.  It's kind of awful.

>  > 
>  > 4.  Specifically, what type of firewire drive is this?
>  
>  Maxtor OneTouch II, 300 GB, usb and firewire ports.

I noted that there are 2 models of the Maxtor OneTouch II.  It appears
from the fwcontrol output that you have a FW800 adapter in your PC and
that the Maxtor is using a FW800 port.  Does the FW400 port work?  Does
the USB port work?


>  fwohci0: node_id=0xc800ffc0, gen=195, CYCLEMASTER mode
>  firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
>  fwohci0: fw_set_bus_manager: 0->0 (loop=0)
>  firewire0: bus manager 0 (me)
>  send phy_config root_node=-1 gap_count=5
>  fwohci0: start AT DMA status=11
>  Current DB 0
>  ch = 0
>   Current OP   KEY INT BR   len     Addr   Depend Stat: Cnt
>  01877200 OUTL ST2 ALL ALL    12 00000000 01877280 8411:810f RUN,ACTIVE, ack complete(11)
>  0x000000e0 0x00450000 0xffbaffff 0x00000000
>  bus_explore done
>  sbp_post_explore (sbp_cold=0)
>  fwohci0: BUS reset
>  sbp_post_busreset
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: too many cycle lost, no cycle master presents?

>  fwohci0: phy int
>  fwohci0: phy int
>  fwohci0: node_id=0xc800ffc0, gen=217, CYCLEMASTER mode
>  firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
>  fwohci0: fw_set_bus_manager: 0->0 (loop=0)
>  firewire0: bus manager 0 (me)
>  send phy_config root_node=-1 gap_count=5
>  fwohci0: start AT DMA status=11
>  Current DB 0
>  ch = 0
>   Current OP   KEY INT BR   len     Addr   Depend Stat: Cnt
>  01877280 OUTL ST2 ALL ALL    12 00000000 01877300 8411:3df0 RUN,ACTIVE, ack complete(11)
>  0x000000e0 0x00450000 0xffbaffff 0x00000000
>  bus_explore done
>  sbp_post_explore (sbp_cold=0)

I'll have to see what the "phy int" is supposed to mean.  Right now it
appears that the FreeBSD firewire stack treats it as a no-op.

I am puzzled by the fact that "stuff" appears to be happening WAY before
a busreset occurs.  This seems bad.

Try the same test, but execute a "fwcontrol -r" to force a bus reset.
I'd be interested to see the same output from your console with
debugging enabled.

 
>  
>  === base register ===
>  0x01 0x05 0xe3 0xe2 0xc4 0x0b 0x10 0x20 
>  Physical_ID:0  R:0  CPS:1
>  RHB:0  IBR:0  Gap_Count:5
>  Extended:7 Num_Ports:3
>  PHY_Speed:7 Delay:2
>  LCtrl:1 C:1 Jitter:0 Pwr_Class:4
>  WDIE:0 ISBR:0 CTOI:0 CPSI:0 STOI:1 PEI:0 EAA:1 EMC:1
>  Max_Legacy_SPD:0 BLINK:1 Bridge:0
>  Page_Select:1 Port_Select0
>  
>  === page 0 port 0 ===
>  0xf8 0x60 0x3b 0x00 0x00 0x00 0x00 0x00 
>  Astat:3 BStat:3 Ch:1 Con:0 RXOK:0 Dis:0
>  Negotiated_speed:3 PIE:0 Fault:0 Stanby_fault:0 Disscrm:0 B_Only:0
>  DC_connected:0 Max_port_speed:3 LPP:1 Cable_speed:3
>  Connection_unreliable:0 Beta_mode:0
>  Port_error:0x0
>  Loop_disable:0 In_standby:0 Hard_disable:0
>  
>  === page 0 port 1 ===
>  0xb6 0x00 0xbb 0x00 0x00 0x00 0x00 0x00 
>  Astat:2 BStat:3 Ch:0 Con:1 RXOK:1 Dis:0
>  Negotiated_speed:0 PIE:0 Fault:0 Stanby_fault:0 Disscrm:0 B_Only:0
>  DC_connected:1 Max_port_speed:3 LPP:1 Cable_speed:3
>  Connection_unreliable:0 Beta_mode:0
>  Port_error:0x0
>  Loop_disable:0 In_standby:0 Hard_disable:0
>  
>  === page 0 port 2 ===
>  0xf8 0x60 0x3b 0x00 0x00 0x00 0x00 0x00 
>  Astat:3 BStat:3 Ch:1 Con:0 RXOK:0 Dis:0
>  Negotiated_speed:3 PIE:0 Fault:0 Stanby_fault:0 Disscrm:0 B_Only:0
>  DC_connected:0 Max_port_speed:3 LPP:1 Cable_speed:3
>  Connection_unreliable:0 Beta_mode:0
>  Port_error:0x0
>  Loop_disable:0 In_standby:0 Hard_disable:0

You appear to have 2 ports connected to FW800 devices, port 0 and port
2.  What is on both ports?


Sean

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-firewire
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.