Driver for FireWire Hardware via OHCI

Hello,

I am about to develop a Firewire (IEEE1394) driver running under QNX that
accesses the LLC hardware via OHCI (OpenHostControllerInterface). This is a
standard communication interface for PCI that provides register access to
configure and run the hardware.

My problem is that I can’t manage to get anything (not a single packet) sent
on the FireWire bus even though I apply the information from the OHCI
specification as precisely as I can. After configuration I am seting the
START bit in the ContextControl register, which should send my configured
packet out on the bus. But instead of sending it, the error return “Unknown
Event Code” [5’h0E] appears.

Does anybody have experience in OHCI programming? Could I have mistaken the
order of register accesses for this subject?

Nnamdi

“Nnamdi Kohn” <nnamdi.kohn@tu-bs.de> wrote in message
news:cnf8ls$kp5$1@inn.qnx.com

Hello,

I am about to develop a Firewire (IEEE1394) driver running under QNX that
accesses the LLC hardware via OHCI (OpenHostControllerInterface). This is
a
standard communication interface for PCI that provides register access to
configure and run the hardware.

My problem is that I can’t manage to get anything (not a single packet)
sent
on the FireWire bus even though I apply the information from the OHCI
specification as precisely as I can. After configuration I am seting the
START bit in the ContextControl register, which should send my configured
packet out on the bus. But instead of sending it, the error return
“Unknown
Event Code” [5’h0E] appears.

Does anybody have experience in OHCI programming? Could I have mistaken
the
order of register accesses for this subject?

MindReady has drivers for Firewire/QNX6.

As for getting help on OHCI stuff you’d better ask in other newsgroup since
this has nothing to do with QNX.

Nnamdi

Mindready may discontinue their 1394 stack for QNX. They do not
support 6.3. Moreover, the cost of each license is expensive (>
500$).

If you succeed with your driver, please contact me and our company may
contribute ($). We also need support for the IIDC standard (currently
provided by MindReady).

About your post, do you know there is a Linux library available, with
free source code? This could serve as a good start… The name of
the library is “lib1394”. I can send you the source code if you want
it.

Sim
sombol20 @ hotmail.com

stremblay wrote:

Mindready may discontinue their 1394 stack for QNX. They do not
support 6.3.

I didn’t realize that. We’re definitely stuck on QNX 6.21 then.

I can’t blame Mindready, though. One of their people once admitted
to me that they’d sold very, very few QNX licenses. A single digit
number was mentioned.

About your post, do you know there is a Linux library available, with
free source code? This could serve as a good start… The name of
the library is “lib1394”.

I’ve looked at that code. It’s terrible. It can only support
one isochronous device at a time, doesn’t support hot plugging properly,
doesn’t play nice with other bus masters, sometimes needs to be
manually restarted, and exports a wierd “raw” API that’s
ill-designed. Don’t use that as a model for QNX.

I’ve written a DCAM driver for QNX, but it’s on top of the Mindready
LLA. If someone replaces the LLA level with something reasonable,
I’ll make the source for my DCAM driver available under the GPL.
Meanwhile, here’s its manual page:

http://www.overbot.com/public/devfw-ohci.html

John Nagle
Team Overbot

“John Nagle” <nagle@downside.com> wrote in message
news:cs13hd$h54$1@inn.qnx.com

stremblay wrote:

Mindready may discontinue their 1394 stack for QNX. They do not
support 6.3.

I didn’t realize that. We’re definitely stuck on QNX 6.21 then.

I can’t blame Mindready, though. One of their people once admitted
to me that they’d sold very, very few QNX licenses. A single digit
number was mentioned.

Damn it, I wonder why. Could it have something to do with the fact that they
charge ~$500 (and bother with copy protection) for something that’s now
standard part of Windows/Linux? Considering also that ‘headless’ QNX6
runtime costs about $300, it surely appears stiff.

But, fear not. Considering the history of support for another popular
standard (Ethernet), we might even see a beta of FireWire support comfing
from QNX before humans land on the Mars…

– igor

I’d be glad to release my code for the upper levels of
DCAM support under the GPL if someone will undertake to
convert it to work without the Mindready library and
GPL that code.

John Nagle

Igor Kovalenko wrote:

“John Nagle” <> nagle@downside.com> > wrote in message
news:cs13hd$h54$> 1@inn.qnx.com> …

stremblay wrote:


