summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/genmcf548x/startup
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-05 17:26:41 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-16 15:15:42 +0100
commit8d2920119b6e14691fc978d8fccd7b0900dcb23f (patch)
tree342931096319ddd2c7bd23b0a0cdb9d8fdbbc3a9 /c/src/lib/libbsp/m68k/genmcf548x/startup
parentbsp/genmcf548x: Add interrupt extension support (diff)
downloadrtems-8d2920119b6e14691fc978d8fccd7b0900dcb23f.tar.bz2
bsp/genmcf548x: Add initial values for INTC_ICRn
According to the manual the application must use unique and non-overlapping level and priority definitions for enabled interrupts.
Diffstat (limited to 'c/src/lib/libbsp/m68k/genmcf548x/startup')
-rw-r--r--c/src/lib/libbsp/m68k/genmcf548x/startup/init548x.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/m68k/genmcf548x/startup/init548x.c b/c/src/lib/libbsp/m68k/genmcf548x/startup/init548x.c
index 3a9d002cf3..1221df4041 100644
--- a/c/src/lib/libbsp/m68k/genmcf548x/startup/init548x.c
+++ b/c/src/lib/libbsp/m68k/genmcf548x/startup/init548x.c
@@ -77,7 +77,9 @@ void mcf548x_init(void);
void mcf548x_init(void)
- {
+{
+ size_t i;
+
#if defined(HAS_LOW_LEVEL_INIT)
/* set XLB arbiter timeouts */
MCF548X_XLB_ADRTO = 0x00000100;
@@ -108,6 +110,12 @@ void mcf548x_init(void)
/* Zero uninitialized data */
memset(bsp_section_bss_begin, 0, (size_t) bsp_section_bss_size);
+
+ for (i = 8; i < RTEMS_ARRAY_SIZE(mcf548x_intc_icr_init_values); ++i) {
+ volatile uint8_t *icr = &MCF548X_INTC_ICR0;
+
+ icr[i] = mcf548x_intc_icr_init_values[i];
+ }
}
/********************************************************************/
#if defined(HAS_LOW_LEVEL_INIT)