blob: 26a44071efd51242c5ec7187397747e5181541c6 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Dave Liue740c462006-12-07 21:13:15 +08002/*
3 * Copyright (C) 2006 Freescale Semiconductor, Inc.
Dave Liue740c462006-12-07 21:13:15 +08004 */
5
6#ifndef __CONFIG_H
7#define __CONFIG_H
8
Dave Liue740c462006-12-07 21:13:15 +08009/*
10 * High Level Configuration Options
11 */
12#define CONFIG_E300 1 /* E300 family */
Wolfgang Denk291ba1b2010-10-06 09:05:45 +020013
Dave Liue740c462006-12-07 21:13:15 +080014/*
Dave Liue740c462006-12-07 21:13:15 +080015 * System IO Config
16 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020017#define CONFIG_SYS_SICRL 0x00000000
Dave Liue740c462006-12-07 21:13:15 +080018
Dave Liue740c462006-12-07 21:13:15 +080019/*
Dave Liue740c462006-12-07 21:13:15 +080020 * DDR Setup
21 */
Mario Sixc9f92772019-01-21 09:18:15 +010022#define CONFIG_SYS_SDRAM_BASE 0x00000000 /* DDR is system memory */
Joe Hershbergerb88888d2011-10-11 23:57:13 -050023#define CONFIG_SYS_DDRCDR 0x73000002 /* DDR II voltage is 1.8V */
Dave Liue740c462006-12-07 21:13:15 +080024
25#undef CONFIG_SPD_EEPROM
26#if defined(CONFIG_SPD_EEPROM)
27/* Determine DDR configuration from I2C interface
28 */
29#define SPD_EEPROM_ADDRESS 0x51 /* DDR SODIMM */
30#else
31/* Manually set up DDR parameters
32 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020033#define CONFIG_SYS_DDR_SIZE 128 /* MB */
Joe Hershbergercc03b802011-10-11 23:57:29 -050034#define CONFIG_SYS_DDR_CS0_CONFIG (CSCONFIG_EN \
35 | CSCONFIG_AP \
36 | CSCONFIG_ODT_WR_CFG \
37 | CSCONFIG_ROW_BIT_13 \
38 | CSCONFIG_COL_BIT_10)
39 /* 0x80840102 */
40#define CONFIG_SYS_DDR_TIMING_0 ((0 << TIMING_CFG0_RWT_SHIFT) \
41 | (0 << TIMING_CFG0_WRT_SHIFT) \
42 | (0 << TIMING_CFG0_RRT_SHIFT) \
43 | (0 << TIMING_CFG0_WWT_SHIFT) \
44 | (2 << TIMING_CFG0_ACT_PD_EXIT_SHIFT) \
45 | (2 << TIMING_CFG0_PRE_PD_EXIT_SHIFT) \
46 | (8 << TIMING_CFG0_ODT_PD_EXIT_SHIFT) \
47 | (2 << TIMING_CFG0_MRS_CYC_SHIFT))
48 /* 0x00220802 */
49#define CONFIG_SYS_DDR_TIMING_1 ((3 << TIMING_CFG1_PRETOACT_SHIFT) \
50 | (9 << TIMING_CFG1_ACTTOPRE_SHIFT) \
51 | (3 << TIMING_CFG1_ACTTORW_SHIFT) \
52 | (5 << TIMING_CFG1_CASLAT_SHIFT) \
53 | (13 << TIMING_CFG1_REFREC_SHIFT) \
54 | (3 << TIMING_CFG1_WRREC_SHIFT) \
55 | (2 << TIMING_CFG1_ACTTOACT_SHIFT) \
56 | (2 << TIMING_CFG1_WRTORD_SHIFT))
57 /* 0x3935D322 */
58#define CONFIG_SYS_DDR_TIMING_2 ((0 << TIMING_CFG2_ADD_LAT_SHIFT) \
59 | (31 << TIMING_CFG2_CPO_SHIFT) \
60 | (2 << TIMING_CFG2_WR_LAT_DELAY_SHIFT) \
61 | (2 << TIMING_CFG2_RD_TO_PRE_SHIFT) \
62 | (2 << TIMING_CFG2_WR_DATA_DELAY_SHIFT) \
63 | (3 << TIMING_CFG2_CKE_PLS_SHIFT) \
64 | (10 << TIMING_CFG2_FOUR_ACT_SHIFT))
65 /* 0x0F9048CA */
Joe Hershbergerb88888d2011-10-11 23:57:13 -050066#define CONFIG_SYS_DDR_TIMING_3 0x00000000
Joe Hershbergercc03b802011-10-11 23:57:29 -050067#define CONFIG_SYS_DDR_CLK_CNTL DDR_SDRAM_CLK_CNTL_CLK_ADJUST_05
68 /* 0x02000000 */
69#define CONFIG_SYS_DDR_MODE ((0x4440 << SDRAM_MODE_ESD_SHIFT) \
70 | (0x0232 << SDRAM_MODE_SD_SHIFT))
71 /* 0x44400232 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020072#define CONFIG_SYS_DDR_MODE2 0x8000c000
Joe Hershbergercc03b802011-10-11 23:57:29 -050073#define CONFIG_SYS_DDR_INTERVAL ((800 << SDRAM_INTERVAL_REFINT_SHIFT) \
74 | (100 << SDRAM_INTERVAL_BSTOPRE_SHIFT))
75 /* 0x03200064 */
Joe Hershbergerb88888d2011-10-11 23:57:13 -050076#define CONFIG_SYS_DDR_CS0_BNDS 0x00000007
Joe Hershbergercc03b802011-10-11 23:57:29 -050077#define CONFIG_SYS_DDR_SDRAM_CFG (SDRAM_CFG_SREN \
78 | SDRAM_CFG_SDRAM_TYPE_DDR2 \
79 | SDRAM_CFG_32_BE)
80 /* 0x43080000 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020081#define CONFIG_SYS_DDR_SDRAM_CFG2 0x00401000
Dave Liue740c462006-12-07 21:13:15 +080082#endif
83
84/*
85 * Memory test
86 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020087#undef CONFIG_SYS_DRAM_TEST /* memory test, takes time */
88#define CONFIG_SYS_MEMTEST_START 0x00000000 /* memtest region */
89#define CONFIG_SYS_MEMTEST_END 0x00100000
Dave Liue740c462006-12-07 21:13:15 +080090
91/*
92 * The reserved memory
93 */
Wolfgang Denk0708bc62010-10-07 21:51:12 +020094#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* start of monitor */
Dave Liue740c462006-12-07 21:13:15 +080095
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020096#if (CONFIG_SYS_MONITOR_BASE < CONFIG_SYS_FLASH_BASE)
97#define CONFIG_SYS_RAMBOOT
Dave Liue740c462006-12-07 21:13:15 +080098#else
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020099#undef CONFIG_SYS_RAMBOOT
Dave Liue740c462006-12-07 21:13:15 +0800100#endif
101
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200102/* CONFIG_SYS_MONITOR_LEN must be a multiple of CONFIG_ENV_SECT_SIZE */
Kevin Hao349a0152016-07-08 11:25:14 +0800103#define CONFIG_SYS_MONITOR_LEN (512 * 1024) /* Reserve 512 kB for Mon */
Timur Tabifc5e8792012-03-17 17:44:00 -0500104#define CONFIG_SYS_MALLOC_LEN (256 * 1024) /* Reserved for malloc */
Dave Liue740c462006-12-07 21:13:15 +0800105
106/*
107 * Initial RAM Base Address Setup
108 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200109#define CONFIG_SYS_INIT_RAM_LOCK 1
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500110#define CONFIG_SYS_INIT_RAM_ADDR 0xE6000000 /* Initial RAM addr */
111#define CONFIG_SYS_INIT_RAM_SIZE 0x1000 /* Size of used area in RAM */
112#define CONFIG_SYS_GBL_DATA_OFFSET \
113 (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Dave Liue740c462006-12-07 21:13:15 +0800114
115/*
Dave Liue740c462006-12-07 21:13:15 +0800116 * FLASH on the Local Bus
117 */
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500118#define CONFIG_SYS_FLASH_BASE 0xFE000000 /* FLASH base address */
119#define CONFIG_SYS_FLASH_SIZE 16 /* FLASH size is 16M */
Dave Liue740c462006-12-07 21:13:15 +0800120
Dave Liue740c462006-12-07 21:13:15 +0800121
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500122#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* number of banks */
123#define CONFIG_SYS_MAX_FLASH_SECT 128 /* sectors per device */
Dave Liue740c462006-12-07 21:13:15 +0800124
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200125#undef CONFIG_SYS_FLASH_CHECKSUM
Dave Liue740c462006-12-07 21:13:15 +0800126
127/*
128 * BCSR on the Local Bus
129 */
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500130#define CONFIG_SYS_BCSR 0xF8000000
131 /* Access window base at BCSR base */
Dave Liue740c462006-12-07 21:13:15 +0800132
Dave Liue740c462006-12-07 21:13:15 +0800133
134/*
Dave Liue740c462006-12-07 21:13:15 +0800135 * Windows to access PIB via local bus
136 */
Joe Hershbergerf05b9332011-10-11 23:57:30 -0500137 /* PIB window base 0xF8008000 */
138#define CONFIG_SYS_PIB_BASE 0xF8008000
139#define CONFIG_SYS_PIB_WINDOW_SIZE (32 * 1024)
Dave Liue740c462006-12-07 21:13:15 +0800140
141/*
142 * CS2 on Local Bus, to PIB
143 */
Mario Sixc1e29d92019-01-21 09:18:01 +0100144
Dave Liue740c462006-12-07 21:13:15 +0800145
146/*
147 * CS3 on Local Bus, to PIB
148 */
Mario Sixc1e29d92019-01-21 09:18:01 +0100149
Dave Liue740c462006-12-07 21:13:15 +0800150
151/*
152 * Serial Port
153 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200154#define CONFIG_SYS_NS16550_SERIAL
155#define CONFIG_SYS_NS16550_REG_SIZE 1
156#define CONFIG_SYS_NS16550_CLK get_bus_freq(0)
Dave Liue740c462006-12-07 21:13:15 +0800157
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200158#define CONFIG_SYS_BAUDRATE_TABLE \
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500159 {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 115200}
Dave Liue740c462006-12-07 21:13:15 +0800160
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200161#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_IMMR+0x4500)
162#define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_IMMR+0x4600)
Dave Liue740c462006-12-07 21:13:15 +0800163
Dave Liue740c462006-12-07 21:13:15 +0800164/* I2C */
Heiko Schocherf2850742012-10-24 13:48:22 +0200165#define CONFIG_SYS_I2C
166#define CONFIG_SYS_I2C_FSL
167#define CONFIG_SYS_FSL_I2C_SPEED 400000
168#define CONFIG_SYS_FSL_I2C_SLAVE 0x7F
169#define CONFIG_SYS_FSL_I2C_OFFSET 0x3000
170#define CONFIG_SYS_I2C_NOPROBES { {0, 0x51} }
Dave Liue740c462006-12-07 21:13:15 +0800171
172/*
173 * Config on-board RTC
174 */
175#define CONFIG_RTC_DS1374 /* use ds1374 rtc via i2c */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200176#define CONFIG_SYS_I2C_RTC_ADDR 0x68 /* at address 0x68 */
Dave Liue740c462006-12-07 21:13:15 +0800177
178/*
179 * General PCI
180 * Addresses are mapped 1-1.
181 */
Kim Phillips57a2af32009-07-18 18:42:13 -0500182#define CONFIG_SYS_PCI1_MEM_BASE 0x80000000
183#define CONFIG_SYS_PCI1_MEM_PHYS CONFIG_SYS_PCI1_MEM_BASE
184#define CONFIG_SYS_PCI1_MEM_SIZE 0x10000000 /* 256M */
185#define CONFIG_SYS_PCI1_MMIO_BASE 0x90000000
186#define CONFIG_SYS_PCI1_MMIO_PHYS CONFIG_SYS_PCI1_MMIO_BASE
187#define CONFIG_SYS_PCI1_MMIO_SIZE 0x10000000 /* 256M */
188#define CONFIG_SYS_PCI1_IO_BASE 0x00000000
189#define CONFIG_SYS_PCI1_IO_PHYS 0xE0300000
190#define CONFIG_SYS_PCI1_IO_SIZE 0x100000 /* 1M */
Dave Liue740c462006-12-07 21:13:15 +0800191
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200192#define CONFIG_SYS_PCI_SLV_MEM_LOCAL CONFIG_SYS_SDRAM_BASE
193#define CONFIG_SYS_PCI_SLV_MEM_BUS 0x00000000
194#define CONFIG_SYS_PCI_SLV_MEM_SIZE 0x80000000
Dave Liue740c462006-12-07 21:13:15 +0800195
Dave Liue740c462006-12-07 21:13:15 +0800196#ifdef CONFIG_PCI
Gabor Juhosb4458732013-05-30 07:06:12 +0000197#define CONFIG_PCI_INDIRECT_BRIDGE
Dave Liue740c462006-12-07 21:13:15 +0800198
Kim Phillips57a2af32009-07-18 18:42:13 -0500199#define CONFIG_83XX_PCI_STREAMING
Dave Liue740c462006-12-07 21:13:15 +0800200
201#undef CONFIG_EEPRO100
202#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200203#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x1957 /* Freescale */
Dave Liue740c462006-12-07 21:13:15 +0800204
205#endif /* CONFIG_PCI */
206
Dave Liue740c462006-12-07 21:13:15 +0800207/*
208 * QE UEC ethernet configuration
209 */
210#define CONFIG_UEC_ETH
Kim Phillipsb42cf5f2010-07-26 18:34:57 -0500211#define CONFIG_ETHPRIME "UEC0"
Dave Liue740c462006-12-07 21:13:15 +0800212
213#define CONFIG_UEC_ETH1 /* ETH3 */
214
215#ifdef CONFIG_UEC_ETH1
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200216#define CONFIG_SYS_UEC1_UCC_NUM 2 /* UCC3 */
217#define CONFIG_SYS_UEC1_RX_CLK QE_CLK9
218#define CONFIG_SYS_UEC1_TX_CLK QE_CLK10
219#define CONFIG_SYS_UEC1_ETH_TYPE FAST_ETH
220#define CONFIG_SYS_UEC1_PHY_ADDR 3
Andy Fleming7832a462011-04-13 00:37:12 -0500221#define CONFIG_SYS_UEC1_INTERFACE_TYPE PHY_INTERFACE_MODE_MII
Heiko Schocher40b44bc2010-01-20 09:04:28 +0100222#define CONFIG_SYS_UEC1_INTERFACE_SPEED 100
Dave Liue740c462006-12-07 21:13:15 +0800223#endif
224
225#define CONFIG_UEC_ETH2 /* ETH4 */
226
227#ifdef CONFIG_UEC_ETH2
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200228#define CONFIG_SYS_UEC2_UCC_NUM 3 /* UCC4 */
229#define CONFIG_SYS_UEC2_RX_CLK QE_CLK7
230#define CONFIG_SYS_UEC2_TX_CLK QE_CLK8
231#define CONFIG_SYS_UEC2_ETH_TYPE FAST_ETH
232#define CONFIG_SYS_UEC2_PHY_ADDR 4
Andy Fleming7832a462011-04-13 00:37:12 -0500233#define CONFIG_SYS_UEC2_INTERFACE_TYPE PHY_INTERFACE_MODE_MII
Heiko Schocher40b44bc2010-01-20 09:04:28 +0100234#define CONFIG_SYS_UEC2_INTERFACE_SPEED 100
Dave Liue740c462006-12-07 21:13:15 +0800235#endif
236
237/*
238 * Environment
239 */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200240#ifndef CONFIG_SYS_RAMBOOT
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500241 #define CONFIG_ENV_ADDR \
242 (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
Jean-Christophe PLAGNIOL-VILLARD7e1cda62008-09-10 22:48:06 +0200243 #define CONFIG_ENV_SECT_SIZE 0x20000
244 #define CONFIG_ENV_SIZE 0x2000
Dave Liue740c462006-12-07 21:13:15 +0800245#else
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200246 #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - 0x1000)
Jean-Christophe PLAGNIOL-VILLARD7e1cda62008-09-10 22:48:06 +0200247 #define CONFIG_ENV_SIZE 0x2000
Dave Liue740c462006-12-07 21:13:15 +0800248#endif
249
250#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200251#define CONFIG_SYS_LOADS_BAUD_CHANGE 1 /* allow baudrate change */
Dave Liue740c462006-12-07 21:13:15 +0800252
Jon Loeliger3b7116d2007-07-04 22:30:06 -0500253/*
Jon Loeliger5c4ddae2007-07-10 10:12:10 -0500254 * BOOTP options
255 */
256#define CONFIG_BOOTP_BOOTFILESIZE
Jon Loeliger5c4ddae2007-07-10 10:12:10 -0500257
Jon Loeliger5c4ddae2007-07-10 10:12:10 -0500258/*
Jon Loeliger3b7116d2007-07-04 22:30:06 -0500259 * Command line configuration.
260 */
Jon Loeliger3b7116d2007-07-04 22:30:06 -0500261
Dave Liue740c462006-12-07 21:13:15 +0800262#undef CONFIG_WATCHDOG /* watchdog disabled */
263
264/*
265 * Miscellaneous configurable options
266 */
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500267#define CONFIG_SYS_LOAD_ADDR 0x2000000 /* default load address */
Dave Liue740c462006-12-07 21:13:15 +0800268
Dave Liue740c462006-12-07 21:13:15 +0800269/*
270 * For booting Linux, the board info and command line data
Ira W. Snyderc5a22d02010-09-10 15:42:32 -0700271 * have to be in the first 256 MB of memory, since this is
Dave Liue740c462006-12-07 21:13:15 +0800272 * the maximum mapped by the Linux kernel during initialization.
273 */
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500274 /* Initial Memory map for Linux */
275#define CONFIG_SYS_BOOTMAPSZ (256 << 20)
Kevin Hao9c747962016-07-08 11:25:15 +0800276#define CONFIG_SYS_BOOTM_LEN (64 << 20) /* Increase max gunzip size */
Dave Liue740c462006-12-07 21:13:15 +0800277
Jon Loeliger3b7116d2007-07-04 22:30:06 -0500278#if defined(CONFIG_CMD_KGDB)
Dave Liue740c462006-12-07 21:13:15 +0800279#define CONFIG_KGDB_BAUDRATE 230400 /* speed of kgdb serial port */
Dave Liue740c462006-12-07 21:13:15 +0800280#endif
281
282/*
283 * Environment Configuration
Kim Phillips57a2af32009-07-18 18:42:13 -0500284 */ #define CONFIG_ENV_OVERWRITE
Dave Liue740c462006-12-07 21:13:15 +0800285
286#if defined(CONFIG_UEC_ETH)
Kim Phillips007fbba2008-01-09 15:24:06 -0600287#define CONFIG_HAS_ETH0
Dave Liue740c462006-12-07 21:13:15 +0800288#define CONFIG_HAS_ETH1
Dave Liue740c462006-12-07 21:13:15 +0800289#endif
290
Kim Phillipsfd3a3fc2009-08-21 16:34:38 -0500291#define CONFIG_LOADADDR 800000 /* default location for tftp and bootm */
Dave Liue740c462006-12-07 21:13:15 +0800292
Dave Liue740c462006-12-07 21:13:15 +0800293#define CONFIG_EXTRA_ENV_SETTINGS \
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500294 "netdev=eth0\0" \
295 "consoledev=ttyS0\0" \
296 "ramdiskaddr=1000000\0" \
297 "ramdiskfile=ramfs.83xx\0" \
298 "fdtaddr=780000\0" \
299 "fdtfile=mpc832x_mds.dtb\0" \
300 ""
Dave Liue740c462006-12-07 21:13:15 +0800301
302#define CONFIG_NFSBOOTCOMMAND \
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500303 "setenv bootargs root=/dev/nfs rw " \
304 "nfsroot=$serverip:$rootpath " \
305 "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:" \
306 "$netdev:off " \
307 "console=$consoledev,$baudrate $othbootargs;" \
308 "tftp $loadaddr $bootfile;" \
309 "tftp $fdtaddr $fdtfile;" \
310 "bootm $loadaddr - $fdtaddr"
Dave Liue740c462006-12-07 21:13:15 +0800311
312#define CONFIG_RAMBOOTCOMMAND \
Joe Hershbergerb88888d2011-10-11 23:57:13 -0500313 "setenv bootargs root=/dev/ram rw " \
314 "console=$consoledev,$baudrate $othbootargs;" \
315 "tftp $ramdiskaddr $ramdiskfile;" \
316 "tftp $loadaddr $bootfile;" \
317 "tftp $fdtaddr $fdtfile;" \
318 "bootm $loadaddr $ramdiskaddr $fdtaddr"
Dave Liue740c462006-12-07 21:13:15 +0800319
Dave Liue740c462006-12-07 21:13:15 +0800320#define CONFIG_BOOTCOMMAND CONFIG_NFSBOOTCOMMAND
321
322#endif /* __CONFIG_H */