source: rtems/c/src/lib/libbsp/mips/genmongoosev/start/mg5.h @ 3299388d

4.104.114.84.95
Last change on this file since 3299388d was 2276d255, checked in by Joel Sherrill <joel.sherrill@…>, on 02/02/02 at 19:28:13

2001-02-01 Greg Menke <gregory.menke@…>

  • include/lr33000.h, include/lr330x0.h, include/r3000.h, start/mg5.h: New files missed in previous commit.
  • timer/timer.c: Use rtems/bspIo.h not just bspIo.h.
  • Property mode set to 100644
File size: 12.7 KB
Line 
1/*
2**
3** Section 1: Registers
4**
5*/
6
7/*
8**
9*/
10#define  PMON_ADDRESS  0xbfc00000
11
12
13
14/*
15** Mongoose V Peripheral Function Registers
16*/
17
18#define MG5_COMMAND_REG     0xfffe0180
19
20/*
21** Extended Interrupt Registers
22** These registers are used as follows:
23** 1. The mask register is used to allow peripheral function and external
24**    interrupts to function. To enable an interrupt, set the appropriate
25**    bit.
26** 2. The status register contains the state of the peripheral functions
27**    and external devices. This register should be read to poll devices
28**    such as the uart when the interrupts are not enabled. Writing to this
29**    register will clear the interrupt.
30** 3. The Cause register is similar to the status register, with the
31**    exception that it only shows the bits that are set in the mask
32**    register. This register should be read to determine which interrupt(s)
33**    need to be serviced. This register when written to will CAUSE the interrupt.
34*/
35#define MG5_INT_STATUS_REG      0xfffe0184   /* Read to determine state/Write to clear */
36#define MG5_INT_CAUSE_REG       0xfffe0188   /* Read to determine int/Write to cause int */
37#define MG5_INT_MASK_REG        0xfffe018c   /* Set bit here to enable int */
38
39/*
40** EDAC Registers
41*/
42#define MG5_EDAC_ADDR_REG       0xfffe0190   /* edac error address */
43#define MG5_EDAC_PARITY_REG     0xfffe0194   /* edac parity */
44
45/*
46** High speed serial port registers
47** This section is reserved for future Mongoose Processors
48*/
49
50/*
51** Floating Point Register
52*/
53#define MG5_FPU_CNTRL_REG     0xfffe0020     /* FPU control register */
54
55/*
56** MAVN Registers
57*/
58#define MG5_MAVN_TEST_REG   0xfffe01b4   /* test mavn */
59#define MG5_MAVN_PRIVLEGE_REG   0xfffe01b8   /* privlege bits */
60#define MG5_MAVN_VIOLATION_REG  0xfffe01bc   /* address of violation */
61#define MG5_MAVN_RANGE_0_REG    0xfffe01c0   /* Range 0 */
62#define MG5_MAVN_RANGE_1_REG    0xfffe01c4   /* Range 1 */
63#define MG5_MAVN_RANGE_2_REG    0xfffe01c8   /* Range 2 */
64#define MG5_MAVN_RANGE_3_REG    0xfffe01cc   /* Range 3 */
65#define MG5_MAVN_RANGE_4_REG    0xfffe01d0   /* Range 4 */
66#define MG5_MAVN_RANGE_5_REG    0xfffe01d4   /* Range 5 */
67
68
69/*
70** Uart Specific Peripheral Function Registers
71*/
72#define MG5_UART_0_RX_REG   0xfffe01e8
73#define MG5_UART_0_TX_REG       0xfffe01ec
74#define MG5_UART_0_BAUD_REG     0xfffe01f0
75#define MG5_UART_1_RX_REG       0xfffe01f4
76#define MG5_UART_1_TX_REG       0xfffe01f8
77#define MG5_UART_1_BAUD_REG     0xfffe01fc
78
79
80/*
81** Section 2: Bit definitions
82**
83*/
84
85/*
86** Command Register Bits - defined from 31 to 0
87*/
88#define EDAC_ENABLE_BIT          0x80000000
89#define EDAC_OVERRIDE_BIT        0x40000000
90/* 29 - 16 reserved */
91#define UART_1_PARITY_EVEN_BIT  0x00008000
92#define UART_1_PARITY_ENABLE_BIT   0x00004000
93#define UART_1_RTS_BIT           0x00002000
94#define UART_1_TX_ENABLE_BIT         0x00001000
95#define UART_1_RX_ENABLE_BIT         0x00000800
96#define UART_1_TX_BREAK_BIT      0x00000400
97
98#define UART_0_PARITY_EVEN_BIT  0x00000200
99#define UART_0_PARITY_ENABLE_BIT   0x00000100
100#define UART_0_RTS_BIT           0x00000080
101#define UART_0_TX_ENABLE_BIT         0x00000040
102#define UART_0_RX_ENABLE_BIT         0x00000020
103#define UART_0_TX_BREAK_BIT      0x00000010
104
105#define UART_LOOPBACK_MODE_BIT  0x00000008
106#define UART_CTSN_TEST_BIT       0x00000004
107#define UART_RESET_BIT           0x00000002
108
109
110/*
111** Interrupt Status/Cause/Mask register bits - from 31 to 0
112*/
113#define EDAC_SERR_BIT            0x80000000
114#define EDAC_MERR_BIT            0x40000000
115/* 29 - 24 reserved */
116#define UART_0_RX_READY_BIT      0x00008000
117#define UART_0_TX_READY_BIT        0x00004000
118#define UART_0_TX_EMPTY_BIT      0x00002000
119#define UART_0_RX_OVERRUN_BIT      0x00001000
120#define UART_0_FRAME_ERR_BIT       0x00000800
121#define UART_0_RESERVED_BIT        0x00000400
122#define UART_1_RX_READY_BIT        0x00200000
123#define UART_1_TX_READY_BIT        0x00100000
124#define UART_1_TX_EMPTY_BIT        0x00080000
125#define UART_1_RX_OVERRUN_BIT      0x00040000
126#define UART_1_FRAME_ERR_BIT       0x00020000
127#define UART_1_RESERVED_BIT        0x00010000
128#define MAVN_WRITE_ACC_BIT       0x00400000
129#define MAVN_READ_ACC_BIT        0x00800000
130#define EXTERN_INT_9_BIT           0x00000200
131#define EXTERN_INT_8_BIT           0x00000100
132#define EXTERN_INT_7_BIT           0x00000080
133#define EXTERN_INT_6_BIT           0x00000040
134#define EXTERN_INT_5_BIT           0x00000020
135#define EXTERN_INT_4_BIT           0x00000010
136#define EXTERN_INT_3_BIT           0x00000008
137#define EXTERN_INT_2_BIT           0x00000004
138#define EXTERN_INT_1_BIT           0x00000002
139#define EXTERN_INT_0_BIT           0x00000001
140
141
142/*
143** MAVN Range Bits
144*/
145
146#define MAVN_RANGE_0_WRITE_BIT  0x00000001
147#define MAVN_RANGE_1_WRITE_BIT  0x00000002
148#define MAVN_RANGE_2_WRITE_BIT  0x00000004
149#define MAVN_RANGE_3_WRITE_BIT  0x00000008
150#define MAVN_RANGE_4_WRITE_BIT  0x00000010
151#define MAVN_RANGE_5_WRITE_BIT  0x00000020
152
153#define MAVN_GLOBAL_WRITE_BIT     0x00000200
154
155
156#define MAVN_RANGE_0_READ_BIT     0x00000400
157#define MAVN_RANGE_1_READ_BIT   0x00000800
158#define MAVN_RANGE_2_READ_BIT   0x00001000
159#define MAVN_RANGE_3_READ_BIT   0x00002000
160#define MAVN_RANGE_4_READ_BIT   0x00004000
161#define MAVN_RANGE_5_READ_BIT   0x00008000
162
163#define MAVN_GLOBAL_READ_BIT      0x00080000
164
165#define MAVN_ENABLE_BIT         0x80000000
166#define MAVN_TEST_BIT           0x40000000
167
168#define MAVN_RANGE_NO_ACESS  0x00000000
169
170#define MAVN_PS_CODE_512     0x00000009
171#define MAVN_PS_CODE_1K      0x0000000a
172#define MAVN_PS_CODE_2K      0x0000000b
173#define MAVN_PS_CODE_4K      0x0000000c
174#define MAVN_PS_CODE_8K      0x0000000d
175#define MAVN_PS_CODE_16K     0x0000000e
176#define MAVN_PS_CODE_32K     0x0000000f
177#define MAVN_PS_CODE_64K     0x00000010
178#define MAVN_PS_CODE_128K    0x00000011
179#define MAVN_PS_CODE_256K    0x00000012
180#define MAVN_PS_CODE_512K    0x00000013
181#define MAVN_PS_CODE_1M      0x00000014
182#define MAVN_PS_CODE_2M      0x00000015
183
184/*
185** FPU Control Bits
186*/
187#define FPU_CNTRL_CONDITION   0x00800000
188#define FPU_CNTRL_EXCEPT_E    0x00020000
189#define FPU_CNTRL_EXCEPT_V    0x00010000
190#define FPU_CNTRL_EXCEPT_Z    0x00008000
191#define FPU_CNTRL_EXCEPT_O    0x00004000
192#define FPU_CNTRL_EXCEPT_U    0x00002000
193#define FPU_CNTRL_EXCEPT_I    0x00001000
194#define FPU_CNTRL_TRAP_V      0x00000800
195#define FPU_CNTRL_TRAP_Z      0x00000400
196#define FPU_CNTRL_TRAP_O      0x00000200
197#define FPU_CNTRL_TRAP_U      0x00000100
198#define FPU_CNTRL_TRAP_I      0x00000080
199#define FPU_CNTRL_STICKY_V    0x00000040
200#define FPU_CNTRL_STICKY_Z    0x00000020
201#define FPU_CNTRL_STICKY_O    0x00000010
202#define FPU_CNTRL_STICKY_U    0x00000008
203#define FPU_CNTRL_STICKY_I    0x00000004
204#define FPU_CNTRL_ROUND_RN    0x00000000
205#define FPU_CNTRL_ROUND_RZ    0x00000001
206#define FPU_CNTRL_ROUND_RP    0x00000002
207#define FPU_CNTRL_ROUND_RM    0x00000003
208
209#define FPU_EXCEPTIONS        FPU_CNTRL_TRAP_V|FPU_CNTRL_TRAP_Z|FPU_CNTRL_TRAP_O|FPU_CNTRL_TRAP_U|FPU_CNTRL_TRAP_I
210#define FPU_CONFIGURATION     FPU_EXCEPTIONS|FPU_CNTRL_ROUND_RN
211
212/*
213**
214** Section 3 -- Masks
215**
216*/
217
218#define UART_TX_BAUD_MASK       0x00007FFF
219#define UART_RX_BAUD_MASK       0x7FFF0000
220#define UART_DATA_MASK          0x000000FF
221
222#define UART_TX_BAUD_4800(x)    ((((x*1000000)/4800) - 1) & UART_TX_BAUD_MASK)
223#define UART_TX_BAUD_9600(x)    ((((x*1000000)/9600) - 1) & UART_TX_BAUD_MASK)
224#define UART_TX_BAUD_19200(x)   ((((x*1000000)/19200) - 1)& UART_TX_BAUD_MASK)
225#define UART_TX_BAUD_38400(x)   ((((x*1000000)/38400) - 1)& UART_TX_BAUD_MASK)
226
227#define UART_RX_BAUD_4800(x)    (((((x*1000000)/4800) - 1)  << 16) & UART_RX_BAUD_MASK)
228#define UART_RX_BAUD_9600(x)    (((((x*1000000)/9600) - 1)  << 16) & UART_RX_BAUD_MASK)
229#define UART_RX_BAUD_19200(x)   (((((x*1000000)/19200) - 1) << 16)& UART_RX_BAUD_MASK)
230#define UART_RX_BAUD_38400(x)   (((((x*1000000)/38400) - 1) << 16)& UART_RX_BAUD_MASK)
231
232#define UART_BAUD_4800(x)    ((((x*1000000)/4800) - 1) & UART_TX_BAUD_MASK) | (((((x*1000000)/4800) - 1)  << 16) & UART_RX_BAUD_MASK)
233#define UART_BAUD_9600(x)    ((((x*1000000)/9600) - 1) & UART_TX_BAUD_MASK) | (((((x*1000000)/9600) - 1)  << 16) & UART_RX_BAUD_MASK)
234#define UART_BAUD_19200(x)   ((((x*1000000)/19200) - 1)& UART_TX_BAUD_MASK) | (((((x*1000000)/19200) - 1) << 16)& UART_RX_BAUD_MASK)
235#define UART_BAUD_38400(x)   ((((x*1000000)/38400) - 1)& UART_TX_BAUD_MASK) | (((((x*1000000)/38400) - 1) << 16)& UART_RX_BAUD_MASK)
236
237#define EDAC_PARITY_MASK        0x000000FF
238
239#define MAVN_START_ADDR_MASK    0xFFFFFE00
240#define MAVN_PS_CODE_MASK       0x0000001F
241
242
243
244
245
246
247/* lr33000.h - defines for LSI Logic LR33000 */
248
249/* Define counter/timer register addresses */
250#define M_TIC1  0xfffe0000  /* timer 1 initial count */
251#define M_TC1   0xfffe0004  /* timer 1 control   */
252#define M_TIC2  0xfffe0008  /* timer 2 initial count */
253#define M_TC2   0xfffe000c  /* timer 2 control   */
254#define M_RTIC  0xfffe0010  /* refresh timer     */
255
256#ifdef LANGUAGE_C
257#define TIC1   (*((volatile unsigned long *)M_TIC1)) /* timer1 count */
258#define TC1    (*((volatile unsigned long *)M_TC1))  /* timer1 cntrl */
259#define TIC2   (*((volatile unsigned long *)M_TIC2)) /* timer2 count */
260#define TC2    (*((volatile unsigned long *)M_TC2))  /* timer2 cntrl */
261#define RTIC   (*((volatile unsigned long *)M_RTIC)) /* refrsh timer */
262#endif
263
264/* Definitions for counter/timer control register bits */
265#define TC_CE    0x00000004 /* count enable */
266#define TC_IE    0x00000002 /* interrupt enable */
267#define TC_INT   0x00000001 /* interrupt request */
268
269/* lr33000.h */
270
271
272
273
274
275
276#define _LR33300_
277
278#define M_SRAM      0xfffe0100  /* SRAM config reg */
279#define M_SPEC0     0xfffe0104
280#define M_SPEC1     0xfffe0108
281#define M_SPEC2     0xfffe010c
282#define M_SPEC3     0xfffe0110
283#define M_DRAM      0xfffe0120  /* DRAM config reg */
284
285#ifdef LANGUAGE_C
286#define SRAM        (*((volatile unsigned long *)M_SRAM))
287#define SPEC0       (*((volatile unsigned long *)M_SPEC0))
288#define SPEC1       (*((volatile unsigned long *)M_SPEC1))
289#define SPEC2       (*((volatile unsigned long *)M_SPEC2))
290#define SPEC3       (*((volatile unsigned long *)M_SPEC3))
291#define DRAM        (*((volatile unsigned long *)M_DRAM))
292#endif
293
294    /* wait-state config registers */
295#define SPC_INHIBITMASK (0xf<<24)
296#define SPC_INHIBITSHFT 24
297#define SPC_EXTGNT  (1<<23)
298#define SPC_16WIDE  (1<<22)
299#define SPC_8WIDE   (1<<21)
300#define SPC_PENA    (1<<20)
301#define SPC_CACHED  (1<<19)
302#define SPC_CSDLYMASK   (3<<17)
303#define SPC_CSDLYSHFT   17
304#define SPC_BLKENA  (1<<16)
305#define SPC_BLKWAITMASK (7<<13)
306#define SPC_BLKWAITSHFT 13
307#define SPC_RECMASK (63<<7)
308#define SPC_RECSHFT 7
309#define SPC_WAITENA (1<<6)
310#define SPC_WAITMASK    (63<<0)
311#define SPC_WAITSHFT    0
312
313    /* DCR */
314#define DRAM_DLP1   (1<<28)
315#define DRAM_SYNC   (1<<27)
316#define DRAM_SCFG   (1<<26)
317#define DRAM_DMARDY (1<<25)
318#define DRAM_DMABLKMASK (7<<22)
319#define DRAM_DMABLKSHFT 22
320#define DRAM_DPTHMASK   (3<<20)
321#define DRAM_DPTHSHFT   20
322#define DRAM_RDYW   (1<<19)
323#define DRAM_PGSZMASK   (7<<16)
324#define DRAM_PGSZSHFT   16
325#define DRAM_PGMW   (1<<15)
326#define DRAM_RFWEMASK   (3<<13)
327#define DRAM_RFWESHFT   13
328#define DRAM_RFEN   (1<<12)
329#define DRAM_RDYEN  (1<<11)
330#define DRAM_BFD    (1<<10)
331#define DRAM_PE     (1<<9)
332#define DRAM_RPCMASK    (3<<7)
333#define DRAM_RPCSHFT    7
334#define DRAM_RCDMASK    (3<<5)
335#define DRAM_RCDSHFT    5
336#define DRAM_CS     (1<<4)
337#define DRAM_CLMASK (7<<1)
338#define DRAM_CLSHFT 1
339#define DRAM_DCE    (1<<0)
340
341/* _LR33300_ */
342
343
344
345
346
347
348
349#define _ERNIE_CORE_
350
351#define M_BIU       0xfffe0130
352
353#ifdef LANGUAGE_C
354#define BIU     (*((volatile unsigned long *)M_BIU))
355
356#define C0_TAR      6       /* target address register */
357#define C0_BDAM     9       /* breakpoint data addr mask */
358#define C0_BPCM     11      /* breakpoint instr addr mask */
359#else
360#define C0_TAR      $6      /* target address register */
361#define C0_BDAM     $9      /* breakpoint data addr mask */
362#define C0_BPCM     $11     /* breakpoint instr addr mask */
363#endif
364
365    /* cause register */
366#define CAUSE_BT    (1<<30)     /* branch taken */
367
368    /* BIU */
369#define BIU_NOSTR   (1<<17)
370#define BIU_LDSCH   (1<<16)
371#define BIU_BGNT    (1<<15)
372#define BIU_NOPAD   (1<<14)
373#define BIU_RDPRI   (1<<13)
374#define BIU_INTP    (1<<12)
375#define BIU_IS1     (1<<11)
376#define BIU_IS0     (1<<10)
377#define BIU_IBLKSZMASK  (3<<8)
378#define BIU_IBLKSZSHFT  8
379#define BIU_IBLKSZ2 (0<<BIU_IBLKSZSHFT)
380#define BIU_IBLKSZ4 (1<<BIU_IBLKSZSHFT)
381#define BIU_IBLKSZ8 (2<<BIU_IBLKSZSHFT)
382#define BIU_IBLKSZ16    (3<<BIU_IBLKSZSHFT)
383#define BIU_DS      (1<<7)
384#define BIU_DS1     (1<<7)
385#define BIU_DS0     (1<<6)
386#define BIU_DBLKSZMASK  (3<<4)
387#define BIU_DBLKSZSHFT  4
388#define BIU_DBLKSZ2 (0<<BIU_DBLKSZSHFT)
389#define BIU_DBLKSZ4 (1<<BIU_DBLKSZSHFT)
390#define BIU_DBLKSZ8 (2<<BIU_DBLKSZSHFT)
391#define BIU_DBLKSZ16    (3<<BIU_DBLKSZSHFT)
392#define BIU_RAM     (1<<3)
393#define BIU_TAG     (1<<2)
394#define BIU_INV     (1<<1)
395#define BIU_LOCK    (1<<0)
396
397/* _ERNIE_CORE_ */
398
399
400/* Definitions for cache sizes */
401
402#define LR33300_IC_SIZE 0x1000      /* 33300 Inst cache = 4Kbytes */
403#define LR33300_DC_SIZE 0x800       /* 33300 Data cache = 2Kbytes */
404
Note: See TracBrowser for help on using the repository browser.