Xenix device-drivers/DMA problem

Motti Bazar motti at ocsmd.ocs.com
Mon Mar 20 08:56:11 AEST 1989


Hi there, its Motti again (with my driver problems again).
I'm still fighting with Xenix and developing a driver for our
CD-ROM controller.
The new problem I encountered is as follows:
First, the driver is called via the character interface (read) that
calls physio (that calls my strategy). The kernel somehow decides
to cut my request to multiple 1Kb and 3Kb requests to my strategy.
Does somebody know how to tell physio not to cut it ???
It looks like I can't (this is an answer from SCO).

Second and more problematic, I can leave with multiple calls (it will
be slower). Then What I'm doing is buffering things in a buffer that I
allocated in the driver. The problem is that when I go and call the DMA
setup routine (dma_param(....)) and then go to sleep (sleep(....)) I see
the operation (drive busy light goes on) but then I get a nice panic
message telling me about a parity error and the machine is dead with
the hard-disk busy light on forever. Somebody have any idea ?????

Its a real pain !!!!! its a lot more easier doing it under SunOS.
One of the big problems is that there is no demo source available
to show how you really develop a device driver under Xenix (yes its
easy to give a terminal driver or alike but what about real hardware
access with interrupts and DMA ?????).

It looks like that when I'll finish I'll publish an article or post at
least something how to do all of these things (It will have to be 
authorized by the comapany but I do not see problems).

I'll appreciate any help and let you know how it goes.
Thanks in advance ... Motti



More information about the Comp.unix.wizards mailing list