I have to convert a device driver for use with ISC 2.2. The driver is
for a board which communicates with an ISA machine via a shared memory
segment. The segment can be placed at 0xA0000-0xF0000 by strapping.
The sample driver code I was given uses a routine named physmap to map
the board's address range into kernel virtual space. It also tries to
include <kmem.h>. A define(?) KM_NO_DMA is used in the call to physmap.
Apparently this tag is defined in kmem.h?
The code in the sample looks like:
#define START 0xa0000 /* Board's starting address */
#define END 0xb0000 /* Past board's end address */
char *mem;
mem = (addr_t) physmap(START,END - START,KM_NO_DMA);
ISC has no addr_t, physmap or KM_NO_DMA.
Much searching (ISC documentation, and the ATT device driver reference
and guide) has yielded no help with how to talk to a memory mapped device.
Dis-assembly in the ISC kernel led me to a routine called mapphys.
However, I can't find anything on it's use. Is this the equivalent of
physmap (which needs three arguments)?
All I really need is help with how to map the board's addresses to kernel
addresses which can be used as arguments to copyin and copyout.
I would *really* appreciate any help with this. Please answer via e-mail.
Thanks in advance for any help....
--
Smitty
-------------------------------------------
ESSNJAY Systems Inc. uunet!hsi!essnj1!smitty