[rtems commit] bsps/arm: Add shared GIC tmtests/tm27 support

Sebastian Huber sebh at rtems.org
Mon May 6 13:38:02 UTC 2013


Module:    rtems
Branch:    master
Commit:    e37d57bc8100d5978642b77cc03e46a37cb7f503
Changeset: http://git.rtems.org/rtems/commit/?id=e37d57bc8100d5978642b77cc03e46a37cb7f503

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon May  6 10:59:07 2013 +0200

bsps/arm: Add shared GIC tmtests/tm27 support

---

 c/src/lib/libbsp/arm/realview-pbx-a9/Makefile.am   |    1 +
 .../lib/libbsp/arm/realview-pbx-a9/include/tm27.h  |   59 +--------------
 c/src/lib/libbsp/arm/realview-pbx-a9/preinstall.am |    4 +
 c/src/lib/libbsp/arm/shared/include/arm-gic-tm27.h |   81 ++++++++++++++++++++
 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 e1b8741..d8589a3 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 2a31e89..96ab469 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 fe641ac..b153c8c 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 0000000..45e6c5d
--- /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 at 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 */




More information about the vc mailing list