summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-05-06 10:59:07 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-05-06 15:06:52 +0200
commite37d57bc8100d5978642b77cc03e46a37cb7f503 (patch)
tree454bd77f2ebb130018be055fe235a07c1ebe3546
parentbsps/arm: Remove superfluous parameter (diff)
downloadrtems-e37d57bc8100d5978642b77cc03e46a37cb7f503.tar.bz2
bsps/arm: Add shared GIC tmtests/tm27 support
-rw-r--r--c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am1
-rw-r--r--c/src/lib/libbsp/arm/realview-pbx-a9/include/tm27.h59
-rw-r--r--c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am4
-rw-r--r--c/src/lib/libbsp/arm/shared/include/arm-gic-tm27.h81
4 files changed, 87 insertions, 58 deletions
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am b/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am
index e1b8741fb0..d8589a3c6f 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am
@@ -39,6 +39,7 @@ include_bsp_HEADERS += ../shared/include/arm-cp15-start.h
include_bsp_HEADERS += ../shared/include/arm-gic.h
include_bsp_HEADERS += ../shared/include/arm-gic-irq.h
include_bsp_HEADERS += ../shared/include/arm-gic-regs.h
+include_bsp_HEADERS += ../shared/include/arm-gic-tm27.h
include_bsp_HEADERS += ../shared/include/arm-pl011.h
include_bsp_HEADERS += ../shared/include/arm-pl011-regs.h
include_bsp_HEADERS += include/irq.h
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/include/tm27.h b/c/src/lib/libbsp/arm/realview-pbx-a9/include/tm27.h
index 2a31e8950d..96ab469033 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/include/tm27.h
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/include/tm27.h
@@ -19,63 +19,6 @@
#ifndef __tm27_h
#define __tm27_h
-#include <assert.h>
-
-#include <bsp.h>
-#include <bsp/irq.h>
-
-#define MUST_WAIT_FOR_INTERRUPT 1
-
-#define RVPBXA9_TM27_IRQ ARM_GIC_IRQ_SGI_13
-
-#define RVPBXA9_TM27_PRIO_LOW 0xfe
-
-#define RVPBXA9_TM27_PRIO_HIGH 0x00
-
-static void Install_tm27_vector(void (*handler)(rtems_vector_number))
-{
- rtems_status_code sc = rtems_interrupt_handler_install(
- RVPBXA9_TM27_IRQ,
- "TM27",
- RTEMS_INTERRUPT_UNIQUE,
- (rtems_interrupt_handler) handler,
- NULL
- );
- assert(sc == RTEMS_SUCCESSFUL);
-
- sc = arm_gic_irq_set_priority(
- RVPBXA9_TM27_IRQ,
- RVPBXA9_TM27_PRIO_LOW
- );
- assert(sc == RTEMS_SUCCESSFUL);
-}
-
-static void Cause_tm27_intr(void)
-{
- rtems_status_code sc = arm_gic_irq_generate_software_irq(
- RVPBXA9_TM27_IRQ,
- ARM_GIC_IRQ_SOFTWARE_IRQ_TO_SELF,
- 0
- );
- assert(sc == RTEMS_SUCCESSFUL);
-}
-
-static void Clear_tm27_intr(void)
-{
- rtems_status_code sc = arm_gic_irq_set_priority(
- RVPBXA9_TM27_IRQ,
- RVPBXA9_TM27_PRIO_LOW
- );
- assert(sc == RTEMS_SUCCESSFUL);
-}
-
-static void Lower_tm27_intr(void)
-{
- rtems_status_code sc = arm_gic_irq_set_priority(
- RVPBXA9_TM27_IRQ,
- RVPBXA9_TM27_PRIO_HIGH
- );
- assert(sc == RTEMS_SUCCESSFUL);
-}
+#include <bsp/arm-gic-tm27.h>
#endif /* __tm27_h */
diff --git a/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am b/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am
index fe641ac0b9..b153c8c8df 100644
--- a/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am
+++ b/c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am
@@ -110,6 +110,10 @@ $(PROJECT_INCLUDE)/bsp/arm-gic-regs.h: ../shared/include/arm-gic-regs.h $(PROJEC
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-gic-regs.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-gic-regs.h
+$(PROJECT_INCLUDE)/bsp/arm-gic-tm27.h: ../shared/include/arm-gic-tm27.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-gic-tm27.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-gic-tm27.h
+
$(PROJECT_INCLUDE)/bsp/arm-pl011.h: ../shared/include/arm-pl011.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/arm-pl011.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/arm-pl011.h
diff --git a/c/src/lib/libbsp/arm/shared/include/arm-gic-tm27.h b/c/src/lib/libbsp/arm/shared/include/arm-gic-tm27.h
new file mode 100644
index 0000000000..45e6c5d616
--- /dev/null
+++ b/c/src/lib/libbsp/arm/shared/include/arm-gic-tm27.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <info@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef _RTEMS_TMTEST27
+#error "This is an RTEMS internal file you must not include directly."
+#endif
+
+#ifndef LIBBSP_ARM_SHARED_ARM_GIC_TM27_H
+#define LIBBSP_ARM_SHARED_ARM_GIC_TM27_H
+
+#include <assert.h>
+
+#include <bsp.h>
+#include <bsp/irq.h>
+
+#define MUST_WAIT_FOR_INTERRUPT 1
+
+#define ARM_GIC_TM27_IRQ ARM_GIC_IRQ_SGI_13
+
+#define ARM_GIC_TM27_PRIO_LOW 0xfe
+
+#define ARM_GIC_TM27_PRIO_HIGH 0x00
+
+static inline void Install_tm27_vector(void (*handler)(rtems_vector_number))
+{
+ rtems_status_code sc = rtems_interrupt_handler_install(
+ ARM_GIC_TM27_IRQ,
+ "TM27",
+ RTEMS_INTERRUPT_UNIQUE,
+ (rtems_interrupt_handler) handler,
+ NULL
+ );
+ assert(sc == RTEMS_SUCCESSFUL);
+
+ sc = arm_gic_irq_set_priority(
+ ARM_GIC_TM27_IRQ,
+ ARM_GIC_TM27_PRIO_LOW
+ );
+ assert(sc == RTEMS_SUCCESSFUL);
+}
+
+static inline void Cause_tm27_intr(void)
+{
+ rtems_status_code sc = arm_gic_irq_generate_software_irq(
+ ARM_GIC_TM27_IRQ,
+ ARM_GIC_IRQ_SOFTWARE_IRQ_TO_SELF,
+ 0
+ );
+ assert(sc == RTEMS_SUCCESSFUL);
+}
+
+static inline void Clear_tm27_intr(void)
+{
+ rtems_status_code sc = arm_gic_irq_set_priority(
+ ARM_GIC_TM27_IRQ,
+ ARM_GIC_TM27_PRIO_LOW
+ );
+ assert(sc == RTEMS_SUCCESSFUL);
+}
+
+static inline void Lower_tm27_intr(void)
+{
+ rtems_status_code sc = arm_gic_irq_set_priority(
+ ARM_GIC_TM27_IRQ,
+ ARM_GIC_TM27_PRIO_HIGH
+ );
+ assert(sc == RTEMS_SUCCESSFUL);
+}
+
+#endif /* LIBBSP_ARM_SHARED_ARM_GIC_TM27_H */