blob: 7dcc150f1955960fbd1a94c4599a30337aa9db60 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +02002/*
3 * Copyright (C) Freescale Semiconductor, Inc. 2006.
4 *
5 * (C) Copyright 2010
6 * Heiko Schocher, DENX Software Engineering, hs@denx.de.
Heiko Schocher4e43b2e2010-07-07 12:26:34 +02007 */
8/*
9 * ve8313 board configuration file
10 */
11
12#ifndef __CONFIG_H
13#define __CONFIG_H
14
15/*
16 * High Level Configuration Options
17 */
18#define CONFIG_E300 1
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020019
Gabor Juhos842033e2013-05-30 07:06:12 +000020#define CONFIG_PCI_INDIRECT_BRIDGE 1
Kumar Galaa2243b82010-08-19 01:48:14 -050021#define CONFIG_FSL_ELBC 1
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020022
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020023/*
24 * On-board devices
25 *
26 */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020027#define CONFIG_SYS_IMMR 0xE0000000
28
29#define CONFIG_SYS_MEMTEST_START 0x00001000
30#define CONFIG_SYS_MEMTEST_END 0x07000000
31
32#define CONFIG_SYS_ACR_PIPE_DEP 3 /* Arbiter pipeline depth */
33#define CONFIG_SYS_ACR_RPTCNT 3 /* Arbiter repeat count */
34
35/*
36 * Device configurations
37 */
38
39/*
40 * DDR Setup
41 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050042#define CONFIG_SYS_DDR_BASE 0x00000000 /* DDR is system memory*/
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020043#define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_BASE
44#define CONFIG_SYS_DDR_SDRAM_BASE CONFIG_SYS_DDR_BASE
45
46/*
47 * Manually set up DDR parameters, as this board does not
48 * have the SPD connected to I2C.
49 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050050#define CONFIG_SYS_DDR_SIZE 128 /* MB */
Joe Hershberger2e651b22011-10-11 23:57:31 -050051#define CONFIG_SYS_DDR_CS0_CONFIG (CSCONFIG_EN \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020052 | CSCONFIG_AP \
Joe Hershberger2fef4022011-10-11 23:57:29 -050053 | CSCONFIG_ODT_RD_NEVER \
54 | CSCONFIG_ODT_WR_ALL \
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050055 | CSCONFIG_ROW_BIT_13 \
56 | CSCONFIG_COL_BIT_10)
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020057 /* 0x80840102 */
58
59#define CONFIG_SYS_DDR_TIMING_3 0x00000000
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050060#define CONFIG_SYS_DDR_TIMING_0 ((0 << TIMING_CFG0_RWT_SHIFT) \
61 | (0 << TIMING_CFG0_WRT_SHIFT) \
62 | (3 << TIMING_CFG0_RRT_SHIFT) \
63 | (2 << TIMING_CFG0_WWT_SHIFT) \
64 | (7 << TIMING_CFG0_ACT_PD_EXIT_SHIFT) \
65 | (2 << TIMING_CFG0_PRE_PD_EXIT_SHIFT) \
66 | (8 << TIMING_CFG0_ODT_PD_EXIT_SHIFT) \
67 | (2 << TIMING_CFG0_MRS_CYC_SHIFT))
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020068 /* 0x0e720802 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050069#define CONFIG_SYS_DDR_TIMING_1 ((2 << TIMING_CFG1_PRETOACT_SHIFT) \
70 | (6 << TIMING_CFG1_ACTTOPRE_SHIFT) \
71 | (2 << TIMING_CFG1_ACTTORW_SHIFT) \
72 | (5 << TIMING_CFG1_CASLAT_SHIFT) \
73 | (6 << TIMING_CFG1_REFREC_SHIFT) \
74 | (2 << TIMING_CFG1_WRREC_SHIFT) \
75 | (2 << TIMING_CFG1_ACTTOACT_SHIFT) \
76 | (2 << TIMING_CFG1_WRTORD_SHIFT))
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020077 /* 0x26256222 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050078#define CONFIG_SYS_DDR_TIMING_2 ((0 << TIMING_CFG2_ADD_LAT_SHIFT) \
79 | (5 << TIMING_CFG2_CPO_SHIFT) \
80 | (2 << TIMING_CFG2_WR_LAT_DELAY_SHIFT) \
81 | (1 << TIMING_CFG2_RD_TO_PRE_SHIFT) \
82 | (2 << TIMING_CFG2_WR_DATA_DELAY_SHIFT) \
83 | (3 << TIMING_CFG2_CKE_PLS_SHIFT) \
84 | (7 << TIMING_CFG2_FOUR_ACT_SHIFT))
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020085 /* 0x029028c7 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050086#define CONFIG_SYS_DDR_INTERVAL ((0x320 << SDRAM_INTERVAL_REFINT_SHIFT) \
87 | (0x2000 << SDRAM_INTERVAL_BSTOPRE_SHIFT))
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020088 /* 0x03202000 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050089#define CONFIG_SYS_SDRAM_CFG (SDRAM_CFG_SREN \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020090 | SDRAM_CFG_SDRAM_TYPE_DDR2 \
Joe Hershberger2fef4022011-10-11 23:57:29 -050091 | SDRAM_CFG_DBW_32)
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020092 /* 0x43080000 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050093#define CONFIG_SYS_SDRAM_CFG2 0x00401000
94#define CONFIG_SYS_DDR_MODE ((0x4440 << SDRAM_MODE_ESD_SHIFT) \
95 | (0x0232 << SDRAM_MODE_SD_SHIFT))
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020096 /* 0x44400232 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -050097#define CONFIG_SYS_DDR_MODE_2 0x8000C000
Heiko Schocher4e43b2e2010-07-07 12:26:34 +020098
99#define CONFIG_SYS_DDR_CLK_CNTL DDR_SDRAM_CLK_CNTL_CLK_ADJUST_05
100 /*0x02000000*/
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500101#define CONFIG_SYS_DDRCDR_VALUE (DDRCDR_EN \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200102 | DDRCDR_PZ_NOMZ \
103 | DDRCDR_NZ_NOMZ \
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500104 | DDRCDR_M_ODR)
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200105 /* 0x73000002 */
106
107/*
108 * FLASH on the Local Bus
109 */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200110#define CONFIG_SYS_FLASH_BASE 0xFE000000
111#define CONFIG_SYS_FLASH_SIZE 32 /* size in MB */
112#define CONFIG_SYS_FLASH_EMPTY_INFO /* display empty sectors */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200113
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200114#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* number of banks */
115#define CONFIG_SYS_MAX_FLASH_SECT 256 /* sectors per dev */
116
117#define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */
118#define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */
119
Wolfgang Denk14d0a022010-10-07 21:51:12 +0200120#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* start of monitor */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200121
122#if (CONFIG_SYS_MONITOR_BASE < CONFIG_SYS_FLASH_BASE)
123#define CONFIG_SYS_RAMBOOT
124#endif
125
126#define CONFIG_SYS_INIT_RAM_LOCK 1
127#define CONFIG_SYS_INIT_RAM_ADDR 0xFD000000 /* Initial RAM address */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500128#define CONFIG_SYS_INIT_RAM_SIZE 0x1000 /* Size of used area in RAM*/
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200129
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500130#define CONFIG_SYS_GBL_DATA_OFFSET \
131 (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200132#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET
133
134/* CONFIG_SYS_MONITOR_LEN must be a multiple of CONFIG_ENV_SECT_SIZE */
135#define CONFIG_SYS_MONITOR_LEN (384 * 1024)
136#define CONFIG_SYS_MALLOC_LEN (512 * 1024)
137
138/*
139 * Local Bus LCRR and LBCR regs
140 */
141#define CONFIG_SYS_LCRR_EADC LCRR_EADC_3
142#define CONFIG_SYS_LCRR_CLKDIV LCRR_CLKDIV_2
143
144#define CONFIG_SYS_LBC_LBCR 0x00040000
145
146#define CONFIG_SYS_LBC_MRTPR 0x20000000
147
148/*
149 * NAND settings
150 */
151#define CONFIG_SYS_NAND_BASE 0x61000000
152#define CONFIG_SYS_MAX_NAND_DEVICE 1
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200153#define CONFIG_NAND_FSL_ELBC 1
154#define CONFIG_SYS_NAND_BLOCK_SIZE 16384
155
Mario Six1e35d422019-01-21 09:17:42 +0100156
157#define CONFIG_SYS_BR0_PRELIM (CONFIG_SYS_FLASH_BASE \
158 | BR_PS_16 /* 16 bit */ \
159 | BR_MS_GPCM /* MSEL = GPCM */ \
160 | BR_V) /* valid */
161#define CONFIG_SYS_OR0_PRELIM (OR_AM_32MB \
162 | OR_GPCM_CSNT \
163 | OR_GPCM_ACS_DIV4 \
164 | OR_GPCM_SCY_5 \
165 | OR_GPCM_TRLX_SET \
166 | OR_GPCM_EAD)
167 /* 0xfe000c55 */
168
169#define CONFIG_SYS_BR1_PRELIM (CONFIG_SYS_NAND_BASE \
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500170 | BR_PS_8 \
171 | BR_DECC_CHK_GEN \
172 | BR_MS_FCM \
173 | BR_V) /* valid */
174 /* 0x61000c21 */
Mario Six1e35d422019-01-21 09:17:42 +0100175#define CONFIG_SYS_OR1_PRELIM (OR_AM_32KB \
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500176 | OR_FCM_BCTLD \
177 | OR_FCM_CHT \
178 | OR_FCM_SCY_2 \
179 | OR_FCM_RST \
Mario Six1e35d422019-01-21 09:17:42 +0100180 | OR_FCM_TRLX) /* 0xffff90ac */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200181
Mario Six1e35d422019-01-21 09:17:42 +0100182/* Still needed for spl_minimal.c */
183#define CONFIG_SYS_NAND_BR_PRELIM CONFIG_SYS_BR1_PRELIM
184#define CONFIG_SYS_NAND_OR_PRELIM CONFIG_SYS_OR1_PRELIM
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200185
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200186/* CS2 NvRAM */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500187#define CONFIG_SYS_BR2_PRELIM (0x60000000 \
188 | BR_PS_8 \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200189 | BR_V)
190 /* 0x60000801 */
Joe Hershberger7d6a0982011-10-11 23:57:30 -0500191#define CONFIG_SYS_OR2_PRELIM (OR_AM_128KB \
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500192 | OR_GPCM_CSNT \
193 | OR_GPCM_XACS \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200194 | OR_GPCM_SCY_3 \
Joe Hershberger7d6a0982011-10-11 23:57:30 -0500195 | OR_GPCM_TRLX_SET \
196 | OR_GPCM_EHTR_SET \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200197 | OR_GPCM_EAD)
198 /* 0xfffe0937 */
199/* local bus read write buffer mapping SRAM@0x64000000 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500200#define CONFIG_SYS_BR3_PRELIM (0x62000000 \
201 | BR_PS_16 \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200202 | BR_V)
203 /* 0x62001001 */
204
Joe Hershberger7d6a0982011-10-11 23:57:30 -0500205#define CONFIG_SYS_OR3_PRELIM (OR_AM_32MB \
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500206 | OR_GPCM_CSNT \
207 | OR_GPCM_XACS \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200208 | OR_GPCM_SCY_15 \
Joe Hershberger7d6a0982011-10-11 23:57:30 -0500209 | OR_GPCM_TRLX_SET \
210 | OR_GPCM_EHTR_SET \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200211 | OR_GPCM_EAD)
212 /* 0xfe0009f7 */
213
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200214/*
215 * Serial Port
216 */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200217#define CONFIG_SYS_NS16550_SERIAL
218#define CONFIG_SYS_NS16550_REG_SIZE 1
219#define CONFIG_SYS_NS16550_CLK get_bus_freq(0)
220
221#define CONFIG_SYS_BAUDRATE_TABLE \
222 {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 115200}
223
224#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_IMMR+0x4500)
225#define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_IMMR+0x4600)
226
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200227#if defined(CONFIG_PCI)
228/*
229 * General PCI
230 * Addresses are mapped 1-1.
231 */
232#define CONFIG_SYS_PCI1_MEM_BASE 0x80000000
233#define CONFIG_SYS_PCI1_MEM_PHYS CONFIG_SYS_PCI1_MEM_BASE
234#define CONFIG_SYS_PCI1_MEM_SIZE 0x10000000 /* 256M */
235#define CONFIG_SYS_PCI1_MMIO_BASE 0x90000000
236#define CONFIG_SYS_PCI1_MMIO_PHYS CONFIG_SYS_PCI1_MMIO_BASE
237#define CONFIG_SYS_PCI1_MMIO_SIZE 0x10000000 /* 256M */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500238#define CONFIG_SYS_PCI1_IO_BASE 0x00000000
239#define CONFIG_SYS_PCI1_IO_PHYS 0xE2000000
240#define CONFIG_SYS_PCI1_IO_SIZE 0x00100000 /* 1M */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200241
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200242#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x1957 /* Freescale */
243#endif
244
245/*
246 * TSEC
247 */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200248
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200249#define CONFIG_TSEC1
250#ifdef CONFIG_TSEC1
251#define CONFIG_HAS_ETH0
252#define CONFIG_TSEC1_NAME "TSEC1"
253#define CONFIG_SYS_TSEC1_OFFSET 0x24000
254#define TSEC1_PHY_ADDR 0x01
255#define TSEC1_FLAGS 0
256#define TSEC1_PHYIDX 0
257#endif
258
259/* Options are: TSEC[0-1] */
260#define CONFIG_ETHPRIME "TSEC1"
261
262/*
263 * Environment
264 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500265#define CONFIG_ENV_ADDR \
266 (CONFIG_SYS_FLASH_BASE + CONFIG_SYS_MONITOR_LEN)
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200267#define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K(one sector) for env */
268#define CONFIG_ENV_SIZE 0x4000
269/* Address and size of Redundant Environment Sector */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500270#define CONFIG_ENV_OFFSET_REDUND \
271 (CONFIG_ENV_OFFSET + CONFIG_ENV_SECT_SIZE)
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200272#define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE)
273
274#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
275#define CONFIG_SYS_LOADS_BAUD_CHANGE 1 /* allow baudrate change */
276
277/*
278 * BOOTP options
279 */
280#define CONFIG_BOOTP_BOOTFILESIZE
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200281
282/*
283 * Command line configuration.
284 */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200285
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200286/*
287 * Miscellaneous configurable options
288 */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200289#define CONFIG_SYS_LOAD_ADDR 0x100000 /* default load address */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200290#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
291
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200292#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot arg Buffer size */
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200293
294/*
295 * For booting Linux, the board info and command line data
Ira W. Snyder9f530d52010-09-10 15:42:32 -0700296 * have to be in the first 256 MB of memory, since this is
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200297 * the maximum mapped by the Linux kernel during initialization.
298 */
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500299 /* Initial Memory map for Linux*/
300#define CONFIG_SYS_BOOTMAPSZ (256 << 20)
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200301
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200302/* System IO Config */
303#define CONFIG_SYS_SICRH (0x01000000 | \
304 SICRH_ETSEC2_B | \
305 SICRH_ETSEC2_C | \
306 SICRH_ETSEC2_D | \
307 SICRH_ETSEC2_E | \
308 SICRH_ETSEC2_F | \
309 SICRH_ETSEC2_G | \
310 SICRH_TSOBI1 | \
311 SICRH_TSOBI2)
312 /* 0x010fff03 */
313#define CONFIG_SYS_SICRL (SICRL_LBC | \
314 SICRL_SPI_A | \
315 SICRL_SPI_B | \
316 SICRL_SPI_C | \
317 SICRL_SPI_D | \
318 SICRL_ETSEC2_A)
319 /* 0x33fc0003) */
320
321#define CONFIG_SYS_HID0_INIT 0x000000000
322#define CONFIG_SYS_HID0_FINAL (HID0_ENABLE_MACHINE_CHECK | \
323 HID0_ENABLE_INSTRUCTION_CACHE)
324
325#define CONFIG_SYS_HID2 HID2_HBE
326
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200327#define CONFIG_NETDEV eth0
328
Mario Six5bc05432018-03-28 14:38:20 +0200329#define CONFIG_HOSTNAME "ve8313"
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200330#define CONFIG_UBOOTPATH ve8313/u-boot.bin
331
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200332#define CONFIG_EXTRA_ENV_SETTINGS \
Marek Vasut5368c552012-09-23 17:41:24 +0200333 "netdev=" __stringify(CONFIG_NETDEV) "\0" \
334 "ethprime=" __stringify(CONFIG_TSEC1_NAME) "\0" \
335 "u-boot=" __stringify(CONFIG_UBOOTPATH) "\0" \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200336 "u-boot_addr_r=100000\0" \
337 "load=tftp ${u-boot_addr_r} ${u-boot}\0" \
Marek Vasut5368c552012-09-23 17:41:24 +0200338 "update=protect off " __stringify(CONFIG_SYS_FLASH_BASE) \
339 " +${filesize};" \
340 "erase " __stringify(CONFIG_SYS_FLASH_BASE) " +${filesize};" \
341 "cp.b ${u-boot_addr_r} " __stringify(CONFIG_SYS_FLASH_BASE) \
Joe Hershbergerbe29fa72011-10-11 23:57:26 -0500342 " ${filesize};" \
Marek Vasut5368c552012-09-23 17:41:24 +0200343 "protect on " __stringify(CONFIG_SYS_FLASH_BASE) " +${filesize}\0" \
Heiko Schocher4e43b2e2010-07-07 12:26:34 +0200344
345#endif /* __CONFIG_H */