summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/bfin/include/bf537.h
blob: d3489288967da581497eb27d739e73e86d5047c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
/*  Blackfin BF537 Definitions
 *
 *  Copyright (c) 2008 Kallisti Labs, Los Gatos, CA, USA
 *             written by Allan Hessenflow <allanh@kallisti.com>
 *
 *  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.
 *
 *  $Id$
 */

#ifndef _bf537_h_
#define _bf537_h_

/* register (or register block) addresses */

#define SIC_BASE_ADDRESS                          0xffc00100
#define WDOG_BASE_ADDRESS                         0xffc00200
#define RTC_BASE_ADDRESS                          0xffc00300
#define UART0_BASE_ADDRESS                        0xffc00400
#define SPI_BASE_ADDRESS                          0xffc00500
#define TIMER_BASE_ADDRESS                        0xffc00600
#define TIMER_CHANNELS                                     8
#define TIMER_PITCH                                     0x10
#define TIMER0_BASE_ADDRESS                       0xffc00600
#define TIMER1_BASE_ADDRESS                       0xffc00610
#define TIMER2_BASE_ADDRESS                       0xffc00620
#define TIMER3_BASE_ADDRESS                       0xffc00630
#define TIMER4_BASE_ADDRESS                       0xffc00640
#define TIMER5_BASE_ADDRESS                       0xffc00650
#define TIMER6_BASE_ADDRESS                       0xffc00660
#define TIMER7_BASE_ADDRESS                       0xffc00670
#define TIMER_ENABLE                              0xffc00680
#define TIMER_DISABLE                             0xffc00684
#define TIMER_STATUS                              0xffc00688
#define PORTFIO_BASE_ADDRESS                      0xffc00700
#define SPORT0_BASE_ADDRESS                       0xffc00800
#define SPORT1_BASE_ADDRESS                       0xffc00900
#define EBIU_BASE_ADDRESS                         0xffc00a00
#define DMA_TC_PER                                0xffc00b0c
#define DMA_TC_CNT                                0xffc00b10
#define DMA_BASE_ADDRESS                          0xffc00c00
#define DMA_CHANNELS                                      12
#define DMA_PITCH                                       0x40
#define DMA0_BASE_ADDRESS                         0xffc00c00
#define DMA1_BASE_ADDRESS                         0xffc00c40
#define DMA2_BASE_ADDRESS                         0xffc00c80
#define DMA3_BASE_ADDRESS                         0xffc00cc0
#define DMA4_BASE_ADDRESS                         0xffc00d00
#define DMA5_BASE_ADDRESS                         0xffc00d40
#define DMA6_BASE_ADDRESS                         0xffc00d80
#define DMA7_BASE_ADDRESS                         0xffc00dc0
#define DMA8_BASE_ADDRESS                         0xffc00e00
#define DMA9_BASE_ADDRESS                         0xffc00e40
#define DMA10_BASE_ADDRESS                        0xffc00e80
#define DMA11_BASE_ADDRESS                        0xffc00ec0
#define MDMA_BASE_ADDRESS                         0xffc00f00
#define MDMA_CHANNELS                                      2
#define MDMA_D_S                                        0x40
#define MDMA_PITCH                                      0x80
#define MDMA0D_BASE_ADDRESS                       0xffc00f00
#define MDMA0S_BASE_ADDRESS                       0xffc00f40
#define MDMA1D_BASE_ADDRESS                       0xffc00f80
#define MDMA1S_BASE_ADDRESS                       0xffc00fc0
#define PPI_BASE_ADDRESS                          0xffc01000
#define TWI_BASE_ADDRESS                          0xffc01400
#define PORTGIO_BASE_ADDRESS                      0xffc01500
#define PORTHIO_BASE_ADDRESS                      0xffc01700
#define UART1_BASE_ADDRESS                        0xffc02000
#define CAN_BASE_ADDRESS                          0xffc02a00
#define CAN_AM_BASE_ADDRESS                       0xffc02b00
#define CAN_MB_BASE_ADDRESS                       0xffc02c00
#define EMAC_BASE_ADDRESS                         0xffc03000
#define PORTF_FER                                 0xffc03200
#define PORTG_FER                                 0xffc03204
#define PORTH_FER                                 0xffc03208
#define PORT_MUX                                  0xffc0320c
#define HMDMA0_BASE_ADDRESS                       0xffc03300
#define HMDMA1_BASE_ADDRESS                       0xffc03340


