[RELENG_7] SBP Drives not recognized
Sean Bruno
sbruno at miralink.com
Fri Jun 27 03:32:44 UTC 2008
>
>
> This looks an awful lot like my issues with sbp_targ from previous
> emails and may indicate a more serious failure in fwohci.c or firewire.c
>
> Or, it may indicate that I have no idea what I am doing. :)
>
> This SBP-2 device is a external 2 disk enclosure with an Oxford
> Semicondoctor F/W controller. It seems to work just fine with linux
> and windows.
>
> [sean at home-test ~]$ sudo fwcontrol -t
> crc_len: 4 generation:8 node_count:2 sid_count:2
> id link gap_cnt speed delay cIRM power port0 port1 port2 ini more
> 00 1 5 S800 0 0 -1W - - P 0 0
> 01 1 5 S800 0 1 -1W C - - 1 0
>
> [sean at home-test ~]$ sudo fwcontrol -p
> === base register ===
> 0x07 0x85 0xe3 0xe2 0xc4 0x03 0x50 0x00
> Physical_ID:1 R:1 CPS:1
> RHB:1 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:2 BLINK:1 Bridge:0
> Page_Select:0 Port_Select0
>
> === page 0 port 0 ===
> 0xfe 0x40 0xbb 0x00 0x00 0x00 0x00 0x00
> Astat:3 BStat:3 Ch:1 Con:1 RXOK:1 Dis:0
> Negotiated_speed:2 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 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
>
> _______________________________________________
> freebsd-firewire at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-firewire
> To unsubscribe, send any mail to
> "freebsd-firewire-unsubscribe at freebsd.org"
Ok, the failure case is that the firewire/sbp code is using the "max"
speed instead of the negotiated speed.
So, since "fwdev->spd" is what is being used to determine the speed, is
it appropriate to mimic "fwcontrol" and grab the phy_page_0 to figure
out the negotiated speed?
Is it appropriate to check the phy_page during fw_sidrcv() when the
driver creates the "speed map"?
Sean
More information about the freebsd-firewire
mailing list