diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-09-24 13:23:42 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-09-24 13:23:42 +0000 |
commit | e263c1607a12b3df0ef0eaf10477eaabd3e763a7 (patch) | |
tree | afc29093490341c4d2a270d1ccc6edcadb51e8b0 /c/src/lib/libbsp/arm/lm3s69xx/include | |
parent | 2011-09-24 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-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/.cvsignore | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lm3s69xx/include/bsp.h | 38 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lm3s69xx/include/irq.h | 81 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lm3s69xx/include/lm3s69xx.h | 30 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lm3s69xx/include/uart.h | 86 |
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 */ |