tso@CS.UCLA.EDU (12/18/86)
We need a device driver for DRV11WA working on BSD4.2/3 running on a MicroVAX II. I will appreciate any pointers to one. Thanks in advance. Kam S. Tso, (818) 354-4847
dhb@rayssd.UUCP (12/22/86)
In article <3456@curly.ucla-cs.UCLA.EDU> tso@CS.UCLA.EDU (Kam Sing Tso) writes: >We need a device driver for DRV11WA working on >BSD4.2/3 running on a MicroVAX II. I will >appreciate any pointers to one. Thanks in >advance. > >Kam S. Tso, (818) 354-4847 This question comes up every month or so and I usually send the poster a nice little mail message but I thought I would post the message to the net this time in the hopes of maybe helping more people in one fell swoop. 1. There is no such thing as a generic DR11W/DR11B/DRV11WA/etc driver under UNIX. The major problem is that the DR11 is not really a *real* device but is just an interface to a user supplied device. Each i/o operation is pretty much that, a generic i/o operation. The command that is passed to the DR11 does not really mean anything to the DR11, it means something to the user supplied device. The only way you could do a generic driver under UNIX is to force the user to preceed each read/write with an ioctl call to specify what the function bits should be set to. 2. Point 1 should not be taken to mean that the situation is hopeless. There are drivers available for the DR11 that can be customized for your specific situation. What you need to do is to define exactly what type of device you are connecting, including some info on how the device functions, and also define what type of functionality you need from the driver. Given this information, the people that have DR11 drivers can see if their particular driver can be easily adapted to your situation. Some examples of the types of descriptions you should be giving are as follows: a. I need a driver for a DR11 which is connected to an Ungermann-Bass network interface (NIU-2 or NIU-150) that will function as a standard ethernet network interface. b. I need a driver for a DR11 which is connected to an AN/UYK-44 military computer. The driver must support the NTDS-FAST or NTDS-NEW protocols and must be capable of transferring blocks larger than 64K. c. I need a driver for a DR11 running in link mode connected to another DR11 in another machine. The driver must support Berkeley networking (TCP/IP). 3. One other thing you are going to run into is that sometimes the companies that develop these drivers are either not willing or not allowed (due to contractual agreements) to distribute them. For example, I have working version of examples "a" and "b" above but am only allowed to give out copies of "a". The reason for this is that "a" is a modified version of a driver that was originally sent out as part of 4.2BSD (even though it didn't work) but "b" was developed in-house using funding from a military contract. Therefore, "a" can be sent out because it was originally, and still is, public domain (kinda sorta) but "b" is owned by the Navy and the only way you can get it is to have the Navy tell me to give it to you. 4. As a final course of action, you should post a message asking if anyone is willing to give you advice on how to write a driver for a DR11. If you don't have any experience writing drivers you should probably consider getting your company to put up a little money and ask if anyone is willing to take on a consulting job to develop the driver for you. I hope this has been of use to at least a few of you. If any of you have further questions about this, feel free to send me mail about it. If anyone wants a copy of my Ungermann-Bass driver they are welcome to it. The current version supports TCP/IP using the EDLS software from U/B and is therefore capable of communicating with other TCP/IP based interfaces (i.e. Interlan, 3Com, DEC, etc). -- David H. Brierley Raytheon Submarine Signal Division; Portsmouth RI; (401)-847-8000 x4073 smart mailer or arpanet: dhb@rayssd.ray.com old dumb mailer or uucp: {cbosgd,gatech,ihnp4,linus!raybed2} !rayssd!dhb
hurf@batcomputer.tn.cornell.edu (Hurf Sheldon) (12/23/86)
In article <500@rayssd.RAY.COM> dhb@rayssd.RAY.COM (David H. Brierley) writes: >In article <3456@curly.ucla-cs.UCLA.EDU> tso@CS.UCLA.EDU (Kam Sing Tso) writes: >>We need a device driver for DRV11WA working on >>BSD4.2/3 running on a MicroVAX II. I will >>appreciate any pointers to one. Thanks in >>advance. >> >>Kam S. Tso, (818) 354-4847 > >This question comes up every month or so and I usually send the poster a >nice little mail message but I thought I would post the message to the >net this time in the hopes of maybe helping more people in one fell swoop. > >1. There is no such thing as a generic DR11W/DR11B/DRV11WA/etc driver > under UNIX. The major problem is that the DR11 is not really a *real* > device but is just an interface to a user supplied device. Each i/o > operation is pretty much that, a generic i/o operation. The command > that is passed to the DR11 does not really mean anything to the DR11, > it means something to the user supplied device. The only way you > could do a generic driver under UNIX is to force the user to preceed > each read/write with an ioctl call to specify what the function bits > should be set to. This would be useful, however, as a generic starting point into the minefield of device drivers in general & dr[v]11's specifically. Besides - what would be the real performance difference if the register setups were done in user software & used ioctl to pass them? The drv11 is well documented so a driver that would allow you to just set CSR value or just say dmatransfer(some value) would be of great value (to me at least). > >2. Point 1 should not be taken to mean that the situation is hopeless. > There are drivers available for the DR11 that can be customized for > your specific situation. What you need to do is to define exactly > what type of device you are connecting, including some info on how the > device functions, and also define what type of functionality you need > from the driver. Given this information, the people that have DR11 > drivers can see if their particular driver can be easily adapted to > your situation. Some examples of the types of descriptions you should > be giving are as follows: > My try: I need a driver for a drv11 on a uVaxII/Ultrix1.2 for a Hammamatsu Digitizing camera. I have to pass valus in & get values out in DMA mode, set & read CSR values prior to data transfer & interface as kindly as possible with user software > >3. One other thing you are going to run into is that sometimes the companies that > develop these drivers are either not willing or not allowed (due to contractual > agreements) to distribute them. I called Hammamatsu - they told ME to call THEM when I got a driver working under unix! > For example, I have working version of examples > "a" and "b" above but am only allowed to give out copies of "a". The reason for > this is that "a" is a modified version of a driver that was originally sent out > as part of 4.2BSD (even though it didn't work) but "b" was developed in-house > using funding from a military contract. Therefore, "a" can be sent out because > it was originally, and still is, public domain (kinda sorta) but "b" is owned by > the Navy and the only way you can get it is to have the Navy tell me to give it > to you. Who in the Navy? (We are an ONR associate lab) > >4. As a final course of action, you should post a message asking if anyone is willing > to give you advice on how to write a driver for a DR11. If you don't have any > experience writing drivers ..... I am getting it the hard way right now. I am having a problem getting the data transferred from my software to the board. I have been using a write() but does the kernal map to the uio & buf structs? If so how do I read them in the driver? (The drv11 should be loaded with the address of the data, not the data & I can't get a handle on how to handle the transfer) Why is this such a black art & are there any really useful texts or workshops? > >I hope this has been of use to at least a few of you. It has and it is appreciated. I mailed the comments below but they bounced Hence the commented response > >-- >David H. Brierley >Raytheon Submarine Signal Division; Portsmouth RI; (401)-847-8000 x4073 >smart mailer or arpanet: dhb@rayssd.ray.com >old dumb mailer or uucp: {cbosgd,gatech,ihnp4,linus!raybed2} !rayssd!dhb What is rayssd's numerical address? I read your note with interest. We have a Hammamatsu camera on a drv11 that was originally on an 11/23(Minc 11). A DEC friend sent me a unibus dr11 driver to hack on but I am having some problems getting the DMA registers read correctly. I have just learned there is an undocumented timing restriction in some early drv11's that would preclude them running on a microvax so I am about to spring for a new drv11-WA. However, I would appreciate a copy of your driver to compare with what I have & hopefully learn from [it]. thanks, hurf Hurf Sheldon Arpa.css: hurf@ionvax.tn.cornell.edu Lab of Plasma Studies 369 Upson Hall phone: 607 255 7267 Cornell University Ithaca, N.Y. 14853 Cc: Bcc: