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

Sean Bruno sean.bruno at dsl-only.net
Tue Feb 10 11:13:12 PST 2009


On Tue, 2009-02-10 at 19:34 +0100, Torfinn Ingolfsen wrote:
> On Mon, 09 Feb 2009 12:42:08 -0800
> Sean Bruno <sean.bruno at dsl-only.net> wrote:
> 
> > No.  The "ports" in "fwcontrol -p" are physical.  
> > 
> > Can you send a fwcontrol -p with NOTHING connected?
> 
> Sure.
> 
> root at kg-fil# uname -a
> FreeBSD kg-fil.kg4.no 6.2-STABLE FreeBSD 6.2-STABLE #20: Mon Mar 12
> 23:04:49 CET 2007     root at kg-fil.kg4.no:/usr/obj/usr/src/sys/FIL60
> amd64
> 
> root at kg-fil# fwcontrol -p
> === base register ===
> 0x03 0x05 0xe3 0xe2 0xc4 0x03 0x10 0x20 
> Physical_ID:0  R:1  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:0 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 ===
> 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 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
> 
> === page 1 ===
> 0x02 0x00 0x08 0x00 0x28 0x83 0x13 0x04 
> Compliance:2
> Vendor_ID:0x080028
> Product_ID:0x831304
> 
> HTH


Ah, excellent.  Now I see.  In your previous output of "fwcontrol -p" I
mistakenly inferred that a "Negotiated_speed" of "3" meant something was
connected. 

Instead, that appears to be the default.  The clue should have been that
the Negotiated_speed of "0" was where the Maxtor was connected.

"0" in this case, shows that the firewire stack just plain failed
alltogether to negotiate correctly(since your Maxtor is 400/800).

So, now I need to go and add some debugging and figure out what is going
on when you connect the HD.

Are you comfortable with patches to kernel source and recompilation?

Sean



More information about the freebsd-firewire mailing list