
Cyclone VME fiber link
----------------------

This directory contains the microcode for the Cyclone point to point fiber
communications card.
The CVME961 card consists of an INTEL 960 processor, 4MB of RAM and a VME
interface. A set of connectors on the card allow application specific
modules to be connected to the 960 memory bus. The SQFBR squall module
provides a fiber link between two CVME961 cards. The squall module consists
of a pair of TAXI fiber tranceivers, 5K of receiver fifo and an interface to
the 960 processor. 

We use the fiber links for high speed communications between file and CPU servers.
The code in the system has only been tested between SGI 4D series multiprocessors,
however it should be possible to link any pair of computers with VME buses.

The link is asymmetric. The file server driver is not the same as the CPU server
driver. The link is designed to perform RPC from the CPU server to the file
server. The code in the CVME card is the same on both sides of the link and the
drivers change their mode of operation depending on the host driver.
It is not possible to connect two cpu servers using the driver and microcode as is.
RPC's are performed by a split transaction. The write of the RPC request to the 
file server is cached by the CVME card in the CPU server.
The write completes immediately and no data is transmitted to the file 
server. The read of the reply by the CPU server is matched with the previous write
and transmitted to the file server. Data passing between the machines is copied
directly from host memory to fiber and from fifo to host memory. Data is not buffered
in the CVME961 card.

The 960 C compiler has only been tested on this program - If you have problems
the compiler should be on the list of suspects.

Making the ROM
--------------

An EPROM of the microcode can be produced by typing:

	mk rom

The file produced is a Motorola S3 record image of the ROM ready for downloading
to an EPROM blower. The code fits in either a 27256 or 27128. If a 27128 is used
the jumpers on the cyclone card must be altered accordingly. (Page 7 of the CVME961
manual) The Eprom replaces the NINDY monitor rom.
The microcode prints a sign-on message to serial port A if the rom is installed
correctly.

To prototype software under the NINDY monitor the REGION control registers must be
set from the monitor. The process is described in the SQFBR manual. Code can
be downloaded from con using the xms (Xmodem send) program. The program must be loaded
with the loader option -H4 to generate the correct coff binary format for NINDY.
Code for roms should be linked as a Plan9 binary. Examples of both are provided
in the mkfile.

VME Considerations
------------------

The Cyclone comes wired to act as a VME system controller. You must remove the
system controller jumpers for the card to operate correctly in an SGI machine.

The current microcode assumes the card is dual ported with the memory of the host
computer. The code is currently set up for a window at VME address 0x40000000 into
the host memory. Accesses are all performed with a USER address modifier due to
a limitation in the SGI VME implementation. (SGI only responds to DMA in AM9).
To change to supervisor mode remove the switch to 960 user mode from main.c.
All VME accesses by the host and CVME card are either 32bit or block mode cycles.
so the VME bus must support full A32 mode addressing. The CVME card must be
able to perform A32 cycles to the whole of physical memory.

The code in l.s of the microcode can do block copies over the VME bus if the host
computer supports this. A bug in the earlier cyclone boards prevents block mode
due to a failure of LWORD* during 32bit VME cycles. Check with Cyclone you get
fixed boards.

Rebooting the Cyclone
---------------------

The operating system can be booted over the cyclone by specifying cyc as the boot
device. If the link fails it can be restarted by resetting the cyclone card in each
machine and typing:

	cyc reboot

at the file system console. The message 'reboot did not issue', on the file system
console  indicates all is well! The message 'buffer n did not issue' indicates the
card in the file server is not ready or broken.

The cards can be ordered from:

	Cyclone Microsystems
	15 Science Park
	New Haven
	CT 06511
	(203) 786-5536

The parts required are:

	2x	CVME961
	2x	SQFBR
