summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/tms570
diff options
context:
space:
mode:
authorMartin Galvan <martin.galvan@tallertechnologies.com>2015-02-26 17:31:27 -0300
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-02-27 12:05:36 +0100
commit991fdb330be81c5cfb47f67fd032569809db6c41 (patch)
tree5368daedc8eba6ec32129d49e747bdd38c23eab0 /c/src/lib/libbsp/arm/tms570
parentARM: Fix _ARMV4_Exception_fiq_default (diff)
downloadrtems-991fdb330be81c5cfb47f67fd032569809db6c41.tar.bz2
ARM: Add BSP_START_NEEDS_REGISTER_INITIALIZATION
This patch adds the macro BSP_START_NEEDS_REGISTER_INITIALIZATION and three hooks for BSP-specific register init code to arm/shared/start.S. Said hooks are bsp_start_init_registers_core (intended for initializing the ARM core registers), bsp_start_init_registers_banked_fiq (for the FIQ mode banked registers) and bsp_start_init_registers_vfp (for the FPU registers). BSP_START_NEEDS_REGISTER_INITIALIZATION would be defined in a BSP's configure.ac (so that it appears in its bspopts.h). This patch also adds the register init code required by the TMS570. We've tested it with the tms570ls3137_hdk.cfg config and it works fine.
Diffstat (limited to 'c/src/lib/libbsp/arm/tms570')
-rw-r--r--c/src/lib/libbsp/arm/tms570/Makefile.am1
-rw-r--r--c/src/lib/libbsp/arm/tms570/configure.ac5
2 files changed, 6 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/tms570/Makefile.am b/c/src/lib/libbsp/arm/tms570/Makefile.am
index bf3465db66..6cad609480 100644
--- a/c/src/lib/libbsp/arm/tms570/Makefile.am
+++ b/c/src/lib/libbsp/arm/tms570/Makefile.am
@@ -82,6 +82,7 @@ libbsp_a_SOURCES += ../../shared/cpucounterdiff.c
# Startup
libbsp_a_SOURCES += ../shared/startup/bsp-start-memcpy.S
+libbsp_a_SOURCES += ../shared/startup/bsp-start-init-registers.S
libbsp_a_SOURCES += ../../shared/bsppretaskinghook.c
libbsp_a_SOURCES += startup/bspreset.c
libbsp_a_SOURCES += startup/bspstart.c
diff --git a/c/src/lib/libbsp/arm/tms570/configure.ac b/c/src/lib/libbsp/arm/tms570/configure.ac
index cefe50a5be..e06d4e4047 100644
--- a/c/src/lib/libbsp/arm/tms570/configure.ac
+++ b/c/src/lib/libbsp/arm/tms570/configure.ac
@@ -36,6 +36,11 @@ RTEMS_BSPOPTS_SET([BSP_MINIMUM_TASK_STACK_SIZE],[*],[1024])
RTEMS_BSPOPTS_HELP([BSP_MINIMUM_TASK_STACK_SIZE],[Suggested minimum task stack
size in bytes])
+RTEMS_BSPOPTS_SET([BSP_START_NEEDS_REGISTER_INITIALIZATION],[*],[1])
+RTEMS_BSPOPTS_HELP([BSP_START_NEEDS_REGISTER_INITIALIZATION],
+ [The TMS570 needs to have the registers of its CPU initialized
+ to avoid CCMR4F errors])
+
RTEMS_BSPOPTS_SET([TMS570_OSCILLATOR_MAIN],[*],[12000000U])
RTEMS_BSPOPTS_HELP([TMS570_OSCILLATOR_MAIN],[main oscillator frequency in Hz])