]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - include/configs/acadia.h
Rename CONFIG_SYS_INIT_RAM_END into CONFIG_SYS_INIT_RAM_SIZE
[karo-tx-uboot.git] / include / configs / acadia.h
1 /*
2  * (C) Copyright 2007
3  * Stefan Roese, DENX Software Engineering, sr@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 /************************************************************************
25  * acadia.h - configuration for AMCC Acadia (405EZ)
26  ***********************************************************************/
27
28 #ifndef __CONFIG_H
29 #define __CONFIG_H
30
31 /*-----------------------------------------------------------------------
32  * High Level Configuration Options
33  *----------------------------------------------------------------------*/
34 #define CONFIG_ACADIA           1               /* Board is Acadia      */
35 #define CONFIG_4xx              1               /* ... PPC4xx family    */
36 #define CONFIG_405EZ            1               /* Specifc 405EZ support*/
37
38 #ifndef CONFIG_SYS_TEXT_BASE
39 #define CONFIG_SYS_TEXT_BASE    0xFFF80000
40 #endif
41
42 /*
43  * Include common defines/options for all AMCC eval boards
44  */
45 #define CONFIG_HOSTNAME         acadia
46 #include "amcc-common.h"
47
48 /* Detect Acadia PLL input clock automatically via CPLD bit             */
49 #define CONFIG_SYS_CLK_FREQ    ((in8(CONFIG_SYS_CPLD_BASE + 0) == 0x0c) ? \
50                                 66666666 : 33333000)
51
52 #define CONFIG_BOARD_EARLY_INIT_F 1             /* Call board_early_init_f */
53 #define CONFIG_MISC_INIT_F      1               /* Call misc_init_f     */
54
55 #define CONFIG_NO_SERIAL_EEPROM
56 /*#undef CONFIG_NO_SERIAL_EEPROM*/
57
58 #ifdef CONFIG_NO_SERIAL_EEPROM
59 /*----------------------------------------------------------------------------
60  * PLL settings for 266MHz CPU, 133MHz PLB/SDRAM, 66MHz EBC, 33MHz PCI,
61  * assuming a 66MHz input clock to the 405EZ.
62  *---------------------------------------------------------------------------*/
63 /* #define PLLMR0_100_100_12 */
64 #define PLLMR0_200_133_66
65 /* #define PLLMR0_266_160_80 */
66 /* #define PLLMR0_333_166_83 */
67 #endif
68
69 /*-----------------------------------------------------------------------
70  * Base addresses -- Note these are effective addresses where the
71  * actual resources get mapped (not physical addresses)
72  *----------------------------------------------------------------------*/
73 #define CONFIG_SYS_FLASH_BASE           0xfe000000
74 #define CONFIG_SYS_CPLD_BASE            0x80000000
75 #define CONFIG_SYS_NAND_ADDR            0xd0000000
76 #define CONFIG_SYS_USB_HOST             0xef603000      /* USB OHCI 1.1 controller      */
77
78 /*-----------------------------------------------------------------------
79  * Initial RAM & stack pointer
80  *----------------------------------------------------------------------*/
81 #define CONFIG_SYS_TEMP_STACK_OCM       1               /* OCM as init ram      */
82
83 /* On Chip Memory location */
84 #define CONFIG_SYS_OCM_DATA_ADDR        0xf8000000
85 #define CONFIG_SYS_OCM_DATA_SIZE        0x4000                  /* 16K of onchip SRAM           */
86 #define CONFIG_SYS_INIT_RAM_ADDR        CONFIG_SYS_OCM_DATA_ADDR        /* inside of SRAM               */
87 #define CONFIG_SYS_INIT_RAM_SIZE        CONFIG_SYS_OCM_DATA_SIZE        /* Size of used area in RAM     */
88
89 #define CONFIG_SYS_GBL_DATA_SIZE        128                     /* size for initial data        */
90 #define CONFIG_SYS_GBL_DATA_OFFSET      (CONFIG_SYS_INIT_RAM_SIZE - CONFIG_SYS_GBL_DATA_SIZE)
91 #define CONFIG_SYS_INIT_SP_OFFSET       CONFIG_SYS_GBL_DATA_OFFSET
92
93 /*-----------------------------------------------------------------------
94  * Serial Port
95  *----------------------------------------------------------------------*/
96 #define CONFIG_CONS_INDEX       1       /* Use UART0                    */
97 #undef  CONFIG_SYS_EXT_SERIAL_CLOCK                     /* external serial clock */
98 #define CONFIG_SYS_BASE_BAUD            691200
99
100 /*-----------------------------------------------------------------------
101  * Environment
102  *----------------------------------------------------------------------*/
103 #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL)
104 #define CONFIG_ENV_IS_IN_FLASH     1    /* use FLASH for environment vars       */
105 #else
106 #define CONFIG_ENV_IS_IN_NAND   1       /* use NAND for environment vars        */
107 #define CONFIG_ENV_IS_EMBEDDED  1       /* use embedded environment */
108 #endif
109
110 /*-----------------------------------------------------------------------
111  * FLASH related
112  *----------------------------------------------------------------------*/
113 #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL)
114 #define CONFIG_SYS_FLASH_CFI                    /* The flash is CFI compatible  */
115 #define CONFIG_FLASH_CFI_DRIVER         /* Use common CFI driver        */
116
117 #define CONFIG_SYS_FLASH_BANKS_LIST    {CONFIG_SYS_FLASH_BASE}
118 #define CONFIG_SYS_MAX_FLASH_BANKS      1       /* max number of memory banks           */
119 #define CONFIG_SYS_MAX_FLASH_SECT       512     /* max number of sectors on one chip    */
120
121 #define CONFIG_SYS_FLASH_ERASE_TOUT     120000  /* Timeout for Flash Erase (in ms)      */
122 #define CONFIG_SYS_FLASH_WRITE_TOUT     500     /* Timeout for Flash Write (in ms)      */
123
124 #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1     /* use buffered writes (20x faster)     */
125 #define CONFIG_SYS_FLASH_EMPTY_INFO             /* print 'E' for empty sector on flinfo */
126
127 #else
128 /*
129  * No NOR-flash on Acadia when NAND-booting. We need to undef the
130  * NOR device-tree fixup code as well, since flash_info is not defined
131  * in this case.
132  */
133 #define CONFIG_SYS_NO_FLASH             1
134 #undef CONFIG_FDT_FIXUP_NOR_FLASH_SIZE
135 #endif
136
137 #ifdef CONFIG_ENV_IS_IN_FLASH
138 #define CONFIG_ENV_SECT_SIZE    0x40000 /* size of one complete sector  */
139 #define CONFIG_ENV_ADDR         (CONFIG_SYS_MONITOR_BASE-CONFIG_ENV_SECT_SIZE)
140 #define CONFIG_ENV_SIZE         0x4000  /* Total Size of Environment Sector     */
141
142 /* Address and size of Redundant Environment Sector     */
143 #define CONFIG_ENV_ADDR_REDUND  (CONFIG_ENV_ADDR-CONFIG_ENV_SECT_SIZE)
144 #define CONFIG_ENV_SIZE_REDUND  (CONFIG_ENV_SIZE)
145 #endif
146
147 /*
148  * IPL (Initial Program Loader, integrated inside CPU)
149  * Will load first 4k from NAND (SPL) into cache and execute it from there.
150  *
151  * SPL (Secondary Program Loader)
152  * Will load special U-Boot version (NUB) from NAND and execute it. This SPL
153  * has to fit into 4kByte. It sets up the CPU and configures the SDRAM
154  * controller and the NAND controller so that the special U-Boot image can be
155  * loaded from NAND to SDRAM.
156  *
157  * NUB (NAND U-Boot)
158  * This NAND U-Boot (NUB) is a special U-Boot version which can be started
159  * from RAM. Therefore it mustn't (re-)configure the SDRAM controller.
160  *
161  * On 440EPx the SPL is copied to SDRAM before the NAND controller is
162  * set up. While still running from cache, I experienced problems accessing
163  * the NAND controller. sr - 2006-08-25
164  */
165 #define CONFIG_SYS_NAND_BOOT_SPL_SRC    0xfffff000      /* SPL location                 */
166 #define CONFIG_SYS_NAND_BOOT_SPL_SIZE   (4 << 10)       /* SPL size                     */
167 #define CONFIG_SYS_NAND_BOOT_SPL_DST    (CONFIG_SYS_OCM_DATA_ADDR + (16 << 10)) /* Copy SPL here*/
168 #define CONFIG_SYS_NAND_U_BOOT_DST      0x01000000      /* Load NUB to this addr        */
169 #define CONFIG_SYS_NAND_U_BOOT_START    CONFIG_SYS_NAND_U_BOOT_DST /* Start NUB from this addr  */
170 #define CONFIG_SYS_NAND_BOOT_SPL_DELTA  (CONFIG_SYS_NAND_BOOT_SPL_SRC - CONFIG_SYS_NAND_BOOT_SPL_DST)
171
172 /*
173  * Define the partitioning of the NAND chip (only RAM U-Boot is needed here)
174  */
175 #define CONFIG_SYS_NAND_U_BOOT_OFFS     (16 << 10)      /* Offset to RAM U-Boot image   */
176 #define CONFIG_SYS_NAND_U_BOOT_SIZE     (384 << 10)     /* Size of RAM U-Boot image     */
177
178 /*
179  * Now the NAND chip has to be defined (no autodetection used!)
180  */
181 #define CONFIG_SYS_NAND_PAGE_SIZE       512             /* NAND chip page size          */
182 #define CONFIG_SYS_NAND_BLOCK_SIZE      (16 << 10)      /* NAND chip block size         */
183 #define CONFIG_SYS_NAND_PAGE_COUNT      32              /* NAND chip page count         */
184 #define CONFIG_SYS_NAND_BAD_BLOCK_POS   5               /* Location of bad block marker */
185 #undef CONFIG_SYS_NAND_4_ADDR_CYCLE                     /* No fourth addr used (<=32MB) */
186
187 #define CONFIG_SYS_NAND_ECCSIZE 256
188 #define CONFIG_SYS_NAND_ECCBYTES        3
189 #define CONFIG_SYS_NAND_ECCSTEPS        (CONFIG_SYS_NAND_PAGE_SIZE / CONFIG_SYS_NAND_ECCSIZE)
190 #define CONFIG_SYS_NAND_OOBSIZE 16
191 #define CONFIG_SYS_NAND_ECCTOTAL        (CONFIG_SYS_NAND_ECCBYTES * CONFIG_SYS_NAND_ECCSTEPS)
192 #define CONFIG_SYS_NAND_ECCPOS          {0, 1, 2, 3, 6, 7}
193
194 #ifdef CONFIG_ENV_IS_IN_NAND
195 /*
196  * For NAND booting the environment is embedded in the U-Boot image. Please take
197  * look at the file board/amcc/sequoia/u-boot-nand.lds for details.
198  */
199 #define CONFIG_ENV_SIZE         CONFIG_SYS_NAND_BLOCK_SIZE
200 #define CONFIG_ENV_OFFSET               (CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_ENV_SIZE)
201 #define CONFIG_ENV_OFFSET_REDUND        (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
202 #endif
203
204 /*-----------------------------------------------------------------------
205  * RAM (CRAM)
206  *----------------------------------------------------------------------*/
207 #define CONFIG_SYS_MBYTES_RAM           64              /* 64MB                 */
208
209 /*-----------------------------------------------------------------------
210  * I2C
211  *----------------------------------------------------------------------*/
212 #define CONFIG_SYS_I2C_SPEED            400000          /* I2C speed and slave address  */
213
214 #define CONFIG_SYS_I2C_MULTI_EEPROMS
215 #define CONFIG_SYS_I2C_EEPROM_ADDR      (0xa8>>1)
216 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
217 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
218 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
219
220 /* I2C SYSMON (LM75, AD7414 is almost compatible)                       */
221 #define CONFIG_DTT_LM75         1               /* ON Semi's LM75       */
222 #define CONFIG_DTT_AD7414       1               /* use AD7414           */
223 #define CONFIG_DTT_SENSORS      {0}             /* Sensor addresses     */
224 #define CONFIG_SYS_DTT_MAX_TEMP 70
225 #define CONFIG_SYS_DTT_LOW_TEMP -30
226 #define CONFIG_SYS_DTT_HYSTERESIS       3
227
228 /*-----------------------------------------------------------------------
229  * Ethernet
230  *----------------------------------------------------------------------*/
231 #define CONFIG_PHY_ADDR         0       /* PHY address                  */
232 #define CONFIG_HAS_ETH0         1
233
234 /*
235  * Default environment variables
236  */
237 #define CONFIG_EXTRA_ENV_SETTINGS                                       \
238         CONFIG_AMCC_DEF_ENV                                             \
239         CONFIG_AMCC_DEF_ENV_POWERPC                                     \
240         CONFIG_AMCC_DEF_ENV_PPC_OLD                                     \
241         CONFIG_AMCC_DEF_ENV_NOR_UPD                                     \
242         CONFIG_AMCC_DEF_ENV_NAND_UPD                                    \
243         "kernel_addr=fff10000\0"                                        \
244         "ramdisk_addr=fff20000\0"                                       \
245         "kozio=bootm ffc60000\0"                                        \
246         ""
247
248 #define CONFIG_USB_OHCI
249 #define CONFIG_USB_STORAGE
250
251 /* Partitions */
252 #define CONFIG_MAC_PARTITION
253 #define CONFIG_DOS_PARTITION
254 #define CONFIG_ISO_PARTITION
255
256 #define CONFIG_SUPPORT_VFAT
257
258 /*
259  * Commands additional to the ones defined in amcc-common.h
260  */
261 #define CONFIG_CMD_DTT
262 #define CONFIG_CMD_NAND
263 #define CONFIG_CMD_USB
264
265 /*
266  * No NOR on Acadia when NAND-booting
267  */
268 #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)
269 #undef CONFIG_CMD_FLASH
270 #undef CONFIG_CMD_IMLS
271 #endif
272
273 /*-----------------------------------------------------------------------
274  * NAND FLASH
275  *----------------------------------------------------------------------*/
276 #define CONFIG_SYS_MAX_NAND_DEVICE      1
277 #define CONFIG_SYS_NAND_BASE            (CONFIG_SYS_NAND_ADDR + CONFIG_SYS_NAND_CS)
278 #define CONFIG_SYS_NAND_SELECT_DEVICE  1        /* nand driver supports mutipl. chips   */
279
280 /*-----------------------------------------------------------------------
281  * External Bus Controller (EBC) Setup
282  *----------------------------------------------------------------------*/
283 #if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL)
284 #define CONFIG_SYS_NAND_CS              3
285 /* Memory Bank 0 (Flash) initialization                                         */
286 #define CONFIG_SYS_EBC_PB0AP            0x03337200
287 #define CONFIG_SYS_EBC_PB0CR            0xfe0bc000
288
289 /* Memory Bank 3 (NAND-FLASH) initialization                                    */
290 #define CONFIG_SYS_EBC_PB3AP            0x018003c0
291 #define CONFIG_SYS_EBC_PB3CR            (CONFIG_SYS_NAND_ADDR | 0x1c000)
292
293 /* Just initial configuration for CRAM. Will be changed in memory.c to sync mode*/
294 /* Memory Bank 1 (CRAM) initialization                                          */
295 #define CONFIG_SYS_EBC_PB1AP            0x030400c0
296 #define CONFIG_SYS_EBC_PB1CR            0x000bc000
297
298 /* Memory Bank 2 (CRAM) initialization                                          */
299 #define CONFIG_SYS_EBC_PB2AP            0x030400c0
300 #define CONFIG_SYS_EBC_PB2CR            0x020bc000
301 #else
302 #define CONFIG_SYS_NAND_CS              0               /* NAND chip connected to CSx   */
303 /* Memory Bank 0 (NAND-FLASH) initialization                                    */
304 #define CONFIG_SYS_EBC_PB0AP            0x018003c0
305 #define CONFIG_SYS_EBC_PB0CR            (CONFIG_SYS_NAND_ADDR | 0x1c000)
306
307 /*
308  * When NAND-booting the CRAM EBC setup must be done in sync mode, since the
309  * NAND-SPL already initialized the CRAM and EBC to sync mode.
310  */
311 /* Memory Bank 1 (CRAM) initialization                                          */
312 #define CONFIG_SYS_EBC_PB1AP            0x9C0201C0
313 #define CONFIG_SYS_EBC_PB1CR            0x000bc000
314
315 /* Memory Bank 2 (CRAM) initialization                                          */
316 #define CONFIG_SYS_EBC_PB2AP            0x9C0201C0
317 #define CONFIG_SYS_EBC_PB2CR            0x020bc000
318 #endif
319
320 /* Memory Bank 4 (CPLD) initialization                                          */
321 #define CONFIG_SYS_EBC_PB4AP            0x04006000
322 #define CONFIG_SYS_EBC_PB4CR            (CONFIG_SYS_CPLD_BASE | 0x18000)
323
324 #define CONFIG_SYS_EBC_CFG              0xf8400000
325
326 /*-----------------------------------------------------------------------
327  * GPIO Setup
328  *----------------------------------------------------------------------*/
329 #define CONFIG_SYS_GPIO_CRAM_CLK        8
330 #define CONFIG_SYS_GPIO_CRAM_WAIT       9               /* GPIO-In              */
331 #define CONFIG_SYS_GPIO_CRAM_ADV        10
332 #define CONFIG_SYS_GPIO_CRAM_CRE        (32 + 21)       /* GPIO-Out             */
333
334 /*-----------------------------------------------------------------------
335  * Definitions for GPIO_0 setup (PPC405EZ specific)
336  *
337  * GPIO0[0-2]   - External Bus Controller CS_4 - CS_6 Outputs
338  * GPIO0[3]     - NAND FLASH Controller CE3 (NFCE3) Output
339  * GPIO0[4]     - External Bus Controller Hold Input
340  * GPIO0[5]     - External Bus Controller Priority Input
341  * GPIO0[6]     - External Bus Controller HLDA Output
342  * GPIO0[7]     - External Bus Controller Bus Request Output
343  * GPIO0[8]     - CRAM Clk Output
344  * GPIO0[9]     - External Bus Controller Ready Input
345  * GPIO0[10]    - CRAM Adv Output
346  * GPIO0[11-24] - NAND Flash Control Data -> Bypasses GPIO when enabled
347  * GPIO0[25]    - External DMA Request Input
348  * GPIO0[26]    - External DMA EOT I/O
349  * GPIO0[25]    - External DMA Ack_n Output
350  * GPIO0[17-23] - External Interrupts IRQ0 - IRQ6 inputs
351  * GPIO0[28-30] - Trace Outputs / PWM Inputs
352  * GPIO0[31]    - PWM_8 I/O
353  */
354 #define CONFIG_SYS_GPIO0_TCR            0xC0A00000
355 #define CONFIG_SYS_GPIO0_OSRL           0x50004400
356 #define CONFIG_SYS_GPIO0_OSRH           0x02000055
357 #define CONFIG_SYS_GPIO0_ISR1L          0x00001000
358 #define CONFIG_SYS_GPIO0_ISR1H          0x00000055
359 #define CONFIG_SYS_GPIO0_TSRL           0x02000000
360 #define CONFIG_SYS_GPIO0_TSRH           0x00000055
361
362 /*-----------------------------------------------------------------------
363  * Definitions for GPIO_1 setup (PPC405EZ specific)
364  *
365  * GPIO1[0-6]   - PWM_9 to PWM_15 I/O
366  * GPIO1[7]     - PWM_DIV_CLK (Out) / IRQ4 Input
367  * GPIO1[8]     - TS5 Output / DAC_IP_TRIG Input
368  * GPIO1[9]     - TS6 Output / ADC_IP_TRIG Input
369  * GPIO1[10-12] - UART0 Control Inputs
370  * GPIO1[13]    - UART0_DTR_N Output/IEEE_1588_TS Output/TMRCLK Input
371  * GPIO1[14]    - UART0_RTS_N Output/SPI_SS_2_N Output
372  * GPIO1[15]    - SPI_SS_3_N Output/UART0_RI_N Input
373  * GPIO1[16]    - SPI_SS_1_N Output
374  * GPIO1[17-20] - Trace Output/External Interrupts IRQ0 - IRQ3 inputs
375  */
376 #define CONFIG_SYS_GPIO1_TCR            0xFFFF8414
377 #define CONFIG_SYS_GPIO1_OSRL           0x40000110
378 #define CONFIG_SYS_GPIO1_OSRH           0x55455555
379 #define CONFIG_SYS_GPIO1_ISR1L          0x15555445
380 #define CONFIG_SYS_GPIO1_ISR1H          0x00000000
381 #define CONFIG_SYS_GPIO1_TSRL           0x00000000
382 #define CONFIG_SYS_GPIO1_TSRH           0x00000000
383
384 #endif  /* __CONFIG_H */