Date: Sat, 19 Jul 2008 08:44:30 -0700 From: Sean Bruno <sbruno@miralink.com> To: Stephen Bader <sbader@comcast.net> Cc: freebsd-firewire@freebsd.org Subject: Re: Western Digital 1TB My Book Studio Message-ID: <48820BDE.1060608@miralink.com> In-Reply-To: <31CF633F-F559-4310-A14E-EFAAF14F6442@comcast.net> References: <071820082029.21468.4880FD440005BA24000053DC22007348409D0A0B0E0D9C@comcast.net> <48810C51.8020708@miralink.com> <16A05533-344E-41AD-8ADE-2D601C0E766B@comcast.net> <488121F1.4080907@miralink.com> <31CF633F-F559-4310-A14E-EFAAF14F6442@comcast.net>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
Stephen Bader wrote:
> Still no dice with the new patch. Here is the debug output.
>
> fwohci0: Initiate bus reset
> fwohci0: fwphy_rddata: 0x1 loop=1, retry=0
> fwohci0: fwphy_rddata: 0x1 loop=0, retry=0
> fwohci0: BUS reset
> sbp_post_busreset
> fwohci0: node_id=0xc800ffc1, gen=9, CYCLEMASTER mode
> firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 (me)
> fwohci0: fw_set_bus_manager: 1->1 (loop=0)
> firewire0: bus manager 1 (me)
> send phy_config root_node=1 gap_count=5
> fwohci0: start AT DMA status=12
> node0: crom unchanged
> fw_explore: node 2, err = 0
> bus_explore done
> sbp_post_explore (sbp_cold=0)
> sbp_post_explore: EUI:0090a9341b93f349 attached
> target 0 lun 0 found
> target 0 lun 1 found
> sbp_probe_target: detected non sequential access device(64). skipping
> sbp_probe_target: detected non sequential access device(77). skipping
>
> -Steve
Hmmm...apparently, I have to mask out "something" else in that
variable. Not sure why, but try this patch.
--
Sean Bruno
MiraLink Corporation
6015 NE 80th Ave, Ste 100
Portland, OR 97218
Cell 503-358-6832
Phone 503-621-5143
Fax 503-621-5199
MSN: sbruno@miralink.com
Google: seanwbruno@gmail.com
[-- Attachment #2 --]
Index: sbp.c
===================================================================
--- sbp.c (revision 5540)
+++ sbp.c (working copy)
@@ -195,7 +195,7 @@
#define SBP_DEV_RETRY 7 /* unavailable unit */
uint8_t status:4,
timeout:4;
- uint8_t type;
+ uint8_t type; /* SPC-2 device types */
uint16_t lun_id;
uint16_t freeze;
#define ORB_LINK_DEAD (1 << 0)
@@ -738,6 +738,18 @@
sdev = target->luns[i];
if (sdev == NULL)
continue;
+ /*
+ * if a Firewire device reports some kind
+ * of other device, that is not a drive
+ * then skip it
+ */
+ if ((sdev->type & 0x1f) != T_DIRECT) {
+SBP_DEBUG(0)
+ printf("%s: detected non direct access device(%u). skipping\n",
+ __func__, sdev->type & 0x1f);
+END_DEBUG
+ continue;
+ }
if (alive && (sdev->status != SBP_DEV_DEAD)) {
if (sdev->path != NULL) {
SBP_LOCK(sbp);
@@ -855,7 +867,7 @@
/* traverse device list */
STAILQ_FOREACH(fwdev, &sbp->fd.fc->devices, link) {
SBP_DEBUG(0)
- printf("sbp_post_explore: EUI:%08x%08x ",
+ printf("%s: EUI:%08x%08x ", __func__,
fwdev->eui.hi, fwdev->eui.lo);
if (fwdev->status != FWDEVATTACHED)
printf("not attached, state=%d.\n", fwdev->status);
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48820BDE.1060608>
