summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lm3s69xx/include
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-09-24 13:23:42 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-09-24 13:23:42 +0000
commite263c1607a12b3df0ef0eaf10477eaabd3e763a7 (patch)
treeafc29093490341c4d2a270d1ccc6edcadb51e8b0 /c/src/lib/libbsp/arm/lm3s69xx/include
parent2011-09-24 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-e263c1607a12b3df0ef0eaf10477eaabd3e763a7.tar.bz2
2011-09-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
* 0001-Fixed-interrupt-handling-for-ARMv7M.patch, 0002-Fixed-system-handler-priority-register-access.patch, 0003-Disable-priority_mask-unused-for-NVIC.patch, 0004-Typo.patch, 0005-Evil-hack-for-BASEPRI-BASEPRI_MAX.patch, 0006-Evil-hack-to-increase-the-RAM-size.patch, bsp_specs, ChangeLog, clock/clock-config.c, configure.ac, console/console-config.c, console/uart.c, .cvsignore, include/bsp.h, include/.cvsignore, include/irq.h, include/lm3s69xx.h, include/uart.h, irq/irq.c, make/custom/lm3s6965.cfg, make/custom/lm3s69xx.inc, Makefile.am, README, start/start.S, startup/bspreset.c, startup/bspstart.c, startup/bspstarthook.c, startup/linkcmds.lm3s6965, timer/timer.c: New files.
Diffstat (limited to 'c/src/lib/libbsp/arm/lm3s69xx/include')
-rw-r--r--c/src/lib/libbsp/arm/lm3s69xx/include/.cvsignore4
-rw-r--r--c/src/lib/libbsp/arm/lm3s69xx/include/bsp.h38
-rw-r--r--c/src/lib/libbsp/arm/lm3s69xx/include/irq.h81
-rw-r--r--c/src/lib/libbsp/arm/lm3s69xx/include/lm3s69xx.h30
-rw-r--r--c/src/lib/libbsp/arm/lm3s69xx/include/uart.h86
5 files changed, 239 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/lm3s69xx/include/.cvsignore b/c/src/lib/libbsp/arm/lm3s69xx/include/.cvsignore
new file mode 100644
index 0000000000..a83132db41
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lm3s69xx/include/.cvsignore
@@ -0,0 +1,4 @@
+stamp-h
+stamp-h.in
+bspopts.h
+bspopts.h.in
diff --git a/c/src/lib/libbsp/arm/lm3s69xx/include/bsp.h b/c/src/lib/libbsp/arm/lm3s69xx/include/bsp.h
new file mode 100644
index 0000000000..2304544bfb
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lm3s69xx/include/bsp.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2011 Sebastian Huber. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@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 LIBBSP_ARM_LM3S69XX_BSP_H
+#define LIBBSP_ARM_LM3S69XX_BSP_H
+
+#include <bspopts.h>
+
+#include <rtems.h>
+#include <rtems/console.h>
+#include <rtems/clockdrv.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define BSP_FEATURE_IRQ_EXTENSION
+
+#ifndef ASM
+
+#endif /* ASM */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_ARM_LM3S69XX_BSP_H */
diff --git a/c/src/lib/libbsp/arm/lm3s69xx/include/irq.h b/c/src/lib/libbsp/arm/lm3s69xx/include/irq.h
new file mode 100644
index 0000000000..b6914e287a
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lm3s69xx/include/irq.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2011 Sebastian Huber. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@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 LIBBSP_ARM_LM3S69XX_IRQ_H
+#define LIBBSP_ARM_LM3S69XX_IRQ_H
+
+#ifndef ASM
+
+#include <rtems.h>
+#include <rtems/irq.h>
+#include <rtems/irq-extension.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* ASM */
+
+#define LM3S69XX_IRQ_GPIO_PORT_A 16
+#define LM3S69XX_IRQ_GPIO_PORT_B 17
+#define LM3S69XX_IRQ_GPIO_PORT_C 18
+#define LM3S69XX_IRQ_GPIO_PORT_D 19
+#define LM3S69XX_IRQ_GPIO_PORT_E 20
+#define LM3S69XX_IRQ_UART_0 21
+#define LM3S69XX_IRQ_UART_1 22
+#define LM3S69XX_IRQ_SSI_0 23
+#define LM3S69XX_IRQ_I2C_0 24
+#define LM3S69XX_IRQ_PWM_GENERATOR_0 26
+#define LM3S69XX_IRQ_PWM_GENERATOR_1 27
+#define LM3S69XX_IRQ_PWM_GENERATOR_2 28
+#define LM3S69XX_IRQ_QEI_0 29
+#define LM3S69XX_IRQ_ADC0_SEQUENCE_0 30
+#define LM3S69XX_IRQ_ADC0_SEQUENCE_1 31
+#define LM3S69XX_IRQ_ADC0_SEQUENCE_2 32
+#define LM3S69XX_IRQ_ADC0_SEQUENCE_3 33
+#define LM3S69XX_IRQ_WATCHDOG_TIMER_0 34
+#define LM3S69XX_IRQ_TIMER_0_A 35
+#define LM3S69XX_IRQ_TIMER_0_B 36
+#define LM3S69XX_IRQ_TIMER_1_A 37
+#define LM3S69XX_IRQ_TIMER_1_B 38
+#define LM3S69XX_IRQ_TIMER_2_A 39
+#define LM3S69XX_IRQ_TIMER_2_B 40
+#define LM3S69XX_IRQ_ANALOG_COMPARATOR_0 41
+#define LM3S69XX_IRQ_ANALOG_COMPARATOR_1 42
+#define LM3S69XX_IRQ_SYSTEM_CONTROL 44
+#define LM3S69XX_IRQ_FLASH_MEMORY_CONTROL 45
+#define LM3S69XX_IRQ_GPIO_PORT_F 46
+#define LM3S69XX_IRQ_GPIO PORT_G 47
+#define LM3S69XX_IRQ_UART_2 49
+#define LM3S69XX_IRQ_TIMER_3_A 51
+#define LM3S69XX_IRQ_TIMER_3_B 52
+#define LM3S69XX_IRQ_I2C_1 53
+#define LM3S69XX_IRQ_QEI_1 54
+#define LM3S69XX_IRQ_ETHERNET_CONTROLLER 58
+#define LM3S69XX_IRQ_HIBERNATION_MODULE 59
+
+#define LM3S69XX_IRQ_PRIORITY_VALUE_MIN 0
+#define LM3S69XX_IRQ_PRIORITY_VALUE_MAX 7
+#define LM3S69XX_IRQ_PRIORITY_COUNT (LM3S69XX_IRQ_PRIORITY_VALUE_MAX + 1)
+#define LM3S69XX_IRQ_PRIORITY_HIGHEST LM3S69XX_IRQ_PRIORITY_VALUE_MIN
+#define LM3S69XX_IRQ_PRIORITY_LOWEST LM3S69XX_IRQ_PRIORITY_VALUE_MAX
+
+#define BSP_INTERRUPT_VECTOR_MIN 0
+#define BSP_INTERRUPT_VECTOR_MAX 59
+
+#endif /* LIBBSP_ARM_LM3S69XX_IRQ_H */
diff --git a/c/src/lib/libbsp/arm/lm3s69xx/include/lm3s69xx.h b/c/src/lib/libbsp/arm/lm3s69xx/include/lm3s69xx.h
new file mode 100644
index 0000000000..5f66b7e746
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lm3s69xx/include/lm3s69xx.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2011 Sebastian Huber. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@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 LIBBSP_ARM_LM3S69XX_LM3S69XX_H
+#define LIBBSP_ARM_LM3S69XX_LM3S69XX_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#define LM3S69XX_UART_0_BASE 0x4000c000
+#define LM3S69XX_UART_1_BASE 0x4000d000
+#define LM3S69XX_UART_2_BASE 0x4000e000
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_ARM_LM3S69XX_LM3S69XX_H */
diff --git a/c/src/lib/libbsp/arm/lm3s69xx/include/uart.h b/c/src/lib/libbsp/arm/lm3s69xx/include/uart.h
new file mode 100644
index 0000000000..222a2dbbbd
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lm3s69xx/include/uart.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2011 Sebastian Huber. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@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 LIBBSP_ARM_LM3S69XX_UART_H
+#define LIBBSP_ARM_LM3S69XX_UART_H
+
+#include <libchip/serial.h>
+#include <bsp/utility.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+typedef struct {
+#define UARTDR_OE BSP_BIT32(11)
+#define UARTDR_BE BSP_BIT32(10)
+#define UARTDR_PE BSP_BIT32(9)
+#define UARTDR_FE BSP_BIT32(8)
+#define UARTDR_DATA(val) BSP_FLD32(val, 0, 7)
+ uint32_t dr;
+
+ uint32_t rsr_ecr;
+ uint32_t reserved [4];
+
+#define UARTFR_TXFE BSP_BIT32(7)
+#define UARTFR_RXFF BSP_BIT32(6)
+#define UARTFR_TXFF BSP_BIT32(5)
+#define UARTFR_RXFE BSP_BIT32(4)
+#define UARTFR_BUSY BSP_BIT32(3)
+ uint32_t fr;
+ uint32_t ilpr;
+ uint32_t ibrd;
+ uint32_t fbrd;
+
+#define UARTLCRH_SPS BSP_BIT32(7)
+#define UARTLCRH_WLEN(val) BSP_FLD32(val, 5, 6)
+#define UARTLCRH_FEN BSP_BIT32(4)
+#define UARTLCRH_STP2 BSP_BIT32(3)
+#define UARTLCRH_EPS BSP_BIT32(2)
+#define UARTLCRH_PEN BSP_BIT32(1)
+#define UARTLCRH_BRK BSP_BIT32(0)
+ uint32_t lcrh;
+
+#define UARTCTL_RXE BSP_BIT32(9)
+#define UARTCTL_TXE BSP_BIT32(8)
+#define UARTCTL_LBE BSP_BIT32(7)
+#define UARTCTL_SIRLP BSP_BIT32(2)
+#define UARTCTL_SIREN BSP_BIT32(1)
+#define UARTCTL_UARTEN BSP_BIT32(0)
+ uint32_t ctl;
+
+#define UARTIFLS_RXIFLSEL(val) BSP_FLD32(val, 3, 5)
+#define UARTIFLS_TXIFLSEL(val) BSP_FLD32(val, 0, 2)
+ uint32_t ifls;
+
+#define UARTI_OE BSP_BIT32(10)
+#define UARTI_BE BSP_BIT32(9)
+#define UARTI_PE BSP_BIT32(8)
+#define UARTI_FE BSP_BIT32(7)
+#define UARTI_RT BSP_BIT32(6)
+#define UARTI_TX BSP_BIT32(5)
+#define UARTI_RX BSP_BIT32(4)
+ uint32_t im;
+ uint32_t ris;
+ uint32_t mis;
+ uint32_t icr;
+} lm3s69xx_uart;
+
+extern console_fns lm3s69xx_uart_fns;
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_ARM_LM3S69XX_UART_H */