summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/uC5282/startup/init5282.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/m68k/uC5282/startup/init5282.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/m68k/uC5282/startup/init5282.c b/c/src/lib/libbsp/m68k/uC5282/startup/init5282.c
new file mode 100644
index 0000000000..969e5f24a8
--- /dev/null
+++ b/c/src/lib/libbsp/m68k/uC5282/startup/init5282.c
@@ -0,0 +1,31 @@
+/*
+ * This is where the real hardware setup is done. A minimal stack
+ * has been provided by the start.S code. No normal C or RTEMS
+ * functions can be called from here.
+ *
+ * This routine is pretty simple for the uC5282 because all the hard
+ * work has been done by the bootstrap dBUG code.
+ */
+
+#include <rtems.h>
+#include <bsp.h>
+
+#define m68k_set_cacr(_cacr) asm volatile ("movec %0,%%cacr" : : "d" (_cacr))
+#define m68k_set_acr0(_acr0) asm volatile ("movec %0,%%acr0" : : "d" (_acr0))
+#define m68k_set_acr1(_acr1) asm volatile ("movec %0,%%acr1" : : "d" (_acr1))
+void *_ColdFire_VBR;
+
+void Init5282 (void)
+{
+ extern void CopyDataClearBSSAndStart (void);
+
+ /*
+ * Set the VBR to point to where the assembly code copied it
+ */
+ m68k_set_vbr(0);
+
+ /*
+ * Copy data, clear BSS and call boot_card()
+ */
+ CopyDataClearBSSAndStart ();
+}