Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 04 Mar 2009 01:51:34 +0100
From:      Daniel Thiele <dthiele@gmx.net>
To:        Sean Bruno <sean.bruno@dsl-only.net>
Cc:        freebsd-firewire@freebsd.org, Boris Kotzev <boris.kotzev@gmail.com>
Subject:   Re: firewire disk stopped working
Message-ID:  <49ADD096.1050801@gmx.net>
In-Reply-To: <1236105014.7868.18.camel@localhost.localdomain>
References:  <200902150012.49329.boris.kotzev@gmail.com>	 <49A9B245.8030804@gmx.net> <1236056380.11182.5.camel@localhost.localdomain>	 <200903031052.31368.boris.kotzev@gmail.com> <1236105014.7868.18.camel@localhost.localdomain>

next in thread | previous in thread | raw e-mail | index | archive | help
Sean Bruno wrote:
> Ok, so let's try this a different way.
> 
> This patch should be applied against HEAD.  This reverts every change I
> have made in the last month.
> 
> Once we confirm that this works, I'll start moving forward until we find
> the broken change.
> 
> Sean

Even though the patch applied cleanly, the disk sill does not show up.
Only /dev/pass0 is being created. I also tried different disks
(enclosures to be precise) and different cables without any success.

The logs (all with debug.firewire_debug=3 and debug.sbp_debug=3) after 
applying firewire_revert.diff can be found at:

http://www-public.tu-bs.de:8080/~y0023183/FreeBSD/Firewire/reverted_patch_20090303

where:

sysctl.txt
is simply the output of 'sysctl -a | grep "firewire\|sbp"'. For both of
the following files.

dmesg_reverted_oxfordsemi_debug3.txt
is the dmesg with verbose debug messages (debug.{firewire,sbp}_debug=3)
with my enclosure using the Oxford (911?) chip set.
This dmesg also includes the complete dmesg of my machine and covers
attachment and detachment of the disk.

dmesg_reverted_wdmybook_debug3.txt
is the dmesg with verbose debug messages (debug.{firewire,sbp}_debug=3)
with a Western Digital My Book enclosure. Unfortunately I don't know the
chip set WD used in this one.
This dmesg just covers the attachment and detachment of the disk.


What I did next was trying to find out what versions of the files in
src/sys/dev/firewire caused the disk to stop working. I started with the
versions that work in 7.1-Stable (as of Feb 9). And updated them until
the disk did not get recognized anymore.

Here is what I tried so far:

File            7.1     8.0     200812          Feb 1
                 02/09   02/24   snap.           commit
                                 (guess)
                                 0000    0001    0002
------------------------------------------------------
firewire.c      1.100   1.108   1.104   1.104   1.105
firewire.h      1.21    1.25    1.22    1.25    1.25
fwdev.c         1.52    1.53    1.53    1.53    1.53
fwohci.c        1.93    1.98    1.95    1.95    1.96
fwohci_pci.c    1.60    1.61    1.60    1.60    1.61
fwohcireg.h     1.23    1.24    1.23    1.24    1.24
fwohcivar.h     1.16    1.18    1.16    1.16    1.17
fwphyreg.h      1.3     1.4     1.3     1.4     1.4
if_fwe.c        1.44    1.46    -       -       -
if_fwip.c       1.16    1.18    -       -       -
sbp.c           1.97    1.100   1.97    1.97    1.98
------------------------------------------------------
working:        yes     no      yes     yes     no

So, on my machine (still 8.0-CURRENT as of around Feb 24) the versions
of the files mentioned that are used in 7.1-STABLE work. The ones used
in the 200812-CURRENT snapshot also seem to work. Note that I guessed
the the versions in this case (basically I used the versions that, at
most, include changes from November 2008), since I only use that
snapshot as it is on a bootable USB-stick (0000 in the table above).
Next, I tried to update all mentioned files either to their current
version or the version just before the Feb 1 commit (0001 in the table
above). I used the current version whenever the file was not affected by
the Feb 1 commit. This also seems to work. After updating the rest of
the files to the version that contains the Feb 1 commit things stopped
working (0002). Note that I did not touch the if_* sources, as these are
network interfaces.

At 
http://www-public.tu-bs.de:8080/~y0023183/FreeBSD/Firewire/Tests_20090304/ 
you can find the following:

results.txt
the table above in a plain text file.

Sources/versions
the versions of the files in src/sys/dev/firewire I used. I removed the
leading '1.' from the version and put the remainder in front of the file.

Sources/working_0000
Sources/working_0001
the files in src/sys/dev/firewire used in the corresponding table
columns.

Sources/broken_0002
the files that broke firewire disk support in the versions mentioned in
the table.


I hope that somehow helps to narrow down the problem. If there is
anything else that I could or should try just let me know.


Best regards,

Daniel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49ADD096.1050801>