diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-05-01 15:25:33 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-05-01 15:25:33 +0000 |
commit | 996a9cb4e2a7d2d9ae43b8e3eb531a81ccefe690 (patch) | |
tree | 4d342614395f1c4fc7c3128a92212cef2e31e69c /c/src/lib/libbsp/m68k/gen68360/startup/init68360.c | |
parent | Updates from Eric Norum to use the mcpu32 flags and fix comments. (diff) | |
download | rtems-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.c | 39 |
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 (); } |