--
--  EISCAT Scientific Association. M.Savitski
--
--  This material is a part of the MVME162 Board Support Package
--  for the RTEMS executive. Its licensing policies are those of the
--  RTEMS distribution.
--
--  Updated by Joel Sherrill (jsherril@redstone.army.mil) after
--  inclusion in the standard release.
--


MVME162 Models
--------------

There are three different models of the MVME162 board.  There are many
variations within each model.

  Model        Variants
  ---------    --------------------------------------------------
  MVME162      MVME162-0xx
  MVME162FX    MVME162-4xx, MVME162-5xx
  MVME162LX    MVME162-2xx, MVME162-3xx, MVME162-7xx, MVME162-8xx

All models use either an MC68040 or MC68LC040 (no FPU) processors.  The
processor used varies by variant as does the speed, the amount and type
of memory and the I/O devices (serial, ethernet, SCSI and VME).  See the
README.models file for details.


Configuring the BSP
-------------------
The BSP needs to be configured for your specific board.  The following
files need to be modified.

include/bsp.h
Change the MOT_162BUG_VEC_ADDRESS define to start of memory for your
board

make/custom/mvme162.cfg
If your board has an MC68040 processor
- change the value of RTEMS_CPU_MODEL
- remove the -msoft-float flag from CPU_CFLAGS



MVME162FX and DMA on the IP bus
-------------------------------

From Eric Vaitl <eric@viasat.com>:

If you have any customers that will be using the 162FX, tell them to 
be careful. The main difference between the 162 and the 162FX is DMA 
on the IP bus. I spent over a month trying to write a DMA HDLC driver 
for GreenSprings IP-MP and couldn't get it to work. I talked to some 
people at GreenSprings, and they agreed that there really is no way to 
get DMA to work unless you know the size of the packets in advance. 
Once the IP2 chip DMA controller is given the character count and 
enabled, it doesn't accept further commands until all of the 
characters have arrived. The only way to terminate a DMA transfer 
prematurely is by raising DMAEND* during the last read. None of the IP 
modules that I know of are currently able to do that. GreenSprings is 
working on the problem, but nothing is going to available for a few 
months. 

Installation
------------
Nothing unique to the MVME162.  It has been incorporated into the
standard release.

Port Description
----------------
This section describes the initial port effort.  There have been 
additions and modifications to the bsp since this was done.
Interestingly, this was the first bsp submitted to the RTEMS project
and the submission offer came out of the blue with no prior
communication with the author. :)

The port was done using already existing ports to the M68020 boards,
DMV152 and MVME136. 

The initial host development system was SUN/Solaris 2.3, and
the cross-development environment consisted of Free Software
Foundation (FSF)'s GNU C compiler (version 2.6), GNU Assembler
(version 2.3) and GNU binary utilities binutils version 2.5.2,
built with m68k as a target. The recent/latest versions of other
GNU programs (flex, make, etc) were also used at the build stage.

In all subdirectories of the RTEMS distribution tree, the directories
mvme136 were duplicated as mvme162.

Essential modifications are detailed below:

- the MVME162-specific hardware registers were described in bsp.h

- timer and clock routines were made to use the MVME162's Tick Timers 1
and 2, respectively

- shared memory support was replaced by stubs for the time being

- console IO was lifted entirely from the DMV152 support code, thanks
to the fact that Z8530 SCC used in DMV152 is upwards compatible with
the Z85230 SCC of the MVME162. (Only the memory mapping of the SCC
registers had to be changed.)

- symbols in several *.s files were prepended with underscores to
comply with the xgcc configuration used (it prepends underscores to all
symbols defined in c code)

- linkcmds file was modified to place the linked code into the memory
configured for the board in use

- bspstart.c was modified as follows:

         monitors_vector_table = (rtems_isr *)0xFFE00000;

was made to point to the power-up location of MVME162 interrupt vector
table.  
     
- The shutdown is a temporary solution. To exit cleanly, it has to disable
all enabled interrupts and restore the board to its power-up status.
Presently this is not done satisfactorily, as a result, the board needs
a hardware reset from the external VMEbus master or from the front
panel to ensure correct operation for subsequent downloads.

Host System
-----------
The VMEbus master used to externally control and download the MVME162
is a FORCE CPU-2CE board running Solaris 2.3. A simple program to load
s-records and start/reset the MVME162 was written. The code is in the
file tools/sload.c

This code depends on the external VMEbus master's vme driver and is
provided as an example, without the Makefile. The bulk of the program
which parses the s-records is courtesy of Kym Newbery,
(8918927y@lux.levels.unisa.edu.au).

In general, apart from x-gcc, the tools most often used while building
RTEMS for MVME162 were: find, grep, diff, and, of course

MVME162 Embedded Controller Programmer's Reference Guide,
Motorola, MVME162PG/D1.

Thanks
------
- to On-Line Applications Research Corporation (OAR) for developing
RTEMS and making it available on a Technology Transfer basis;
- to Joel Sherril, the leader of the RTEMS development group for
stimulating and helpful discussions;
- to Kym Newbery (8918927y@lux.levels.unisa.edu.au) for his s-record
parser;
- to Gerd Truschinski (gt@first.gmd.de) for creating and running the
crossgcc mailing list
- to FSF and Cygnus Support for great free software;

What's new
----------
  - 28.07.95 BSP adjusted to rtems-3.2.0. 
  - Now console driver uses interrupts on receive (ring buffer
    code lifted with thanks from the IDP BSP next door (../idp))
  - both front-panel serial interfaces are supported
  - serious bug in timer interrupts fixed
  - interrupt test tm27 now supported
  
+----------------------------------+-------------------------------+
|  Dr. Mikhail (Misha) Savitski    |  Voice : +46-980-79162        |
|  Software Systems Engineer       |  Fax   : +46-980-79161        |
|  EISCAT Svalbard Radar Project   |  E-mail: mms@eiscathq.irf.se  |
|  EISCAT Scientific Association   |-----------  /\_/\  -----------|
|  Box 812 S-98128 Kiruna, Sweden  |  EIS       { o o }       CAT  |
+----------------------------------+-------oQQQ--(>I<)--QQQo-------+


