xref: /rk3399_rockchip-uboot/include/configs/MPC832XEMDS.h (revision 35cc4e4823668e8745854899cfaedd4489beb0ef)
124c3aca3SDave Liu /*
224c3aca3SDave Liu  * Copyright (C) 2006 Freescale Semiconductor, Inc.
324c3aca3SDave Liu  *
424c3aca3SDave Liu  * This program is free software; you can redistribute it and/or
524c3aca3SDave Liu  * modify it under the terms of the GNU General Public License as
624c3aca3SDave Liu  * published by the Free Software Foundation; either version 2 of
724c3aca3SDave Liu  * the License, or (at your option) any later version.
824c3aca3SDave Liu  *
924c3aca3SDave Liu  * This program is distributed in the hope that it will be useful,
1024c3aca3SDave Liu  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1124c3aca3SDave Liu  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
1224c3aca3SDave Liu  * GNU General Public License for more details.
1324c3aca3SDave Liu  *
1424c3aca3SDave Liu  * You should have received a copy of the GNU General Public License
1524c3aca3SDave Liu  * along with this program; if not, write to the Free Software
1624c3aca3SDave Liu  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
1724c3aca3SDave Liu  * MA 02111-1307 USA
1824c3aca3SDave Liu  */
1924c3aca3SDave Liu 
2024c3aca3SDave Liu #ifndef __CONFIG_H
2124c3aca3SDave Liu #define __CONFIG_H
2224c3aca3SDave Liu 
2324c3aca3SDave Liu #undef DEBUG
2424c3aca3SDave Liu 
2524c3aca3SDave Liu /*
2624c3aca3SDave Liu  * High Level Configuration Options
2724c3aca3SDave Liu  */
2824c3aca3SDave Liu #define CONFIG_E300		1	/* E300 family */
2924c3aca3SDave Liu #define CONFIG_QE		1	/* Has QE */
3024c3aca3SDave Liu #define CONFIG_MPC83XX		1	/* MPC83xx family */
3124c3aca3SDave Liu #define CONFIG_MPC832X		1	/* MPC832x CPU specific */
3224c3aca3SDave Liu #define CONFIG_MPC832XEMDS	1	/* MPC832XEMDS board specific */
3324c3aca3SDave Liu 
3424c3aca3SDave Liu /*
3524c3aca3SDave Liu  * System Clock Setup
3624c3aca3SDave Liu  */
3724c3aca3SDave Liu #ifdef CONFIG_PCISLAVE
3824c3aca3SDave Liu #define CONFIG_83XX_PCICLK	66000000	/* in HZ */
3924c3aca3SDave Liu #else
4024c3aca3SDave Liu #define CONFIG_83XX_CLKIN	66000000	/* in Hz */
4124c3aca3SDave Liu #endif
4224c3aca3SDave Liu 
4324c3aca3SDave Liu #ifndef CONFIG_SYS_CLK_FREQ
4424c3aca3SDave Liu #define CONFIG_SYS_CLK_FREQ	66000000
4524c3aca3SDave Liu #endif
4624c3aca3SDave Liu 
4724c3aca3SDave Liu /*
4824c3aca3SDave Liu  * Hardware Reset Configuration Word
4924c3aca3SDave Liu  */
5024c3aca3SDave Liu #define CFG_HRCW_LOW (\
5124c3aca3SDave Liu 	HRCWL_LCL_BUS_TO_SCB_CLK_1X1 |\
5224c3aca3SDave Liu 	HRCWL_DDR_TO_SCB_CLK_2X1 |\
5324c3aca3SDave Liu 	HRCWL_VCO_1X2 |\
5424c3aca3SDave Liu 	HRCWL_CSB_TO_CLKIN_2X1 |\
5524c3aca3SDave Liu 	HRCWL_CORE_TO_CSB_2X1 |\
5624c3aca3SDave Liu 	HRCWL_CE_PLL_VCO_DIV_2 |\
5724c3aca3SDave Liu 	HRCWL_CE_PLL_DIV_1X1 |\
5824c3aca3SDave Liu 	HRCWL_CE_TO_PLL_1X3)
5924c3aca3SDave Liu 
6024c3aca3SDave Liu #ifdef CONFIG_PCISLAVE
6124c3aca3SDave Liu #define CFG_HRCW_HIGH (\
6224c3aca3SDave Liu 	HRCWH_PCI_AGENT |\
6324c3aca3SDave Liu 	HRCWH_PCI1_ARBITER_DISABLE |\
6424c3aca3SDave Liu 	HRCWH_CORE_ENABLE |\
6524c3aca3SDave Liu 	HRCWH_FROM_0XFFF00100 |\
6624c3aca3SDave Liu 	HRCWH_BOOTSEQ_DISABLE |\
6724c3aca3SDave Liu 	HRCWH_SW_WATCHDOG_DISABLE |\
6824c3aca3SDave Liu 	HRCWH_ROM_LOC_LOCAL_16BIT |\
6924c3aca3SDave Liu 	HRCWH_BIG_ENDIAN |\
7024c3aca3SDave Liu 	HRCWH_LALE_NORMAL)
7124c3aca3SDave Liu #else
7224c3aca3SDave Liu #define CFG_HRCW_HIGH (\
7324c3aca3SDave Liu 	HRCWH_PCI_HOST |\
7424c3aca3SDave Liu 	HRCWH_PCI1_ARBITER_ENABLE |\
7524c3aca3SDave Liu 	HRCWH_CORE_ENABLE |\
7624c3aca3SDave Liu 	HRCWH_FROM_0X00000100 |\
7724c3aca3SDave Liu 	HRCWH_BOOTSEQ_DISABLE |\
7824c3aca3SDave Liu 	HRCWH_SW_WATCHDOG_DISABLE |\
7924c3aca3SDave Liu 	HRCWH_ROM_LOC_LOCAL_16BIT |\
8024c3aca3SDave Liu 	HRCWH_BIG_ENDIAN |\
8124c3aca3SDave Liu 	HRCWH_LALE_NORMAL)
8224c3aca3SDave Liu #endif
8324c3aca3SDave Liu 
8424c3aca3SDave Liu /*
8524c3aca3SDave Liu  * System IO Config
8624c3aca3SDave Liu  */
8724c3aca3SDave Liu #define CFG_SICRL		0x00000000
8824c3aca3SDave Liu 
8924c3aca3SDave Liu #define CONFIG_BOARD_EARLY_INIT_F	/* call board_pre_init */
9024c3aca3SDave Liu 
9124c3aca3SDave Liu /*
9224c3aca3SDave Liu  * IMMR new address
9324c3aca3SDave Liu  */
9424c3aca3SDave Liu #define CFG_IMMR		0xE0000000
9524c3aca3SDave Liu 
9624c3aca3SDave Liu /*
9724c3aca3SDave Liu  * DDR Setup
9824c3aca3SDave Liu  */
9924c3aca3SDave Liu #define CFG_DDR_BASE		0x00000000	/* DDR is system memory */
10024c3aca3SDave Liu #define CFG_SDRAM_BASE		CFG_DDR_BASE
10124c3aca3SDave Liu #define CFG_DDR_SDRAM_BASE	CFG_DDR_BASE
10224c3aca3SDave Liu #define CFG_DDRCDR		0x73000002	/* DDR II voltage is 1.8V */
10324c3aca3SDave Liu 
10424c3aca3SDave Liu #undef CONFIG_SPD_EEPROM
10524c3aca3SDave Liu #if defined(CONFIG_SPD_EEPROM)
10624c3aca3SDave Liu /* Determine DDR configuration from I2C interface
10724c3aca3SDave Liu  */
10824c3aca3SDave Liu #define SPD_EEPROM_ADDRESS	0x51	/* DDR SODIMM */
10924c3aca3SDave Liu #else
11024c3aca3SDave Liu /* Manually set up DDR parameters
11124c3aca3SDave Liu  */
11224c3aca3SDave Liu #define CFG_DDR_SIZE		128	/* MB */
11324c3aca3SDave Liu #define CFG_DDR_CS0_CONFIG	0x80840102
11424c3aca3SDave Liu #define CFG_DDR_TIMING_0	0x00220802
11524c3aca3SDave Liu #define CFG_DDR_TIMING_1	0x3935d322
11624c3aca3SDave Liu #define CFG_DDR_TIMING_2	0x0f9048ca
11724c3aca3SDave Liu #define CFG_DDR_TIMING_3	0x00000000
11824c3aca3SDave Liu #define CFG_DDR_CLK_CNTL	0x02000000
11924c3aca3SDave Liu #define CFG_DDR_MODE		0x44400232
12024c3aca3SDave Liu #define CFG_DDR_MODE2		0x8000c000
12124c3aca3SDave Liu #define CFG_DDR_INTERVAL	0x03200064
12224c3aca3SDave Liu #define CFG_DDR_CS0_BNDS	0x00000007
12324c3aca3SDave Liu #define CFG_DDR_SDRAM_CFG	0x43080000
12424c3aca3SDave Liu #define CFG_DDR_SDRAM_CFG2	0x00401000
12524c3aca3SDave Liu #endif
12624c3aca3SDave Liu 
12724c3aca3SDave Liu /*
12824c3aca3SDave Liu  * Memory test
12924c3aca3SDave Liu  */
13024c3aca3SDave Liu #undef CFG_DRAM_TEST		/* memory test, takes time */
13124c3aca3SDave Liu #define CFG_MEMTEST_START	0x00000000	/* memtest region */
13224c3aca3SDave Liu #define CFG_MEMTEST_END		0x00100000
13324c3aca3SDave Liu 
13424c3aca3SDave Liu /*
13524c3aca3SDave Liu  * The reserved memory
13624c3aca3SDave Liu  */
13724c3aca3SDave Liu #define CFG_MONITOR_BASE	TEXT_BASE	/* start of monitor */
13824c3aca3SDave Liu 
13924c3aca3SDave Liu #if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
14024c3aca3SDave Liu #define CFG_RAMBOOT
14124c3aca3SDave Liu #else
14224c3aca3SDave Liu #undef  CFG_RAMBOOT
14324c3aca3SDave Liu #endif
14424c3aca3SDave Liu 
14524c3aca3SDave Liu #define CFG_MONITOR_LEN		(256 * 1024)	/* Reserve 256 kB for Mon */
14624c3aca3SDave Liu #define CFG_MALLOC_LEN		(128 * 1024)	/* Reserved for malloc */
14724c3aca3SDave Liu 
14824c3aca3SDave Liu /*
14924c3aca3SDave Liu  * Initial RAM Base Address Setup
15024c3aca3SDave Liu  */
15124c3aca3SDave Liu #define CFG_INIT_RAM_LOCK	1
15224c3aca3SDave Liu #define CFG_INIT_RAM_ADDR	0xE6000000	/* Initial RAM address */
15324c3aca3SDave Liu #define CFG_INIT_RAM_END	0x1000		/* End of used area in RAM */
15424c3aca3SDave Liu #define CFG_GBL_DATA_SIZE	0x100		/* num bytes initial data */
15524c3aca3SDave Liu #define CFG_GBL_DATA_OFFSET	(CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
15624c3aca3SDave Liu 
15724c3aca3SDave Liu /*
15824c3aca3SDave Liu  * Local Bus Configuration & Clock Setup
15924c3aca3SDave Liu  */
16024c3aca3SDave Liu #define CFG_LCRR		(LCRR_DBYP | LCRR_CLKDIV_2)
16124c3aca3SDave Liu #define CFG_LBC_LBCR		0x00000000
16224c3aca3SDave Liu 
16324c3aca3SDave Liu /*
16424c3aca3SDave Liu  * FLASH on the Local Bus
16524c3aca3SDave Liu  */
16624c3aca3SDave Liu #define CFG_FLASH_CFI		/* use the Common Flash Interface */
16724c3aca3SDave Liu #define CFG_FLASH_CFI_DRIVER	/* use the CFI driver */
16824c3aca3SDave Liu #define CFG_FLASH_BASE		0xFE000000	/* FLASH base address */
16924c3aca3SDave Liu #define CFG_FLASH_SIZE		16	/* FLASH size is 16M */
17024c3aca3SDave Liu 
17124c3aca3SDave Liu #define CFG_LBLAWBAR0_PRELIM	CFG_FLASH_BASE	/* Window base at flash base */
17224c3aca3SDave Liu #define CFG_LBLAWAR0_PRELIM	0x80000018	/* 32MB window size */
17324c3aca3SDave Liu 
17424c3aca3SDave Liu #define CFG_BR0_PRELIM	(CFG_FLASH_BASE |	/* Flash Base address */ \
17524c3aca3SDave Liu 			(2 << BR_PS_SHIFT) |	/* 16 bit port size */ \
17624c3aca3SDave Liu 			BR_V)			/* valid */
17724c3aca3SDave Liu #define CFG_OR0_PRELIM		0xfe006ff7	/* 16MB Flash size */
17824c3aca3SDave Liu 
17924c3aca3SDave Liu #define CFG_MAX_FLASH_BANKS	1		/* number of banks */
18024c3aca3SDave Liu #define CFG_MAX_FLASH_SECT	128		/* sectors per device */
18124c3aca3SDave Liu 
18224c3aca3SDave Liu #undef CFG_FLASH_CHECKSUM
18324c3aca3SDave Liu 
18424c3aca3SDave Liu /*
18524c3aca3SDave Liu  * BCSR on the Local Bus
18624c3aca3SDave Liu  */
18724c3aca3SDave Liu #define CFG_BCSR		0xF8000000
18824c3aca3SDave Liu #define CFG_LBLAWBAR1_PRELIM	CFG_BCSR	/* Access window base at BCSR base */
18924c3aca3SDave Liu #define CFG_LBLAWAR1_PRELIM	0x8000000E	/* Access window size 32K */
19024c3aca3SDave Liu 
19124c3aca3SDave Liu #define CFG_BR1_PRELIM		(CFG_BCSR|0x00000801)	/* Port size=8bit, MSEL=GPCM */
19224c3aca3SDave Liu #define CFG_OR1_PRELIM		0xFFFFE9f7	/* length 32K */
19324c3aca3SDave Liu 
19424c3aca3SDave Liu /*
19524c3aca3SDave Liu  * SDRAM on the Local Bus
19624c3aca3SDave Liu  */
19724c3aca3SDave Liu #undef CFG_LB_SDRAM		/* The board has not SRDAM on local bus */
19824c3aca3SDave Liu 
19924c3aca3SDave Liu #ifdef CFG_LB_SDRAM
20024c3aca3SDave Liu #define CFG_LBC_SDRAM_BASE	0xF0000000	/* SDRAM base address */
20124c3aca3SDave Liu #define CFG_LBC_SDRAM_SIZE	64		/* LBC SDRAM is 64MB */
20224c3aca3SDave Liu 
20324c3aca3SDave Liu #define CFG_LBLAWBAR2_PRELIM	CFG_LBC_SDRAM_BASE
20424c3aca3SDave Liu #define CFG_LBLAWAR2_PRELIM	0x80000019	/* 64MB */
20524c3aca3SDave Liu 
20624c3aca3SDave Liu /*local bus BR2, OR2 definition for SDRAM if soldered on the EPB board */
20724c3aca3SDave Liu /*
20824c3aca3SDave Liu  * Base Register 2 and Option Register 2 configure SDRAM.
20924c3aca3SDave Liu  * The SDRAM base address, CFG_LBC_SDRAM_BASE, is 0xf0000000.
21024c3aca3SDave Liu  *
21124c3aca3SDave Liu  * For BR2, need:
21224c3aca3SDave Liu  *    Base address of 0xf0000000 = BR[0:16] = 1111 0000 0000 0000 0
21324c3aca3SDave Liu  *    port size = 32-bits = BR2[19:20] = 11
21424c3aca3SDave Liu  *    no parity checking = BR2[21:22] = 00
21524c3aca3SDave Liu  *    SDRAM for MSEL = BR2[24:26] = 011
21624c3aca3SDave Liu  *    Valid = BR[31] = 1
21724c3aca3SDave Liu  *
21824c3aca3SDave Liu  * 0    4    8    12   16   20   24   28
21924c3aca3SDave Liu  * 1111 0000 0000 0000 0001 1000 0110 0001 = f0001861
22024c3aca3SDave Liu  *
22124c3aca3SDave Liu  * CFG_LBC_SDRAM_BASE should be masked and OR'ed into
22224c3aca3SDave Liu  * the top 17 bits of BR2.
22324c3aca3SDave Liu  */
22424c3aca3SDave Liu 
22524c3aca3SDave Liu #define CFG_BR2_PRELIM	0xf0001861	/*Port size=32bit, MSEL=SDRAM */
22624c3aca3SDave Liu 
22724c3aca3SDave Liu /*
22824c3aca3SDave Liu  * The SDRAM size in MB, CFG_LBC_SDRAM_SIZE, is 64.
22924c3aca3SDave Liu  *
23024c3aca3SDave Liu  * For OR2, need:
23124c3aca3SDave Liu  *    64MB mask for AM, OR2[0:7] = 1111 1100
23224c3aca3SDave Liu  *                 XAM, OR2[17:18] = 11
23324c3aca3SDave Liu  *    9 columns OR2[19-21] = 010
23424c3aca3SDave Liu  *    13 rows   OR2[23-25] = 100
23524c3aca3SDave Liu  *    EAD set for extra time OR[31] = 1
23624c3aca3SDave Liu  *
23724c3aca3SDave Liu  * 0    4    8    12   16   20   24   28
23824c3aca3SDave Liu  * 1111 1100 0000 0000 0110 1001 0000 0001 = fc006901
23924c3aca3SDave Liu  */
24024c3aca3SDave Liu 
24124c3aca3SDave Liu #define CFG_OR2_PRELIM	0xfc006901
24224c3aca3SDave Liu 
24324c3aca3SDave Liu #define CFG_LBC_LSRT	0x32000000	/* LB sdram refresh timer, about 6us */
24424c3aca3SDave Liu #define CFG_LBC_MRTPR	0x20000000	/* LB refresh timer prescal, 266MHz/32 */
24524c3aca3SDave Liu 
24624c3aca3SDave Liu /*
24724c3aca3SDave Liu  * LSDMR masks
24824c3aca3SDave Liu  */
24924c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_NORMAL	(0 << (31 - 4))
25024c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_ARFRSH	(1 << (31 - 4))
25124c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_SRFRSH	(2 << (31 - 4))
25224c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_MRW	(3 << (31 - 4))
25324c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_PRECH	(4 << (31 - 4))
25424c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_PCHALL	(5 << (31 - 4))
25524c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_ACTBNK	(6 << (31 - 4))
25624c3aca3SDave Liu #define CFG_LBC_LSDMR_OP_RWINV	(7 << (31 - 4))
25724c3aca3SDave Liu 
25824c3aca3SDave Liu #define CFG_LBC_LSDMR_COMMON	0x0063b723
25924c3aca3SDave Liu 
26024c3aca3SDave Liu /*
26124c3aca3SDave Liu  * SDRAM Controller configuration sequence.
26224c3aca3SDave Liu  */
26324c3aca3SDave Liu #define CFG_LBC_LSDMR_1		( CFG_LBC_LSDMR_COMMON \
26424c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_PCHALL)
26524c3aca3SDave Liu #define CFG_LBC_LSDMR_2		( CFG_LBC_LSDMR_COMMON \
26624c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_ARFRSH)
26724c3aca3SDave Liu #define CFG_LBC_LSDMR_3		( CFG_LBC_LSDMR_COMMON \
26824c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_ARFRSH)
26924c3aca3SDave Liu #define CFG_LBC_LSDMR_4		( CFG_LBC_LSDMR_COMMON \
27024c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_MRW)
27124c3aca3SDave Liu #define CFG_LBC_LSDMR_5		( CFG_LBC_LSDMR_COMMON \
27224c3aca3SDave Liu 				| CFG_LBC_LSDMR_OP_NORMAL)
27324c3aca3SDave Liu 
27424c3aca3SDave Liu #endif
27524c3aca3SDave Liu 
27624c3aca3SDave Liu /*
27724c3aca3SDave Liu  * Windows to access PIB via local bus
27824c3aca3SDave Liu  */
27924c3aca3SDave Liu #define CFG_LBLAWBAR3_PRELIM	0xf8008000	/* windows base 0xf8008000 */
28024c3aca3SDave Liu #define CFG_LBLAWAR3_PRELIM	0x8000000f	/* windows size 64KB */
28124c3aca3SDave Liu 
28224c3aca3SDave Liu /*
28324c3aca3SDave Liu  * CS2 on Local Bus, to PIB
28424c3aca3SDave Liu  */
28524c3aca3SDave Liu #define CFG_BR2_PRELIM	0xf8008801	/* CS2 base address at 0xf8008000 */
28624c3aca3SDave Liu #define CFG_OR2_PRELIM	0xffffe9f7	/* size 32KB, port size 8bit, GPCM */
28724c3aca3SDave Liu 
28824c3aca3SDave Liu /*
28924c3aca3SDave Liu  * CS3 on Local Bus, to PIB
29024c3aca3SDave Liu  */
29124c3aca3SDave Liu #define CFG_BR3_PRELIM	0xf8010801	/* CS3 base address at 0xf8010000 */
29224c3aca3SDave Liu #define CFG_OR3_PRELIM	0xffffe9f7	/* size 32KB, port size 8bit, GPCM */
29324c3aca3SDave Liu 
29424c3aca3SDave Liu /*
29524c3aca3SDave Liu  * Serial Port
29624c3aca3SDave Liu  */
29724c3aca3SDave Liu #define CONFIG_CONS_INDEX	1
29824c3aca3SDave Liu #undef CONFIG_SERIAL_SOFTWARE_FIFO
29924c3aca3SDave Liu #define CFG_NS16550
30024c3aca3SDave Liu #define CFG_NS16550_SERIAL
30124c3aca3SDave Liu #define CFG_NS16550_REG_SIZE	1
30224c3aca3SDave Liu #define CFG_NS16550_CLK		get_bus_freq(0)
30324c3aca3SDave Liu 
30424c3aca3SDave Liu #define CFG_BAUDRATE_TABLE  \
30524c3aca3SDave Liu 	{300, 600, 1200, 2400, 4800, 9600, 19200, 38400,115200}
30624c3aca3SDave Liu 
30724c3aca3SDave Liu #define CFG_NS16550_COM1	(CFG_IMMR+0x4500)
30824c3aca3SDave Liu #define CFG_NS16550_COM2	(CFG_IMMR+0x4600)
30924c3aca3SDave Liu 
31022d71a71SKim Phillips #define CONFIG_CMDLINE_EDITING	1	/* add command line history	*/
31124c3aca3SDave Liu /* Use the HUSH parser */
31224c3aca3SDave Liu #define CFG_HUSH_PARSER
31324c3aca3SDave Liu #ifdef CFG_HUSH_PARSER
31424c3aca3SDave Liu #define CFG_PROMPT_HUSH_PS2 "> "
31524c3aca3SDave Liu #endif
31624c3aca3SDave Liu 
31724c3aca3SDave Liu /* pass open firmware flat tree */
318*35cc4e48SKim Phillips #define CONFIG_OF_LIBFDT	1
31924c3aca3SDave Liu #define CONFIG_OF_BOARD_SETUP	1
32024c3aca3SDave Liu 
32124c3aca3SDave Liu /* maximum size of the flat tree (8K) */
32224c3aca3SDave Liu #define OF_FLAT_TREE_MAX_SIZE	8192
32324c3aca3SDave Liu 
32424c3aca3SDave Liu #define OF_CPU			"PowerPC,8323@0"
32524c3aca3SDave Liu #define OF_SOC			"soc8323@e0000000"
326d51b3cf3SKim Phillips #define OF_QE			"qe@e0100000"
32724c3aca3SDave Liu #define OF_TBCLK		(bd->bi_busfreq / 4)
32824c3aca3SDave Liu #define OF_STDOUT_PATH		"/soc8323@e0000000/serial@4500"
32924c3aca3SDave Liu 
33024c3aca3SDave Liu /* I2C */
33124c3aca3SDave Liu #define CONFIG_HARD_I2C		/* I2C with hardware support */
33224c3aca3SDave Liu #undef CONFIG_SOFT_I2C		/* I2C bit-banged */
33324c3aca3SDave Liu #define CONFIG_FSL_I2C
33424c3aca3SDave Liu #define CFG_I2C_SPEED	400000	/* I2C speed and slave address */
33524c3aca3SDave Liu #define CFG_I2C_SLAVE	0x7F
33624c3aca3SDave Liu #define CFG_I2C_NOPROBES	{0x51}	/* Don't probe these addrs */
33724c3aca3SDave Liu #define CFG_I2C_OFFSET	0x3000
33824c3aca3SDave Liu 
33924c3aca3SDave Liu /*
34024c3aca3SDave Liu  * Config on-board RTC
34124c3aca3SDave Liu  */
34224c3aca3SDave Liu #define CONFIG_RTC_DS1374		/* use ds1374 rtc via i2c */
34324c3aca3SDave Liu #define CFG_I2C_RTC_ADDR	0x68	/* at address 0x68 */
34424c3aca3SDave Liu 
34524c3aca3SDave Liu /*
34624c3aca3SDave Liu  * General PCI
34724c3aca3SDave Liu  * Addresses are mapped 1-1.
34824c3aca3SDave Liu  */
34924c3aca3SDave Liu #define CFG_PCI_MEM_BASE	0x80000000
35024c3aca3SDave Liu #define CFG_PCI_MEM_PHYS	CFG_PCI_MEM_BASE
35124c3aca3SDave Liu #define CFG_PCI_MEM_SIZE	0x10000000	/* 256M */
35224c3aca3SDave Liu #define CFG_PCI_MMIO_BASE	0x90000000
35324c3aca3SDave Liu #define CFG_PCI_MMIO_PHYS	CFG_PCI_MMIO_BASE
35424c3aca3SDave Liu #define CFG_PCI_MMIO_SIZE	0x10000000	/* 256M */
35524c3aca3SDave Liu #define CFG_PCI_IO_BASE		0xE0300000
35624c3aca3SDave Liu #define CFG_PCI_IO_PHYS		0xE0300000
35724c3aca3SDave Liu #define CFG_PCI_IO_SIZE		0x100000	/* 1M */
35824c3aca3SDave Liu 
35924c3aca3SDave Liu #define CFG_PCI_SLV_MEM_LOCAL	CFG_SDRAM_BASE
36024c3aca3SDave Liu #define CFG_PCI_SLV_MEM_BUS	0x00000000
36124c3aca3SDave Liu #define CFG_PCI_SLV_MEM_SIZE	0x80000000
36224c3aca3SDave Liu 
36324c3aca3SDave Liu 
36424c3aca3SDave Liu #ifdef CONFIG_PCI
36524c3aca3SDave Liu 
36624c3aca3SDave Liu #define CONFIG_NET_MULTI
36724c3aca3SDave Liu #define CONFIG_PCI_PNP		/* do pci plug-and-play */
36824c3aca3SDave Liu 
36924c3aca3SDave Liu #undef CONFIG_EEPRO100
37024c3aca3SDave Liu #undef CONFIG_PCI_SCAN_SHOW	/* show pci devices on startup */
37124c3aca3SDave Liu #define CFG_PCI_SUBSYS_VENDORID	0x1957	/* Freescale */
37224c3aca3SDave Liu 
37324c3aca3SDave Liu #endif	/* CONFIG_PCI */
37424c3aca3SDave Liu 
37524c3aca3SDave Liu 
37624c3aca3SDave Liu #ifndef CONFIG_NET_MULTI
37724c3aca3SDave Liu #define CONFIG_NET_MULTI	1
37824c3aca3SDave Liu #endif
37924c3aca3SDave Liu 
38024c3aca3SDave Liu /*
38124c3aca3SDave Liu  * QE UEC ethernet configuration
38224c3aca3SDave Liu  */
38324c3aca3SDave Liu #define CONFIG_UEC_ETH
38424c3aca3SDave Liu #define CONFIG_ETHPRIME		"Freescale GETH"
38524c3aca3SDave Liu 
38624c3aca3SDave Liu #define CONFIG_UEC_ETH1		/* ETH3 */
38724c3aca3SDave Liu 
38824c3aca3SDave Liu #ifdef CONFIG_UEC_ETH1
38924c3aca3SDave Liu #define CFG_UEC1_UCC_NUM	2	/* UCC3 */
39024c3aca3SDave Liu #define CFG_UEC1_RX_CLK		QE_CLK9
39124c3aca3SDave Liu #define CFG_UEC1_TX_CLK		QE_CLK10
39224c3aca3SDave Liu #define CFG_UEC1_ETH_TYPE	FAST_ETH
39324c3aca3SDave Liu #define CFG_UEC1_PHY_ADDR	3
39424c3aca3SDave Liu #define CFG_UEC1_INTERFACE_MODE	ENET_100_MII
39524c3aca3SDave Liu #endif
39624c3aca3SDave Liu 
39724c3aca3SDave Liu #define CONFIG_UEC_ETH2		/* ETH4 */
39824c3aca3SDave Liu 
39924c3aca3SDave Liu #ifdef CONFIG_UEC_ETH2
40024c3aca3SDave Liu #define CFG_UEC2_UCC_NUM	3	/* UCC4 */
40124c3aca3SDave Liu #define CFG_UEC2_RX_CLK		QE_CLK7
40224c3aca3SDave Liu #define CFG_UEC2_TX_CLK		QE_CLK8
40324c3aca3SDave Liu #define CFG_UEC2_ETH_TYPE	FAST_ETH
40424c3aca3SDave Liu #define CFG_UEC2_PHY_ADDR	4
40524c3aca3SDave Liu #define CFG_UEC2_INTERFACE_MODE	ENET_100_MII
40624c3aca3SDave Liu #endif
40724c3aca3SDave Liu 
40824c3aca3SDave Liu /*
40924c3aca3SDave Liu  * Environment
41024c3aca3SDave Liu  */
41124c3aca3SDave Liu #ifndef CFG_RAMBOOT
41224c3aca3SDave Liu 	#define CFG_ENV_IS_IN_FLASH	1
41324c3aca3SDave Liu 	#define CFG_ENV_ADDR		(CFG_MONITOR_BASE + 0x40000)
41424c3aca3SDave Liu 	#define CFG_ENV_SECT_SIZE	0x40000	/* 256K(one sector) for env */
41524c3aca3SDave Liu 	#define CFG_ENV_SIZE		0x2000
41624c3aca3SDave Liu #else
41724c3aca3SDave Liu 	#define CFG_NO_FLASH		1	/* Flash is not usable now */
41824c3aca3SDave Liu 	#define CFG_ENV_IS_NOWHERE	1	/* Store ENV in memory only */
41924c3aca3SDave Liu 	#define CFG_ENV_ADDR		(CFG_MONITOR_BASE - 0x1000)
42024c3aca3SDave Liu 	#define CFG_ENV_SIZE		0x2000
42124c3aca3SDave Liu #endif
42224c3aca3SDave Liu 
42324c3aca3SDave Liu #define CONFIG_LOADS_ECHO	1	/* echo on for serial download */
42424c3aca3SDave Liu #define CFG_LOADS_BAUD_CHANGE	1	/* allow baudrate change */
42524c3aca3SDave Liu 
4268ea5499aSJon Loeliger /*
427079a136cSJon Loeliger  * BOOTP options
428079a136cSJon Loeliger  */
429079a136cSJon Loeliger #define CONFIG_BOOTP_BOOTFILESIZE
430079a136cSJon Loeliger #define CONFIG_BOOTP_BOOTPATH
431079a136cSJon Loeliger #define CONFIG_BOOTP_GATEWAY
432079a136cSJon Loeliger #define CONFIG_BOOTP_HOSTNAME
433079a136cSJon Loeliger 
434079a136cSJon Loeliger 
435079a136cSJon Loeliger /*
4368ea5499aSJon Loeliger  * Command line configuration.
4378ea5499aSJon Loeliger  */
4388ea5499aSJon Loeliger #include <config_cmd_default.h>
4398ea5499aSJon Loeliger 
4408ea5499aSJon Loeliger #define CONFIG_CMD_PING
4418ea5499aSJon Loeliger #define CONFIG_CMD_I2C
4428ea5499aSJon Loeliger #define CONFIG_CMD_ASKENV
4438ea5499aSJon Loeliger 
44424c3aca3SDave Liu #if defined(CONFIG_PCI)
4458ea5499aSJon Loeliger     #define CONFIG_CMD_PCI
44624c3aca3SDave Liu #endif
44724c3aca3SDave Liu 
4488ea5499aSJon Loeliger #if defined(CFG_RAMBOOT)
4498ea5499aSJon Loeliger     #undef CONFIG_CMD_ENV
4508ea5499aSJon Loeliger     #undef CONFIG_CMD_LOADS
4518ea5499aSJon Loeliger #endif
4528ea5499aSJon Loeliger 
45324c3aca3SDave Liu 
45424c3aca3SDave Liu #undef CONFIG_WATCHDOG		/* watchdog disabled */
45524c3aca3SDave Liu 
45624c3aca3SDave Liu /*
45724c3aca3SDave Liu  * Miscellaneous configurable options
45824c3aca3SDave Liu  */
45924c3aca3SDave Liu #define CFG_LONGHELP		/* undef to save memory */
46024c3aca3SDave Liu #define CFG_LOAD_ADDR		0x2000000	/* default load address */
46124c3aca3SDave Liu #define CFG_PROMPT		"=> "	/* Monitor Command Prompt */
46224c3aca3SDave Liu 
4638ea5499aSJon Loeliger #if defined(CONFIG_CMD_KGDB)
46424c3aca3SDave Liu 	#define CFG_CBSIZE	1024	/* Console I/O Buffer Size */
46524c3aca3SDave Liu #else
46624c3aca3SDave Liu 	#define CFG_CBSIZE	256	/* Console I/O Buffer Size */
46724c3aca3SDave Liu #endif
46824c3aca3SDave Liu 
46924c3aca3SDave Liu #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)	/* Print Buffer Size */
47024c3aca3SDave Liu #define CFG_MAXARGS	16		/* max number of command args */
47124c3aca3SDave Liu #define CFG_BARGSIZE	CFG_CBSIZE	/* Boot Argument Buffer Size */
47224c3aca3SDave Liu #define CFG_HZ		1000		/* decrementer freq: 1ms ticks */
47324c3aca3SDave Liu 
47424c3aca3SDave Liu /*
47524c3aca3SDave Liu  * For booting Linux, the board info and command line data
47624c3aca3SDave Liu  * have to be in the first 8 MB of memory, since this is
47724c3aca3SDave Liu  * the maximum mapped by the Linux kernel during initialization.
47824c3aca3SDave Liu  */
47924c3aca3SDave Liu #define CFG_BOOTMAPSZ		(8 << 20)	/* Initial Memory map for Linux */
48024c3aca3SDave Liu 
48124c3aca3SDave Liu /*
48224c3aca3SDave Liu  * Core HID Setup
48324c3aca3SDave Liu  */
48424c3aca3SDave Liu #define CFG_HID0_INIT		0x000000000
48524c3aca3SDave Liu #define CFG_HID0_FINAL		HID0_ENABLE_MACHINE_CHECK
48624c3aca3SDave Liu #define CFG_HID2		HID2_HBE
48724c3aca3SDave Liu 
48824c3aca3SDave Liu /*
48924c3aca3SDave Liu  * Cache Config
49024c3aca3SDave Liu  */
49124c3aca3SDave Liu #define CFG_DCACHE_SIZE		16384
49224c3aca3SDave Liu #define CFG_CACHELINE_SIZE	32
4938ea5499aSJon Loeliger #if defined(CONFIG_CMD_KGDB)
49424c3aca3SDave Liu #define CFG_CACHELINE_SHIFT	5	/*log base 2 of the above value */
49524c3aca3SDave Liu #endif
49624c3aca3SDave Liu 
49724c3aca3SDave Liu /*
49824c3aca3SDave Liu  * MMU Setup
49924c3aca3SDave Liu  */
50024c3aca3SDave Liu 
50124c3aca3SDave Liu /* DDR: cache cacheable */
50224c3aca3SDave Liu #define CFG_IBAT0L	(CFG_SDRAM_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
50324c3aca3SDave Liu #define CFG_IBAT0U	(CFG_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
50424c3aca3SDave Liu #define CFG_DBAT0L	CFG_IBAT0L
50524c3aca3SDave Liu #define CFG_DBAT0U	CFG_IBAT0U
50624c3aca3SDave Liu 
50724c3aca3SDave Liu /* IMMRBAR & PCI IO: cache-inhibit and guarded */
50824c3aca3SDave Liu #define CFG_IBAT1L	(CFG_IMMR | BATL_PP_10 | \
50924c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
51024c3aca3SDave Liu #define CFG_IBAT1U	(CFG_IMMR | BATU_BL_4M | BATU_VS | BATU_VP)
51124c3aca3SDave Liu #define CFG_DBAT1L	CFG_IBAT1L
51224c3aca3SDave Liu #define CFG_DBAT1U	CFG_IBAT1U
51324c3aca3SDave Liu 
51424c3aca3SDave Liu /* BCSR: cache-inhibit and guarded */
51524c3aca3SDave Liu #define CFG_IBAT2L	(CFG_BCSR | BATL_PP_10 | \
51624c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
51724c3aca3SDave Liu #define CFG_IBAT2U	(CFG_BCSR | BATU_BL_128K | BATU_VS | BATU_VP)
51824c3aca3SDave Liu #define CFG_DBAT2L	CFG_IBAT2L
51924c3aca3SDave Liu #define CFG_DBAT2U	CFG_IBAT2U
52024c3aca3SDave Liu 
52124c3aca3SDave Liu /* FLASH: icache cacheable, but dcache-inhibit and guarded */
52224c3aca3SDave Liu #define CFG_IBAT3L	(CFG_FLASH_BASE | BATL_PP_10 | BATL_MEMCOHERENCE)
52324c3aca3SDave Liu #define CFG_IBAT3U	(CFG_FLASH_BASE | BATU_BL_32M | BATU_VS | BATU_VP)
52424c3aca3SDave Liu #define CFG_DBAT3L	(CFG_FLASH_BASE | BATL_PP_10 | \
52524c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
52624c3aca3SDave Liu #define CFG_DBAT3U	CFG_IBAT3U
52724c3aca3SDave Liu 
52824c3aca3SDave Liu #define CFG_IBAT4L	(0)
52924c3aca3SDave Liu #define CFG_IBAT4U	(0)
53024c3aca3SDave Liu #define CFG_DBAT4L	CFG_IBAT4L
53124c3aca3SDave Liu #define CFG_DBAT4U	CFG_IBAT4U
53224c3aca3SDave Liu 
53324c3aca3SDave Liu /* Stack in dcache: cacheable, no memory coherence */
53424c3aca3SDave Liu #define CFG_IBAT5L	(CFG_INIT_RAM_ADDR | BATL_PP_10)
53524c3aca3SDave Liu #define CFG_IBAT5U	(CFG_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP)
53624c3aca3SDave Liu #define CFG_DBAT5L	CFG_IBAT5L
53724c3aca3SDave Liu #define CFG_DBAT5U	CFG_IBAT5U
53824c3aca3SDave Liu 
53924c3aca3SDave Liu #ifdef CONFIG_PCI
54024c3aca3SDave Liu /* PCI MEM space: cacheable */
54124c3aca3SDave Liu #define CFG_IBAT6L	(CFG_PCI_MEM_PHYS | BATL_PP_10 | BATL_MEMCOHERENCE)
54224c3aca3SDave Liu #define CFG_IBAT6U	(CFG_PCI_MEM_PHYS | BATU_BL_256M | BATU_VS | BATU_VP)
54324c3aca3SDave Liu #define CFG_DBAT6L	CFG_IBAT6L
54424c3aca3SDave Liu #define CFG_DBAT6U	CFG_IBAT6U
54524c3aca3SDave Liu /* PCI MMIO space: cache-inhibit and guarded */
54624c3aca3SDave Liu #define CFG_IBAT7L	(CFG_PCI_MMIO_PHYS | BATL_PP_10 | \
54724c3aca3SDave Liu 			BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
54824c3aca3SDave Liu #define CFG_IBAT7U	(CFG_PCI_MMIO_PHYS | BATU_BL_256M | BATU_VS | BATU_VP)
54924c3aca3SDave Liu #define CFG_DBAT7L	CFG_IBAT7L
55024c3aca3SDave Liu #define CFG_DBAT7U	CFG_IBAT7U
55124c3aca3SDave Liu #else
55224c3aca3SDave Liu #define CFG_IBAT6L	(0)
55324c3aca3SDave Liu #define CFG_IBAT6U	(0)
55424c3aca3SDave Liu #define CFG_IBAT7L	(0)
55524c3aca3SDave Liu #define CFG_IBAT7U	(0)
55624c3aca3SDave Liu #define CFG_DBAT6L	CFG_IBAT6L
55724c3aca3SDave Liu #define CFG_DBAT6U	CFG_IBAT6U
55824c3aca3SDave Liu #define CFG_DBAT7L	CFG_IBAT7L
55924c3aca3SDave Liu #define CFG_DBAT7U	CFG_IBAT7U
56024c3aca3SDave Liu #endif
56124c3aca3SDave Liu 
56224c3aca3SDave Liu /*
56324c3aca3SDave Liu  * Internal Definitions
56424c3aca3SDave Liu  *
56524c3aca3SDave Liu  * Boot Flags
56624c3aca3SDave Liu  */
56724c3aca3SDave Liu #define BOOTFLAG_COLD	0x01	/* Normal Power-On: Boot from FLASH */
56824c3aca3SDave Liu #define BOOTFLAG_WARM	0x02	/* Software reboot */
56924c3aca3SDave Liu 
5708ea5499aSJon Loeliger #if defined(CONFIG_CMD_KGDB)
57124c3aca3SDave Liu #define CONFIG_KGDB_BAUDRATE	230400	/* speed of kgdb serial port */
57224c3aca3SDave Liu #define CONFIG_KGDB_SER_INDEX	2	/* which serial port to use */
57324c3aca3SDave Liu #endif
57424c3aca3SDave Liu 
57524c3aca3SDave Liu /*
57624c3aca3SDave Liu  * Environment Configuration
57724c3aca3SDave Liu  */
57824c3aca3SDave Liu 
57924c3aca3SDave Liu #define CONFIG_ENV_OVERWRITE
58024c3aca3SDave Liu 
58124c3aca3SDave Liu #if defined(CONFIG_UEC_ETH)
58224c3aca3SDave Liu #define CONFIG_ETHADDR	00:04:9f:ef:03:01
58324c3aca3SDave Liu #define CONFIG_HAS_ETH1
58424c3aca3SDave Liu #define CONFIG_ETH1ADDR	00:04:9f:ef:03:02
58524c3aca3SDave Liu #endif
58624c3aca3SDave Liu 
58724c3aca3SDave Liu #define CONFIG_BAUDRATE	115200
58824c3aca3SDave Liu 
58924c3aca3SDave Liu #define CONFIG_LOADADDR	200000	/* default location for tftp and bootm */
59024c3aca3SDave Liu 
59124c3aca3SDave Liu #define CONFIG_BOOTDELAY 6 	/* -1 disables auto-boot */
59224c3aca3SDave Liu #undef  CONFIG_BOOTARGS		/* the boot command will set bootargs */
59324c3aca3SDave Liu 
59424c3aca3SDave Liu #define CONFIG_EXTRA_ENV_SETTINGS					\
59524c3aca3SDave Liu    "netdev=eth0\0"							\
59624c3aca3SDave Liu    "consoledev=ttyS0\0"							\
59724c3aca3SDave Liu    "ramdiskaddr=1000000\0"						\
59824c3aca3SDave Liu    "ramdiskfile=ramfs.83xx\0"						\
59924c3aca3SDave Liu    "fdtaddr=400000\0"							\
60024c3aca3SDave Liu    "fdtfile=mpc832xemds.dtb\0"						\
60124c3aca3SDave Liu    ""
60224c3aca3SDave Liu 
60324c3aca3SDave Liu #define CONFIG_NFSBOOTCOMMAND						\
60424c3aca3SDave Liu    "setenv bootargs root=/dev/nfs rw "					\
60524c3aca3SDave Liu       "nfsroot=$serverip:$rootpath "					\
60624c3aca3SDave Liu       "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off "	\
60724c3aca3SDave Liu       "console=$consoledev,$baudrate $othbootargs;"			\
60824c3aca3SDave Liu    "tftp $loadaddr $bootfile;"						\
60924c3aca3SDave Liu    "tftp $fdtaddr $fdtfile;"						\
61024c3aca3SDave Liu    "bootm $loadaddr - $fdtaddr"
61124c3aca3SDave Liu 
61224c3aca3SDave Liu #define CONFIG_RAMBOOTCOMMAND						\
61324c3aca3SDave Liu    "setenv bootargs root=/dev/ram rw "					\
61424c3aca3SDave Liu       "console=$consoledev,$baudrate $othbootargs;"			\
61524c3aca3SDave Liu    "tftp $ramdiskaddr $ramdiskfile;"					\
61624c3aca3SDave Liu    "tftp $loadaddr $bootfile;"						\
61724c3aca3SDave Liu    "tftp $fdtaddr $fdtfile;"						\
61824c3aca3SDave Liu    "bootm $loadaddr $ramdiskaddr $fdtaddr"
61924c3aca3SDave Liu 
62024c3aca3SDave Liu 
62124c3aca3SDave Liu #define CONFIG_BOOTCOMMAND CONFIG_NFSBOOTCOMMAND
62224c3aca3SDave Liu 
62324c3aca3SDave Liu #endif	/* __CONFIG_H */
624