[comp.sys.ncr] accessing Multibus shared memory

jalsop@seachg.UUCP (John Alsop) (01/10/90)

We have an old Multibus communications controller (actually a single-board
microcomputer made by Heurikon) which uses shared memory to interface with
the Multibus host. We are trying to get this working on a Tower 600.

The Multibus memory addresses to which this board responds are decoded by a
custom PAL on the board. The problem we have is that we don't know what this 
address range is, other than that it is a 24 bit address.

We tried writing a simple C program that scanned through "/dev/kmem"
looking for a fixed data pattern which we know is on the board, but no
luck.

I suspect that we are not generating the correct "virtual address" inside
the Tower to map onto the Multibus shared memory space.  Does anyone know
how to do this for the 600?  

Note that we are talking here about Multibus memory addresses, not Multibus
I/O addresses. To read a Multibus I/O address of xxxx, one reads the Tower
memory address FFxxxx.  The problem here is how do you read a Multibus memory
address of xxxxxx.

Hope someone can help!

Thanks,

-- 
John Alsop

Sea Change Corporation
1100 Central Parkway W., Suite 38
Mississauga, Ontario, Canada L5C 4E5
Tel: 416-272-3881 Fax: 416-272-1555
UUCP: ...!uunet!attcan!darkover!seachg!jalsop

wescott@Columbia.NCR.COM (Mike Wescott) (01/16/90)

In article <180@seachg.UUCP> jalsop@seachg.UUCP (John Alsop) writes:
> We have an old Multibus communications controller (actually a single-board
> microcomputer made by Heurikon) which uses shared memory to interface with
> the Multibus host. We are trying to get this working on a Tower 600.

> The Multibus memory addresses to which this board responds are decoded by a
> custom PAL on the board. The problem we have is that we don't know what this 
> address range is, other than that it is a 24 bit address.

> We tried writing a simple C program that scanned through "/dev/kmem"
> looking for a fixed data pattern which we know is on the board, but no
> luck.

Most of the multibus memory space is not normally mapped in, hence
it cannot be accessed on the 600 without special help from the kernel.

You'd need to write a driver that allocated some kernel address space
and mapped that space to point into the multibus address space.  More
specific information on this procedure should be in the document on
writing device drivers.
--
	-Mike Wescott
	 mike.wescott@ncrcae.Columbia.NCR.COM