blob: 8d9c8fb45c956392e426ef02e2f36f6931f8dc23 [file] [log] [blame]
wdenkb666c8f2003-03-06 00:58:30 +00001/*
2 * (C) Copyright 2001
3 * Stuart Hughes <stuarth@lineo.com>
4 * This file is based on similar values for other boards found in other
5 * U-Boot config files, and some that I found in the mpc8260ads manual.
6 *
7 * Note: my board is a PILOT rev.
8 * Note: the mpc8260ads doesn't come with a proper Ethernet MAC address.
9 *
Wolfgang Denkbd8ec7e2013-10-07 13:07:26 +020010 * SPDX-License-Identifier: GPL-2.0+
wdenkb666c8f2003-03-06 00:58:30 +000011 */
12
13/*
wdenkabda5ca2003-05-31 18:35:21 +000014 * Config header file for a MPC8266ADS Pilot 16M Ram Simm, 8Mbytes Flash Simm
wdenkb666c8f2003-03-06 00:58:30 +000015 */
16
wdenkabda5ca2003-05-31 18:35:21 +000017/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Wolfgang Denkedb65482005-09-24 21:54:50 +020018 !! !!
wdenkabda5ca2003-05-31 18:35:21 +000019 !! This configuration requires JP3 to be in position 1-2 to work !!
Wolfgang Denk0708bc62010-10-07 21:51:12 +020020 !! To make it work for the default, the CONFIG_SYS_TEXT_BASE define in !!
wdenkabda5ca2003-05-31 18:35:21 +000021 !! board/mpc8266ads/config.mk must be changed from 0xfe000000 to !!
22 !! 0xfff00000 !!
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020023 !! The CONFIG_SYS_HRCW_MASTER define below must also be changed to match !!
Wolfgang Denkedb65482005-09-24 21:54:50 +020024 !! !!
wdenk57b2d802003-06-27 21:31:46 +000025 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
wdenkabda5ca2003-05-31 18:35:21 +000026 */
27
wdenkb666c8f2003-03-06 00:58:30 +000028#ifndef __CONFIG_H
29#define __CONFIG_H
30
31/*
32 * High Level Configuration Options
33 * (easy to change)
34 */
35
wdenkda55c6e2004-01-20 23:12:12 +000036#define CONFIG_MPC8266ADS 1 /* ...on motorola ADS board */
Jon Loeligerf5ad3782005-07-23 10:37:35 -050037#define CONFIG_CPM2 1 /* Has a CPM2 */
wdenkb666c8f2003-03-06 00:58:30 +000038
Wolfgang Denk291ba1b2010-10-06 09:05:45 +020039#define CONFIG_SYS_TEXT_BASE 0xfe000000
40
wdenkda55c6e2004-01-20 23:12:12 +000041#define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_early_init_f */
Peter Tyserd3d9a502009-09-16 22:03:08 -050042#define CONFIG_RESET_PHY_R 1 /* Call reset_phy() */
wdenkb666c8f2003-03-06 00:58:30 +000043
44/* allow serial and ethaddr to be overwritten */
45#define CONFIG_ENV_OVERWRITE
46
47/*
48 * select serial console configuration
49 *
50 * if either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then
51 * CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4
52 * for SCC).
53 *
54 * if CONFIG_CONS_NONE is defined, then the serial console routines must
55 * defined elsewhere (for example, on the cogent platform, there are serial
56 * ports on the motherboard which are used for the serial console - see
57 * cogent/cma101/serial.[ch]).
58 */
59#undef CONFIG_CONS_ON_SMC /* define if console on SMC */
60#define CONFIG_CONS_ON_SCC /* define if console on SCC */
61#undef CONFIG_CONS_NONE /* define if console on something else */
62#define CONFIG_CONS_INDEX 1 /* which serial channel for console */
63
64/*
65 * select ethernet configuration
66 *
67 * if either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected, then
68 * CONFIG_ETHER_INDEX must be set to the channel number (1-4 for SCC, 1-3
69 * for FCC)
70 *
71 * if CONFIG_ETHER_NONE is defined, then either the ethernet routines must be
Jon Loeliger2517d972007-07-09 17:15:49 -050072 * defined elsewhere (as for the console), or CONFIG_CMD_NET must be unset.
wdenkb666c8f2003-03-06 00:58:30 +000073 */
74#undef CONFIG_ETHER_ON_SCC /* define if ether on SCC */
75#define CONFIG_ETHER_ON_FCC /* define if ether on FCC */
76#undef CONFIG_ETHER_NONE /* define if ether on something else */
77#define CONFIG_ETHER_INDEX 2 /* which channel for ether */
wdenkbf2f8c92003-05-22 22:52:13 +000078#define CONFIG_MII /* MII PHY management */
79#define CONFIG_BITBANGMII /* bit-bang MII PHY management */
80/*
81 * Port pins used for bit-banged MII communictions (if applicable).
82 */
83#define MDIO_PORT 2 /* Port C */
Luigi 'Comio' Mantellini25e30722009-10-10 12:42:22 +020084#define MDIO_DECLARE volatile ioport_t *iop = ioport_addr ( \
85 (immap_t *) CONFIG_SYS_IMMR, MDIO_PORT )
86#define MDC_DECLARE MDIO_DECLARE
87
wdenkbf2f8c92003-05-22 22:52:13 +000088#define MDIO_ACTIVE (iop->pdir |= 0x00400000)
89#define MDIO_TRISTATE (iop->pdir &= ~0x00400000)
90#define MDIO_READ ((iop->pdat & 0x00400000) != 0)
91
92#define MDIO(bit) if(bit) iop->pdat |= 0x00400000; \
93 else iop->pdat &= ~0x00400000
94
95#define MDC(bit) if(bit) iop->pdat |= 0x00200000; \
96 else iop->pdat &= ~0x00200000
97
98#define MIIDELAY udelay(1)
wdenkb666c8f2003-03-06 00:58:30 +000099
100#if (CONFIG_ETHER_INDEX == 2)
101
102/*
103 * - Rx-CLK is CLK13
104 * - Tx-CLK is CLK14
105 * - Select bus for bd/buffers (see 28-13)
106 * - Half duplex
107 */
Mike Frysinger109de972011-10-17 05:38:58 +0000108# define CONFIG_SYS_CMXFCR_MASK2 (CMXFCR_FC2 | CMXFCR_RF2CS_MSK | CMXFCR_TF2CS_MSK)
109# define CONFIG_SYS_CMXFCR_VALUE2 (CMXFCR_RF2CS_CLK13 | CMXFCR_TF2CS_CLK14)
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200110# define CONFIG_SYS_CPMFCR_RAMTYPE 0
111# define CONFIG_SYS_FCC_PSMR (FCC_PSMR_FDE | FCC_PSMR_LPB)
wdenkb666c8f2003-03-06 00:58:30 +0000112
113#endif /* CONFIG_ETHER_INDEX */
114
115/* other options */
116#define CONFIG_HARD_I2C 1 /* To enable I2C support */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200117#define CONFIG_SYS_I2C_SPEED 400000 /* I2C speed and slave address */
118#define CONFIG_SYS_I2C_SLAVE 0x7F
119#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
wdenkb666c8f2003-03-06 00:58:30 +0000120
wdenkbf2f8c92003-05-22 22:52:13 +0000121/* PCI */
122#define CONFIG_PCI
Gabor Juhosb4458732013-05-30 07:06:12 +0000123#define CONFIG_PCI_INDIRECT_BRIDGE
wdenkbf2f8c92003-05-22 22:52:13 +0000124#define CONFIG_PCI_PNP
125#define CONFIG_PCI_BOOTDELAY 0
126#undef CONFIG_PCI_SCAN_SHOW
127
wdenkb666c8f2003-03-06 00:58:30 +0000128/*-----------------------------------------------------------------------
129 * Definitions for Serial Presence Detect EEPROM address
130 * (to get SDRAM settings)
131 */
Wolfgang Denkedb65482005-09-24 21:54:50 +0200132#define SPD_EEPROM_ADDRESS 0x50
wdenkb666c8f2003-03-06 00:58:30 +0000133
wdenkbf2f8c92003-05-22 22:52:13 +0000134#define CONFIG_8260_CLKIN 66000000 /* in Hz */
wdenkb666c8f2003-03-06 00:58:30 +0000135#define CONFIG_BAUDRATE 115200
136
Jon Loeligerf4056992007-07-04 22:30:28 -0500137/*
138 * Command line configuration.
139 */
Rune Torgersenb427efc2007-10-17 11:56:31 -0500140#include <config_cmd_default.h>
141
142/* Commands we want, that are not part of default set */
143#define CONFIG_CMD_ASKENV /* ask for env variable */
144#define CONFIG_CMD_CACHE /* icache, dcache */
145#define CONFIG_CMD_DHCP /* DHCP Support */
146#define CONFIG_CMD_DIAG /* Diagnostics */
147#define CONFIG_CMD_IMMAP /* IMMR dump support */
148#define CONFIG_CMD_IRQ /* irqinfo */
149#define CONFIG_CMD_MII /* MII support */
150#define CONFIG_CMD_PCI /* pciinfo */
151#define CONFIG_CMD_PING /* ping support */
152#define CONFIG_CMD_PORTIO /* Port I/O */
153#define CONFIG_CMD_REGINFO /* Register dump */
154#define CONFIG_CMD_SAVES /* save S record dump */
155#define CONFIG_CMD_SDRAM /* SDRAM DIMM SPD info printout */
Jon Loeligerf4056992007-07-04 22:30:28 -0500156
Rune Torgersenb427efc2007-10-17 11:56:31 -0500157/* Commands from default set we don't need */
158#undef CONFIG_CMD_FPGA /* FPGA configuration Support */
159#undef CONFIG_CMD_SETGETDCR /* DCR support on 4xx */
wdenkb666c8f2003-03-06 00:58:30 +0000160
wdenkbf2f8c92003-05-22 22:52:13 +0000161/* Define a command string that is automatically executed when no character
162 * is read on the console interface withing "Boot Delay" after reset.
163 */
Wolfgang Denkedb65482005-09-24 21:54:50 +0200164#undef CONFIG_BOOT_ROOT_INITRD /* Use ram disk for the root file system */
165#define CONFIG_BOOT_ROOT_NFS /* Use a NFS mounted root file system */
wdenkbf2f8c92003-05-22 22:52:13 +0000166
wdenkc35ba4e2004-03-14 22:25:36 +0000167#ifdef CONFIG_BOOT_ROOT_INITRD
wdenkbf2f8c92003-05-22 22:52:13 +0000168#define CONFIG_BOOTCOMMAND \
169 "version;" \
170 "echo;" \
171 "bootp;" \
172 "setenv bootargs root=/dev/ram0 rw " \
Wolfgang Denk86eb3b72005-11-20 21:40:11 +0100173 "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off;" \
wdenkbf2f8c92003-05-22 22:52:13 +0000174 "bootm"
175#endif /* CONFIG_BOOT_ROOT_INITRD */
176
wdenkc35ba4e2004-03-14 22:25:36 +0000177#ifdef CONFIG_BOOT_ROOT_NFS
wdenkbf2f8c92003-05-22 22:52:13 +0000178#define CONFIG_BOOTCOMMAND \
179 "version;" \
180 "echo;" \
181 "bootp;" \
Wolfgang Denk86eb3b72005-11-20 21:40:11 +0100182 "setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " \
183 "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off;" \
wdenkbf2f8c92003-05-22 22:52:13 +0000184 "bootm"
185#endif /* CONFIG_BOOT_ROOT_NFS */
186
Jon Loeligerdf5f5442007-07-09 21:24:19 -0500187/*
188 * BOOTP options
wdenkbf2f8c92003-05-22 22:52:13 +0000189 */
Jon Loeligerdf5f5442007-07-09 21:24:19 -0500190#define CONFIG_BOOTP_SUBNETMASK
191#define CONFIG_BOOTP_GATEWAY
192#define CONFIG_BOOTP_HOSTNAME
193#define CONFIG_BOOTP_BOOTPATH
194#define CONFIG_BOOTP_BOOTFILESIZE
195#define CONFIG_BOOTP_DNS
wdenkbf2f8c92003-05-22 22:52:13 +0000196
wdenkb666c8f2003-03-06 00:58:30 +0000197#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
wdenkb666c8f2003-03-06 00:58:30 +0000198
Jon Loeligerf4056992007-07-04 22:30:28 -0500199#if defined(CONFIG_CMD_KGDB)
wdenkb666c8f2003-03-06 00:58:30 +0000200#undef CONFIG_KGDB_ON_SMC /* define if kgdb on SMC */
201#define CONFIG_KGDB_ON_SCC /* define if kgdb on SCC */
202#undef CONFIG_KGDB_NONE /* define if kgdb on something else */
203#define CONFIG_KGDB_INDEX 2 /* which serial channel for kgdb */
204#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port at */
205#endif
206
207#undef CONFIG_WATCHDOG /* disable platform specific watchdog */
208
209/*
210 * Miscellaneous configurable options
211 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200212#define CONFIG_SYS_LONGHELP /* undef to save memory */
Jon Loeligerf4056992007-07-04 22:30:28 -0500213#if defined(CONFIG_CMD_KGDB)
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200214#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
wdenkb666c8f2003-03-06 00:58:30 +0000215#else
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200216#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
wdenkb666c8f2003-03-06 00:58:30 +0000217#endif
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200218#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
219#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
220#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */
wdenkb666c8f2003-03-06 00:58:30 +0000221
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200222#define CONFIG_SYS_MEMTEST_START 0x00100000 /* memtest works on */
223#define CONFIG_SYS_MEMTEST_END 0x00f00000 /* 1 ... 15 MB in DRAM */
wdenkb666c8f2003-03-06 00:58:30 +0000224
wdenkbf2f8c92003-05-22 22:52:13 +0000225#undef CONFIG_CLOCKS_IN_MHZ /* clocks passsed to Linux in MHz */
wdenkb666c8f2003-03-06 00:58:30 +0000226 /* for versions < 2.4.5-pre5 */
227
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200228#define CONFIG_SYS_LOAD_ADDR 0x100000 /* default load address */
wdenkb666c8f2003-03-06 00:58:30 +0000229
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200230#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
wdenkb666c8f2003-03-06 00:58:30 +0000231
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200232#define CONFIG_SYS_FLASH_BASE 0xFE000000
wdenkbf2f8c92003-05-22 22:52:13 +0000233#define FLASH_BASE 0xFE000000
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200234#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max num of memory banks */
235#define CONFIG_SYS_MAX_FLASH_SECT 32 /* max num of sects on one chip */
236#define CONFIG_SYS_FLASH_SIZE 8
237#define CONFIG_SYS_FLASH_ERASE_TOUT 8000 /* Timeout for Flash Erase (in ms) */
238#define CONFIG_SYS_FLASH_WRITE_TOUT 5 /* Timeout for Flash Write (in ms) */
wdenkb666c8f2003-03-06 00:58:30 +0000239
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200240#undef CONFIG_SYS_FLASH_CHECKSUM
wdenkb666c8f2003-03-06 00:58:30 +0000241
242/* this is stuff came out of the Motorola docs */
243/* Only change this if you also change the Hardware configuration Word */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200244#define CONFIG_SYS_DEFAULT_IMMR 0x0F010000
wdenkb666c8f2003-03-06 00:58:30 +0000245
wdenkb666c8f2003-03-06 00:58:30 +0000246/* Set IMMR to 0xF0000000 or above to boot Linux */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200247#define CONFIG_SYS_IMMR 0xF0000000
248#define CONFIG_SYS_BCSR 0xF8000000
249#define CONFIG_SYS_PCI_INT 0xF8200000 /* PCI interrupt controller */
wdenkb666c8f2003-03-06 00:58:30 +0000250
251/* Define CONFIG_VERY_BIG_RAM to allow use of SDRAMs larger than 256MBytes
252 */
253/*#define CONFIG_VERY_BIG_RAM 1*/
254
255/* What should be the base address of SDRAM DIMM and how big is
256 * it (in Mbytes)? This will normally auto-configure via the SPD.
257*/
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200258#define CONFIG_SYS_SDRAM_BASE 0x00000000
259#define CONFIG_SYS_SDRAM_SIZE 16
wdenkb666c8f2003-03-06 00:58:30 +0000260
261#define SDRAM_SPD_ADDR 0x50
262
wdenkb666c8f2003-03-06 00:58:30 +0000263/*-----------------------------------------------------------------------
264 * BR2,BR3 - Base Register
265 * Ref: Section 10.3.1 on page 10-14
266 * OR2,OR3 - Option Register
267 * Ref: Section 10.3.2 on page 10-16
268 *-----------------------------------------------------------------------
269 */
270
271/* Bank 2,3 - SDRAM DIMM
272 */
273
274/* The BR2 is configured as follows:
275 *
276 * - Base address of 0x00000000
277 * - 64 bit port size (60x bus only)
278 * - Data errors checking is disabled
279 * - Read and write access
280 * - SDRAM 60x bus
281 * - Access are handled by the memory controller according to MSEL
282 * - Not used for atomic operations
283 * - No data pipelining is done
284 * - Valid
285 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200286#define CONFIG_SYS_BR2_PRELIM ((CONFIG_SYS_SDRAM_BASE & BRx_BA_MSK) |\
wdenkb666c8f2003-03-06 00:58:30 +0000287 BRx_PS_64 |\
288 BRx_MS_SDRAM_P |\
289 BRx_V)
290
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200291#define CONFIG_SYS_BR3_PRELIM ((CONFIG_SYS_SDRAM_BASE & BRx_BA_MSK) |\
wdenkb666c8f2003-03-06 00:58:30 +0000292 BRx_PS_64 |\
293 BRx_MS_SDRAM_P |\
294 BRx_V)
295
296/* With a 64 MB DIMM, the OR2 is configured as follows:
297 *
298 * - 64 MB
299 * - 4 internal banks per device
300 * - Row start address bit is A8 with PSDMR[PBI] = 0
301 * - 12 row address lines
302 * - Back-to-back page mode
303 * - Internal bank interleaving within save device enabled
304 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200305#if (CONFIG_SYS_SDRAM_SIZE == 64)
306#define CONFIG_SYS_OR2_PRELIM (MEG_TO_AM(CONFIG_SYS_SDRAM_SIZE) |\
wdenkb666c8f2003-03-06 00:58:30 +0000307 ORxS_BPD_4 |\
308 ORxS_ROWST_PBI0_A8 |\
309 ORxS_NUMR_12)
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200310#elif (CONFIG_SYS_SDRAM_SIZE == 16)
311#define CONFIG_SYS_OR2_PRELIM (0xFF000C80)
wdenkb666c8f2003-03-06 00:58:30 +0000312#else
313#error "INVALID SDRAM CONFIGURATION"
314#endif
315
316/*-----------------------------------------------------------------------
317 * PSDMR - 60x Bus SDRAM Mode Register
318 * Ref: Section 10.3.3 on page 10-21
319 *-----------------------------------------------------------------------
320 */
321
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200322#if (CONFIG_SYS_SDRAM_SIZE == 64)
wdenkb666c8f2003-03-06 00:58:30 +0000323/* With a 64 MB DIMM, the PSDMR is configured as follows:
324 *
325 * - Bank Based Interleaving,
326 * - Refresh Enable,
327 * - Address Multiplexing where A5 is output on A14 pin
328 * (A6 on A15, and so on),
329 * - use address pins A14-A16 as bank select,
330 * - A9 is output on SDA10 during an ACTIVATE command,
331 * - earliest timing for ACTIVATE command after REFRESH command is 7 clocks,
332 * - earliest timing for ACTIVATE or REFRESH command after PRECHARGE command
333 * is 3 clocks,
334 * - earliest timing for READ/WRITE command after ACTIVATE command is
335 * 2 clocks,
336 * - earliest timing for PRECHARGE after last data was read is 1 clock,
337 * - earliest timing for PRECHARGE after last data was written is 1 clock,
338 * - CAS Latency is 2.
339 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200340#define CONFIG_SYS_PSDMR (PSDMR_RFEN |\
wdenkb666c8f2003-03-06 00:58:30 +0000341 PSDMR_SDAM_A14_IS_A5 |\
342 PSDMR_BSMA_A14_A16 |\
343 PSDMR_SDA10_PBI0_A9 |\
344 PSDMR_RFRC_7_CLK |\
345 PSDMR_PRETOACT_3W |\
346 PSDMR_ACTTORW_2W |\
347 PSDMR_LDOTOPRE_1C |\
348 PSDMR_WRC_1C |\
349 PSDMR_CL_2)
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200350#elif (CONFIG_SYS_SDRAM_SIZE == 16)
wdenkb666c8f2003-03-06 00:58:30 +0000351/* With a 16 MB DIMM, the PSDMR is configured as follows:
352 *
353 * configuration parameters found in Motorola documentation
354 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200355#define CONFIG_SYS_PSDMR (0x016EB452)
wdenkb666c8f2003-03-06 00:58:30 +0000356#else
357#error "INVALID SDRAM CONFIGURATION"
358#endif
359
wdenkb666c8f2003-03-06 00:58:30 +0000360#define RS232EN_1 0x02000002
361#define RS232EN_2 0x01000001
362#define FETHIEN 0x08000008
363#define FETH_RST 0x04000004
364
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200365#define CONFIG_SYS_INIT_RAM_ADDR CONFIG_SYS_IMMR
Wolfgang Denk1c2e98e2010-10-26 13:32:32 +0200366#define CONFIG_SYS_INIT_RAM_SIZE 0x4000 /* Size of used area in DPRAM */
Wolfgang Denk0191e472010-10-26 14:34:52 +0200367#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200368#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET
wdenkb666c8f2003-03-06 00:58:30 +0000369
wdenkabda5ca2003-05-31 18:35:21 +0000370/* Use this HRCW for booting from address 0xfe00000 (JP3 in setting 1-2) */
wdenkbf2f8c92003-05-22 22:52:13 +0000371/* 0x0EB2B645 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200372#define CONFIG_SYS_HRCW_MASTER (( HRCW_BPS11 | HRCW_CIP ) |\
wdenkbf2f8c92003-05-22 22:52:13 +0000373 ( HRCW_L2CPC10 | HRCW_DPPC11 | HRCW_ISB010 ) |\
374 ( HRCW_BMS | HRCW_MMR11 | HRCW_LBPC01 | HRCW_APPC10 ) |\
375 ( HRCW_CS10PC01 | HRCW_MODCK_H0101 ) \
wdenkb666c8f2003-03-06 00:58:30 +0000376 )
wdenkbf2f8c92003-05-22 22:52:13 +0000377
wdenkabda5ca2003-05-31 18:35:21 +0000378/* Use this HRCW for booting from address 0xfff0000 (JP3 in setting 2-3) */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200379/* #define CONFIG_SYS_HRCW_MASTER 0x0cb23645 */
wdenkb666c8f2003-03-06 00:58:30 +0000380
wdenk57b2d802003-06-27 21:31:46 +0000381/* This value should actually be situated in the first 256 bytes of the FLASH
wdenkb666c8f2003-03-06 00:58:30 +0000382 which on the standard MPC8266ADS board is at address 0xFF800000
383 The linker script places it at 0xFFF00000 instead.
384
wdenk57b2d802003-06-27 21:31:46 +0000385 It still works, however, as long as the ADS board jumper JP3 is set to
386 position 2-3 so the board is using the BCSR as Hardware Configuration Word
wdenkb666c8f2003-03-06 00:58:30 +0000387
wdenk57b2d802003-06-27 21:31:46 +0000388 If you want to use the one defined here instead, ust copy the first 256 bytes from
389 0xfff00000 to 0xff800000 (for 8MB flash)
wdenkb666c8f2003-03-06 00:58:30 +0000390
391 - Rune
392
wdenkabda5ca2003-05-31 18:35:21 +0000393*/
wdenkb666c8f2003-03-06 00:58:30 +0000394
395/* no slaves */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200396#define CONFIG_SYS_HRCW_SLAVE1 0
397#define CONFIG_SYS_HRCW_SLAVE2 0
398#define CONFIG_SYS_HRCW_SLAVE3 0
399#define CONFIG_SYS_HRCW_SLAVE4 0
400#define CONFIG_SYS_HRCW_SLAVE5 0
401#define CONFIG_SYS_HRCW_SLAVE6 0
402#define CONFIG_SYS_HRCW_SLAVE7 0
wdenkb666c8f2003-03-06 00:58:30 +0000403
Wolfgang Denk0708bc62010-10-07 21:51:12 +0200404#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
Peter Tyser3a1362d2010-10-14 23:33:24 -0500405
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200406#if (CONFIG_SYS_MONITOR_BASE < CONFIG_SYS_FLASH_BASE)
407# define CONFIG_SYS_RAMBOOT
wdenkb666c8f2003-03-06 00:58:30 +0000408#endif
409
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200410#define CONFIG_SYS_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
411#define CONFIG_SYS_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */
412#define CONFIG_SYS_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
wdenkb666c8f2003-03-06 00:58:30 +0000413
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200414#ifndef CONFIG_SYS_RAMBOOT
Jean-Christophe PLAGNIOL-VILLARD53db4cd2008-09-10 22:48:04 +0200415# define CONFIG_ENV_IS_IN_FLASH 1
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200416# define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE + 0x40000)
Jean-Christophe PLAGNIOL-VILLARD7e1cda62008-09-10 22:48:06 +0200417# define CONFIG_ENV_SECT_SIZE 0x40000
wdenkb666c8f2003-03-06 00:58:30 +0000418#else
Jean-Christophe PLAGNIOL-VILLARDfdb79c32008-09-10 22:47:59 +0200419# define CONFIG_ENV_IS_IN_NVRAM 1
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200420# define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - 0x1000)
Jean-Christophe PLAGNIOL-VILLARD7e1cda62008-09-10 22:48:06 +0200421# define CONFIG_ENV_SIZE 0x200
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200422#endif /* CONFIG_SYS_RAMBOOT */
wdenkb666c8f2003-03-06 00:58:30 +0000423
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200424#define CONFIG_SYS_CACHELINE_SIZE 32 /* For MPC8260 CPU */
Jon Loeligerf4056992007-07-04 22:30:28 -0500425#if defined(CONFIG_CMD_KGDB)
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200426# define CONFIG_SYS_CACHELINE_SHIFT 5 /* log base 2 of the above value */
wdenkb666c8f2003-03-06 00:58:30 +0000427#endif
428
wdenkabda5ca2003-05-31 18:35:21 +0000429/*-----------------------------------------------------------------------
Wolfgang Denkedb65482005-09-24 21:54:50 +0200430 * HIDx - Hardware Implementation-dependent Registers 2-11
wdenkabda5ca2003-05-31 18:35:21 +0000431 *-----------------------------------------------------------------------
432 * HID0 also contains cache control - initially enable both caches and
433 * invalidate contents, then the final state leaves only the instruction
434 * cache enabled. Note that Power-On and Hard reset invalidate the caches,
435 * but Soft reset does not.
436 *
437 * HID1 has only read-only information - nothing to set.
438 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200439/*#define CONFIG_SYS_HID0_INIT 0 */
440#define CONFIG_SYS_HID0_INIT (HID0_ICE |\
wdenkabda5ca2003-05-31 18:35:21 +0000441 HID0_DCE |\
442 HID0_ICFI |\
443 HID0_DCI |\
444 HID0_IFEM |\
445 HID0_ABE)
446
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200447#define CONFIG_SYS_HID0_FINAL (HID0_ICE | HID0_IFEM | HID0_ABE )
wdenkb666c8f2003-03-06 00:58:30 +0000448
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200449#define CONFIG_SYS_HID2 0
wdenkb666c8f2003-03-06 00:58:30 +0000450
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200451#define CONFIG_SYS_SYPCR 0xFFFFFFC3
452#define CONFIG_SYS_BCR 0x004C0000
453#define CONFIG_SYS_SIUMCR 0x4E64C000
454#define CONFIG_SYS_SCCR 0x00000000
wdenkb666c8f2003-03-06 00:58:30 +0000455
wdenkbf2f8c92003-05-22 22:52:13 +0000456/* local bus memory map
457 *
458 * 0x00000000-0x03FFFFFF 64MB SDRAM
459 * 0x80000000-0x9FFFFFFF 512MB outbound prefetchable PCI memory window
460 * 0xA0000000-0xBFFFFFFF 512MB outbound non-prefetchable PCI memory window
461 * 0xF0000000-0xF001FFFF 128KB MPC8266 internal memory
Wolfgang Denkedb65482005-09-24 21:54:50 +0200462 * 0xF4000000-0xF7FFFFFF 64MB outbound PCI I/O window
wdenkbf2f8c92003-05-22 22:52:13 +0000463 * 0xF8000000-0xF8007FFF 32KB BCSR
464 * 0xF8100000-0xF8107FFF 32KB ATM UNI
465 * 0xF8200000-0xF8207FFF 32KB PCI interrupt controller
466 * 0xF8300000-0xF8307FFF 32KB EEPROM
467 * 0xFE000000-0xFFFFFFFF 32MB flash
468 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200469#define CONFIG_SYS_BR0_PRELIM 0xFE001801 /* flash */
470#define CONFIG_SYS_OR0_PRELIM 0xFE000836
471#define CONFIG_SYS_BR1_PRELIM (CONFIG_SYS_BCSR | 0x1801) /* BCSR */
472#define CONFIG_SYS_OR1_PRELIM 0xFFFF8010
473#define CONFIG_SYS_BR4_PRELIM 0xF8300801 /* EEPROM */
474#define CONFIG_SYS_OR4_PRELIM 0xFFFF8846
475#define CONFIG_SYS_BR5_PRELIM 0xF8100801 /* PM5350 ATM UNI */
476#define CONFIG_SYS_OR5_PRELIM 0xFFFF8E36
477#define CONFIG_SYS_BR8_PRELIM (CONFIG_SYS_PCI_INT | 0x1801) /* PCI interrupt controller */
478#define CONFIG_SYS_OR8_PRELIM 0xFFFF8010
wdenkbf2f8c92003-05-22 22:52:13 +0000479
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200480#define CONFIG_SYS_RMR 0x0001
481#define CONFIG_SYS_TMCNTSC (TMCNTSC_SEC|TMCNTSC_ALR|TMCNTSC_TCF|TMCNTSC_TCE)
482#define CONFIG_SYS_PISCR (PISCR_PS|PISCR_PTF|PISCR_PTE)
483#define CONFIG_SYS_RCCR 0
484#define CONFIG_SYS_MPTPR 0x00001900
485#define CONFIG_SYS_PSRT 0x00000021
wdenkb666c8f2003-03-06 00:58:30 +0000486
wdenk5256def2003-09-18 10:45:21 +0000487/* This address must not exist */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200488#define CONFIG_SYS_RESET_ADDRESS 0xFCFFFF00
wdenkb666c8f2003-03-06 00:58:30 +0000489
wdenkbf2f8c92003-05-22 22:52:13 +0000490/* PCI Memory map (if different from default map */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200491#define CONFIG_SYS_PCI_SLV_MEM_LOCAL CONFIG_SYS_SDRAM_BASE /* Local base */
492#define CONFIG_SYS_PCI_SLV_MEM_BUS 0x00000000 /* PCI base */
493#define CONFIG_SYS_PICMR0_MASK_ATTRIB (PICMR_MASK_512MB | PICMR_ENABLE | \
wdenk57b2d802003-06-27 21:31:46 +0000494 PICMR_PREFETCH_EN)
wdenkbf2f8c92003-05-22 22:52:13 +0000495
wdenk57b2d802003-06-27 21:31:46 +0000496/*
wdenkbf2f8c92003-05-22 22:52:13 +0000497 * These are the windows that allow the CPU to access PCI address space.
wdenk57b2d802003-06-27 21:31:46 +0000498 * All three PCI master windows, which allow the CPU to access PCI
499 * prefetch, non prefetch, and IO space (see below), must all fit within
wdenkbf2f8c92003-05-22 22:52:13 +0000500 * these windows.
501 */
502
503/* PCIBR0 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200504#define CONFIG_SYS_PCI_MSTR0_LOCAL 0x80000000 /* Local base */
505#define CONFIG_SYS_PCIMSK0_MASK PCIMSK_1GB /* Size of window */
wdenkbf2f8c92003-05-22 22:52:13 +0000506/* PCIBR1 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200507#define CONFIG_SYS_PCI_MSTR1_LOCAL 0xF4000000 /* Local base */
508#define CONFIG_SYS_PCIMSK1_MASK PCIMSK_64MB /* Size of window */
wdenkbf2f8c92003-05-22 22:52:13 +0000509
wdenk57b2d802003-06-27 21:31:46 +0000510/*
wdenkbf2f8c92003-05-22 22:52:13 +0000511 * Master window that allows the CPU to access PCI Memory (prefetch).
512 * This window will be setup with the first set of Outbound ATU registers
513 * in the bridge.
514 */
515
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200516#define CONFIG_SYS_PCI_MSTR_MEM_LOCAL 0x80000000 /* Local base */
517#define CONFIG_SYS_PCI_MSTR_MEM_BUS 0x80000000 /* PCI base */
518#define CONFIG_SYS_CPU_PCI_MEM_START PCI_MSTR_MEM_LOCAL
519#define CONFIG_SYS_PCI_MSTR_MEM_SIZE 0x20000000 /* 512MB */
520#define CONFIG_SYS_POCMR0_MASK_ATTRIB (POCMR_MASK_512MB | POCMR_ENABLE | POCMR_PREFETCH_EN)
wdenkbf2f8c92003-05-22 22:52:13 +0000521
wdenk57b2d802003-06-27 21:31:46 +0000522/*
wdenkbf2f8c92003-05-22 22:52:13 +0000523 * Master window that allows the CPU to access PCI Memory (non-prefetch).
524 * This window will be setup with the second set of Outbound ATU registers
525 * in the bridge.
526 */
527
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200528#define CONFIG_SYS_PCI_MSTR_MEMIO_LOCAL 0xA0000000 /* Local base */
529#define CONFIG_SYS_PCI_MSTR_MEMIO_BUS 0xA0000000 /* PCI base */
530#define CONFIG_SYS_CPU_PCI_MEMIO_START PCI_MSTR_MEMIO_LOCAL
531#define CONFIG_SYS_PCI_MSTR_MEMIO_SIZE 0x20000000 /* 512MB */
532#define CONFIG_SYS_POCMR1_MASK_ATTRIB (POCMR_MASK_512MB | POCMR_ENABLE)
wdenkbf2f8c92003-05-22 22:52:13 +0000533
wdenk57b2d802003-06-27 21:31:46 +0000534/*
wdenkbf2f8c92003-05-22 22:52:13 +0000535 * Master window that allows the CPU to access PCI IO space.
536 * This window will be setup with the third set of Outbound ATU registers
537 * in the bridge.
538 */
539
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200540#define CONFIG_SYS_PCI_MSTR_IO_LOCAL 0xF4000000 /* Local base */
541#define CONFIG_SYS_PCI_MSTR_IO_BUS 0xF4000000 /* PCI base */
542#define CONFIG_SYS_CPU_PCI_IO_START PCI_MSTR_IO_LOCAL
543#define CONFIG_SYS_PCI_MSTR_IO_SIZE 0x04000000 /* 64MB */
544#define CONFIG_SYS_POCMR2_MASK_ATTRIB (POCMR_MASK_64MB | POCMR_ENABLE | POCMR_PCI_IO)
wdenkbf2f8c92003-05-22 22:52:13 +0000545
Wolfgang Denk47f57792005-08-08 01:03:24 +0200546/*
547 * JFFS2 partitions
548 *
549 */
550/* No command line, one static partition, whole device */
Stefan Roeseb1423dd2009-03-19 13:30:36 +0100551#undef CONFIG_CMD_MTDPARTS
Wolfgang Denk47f57792005-08-08 01:03:24 +0200552#define CONFIG_JFFS2_DEV "nor0"
553#define CONFIG_JFFS2_PART_SIZE 0xFFFFFFFF
554#define CONFIG_JFFS2_PART_OFFSET 0x00000000
555
556/* mtdparts command line support */
557/*
Stefan Roeseb1423dd2009-03-19 13:30:36 +0100558#define CONFIG_CMD_MTDPARTS
Wolfgang Denk47f57792005-08-08 01:03:24 +0200559#define MTDIDS_DEFAULT ""
560#define MTDPARTS_DEFAULT ""
561*/
wdenkbf2f8c92003-05-22 22:52:13 +0000562
wdenkb666c8f2003-03-06 00:58:30 +0000563#endif /* __CONFIG_H */