summaryrefslogtreecommitdiffstats
path: root/bsps/arm/edb7312
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 10:35:35 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 13:52:14 +0200
commit99648958668d3a33ee57974479b36201fe303f34 (patch)
tree6f27ea790e2823c6156e71219a4f54680263fac6 /bsps/arm/edb7312
parentbsps: Move start files to bsps (diff)
downloadrtems-99648958668d3a33ee57974479b36201fe303f34.tar.bz2
bsps: Move startup files to bsps
Adjust build support files to new directory layout. This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'bsps/arm/edb7312')
-rw-r--r--bsps/arm/edb7312/start/bsp_specs9
-rw-r--r--bsps/arm/edb7312/start/bspreset.c22
-rw-r--r--bsps/arm/edb7312/start/bspstart.c45
-rw-r--r--bsps/arm/edb7312/start/linkcmds25
4 files changed, 101 insertions, 0 deletions
diff --git a/bsps/arm/edb7312/start/bsp_specs b/bsps/arm/edb7312/start/bsp_specs
new file mode 100644
index 0000000000..47dd31d46b
--- /dev/null
+++ b/bsps/arm/edb7312/start/bsp_specs
@@ -0,0 +1,9 @@
+%rename endfile old_endfile
+%rename startfile old_startfile
+
+*startfile:
+%{!qrtems: %(old_startfile)} \
+%{!nostdlib: %{qrtems: crti.o%s crtbegin.o%s}}
+
+*endfile:
+%{!qrtems: %(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s}
diff --git a/bsps/arm/edb7312/start/bspreset.c b/bsps/arm/edb7312/start/bspreset.c
new file mode 100644
index 0000000000..436bdf09e4
--- /dev/null
+++ b/bsps/arm/edb7312/start/bspreset.c
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2002 by Jay Monkman <jtm@smoothsmoothie.com>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#include <bsp.h>
+#include <bsp/bootcard.h>
+#include <ep7312.h>
+
+void bsp_reset(void)
+{
+#if ON_SKYEYE == 1
+ #define SKYEYE_MAGIC_ADDRESS (*(volatile unsigned int *)(0xb0000000))
+
+ SKYEYE_MAGIC_ADDRESS = 0xff;
+#else
+ __asm__ volatile ("b _start");
+#endif
+}
diff --git a/bsps/arm/edb7312/start/bspstart.c b/bsps/arm/edb7312/start/bspstart.c
new file mode 100644
index 0000000000..0f9c64d2d8
--- /dev/null
+++ b/bsps/arm/edb7312/start/bspstart.c
@@ -0,0 +1,45 @@
+/*
+ * Cirrus EP7312 Startup code
+ */
+
+/*
+ * Copyright (c) 2002 by Jay Monkman <jtm@smoothsmoothie.com>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#include <bsp.h>
+#include <bsp/irq-generic.h>
+#include <ep7312.h>
+#include <uart.h>
+
+/*
+ * NAME: bsp_start_default - BSP initialization function
+ *
+ * This function is called before RTEMS is initialized
+ * This function also configures the CPU's memory protection unit.
+ *
+ *
+ * RESTRICTIONS/LIMITATIONS:
+ * Since RTEMS is not configured, no RTEMS functions can be called.
+ *
+ */
+static void bsp_start_default( void )
+{
+ /* disable interrupts */
+ *EP7312_INTMR1 = 0;
+ *EP7312_INTMR2 = 0;
+
+ /*
+ * Init rtems interrupt management
+ */
+ bsp_interrupt_initialize();
+} /* bsp_start */
+
+/*
+ * By making this a weak alias for bsp_start_default, a brave soul
+ * can override the actual bsp_start routine used.
+ */
+void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default")));
diff --git a/bsps/arm/edb7312/start/linkcmds b/bsps/arm/edb7312/start/linkcmds
new file mode 100644
index 0000000000..a0afc0ad5e
--- /dev/null
+++ b/bsps/arm/edb7312/start/linkcmds
@@ -0,0 +1,25 @@
+MEMORY {
+ SDRAM : ORIGIN = 0x00000000, LENGTH = 16M
+}
+
+REGION_ALIAS ("REGION_START", SDRAM);
+REGION_ALIAS ("REGION_VECTOR", SDRAM);
+REGION_ALIAS ("REGION_TEXT", SDRAM);
+REGION_ALIAS ("REGION_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_RODATA", SDRAM);
+REGION_ALIAS ("REGION_RODATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_DATA", SDRAM);
+REGION_ALIAS ("REGION_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT", SDRAM);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA", SDRAM);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
+REGION_ALIAS ("REGION_BSS", SDRAM);
+REGION_ALIAS ("REGION_WORK", SDRAM);
+REGION_ALIAS ("REGION_STACK", SDRAM);
+REGION_ALIAS ("REGION_NOCACHE", SDRAM);
+REGION_ALIAS ("REGION_NOCACHE_LOAD", SDRAM);
+
+bsp_vector_table_in_start_section = 1;
+
+INCLUDE linkcmds.armv4