From e263c1607a12b3df0ef0eaf10477eaabd3e763a7 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Sat, 24 Sep 2011 13:23:42 +0000 Subject: 2011-09-24 Sebastian Huber * 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. --- c/src/lib/libbsp/arm/lm3s69xx/include/.cvsignore | 4 ++ c/src/lib/libbsp/arm/lm3s69xx/include/bsp.h | 38 +++++++++++ c/src/lib/libbsp/arm/lm3s69xx/include/irq.h | 81 ++++++++++++++++++++++ c/src/lib/libbsp/arm/lm3s69xx/include/lm3s69xx.h | 30 +++++++++ c/src/lib/libbsp/arm/lm3s69xx/include/uart.h | 86 ++++++++++++++++++++++++ 5 files changed, 239 insertions(+) create mode 100644 c/src/lib/libbsp/arm/lm3s69xx/include/.cvsignore create mode 100644 c/src/lib/libbsp/arm/lm3s69xx/include/bsp.h create mode 100644 c/src/lib/libbsp/arm/lm3s69xx/include/irq.h create mode 100644 c/src/lib/libbsp/arm/lm3s69xx/include/lm3s69xx.h create mode 100644 c/src/lib/libbsp/arm/lm3s69xx/include/uart.h (limited to 'c/src/lib/libbsp/arm/lm3s69xx/include') 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 + * + * + * 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 + +#include +#include +#include + +#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 + * + * + * 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 +#include +#include + +#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 + * + * + * 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 + * + * + * 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 +#include + +#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 */ -- cgit v1.2.3