Date: Sat, 14 Mar 2009 00:00:14 +0100 From: Daniel Thiele <dthiele@gmx.net> To: freebsd-firewire@freebsd.org Subject: Re: firewire disk stopped working Message-ID: <49BAE57E.7020907@gmx.net> In-Reply-To: <49ADD096.1050801@gmx.net> 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> <49ADD096.1050801@gmx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
-----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@freebsd.org mailing list | http://lists.freebsd.org/mailman/listinfo/freebsd-firewire | To unsubscribe, send any mail to "freebsd-firewire-unsubscribe@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-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49BAE57E.7020907>