Blame view

include/mpc5xx.h 7.58 KB
0db5bca80   wdenk   * Patch by Martin...
1
2
3
4
  /*
   * (C) Copyright 2003
   * Martin Winistoerfer, martinwinistoerfer@gmx.ch.
   *
1a4596601   Wolfgang Denk   Add GPL-2.0+ SPDX...
5
   * SPDX-License-Identifier:	GPL-2.0+
0db5bca80   wdenk   * Patch by Martin...
6
7
8
9
   */
  
  /*
   * File:		mpc5xx.h
8bde7f776   wdenk   * Code cleanup:
10
   *
0db5bca80   wdenk   * Patch by Martin...
11
12
13
14
15
16
17
18
19
20
21
22
   * Discription:		mpc5xx specific definitions
   *
   */
  
  #ifndef __MPC5XX_H__
  #define __MPC5XX_H__
  
  
  /*-----------------------------------------------------------------------
   * Exception offsets (PowerPC standard)
   */
  #define EXC_OFF_SYS_RESET	0x0100	/* System reset				*/
02032e8f1   Rafal Jaworowski   [ppc] Fix build b...
23
  #define _START_OFFSET		EXC_OFF_SYS_RESET
0db5bca80   wdenk   * Patch by Martin...
24
25
26
27
  
  /*-----------------------------------------------------------------------
   * ISB bit in IMMR to set internal memory map
   */
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
28
  #define CONFIG_SYS_ISB			((CONFIG_SYS_IMMR / 0x00400000) << 1)
0db5bca80   wdenk   * Patch by Martin...
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
  
  /*-----------------------------------------------------------------------
   * SYPCR - System Protection Control Register
   */
  #define SYPCR_SWTC	0xffff0000	/* Software Watchdog Timer Count	*/
  #define SYPCR_BMT	0x0000ff00	/* Bus Monitor Timing			*/
  #define SYPCR_BME	0x00000080	/* Bus Monitor Enable			*/
  #define SYPCR_SWF	0x00000008	/* Software Watchdog Freeze		*/
  #define SYPCR_SWE	0x00000004	/* Software Watchdog Enable		*/
  #define SYPCR_SWRI	0x00000002	/* Software Watchdog Reset/Int Select	*/
  #define SYPCR_SWP	0x00000001	/* Software Watchdog Prescale		*/
  
  /*-----------------------------------------------------------------------
   * SIUMCR - SIU Module Configuration Register
   */
  #define SIUMCR_EARB	0x80000000	/* External Arbitration			*/
  #define SIUMCR_EARP0	0x00000000	/* External Arbi. Request priority 0	*/
  #define SIUMCR_EARP1	0x10000000	/* External Arbi. Request priority 1	*/
  #define SIUMCR_EARP2	0x20000000	/* External Arbi. Request priority 2	*/
  #define SIUMCR_EARP3	0x30000000	/* External Arbi. Request priority 3	*/
  #define SIUMCR_EARP4	0x40000000	/* External Arbi. Request priority 4	*/
  #define SIUMCR_EARP5	0x50000000	/* External Arbi. Request priority 5	*/
  #define SIUMCR_EARP6	0x60000000	/* External Arbi. Request priority 6	*/
  #define SIUMCR_EARP7	0x70000000	/* External Arbi. Request priority 7	*/
  #define SIUMCR_DSHW	0x00800000	/* Data Showcycles			*/
  #define SIUMCR_DBGC00	0x00000000	/* Debug pins configuration		*/
  #define SIUMCR_DBGC01	0x00200000	/* - " -				*/
  #define SIUMCR_DBGC10	0x00400000	/* - " -				*/
  #define SIUMCR_DBGC11	0x00600000	/* - " -				*/
  #define SIUMCR_DBPC00	0x00000000	/* Debug Port pins Config.		*/
  #define SIUMCR_DBPC01	0x00080000	/* - " -				*/
  #define SIUMCR_DBPC10	0x00100000	/* - " -				*/
  #define SIUMCR_DBPC11	0x00180000	/* - " -				*/
1636d1c85   Wolfgang Denk   Coding stylke cle...
62
63
64
65
  #define SIUMCR_GPC00	0x00000000	/* General Pins Config			*/
  #define SIUMCR_GPC01	0x00020000	/* General Pins Config			*/
  #define SIUMCR_GPC10	0x00040000	/* General Pins Config			*/
  #define SIUMCR_GPC11	0x00060000	/* General Pins Config			*/