Mindready may discontinue their 1394 stack for QNX. They do not
support 6.3.

I didn’t realize that. We’re definitely stuck on QNX 6.21 then.

I can’t blame Mindready, though. One of their people once admitted
to me that they’d sold very, very few QNX licenses. A single digit
number was mentioned.



Damn it, I wonder why. Could it have something to do with the fact that they
charge ~$500 (and bother with copy protection) for something that’s now
standard part of Windows/Linux? Considering also that ‘headless’ QNX6
runtime costs about $300, it surely appears stiff.

But, fear not. Considering the history of support for another popular
standard (Ethernet), we might even see a beta of FireWire support comfing
from QNX before humans land on the Mars…

– igor

John Nagle <nagle@downside.com> wrote:

I’d be glad to release my code for the upper levels of
DCAM support under the GPL if someone will undertake to
convert it to work without the Mindready library and
GPL that code.

You seem to be fixated on GPL. If I may ask, why???
There are better, less viral licensing models, why inflict
that particular one? (It’s your code, so obviously
do what you want, but I’m curious)…

Cheers,
-RK

John Nagle

Igor Kovalenko wrote:

“John Nagle” <> nagle@downside.com> > wrote in message
news:cs13hd$h54$> 1@inn.qnx.com> …

stremblay wrote:


Mindready may discontinue their 1394 stack for QNX. They do not
support 6.3.

I didn’t realize that. We’re definitely stuck on QNX 6.21 then.

I can’t blame Mindready, though. One of their people once admitted
to me that they’d sold very, very few QNX licenses. A single digit
number was mentioned.



Damn it, I wonder why. Could it have something to do with the fact that they
charge ~$500 (and bother with copy protection) for something that’s now
standard part of Windows/Linux? Considering also that ‘headless’ QNX6
runtime costs about $300, it surely appears stiff.

But, fear not. Considering the history of support for another popular
standard (Ethernet), we might even see a beta of FireWire support comfing
from QNX before humans land on the Mars…

– igor


[If replying via email, you’ll need to click on the URL that’s emailed to you
afterwards to forward the email to me – spam filters and all that]
Robert Krten, PDP minicomputer collector http://www.parse.com/~museum/

“Mario Charest” <nowheretobefound@8thdimension.com> schrieb im Newsbeitrag
news:cnfjn5$sc1$1@inn.qnx.com

As for getting help on OHCI stuff you’d better ask in other newsgroup
since
this has nothing to do with QNX.

Does anybody know a good newsgroup, where OHCI stuff can be discussed?

Tobias

Tobias wrote:

“Mario Charest” <> nowheretobefound@8thdimension.com> > schrieb im Newsbeitrag
news:cnfjn5$sc1$> 1@inn.qnx.com> …


As for getting help on OHCI stuff you’d better ask in other newsgroup

since

this has nothing to do with QNX.



Does anybody know a good newsgroup, where OHCI stuff can be discussed?

Have a look to LINUX based ng.

Armin

Tobias

Good News :

MindReady decided today to port their FireWire driver and IIDC module
to Neutrino 6.3!

MindReady decided today to port their FireWire driver and IIDC module
to Neutrino 6.3!

Just found this old thread. Maybe they decided on this after my company
reported to them that our preliminary testing showed that it worked?

And if they had only sold a single-digit worth of licenses (as previously
reported) then no one but my company must have a license!

Despite this, our negotiated price just changed under our feet and some
items TRIPLED!!! in price with our latest order. Needless to say, there are
some VERY unhappy people here. We were already paying a premium, even
committing to using MindReady’s very expensive boards, but now the pricing
is totally ridiculous.

I really think the time has come for someone (and it will likely be me if my
company ends up doing it) to write/port a working alternative that works
with IIDC cameras and just release it into the public domain to kill
MindReady once and for all unless they come to their senses on pricing. I
don’t mind paying a reasonable amount for a board and driver (I had been
paying $715 for the board, LLA and IIDC stack) but now the pricing is
insane.

My company has in the past implemented our own camera drivers, and it looks
like we have to do it again. We have expertise in this area and have always
ended with a robust driver that gives better performance than the board
manufacturer’s drivers under other OS’s. Previously the drivers were
considered proprietary and we kept them to ourselves, but if we have to do
it this time for 1394 I think I’ll throw it out to the masses this time.


