spalding@uiucdcsp.cs.uiuc.edu (11/22/87)
I am writing a VRM/AIX device driver, and would like to get in touch with anyone who has done this before. I have some questions arising from some omissions and conflicts in the documentation. The device I'm trying to support is an Analog-to-Digital converter board that we want to run at 10,000 conversions per second using one of the system DMA channels. Since there is considerable software overhead associated with starting a DMA operation (translation control words must be loaded, one per 2K block), I would like to run the 8237 DMA controller in its auto-initialize mode. This will result in the data coming into a ring buffer, and it should be easy enough to stay ahead of the DMA controller in writing the data out to disk. In the VRM _stdma() [start dma] function, you can specify the 3237 control word, so there should be no problem in establishing the auto-initialize mode. But there is the question of whether the VRM software will balk at this, since there will be an interrupt on channel 0 whenever the 8237 reaches terminal count. Will VRM try to shut down the 8237 on the first interrupt? Should I try to set up a second level interrupt handler for this in order to outsmart VRM? Aside from the device specific considerations, there is a bewildering list of things that must be done to install a new driver, of which I have discovered so far: - a VRM driver - an AIX driver - a configure helper program - changes to /etc/master - changes to /etc/system I have some sample code from IBM, but unfortunately it consists of a diskette VRM driver and a printer AIX driver, and I don't have a sample configure helper proram. Having a "matched set" of these pieces would help greatly in understanding how they fit together. Any leads would be much appreciated. John W. Spalding spalding@p.cs.uiuc.edu