source: rtems/c/src/lib/libbsp/lm32/milkymist/include/system_conf.h @ 6fa94b7

4.115
Last change on this file since 6fa94b7 was 6fa94b7, checked in by Gedare Bloom <gedare@…>, on 11/27/11 at 17:26:25

2011-11-27 Sebastien Bourdeauducq <seb@…>

PR 1966/bsps

  • include/system_conf.h: support for the new UART core and interrupt map
  • Property mode set to 100644
File size: 9.5 KB
Line 
1/*  system_conf.h
2 *  Global System conf
3 *
4 *  Milkymist port of RTEMS
5 *
6 *  The license and distribution terms for this file may be
7 *  found in the file LICENSE in this distribution or at
8 *  http://www.rtems.com/license/LICENSE.
9 *
10 *  $Id$
11 *
12 *  COPYRIGHT (c) 2010, 2011 Sebastien Bourdeauducq
13 */
14
15#ifndef __SYSTEM_CONFIG_H_
16#define __SYSTEM_CONFIG_H_
17
18#define CPU_FREQUENCY           (80000000)
19#define UART_BAUD_RATE          (115200)
20
21/* FML bridge */
22#define FMLBRG_FLUSH_BASE       (0xc8000000)
23#define FMLBRG_LINE_LENGTH      (32)
24#define FMLBRG_LINE_COUNT       (512)
25
26/* UART */
27#define MM_UART_RXTX            (0xe0000000)
28#define MM_UART_DIV             (0xe0000004)
29#define MM_UART_STAT            (0xe0000008)
30#define MM_UART_CTRL            (0xe000000c)
31
32#define UART_STAT_THRE          (0x1)
33#define UART_STAT_RX_EVT        (0x2)
34#define UART_STAT_TX_EVT        (0x4)
35
36#define UART_CTRL_RX_INT        (0x1)
37#define UART_CTRL_TX_INT        (0x2)
38#define UART_CTRL_THRU          (0x4)
39
40/* Timers */
41#define MM_TIMER1_COMPARE       (0xe0001024)
42#define MM_TIMER1_COUNTER       (0xe0001028)
43#define MM_TIMER1_CONTROL       (0xe0001020)
44
45#define MM_TIMER0_COMPARE       (0xe0001014)
46#define MM_TIMER0_COUNTER       (0xe0001018)
47#define MM_TIMER0_CONTROL       (0xe0001010)
48
49#define TIMER_ENABLE            (0x01)
50#define TIMER_AUTORESTART       (0x02)
51
52/* GPIO */
53#define MM_GPIO_IN              (0xe0001000)
54#define MM_GPIO_OUT             (0xe0001004)
55#define MM_GPIO_INTEN           (0xe0001008)
56
57#define GPIO_BTN1               (0x00000001)
58#define GPIO_BTN2               (0x00000002)
59#define GPIO_BTN3               (0x00000004)
60#define GPIO_PCBREV0            (0x00000008)
61#define GPIO_PCBREV1            (0x00000010)
62#define GPIO_PCBREV2            (0x00000020)
63#define GPIO_PCBREV3            (0x00000040)
64#define GPIO_LED1               (0x00000001)
65#define GPIO_LED2               (0x00000002)
66
67/* System ID and reset */
68#define MM_SYSTEM_ID            (0xe000103c)
69
70/* ICAP */
71#define MM_ICAP                 (0xe0001034)
72
73#define ICAP_READY              (0x01)
74#define ICAP_CE                 (0x10000)
75#define ICAP_WRITE              (0x20000)
76
77/* VGA */
78#define MM_VGA_RESET            (0xe0003000)
79
80#define MM_VGA_HRES             (0xe0003004)
81#define MM_VGA_HSYNC_START      (0xe0003008)
82#define MM_VGA_HSYNC_END        (0xe000300C)
83#define MM_VGA_HSCAN            (0xe0003010)
84
85#define MM_VGA_VRES             (0xe0003014)
86#define MM_VGA_VSYNC_START      (0xe0003018)
87#define MM_VGA_VSYNC_END        (0xe000301C)
88#define MM_VGA_VSCAN            (0xe0003020)
89
90#define MM_VGA_BASEADDRESS      (0xe0003024)
91#define MM_VGA_BASEADDRESS_ACT  (0xe0003028)
92
93#define MM_VGA_BURST_COUNT      (0xe000302C)
94
95#define MM_VGA_DDC              (0xe0003030)
96
97#define MM_VGA_CLKSEL           (0xe0003034)
98
99#define VGA_RESET               (0x01)
100#define VGA_DDC_SDAIN           (0x1)
101#define VGA_DDC_SDAOUT          (0x2)
102#define VGA_DDC_SDAOE           (0x4)
103#define VGA_DDC_SDC             (0x8)
104
105/* Ethernet */
106#define MM_MINIMAC_SETUP        (0xe0008000)
107#define MM_MINIMAC_MDIO         (0xe0008004)
108
109#define MM_MINIMAC_STATE0       (0xe0008008)
110#define MM_MINIMAC_COUNT0       (0xe000800C)
111#define MM_MINIMAC_STATE1       (0xe0008010)
112#define MM_MINIMAC_COUNT1       (0xe0008014)
113
114#define MM_MINIMAC_TXCOUNT      (0xe0008018)
115
116#define MINIMAC_RX0_BASE        (0xb0000000)
117#define MINIMAC_RX1_BASE        (0xb0000800)
118#define MINIMAC_TX_BASE         (0xb0001000)
119
120#define MINIMAC_SETUP_PHYRST    (0x1)
121
122#define MINIMAC_STATE_EMPTY     (0x0)
123#define MINIMAC_STATE_LOADED    (0x1)
124#define MINIMAC_STATE_PENDING   (0x2)
125
126/* AC97 */
127#define MM_AC97_CRCTL           (0xe0005000)
128
129#define AC97_CRCTL_RQEN         (0x01)
130#define AC97_CRCTL_WRITE        (0x02)
131
132#define MM_AC97_CRADDR          (0xe0005004)
133#define MM_AC97_CRDATAOUT       (0xe0005008)
134#define MM_AC97_CRDATAIN        (0xe000500C)
135
136#define MM_AC97_DCTL            (0xe0005010)
137#define MM_AC97_DADDRESS        (0xe0005014)
138#define MM_AC97_DREMAINING      (0xe0005018)
139
140#define MM_AC97_UCTL            (0xe0005020)
141#define MM_AC97_UADDRESS        (0xe0005024)
142#define MM_AC97_UREMAINING      (0xe0005028)
143
144#define AC97_SCTL_EN            (0x01)
145
146#define AC97_MAX_DMASIZE        (0x3fffc)
147
148/* SoftUSB */
149#define MM_SOFTUSB_CONTROL      (0xe000f000)
150
151#define SOFTUSB_CONTROL_RESET   (0x1)
152
153#define MM_SOFTUSB_PMEM_BASE    (0xa0000000)
154#define MM_SOFTUSB_DMEM_BASE    (0xa0020000)
155
156#define SOFTUSB_PMEM_SIZE       (1 << 12)
157#define SOFTUSB_DMEM_SIZE       (1 << 13)
158
159/* PFPU */
160#define MM_PFPU_CTL             (0xe0006000)
161#define PFPU_CTL_START          (0x01)
162#define PFPU_CTL_BUSY           (0x01)
163
164#define MM_PFPU_MESHBASE        (0xe0006004)
165#define MM_PFPU_HMESHLAST       (0xe0006008)
166#define MM_PFPU_VMESHLAST       (0xe000600C)
167
168#define MM_PFPU_CODEPAGE        (0xe0006010)
169
170#define MM_PFPU_DREGBASE        (0xe0006400)
171#define MM_PFPU_CODEBASE        (0xe0006800)
172
173#define PFPU_PAGESIZE           (512)
174#define PFPU_SPREG_COUNT        (2)
175#define PFPU_REG_X              (0)
176#define PFPU_REG_Y              (1)
177
178/* TMU */
179#define MM_TMU_CTL              (0xe0007000)
180#define TMU_CTL_START           (0x01)
181#define TMU_CTL_BUSY            (0x01)
182#define TMU_CTL_CHROMAKEY       (0x02)
183
184#define MM_TMU_HMESHLAST        (0xe0007004)
185#define MM_TMU_VMESHLAST        (0xe0007008)
186#define MM_TMU_BRIGHTNESS       (0xe000700C)
187#define MM_TMU_CHROMAKEY        (0xe0007010)
188
189#define MM_TMU_VERTICESADR      (0xe0007014)
190#define MM_TMU_TEXFBUF          (0xe0007018)
191#define MM_TMU_TEXHRES          (0xe000701C)
192#define MM_TMU_TEXVRES          (0xe0007020)
193#define MM_TMU_TEXHMASK         (0xe0007024)
194#define MM_TMU_TEXVMASK         (0xe0007028)
195
196#define MM_TMU_DSTFBUF          (0xe000702C)
197#define MM_TMU_DSTHRES          (0xe0007030)
198#define MM_TMU_DSTVRES          (0xe0007034)
199#define MM_TMU_DSTHOFFSET       (0xe0007038)
200#define MM_TMU_DSTVOFFSET       (0xe000703C)
201#define MM_TMU_DSTSQUAREW       (0xe0007040)
202#define MM_TMU_DSTSQUAREH       (0xe0007044)
203
204#define MM_TMU_ALPHA            (0xe0007048)
205
206/* Memory card */
207#define MM_MEMCARD_CLK2XDIV     (0xe0004000)
208
209#define MM_MEMCARD_ENABLE       (0xe0004004)
210
211#define MEMCARD_ENABLE_CMD_TX   (0x1)
212#define MEMCARD_ENABLE_CMD_RX   (0x2)
213#define MEMCARD_ENABLE_DAT_TX   (0x4)
214#define MEMCARD_ENABLE_DAT_RX   (0x8)
215
216#define MM_MEMCARD_PENDING      (0xe0004008)
217
218#define MEMCARD_PENDING_CMD_TX  (0x1)
219#define MEMCARD_PENDING_CMD_RX  (0x2)
220#define MEMCARD_PENDING_DAT_TX  (0x4)
221#define MEMCARD_PENDING_DAT_RX  (0x8)
222
223#define MM_MEMCARD_START        (0xe000400c)
224
225#define MEMCARD_START_CMD_RX    (0x1)
226#define MEMCARD_START_DAT_RX    (0x2)
227
228#define MM_MEMCARD_CMD          (0xe0004010)
229#define MM_MEMCARD_DAT          (0xe0004014)
230
231/* DMX */
232#define MM_DMX_TX(x)            (0xe000c000+4*(x))
233#define MM_DMX_THRU             (0xe000c800)
234#define MM_DMX_RX(x)            (0xe000d000+4*(x))
235
236/* MIDI */
237#define MM_MIDI_RXTX            (0xe000b000)
238#define MM_MIDI_DIV             (0xe000b004)
239#define MM_MIDI_STAT            (0xe000b008)
240#define MM_MIDI_CTRL            (0xe000b00c)
241
242#define MIDI_STAT_THRE          (0x1)
243#define MIDI_STAT_RX_EVT        (0x2)
244#define MIDI_STAT_TX_EVT        (0x4)
245
246#define MIDI_CTRL_RX_INT        (0x1)
247#define MIDI_CTRL_TX_INT        (0x2)
248#define MIDI_CTRL_THRU          (0x4)
249
250/* IR */
251#define MM_IR_RX                (0xe000e000)
252
253/* Video input */
254#define MM_BT656_I2C            (0xe000a000)
255#define MM_BT656_FILTERSTATUS   (0xe000a004)
256#define MM_BT656_BASE           (0xe000a008)
257#define MM_BT656_MAXBURSTS      (0xe000a00c)
258#define MM_BT656_DONEBURSTS     (0xe000a010)
259
260#define BT656_I2C_SDAIN         (0x1)
261#define BT656_I2C_SDAOUT        (0x2)
262#define BT656_I2C_SDAOE         (0x4)
263#define BT656_I2C_SDC           (0x8)
264
265#define BT656_FILTER_FIELD1     (0x1)
266#define BT656_FILTER_FIELD2     (0x2)
267#define BT656_FILTER_INFRAME    (0x4)
268
269/* Interrupts */
270#define MM_IRQ_UART             (0)
271#define MM_IRQ_GPIO             (1)
272#define MM_IRQ_TIMER0           (2)
273#define MM_IRQ_TIMER1           (3)
274#define MM_IRQ_AC97CRREQUEST    (4)
275#define MM_IRQ_AC97CRREPLY      (5)
276#define MM_IRQ_AC97DMAR         (6)
277#define MM_IRQ_AC97DMAW         (7)
278#define MM_IRQ_PFPU             (8)
279#define MM_IRQ_TMU              (9)
280#define MM_IRQ_ETHRX            (10)
281#define MM_IRQ_ETHTX            (11)
282#define MM_IRQ_VIDEOIN          (12)
283#define MM_IRQ_MIDI             (13)
284#define MM_IRQ_IR               (14)
285#define MM_IRQ_USB              (15)
286
287/* Flash layout */
288#define FLASH_BASE                      (0x80000000)
289
290#define FLASH_OFFSET_STANDBY_BITSTREAM  (0x80000000)
291
292#define FLASH_OFFSET_RESCUE_BITSTREAM   (0x800A0000)
293#define FLASH_OFFSET_RESCUE_BIOS        (0x80220000)
294#define FLASH_OFFSET_MAC_ADDRESS        (0x802200E0)
295#define FLASH_OFFSET_RESCUE_SPLASH      (0x80240000)
296#define FLASH_OFFSET_RESCUE_APP         (0x802E0000)
297
298#define FLASH_OFFSET_REGULAR_BITSTREAM  (0x806E0000)
299#define FLASH_OFFSET_REGULAR_BIOS       (0x80860000)
300#define FLASH_OFFSET_REGULAR_SPLASH     (0x80880000)
301#define FLASH_OFFSET_REGULAR_APP        (0x80920000)
302
303/* MMIO */
304#define MM_READ(reg) (*((volatile unsigned int *)(reg)))
305#define MM_WRITE(reg, val) *((volatile unsigned int *)(reg)) = val
306
307/* Flash partitions */
308
309#define FLASH_SECTOR_SIZE     (128*1024)
310
311#define FLASH_PARTITION_COUNT (5)
312
313#define FLASH_PARTITIONS { \
314  { .start_address = 0x806E0000, .length = 0x0180000 }, \
315  { .start_address = 0x80860000, .length = 0x0020000 }, \
316  { .start_address = 0x80880000, .length = 0x00A0000 }, \
317  { .start_address = 0x80920000, .length = 0x0400000 }, \
318  { .start_address = 0x80D20000, .length = 0x12E0000 }, \
319}
320
321#endif /* __SYSTEM_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.