]> git.ipfire.org Git - people/ms/u-boot.git/blame - board/amcc/yucca/yucca.h
Code cleanup
[people/ms/u-boot.git] / board / amcc / yucca / yucca.h
CommitLineData
6c5879f3
MB
1/*
2 * (C) Copyright 2006
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
5 * See file CREDITS for list of people who contributed to this
6 * project.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 * MA 02111-1307 USA
22 */
23
24#ifndef __YUCCA_H_
25#define __YUCCA_H_
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31/*----------------------------------------------------------------------------+
32| Defines
33+----------------------------------------------------------------------------*/
34
35#define TMR_FREQ_EXT 25000000
36#define BOARD_UART_CLOCK 11059200
37
38#define BOARD_OPTION_SELECTED 1
39#define BOARD_OPTION_NOT_SELECTED 0
40
41#define ENGINEERING_CLOCK_CHECKING "clk_chk"
42#define ENGINEERING_EXTERNAL_CLOCK "ext_clk"
43
44#define ENGINEERING_CLOCK_CHECKING_DATA 1
45#define ENGINEERING_EXTERNAL_CLOCK_DATA 2
46
47/* ethernet definition */
48#define MAX_ENETMODE_PARM 3
49#define ENETMODE_NEG 0
50#define ENETMODE_SPEED 1
51#define ENETMODE_DUPLEX 2
52
53#define ENETMODE_AUTONEG 0
54#define ENETMODE_NO_AUTONEG 1
55#define ENETMODE_10 2
56#define ENETMODE_100 3
57#define ENETMODE_1000 4
58#define ENETMODE_HALF 5
59#define ENETMODE_FULL 6
60
61#define NUM_TLB_ENTRIES 64
62
63/*----------------------------------------------------------------------------+
64| TLB specific defines.
65+----------------------------------------------------------------------------*/
66#define TLB_256MB_ALIGN_MASK 0xF0000000
67#define TLB_16MB_ALIGN_MASK 0xFF000000
68#define TLB_1MB_ALIGN_MASK 0xFFF00000
69#define TLB_256KB_ALIGN_MASK 0xFFFC0000
70#define TLB_64KB_ALIGN_MASK 0xFFFF0000
71#define TLB_16KB_ALIGN_MASK 0xFFFFC000
72#define TLB_4KB_ALIGN_MASK 0xFFFFF000
73#define TLB_1KB_ALIGN_MASK 0xFFFFFC00
74#define TLB_256MB_SIZE 0x10000000
75#define TLB_16MB_SIZE 0x01000000
76#define TLB_1MB_SIZE 0x00100000
77#define TLB_256KB_SIZE 0x00040000
78#define TLB_64KB_SIZE 0x00010000
79#define TLB_16KB_SIZE 0x00004000
80#define TLB_4KB_SIZE 0x00001000
81#define TLB_1KB_SIZE 0x00000400
82
83#define TLB_WORD0_EPN_MASK 0xFFFFFC00
84#define TLB_WORD0_EPN_ENCODE(n) (((unsigned long)(n))&0xFFFFFC00)
85#define TLB_WORD0_EPN_DECODE(n) (((unsigned long)(n))&0xFFFFFC00)
86#define TLB_WORD0_V_MASK 0x00000200
87#define TLB_WORD0_V_ENABLE 0x00000200
88#define TLB_WORD0_V_DISABLE 0x00000000
89#define TLB_WORD0_TS_MASK 0x00000100
90#define TLB_WORD0_TS_1 0x00000100
91#define TLB_WORD0_TS_0 0x00000000
92#define TLB_WORD0_SIZE_MASK 0x000000F0
93#define TLB_WORD0_SIZE_1KB 0x00000000
94#define TLB_WORD0_SIZE_4KB 0x00000010
95#define TLB_WORD0_SIZE_16KB 0x00000020
96#define TLB_WORD0_SIZE_64KB 0x00000030
97#define TLB_WORD0_SIZE_256KB 0x00000040
98#define TLB_WORD0_SIZE_1MB 0x00000050
99#define TLB_WORD0_SIZE_16MB 0x00000070
100#define TLB_WORD0_SIZE_256MB 0x00000090
101#define TLB_WORD0_TPAR_MASK 0x0000000F
102#define TLB_WORD0_TPAR_ENCODE(n) ((((unsigned long)(n))&0x0F)<<0)
103#define TLB_WORD0_TPAR_DECODE(n) ((((unsigned long)(n))>>0)&0x0F)
104
105#define TLB_WORD1_RPN_MASK 0xFFFFFC00
106#define TLB_WORD1_RPN_ENCODE(n) (((unsigned long)(n))&0xFFFFFC00)
107#define TLB_WORD1_RPN_DECODE(n) (((unsigned long)(n))&0xFFFFFC00)
108#define TLB_WORD1_PAR1_MASK 0x00000300
109#define TLB_WORD1_PAR1_ENCODE(n) ((((unsigned long)(n))&0x03)<<8)
110#define TLB_WORD1_PAR1_DECODE(n) ((((unsigned long)(n))>>8)&0x03)
111#define TLB_WORD1_PAR1_0 0x00000000
112#define TLB_WORD1_PAR1_1 0x00000100
113#define TLB_WORD1_PAR1_2 0x00000200
114#define TLB_WORD1_PAR1_3 0x00000300
115#define TLB_WORD1_ERPN_MASK 0x0000000F
116#define TLB_WORD1_ERPN_ENCODE(n) ((((unsigned long)(n))&0x0F)<<0)
117#define TLB_WORD1_ERPN_DECODE(n) ((((unsigned long)(n))>>0)&0x0F)
118
119#define TLB_WORD2_PAR2_MASK 0xC0000000
120#define TLB_WORD2_PAR2_ENCODE(n) ((((unsigned long)(n))&0x03)<<30)
121#define TLB_WORD2_PAR2_DECODE(n) ((((unsigned long)(n))>>30)&0x03)
122#define TLB_WORD2_PAR2_0 0x00000000
123#define TLB_WORD2_PAR2_1 0x40000000
124#define TLB_WORD2_PAR2_2 0x80000000
125#define TLB_WORD2_PAR2_3 0xC0000000
126#define TLB_WORD2_U0_MASK 0x00008000
127#define TLB_WORD2_U0_ENABLE 0x00008000
128#define TLB_WORD2_U0_DISABLE 0x00000000
129#define TLB_WORD2_U1_MASK 0x00004000
130#define TLB_WORD2_U1_ENABLE 0x00004000
131#define TLB_WORD2_U1_DISABLE 0x00000000
132#define TLB_WORD2_U2_MASK 0x00002000
133#define TLB_WORD2_U2_ENABLE 0x00002000
134#define TLB_WORD2_U2_DISABLE 0x00000000
135#define TLB_WORD2_U3_MASK 0x00001000
136#define TLB_WORD2_U3_ENABLE 0x00001000
137#define TLB_WORD2_U3_DISABLE 0x00000000
138#define TLB_WORD2_W_MASK 0x00000800
139#define TLB_WORD2_W_ENABLE 0x00000800
140#define TLB_WORD2_W_DISABLE 0x00000000
141#define TLB_WORD2_I_MASK 0x00000400
142#define TLB_WORD2_I_ENABLE 0x00000400
143#define TLB_WORD2_I_DISABLE 0x00000000
144#define TLB_WORD2_M_MASK 0x00000200
145#define TLB_WORD2_M_ENABLE 0x00000200
146#define TLB_WORD2_M_DISABLE 0x00000000
147#define TLB_WORD2_G_MASK 0x00000100
148#define TLB_WORD2_G_ENABLE 0x00000100
149#define TLB_WORD2_G_DISABLE 0x00000000
150#define TLB_WORD2_E_MASK 0x00000080
151#define TLB_WORD2_E_ENABLE 0x00000080
152#define TLB_WORD2_E_DISABLE 0x00000000
153#define TLB_WORD2_UX_MASK 0x00000020
154#define TLB_WORD2_UX_ENABLE 0x00000020
155#define TLB_WORD2_UX_DISABLE 0x00000000
156#define TLB_WORD2_UW_MASK 0x00000010
157#define TLB_WORD2_UW_ENABLE 0x00000010
158#define TLB_WORD2_UW_DISABLE 0x00000000
159#define TLB_WORD2_UR_MASK 0x00000008
160#define TLB_WORD2_UR_ENABLE 0x00000008
161#define TLB_WORD2_UR_DISABLE 0x00000000
162#define TLB_WORD2_SX_MASK 0x00000004
163#define TLB_WORD2_SX_ENABLE 0x00000004
164#define TLB_WORD2_SX_DISABLE 0x00000000
165#define TLB_WORD2_SW_MASK 0x00000002
166#define TLB_WORD2_SW_ENABLE 0x00000002
167#define TLB_WORD2_SW_DISABLE 0x00000000
168#define TLB_WORD2_SR_MASK 0x00000001
169#define TLB_WORD2_SR_ENABLE 0x00000001
170#define TLB_WORD2_SR_DISABLE 0x00000000
171
172/*----------------------------------------------------------------------------+
173| Board specific defines.
174+----------------------------------------------------------------------------*/
175#define NONCACHE_MEMORY_SIZE (64*1024)
176#define NONCACHE_AREA0_ENDOFFSET (64*1024)
177#define NONCACHE_AREA1_ENDOFFSET (32*1024)
178
179#define FLASH_SECTORSIZE 0x00010000
180
181/* SDRAM MICRON */
182#define SDRAM_MICRON 0x2C
183
184#define SDRAM_TRUE 1
185#define SDRAM_FALSE 0
186#define SDRAM_DDR1 1
187#define SDRAM_DDR2 2
188#define SDRAM_NONE 0
189#define MAXDIMMS 2 /* Changes le 12/01/05 pour 1.6 */
190#define MAXRANKS 4 /* Changes le 12/01/05 pour 1.6 */
191#define MAXBANKSPERDIMM 2
192#define MAXRANKSPERDIMM 2
193#define MAXBXCF 4 /* Changes le 12/01/05 pour 1.6 */
194#define MAXSDRAMMEMORY 0xFFFFFFFF /* 4GB */
195#define ERROR_STR_LENGTH 256
196#define MAX_SPD_BYTES 256 /* Max number of bytes on the DIMM's SPD EEPROM */
197
198/*----------------------------------------------------------------------------+
199| SDR Configuration registers
200+----------------------------------------------------------------------------*/
201/* Serial Device Strap Reg 0 */
202#define sdr_pstrp0 0x0040
203
204#define SDR0_SDSTP1_EBC_ROM_BS_MASK 0x00000080 /* EBC Boot bus width Mask */
205#define SDR0_SDSTP1_EBC_ROM_BS_16BIT 0x00000080 /* EBC 16 Bits */
206#define SDR0_SDSTP1_EBC_ROM_BS_8BIT 0x00000000 /* EBC 8 Bits */
207
208#define SDR0_SDSTP1_BOOT_SEL_MASK 0x00080000 /* Boot device Selection Mask */
209#define SDR0_SDSTP1_BOOT_SEL_EBC 0x00000000 /* EBC */
210#define SDR0_SDSTP1_BOOT_SEL_PCI 0x00080000 /* PCI */
211
212#define SDR0_SDSTP1_EBC_SIZE_MASK 0x00000060 /* Boot rom size Mask */
213#define SDR0_SDSTP1_BOOT_SIZE_16MB 0x00000060 /* 16 MB */
214#define SDR0_SDSTP1_BOOT_SIZE_8MB 0x00000040 /* 8 MB */
215#define SDR0_SDSTP1_BOOT_SIZE_4MB 0x00000020 /* 4 MB */
216#define SDR0_SDSTP1_BOOT_SIZE_2MB 0x00000000 /* 2 MB */
217
218/* Serial Device Enabled - Addr = 0xA8 */
219#define SDR0_PSTRP0_BOOTSTRAP_IIC_A8_EN SDR0_PSTRP0_BOOTSTRAP_SETTINGS5
220/* Serial Device Enabled - Addr = 0xA4 */
221#define SDR0_PSTRP0_BOOTSTRAP_IIC_A4_EN SDR0_PSTRP0_BOOTSTRAP_SETTINGS7
222
223/* Pin Straps Reg */
224#define SDR0_PSTRP0 0x0040
225#define SDR0_PSTRP0_BOOTSTRAP_MASK 0xE0000000 /* Strap Bits */
226
227#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS0 0x00000000 /* Default strap settings 0 */
228#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS1 0x20000000 /* Default strap settings 1 */
229#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS2 0x40000000 /* Default strap settings 2 */
230#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS3 0x60000000 /* Default strap settings 3 */
231#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS4 0x80000000 /* Default strap settings 4 */
232#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS5 0xA0000000 /* Default strap settings 5 */
233#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS6 0xC0000000 /* Default strap settings 6 */
234#define SDR0_PSTRP0_BOOTSTRAP_SETTINGS7 0xE0000000 /* Default strap settings 7 */
235
236/* fpgareg - defines are in include/config/YUCCA.h */
237
238#define SDR0_CUST0_ENET3_MASK 0x00000080
239#define SDR0_CUST0_ENET3_COPPER 0x00000000
240#define SDR0_CUST0_ENET3_FIBER 0x00000080
241#define SDR0_CUST0_RGMII3_MASK 0x00000070
242#define SDR0_CUST0_RGMII3_ENCODE(n) ((((unsigned long)(n))&0x7)<<4)
243#define SDR0_CUST0_RGMII3_DECODE(n) ((((unsigned long)(n))>>4)&0x07)
244#define SDR0_CUST0_RGMII3_DISAB 0x00000000
245#define SDR0_CUST0_RGMII3_RTBI 0x00000040
246#define SDR0_CUST0_RGMII3_RGMII 0x00000050
247#define SDR0_CUST0_RGMII3_TBI 0x00000060
248#define SDR0_CUST0_RGMII3_GMII 0x00000070
249#define SDR0_CUST0_ENET2_MASK 0x00000008
250#define SDR0_CUST0_ENET2_COPPER 0x00000000
251#define SDR0_CUST0_ENET2_FIBER 0x00000008
252#define SDR0_CUST0_RGMII2_MASK 0x00000007
253#define SDR0_CUST0_RGMII2_ENCODE(n) ((((unsigned long)(n))&0x7)<<0)
254#define SDR0_CUST0_RGMII2_DECODE(n) ((((unsigned long)(n))>>0)&0x07)
255#define SDR0_CUST0_RGMII2_DISAB 0x00000000
256#define SDR0_CUST0_RGMII2_RTBI 0x00000004
257#define SDR0_CUST0_RGMII2_RGMII 0x00000005
258#define SDR0_CUST0_RGMII2_TBI 0x00000006
259#define SDR0_CUST0_RGMII2_GMII 0x00000007
260
261#define ONE_MILLION 1000000
262#define ONE_BILLION 1000000000
263
264/*----------------------------------------------------------------------------+
265| X
266| XX
267| XX XXX XXXXX XX XXX XXXXX
268| XX XX X XXX XX XX
269| XX XX XXXXXX XX XX
270| XX XX X XX XX XX XX
271| XXX XX XXXXX X XXXX XXX
272+----------------------------------------------------------------------------*/
273/*----------------------------------------------------------------------------+
274| Declare Configuration values
275+----------------------------------------------------------------------------*/
276
277typedef enum config_selection {
278 CONFIG_NOT_SELECTED,
279 CONFIG_SELECTED
280} config_selection_t;
281
282typedef enum config_list {
283 UART2_IN_SERVICE_MODE,
284 CPU_TRACE_MODE,
285 UART1_CTS_RTS,
286 CONFIG_NB
287} config_list_t;
288
289#define MAX_CONFIG_SELECT_NB 3
290
291#define BOARD_INFO_UART2_IN_SERVICE_MODE 1
292#define BOARD_INFO_CPU_TRACE_MODE 2
293#define BOARD_INFO_UART1_CTS_RTS_MODE 4
294
295void force_bup_config_selection(config_selection_t *confgi_select_P);
296void update_config_selection_table(config_selection_t *config_select_P);
297void display_config_selection(config_selection_t *config_select_P);
298
299/*----------------------------------------------------------------------------+
300| XX
301|
302| XXXX XX XXX XXX XXXX
303| XX XX XX XX XX XX
304| XX XXX XX XX XX XX XX
305| XX XX XXXXX XX XX XX
306| XXXX XX XXXX XXXX
307| XXXX
308|
309|
310|
311| +------------------------------------------------------------------+
312| | GPIO/Secondary func | Primary Function | I/O | Alternate1 | I/O |
313| +----------------------+------------------+-----+------------+-----+
314| | | | | | |
315| | GPIO0_0 | PCIX0REQ2_N | I/O | TRCCLK | |
316| | GPIO0_1 | PCIX0REQ3_N | I/O | TRCBS0 | |
317| | GPIO0_2 | PCIX0GNT2_N | I/O | TRCBS1 | |
318| | GPIO0_3 | PCIX0GNT3_N | I/O | TRCBS2 | |
319| | GPIO0_4 | PCIX1REQ2_N | I/O | TRCES0 | |
320| | GPIO0_5 | PCIX1REQ3_N | I/O | TRCES1 | |
321| | GPIO0_6 | PCIX1GNT2_N | I/O | TRCES2 | NA |
322| | GPIO0_7 | PCIX1GNT3_N | I/O | TRCES3 | NA |
323| | GPIO0_8 | PERREADY | I | TRCES4 | NA |
324| | GPIO0_9 | PERCS1_N | O | TRCTS0 | NA |
325| | GPIO0_10 | PERCS2_N | O | TRCTS1 | NA |
326| | GPIO0_11 | IRQ0 | I | TRCTS2 | NA |
327| | GPIO0_12 | IRQ1 | I | TRCTS3 | NA |
328| | GPIO0_13 | IRQ2 | I | TRCTS4 | NA |
329| | GPIO0_14 | IRQ3 | I | TRCTS5 | NA |
330| | GPIO0_15 | IRQ4 | I | TRCTS6 | NA |
331| | GPIO0_16 | IRQ5 | I | UART2RX | I |
332| | GPIO0_17 | PERBE0_N | O | UART2TX | O |
333| | GPIO0_18 | PCI0GNT0_N | I/O | NA | NA |
334| | GPIO0_19 | PCI0GNT1_N | I/O | NA | NA |
335| | GPIO0_20 | PCI0REQ0_N | I/O | NA | NA |
336| | GPIO0_21 | PCI0REQ1_N | I/O | NA | NA |
337| | GPIO0_22 | PCI1GNT0_N | I/O | NA | NA |
338| | GPIO0_23 | PCI1GNT1_N | I/O | NA | NA |
339| | GPIO0_24 | PCI1REQ0_N | I/O | NA | NA |
340| | GPIO0_25 | PCI1REQ1_N | I/O | NA | NA |
341| | GPIO0_26 | PCI2GNT0_N | I/O | NA | NA |
342| | GPIO0_27 | PCI2GNT1_N | I/O | NA | NA |
343| | GPIO0_28 | PCI2REQ0_N | I/O | NA | NA |
344| | GPIO0_29 | PCI2REQ1_N | I/O | NA | NA |
345| | GPIO0_30 | UART1RX | I | NA | NA |
346| | GPIO0_31 | UART1TX | O | NA | NA |
347| | | | | | |
348| +----------------------+------------------+-----+------------+-----+
349|
350+----------------------------------------------------------------------------*/
351
6c5879f3
MB
352unsigned long auto_calc_speed(void);
353/*----------------------------------------------------------------------------+
354| Prototypes
355+----------------------------------------------------------------------------*/
356void print_evb440spe_info(void);
357
358int onboard_pci_arbiter_selected(int core_pci);
359
360#ifdef __cplusplus
361}
362#endif
363#endif /* __YUCCA_H_ */