summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/mvme162
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-12-20 15:39:19 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-12-20 15:39:19 +0000
commit5c491aef41558df022032b543d826ef4e49493b5 (patch)
tree248c4d31610a83b98c65dc26fb6a9b54b9db77e1 /c/src/lib/libbsp/m68k/mvme162
parentinitial history lost in disk crash (diff)
downloadrtems-5c491aef41558df022032b543d826ef4e49493b5.tar.bz2
changes remerged after lost in disk crash -- recovered from snapshot, partially recovered working tree, etc
Diffstat (limited to 'c/src/lib/libbsp/m68k/mvme162')
-rw-r--r--c/src/lib/libbsp/m68k/mvme162/README19
-rw-r--r--c/src/lib/libbsp/m68k/mvme162/include/bsp.h14
-rw-r--r--c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c2
-rw-r--r--c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c2
4 files changed, 33 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/m68k/mvme162/README b/c/src/lib/libbsp/m68k/mvme162/README
index 4f4a263722..af6082db21 100644
--- a/c/src/lib/libbsp/m68k/mvme162/README
+++ b/c/src/lib/libbsp/m68k/mvme162/README
@@ -28,6 +28,25 @@ any case I am ready to answer questions regarding the port and intend
to follow the future RTEMS versions. I will do my best to provide
whatever support I can afford time-wise.
+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
diff --git a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h b/c/src/lib/libbsp/m68k/mvme162/include/bsp.h
index 54e74da532..37b16cb69b 100644
--- a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h
+++ b/c/src/lib/libbsp/m68k/mvme162/include/bsp.h
@@ -1,6 +1,6 @@
/* bsp.h
*
- * This include file contains all MVME162 board IO definitions.
+ * This include file contains all MVME162fx board IO definitions.
*
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
* On-Line Applications Research Corporation (OAR).
@@ -165,6 +165,13 @@ typedef volatile struct mcchip_regs {
* Prototypes for the low-level serial io are also included here,
* because such stuff is bsp-specific (yet). The function bodies
* are in console.c
+ *
+ * NOTE from Eric Vaitl <evaitl@viasat.com>:
+ *
+ * I dropped RTEMS into a 162FX today (the MVME162-513). The 162FX has a
+ * bug in the MC2 chip (revision 1) such that the SCC data register is
+ * not accessible, it has to be accessed indirectly through the SCC
+ * control register.
*/
enum {portB, portA};
@@ -190,10 +197,11 @@ typedef volatile struct scc_regs {
#define ZREAD0(port) (scc[port].csr)
#define ZREAD(port, n) (ZWRITE0(port, n), (scc[port].csr))
-#define ZREADD(port) (scc[port].buf)
+#define ZREADD(port) (scc[port].csr=0x08, scc[port].csr )
#define ZWRITE(port, n, v) (ZWRITE0(port, n), ZWRITE0(port, v))
-#define ZWRITED(port, v) (scc[port].buf = (unsigned char)(v))
+#define ZWRITED(port, v) (scc[port].csr = 0x08, \
+ scc[port].csr = (unsigned char)(v))
/*----------------------------------------------------------------*/
/*
diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c b/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c
index 215a53cc46..8c8497aaf5 100644
--- a/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c
+++ b/c/src/lib/libbsp/m68k/mvme162/startup/bspclean.c
@@ -28,6 +28,8 @@ void bsp_return_to_monitor_trap()
{
extern void start( void );
+ page_table_teardown();
+
lcsr->intr_ena = 0; /* disable interrupts */
m68k_set_vbr(0xFFE00000); /* restore 162Bug vectors */
asm volatile( "trap #15" ); /* trap to 162Bug */
diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c
index 211ce19032..c862548700 100644
--- a/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c
+++ b/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c
@@ -188,7 +188,7 @@ int main(
lcsr->vector_base = (VBR0 << 28) | (VBR1 << 24);
- m68k_enable_caching();
+ page_table_init();
/*
* we only use a hook to get the C library initialized.