source: rtems/c/src/lib/libcpu/bfin/bf52x/include/bf52x.h @ cb4c90b2

4.115
Last change on this file since cb4c90b2 was cb4c90b2, checked in by Joel Sherrill <joel.sherrill@…>, on 04/20/11 at 20:20:47

2011-04-20 Rohan Kangralkar <rkangral@…>

PR 1781/bsps

  • bf52x/include: Added additional MMR.
  • bf52x/interrupt: The BF52X processors have a different System interrupt controller than present in the 53X range of processors. The 52X have 8 interrupt assignment registers. The implementation uses tables to increase predictability.
  • serial/uart.?: Added DMA based and interrupt based transfer support. The uart code used a single ISR for TX and RX and tried to identify and multiplex inside the ISR. In the new code the type of interrupt is identified by the central ISR dispatcher bf52x/interrupt or interrupt/. This simplifies the UART ISR.
  • Property mode set to 100644
File size: 5.9 KB
Line 
1/**
2 *@file bf52x.h
3 *
4 *@brief
5 *  - This file provides the register address for the 52X model. The file is
6 *  based on the 533 implementation with some addition to support 52X range of
7 *  processors.
8 *
9 * Target:   TLL6527v1-0
10 * Compiler:
11 *
12 * COPYRIGHT (c) 2010 by ECE Northeastern University.
13 *
14 * The license and distribution terms for this file may be
15 * found in the file LICENSE in this distribution or at
16 * http://www.rtems.com/license
17 *
18 * @author Rohan Kangralkar, ECE, Northeastern University
19 *         (kangralkar.r@husky.neu.edu)
20 *
21 * LastChange:
22 * $Id$
23 *
24 */
25
26#ifndef _BF52X_H_
27#define _BF52X_H_
28
29/* register (or register block) addresses */
30
31#define SIC_BASE_ADDRESS                          0xffc00100
32#define WDOG_BASE_ADDRESS                         0xffc00200
33#define RTC_BASE_ADDRESS                          0xffc00300
34#define UART0_BASE_ADDRESS                        0xffc00400
35#define UART1_BASE_ADDRESS                        0xffc02000
36#define SPI_BASE_ADDRESS                          0xffc00500
37#define TIMER_BASE_ADDRESS                        0xffc00600
38#define TIMER_CHANNELS                                     3
39#define TIMER_PITCH                                     0x10
40#define TIMER0_BASE_ADDRESS                       0xffc00600
41#define TIMER1_BASE_ADDRESS                       0xffc00610
42#define TIMER2_BASE_ADDRESS                       0xffc00620
43#define TIMER_ENABLE                              0xffc00640
44#define TIMER_DISABLE                             0xffc00644
45#define TIMER_STATUS                              0xffc00648
46#define PORTFIO_BASE_ADDRESS                      0xffc00700
47#define SPORT0_BASE_ADDRESS                       0xffc00800
48#define SPORT1_BASE_ADDRESS                       0xffc00900
49#define EBIU_BASE_ADDRESS                         0xffc00a00
50#define DMA_TC_PER                                0xffc00b0c
51#define DMA_TC_CNT                                0xffc00b10
52#define DMA_BASE_ADDRESS                          0xffc00c00
53#define DMA_CHANNELS                                       8
54#define DMA_PITCH                                       0x40
55#define DMA0_BASE_ADDRESS                         0xffc00c00
56#define DMA1_BASE_ADDRESS                         0xffc00c40
57#define DMA2_BASE_ADDRESS                         0xffc00c80
58#define DMA3_BASE_ADDRESS                         0xffc00cc0
59#define DMA4_BASE_ADDRESS                         0xffc00d00
60#define DMA5_BASE_ADDRESS                         0xffc00d40
61#define DMA6_BASE_ADDRESS                         0xffc00d80
62#define DMA7_BASE_ADDRESS                         0xffc00dc0
63#define DMA8_BASE_ADDRESS                         0xffc00e00
64#define DMA9_BASE_ADDRESS                         0xffc00e40
65#define DMA10_BASE_ADDRESS                        0xffc00e80
66#define DMA11_BASE_ADDRESS                        0xffc00ec0
67#define MDMA_BASE_ADDRESS                         0xffc00e00
68#define MDMA_CHANNELS                                      2
69#define MDMA_D_S                                        0x40
70#define MDMA_PITCH                                      0x80
71#define MDMA0D_BASE_ADDRESS                       0xffc00e00
72#define MDMA0S_BASE_ADDRESS                       0xffc00e40
73#define MDMA1D_BASE_ADDRESS                       0xffc00e80
74#define MDMA1S_BASE_ADDRESS                       0xffc00ec0
75#define PPI_BASE_ADDRESS                          0xffc01000
76
77
78/* register fields */
79
80#define DMA_TC_PER_MDMA_ROUND_ROBIN_PERIOD_MASK       0xf800
81#define DMA_TC_PER_MDMA_ROUND_ROBIN_PERIOD_SHIFT          11
82#define DMA_TC_PER_DAB_TRAFFIC_PERIOD_MASK            0x0700
83#define DMA_TC_PER_DAB_TRAFFIC_PERIOD_SHIFT                8
84#define DMA_TC_PER_DEB_TRAFFIC_PERIOD_MASK            0x00f0
85#define DMA_TC_PER_DEB_TRAFFIC_PERIOD_SHIFT                4
86#define DMA_TC_PER_DCB_TRAFFIC_PERIOD_MASK            0x000f
87#define DMA_TC_PER_DCB_TRAFFIC_PERIOD_SHIFT                0
88
89#define DMA_TC_CNT_MDMA_ROUND_ROBIN_COUNT_MASK        0xf800
90#define DMA_TC_CNT_MDMA_ROUND_ROBIN_COUNT_SHIFT           11
91#define DMA_TC_CNT_DAB_TRAFFIC_COUNT_MASK             0x0700
92#define DMA_TC_CNT_DAB_TRAFFIC_COUNT_SHIFT                 8
93#define DMA_TC_CNT_DEB_TRAFFIC_COUNT_MASK             0x00f0
94#define DMA_TC_CNT_DEB_TRAFFIC_COUNT_SHIFT                 4
95#define DMA_TC_CNT_DCB_TRAFFIC_COUNT_MASK             0x000f
96#define DMA_TC_CNT_DCB_TRAFFIC_COUNT_SHIFT                 0
97
98#define TIMER_ENABLE_TIMEN2                           0x0004
99#define TIMER_ENABLE_TIMEN1                           0x0002
100#define TIMER_ENABLE_TIMEN0                           0x0001
101
102#define TIMER_DISABLE_TIMDIS2                         0x0004
103#define TIMER_DISABLE_TIMDIS1                         0x0002
104#define TIMER_DISABLE_TIMDIS0                         0x0001
105
106#define TIMER_STATUS_TRUN2                        0x00004000
107#define TIMER_STATUS_TRUN1                        0x00002000
108#define TIMER_STATUS_TRUN0                        0x00001000
109#define TIMER_STATUS_TOVF_ERR2                    0x00000040
110#define TIMER_STATUS_TOVF_ERR1                    0x00000020
111#define TIMER_STATUS_TOVF_ERR0                    0x00000010
112#define TIMER_STATUS_TIMIL2                       0x00000004
113#define TIMER_STATUS_TIMIL1                       0x00000002
114#define TIMER_STATUS_TIMIL0                       0x00000001
115
116/* Core Event Controller vectors */
117
118#define CEC_EMULATION_VECTOR                               0
119#define CEC_RESET_VECTOR                                   1
120#define CEC_NMI_VECTOR                                     2
121#define CEC_EXCEPTIONS_VECTOR                              3
122#define CEC_HARDWARE_ERROR_VECTOR                          5
123#define CEC_CORE_TIMER_VECTOR                              6
124#define CEC_INTERRUPT_BASE_VECTOR                          7
125#define CEC_INTERRUPT_COUNT                                9
126
127
128/* System Interrupt Controller vectors */
129
130#define SIC_IAR_COUNT                                      8
131
132#endif /* _BF52X_H_ */
133
Note: See TracBrowser for help on using the repository browser.