From df49c60c9671e4a28e636964d744c1f59fb6cb68 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 12 Jun 2000 15:00:15 +0000 Subject: Merged from 4.5.0-beta3a --- c/src/lib/libbsp/m68k/mvme167/README | 106 +++++++++++++++++++++++------------ 1 file changed, 71 insertions(+), 35 deletions(-) (limited to 'c/src/lib/libbsp/m68k/mvme167/README') diff --git a/c/src/lib/libbsp/m68k/mvme167/README b/c/src/lib/libbsp/m68k/mvme167/README index aa7e4291ae..dc72a6fc48 100644 --- a/c/src/lib/libbsp/m68k/mvme167/README +++ b/c/src/lib/libbsp/m68k/mvme167/README @@ -2,18 +2,35 @@ # $Id$ # -This is a README file for the MVME167 port of RTEMS 4.0.0. +This is a README file for the MVME167 port of RTEMS 4.5.0. Please send any comments, improvements, or bug reports to: Charles-Antoine Gauthier +charles.gauthier@nrc.ca +or + +Darlene Stewart +Darlene.Stewart@nrc.ca + Software Engineering Group Institute for Information Technology National Research Council of Canada Ottawa, ON, K1A 0R6 Canada -charles.gauthier@iit.nrc.ca + +WARNING: +-------- + +The network driver is currently being worked on. It is somewhat functional, +but it does run out of buffers under certain conditions. The code is +also undergoing a substantial reorganization. Before making any changes, +you should check with us for the availability of updates. + +Note from Joel: The ttcp performance reported is very nice even if the +driver is still early in its life. :) + Disclaimer @@ -43,15 +60,15 @@ Installation Nothing unique to the MVME167. It uses the standard build process for m68k targets. You will need to edit linkcmds to put in the start address of your board. We do TFTP transfers to our target. The mvme167.cfg file -builds only the coff images, which we download to the target, skipping over -the first 0xA8 bytes; Motorola S-records are not generated. Edit this file -if you want S-records. +builds only the ELF images, which we download to the target, skipping +over the first 0x54 bytes; Motorola S-records are not generated. Edit +this file if you want S-records. Port Description Console driver ----------------- +--------------- This BSP includes an termios-capable console driver that supports all four serial ports on the MVME167 model. The RTEMS console, /dev/console, @@ -60,27 +77,30 @@ corresponds to channel 1 in the CD2401. This corresponds to Serial Port do not open /dev/tty00 if you are debugging using 167Bug. The console is initialized with whatever parameters are set up in termios -before it calls the firtOpen driver callback, EXCEPT THAT HARDWARE HANDSHAKING -IS TURNED OFF, i.e. CLOCAL is set in the struct termios c_cflag field. We use -3-wire cables for I/O, and find hardware handshaking a pain. If you enable -hardware handshaking, you must drive CTS* low on the CD2401 for output to -occur. If the port is in the DTE configuration, you must drive the RS-232 CTS -line to space; if the port is in the DCE configuration, you must drive the -RS-232 RTS line to space. - -Limited support is provided for polled terminal I/O. This is used when running -the timing tests. Set the CD2401_POLLED_IO manifest constant to 1 in -rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c to enable polled I/O. -In this case, I/O is done through 167Bug, usually to the Serial Port 1/Console +before it calls the firtOpen driver callback, EXCEPT THAT HARDWARE +HANDSHAKING IS TURNED OFF, i.e. CLOCAL is set in the struct termios +c_cflag field. We use 3-wire cables for I/O, and find hardware handshaking +a pain. If you enable hardware handshaking, you must drive CTS* low on the +CD2401 for output to occur. If the port is in the DTE configuration, you +must drive the RS-232 CTS line to space; if the port is in the DCE +configuration, you must drive the RS-232 RTS line to space. + +Limited support is provided for polled terminal I/O. This is used when +running the timing tests. Set the CD2401_POLLED_IO manifest constant to 1 +in rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c to enable polled +I/O. In this case, I/O is done through 167Bug, usually to the Serial Port +1/Console port. Interrupt-driven and polled I/O cannot be mixed in the +MVME167. + Floating-point The MC68040 has a built-in FPU. This FPU does not implement all the -instruction of the MC68881/MC68882 floating-point coprocessors in hardware. -The -m68040 compilation options instructs gcc to not generate the missing -instructions. All of the RTEMS code is built this way. Some of the missing -functionality must be supplied by external libraries. The required functions -are part of libgcc.a. +instruction of the MC68881/MC68882 floating-point coprocessors in +hardware. The -m68040 compilation options instructs gcc to not generate +the missing instructions. All of the RTEMS code is built this way. Some +of the missing functionality must be supplied by external libraries. The +required functions are part of libgcc.a. The issue gets complicated because libc, libm and libgcc do not come as m68040-specific variants. The default variants of these libraries are for the @@ -127,9 +147,22 @@ mvme167.cfg that redefine which variants of libc, libm and libgcc to link against. -Miscellaneous +Cache Control and Memory Mapping + +If Jumper J1-7 is installed, the data cache will be turned on. If Jumper +J1-6 is installed, the instruction cache will be turned on. Removing the +jumper causes the corresponding cache to be left disabled. + +If Jumper J1-5 is installed, the data cache will be placed in copyback +mode. If it is removed, it will be placed in writethrough mode. + +Currently, block address translation is set up to map the virtual +0x00000000--0x7FFFFFFF to the physical range 0x00000000--0x7FFFFFFF. The +port relies on the hardware to raise exceptions when addressing +non-existent memory. Caching is not controllable on a finer grain. + -port. Interrupt-driven and polled I/O cannot be mixed in the MVME167. +Miscellaneous The timer and clock drivers were patterned after the MVME162 and MVME152 ports. @@ -137,8 +170,6 @@ ports. At this time, we do not have an MPCI layer for the MVME167. We are planning to write one. -The port does not have a network driver. - This port supplies its own fatal_error_handler, which attempts to print some error message through 167Bug (on the Serial Port 1/Console on the MVME712M). @@ -153,17 +184,20 @@ tools were used: m68k-rtems target; - GNU binutils 2.9.1 configured for a powerpc-ibm-aix4.2.0.0 host and m68k-rtems target; + It was also tested on a Pentium II-based PC running Windows NT Workstation 4.0 -and the Cygnus Cygwin32 release b20.1 environment, witht he following tools: +and the Cygnus Cygwin32 release b20.1 environment, with the following tools: - EGCS 1.1.1 configured for a i586-cygwin32 host and m68k-rtems target; - GNU binutils 2.9.4 configured for a i586-cygwin32 host and m68k-rtems target; - - Cygnus newlib 1.8.0 with RTEMS 4.0.0 patches. With the latter environment, be patient; builds take a very looong time... - - Cygnus newlib 1.8.0 with RTEMS 4.0.0 patches. +Current development is done on a Pentium III PC running RedHat Linux 6.1. +At the time this README was composed, the latest working compiler that was +used successfully was gcc version 2.96 20000213 (experimental). Both the C +and C++ compilers were working. Binutils 2.9.1 are used. Known Problems @@ -202,6 +236,11 @@ blown. This is one case were overwritting the first or last 16 bytes of the stack does cause problems (but hey, an exception occurred, which is better than propagating the error). +In the stackchk test, an access fault exception is raised after the stack is +blown. This is one case were overwritting the first or last 16 bytes of the +stack does cause problems (but hey, an exception occurred, which is better +than propagating the error). + When using interrupt-driven I/O, psx08 produces all the expected output, but it does not return control to 167Bug. Is this test supposed to work with interrupt-driven console I/O? @@ -210,6 +249,8 @@ interrupt-driven console I/O? What's new ---------- +Support for Java is being actively worked on. + Thanks ------ @@ -460,8 +501,3 @@ Timing tests: rtems_rate_monotonic_period: obtain status 13 -Network tests: - Network driver is not implemented. - - - -- cgit v1.2.3