William (Bill) Flowers
VP Research
ICS Inex Inspection Systems
13075 US 19 North
Clearwater, FL 33764
phone: 727-535-5502
fax: 727-532-8513
website: http://www.icsinex.com

And if it is good as your file systems - it will really scream! I am
interested !!

Bill Flowers wrote:

MindReady decided today to port their FireWire driver and IIDC module
to Neutrino 6.3!


Just found this old thread. Maybe they decided on this after my company
reported to them that our preliminary testing showed that it worked?

And if they had only sold a single-digit worth of licenses (as previously
reported) then no one but my company must have a license!

Despite this, our negotiated price just changed under our feet and some
items TRIPLED!!! in price with our latest order. Needless to say, there are
some VERY unhappy people here. We were already paying a premium, even
committing to using MindReady’s very expensive boards, but now the pricing
is totally ridiculous.

I really think the time has come for someone (and it will likely be me if my
company ends up doing it) to write/port a working alternative that works
with IIDC cameras and just release it into the public domain to kill
MindReady once and for all unless they come to their senses on pricing. I
don’t mind paying a reasonable amount for a board and driver (I had been
paying $715 for the board, LLA and IIDC stack) but now the pricing is
insane.

My company has in the past implemented our own camera drivers, and it looks
like we have to do it again. We have expertise in this area and have always
ended with a robust driver that gives better performance than the board
manufacturer’s drivers under other OS’s. Previously the drivers were
considered proprietary and we kept them to ourselves, but if we have to do
it this time for 1394 I think I’ll throw it out to the masses this time.


William (Bill) Flowers
VP Research
ICS Inex Inspection Systems
13075 US 19 North
Clearwater, FL 33764
phone: 727-535-5502
fax: 727-532-8513
website: > http://www.icsinex.com

“Warren Deitch” <warren.deitch@transtoll.com> wrote in message
news:di1q7n$cqd$1@inn.qnx.com

And if it is good as your file systems - it will really scream! I am
interested !!

Thanks Warren. If I did this it would have to be a screamer! I’ve got one
system that has 4 color cameras (YUV 4:2:2) acquiring and inspecting over
3400 images per minute. This is pushing up to the limits of both the
FireWire bandwidth and the PCI bus bandwidth.

What I do now is quite the change from file systems, all those years ago.

If I’d stayed at QSSL, I’d have over 21 years with them now.

Bill Flowers
VP Research
ICS Inex Inspection Systems
Clearwater, FL

“Bill Flowers” <wflowers@icsinex.com.NOSPAM> wrote in message
news:di3hc7$lqn$1@inn.qnx.com

“Warren Deitch” <> warren.deitch@transtoll.com> > wrote in message
news:di1q7n$cqd$> 1@inn.qnx.com> …
And if it is good as your file systems - it will really scream! I am
interested !!

Thanks Warren. If I did this it would have to be a screamer! I’ve got
one system that has 4 color cameras (YUV 4:2:2) acquiring and inspecting
over 3400 images per minute. This is pushing up to the limits of both the
FireWire bandwidth and the PCI bus bandwidth.

There’s PCIe and FW800 for that. But who am I teaching :wink:

“Igor Kovalenko” <kovalenko@comcast.net> wrote in message
news:di4uf8$n5n$1@inn.qnx.com

There’s PCIe and FW800 for that. But who am I teaching > :wink:

LOL, even this old dog can sometimes learn a new trick! But for now we are
stuck with some older design motherboards. Not that old as they have
hyperthread support, 800FSB, etc. Options like you suggest could be
available for the 2nd generation product sometime next year at the earliest.

BTW, good to “see” some of the old names are still around. I’m usually far
too busy to hang around and follow these newsgroups, but I’m always
available via email. Although that sometimes can go unanswered for a few
days when I’m pressed for time, so if you want to communicate be patient …
I will respond eventually.

Bill Flowers
VP Research
ICS Inex Vision Systems
Clearwater, FL

Here’s our FireWire driver for OHCI cameras:

Manual page:

http://www.overbot.com/public/devfw-ohci.html

Source code:

http://www.overbot.com/public/qnx/

Currently requires Mindready LLA, but there’s full source
code for our camera driver, including multiple camera and
hot plugging support. It’s a QNX resource manager; when
running, cameras appear under “/dev/fw0”.

It probably isn’t that big a job to convert this to work
without the Mindready LLA. All the LLA is doing is talking
to the OHCI chip and managing buffer queueing. We had to
do all the bus management ourselves.

License: GPL.

