Re: Linux IEEE-1394 (FireWire) clarification

Emanuel Pirker (epirker@edu.uni-klu.ac.at)
Mon, 14 Jun 1999 23:10:37 +0200 (MET DST)


On Mon, 14 Jun 1999, Andreas Bombe wrote:

[snip]

>
> > * we then see what we have and how to migrate existing code
>
> Your code has all the FireWire stuff inside and interlaced with the AIC
> hardware driver. [snip]

This is one basic design decision. A low-level driver implements the
Serial Bus protocol stack as in figure 3-4 of IEEE 1394-1995.
I give you some points why I did this:
* Consider new, more intelligent hardware. Hardware that does not just
dump pre-built buffers onto the bus. Writing a driver for this new
hardware would be _impossible_ in your subsystem.
* I presume not all cards use the same DMA packet data format. This could
seriously bring your subsystem in trouble.

> [snip] You have mostly copied code from the SCSI subsystem
> without understanding why something is there and have therefore moved
> all the cruft from the SCSI subsystem (which is badly designed as most
> developers on the kernel list agree). Reusing something of that would
> have taken more effort than to just rewrite it and add the missing
> pieces.

Now on to the second issue:
Definitely not. I also don't like many things of the SCSI subsystem, but
anyway
* I just used what I need and ONLY what I need.
* The SCSI subsystem easily allows you to have a mixture of different
SCSI host adapters in your system. You can have two NCR and one Adaptec
(e.g.) at the same time. The same applies to 1394. That's why I like it.
* The SCSI subsystem is stable and proven to do what it is supposed to
do. If it was THAT bad, why is it still in the kernel?
* It looks ugly, yes. But as soon as you understand how the SCSI subsystem
works, you'll start to like it. (OK, I still don't like the initial
templates, but thats a very small part).

[snip]

>
> > * the TILynx chip may be important to many people including Andreas,
> > but in fact this chip is deprecated and not produced any more.
> > TI now produces and sells OHCI boards.
>
> So what? You can easily add new hardware drivers to my subsystem. i
> would actually be glad if you could migrate your Adaptec code to my
> subsystem. As I said in a mail I sent you some time I ago it would
> actually greatly simplify your driver because you can leave out all
> FireWire stuff and transaction code (basically the driver gets
> pre-built packets for sending and simply dumps the receive buffer to
> the core code plus all the little stuff like bus resets). And no more
> of that SCSI subsystem like templates through headers, which really
> suck.

Andreas, I am very glad you are in Linux-1394 business. But don't try to
reinvent the wheel. If your subsystem is really THAT better, I'll move my
Adaptec code to your structure ASAP. Quality wins, that's Linux
development works. But please understand that I _thought_ about what I did
and by doing everything again you'll make mistakes again I did or even
other mistakes.

Well, I also don't know about your situation and how your effort is
organized. If you do this as a fulltime job and you are paid for it,
you'll succeed. Maybe you'll do something that's too much specialized on
TILynx, but you'll succeed. If you do this in a project which is limited
on time (similar to what I did) it's critical - You may end up with
something similar to that already done (maybe better in your opinion), but
still not finished. Then your boss wants you to do other things. If you
just do it in your spare time, you can freely decide on what you do, but
progress won't be as fast. Probably at the beginning much more, but then
development speed always decreases...

I state it again and clearly: If you succeed with your own ideas, I won't
wait any second and migrate the Adaptec code and possibly use my
experience to work on an OHCI driver. I would really like this, because
then I wouldn't be bothered with the subsystem any more. But chances are
good that you make good progress in the beginning, but at last the result
will not be very different from what I've done. I'd call this a waste of
time and work. I like Linux very much and I like the Linux-1394 project.
I want to keep the project alive in any way.

Please think about what I wrote in the beginning about the interleaving of
AIC and 1394 stuff. Be sure that you can cope with the items I mentioned.

Best regards,

Emanuel

---------------------------------------------------------------------------
Emanuel Pirker
epirker@edu.uni-klu.ac.at

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/