0db5bca80   wdenk   * Patch by Martin...
66
67
68
69
70
71
72
73
74
75
  #define SIUMCR_DLK	0x00010000	/* Debug Register Lock			*/
  #define SIUMCR_SC00	0x00000000	/* Multi Chip 32 bit			*/
  #define SIUMCR_SC01	0x00004000	/* Muilt Chip 16 bit			*/
  #define SIUMCR_SC10	0x00004000	/* Single adress show			*/
  #define SIUMCR_SC11	0x00006000	/* Single adress			*/
  #define SIUMCR_RCTX	0x00001000	/* Data Parity pins Config.		*/
  #define SIUMCR_MLRC00	0x00000000	/* Multi Level Reserva. Ctrl		*/
  #define SIUMCR_MLRC01	0x00000400	/* - " -				*/
  #define SIUMCR_MLRC10	0x00000800	/* - " -				*/
  #define SIUMCR_MLRC11	0x00000c00	/* - " -				*/
1636d1c85   Wolfgang Denk   Coding stylke cle...
76
  #define SIUMCR_MTSC	0x00000100	/* Memory transfer			*/
0db5bca80   wdenk   * Patch by Martin...
77
78
  
  /*-----------------------------------------------------------------------
8bde7f776   wdenk   * Code cleanup:
79
   * TBSCR - Time Base Status and Control Register
0db5bca80   wdenk   * Patch by Martin...
80
81
82
83
84
85
86
87
88
   */
  #define TBSCR_REFA	((ushort)0x0080)	/* Reference Interrupt Status A	*/
  #define TBSCR_REFB	((ushort)0x0040)	/* Reference Interrupt Status B */
  #define TBSCR_TBF	((ushort)0x0002)	/* Time Base stops while FREEZE */
  
  /*-----------------------------------------------------------------------
   * PISCR - Periodic Interrupt Status and Control Register
   */
  #define PISCR_PITF	((ushort)0x0002)	/* PIT stops when FREEZE	*/
b6e4c4033   wdenk   * Patch by Denis ...
89
  #define PISCR_PS	0x0080			/* Periodic Interrupt Status	*/
0db5bca80   wdenk   * Patch by Martin...
90
91
92
93
94
95
96
97
  
  /*-----------------------------------------------------------------------
   * PLPRCR - PLL, Low-Power, and Reset Control Register
   */
  #define PLPRCR_MF_MSK	0xfff00000	/* MF mask				*/
  #define PLPRCR_DIVF_MSK	0x0000001f	/* DIVF mask				*/
  #define PLPRCR_CSRC_MSK 0x00000400	/* CSRC mask				*/
  #define PLPRCR_MF_SHIFT 0x00000014	/* Multiplication factor shift value	*/
b6e4c4033   wdenk   * Patch by Denis ...
98
99
  #define PLPRCR_DIVF_0   0x00000000	/* Division factor 0			*/
  #define PLPRCR_MF_9     0x00900000	/* Mulitipliaction factor 9		*/
0db5bca80   wdenk   * Patch by Martin...
100
101
102
  #define PLPRCR_TEXPS	0x00004000	/* TEXP Status				*/
  #define PLPRCR_TMIST	0x00001000	/* Timers Interrupt Status		*/
  #define PLPRCR_CSR	0x00000080	/* CheskStop Reset value		*/
b6e4c4033   wdenk   * Patch by Denis ...
103
  #define PLPRCR_SPLSS	0x00008000	/* SPLL Lock Status Sticky bit		*/
0db5bca80   wdenk   * Patch by Martin...
104
105
  
  /*-----------------------------------------------------------------------
8bde7f776   wdenk   * Code cleanup:
106
   * SCCR - System Clock and reset Control Register
0db5bca80   wdenk   * Patch by Martin...
107
108
   */
  #define SCCR_DFNL_MSK	0x00000070	/* DFNL mask				*/
1636d1c85   Wolfgang Denk   Coding stylke cle...
109
  #define SCCR_DFNH_MSK	0x00000007	/* DFNH mask				*/
0db5bca80   wdenk   * Patch by Martin...
110
111
  #define SCCR_DFNL_SHIFT 0x0000004	/* DFNL shift value			*/
  #define SCCR_RTSEL	0x00100000	/* RTC circuit input source select	*/
8bde7f776   wdenk   * Code cleanup:
112
  #define SCCR_EBDF00	0x00000000	/* Division factor 1. CLKOUT is GCLK2   */
0db5bca80   wdenk   * Patch by Martin...
113
114
  #define SCCR_EBDF11	0x00060000	/* reserved				*/
  #define SCCR_TBS	0x02000000	/* Time Base Source			*/
1636d1c85   Wolfgang Denk   Coding stylke cle...
115
  #define SCCR_RTDIV	0x01000000	/* RTC Clock Divide			*/