/* register fields */

#define DMA_TC_PER_MDMA_ROUND_ROBIN_PERIOD_MASK       0xf800
#define DMA_TC_PER_MDMA_ROUND_ROBIN_PERIOD_SHIFT          11
#define DMA_TC_PER_DAB_TRAFFIC_PERIOD_MASK            0x0700
#define DMA_TC_PER_DAB_TRAFFIC_PERIOD_SHIFT                8
#define DMA_TC_PER_DEB_TRAFFIC_PERIOD_MASK            0x00f0
#define DMA_TC_PER_DEB_TRAFFIC_PERIOD_SHIFT                4
#define DMA_TC_PER_DCB_TRAFFIC_PERIOD_MASK            0x000f
#define DMA_TC_PER_DCB_TRAFFIC_PERIOD_SHIFT                0

#define DMA_TC_CNT_MDMA_ROUND_ROBIN_COUNT_MASK        0xf800
#define DMA_TC_CNT_MDMA_ROUND_ROBIN_COUNT_SHIFT           11
#define DMA_TC_CNT_DAB_TRAFFIC_COUNT_MASK             0x0700
#define DMA_TC_CNT_DAB_TRAFFIC_COUNT_SHIFT                 8
#define DMA_TC_CNT_DEB_TRAFFIC_COUNT_MASK             0x00f0
#define DMA_TC_CNT_DEB_TRAFFIC_COUNT_SHIFT                 4
#define DMA_TC_CNT_DCB_TRAFFIC_COUNT_MASK             0x000f
#define DMA_TC_CNT_DCB_TRAFFIC_COUNT_SHIFT                 0

#define TIMER_ENABLE_TIMEN7                           0x0080
#define TIMER_ENABLE_TIMEN6                           0x0040
#define TIMER_ENABLE_TIMEN5                           0x0020
#define TIMER_ENABLE_TIMEN4                           0x0010
#define TIMER_ENABLE_TIMEN3                           0x0008
#define TIMER_ENABLE_TIMEN2                           0x0004
#define TIMER_ENABLE_TIMEN1                           0x0002
#define TIMER_ENABLE_TIMEN0                           0x0001

#define TIMER_DISABLE_TIMDIS7                         0x0080
#define TIMER_DISABLE_TIMDIS6                         0x0040
#define TIMER_DISABLE_TIMDIS5                         0x0020
#define TIMER_DISABLE_TIMDIS4                         0x0010
#define TIMER_DISABLE_TIMDIS3                         0x0008
#define TIMER_DISABLE_TIMDIS2                         0x0004
#define TIMER_DISABLE_TIMDIS1                         0x0002
#define TIMER_DISABLE_TIMDIS0                         0x0001

#define TIMER_STATUS_TRUN7                        0x80000000
#define TIMER_STATUS_TRUN6                        0x40000000
#define TIMER_STATUS_TRUN5                        0x20000000
#define TIMER_STATUS_TRUN4                        0x10000000
#define TIMER_STATUS_TOVF_ERR7                    0x00800000
#define TIMER_STATUS_TOVF_ERR6                    0x00400000
#define TIMER_STATUS_TOVF_ERR5                    0x00200000
#define TIMER_STATUS_TOVF_ERR4                    0x00100000
#define TIMER_STATUS_TIMIL7                       0x00080000
#define TIMER_STATUS_TIMIL6                       0x00040000
#define TIMER_STATUS_TIMIL5                       0x00020000
#define TIMER_STATUS_TIMIL4                       0x00010000
#define TIMER_STATUS_TRUN3                        0x00008000
#define TIMER_STATUS_TRUN2                        0x00004000
#define TIMER_STATUS_TRUN1                        0x00002000
#define TIMER_STATUS_TRUN0                        0x00001000
#define TIMER_STATUS_TOVF_ERR3                    0x00000080
#define TIMER_STATUS_TOVF_ERR2                    0x00000040
#define TIMER_STATUS_TOVF_ERR1                    0x00000020
#define TIMER_STATUS_TOVF_ERR0                    0x00000010
#define TIMER_STATUS_TIMIL3                       0x00000008
#define TIMER_STATUS_TIMIL2                       0x00000004
#define TIMER_STATUS_TIMIL1                       0x00000002
#define TIMER_STATUS_TIMIL0                       0x00000001

