RTEMS 6.1-rc5
|
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 (jsher.nosp@m.ril@.nosp@m.redst.nosp@m.one..nosp@m.army..nosp@m.mil) after inclusion in the standard release.
There are three different models of the MVME162 board. There are many variations within each model.
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.
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
From Eric Vaitl eric@.nosp@m.vias.nosp@m.at.co.nosp@m.m:
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.
Nothing unique to the MVME162. It has been incorporated into the standard release.
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:
monitors_vector_table = (rtems_isr *)0xFFE00000;was made to point to the power-up location of MVME162 interrupt vector table.
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, (89189.nosp@m.27y@.nosp@m.lux.l.nosp@m.evel.nosp@m.s.uni.nosp@m.sa.e.nosp@m.du.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.
There are three different models of the MVME162 board with many variations within each model.
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 following tables for details.
o MVME162 Embedded Controller User's Manual (MVME162/D2)
o One EPROM socket o 8Kx8 NVRAM/TOD clock o Two serial ports o 1MB Flash memory o Four MVIP Industry Pack interfaces o One or two DRAM/SRAM mezzanine memory boards
o MVME162FX Data Sheet o MVME162FX Embedded Controller Installation and Use (V162FXA/IH3) o MVME162FX Embedded Controller Programmer's Reference Guide (V162FXA/PG1) o MVME162FX 400/500-Series VME Embedded Controller Installation and Use (V162FXA/IH4) Edition of March 2000\Uffffffff o V162FXA/LT2, November 1995
o One EPROM socket o 8Kx8 NVRAM/TOD clock o Two serial ports o 1MB Flash memory with 162Bug installed o 512KB SRAM with battery backup o Four IndustryPack interfaces o One or two DRAM/SRAM mezzanine memory boards
Uses MC2 Chip, IP2 Chip, 4MB or 12MB mezzanine DRAM board
o Supplement to MVME162LX Embedded Controller Installation Guide (MVME162LXIG/D1A1) February 1995 o MVME162LX Embedded Controller Data Sheet o MVME162LX 200/300 Series Embedded Controller Programmer's Reference Guide (V162LX2-3A/PG2) o MVME162LX 200/300 Series Embedded Controller Installation and Use (V162LX2-3A/IH3) o MVME162LX 700/800 Series Embedded Controller Installation and Use (V162-7A/IH1) o MVME162LX 700/800 Series Embedded Controller Installation and Use (V162-7A/IH2)
o One EPROM socket o 8Kx8 NVRAM/TOD clock o 4 serial ports EIA-232-D DTE (unless otherwise noted) o 1MB Flash o 2 IP sites (unless otherwise noted)
MVME162-202 4MB (non-stacking) MVME162-203 16MB ECC (non-stacking) MVME162-204 16MB ECC (stacking) MVME162-207 4MB ECC (non-stakcing) MVME162-208 4MB ECC (stacking) MVME162-209 8MB ECC (non-stacking) MVME162-210 8MB ECC (stacking) MVME162-211 32MB ECC (non-stacking) MVME162-212 32MB ECC (stacking)