March 6, 2022
Callan Multibus 68k computer - Multibus DMA
I am working with three boards in a multibus chassis:
- The PM68K cpu board
- A micro-memory 512K ram board
- The Callan "winchester" hard disk controller
I have been writing a driver to talk to the hard disk controller,
but have not been seeing it return a status block.
The way the hard disk controller works is via DMA from and to
multibus ram. You set up a command block, then poke the address
of that block into the hard disk controller registers.
The controller then fetches the command block via DMA, and when
done it put information into a status block via DMA.
If data is transferred, it goes into a buffer via DMA also.
DMA arbitration
A look at the Callan schematics revealed what I suspected.
The mother board has a DMA arbiter (consisting of two TTL chips).
Almost certainly the hard drive controller is trying to become
bus master in order to do DMA, but without an arbiter, it never
can get the bus and times out.
There are two arbitration schemes that can be used for DMA
arbitration on the multibus: serial or parallel.
Serial is a daisy chain style scheme that required no extra
logic. The parallel scheme is what the original Callan backplane
used to implement.
The relevant signals are:
- "pin" 15 - BPRN*
- "pin" 16 - BPRO* (output)
- "pin" 17 - BUSY*
- "pin" 18 - BREQ*
"BUSY" is assered once a bus master has won arbitration and need not be discussed here further.
"BPRN" and "BPRO" are the signals for the serial arbitration scheme.
These signals are not bussed and should be connected from one slot to the next
(empty slots will need to be bypassed via jumpers).
BPRN is the input, and is grounded going into the first board.
The first board is the highest priority.
Feedback? Questions?
Drop me a line!
Tom's Computer Info / [email protected]