summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/gen68360/startup/init68360.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-01 15:25:33 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-01 15:25:33 +0000
commit996a9cb4e2a7d2d9ae43b8e3eb531a81ccefe690 (patch)
tree4d342614395f1c4fc7c3128a92212cef2e31e69c /c/src/lib/libbsp/m68k/gen68360/startup/init68360.c
parentUpdates from Eric Norum to use the mcpu32 flags and fix comments. (diff)
downloadrtems-996a9cb4e2a7d2d9ae43b8e3eb531a81ccefe690.tar.bz2
Updates from Eric Norum.
Diffstat (limited to 'c/src/lib/libbsp/m68k/gen68360/startup/init68360.c')
-rw-r--r--c/src/lib/libbsp/m68k/gen68360/startup/init68360.c39
1 files changed, 28 insertions, 11 deletions
diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/init68360.c b/c/src/lib/libbsp/m68k/gen68360/startup/init68360.c
index a061a027e0..d0764453a8 100644
--- a/c/src/lib/libbsp/m68k/gen68360/startup/init68360.c
+++ b/c/src/lib/libbsp/m68k/gen68360/startup/init68360.c
@@ -1,5 +1,5 @@
/*
- * Initialize 68360 hardware
+ * MC68360 support routines
*
* W. Eric Norum
* Saskatchewan Accelerator Laboratory
@@ -12,15 +12,33 @@
#include <rtems.h>
#include <bsp.h>
-#include "m68360.h"
+#include <m68360.h>
-void
-_Init68360 (void)
+/*
+ * Send a command to the CPM RISC processer
+ */
+
+void M360ExecuteRISC(rtems_unsigned16 command)
+{
+ rtems_unsigned16 sr;
+
+ m68k_disable_interrupts (sr);
+ while (m360.cr & M360_CR_FLG)
+ continue;
+ m360.cr = command | M360_CR_FLG;
+ m68k_enable_interrupts (sr);
+}
+
+/*
+ * Initialize MC68360
+ */
+
+void _Init68360 (void)
{
int i;
extern void *_RomBase, *_RamBase;
m68k_isr_entry *vbr;
- extern void _ClearBSSAndStart (void);
+ extern void _CopyDataClearBSSAndStart (void);
/*
* Step 6: Is this a power-up reset?
@@ -64,7 +82,7 @@ _Init68360 (void)
*((long *)((char *)&m360 + 0xE00 + i)) = 0;
*((long *)((char *)&m360 + 0xF00 + i)) = 0;
}
- m360.cr = M360_CR_RST | M360_CR_FLG;
+ M360ExecuteRISC (M360_CR_RST);
/*
* Step 10: Write PEPAR
@@ -129,11 +147,10 @@ _Init68360 (void)
/*
* Step 13: Copy the exception vector table to system RAM
*/
-
- m68k_get_vbr( vbr );
+ m68k_get_vbr (vbr);
for (i = 0; i < 256; ++i)
M68Kvec[i] = vbr[i];
- m68k_set_vbr( M68Kvec );
+ m68k_set_vbr (M68Kvec);
/*
* Step 14: More system initialization
@@ -167,7 +184,7 @@ _Init68360 (void)
m360.mcr = 0x4C7F;
/*
- * Clear BSS, switch stacks and call main()
+ * Copy data, clear BSS, switch stacks and call main()
*/
- _ClearBSSAndStart ();
+ _CopyDataClearBSSAndStart ();
}