John Nagle
Team Overbot


Bill Flowers wrote:

MindReady decided today to port their FireWire driver and IIDC module
to Neutrino 6.3!


Just found this old thread. Maybe they decided on this after my company
reported to them that our preliminary testing showed that it worked?

And if they had only sold a single-digit worth of licenses (as previously
reported) then no one but my company must have a license!

Despite this, our negotiated price just changed under our feet and some
items TRIPLED!!! in price with our latest order. Needless to say, there are
some VERY unhappy people here. We were already paying a premium, even
committing to using MindReady’s very expensive boards, but now the pricing
is totally ridiculous.

I really think the time has come for someone (and it will likely be me if my
company ends up doing it) to write/port a working alternative that works
with IIDC cameras and just release it into the public domain to kill
MindReady once and for all unless they come to their senses on pricing. I
don’t mind paying a reasonable amount for a board and driver (I had been
paying $715 for the board, LLA and IIDC stack) but now the pricing is
insane.

My company has in the past implemented our own camera drivers, and it looks
like we have to do it again. We have expertise in this area and have always
ended with a robust driver that gives better performance than the board
manufacturer’s drivers under other OS’s. Previously the drivers were
considered proprietary and we kept them to ourselves, but if we have to do
it this time for 1394 I think I’ll throw it out to the masses this time.


William (Bill) Flowers
VP Research
ICS Inex Inspection Systems
13075 US 19 North
Clearwater, FL 33764
phone: 727-535-5502
fax: 727-532-8513
website: > http://www.icsinex.com

We too have been using Mindready IIDC for quite some time for our
Mobile mapping application. we too are very upset with there pricing
and Are also interested in these drivers. I will take a look at the
OHCI drivers referenced on this thread and let you know what I think.
I read thru the manual and it look like it does not support our
cameras .

We are fed up with the cost of the mind ready board and are currently
porting our Camera nodes to embedded Linux application. we are about
3/4 done with the camera driver part.

We too have spent some time our our own drivers to get product working
well. We have some bugs we are currently working around in the
mindread IIDC. The main bug has to do with external triggering our
cameras and the driver reporting that it ddi not get an image in one
our of every 100 images taken. Has anyone else seen this type of
bug. Our best performing driver is base on the HLA driver from
mindready that is no longer supported and the boards are no longer
availble so we are stuck with what we got. I still need to keep them
running and have to fix the missing triggered image bug soon. :sunglasses: :sunglasses:
:sunglasses:

QNX are supposed to make a stack, but I did not heard from them.
Having the stack would be much easier to make a stable IIDC driver?
We are all tired from the high pricing of the stack. For us, the
price has not changed yet. By the way you are talking, I fear that
they will increase it once we are dependant from them.
Also, they ask us an upgrade amount, which is probably only to pay for
the testing they did on 6.3.

For you bug, we have such a bug with triggered cameras, but at a very
lower frequency (1/2000, approx.). This is however far unacceptable
in my sense (for industrial applications). If I find something about
this, I will inform you of the solution. Have you tried to change
your 1394 boards? We are using very cheap ones, and I’m wondering if
this could be the cause.

I see that you use MNY’s 1394 boards?? Why? The driver works with
other boards as well (just check the chipset). VIA does not work
well.

WE have been buying Mindready cards to work with mindready S/W.
Untill the IIDC came out we have had no problems with them. What
other cards are supported. There seems to be a licence tied to the
boards we have and we complie it into the libs we use for the IIDC
app.

one in a hundred seems to be an average. our application we need to
take images at about 3-5 hz and when we miss one we are pushing the
systesm as fast as we can. we are using 1.4 and 2 mega pixel cameras
an we see more missing images the higher the resolution goes. Also
we have a 4 camera Stereo systesm and I am counting one missing image
from all 4 cameras as a missing image since it is deemed unuable by
the cleint and us for that matter. I really need to get a solution
for this and will be contacting mindready today on it to see if we
can imporve out preformace. iff we reaaly push our systesm we can get
over 1/3 missing so I think we have a good shot on fixing it.

Greg,

The licence is tied to the board with the board’s UID. Any 1394 board
has an ID, and MNY will give you a licence for any board. National
Instruments boards are compatible (~$150).

You get a lot of missing frames… it’s not normal. At this rate,
your problem looks like a thread priority problem. Do you use the
CPU while capturing images? Do you change the priority of the stack
threads?