1*8e585f02STsiChung Liew /* 2*8e585f02STsiChung Liew * Configuation settings for the Freescale MCF5329 FireEngine board. 3*8e585f02STsiChung Liew * 4*8e585f02STsiChung Liew * Copyright (C) 2004-2007 Freescale Semiconductor, Inc. 5*8e585f02STsiChung Liew * TsiChung Liew (Tsi-Chung.Liew@freescale.com) 6*8e585f02STsiChung Liew * 7*8e585f02STsiChung Liew * See file CREDITS for list of people who contributed to this 8*8e585f02STsiChung Liew * project. 9*8e585f02STsiChung Liew * 10*8e585f02STsiChung Liew * This program is free software; you can redistribute it and/or 11*8e585f02STsiChung Liew * modify it under the terms of the GNU General Public License as 12*8e585f02STsiChung Liew * published by the Free Software Foundation; either version 2 of 13*8e585f02STsiChung Liew * the License, or (at your option) any later version. 14*8e585f02STsiChung Liew * 15*8e585f02STsiChung Liew * This program is distributed in the hope that it will be useful, 16*8e585f02STsiChung Liew * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*8e585f02STsiChung Liew * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*8e585f02STsiChung Liew * GNU General Public License for more details. 19*8e585f02STsiChung Liew * 20*8e585f02STsiChung Liew * You should have received a copy of the GNU General Public License 21*8e585f02STsiChung Liew * along with this program; if not, write to the Free Software 22*8e585f02STsiChung Liew * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 23*8e585f02STsiChung Liew * MA 02111-1307 USA 24*8e585f02STsiChung Liew */ 25*8e585f02STsiChung Liew 26*8e585f02STsiChung Liew /* 27*8e585f02STsiChung Liew * board/config.h - configuration options, board specific 28*8e585f02STsiChung Liew */ 29*8e585f02STsiChung Liew 30*8e585f02STsiChung Liew #ifndef _M5329EVB_H 31*8e585f02STsiChung Liew #define _M5329EVB_H 32*8e585f02STsiChung Liew 33*8e585f02STsiChung Liew /* 34*8e585f02STsiChung Liew * High Level Configuration Options 35*8e585f02STsiChung Liew * (easy to change) 36*8e585f02STsiChung Liew */ 37*8e585f02STsiChung Liew #define CONFIG_MCF532x /* define processor family */ 38*8e585f02STsiChung Liew #define CONFIG_M5329 /* define processor type */ 39*8e585f02STsiChung Liew 40*8e585f02STsiChung Liew #undef DEBUG 41*8e585f02STsiChung Liew 42*8e585f02STsiChung Liew #define CONFIG_MCFSERIAL 43*8e585f02STsiChung Liew #define CONFIG_BAUDRATE 115200 44*8e585f02STsiChung Liew #define CFG_BAUDRATE_TABLE { 9600 , 19200 , 38400 , 57600, 115200 } 45*8e585f02STsiChung Liew 46*8e585f02STsiChung Liew #undef CONFIG_WATCHDOG 47*8e585f02STsiChung Liew #define CONFIG_WATCHDOG_TIMEOUT 5000 /* timeout in milliseconds, max timeout is 6.71sec */ 48*8e585f02STsiChung Liew 49*8e585f02STsiChung Liew #define CFG_NUM_IRQS 128 50*8e585f02STsiChung Liew 51*8e585f02STsiChung Liew #define CONFIG_COMMANDS ( CONFIG_CMD_DFL | \ 52*8e585f02STsiChung Liew CFG_CMD_CACHE | \ 53*8e585f02STsiChung Liew CFG_CMD_DATE | \ 54*8e585f02STsiChung Liew CFG_CMD_ELF | \ 55*8e585f02STsiChung Liew CFG_CMD_FLASH | \ 56*8e585f02STsiChung Liew (CFG_CMD_LOADB | CFG_CMD_LOADS) | \ 57*8e585f02STsiChung Liew CFG_CMD_MEMORY | \ 58*8e585f02STsiChung Liew CFG_CMD_MISC | \ 59*8e585f02STsiChung Liew CFG_CMD_MII | \ 60*8e585f02STsiChung Liew CFG_CMD_NET | \ 61*8e585f02STsiChung Liew CFG_CMD_PING | \ 62*8e585f02STsiChung Liew CFG_CMD_REGINFO \ 63*8e585f02STsiChung Liew ) 64*8e585f02STsiChung Liew 65*8e585f02STsiChung Liew #define CONFIG_MCFFEC 66*8e585f02STsiChung Liew #ifdef CONFIG_MCFFEC 67*8e585f02STsiChung Liew # define CONFIG_NET_MULTI 1 68*8e585f02STsiChung Liew # define CONFIG_MII 1 69*8e585f02STsiChung Liew # define CFG_DISCOVER_PHY 70*8e585f02STsiChung Liew # define CFG_RX_ETH_BUFFER 8 71*8e585f02STsiChung Liew # define CFG_FAULT_ECHO_LINK_DOWN 72*8e585f02STsiChung Liew 73*8e585f02STsiChung Liew # define CFG_FEC0_IOBASE 0xFC030000 74*8e585f02STsiChung Liew # define CFG_FEC0_PINMUX 0 75*8e585f02STsiChung Liew # define CFG_FEC0_MIIBASE CFG_FEC0_IOBASE 76*8e585f02STsiChung Liew # define MCFFEC_TOUT_LOOP 50000 77*8e585f02STsiChung Liew /* If CFG_DISCOVER_PHY is not defined - hardcoded */ 78*8e585f02STsiChung Liew # ifndef CFG_DISCOVER_PHY 79*8e585f02STsiChung Liew # define FECDUPLEX FULL 80*8e585f02STsiChung Liew # define FECSPEED _100BASET 81*8e585f02STsiChung Liew # else 82*8e585f02STsiChung Liew # ifndef CFG_FAULT_ECHO_LINK_DOWN 83*8e585f02STsiChung Liew # define CFG_FAULT_ECHO_LINK_DOWN 84*8e585f02STsiChung Liew # endif 85*8e585f02STsiChung Liew # endif /* CFG_DISCOVER_PHY */ 86*8e585f02STsiChung Liew #endif 87*8e585f02STsiChung Liew 88*8e585f02STsiChung Liew #define CONFIG_MCFUART 89*8e585f02STsiChung Liew #ifdef CONFIG_MCFUART 90*8e585f02STsiChung Liew # define CFG_UART_PORT (0) 91*8e585f02STsiChung Liew # define CFG_UART_BASE (0xFC060000) 92*8e585f02STsiChung Liew #endif 93*8e585f02STsiChung Liew 94*8e585f02STsiChung Liew #define CONFIG_MCFRTC 95*8e585f02STsiChung Liew #ifdef CONFIG_MCFRTC 96*8e585f02STsiChung Liew # define CFG_MCFRTC_BASE (0xFC0A8000) 97*8e585f02STsiChung Liew # undef RTC_DEBUG 98*8e585f02STsiChung Liew #endif 99*8e585f02STsiChung Liew 100*8e585f02STsiChung Liew /* Timer */ 101*8e585f02STsiChung Liew #define CONFIG_MCFTMR 102*8e585f02STsiChung Liew #ifdef CONFIG_MCFTMR 103*8e585f02STsiChung Liew # define CFG_UDELAY_BASE (0xFC070000) 104*8e585f02STsiChung Liew # define CFG_TMR_BASE (0xFC074000) 105*8e585f02STsiChung Liew # define CFG_TMRINTR_NO (33) 106*8e585f02STsiChung Liew # define CFG_TMRINTR_MASK (2) 107*8e585f02STsiChung Liew # define CFG_TMRINTR_PRI (6) 108*8e585f02STsiChung Liew # define CFG_TIMER_PRESCALER (((CFG_CLK / 1000000) - 1) << 8) 109*8e585f02STsiChung Liew #endif 110*8e585f02STsiChung Liew 111*8e585f02STsiChung Liew #undef CONFIG_MCFPIT 112*8e585f02STsiChung Liew #ifdef CONFIG_MCFPIT 113*8e585f02STsiChung Liew # define CFG_UDELAY_BASE (0xFC080000) 114*8e585f02STsiChung Liew # define CFG_PIT_BASE (0xFC084000) 115*8e585f02STsiChung Liew # define CFG_PIT_PRESCALE (6) 116*8e585f02STsiChung Liew #endif 117*8e585f02STsiChung Liew 118*8e585f02STsiChung Liew #define CONFIG_MCFINTC 119*8e585f02STsiChung Liew #ifdef CONFIG_MCFINTC 120*8e585f02STsiChung Liew # define CFG_INTR_BASE (0xFC048000) 121*8e585f02STsiChung Liew # define CFG_NUM_IRQ0 64 122*8e585f02STsiChung Liew # define CFG_NUM_IRQ1 64 123*8e585f02STsiChung Liew #endif 124*8e585f02STsiChung Liew 125*8e585f02STsiChung Liew /* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ 126*8e585f02STsiChung Liew #include <cmd_confdefs.h> 127*8e585f02STsiChung Liew #define CONFIG_BOOTDELAY 1 /* autoboot after 5 seconds */ 128*8e585f02STsiChung Liew #ifdef CONFIG_MCFFEC 129*8e585f02STsiChung Liew # define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 130*8e585f02STsiChung Liew # define CONFIG_IPADDR 192.162.1.2 131*8e585f02STsiChung Liew # define CONFIG_NETMASK 255.255.255.0 132*8e585f02STsiChung Liew # define CONFIG_SERVERIP 192.162.1.1 133*8e585f02STsiChung Liew # define CONFIG_GATEWAYIP 192.162.1.1 134*8e585f02STsiChung Liew # define CONFIG_OVERWRITE_ETHADDR_ONCE 135*8e585f02STsiChung Liew #endif /* FEC_ENET */ 136*8e585f02STsiChung Liew 137*8e585f02STsiChung Liew #define CONFIG_HOSTNAME M5329EVB 138*8e585f02STsiChung Liew #define CONFIG_EXTRA_ENV_SETTINGS \ 139*8e585f02STsiChung Liew "netdev=eth0\0" \ 140*8e585f02STsiChung Liew "loadaddr=40010000\0" \ 141*8e585f02STsiChung Liew "u-boot=u-boot.bin\0" \ 142*8e585f02STsiChung Liew "load=tftp ${loadaddr) ${u-boot}\0" \ 143*8e585f02STsiChung Liew "upd=run load; run prog\0" \ 144*8e585f02STsiChung Liew "prog=prot off 0 2ffff;" \ 145*8e585f02STsiChung Liew "era 0 2ffff;" \ 146*8e585f02STsiChung Liew "cp.b ${loadaddr} 0 ${filesize};" \ 147*8e585f02STsiChung Liew "save\0" \ 148*8e585f02STsiChung Liew "" 149*8e585f02STsiChung Liew 150*8e585f02STsiChung Liew #define CONFIG_PRAM 512 /* 512 KB */ 151*8e585f02STsiChung Liew #define CFG_PROMPT "-> " 152*8e585f02STsiChung Liew #define CFG_LONGHELP /* undef to save memory */ 153*8e585f02STsiChung Liew 154*8e585f02STsiChung Liew #if (CONFIG_COMMANDS & CFG_CMD_KGDB) 155*8e585f02STsiChung Liew # define CFG_CBSIZE 1024 /* Console I/O Buffer Size */ 156*8e585f02STsiChung Liew #else 157*8e585f02STsiChung Liew # define CFG_CBSIZE 256 /* Console I/O Buffer Size */ 158*8e585f02STsiChung Liew #endif 159*8e585f02STsiChung Liew 160*8e585f02STsiChung Liew #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ 161*8e585f02STsiChung Liew #define CFG_MAXARGS 16 /* max number of command args */ 162*8e585f02STsiChung Liew #define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ 163*8e585f02STsiChung Liew #define CFG_LOAD_ADDR 0x40010000 164*8e585f02STsiChung Liew 165*8e585f02STsiChung Liew #define CFG_HZ 1000 166*8e585f02STsiChung Liew #define CFG_CLK 80000000 167*8e585f02STsiChung Liew #define CFG_CPU_CLK CFG_CLK * 3 168*8e585f02STsiChung Liew 169*8e585f02STsiChung Liew #define CFG_MBAR 0xFC000000 170*8e585f02STsiChung Liew 171*8e585f02STsiChung Liew /* 172*8e585f02STsiChung Liew * Low Level Configuration Settings 173*8e585f02STsiChung Liew * (address mappings, register initial values, etc.) 174*8e585f02STsiChung Liew * You should know what you are doing if you make changes here. 175*8e585f02STsiChung Liew */ 176*8e585f02STsiChung Liew /*----------------------------------------------------------------------- 177*8e585f02STsiChung Liew * Definitions for initial stack pointer and data area (in DPRAM) 178*8e585f02STsiChung Liew */ 179*8e585f02STsiChung Liew #define CFG_INIT_RAM_ADDR 0x80000000 180*8e585f02STsiChung Liew #define CFG_INIT_RAM_END 0x8000 /* End of used area in internal SRAM */ 181*8e585f02STsiChung Liew #define CFG_INIT_RAM_CTRL 0x221 182*8e585f02STsiChung Liew #define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ 183*8e585f02STsiChung Liew #define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE) 184*8e585f02STsiChung Liew #define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET 185*8e585f02STsiChung Liew 186*8e585f02STsiChung Liew /*----------------------------------------------------------------------- 187*8e585f02STsiChung Liew * Start addresses for the final memory configuration 188*8e585f02STsiChung Liew * (Set up by the startup code) 189*8e585f02STsiChung Liew * Please note that CFG_SDRAM_BASE _must_ start at 0 190*8e585f02STsiChung Liew */ 191*8e585f02STsiChung Liew #define CFG_SDRAM_BASE 0x40000000 192*8e585f02STsiChung Liew #define CFG_SDRAM_SIZE 16 /* SDRAM size in MB */ 193*8e585f02STsiChung Liew #define CFG_SDRAM_CFG1 0x53722730 194*8e585f02STsiChung Liew #define CFG_SDRAM_CFG2 0x56670000 195*8e585f02STsiChung Liew #define CFG_SDRAM_CTRL 0xE1092000 196*8e585f02STsiChung Liew #define CFG_SDRAM_EMOD 0x40010000 197*8e585f02STsiChung Liew #define CFG_SDRAM_MODE 0x018D0000 198*8e585f02STsiChung Liew 199*8e585f02STsiChung Liew #define CFG_MEMTEST_START CFG_SDRAM_BASE + 0x400 200*8e585f02STsiChung Liew #define CFG_MEMTEST_END ((CFG_SDRAM_SIZE - 3) << 20) 201*8e585f02STsiChung Liew 202*8e585f02STsiChung Liew #define CFG_MONITOR_BASE (CFG_FLASH_BASE + 0x400) 203*8e585f02STsiChung Liew #define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */ 204*8e585f02STsiChung Liew 205*8e585f02STsiChung Liew #define CFG_BOOTPARAMS_LEN 64*1024 206*8e585f02STsiChung Liew #define CFG_MALLOC_LEN (128 << 10) /* Reserve 128 kB for malloc() */ 207*8e585f02STsiChung Liew 208*8e585f02STsiChung Liew /* 209*8e585f02STsiChung Liew * For booting Linux, the board info and command line data 210*8e585f02STsiChung Liew * have to be in the first 8 MB of memory, since this is 211*8e585f02STsiChung Liew * the maximum mapped by the Linux kernel during initialization ?? 212*8e585f02STsiChung Liew */ 213*8e585f02STsiChung Liew #define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */ 214*8e585f02STsiChung Liew 215*8e585f02STsiChung Liew /*----------------------------------------------------------------------- 216*8e585f02STsiChung Liew * FLASH organization 217*8e585f02STsiChung Liew */ 218*8e585f02STsiChung Liew #undef CFG_FLASH_CFI 219*8e585f02STsiChung Liew #ifdef CFG_FLASH_CFI 220*8e585f02STsiChung Liew # define CFG_FLASH_CFI_DRIVER 1 221*8e585f02STsiChung Liew # define CFG_FLASH_SIZE 0x800000 /* Max size that the board might have */ 222*8e585f02STsiChung Liew # define CFG_FLASH_CFI_WIDTH FLASH_CFI_16BIT 223*8e585f02STsiChung Liew #else 224*8e585f02STsiChung Liew # define CFG_FLASH_UNLOCK_TOUT 1000 225*8e585f02STsiChung Liew # define CFG_FLASH_WRITE_TOUT 1000 226*8e585f02STsiChung Liew #endif 227*8e585f02STsiChung Liew 228*8e585f02STsiChung Liew #define CFG_FLASH_BASE 0 229*8e585f02STsiChung Liew #define CFG_FLASH0_BASE (CFG_CS0_BASE << 16) 230*8e585f02STsiChung Liew #define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ 231*8e585f02STsiChung Liew #define CFG_MAX_FLASH_SECT 137 /* max number of sectors on one chip */ 232*8e585f02STsiChung Liew #define CFG_FLASH_ERASE_TOUT 1000 233*8e585f02STsiChung Liew #define CFG_FLASH_PROTECTION /* "Real" (hardware) sectors protection */ 234*8e585f02STsiChung Liew 235*8e585f02STsiChung Liew /* Configuration for environment 236*8e585f02STsiChung Liew * Environment is embedded in u-boot in the second sector of the flash 237*8e585f02STsiChung Liew */ 238*8e585f02STsiChung Liew #define CFG_ENV_OFFSET 0x4000 239*8e585f02STsiChung Liew #define CFG_ENV_SECT_SIZE 0x2000 240*8e585f02STsiChung Liew #define CFG_ENV_IS_IN_FLASH 1 241*8e585f02STsiChung Liew #define CFG_ENV_IS_EMBEDDED 1 242*8e585f02STsiChung Liew 243*8e585f02STsiChung Liew /*----------------------------------------------------------------------- 244*8e585f02STsiChung Liew * Cache Configuration 245*8e585f02STsiChung Liew */ 246*8e585f02STsiChung Liew #define CFG_CACHELINE_SIZE 16 247*8e585f02STsiChung Liew 248*8e585f02STsiChung Liew /*----------------------------------------------------------------------- 249*8e585f02STsiChung Liew * Chipselect bank definitions 250*8e585f02STsiChung Liew */ 251*8e585f02STsiChung Liew /* 252*8e585f02STsiChung Liew * CS0 - NOR Flash 1, 2, 4, or 8MB 253*8e585f02STsiChung Liew * CS1 - CompactFlash and registers 254*8e585f02STsiChung Liew * CS2 - NAND Flash 16, 32, or 64MB 255*8e585f02STsiChung Liew * CS3 - Available 256*8e585f02STsiChung Liew * CS4 - Available 257*8e585f02STsiChung Liew * CS5 - Available 258*8e585f02STsiChung Liew */ 259*8e585f02STsiChung Liew #define CFG_CS0_BASE 0 260*8e585f02STsiChung Liew #define CFG_CS0_MASK 0x007f0001 261*8e585f02STsiChung Liew #define CFG_CS0_CTRL 0x00001fa0 262*8e585f02STsiChung Liew 263*8e585f02STsiChung Liew #define CFG_CS1_BASE 0x1000 264*8e585f02STsiChung Liew #define CFG_CS1_MASK 0x001f0001 265*8e585f02STsiChung Liew #define CFG_CS1_CTRL 0x002A3780 266*8e585f02STsiChung Liew 267*8e585f02STsiChung Liew #ifdef NANDFLASH_SIZE 268*8e585f02STsiChung Liew #define CFG_CS2_BASE 0x00800000 269*8e585f02STsiChung Liew #define CFG_CS2_MASK 0x00ff0001 270*8e585f02STsiChung Liew #define CFG_CS2_CTRL 0x00001f60 271*8e585f02STsiChung Liew #endif 272*8e585f02STsiChung Liew 273*8e585f02STsiChung Liew #define CONFIG_UDP_CHECKSUM 274*8e585f02STsiChung Liew 275*8e585f02STsiChung Liew #endif /* _M5329EVB_H */ 276