Re: firewire disk stopped working

Sean Bruno <[email protected]>
Newsgroups gmane.os.freebsd.devel.firewire
Message-ID <[email protected]>
On Thu, 2009-02-19 at 03:12 +0200, Boris Kotzev wrote:
> On сряда 18 февруари 2009 21:26:31 you wrote:
> > On Sun, 2009-02-15 at 17:27 +0200, Boris Kotzev wrote:
> > > On неделя 15 февруари 2009 01:12:40 you wrote:
> > > > If you haven't already, boot back into the previous kernel environment
> > > > and let me know what revision of CURRENT it was that worked.
> > > >
> > > > Then I'll need to know what version you were using that broke.
> > > >
> > > > I'm trying to get my AMD64 system built this weekend to test things.
> > > >
> > > > Sean
> > >
> > > Verbose dmesg from the working system:
> > >
> > > http://host7.net62.hdsl-213-169.fastbg.net/dmesg.working.txt
> > >
> > > Verbose dmesg from the broken system:
> > >
> > > http://host7.net62.hdsl-213-169.fastbg.net/dmesg.broken.txt
> > >
> > > (The cable was plugged in after the system had had already booted - the
> > > output from the disk is found at the end.)
> > >
> > > Please, feel free to ask for more details, if necessary.
> > >
> > > Thanks,
> > >
> > > Boris Kotzev
> >
> > Looking over your logs, I can't quite see what the failure is.  There
> > seems to be a format error, I'm just not sure what is being requested.
> >
> > Can you update to -current, and set:
> > debug.sbp_debug = 1
> > debug.firewire_debug = 1
> >
> > Then repost your dmesg.
> >
> > Sean
> 
> Hi,
> 
> The dmesg output after plugging the cable are as follows (full verbose dmesg can be
> found at http://host7.net62.hdsl-213-169.fastbg.net/dmesg.debug.txt ):

I went over everything and came up with the following patch.  Let me
apply this to -current and let me know if it makes any difference.

Sean

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-firewire
To unsubscribe, send any mail to "[email protected]"
firewire.c.diff (text/x-patch, 1.1 KB)
Index: firewire.c
===================================================================
--- firewire.c	(revision 188750)
+++ firewire.c	(working copy)
@@ -31,7 +31,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  * 
- * $FreeBSD$
+ * $FreeBSD: head/sys/dev/firewire/firewire.c 188726 2009-02-17 19:37:04Z sbruno $
  *
  */
 
@@ -685,7 +685,7 @@
 	src->businfo.cyc_clk_acc = 100;
 	src->businfo.max_rec = fc->maxrec;
 	src->businfo.max_rom = MAXROM_4;
-	src->businfo.generation = 0;
+	src->businfo.generation = 1;
 	src->businfo.link_spd = fc->speed;
 
 	src->businfo.eui64.hi = fc->eui.hi;
@@ -765,12 +765,10 @@
 	 * indicate that we need to be reprobed
 	 */
 	if (bcmp(src, fc->config_rom, CROMSIZE) != 0) {
-		/* generation is a 2 bit field */
-		/* valid values are only from 0 - 3 */
-		src->businfo.generation = 1;
+		if ( src->businfo.generation++ > 0xF )
+			src->businfo.generation = 2;
 		bcopy(src, (void *)fc->config_rom, CROMSIZE);
-	} else
-		src->businfo.generation = 0;
+	}
 }
 
 /* Call once after reboot */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.