Date: Thu, 26 Jun 2008 20:32:42 -0700 From: Sean Bruno <sbruno@miralink.com> To: freebsd-firewire@freebsd.org, Hidetoshi Shimokawa <simokawa@FreeBSD.ORG> Subject: Re: [RELENG_7] SBP Drives not recognized Message-ID: <48645F5A.6000209@miralink.com> In-Reply-To: <485AFC6D.4050107@miralink.com> References: <485AFC6D.4050107@miralink.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > > 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@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@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@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-firewire > To unsubscribe, send any mail to > "freebsd-firewire-unsubscribe@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48645F5A.6000209>