firewire disk stopped working
Daniel Thiele
dthiele at gmx.net
Fri Mar 13 15:59:53 PDT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Daniel Thiele wrote:
| 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
| _______________________________________________
| 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"
|
Hi Sean,
I updated my CURRENT today and also applied the patch to firewire.c you
included in your reply to the "Configuration ROM in firewire stack"
thread here on firewire@, since Hidetoshi Shimokawa also mentioned that
the the issue he was addressing also affects SCSI.
This patch seems to also fix the issues with my external firewire disk.
I did not do much testing yet, but the disk shows up in /dev and dmesg
reports:
fwohci0: fwohci_intr_core: BUS reset
fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=2, non
CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1 cable IRM irm(0) (me)
firewire0: root node is not cycle master capable
firewire0: bus manager 0
fwohci0: too many cycle lost, no cycle master presents?
firewire0: New S800 device ID:0090a9cad5a4d545
sbp0: sbp_show_sdev_info: sbp0:0:0: ordered:1 type:0
EUI:0090a9cad5a4d545 node:1 speed:3 maxrec:8
sbp0: sbp_show_sdev_info: sbp0:0:0 'WD' 'My Book' '000200'
da0 at sbp0 bus 0 target 0 lun 0
da0: <WD My Book 0200> Fixed Direct Access SCSI-4 device
da0: 50.000MB/s transfers
da0: 476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
At
http://www-public.tu-bs.de:8080/~y0023183/FreeBSD/Firewire/usr_src_sys_dev_firewire_versions_20090313.txt
you can find the exact versions of the files in
/usr/src/sys/dev/firewire that I am using. Note that firewire.c has been
patched with your firewire.c.diff patch I from the "Configuration ROM in
firewire stack" thread.
So, thanks for the patches to you both.
Best regards,
Daniel
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkm65XsACgkQCOZKcWNoXg7pyQCgozSG0CcaG9dV27wA62gDZ6vl
s7kAoJPvmBAg1hxF2GXfCNXrA/wfaE2J
=m9/8
-----END PGP SIGNATURE-----
More information about the freebsd-firewire
mailing list