0db5bca80   wdenk   * Patch by Martin...
116
  #define SCCR_COM00	0x00000000	/* full strength CLKOUT output buffer	*/
b6e4c4033   wdenk   * Patch by Denis ...
117
  #define SCCR_COM01	0x20000000	/* half strength CLKOUT output buffer	*/
0db5bca80   wdenk   * Patch by Martin...
118
119
120
121
122
123
  #define SCCR_DFNL000	0x00000000	/* Division by 2 (default = minimum)	*/
  #define SCCR_DFNH000	0x00000000	/* Division by 1 (default = minimum)	*/
  
  /*-----------------------------------------------------------------------
   * MC - Memory Controller
   */
1636d1c85   Wolfgang Denk   Coding stylke cle...
124
125
126
127
128
  #define BR_V		0x00000001	/* Bank valid				*/
  #define BR_BI		0x00000002	/* Burst inhibit			*/
  #define BR_PS_8		0x00000400	/* 8 bit port size			*/
  #define BR_PS_16	0x00000800	/* 16 bit port size			*/
  #define BR_PS_32	0x00000000	/* 32 bit port size			*/
0db5bca80   wdenk   * Patch by Martin...
129
  #define BR_LBDIR	0x00000008	/* Late burst data in progess		*/
b6e4c4033   wdenk   * Patch by Denis ...
130
  #define BR_SETA		0x00000004	/* External Data Acknowledge		*/
0db5bca80   wdenk   * Patch by Martin...
131
132
133
134
135
136
137
  #define OR_SCY_3	0x00000030	/* 3 clock cycles wait states		*/
  #define OR_SCY_1	0x00000000	/* 1 clock cycle wait state		*/
  #define OR_SCY_8	0x00000080	/* 8 clock cycles wait states		*/
  #define OR_TRLX		0x00000001	/* Timing relaxed			*/
  #define OR_BSCY		0x00000060	/* Burst beats length in clocks		*/
  #define OR_ACS_10	0x00000600	/* Adress to chip-select setup		*/
  #define OR_CSNT		0x00000800	/* Chip-select negotation time		*/
b6e4c4033   wdenk   * Patch by Denis ...
138
  #define OR_ETHR		0x00000100	/* Extended hold time on read		*/
0db5bca80   wdenk   * Patch by Martin...
139
140
141
142
143
144
  #define OR_ADDR_MK_FF	0xFF000000
  #define OR_ADDR_MK_FFFF	0xFFFF0000
  
  /*-----------------------------------------------------------------------
   * UMCR - UIMB Module Configuration Register
   */
1636d1c85   Wolfgang Denk   Coding stylke cle...
145
146
  #define UMCR_FSPEED	0x00000000	/* Full speed. Opposit of UMCR_HSPEED	*/
  #define UMCR_HSPEED	0x10000000	/* Half speed				*/
0db5bca80   wdenk   * Patch by Martin...
147
148
149
150
151
152
153
154
155
156
157
158
  
  /*-----------------------------------------------------------------------
   * ICTRL - I-Bus Support Control Register
   */
  #define ICTRL_ISCT_SER_7 0x00000007	/* All indirect change of flow		*/
  
  
  #define NR_IRQS		0		/* Place this later in a separate file */
  
  /*-----------------------------------------------------------------------
   * SCI - Serial communication interface
   */
1636d1c85   Wolfgang Denk   Coding stylke cle...
159
160
  #define SCI_TDRE	0x0100		/* Transmit data register empty		*/
  #define SCI_TE		0x0008		/* Transmitter enabled			*/
0db5bca80   wdenk   * Patch by Martin...
161
  #define SCI_RE		0x0004		/* Receiver enabled			*/
1636d1c85   Wolfgang Denk   Coding stylke cle...
162
163
164
165
  #define SCI_RDRF	0x0040		/* Receive data register full		*/
  #define SCI_PE		0x0400		/* Parity enable			*/
  #define SCI_SCXBR_MK	0x1fff		/* Baudrate mask			*/
  #define SCI_SCXDR_MK	0x00ff		/* Data register mask			*/
0db5bca80   wdenk   * Patch by Martin...
166
167
  #define SCI_M_11	0x0200		/* Frame size is 11 bit			*/
  #define SCI_M_10	0x0000		/* Frame size is 10 bit			*/
1636d1c85   Wolfgang Denk   Coding stylke cle...
168
  #define SCI_PORT_1	((int)1)	/* Place this later somewhere better	*/
0db5bca80   wdenk   * Patch by Martin...
169
170
171
  #define SCI_PORT_2	((int)2)
  
  #endif	/* __MPC5XX_H__ */