blob: e0925f6934e74d571c575fe0e9ad64cab101370f [file] [log] [blame]
Gary Jennejohn73ccb342008-04-28 14:04:32 +02001/*
2 * (C) Copyright 2008
3 * Gary Jennejohn, DENX Software Engineering GmbH, garyj@denx.de.
4 *
Wolfgang Denk3765b3e2013-10-07 13:07:26 +02005 * SPDX-License-Identifier: GPL-2.0+
Gary Jennejohn73ccb342008-04-28 14:04:32 +02006 */
7
8/************************************************************************
9 * quad100hd.h - configuration for Quad100hd board
10 ***********************************************************************/
11#ifndef __CONFIG_H
12#define __CONFIG_H
13
14/*-----------------------------------------------------------------------
15 * High Level Configuration Options
16 *----------------------------------------------------------------------*/
17#define CONFIG_QUAD100HD 1 /* Board is Quad100hd */
18#define CONFIG_4xx 1 /* ... PPC4xx family */
19#define CONFIG_405EP 1 /* Specifc 405EP support*/
20
Wolfgang Denk2ae18242010-10-06 09:05:45 +020021#define CONFIG_SYS_TEXT_BASE 0xFFFC0000
22
Gary Jennejohn73ccb342008-04-28 14:04:32 +020023#define CONFIG_SYS_CLK_FREQ 33333333 /* external frequency to pll */
24
25#define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_early_init_f */
26
27#define PLLMR0_DEFAULT PLLMR0_266_133_66 /* no PCI */
28#define PLLMR1_DEFAULT PLLMR1_266_133_66 /* no PCI */
29
Gary Jennejohn0c119352008-05-14 13:39:22 +020030/* the environment is in the EEPROM by default */
Jean-Christophe PLAGNIOL-VILLARDbb1f8b42008-09-05 09:19:30 +020031#define CONFIG_ENV_IS_IN_EEPROM
Jean-Christophe PLAGNIOL-VILLARD5a1aceb2008-09-10 22:48:04 +020032#undef CONFIG_ENV_IS_IN_FLASH
Gary Jennejohn73ccb342008-04-28 14:04:32 +020033
Ben Warren96e21f82008-10-27 23:50:15 -070034#define CONFIG_PPC4xx_EMAC
Gary Jennejohn73ccb342008-04-28 14:04:32 +020035#define CONFIG_HAS_ETH1 1
36#define CONFIG_MII 1 /* MII PHY management */
37#define CONFIG_PHY_ADDR 0x01 /* PHY address */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020038#define CONFIG_SYS_RX_ETH_BUFFER 16 /* Number of ethernet rx buffers & descriptors */
Gary Jennejohn73ccb342008-04-28 14:04:32 +020039#define CONFIG_PHY_RESET 1
40#define CONFIG_PHY_RESET_DELAY 300 /* PHY RESET recovery delay */
41
42/*
43 * Command line configuration.
44 */
45#include <config_cmd_default.h>
46
47#undef CONFIG_CMD_ASKENV
48#undef CONFIG_CMD_CACHE
49#define CONFIG_CMD_DHCP
50#undef CONFIG_CMD_DIAG
51#define CONFIG_CMD_EEPROM
52#undef CONFIG_CMD_ELF
53#define CONFIG_CMD_I2C
54#undef CONFIG_CMD_IRQ
55#define CONFIG_CMD_JFFS2
Gary Jennejohn73ccb342008-04-28 14:04:32 +020056#undef CONFIG_CMD_MII
57#define CONFIG_CMD_NAND
58#undef CONFIG_CMD_PING
59#define CONFIG_CMD_REGINFO
60
61#undef CONFIG_WATCHDOG /* watchdog disabled */
62
63/*-----------------------------------------------------------------------
64 * SDRAM
65 *----------------------------------------------------------------------*/
66/*
67 * SDRAM configuration (please see cpu/ppc/sdram.[ch])
68 */
69#define CONFIG_SDRAM_BANK0 1
Gary Jennejohn73ccb342008-04-28 14:04:32 +020070
71/* FIX! SDRAM timings used in datasheet */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020072#define CONFIG_SYS_SDRAM_CL 3 /* CAS latency */
73#define CONFIG_SYS_SDRAM_tRP 20 /* PRECHARGE command period */
74#define CONFIG_SYS_SDRAM_tRC 66 /* ACTIVE-to-ACTIVE command period */
75#define CONFIG_SYS_SDRAM_tRCD 20 /* ACTIVE-to-READ delay */
76#define CONFIG_SYS_SDRAM_tRFC 66 /* Auto refresh period */
Gary Jennejohn73ccb342008-04-28 14:04:32 +020077
78/*
79 * JFFS2
80 */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020081#define CONFIG_SYS_JFFS2_FIRST_BANK 0
82#ifdef CONFIG_SYS_KERNEL_IN_JFFS2
83#define CONFIG_SYS_JFFS2_FIRST_SECTOR 0 /* JFFS starts at block 0 */
Gary Jennejohn73ccb342008-04-28 14:04:32 +020084#else /* kernel not in JFFS */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020085#define CONFIG_SYS_JFFS2_FIRST_SECTOR 8 /* block 0-7 is kernel (1MB = 8 sectors) */
Gary Jennejohn73ccb342008-04-28 14:04:32 +020086#endif
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020087#define CONFIG_SYS_JFFS2_NUM_BANKS 1
Gary Jennejohn73ccb342008-04-28 14:04:32 +020088
89/*-----------------------------------------------------------------------
90 * Serial Port
91 *----------------------------------------------------------------------*/
Stefan Roese550650d2010-09-20 16:05:31 +020092#define CONFIG_CONS_INDEX 1 /* Use UART0 */
93#define CONFIG_SYS_NS16550
94#define CONFIG_SYS_NS16550_SERIAL
95#define CONFIG_SYS_NS16550_REG_SIZE 1
96#define CONFIG_SYS_NS16550_CLK get_serial_clock()
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020097#undef CONFIG_SYS_EXT_SERIAL_CLOCK /* external serial clock */
98#define CONFIG_SYS_BASE_BAUD 691200
Gary Jennejohn73ccb342008-04-28 14:04:32 +020099#define CONFIG_BAUDRATE 115200
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200100
101/* The following table includes the supported baudrates */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200102#define CONFIG_SYS_BAUDRATE_TABLE \
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200103 {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
104
105/*-----------------------------------------------------------------------
106 * Miscellaneous configurable options
107 *----------------------------------------------------------------------*/
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200108#define CONFIG_SYS_LONGHELP /* undef to save memory */
109#define CONFIG_SYS_PROMPT "=> " /* Monitor Command Prompt */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200110#if defined(CONFIG_CMD_KGDB)
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200111#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200112#else
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200113#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200114#endif
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200115#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
116#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
117#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200118
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200119#define CONFIG_SYS_MEMTEST_START 0x0400000 /* memtest works on */
120#define CONFIG_SYS_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200121
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200122#define CONFIG_SYS_LOAD_ADDR 0x100000 /* default load address */
123#define CONFIG_SYS_EXTBDINFO 1 /* To use extended board_info (bd_t) */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200124
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200125#define CONFIG_SYS_HZ 1000 /* decrementer freq: 1 ms ticks */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200126
127#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200128#define CONFIG_SYS_LOADS_BAUD_CHANGE 1 /* allow baudrate change */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200129
130#define CONFIG_CMDLINE_EDITING 1 /* add command line history */
131#define CONFIG_LOOPW 1 /* enable loopw command */
132#define CONFIG_MX_CYCLIC 1 /* enable mdc/mwc commands */
133#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */
134#define CONFIG_VERSION_VARIABLE 1 /* include version env variable */
135
136/*-----------------------------------------------------------------------
137 * I2C
138 *----------------------------------------------------------------------*/
Dirk Eibach880540d2013-04-25 02:40:01 +0000139#define CONFIG_SYS_I2C
140#define CONFIG_SYS_I2C_PPC4XX
141#define CONFIG_SYS_I2C_PPC4XX_CH0
142#define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000
143#define CONFIG_SYS_I2C_PPC4XX_SLAVE_0 0x7F
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200144
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200145#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* base address */
146#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 /* bytes of address */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200147
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200148#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 5 /* 8 byte write page size */
149#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 /* and takes up to 10 msec */
150#define CONFIG_SYS_EEPROM_SIZE 0x2000
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200151
152/*-----------------------------------------------------------------------
153 * Start addresses for the final memory configuration
154 * (Set up by the startup code)
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200155 * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200156 */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200157#define CONFIG_SYS_SDRAM_BASE 0x00000000
158#define CONFIG_SYS_FLASH_BASE 0xFFC00000
159#define CONFIG_SYS_MONITOR_LEN (256 * 1024) /* Reserve 256 kB for Monitor */
160#define CONFIG_SYS_MALLOC_LEN (128 * 1024) /* Reserve 128 kB for malloc() */
Wolfgang Denk14d0a022010-10-07 21:51:12 +0200161#define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_TEXT_BASE)
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200162
163/*
164 * For booting Linux, the board info and command line data
165 * have to be in the first 8 MB of memory, since this is
166 * the maximum mapped by the Linux kernel during initialization.
167 */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200168#define CONFIG_SYS_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200169
170/*-----------------------------------------------------------------------
171 * FLASH organization
172 */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200173#define CONFIG_SYS_FLASH_CFI /* The flash is CFI compatible */
Jean-Christophe PLAGNIOL-VILLARD00b18832008-08-13 01:40:42 +0200174#define CONFIG_FLASH_CFI_DRIVER
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200175
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200176#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE }
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200177
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200178#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */
179#define CONFIG_SYS_MAX_FLASH_SECT 128 /* max number of sectors on one chip */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200180
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200181#define CONFIG_SYS_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
182#define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200183
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200184#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 /* use buffered writes (20x faster) */
185#define CONFIG_SYS_FLASH_INCREMENT 0 /* there is only one bank */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200186
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200187#define CONFIG_SYS_FLASH_EMPTY_INFO /* print 'E' for empty sector on flinfo */
188#define CONFIG_SYS_FLASH_QUIET_TEST 1 /* don't warn upon unknown flash */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200189
Jean-Christophe PLAGNIOL-VILLARD5a1aceb2008-09-10 22:48:04 +0200190#ifdef CONFIG_ENV_IS_IN_FLASH
Jean-Christophe PLAGNIOL-VILLARD0e8d1582008-09-10 22:48:06 +0200191#define CONFIG_ENV_SECT_SIZE 0x10000 /* size of one complete sector */
Gary Jennejohn0c119352008-05-14 13:39:22 +0200192/* the environment is located before u-boot */
Wolfgang Denk14d0a022010-10-07 21:51:12 +0200193#define CONFIG_ENV_ADDR (CONFIG_SYS_TEXT_BASE - CONFIG_ENV_SECT_SIZE)
Gary Jennejohn0c119352008-05-14 13:39:22 +0200194
195/* Address and size of Redundant Environment Sector */
Jean-Christophe PLAGNIOL-VILLARD0e8d1582008-09-10 22:48:06 +0200196#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR - CONFIG_ENV_SECT_SIZE)
197#define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SECT_SIZE)
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200198#endif
199
Jean-Christophe PLAGNIOL-VILLARDbb1f8b42008-09-05 09:19:30 +0200200#ifdef CONFIG_ENV_IS_IN_EEPROM
Jean-Christophe PLAGNIOL-VILLARD0e8d1582008-09-10 22:48:06 +0200201#define CONFIG_ENV_SIZE 0x400 /* Size of Environment vars */
202#define CONFIG_ENV_OFFSET 0x00000000
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200203#define CONFIG_SYS_ENABLE_CRC_16 1 /* Intrinsyc formatting used crc16 */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200204#endif
205
206/* partly from PPCBoot */
207/* NAND */
208#define CONFIG_NAND
209#ifdef CONFIG_NAND
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200210#define CONFIG_SYS_NAND_BASE 0x60000000
211#define CONFIG_SYS_NAND_CS 10 /* our CS is GPIO10 */
212#define CONFIG_SYS_NAND_RDY 23 /* our RDY is GPIO23 */
213#define CONFIG_SYS_NAND_CE 24 /* our CE is GPIO24 */
214#define CONFIG_SYS_NAND_CLE 31 /* our CLE is GPIO31 */
215#define CONFIG_SYS_NAND_ALE 30 /* our ALE is GPIO30 */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200216#define CONFIG_SYS_MAX_NAND_DEVICE 1
Wolfgang Denk170c1972009-07-18 15:32:10 +0200217
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200218#endif
219
220/*-----------------------------------------------------------------------
221 * Definitions for initial stack pointer and data area (in data cache)
222 */
223/* use on chip memory (OCM) for temperary stack until sdram is tested */
Stefan Roesea47a12b2010-04-15 16:07:28 +0200224/* see ./arch/powerpc/cpu/ppc4xx/start.S */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200225#define CONFIG_SYS_TEMP_STACK_OCM 1
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200226
227/* On Chip Memory location */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200228#define CONFIG_SYS_OCM_DATA_ADDR 0xF8000000
229#define CONFIG_SYS_OCM_DATA_SIZE 0x1000
230#define CONFIG_SYS_INIT_RAM_ADDR CONFIG_SYS_OCM_DATA_ADDR /* inside of OCM */
Wolfgang Denk553f0982010-10-26 13:32:32 +0200231#define CONFIG_SYS_INIT_RAM_SIZE CONFIG_SYS_OCM_DATA_SIZE /* Size of used area in RAM */
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200232
Wolfgang Denk25ddd1f2010-10-26 14:34:52 +0200233#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200234#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200235
236/*-----------------------------------------------------------------------
237 * External Bus Controller (EBC) Setup
238 * Taken from PPCBoot board/icecube/icecube.h
239 */
240
Stefan Roesea47a12b2010-04-15 16:07:28 +0200241/* see ./arch/powerpc/cpu/ppc4xx/cpu_init.c ./cpu/ppc4xx/ndfc.c */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200242#define CONFIG_SYS_EBC_PB0AP 0x04002480
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200243/* AMD NOR flash - this corresponds to FLASH_BASE so may be correct */
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200244#define CONFIG_SYS_EBC_PB0CR 0xFFC5A000
245#define CONFIG_SYS_EBC_PB1AP 0x04005480
246#define CONFIG_SYS_EBC_PB1CR 0x60018000
247#define CONFIG_SYS_EBC_PB2AP 0x00000000
248#define CONFIG_SYS_EBC_PB2CR 0x00000000
249#define CONFIG_SYS_EBC_PB3AP 0x00000000
250#define CONFIG_SYS_EBC_PB3CR 0x00000000
251#define CONFIG_SYS_EBC_PB4AP 0x00000000
252#define CONFIG_SYS_EBC_PB4CR 0x00000000
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200253
254/*-----------------------------------------------------------------------
255 * Definitions for GPIO setup (PPC405EP specific)
256 *
257 * Taken in part from PPCBoot board/icecube/icecube.h
258 */
Stefan Roesea47a12b2010-04-15 16:07:28 +0200259/* see ./arch/powerpc/cpu/ppc4xx/cpu_init.c ./cpu/ppc4xx/start.S */
Stefan Roeseafabb492010-09-12 06:21:37 +0200260#define CONFIG_SYS_GPIO0_OSRL 0x55555550
261#define CONFIG_SYS_GPIO0_OSRH 0x00000110
262#define CONFIG_SYS_GPIO0_ISR1L 0x00000000
263#define CONFIG_SYS_GPIO0_ISR1H 0x15555445
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200264#define CONFIG_SYS_GPIO0_TSRL 0x00000000
Stefan Roeseafabb492010-09-12 06:21:37 +0200265#define CONFIG_SYS_GPIO0_TSRH 0x00000000
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200266#define CONFIG_SYS_GPIO0_TCR 0xFFFF8097
267#define CONFIG_SYS_GPIO0_ODR 0x00000000
Gary Jennejohn73ccb342008-04-28 14:04:32 +0200268
269#if defined(CONFIG_CMD_KGDB)
270#define CONFIG_KGDB_BAUDRATE 230400 /* speed to run kgdb serial port */
271#define CONFIG_KGDB_SER_INDEX 2 /* which serial port to use */
272#endif
273
274/* ENVIRONMENT VARS */
275
276#define CONFIG_IPADDR 192.168.1.67
277#define CONFIG_SERVERIP 192.168.1.50
278#define CONFIG_GATEWAYIP 192.168.1.1
279#define CONFIG_NETMASK 255.255.255.0
280#define CONFIG_LOADADDR 300000
281#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
282
283/* pass open firmware flat tree */
284#define CONFIG_OF_LIBFDT 1
285
286#endif /* __CONFIG_H */