Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Nov 2011 16:26:56 +0000
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        Sean Bruno <seanbru@yahoo-inc.com>
Cc:        firewire@FreeBSD.org
Subject:   Re: sys/dev/firewire
Message-ID:  <20111129162656.GA58831@FreeBSD.org>
In-Reply-To: <1321648527.2670.18.camel@hitfishpass-lx.corp.yahoo.com>
References:  <1321648527.2670.18.camel@hitfishpass-lx.corp.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Nov 18, 2011 at 12:35:27PM -0800, Sean Bruno wrote:
> Its been a while since I've taken a deep dive into the 1394 pool, but
> its time for me to start digging in this winter.
> 
> If you have a firewire adapter around or you have disabled your
> driver/hardware I'd like to know details about your hardware so I can
> generate a compat/quirk list.

Hi Sean (and everyone in firewire camp),

I agree that our 1394 stack needs some love.  When Linux folks are working
on their new FireWire stack, Juju, we're quickly falling back behind with
not even maintaining ours properly.  This should change.

My story: while trying to get my FA-101 external sound adapter to work, I've
discovered that many folks on the Net observe similar message with their
different hardware, like these:

  firewire0: fw_bus_probe:iterate and invalidate all nodes
  firewire0: fw_explore:node(0) fc->max_node(1) found
  firewire0: fw_explore:found myself node(1) fc->nodeid(1) fc->max_node(1)
  fwohci0: txd err= 3 miss Ack err
  firewire0: fw_explore_node: node0: explore_read_quads failure
  firewire0: fw_explore: node 2, err = -1

After googling a bit, it seems that these messages are somewhat specific to
TI controllers.  Moreover, back in 2008, a patch was worked out for Linux to
address some of the issues with it:

    http://www.gossamer-threads.com/lists/linux/kernel/907097

Some technical background information is available at the above link.

>From Linux 2.6.32.9, which basically carried only one quirk, namely
bus_reset_packet_quirk applied to TI devices, in the current latest kernel,
3.1.4, their drivers/firewire/ohci.c carries several more quirks which
starts to resemble what other OSes (inc. BSD) have for various peripheral
stacks (e.g. USB).  Apparently, since our 1394 implementation does not
provide any quirks right now, number of problematic controllers do not work
correctly.

Sean, when you speak of generating a compat/quirk list, do you plan to take
a look at what Linux already has, and perhaps porting them to our codebase?

I would really want to get my TI XIO2200A thing working with FA-101 on
FreeBSD, and will eagerly test any patches.

Thanks!

./danfe

P.S.  Links which also might be interesting:

http://thread.gmane.org/gmane.linux.kernel.firewire.user/4013
http://kerneltrap.org/mailarchive/git-commits-head/2010/3/26/31161



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