-- -- 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. -- -- $Id$ -- MVME162 Models -------------- MVME162 model uses 68040. MVME162FX model uses XXX. MVME162LX model uses 68LC040. Do all models have 2 ZCC chips for a total of 4 serial ports? Extended Console Driver ----------------------- This BSP includes an extended console driver which supports all 4 serial ports on the MVME162LX model. It was submitted by Katsutoshi Shibuya . The application can choose this driver by using "CONSOLEX_DRIVER_TABLE_ENTRY" in the driver table definition, in place of "CONSOLE_DRIVER_TABLE_ENTRY". See consolex/cTest.c for an example and consolex/README for more information. This driver is only built for the mvme162lx bsp model. MVME162FX and DMA on the IP bus ------------------------------- From Eric Vaitl : 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 = (m68k_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-------+