March 6, 2022

Callan Multibus 68k computer - Multibus DMA

I am working with three boards in a multibus chassis: 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:

"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 / tom@mmto.org