#define PORT_MUX_PGTE                                 0x0800
#define PORT_MUX_PGRE                                 0x0400
#define PORT_MUX_PGSE                                 0x0200
#define PORT_MUX_PFFE                                 0x0100
#define PORT_MUX_PFS4E                                0x0080
#define PORT_MUX_PFS5E                                0x0040
#define PORT_MUX_PFS6E                                0x0020
#define PORT_MUX_PFTE                                 0x0010
#define PORT_MUX_PFDE                                 0x0008
#define PORT_MUX_PJCE_MASK                            0x0006
#define PORT_MUX_PJCE_DR0SEC_DTOSEC                   0x0000
#define PORT_MUX_PJCE_CANRX_CANTX                     0x0002
#define PORT_MUX_PJCE_SPISSEL7                        0x0004
#define PORT_MUX_PJSE                                 0x0001


/* Core Event Controller vectors */

#define CEC_EMULATION_VECTOR                               0
#define CEC_RESET_VECTOR                                   1
#define CEC_NMI_VECTOR                                     2
#define CEC_EXCEPTIONS_VECTOR                              3
#define CEC_HARDWARE_ERROR_VECTOR                          5
#define CEC_CORE_TIMER_VECTOR                              6
#define CEC_INTERRUPT_BASE_VECTOR                          7
#define CEC_INTERRUPT_COUNT                                9


/* System Interrupt Controller vectors */

#define SIC_IAR_COUNT                                      4

#define SIC_PLL_WAKEUP_VECTOR                              0
#define SIC_DMA_ERROR_VECTOR                               1
#define SIC_DMAR0_BLOCK_DONE_VECTOR                        1
#define SIC_DMAR1_BLOCK_DONE_VECTOR                        1
#define SIC_DMAR0_OVERFLOW_VECTOR                          1
#define SIC_DMAR1_OVERFLOW_VECTOR                          1
#define SIC_CAN_ERROR_VECTOR                               2
#define SIC_MAC_ERROR_VECTOR                               2
#define SIC_SPORT0_ERROR_VECTOR                            2
#define SIC_SPORT1_ERROR_VECTOR                            2
#define SIC_PPI_ERROR_VECTOR                               2
#define SIC_SPI_ERROR_VECTOR                               2
#define SIC_UART0_ERROR_VECTOR                             2
#define SIC_UART1_ERROR_VECTOR                             2
#define SIC_RTC_VECTOR                                     3
#define SIC_DMA0_PPI_VECTOR                                4
#define SIC_DMA3_SPORT0_RX_VECTOR                          5
#define SIC_DMA4_SPORT0_TX_VECTOR                          6
#define SIC_DMA5_SPORT1_RX_VECTOR                          7
#define SIC_DMA5_SPORT1_TX_VECTOR                          8
#define SIC_TWI_VECTOR                                     9
#define SIC_DMA7_SPI_VECTOR                               10
#define SIC_DMA8_UART0_RX_VECTOR                          11
#define SIC_DMA9_UART0_TX_VECTOR                          12
#define SIC_DMA10_UART1_RX_VECTOR                         13
#define SIC_DMA11_UART1_TX_VECTOR                         14
#define SIC_CAN_RX_VECTOR                                 15
#define SIC_CAN_TX_VECTOR                                 16
#define SIC_DMA1_MAC_RX_VECTOR                            17
#define SIC_PORTH_IRQ_A_VECTOR                            17
#define SIC_DMA2_MAC_TX_VECTOR                            18
#define SIC_PORTH_IRQ_B_VECTOR                            18
#define SIC_TIMER0_VECTOR                                 19
#define SIC_TIMER1_VECTOR                                 20
#define SIC_TIMER2_VECTOR                                 21
#define SIC_TIMER3_VECTOR                                 22
#define SIC_TIMER4_VECTOR                                 23
#define SIC_TIMER5_VECTOR                                 24
#define SIC_TIMER6_VECTOR                                 25
#define SIC_TIMER7_VECTOR                                 26
#define SIC_PORTF_IRQ_A_VECTOR                            27
#define SIC_PORTG_IRQ_A_VECTOR                            27
#define SIC_PORTG_IRQ_B_VECTOR                            28
#define SIC_MDMA0_VECTOR                                  29
#define SIC_MDMA1_VECTOR                                  30
#define SIC_WATCHDOG_VECTOR                               31
#define SIC_PORTF_IRQ_B_VECTOR                            31


#endif /* _bf537_h_ */