1*6d33c6acSTsiChung Liew /* 2*6d33c6acSTsiChung Liew * Copyright (C) 2004-2007 Freescale Semiconductor, Inc. 3*6d33c6acSTsiChung Liew * Hayden Fraser (Hayden.Fraser@freescale.com) 4*6d33c6acSTsiChung Liew * 5*6d33c6acSTsiChung Liew * See file CREDITS for list of people who contributed to this 6*6d33c6acSTsiChung Liew * project. 7*6d33c6acSTsiChung Liew * 8*6d33c6acSTsiChung Liew * This program is free software; you can redistribute it and/or 9*6d33c6acSTsiChung Liew * modify it under the terms of the GNU General Public License as 10*6d33c6acSTsiChung Liew * published by the Free Software Foundation; either version 2 of 11*6d33c6acSTsiChung Liew * the License, or (at your option) any later version. 12*6d33c6acSTsiChung Liew * 13*6d33c6acSTsiChung Liew * This program is distributed in the hope that it will be useful, 14*6d33c6acSTsiChung Liew * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*6d33c6acSTsiChung Liew * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*6d33c6acSTsiChung Liew * GNU General Public License for more details. 17*6d33c6acSTsiChung Liew * 18*6d33c6acSTsiChung Liew * You should have received a copy of the GNU General Public License 19*6d33c6acSTsiChung Liew * along with this program; if not, write to the Free Software 20*6d33c6acSTsiChung Liew * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21*6d33c6acSTsiChung Liew * MA 02111-1307 USA 22*6d33c6acSTsiChung Liew */ 23*6d33c6acSTsiChung Liew 24*6d33c6acSTsiChung Liew #ifndef _M5253DEMO_H 25*6d33c6acSTsiChung Liew #define _M5253DEMO_H 26*6d33c6acSTsiChung Liew 27*6d33c6acSTsiChung Liew #define CONFIG_MCF52x2 /* define processor family */ 28*6d33c6acSTsiChung Liew #define CONFIG_M5253 /* define processor type */ 29*6d33c6acSTsiChung Liew #define CONFIG_M5253DEMO /* define board type */ 30*6d33c6acSTsiChung Liew 31*6d33c6acSTsiChung Liew #define CONFIG_MCFTMR 32*6d33c6acSTsiChung Liew 33*6d33c6acSTsiChung Liew #define CONFIG_MCFUART 34*6d33c6acSTsiChung Liew #define CFG_UART_PORT (0) 35*6d33c6acSTsiChung Liew #define CONFIG_BAUDRATE 115200 36*6d33c6acSTsiChung Liew #define CFG_BAUDRATE_TABLE { 9600 , 19200 , 38400 , 57600, 115200 } 37*6d33c6acSTsiChung Liew 38*6d33c6acSTsiChung Liew #undef CONFIG_WATCHDOG /* disable watchdog */ 39*6d33c6acSTsiChung Liew 40*6d33c6acSTsiChung Liew #define CONFIG_BOOTDELAY 5 41*6d33c6acSTsiChung Liew 42*6d33c6acSTsiChung Liew /* Configuration for environment 43*6d33c6acSTsiChung Liew * Environment is embedded in u-boot in the second sector of the flash 44*6d33c6acSTsiChung Liew */ 45*6d33c6acSTsiChung Liew #ifdef CONFIG_MONITOR_IS_IN_RAM 46*6d33c6acSTsiChung Liew # define CFG_ENV_OFFSET 0x4000 47*6d33c6acSTsiChung Liew # define CFG_ENV_SECT_SIZE 0x1000 48*6d33c6acSTsiChung Liew # define CFG_ENV_IS_IN_FLASH 1 49*6d33c6acSTsiChung Liew #else 50*6d33c6acSTsiChung Liew # define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x4000) 51*6d33c6acSTsiChung Liew # define CFG_ENV_SECT_SIZE 0x1000 52*6d33c6acSTsiChung Liew # define CFG_ENV_IS_IN_FLASH 1 53*6d33c6acSTsiChung Liew #endif 54*6d33c6acSTsiChung Liew 55*6d33c6acSTsiChung Liew /* 56*6d33c6acSTsiChung Liew * Command line configuration. 57*6d33c6acSTsiChung Liew */ 58*6d33c6acSTsiChung Liew #include <config_cmd_default.h> 59*6d33c6acSTsiChung Liew 60*6d33c6acSTsiChung Liew #define CONFIG_CMD_LOADB 61*6d33c6acSTsiChung Liew #define CONFIG_CMD_LOADS 62*6d33c6acSTsiChung Liew #define CONFIG_CMD_EXT2 63*6d33c6acSTsiChung Liew #define CONFIG_CMD_FAT 64*6d33c6acSTsiChung Liew #define CONFIG_CMD_IDE 65*6d33c6acSTsiChung Liew #define CONFIG_CMD_MEMORY 66*6d33c6acSTsiChung Liew #define CONFIG_CMD_MISC 67*6d33c6acSTsiChung Liew #define CONFIG_CMD_PING 68*6d33c6acSTsiChung Liew 69*6d33c6acSTsiChung Liew #ifdef CONFIG_CMD_IDE 70*6d33c6acSTsiChung Liew /* ATA */ 71*6d33c6acSTsiChung Liew # define CONFIG_DOS_PARTITION 72*6d33c6acSTsiChung Liew # define CONFIG_MAC_PARTITION 73*6d33c6acSTsiChung Liew # define CONFIG_IDE_RESET 1 74*6d33c6acSTsiChung Liew # define CONFIG_IDE_PREINIT 1 75*6d33c6acSTsiChung Liew # define CONFIG_ATAPI 76*6d33c6acSTsiChung Liew # undef CONFIG_LBA48 77*6d33c6acSTsiChung Liew 78*6d33c6acSTsiChung Liew # define CFG_IDE_MAXBUS 1 79*6d33c6acSTsiChung Liew # define CFG_IDE_MAXDEVICE 2 80*6d33c6acSTsiChung Liew 81*6d33c6acSTsiChung Liew # define CFG_ATA_BASE_ADDR (CFG_MBAR2 + 0x800) 82*6d33c6acSTsiChung Liew # define CFG_ATA_IDE0_OFFSET 0 83*6d33c6acSTsiChung Liew 84*6d33c6acSTsiChung Liew # define CFG_ATA_DATA_OFFSET 0xA0 /* Offset for data I/O */ 85*6d33c6acSTsiChung Liew # define CFG_ATA_REG_OFFSET 0xA0 /* Offset for normal register accesses */ 86*6d33c6acSTsiChung Liew # define CFG_ATA_ALT_OFFSET 0xC0 /* Offset for alternate registers */ 87*6d33c6acSTsiChung Liew # define CFG_ATA_STRIDE 4 /* Interval between registers */ 88*6d33c6acSTsiChung Liew # define _IO_BASE 0 89*6d33c6acSTsiChung Liew #endif 90*6d33c6acSTsiChung Liew 91*6d33c6acSTsiChung Liew #define CONFIG_DRIVER_DM9000 92*6d33c6acSTsiChung Liew #ifdef CONFIG_DRIVER_DM9000 93*6d33c6acSTsiChung Liew # define CONFIG_DM9000_BASE ((CFG_CSAR1 << 16) | 0x300) 94*6d33c6acSTsiChung Liew # define DM9000_IO CONFIG_DM9000_BASE 95*6d33c6acSTsiChung Liew # define DM9000_DATA (CONFIG_DM9000_BASE + 4) 96*6d33c6acSTsiChung Liew # undef CONFIG_DM9000_DEBUG 97*6d33c6acSTsiChung Liew 98*6d33c6acSTsiChung Liew # define CONFIG_ETHADDR 00:e0:0c:bc:e5:60 99*6d33c6acSTsiChung Liew # define CONFIG_IPADDR 10.82.121.249 100*6d33c6acSTsiChung Liew # define CONFIG_NETMASK 255.255.252.0 101*6d33c6acSTsiChung Liew # define CONFIG_SERVERIP 10.82.120.80 102*6d33c6acSTsiChung Liew # define CONFIG_GATEWAYIP 10.82.123.254 103*6d33c6acSTsiChung Liew # define CONFIG_OVERWRITE_ETHADDR_ONCE 104*6d33c6acSTsiChung Liew 105*6d33c6acSTsiChung Liew # define CONFIG_EXTRA_ENV_SETTINGS \ 106*6d33c6acSTsiChung Liew "netdev=eth0\0" \ 107*6d33c6acSTsiChung Liew "inpclk=" MK_STR(CFG_INPUT_CLKSRC) "\0" \ 108*6d33c6acSTsiChung Liew "loadaddr=10000\0" \ 109*6d33c6acSTsiChung Liew "u-boot=u-boot.bin\0" \ 110*6d33c6acSTsiChung Liew "load=tftp ${loadaddr) ${u-boot}\0" \ 111*6d33c6acSTsiChung Liew "upd=run load; run prog\0" \ 112*6d33c6acSTsiChung Liew "prog=prot off 0 2ffff;" \ 113*6d33c6acSTsiChung Liew "era 0 2ffff;" \ 114*6d33c6acSTsiChung Liew "cp.b ${loadaddr} 0 ${filesize};" \ 115*6d33c6acSTsiChung Liew "save\0" \ 116*6d33c6acSTsiChung Liew "" 117*6d33c6acSTsiChung Liew #endif 118*6d33c6acSTsiChung Liew 119*6d33c6acSTsiChung Liew #define CONFIG_HOSTNAME M5253DEMO 120*6d33c6acSTsiChung Liew 121*6d33c6acSTsiChung Liew #define CFG_PROMPT "=> " 122*6d33c6acSTsiChung Liew #define CFG_LONGHELP /* undef to save memory */ 123*6d33c6acSTsiChung Liew 124*6d33c6acSTsiChung Liew #if defined(CONFIG_CMD_KGDB) 125*6d33c6acSTsiChung Liew # define CFG_CBSIZE 1024 /* Console I/O Buffer Size */ 126*6d33c6acSTsiChung Liew #else 127*6d33c6acSTsiChung Liew # define CFG_CBSIZE 256 /* Console I/O Buffer Size */ 128*6d33c6acSTsiChung Liew #endif 129*6d33c6acSTsiChung Liew #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ 130*6d33c6acSTsiChung Liew #define CFG_MAXARGS 16 /* max number of command args */ 131*6d33c6acSTsiChung Liew #define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ 132*6d33c6acSTsiChung Liew 133*6d33c6acSTsiChung Liew #define CFG_LOAD_ADDR 0x00100000 134*6d33c6acSTsiChung Liew 135*6d33c6acSTsiChung Liew #define CFG_MEMTEST_START 0x400 136*6d33c6acSTsiChung Liew #define CFG_MEMTEST_END 0x380000 137*6d33c6acSTsiChung Liew 138*6d33c6acSTsiChung Liew #define CFG_HZ 1000 139*6d33c6acSTsiChung Liew 140*6d33c6acSTsiChung Liew #undef CFG_PLL_BYPASS /* bypass PLL for test purpose */ 141*6d33c6acSTsiChung Liew #define CFG_FAST_CLK 142*6d33c6acSTsiChung Liew #ifdef CFG_FAST_CLK 143*6d33c6acSTsiChung Liew # define CFG_PLLCR 0x1243E054 144*6d33c6acSTsiChung Liew # define CFG_CLK 140000000 145*6d33c6acSTsiChung Liew #else 146*6d33c6acSTsiChung Liew # define CFG_PLLCR 0x135a4140 147*6d33c6acSTsiChung Liew # define CFG_CLK 70000000 148*6d33c6acSTsiChung Liew #endif 149*6d33c6acSTsiChung Liew 150*6d33c6acSTsiChung Liew /* 151*6d33c6acSTsiChung Liew * Low Level Configuration Settings 152*6d33c6acSTsiChung Liew * (address mappings, register initial values, etc.) 153*6d33c6acSTsiChung Liew * You should know what you are doing if you make changes here. 154*6d33c6acSTsiChung Liew */ 155*6d33c6acSTsiChung Liew 156*6d33c6acSTsiChung Liew #define CFG_MBAR 0x10000000 /* Register Base Addrs */ 157*6d33c6acSTsiChung Liew #define CFG_MBAR2 0x80000000 /* Module Base Addrs 2 */ 158*6d33c6acSTsiChung Liew 159*6d33c6acSTsiChung Liew /* 160*6d33c6acSTsiChung Liew * Definitions for initial stack pointer and data area (in DPRAM) 161*6d33c6acSTsiChung Liew */ 162*6d33c6acSTsiChung Liew #define CFG_INIT_RAM_ADDR 0x20000000 163*6d33c6acSTsiChung Liew #define CFG_INIT_RAM_END 0x10000 /* End of used area in internal SRAM */ 164*6d33c6acSTsiChung Liew #define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ 165*6d33c6acSTsiChung Liew #define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE) 166*6d33c6acSTsiChung Liew #define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET 167*6d33c6acSTsiChung Liew 168*6d33c6acSTsiChung Liew /* 169*6d33c6acSTsiChung Liew * Start addresses for the final memory configuration 170*6d33c6acSTsiChung Liew * (Set up by the startup code) 171*6d33c6acSTsiChung Liew * Please note that CFG_SDRAM_BASE _must_ start at 0 172*6d33c6acSTsiChung Liew */ 173*6d33c6acSTsiChung Liew #define CFG_SDRAM_BASE 0x00000000 174*6d33c6acSTsiChung Liew #define CFG_SDRAM_SIZE 16 /* SDRAM size in MB */ 175*6d33c6acSTsiChung Liew 176*6d33c6acSTsiChung Liew #ifdef CONFIG_MONITOR_IS_IN_RAM 177*6d33c6acSTsiChung Liew # define CFG_MONITOR_BASE 0x20000 178*6d33c6acSTsiChung Liew #else 179*6d33c6acSTsiChung Liew # define CFG_MONITOR_BASE (CFG_FLASH_BASE + 0x400) 180*6d33c6acSTsiChung Liew #endif 181*6d33c6acSTsiChung Liew 182*6d33c6acSTsiChung Liew #define CFG_MONITOR_LEN 0x40000 183*6d33c6acSTsiChung Liew #define CFG_MALLOC_LEN (256 << 10) 184*6d33c6acSTsiChung Liew #define CFG_BOOTPARAMS_LEN (64*1024) 185*6d33c6acSTsiChung Liew 186*6d33c6acSTsiChung Liew /* 187*6d33c6acSTsiChung Liew * For booting Linux, the board info and command line data 188*6d33c6acSTsiChung Liew * have to be in the first 8 MB of memory, since this is 189*6d33c6acSTsiChung Liew * the maximum mapped by the Linux kernel during initialization ?? 190*6d33c6acSTsiChung Liew */ 191*6d33c6acSTsiChung Liew #define CFG_BOOTMAPSZ (CFG_SDRAM_BASE + (CFG_SDRAM_SIZE << 20)) 192*6d33c6acSTsiChung Liew 193*6d33c6acSTsiChung Liew /* FLASH organization */ 194*6d33c6acSTsiChung Liew #define CFG_FLASH_BASE (CFG_CSAR0 << 16) 195*6d33c6acSTsiChung Liew #define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ 196*6d33c6acSTsiChung Liew #define CFG_MAX_FLASH_SECT 2048 /* max number of sectors on one chip */ 197*6d33c6acSTsiChung Liew #define CFG_FLASH_ERASE_TOUT 1000 198*6d33c6acSTsiChung Liew 199*6d33c6acSTsiChung Liew #define FLASH_SST6401B 0x200 200*6d33c6acSTsiChung Liew #define SST_ID_xF6401B 0x236D236D 201*6d33c6acSTsiChung Liew 202*6d33c6acSTsiChung Liew #undef CFG_FLASH_CFI 203*6d33c6acSTsiChung Liew #ifdef CFG_FLASH_CFI 204*6d33c6acSTsiChung Liew /* 205*6d33c6acSTsiChung Liew * Unable to use CFI driver, due to incompatible sector erase command by SST. 206*6d33c6acSTsiChung Liew * Amd/Atmel use 0x30 for sector erase, SST use 0x50. 207*6d33c6acSTsiChung Liew * 0x30 is block erase in SST 208*6d33c6acSTsiChung Liew */ 209*6d33c6acSTsiChung Liew # define CFG_FLASH_CFI_DRIVER 1 210*6d33c6acSTsiChung Liew # define CFG_FLASH_SIZE 0x800000 211*6d33c6acSTsiChung Liew # define CFG_FLASH_CFI_WIDTH FLASH_CFI_16BIT 212*6d33c6acSTsiChung Liew # define CONFIG_FLASH_CFI_LEGACY 213*6d33c6acSTsiChung Liew #else 214*6d33c6acSTsiChung Liew # define CFG_SST_SECT 2048 215*6d33c6acSTsiChung Liew # define CFG_SST_SECTSZ 0x1000 216*6d33c6acSTsiChung Liew # define CFG_FLASH_WRITE_TOUT 500 217*6d33c6acSTsiChung Liew #endif 218*6d33c6acSTsiChung Liew 219*6d33c6acSTsiChung Liew /* Cache Configuration */ 220*6d33c6acSTsiChung Liew #define CFG_CACHELINE_SIZE 16 221*6d33c6acSTsiChung Liew 222*6d33c6acSTsiChung Liew /* Port configuration */ 223*6d33c6acSTsiChung Liew #define CFG_FECI2C 0xF0 224*6d33c6acSTsiChung Liew 225*6d33c6acSTsiChung Liew #define CFG_CSAR0 0xFF80 226*6d33c6acSTsiChung Liew #define CFG_CSMR0 0x007F0021 227*6d33c6acSTsiChung Liew #define CFG_CSCR0 0x1D80 228*6d33c6acSTsiChung Liew 229*6d33c6acSTsiChung Liew #define CFG_CSAR1 0xE000 230*6d33c6acSTsiChung Liew #define CFG_CSMR1 0x00000001 231*6d33c6acSTsiChung Liew #define CFG_CSCR1 0x3DD8 232*6d33c6acSTsiChung Liew 233*6d33c6acSTsiChung Liew #define CFG_CSAR2 0 234*6d33c6acSTsiChung Liew #define CFG_CSMR2 0 235*6d33c6acSTsiChung Liew #define CFG_CSCR2 0 236*6d33c6acSTsiChung Liew 237*6d33c6acSTsiChung Liew #define CFG_CSAR3 0 238*6d33c6acSTsiChung Liew #define CFG_CSMR3 0 239*6d33c6acSTsiChung Liew #define CFG_CSCR3 0 240*6d33c6acSTsiChung Liew 241*6d33c6acSTsiChung Liew /*----------------------------------------------------------------------- 242*6d33c6acSTsiChung Liew * Port configuration 243*6d33c6acSTsiChung Liew */ 244*6d33c6acSTsiChung Liew #define CFG_GPIO_FUNC 0x00000008 /* Set gpio pins: none */ 245*6d33c6acSTsiChung Liew #define CFG_GPIO1_FUNC 0x00df00f0 /* 36-39(SWITCH),48-52(FPGAs),54 */ 246*6d33c6acSTsiChung Liew #define CFG_GPIO_EN 0x00000008 /* Set gpio output enable */ 247*6d33c6acSTsiChung Liew #define CFG_GPIO1_EN 0x00c70000 /* Set gpio output enable */ 248*6d33c6acSTsiChung Liew #define CFG_GPIO_OUT 0x00000008 /* Set outputs to default state */ 249*6d33c6acSTsiChung Liew #define CFG_GPIO1_OUT 0x00c70000 /* Set outputs to default state */ 250*6d33c6acSTsiChung Liew #define CFG_GPIO1_LED 0x00400000 /* user led */ 251*6d33c6acSTsiChung Liew 252*6d33c6acSTsiChung Liew #endif /* _M5253DEMO_H */ 253