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

4.115
Last change on this file since dce1032b was dce1032b, checked in by Joel Sherrill <joel.sherrill@…>, on 08/01/11 at 13:48:40

2011-08-01 Sebastien Bourdeauducq <sebastien.bourdeauducq@…>

PR 1869/bsps

  • startup/bspclean.c: New file.
  • include/tm27.h: Removed.
  • ChangeLog?, Makefile.am, README, preinstall.am, include/bsp.h, include/system_conf.h, make/custom/milkymist.cfg, startup/linkcmds: Complete BSP for Milkymist One supporting Milkymist SOC 1.0.x. Includes new or updated drivers for:
    • Multi-standard video input (PAL/SECAM/NTSC)
    • Two DMX512 (RS485) ports
    • MIDI IN and MIDI OUT ports
    • VGA output
    • AC'97 audio
    • NOR flash
    • 10/100 Ethernet
    • Memory card (experimental and incomplete)
    • USB host connectors (input devices only)
    • RC5 infrared receiver
    • RS232 debug port
  • Property mode set to 100644
File size: 9.0 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
30/* Timers */
31#define MM_TIMER1_COMPARE       (0xe0001024)
32#define MM_TIMER1_COUNTER       (0xe0001028)
33#define MM_TIMER1_CONTROL       (0xe0001020)
34
35#define MM_TIMER0_COMPARE       (0xe0001014)
36#define MM_TIMER0_COUNTER       (0xe0001018)
37#define MM_TIMER0_CONTROL       (0xe0001010)
38
39#define TIMER_ENABLE            (0x01)
40#define TIMER_AUTORESTART       (0x02)
41
42/* GPIO */
43#define MM_GPIO_IN              (0xe0001000)
44#define MM_GPIO_OUT             (0xe0001004)
45#define MM_GPIO_INTEN           (0xe0001008)
46
47#define GPIO_BTN1               (0x00000001)
48#define GPIO_BTN2               (0x00000002)
49#define GPIO_BTN3               (0x00000004)
50#define GPIO_PCBREV0            (0x00000008)
51#define GPIO_PCBREV1            (0x00000010)
52#define GPIO_PCBREV2            (0x00000020)
53#define GPIO_PCBREV3            (0x00000040)
54#define GPIO_LED1               (0x00000001)
55#define GPIO_LED2               (0x00000002)
56
57/* System ID and reset */
58#define MM_SYSTEM_ID            (0xe000103c)
59
60/* ICAP */
61#define MM_ICAP                 (0xe0001034)
62
63#define ICAP_READY              (0x01)
64#define ICAP_CE                 (0x10000)
65#define ICAP_WRITE              (0x20000)
66
67/* VGA */
68#define MM_VGA_RESET            (0xe0003000)
69
70#define MM_VGA_HRES             (0xe0003004)
71#define MM_VGA_HSYNC_START      (0xe0003008)
72#define MM_VGA_HSYNC_END        (0xe000300C)
73#define MM_VGA_HSCAN            (0xe0003010)
74
75#define MM_VGA_VRES             (0xe0003014)
76#define MM_VGA_VSYNC_START      (0xe0003018)
77#define MM_VGA_VSYNC_END        (0xe000301C)
78#define MM_VGA_VSCAN            (0xe0003020)
79
80#define MM_VGA_BASEADDRESS      (0xe0003024)
81#define MM_VGA_BASEADDRESS_ACT  (0xe0003028)
82
83#define MM_VGA_BURST_COUNT      (0xe000302C)
84
85#define MM_VGA_DDC              (0xe0003030)
86
87#define MM_VGA_CLKSEL           (0xe0003034)
88
89#define VGA_RESET               (0x01)
90#define VGA_DDC_SDAIN           (0x1)
91#define VGA_DDC_SDAOUT          (0x2)
92#define VGA_DDC_SDAOE           (0x4)
93#define VGA_DDC_SDC             (0x8)
94
95/* Ethernet */
96#define MM_MINIMAC_SETUP        (0xe0008000)
97#define MM_MINIMAC_MDIO         (0xe0008004)
98
99#define MM_MINIMAC_STATE0       (0xe0008008)
100#define MM_MINIMAC_COUNT0       (0xe000800C)
101#define MM_MINIMAC_STATE1       (0xe0008010)
102#define MM_MINIMAC_COUNT1       (0xe0008014)
103
104#define MM_MINIMAC_TXCOUNT      (0xe0008018)
105
106#define MINIMAC_RX0_BASE        (0xb0000000)
107#define MINIMAC_RX1_BASE        (0xb0000800)
108#define MINIMAC_TX_BASE         (0xb0001000)
109
110#define MINIMAC_SETUP_PHYRST    (0x1)
111
112#define MINIMAC_STATE_EMPTY     (0x0)
113#define MINIMAC_STATE_LOADED    (0x1)
114#define MINIMAC_STATE_PENDING   (0x2)
115
116/* AC97 */
117#define MM_AC97_CRCTL           (0xe0005000)
118
119#define AC97_CRCTL_RQEN         (0x01)
120#define AC97_CRCTL_WRITE        (0x02)
121
122#define MM_AC97_CRADDR          (0xe0005004)
123#define MM_AC97_CRDATAOUT       (0xe0005008)
124#define MM_AC97_CRDATAIN        (0xe000500C)
125
126#define MM_AC97_DCTL            (0xe0005010)
127#define MM_AC97_DADDRESS        (0xe0005014)
128#define MM_AC97_DREMAINING      (0xe0005018)
129
130#define MM_AC97_UCTL            (0xe0005020)
131#define MM_AC97_UADDRESS        (0xe0005024)
132#define MM_AC97_UREMAINING      (0xe0005028)
133
134#define AC97_SCTL_EN            (0x01)
135
136#define AC97_MAX_DMASIZE        (0x3fffc)
137
138/* SoftUSB */
139#define MM_SOFTUSB_CONTROL      (0xe000f000)
140
141#define SOFTUSB_CONTROL_RESET   (0x1)
142
143#define MM_SOFTUSB_PMEM_BASE    (0xa0000000)
144#define MM_SOFTUSB_DMEM_BASE    (0xa0020000)
145
146#define SOFTUSB_PMEM_SIZE       (1 << 12)
147#define SOFTUSB_DMEM_SIZE       (1 << 13)
148
149/* PFPU */
150#define MM_PFPU_CTL             (0xe0006000)
151#define PFPU_CTL_START          (0x01)
152#define PFPU_CTL_BUSY           (0x01)
153
154#define MM_PFPU_MESHBASE        (0xe0006004)
155#define MM_PFPU_HMESHLAST       (0xe0006008)
156#define MM_PFPU_VMESHLAST       (0xe000600C)
157
158#define MM_PFPU_CODEPAGE        (0xe0006010)
159
160#define MM_PFPU_DREGBASE        (0xe0006400)
161#define MM_PFPU_CODEBASE        (0xe0006800)
162
163#define PFPU_PAGESIZE           (512)
164#define PFPU_SPREG_COUNT        (2)
165#define PFPU_REG_X              (0)
166#define PFPU_REG_Y              (1)
167
168/* TMU */
169#define MM_TMU_CTL              (0xe0007000)
170#define TMU_CTL_START           (0x01)
171#define TMU_CTL_BUSY            (0x01)
172#define TMU_CTL_CHROMAKEY       (0x02)
173
174#define MM_TMU_HMESHLAST        (0xe0007004)
175#define MM_TMU_VMESHLAST        (0xe0007008)
176#define MM_TMU_BRIGHTNESS       (0xe000700C)
177#define MM_TMU_CHROMAKEY        (0xe0007010)
178
179#define MM_TMU_VERTICESADR      (0xe0007014)
180#define MM_TMU_TEXFBUF          (0xe0007018)
181#define MM_TMU_TEXHRES          (0xe000701C)
182#define MM_TMU_TEXVRES          (0xe0007020)
183#define MM_TMU_TEXHMASK         (0xe0007024)
184#define MM_TMU_TEXVMASK         (0xe0007028)
185
186#define MM_TMU_DSTFBUF          (0xe000702C)
187#define MM_TMU_DSTHRES          (0xe0007030)
188#define MM_TMU_DSTVRES          (0xe0007034)
189#define MM_TMU_DSTHOFFSET       (0xe0007038)
190#define MM_TMU_DSTVOFFSET       (0xe000703C)
191#define MM_TMU_DSTSQUAREW       (0xe0007040)
192#define MM_TMU_DSTSQUAREH       (0xe0007044)
193
194#define MM_TMU_ALPHA            (0xe0007048)
195
196/* Memory card */
197#define MM_MEMCARD_CLK2XDIV     (0xe0004000)
198
199#define MM_MEMCARD_ENABLE       (0xe0004004)
200
201#define MEMCARD_ENABLE_CMD_TX   (0x1)
202#define MEMCARD_ENABLE_CMD_RX   (0x2)
203#define MEMCARD_ENABLE_DAT_TX   (0x4)
204#define MEMCARD_ENABLE_DAT_RX   (0x8)
205
206#define MM_MEMCARD_PENDING      (0xe0004008)
207
208#define MEMCARD_PENDING_CMD_TX  (0x1)
209#define MEMCARD_PENDING_CMD_RX  (0x2)
210#define MEMCARD_PENDING_DAT_TX  (0x4)
211#define MEMCARD_PENDING_DAT_RX  (0x8)
212
213#define MM_MEMCARD_START        (0xe000400c)
214
215#define MEMCARD_START_CMD_RX    (0x1)
216#define MEMCARD_START_DAT_RX    (0x2)
217
218#define MM_MEMCARD_CMD          (0xe0004010)
219#define MM_MEMCARD_DAT          (0xe0004014)
220
221/* DMX */
222#define MM_DMX_TX(x)            (0xe000c000+4*(x))
223#define MM_DMX_THRU             (0xe000c800)
224#define MM_DMX_RX(x)            (0xe000d000+4*(x))
225
226/* MIDI */
227#define MM_MIDI_RXTX            (0xe000b000)
228#define MM_MIDI_DIVISOR         (0xe000b004)
229#define MM_MIDI_THRU            (0xe000b008)
230
231/* IR */
232#define MM_IR_RX                (0xe000e000)
233
234/* Video input */
235#define MM_BT656_I2C            (0xe000a000)
236#define MM_BT656_FILTERSTATUS   (0xe000a004)
237#define MM_BT656_BASE           (0xe000a008)
238#define MM_BT656_MAXBURSTS      (0xe000a00c)
239#define MM_BT656_DONEBURSTS     (0xe000a010)
240
241#define BT656_I2C_SDAIN         (0x1)
242#define BT656_I2C_SDAOUT        (0x2)
243#define BT656_I2C_SDAOE         (0x4)
244#define BT656_I2C_SDC           (0x8)
245
246#define BT656_FILTER_FIELD1     (0x1)
247#define BT656_FILTER_FIELD2     (0x2)
248#define BT656_FILTER_INFRAME    (0x4)
249
250/* Interrupts */
251#define MM_IRQ_UARTRX           (0)
252#define MM_IRQ_UARTTX           (1)
253#define MM_IRQ_GPIO             (2)
254#define MM_IRQ_TIMER0           (3)
255#define MM_IRQ_TIMER1           (4)
256#define MM_IRQ_AC97CRREQUEST    (5)
257#define MM_IRQ_AC97CRREPLY      (6)
258#define MM_IRQ_AC97DMAR         (7)
259#define MM_IRQ_AC97DMAW         (8)
260#define MM_IRQ_PFPU             (9)
261#define MM_IRQ_TMU              (10)
262#define MM_IRQ_ETHRX            (11)
263#define MM_IRQ_ETHTX            (12)
264#define MM_IRQ_VIDEOIN          (13)
265#define MM_IRQ_MIDIRX           (14)
266#define MM_IRQ_MIDITX           (15)
267#define MM_IRQ_IR               (16)
268#define MM_IRQ_USB              (17)
269
270/* Flash layout */
271#define FLASH_BASE                      (0x80000000)
272
273#define FLASH_OFFSET_STANDBY_BITSTREAM  (0x80000000)
274
275#define FLASH_OFFSET_RESCUE_BITSTREAM   (0x800A0000)
276#define FLASH_OFFSET_RESCUE_BIOS        (0x80220000)
277#define FLASH_OFFSET_MAC_ADDRESS        (0x802200E0)
278#define FLASH_OFFSET_RESCUE_SPLASH      (0x80240000)
279#define FLASH_OFFSET_RESCUE_APP         (0x802E0000)
280
281#define FLASH_OFFSET_REGULAR_BITSTREAM  (0x806E0000)
282#define FLASH_OFFSET_REGULAR_BIOS       (0x80860000)
283#define FLASH_OFFSET_REGULAR_SPLASH     (0x80880000)
284#define FLASH_OFFSET_REGULAR_APP        (0x80920000)
285
286/* MMIO */
287#define MM_READ(reg) (*((volatile unsigned int *)(reg)))
288#define MM_WRITE(reg, val) *((volatile unsigned int *)(reg)) = val
289
290/* Flash partitions */
291
292#define FLASH_SECTOR_SIZE     (128*1024)
293
294#define FLASH_PARTITION_COUNT (5)
295
296#define FLASH_PARTITIONS { \
297  { .start_address = 0x806E0000, .length = 0x0180000 }, \
298  { .start_address = 0x80860000, .length = 0x0020000 }, \
299  { .start_address = 0x80880000, .length = 0x00A0000 }, \
300  { .start_address = 0x80920000, .length = 0x0400000 }, \
301  { .start_address = 0x80D20000, .length = 0x12E0000 }, \
302}
303
304#endif /* __SYSTEM_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.