firewire disk stopped working
Daniel Thiele
dthiele at gmx.net
Tue Mar 3 16:51:32 PST 2009
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
More information about the freebsd-firewire
mailing list