blob: 9ad2e5b3495335a197305a06940764882a2ceddd [file] [log] [blame]
Heiko Schocher1e8f4e72008-11-20 09:59:09 +01001/*
Heiko Schocherb11f53f2011-03-15 16:52:29 +01002 * (C) Copyright 2008-2011
Heiko Schocher1e8f4e72008-11-20 09:59:09 +01003 * Heiko Schocher, DENX Software Engineering, hs@denx.de.
4 *
5 * See file CREDITS for list of people who contributed to this
6 * project.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 * MA 02111-1307 USA
22 */
23
24#ifndef __CONFIG_KEYMILE_H
25#define __CONFIG_KEYMILE_H
26
27/* Do boardspecific init for all boards */
Heiko Schocherb11f53f2011-03-15 16:52:29 +010028#define CONFIG_BOARD_EARLY_INIT_R
Heiko Schocherf1fef1d2010-04-26 13:07:28 +020029#define CONFIG_LAST_STAGE_INIT
30
31#define CONFIG_BOOTCOUNT_LIMIT
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010032
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010033/*
Prafulla Wadaskar31d80c72010-10-27 17:46:06 +053034 * By default kwbimage.cfg from board specific folder is used
35 * If for some board, different configuration file need to be used,
36 * CONFIG_SYS_KWD_CONFIG should be defined in board specific header file
37 */
38#ifndef CONFIG_SYS_KWD_CONFIG
Wolfgang Denk844f07d2010-11-27 23:30:56 +010039#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.cfg
Prafulla Wadaskar31d80c72010-10-27 17:46:06 +053040#endif /* CONFIG_SYS_KWD_CONFIG */
41
Wolfgang Denk844f07d2010-11-27 23:30:56 +010042/*
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010043 * Command line configuration.
44 */
45#include <config_cmd_default.h>
46
47#define CONFIG_CMD_ASKENV
48#define CONFIG_CMD_DHCP
49#define CONFIG_CMD_ECHO
50#define CONFIG_CMD_IMMAP
51#define CONFIG_CMD_MII
52#define CONFIG_CMD_PING
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010053#define CONFIG_CMD_EEPROM
54#define CONFIG_CMD_I2C
Heiko Schocher364123d2009-03-12 07:37:18 +010055#define CONFIG_CMD_JFFS2
Heiko Schocherdc71b242009-07-09 12:04:18 +020056#define CONFIG_CMD_MTDPARTS
Holger Brunckf41ee962011-03-14 15:49:05 +010057#define CONFIG_CMD_SETEXPR
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010058
Heiko Schocherb11f53f2011-03-15 16:52:29 +010059#undef CONFIG_WATCHDOG /* disable platform specific watchdog */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010060
Holger Brunckf41ee962011-03-14 15:49:05 +010061#define CONFIG_BOOTDELAY 2 /* autoboot after 2 seconds */
Heiko Schocherb11f53f2011-03-15 16:52:29 +010062#undef CONFIG_BOOTARGS /* the boot command will set bootargs */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010063
64/*
65 * Miscellaneous configurable options
66 */
67#define CONFIG_SYS_HUSH_PARSER
68#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
Heiko Schocherb11f53f2011-03-15 16:52:29 +010069#define CONFIG_SYS_LONGHELP /* undef to save memory */
70#define CONFIG_SYS_PROMPT "=> " /* Monitor Command Prompt */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010071#if defined(CONFIG_CMD_KGDB)
Heiko Schocherb11f53f2011-03-15 16:52:29 +010072#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010073#else
Holger Brunckf41ee962011-03-14 15:49:05 +010074#define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010075#endif
Heiko Schocherb11f53f2011-03-15 16:52:29 +010076#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)
Holger Brunckf41ee962011-03-14 15:49:05 +010077#define CONFIG_SYS_MAXARGS 32 /* max number of command args */
Heiko Schocherb11f53f2011-03-15 16:52:29 +010078#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
79#define CONFIG_CMDLINE_EDITING
80#define CONFIG_AUTO_COMPLETE
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010081
Heiko Schocherb11f53f2011-03-15 16:52:29 +010082#define CONFIG_HUSH_INIT_VAR
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010083
84#define CONFIG_SYS_ALT_MEMTEST /* memory test, takes time */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010085
Heiko Schocherb11f53f2011-03-15 16:52:29 +010086#define CONFIG_SYS_HZ 1000 /* decr. freq: 1 ms ticks */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010087
Heiko Schocherb11f53f2011-03-15 16:52:29 +010088#define CONFIG_BAUDRATE 115200
Holger Brunck499b1a42011-04-08 02:47:46 +000089#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010090
Heiko Schocherb11f53f2011-03-15 16:52:29 +010091#define CONFIG_LOADS_ECHO
92#define CONFIG_SYS_LOADS_BAUD_CHANGE
Prafulla Wadaskarbeeb2582010-09-30 19:33:19 +053093#define CONFIG_SYS_BOARD_DRAM_INIT /* Used board specific dram_init */
Heiko Schocher1e8f4e72008-11-20 09:59:09 +010094
95/*
96 * How to get access to the slot ID. Put this here to make it easy
97 * to modify in a centralized location. This is used in the HDLC
98 * driver to set the MAC.
99*/
Heiko Schocherb11f53f2011-03-15 16:52:29 +0100100#define CONFIG_CHECK_ETHERNET_PRESENT
Heiko Schocher8ed74342011-03-08 10:47:39 +0100101#define CONFIG_SYS_SLOT_ID_BASE CONFIG_SYS_KMBEC_FPGA_BASE
Heiko Schocher1e8f4e72008-11-20 09:59:09 +0100102#define CONFIG_SYS_SLOT_ID_OFF (0x07) /* register offset */
103#define CONFIG_SYS_SLOT_ID_MASK (0x3f) /* mask for slot ID bits */
104
Heiko Schocherb11f53f2011-03-15 16:52:29 +0100105#define CONFIG_I2C_MULTI_BUS
Heiko Schocherdc71b242009-07-09 12:04:18 +0200106#define CONFIG_SYS_MAX_I2C_BUS 1
Heiko Schocherb11f53f2011-03-15 16:52:29 +0100107#define CONFIG_SYS_I2C_INIT_BOARD
108#define CONFIG_I2C_MUX
Heiko Schocher364123d2009-03-12 07:37:18 +0100109
110/* EEprom support */
Heiko Schocherb11f53f2011-03-15 16:52:29 +0100111#define CONFIG_SYS_I2C_MULTI_EEPROMS
Heiko Schocher364123d2009-03-12 07:37:18 +0100112#define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE
Heiko Schocherb11f53f2011-03-15 16:52:29 +0100113#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
114#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
Heiko Schocher364123d2009-03-12 07:37:18 +0100115
116/* Support the IVM EEprom */
117#define CONFIG_SYS_IVM_EEPROM_ADR 0x50
118#define CONFIG_SYS_IVM_EEPROM_MAX_LEN 0x400
119#define CONFIG_SYS_IVM_EEPROM_PAGE_LEN 0x100
120
Heiko Schocherb11f53f2011-03-15 16:52:29 +0100121#define CONFIG_SYS_FLASH_PROTECTION
Heiko Schocher364123d2009-03-12 07:37:18 +0100122
Heiko Schocher1e8f4e72008-11-20 09:59:09 +0100123/*
124 * BOOTP options
125 */
126#define CONFIG_BOOTP_BOOTFILESIZE
127#define CONFIG_BOOTP_BOOTPATH
128#define CONFIG_BOOTP_GATEWAY
129#define CONFIG_BOOTP_HOSTNAME
130
Heiko Schocherb11f53f2011-03-15 16:52:29 +0100131#define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024)
Heiko Schocherdc71b242009-07-09 12:04:18 +0200132
Heiko Schocherdc71b242009-07-09 12:04:18 +0200133/* UBI Support for all Keymile boards */
134#define CONFIG_CMD_UBI
135#define CONFIG_RBTREE
136#define CONFIG_MTD_PARTITIONS
Heiko Schocherdc71b242009-07-09 12:04:18 +0200137#define CONFIG_MTD_DEVICE
138#define CONFIG_MTD_CONCAT
139
Holger Bruncka21b5d42011-03-04 14:56:27 +0100140/* common powerpc specific env settings */
141#ifndef CONFIG_KM_DEF_ENV_BOOTPARAMS
142#define CONFIG_KM_DEF_ENV_BOOTPARAMS \
143 "bootparams=empty\0" \
144 "initial_boot_bank=0\0"
Heiko Schocher364123d2009-03-12 07:37:18 +0100145#endif
146
Holger Brunckde3ad132011-03-14 16:01:04 +0100147#ifndef CONFIG_KM_DEF_NETDEV
148#define CONFIG_KM_DEF_NETDEV \
149 "netdev=eth0\0"
150#endif
151
152#ifndef CONFIG_KM_UBI_PARTITION_NAME
153#define CONFIG_KM_UBI_PARTITION_NAME "ubi0"
154#endif
155#ifndef CONFIG_KM_UBI_LINUX_MTD_NAME
156#define CONFIG_KM_UBI_LINUX_MTD_NAME "ubi0"
157#endif
158
Heiko Schocher364123d2009-03-12 07:37:18 +0100159#define xstr(s) str(s)
160#define str(s) #s
161
Holger Brunckde3ad132011-03-14 16:01:04 +0100162/*
Holger Bruncka21b5d42011-03-04 14:56:27 +0100163 * bootrunner
164 * - run all commands in 'subbootcmds'
165 * - on error, stop running the remaing commands
166 */
167#define CONFIG_KM_DEF_ENV_BOOTRUNNER \
168 "bootrunner=" \
169 "break=0; " \
170 "for subbootcmd in ${subbootcmds}; do " \
171 "if test ${break} -eq 0; then; " \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100172 "print ${subbootcmd}; " \
173 "run ${subbootcmd} || break=1; " \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100174 "fi; " \
175 "done\0" \
176 ""
177
178/*
179 * boottargets
180 * - set 'subbootcmds' for the bootrunner
181 * - set 'bootcmd' and 'altbootcmd'
182 * available targets:
183 * - 'release': for a standalone system kernel/rootfs from flash
Holger Bruncka21b5d42011-03-04 14:56:27 +0100184 *
185 * - 'commonargs': bootargs common to all targets
186 */
187#define CONFIG_KM_DEF_ENV_BOOTTARGETS \
188 "commonargs=" \
189 "addip " \
190 "addtty " \
191 "addmem " \
192 "addinit " \
193 "addvar " \
194 "addmtdparts " \
195 "addbootcount " \
196 "\0" \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100197 "release=" \
198 "setenv actual_bank ${initial_boot_bank} && " \
199 "setenv subbootcmds \"" \
200 "checkboardid " \
201 "ubiattach ubicopy " \
202 "cramfsloadfdt cramfsloadkernel " \
203 "flashargs ${commonargs} " \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000204 "addpanic boot " \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100205 "\" && " \
206 "setenv bootcmd \'" \
Thomas Herzmanne80ab3e2011-04-08 02:47:41 +0000207 "run actual bootrunner; reset" \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100208 "\' && " \
209 "setenv altbootcmd \'" \
Thomas Herzmanne80ab3e2011-04-08 02:47:41 +0000210 "run backup bootrunner; reset" \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100211 "\' && " \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000212 "saveenv && saveenv && " \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100213 "reset\0" \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000214 "debug_env=" \
215 "tftp 200000 " CONFIG_KM_ARCH_DBG_FILE " && " \
216 "env import -t 200000 ${filesize} && " \
217 "run debug_env_common\0" \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100218 ""
219
220/*
Holger Brunckde3ad132011-03-14 16:01:04 +0100221 * bootargs
222 * - modify 'bootargs'
223 *
224 * - 'addip': add ip configuration
Holger Bruncka21b5d42011-03-04 14:56:27 +0100225 * - 'addmem': limit kernel memory mem=
Holger Brunckde3ad132011-03-14 16:01:04 +0100226 * - 'addpanic': add kernel panic options
Holger Brunckde3ad132011-03-14 16:01:04 +0100227 * - 'addtty': add console=...
Holger Bruncka21b5d42011-03-04 14:56:27 +0100228 * - 'addvar': add phram device for /var
Holger Brunckde3ad132011-03-14 16:01:04 +0100229 * - 'flashargs': defaults arguments for flash base boot
230 *
231 * processor specific settings
Holger Bruncka21b5d42011-03-04 14:56:27 +0100232 * - 'addbootcount': add boot counter
Holger Brunckde3ad132011-03-14 16:01:04 +0100233 * - 'addmtdparts': add mtd partition information
234 */
235#define CONFIG_KM_DEF_ENV_BOOTARGS \
236 "addinit=" \
237 "setenv bootargs ${bootargs} init=${init}\0" \
238 "addip=" \
239 "setenv bootargs ${bootargs} " \
240 "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \
241 ":${hostname}:${netdev}:off\0" \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100242 "addmem=" \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000243 "setenv bootargs ${bootargs} mem=${pnvramaddr}\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100244 "addpanic=" \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000245 "setenv bootargs ${bootargs} panic=1 panic_on_oops=1\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100246 "addtty=" \
247 "setenv bootargs ${bootargs}" \
248 " console=" CONFIG_KM_CONSOLE_TTY ",${baudrate}\0" \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100249 "addvar=" \
250 "setenv bootargs ${bootargs} phram.phram=phvar," \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000251 "${varaddr}," xstr(CONFIG_KM_PHRAM) "\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100252 "flashargs=" \
253 "setenv bootargs " \
254 "ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " " \
Thomas Herzmanne80ab3e2011-04-08 02:47:41 +0000255 "root=mtdblock:rootfs${boot_bank} " \
Holger Brunckde3ad132011-03-14 16:01:04 +0100256 "rootfstype=squashfs ro\0" \
257 ""
258
Holger Bruncka21b5d42011-03-04 14:56:27 +0100259/*
Holger Brunckde3ad132011-03-14 16:01:04 +0100260 * flash_boot
261 * - commands for booting from flash
262 *
Holger Brunckde3ad132011-03-14 16:01:04 +0100263 * - 'cramfsloadkernel': copy kernel from a cramfs to ram
264 * - 'ubiattach': attach ubi partition
265 * - 'ubicopy': copy ubi volume to ram
266 * - volume names: bootfs0, bootfs1, bootfs2, ...
Holger Brunckde3ad132011-03-14 16:01:04 +0100267 *
268 * processor specific settings
269 * - 'cramfsloadfdt': copy fdt from a cramfs to ram
270 */
271#define CONFIG_KM_DEF_ENV_FLASH_BOOT \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000272 "cramfsaddr=" xstr(CONFIG_KM_CRAMFS_ADDR) "\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100273 "cramfsloadkernel=" \
274 "cramfsload ${kernel_addr_r} uImage && " \
275 "setenv actual_kernel_addr ${kernel_addr_r}\0" \
Holger Brunck2d9528e2011-05-04 01:47:34 +0000276 "ubiattach=ubi part " CONFIG_KM_UBI_PARTITION_NAME "\0" \
277 "ubicopy=ubi read "xstr(CONFIG_KM_CRAMFS_ADDR) \
278 " bootfs${boot_bank}\0" \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100279 ""
Holger Brunckde3ad132011-03-14 16:01:04 +0100280
281/*
282 * constants
283 * - KM specific constants and commands
284 *
285 * - 'default': setup default environment
286 */
287#define CONFIG_KM_DEF_ENV_CONSTANTS \
Thomas Herzmanne80ab3e2011-04-08 02:47:41 +0000288 "actual=setenv boot_bank ${actual_bank}\0" \
289 "backup=setenv boot_bank ${backup_bank}\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100290 "actual_bank=${initial_boot_bank}\0" \
Thomas Herzmanne80ab3e2011-04-08 02:47:41 +0000291 "backup_bank=0\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100292 "default=" \
293 "setenv default 'run newenv; reset' && " \
294 "run release && saveenv; reset\0" \
Thomas Herzmann92c91082011-05-12 19:59:22 +0000295 "checkboardid=km_checkbidhwk\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100296 ""
297
Heiko Schocher364123d2009-03-12 07:37:18 +0100298#ifndef CONFIG_KM_DEF_ENV
299#define CONFIG_KM_DEF_ENV \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100300 CONFIG_KM_DEF_ENV_BOOTPARAMS \
Holger Brunckde3ad132011-03-14 16:01:04 +0100301 CONFIG_KM_DEF_NETDEV \
302 CONFIG_KM_DEF_ENV_CPU \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100303 CONFIG_KM_DEF_ENV_BOOTRUNNER \
304 CONFIG_KM_DEF_ENV_BOOTTARGETS \
Holger Brunckde3ad132011-03-14 16:01:04 +0100305 CONFIG_KM_DEF_ENV_BOOTARGS \
Holger Brunckde3ad132011-03-14 16:01:04 +0100306 CONFIG_KM_DEF_ENV_FLASH_BOOT \
Holger Bruncka21b5d42011-03-04 14:56:27 +0100307 CONFIG_KM_DEF_ENV_CONSTANTS \
Holger Brunckde3ad132011-03-14 16:01:04 +0100308 "altbootcmd=run bootcmd\0" \
309 "bootcmd=run default\0" \
310 "bootlimit=2\0" \
311 "init=/sbin/init-overlay.sh\0" \
312 "kernel_addr_r="xstr(CONFIG_KM_KERNEL_ADDR) "\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100313 "load=tftpboot ${u-boot_addr_r} ${u-boot}\0" \
314 "mtdids=" MTDIDS_DEFAULT "\0" \
315 "mtdparts=" MTDPARTS_DEFAULT "\0" \
Holger Brunckec9a3742011-03-04 10:16:00 +0100316 "stderr=serial\0" \
317 "stdin=serial\0" \
318 "stdout=serial\0" \
Holger Brunckde3ad132011-03-14 16:01:04 +0100319 "u-boot="xstr(CONFIG_HOSTNAME) "/u-boot.bin\0" \
320 "u-boot_addr_r="xstr(CONFIG_KM_KERNEL_ADDR) "\0" \
Heiko Schocher364123d2009-03-12 07:37:18 +0100321 ""
322#endif /* CONFIG_KM_DEF_ENV */
323
Holger Brunck499b1a42011-04-08 02:47:46 +0000324#define CONFIG_VERSION_VARIABLE /* include version env variable */
Heiko Schocher364123d2009-03-12 07:37:18 +0100325
Heiko Schocher1e8f4e72008-11-20 09:59:09 +0100326#endif /* __CONFIG_KEYMILE_H */