1 Freescale MCF54455EVB ColdFire Development Board 2 ================================================ 3 4 TsiChung Liew(Tsi-Chung.Liew (a] freescale.com) 5 Created 4/08/07 6 =========================================== 7 8 9 Changed files: 10 ============== 11 12 - board/freescale/m54455evb/m54455evb.c Dram setup, IDE pre init, and PCI init 13 - board/freescale/m54455evb/flash.c Atmel and INTEL flash support 14 - board/freescale/m54455evb/Makefile Makefile 15 - board/freescale/m54455evb/config.mk config make 16 - board/freescale/m54455evb/u-boot.lds Linker description 17 18 - common/cmd_bdinfo.c Clock frequencies output 19 - common/cmd_mii.c mii support 20 21 - arch/m68k/cpu/mcf5445x/cpu.c cpu specific code 22 - arch/m68k/cpu/mcf5445x/cpu_init.c Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs 23 - arch/m68k/cpu/mcf5445x/interrupts.c cpu specific interrupt support 24 - arch/m68k/cpu/mcf5445x/speed.c system, pci, flexbus, and cpu clock 25 - arch/m68k/cpu/mcf5445x/Makefile Makefile 26 - arch/m68k/cpu/mcf5445x/config.mk config make 27 - arch/m68k/cpu/mcf5445x/start.S start up assembly code 28 29 - doc/README.m54455evb This readme file 30 31 - drivers/net/mcffec.c ColdFire common FEC driver 32 - drivers/serial/mcfuart.c ColdFire common UART driver 33 34 - include/asm-m68k/bitops.h Bit operation function export 35 - include/asm-m68k/byteorder.h Byte order functions 36 - include/asm-m68k/fec.h FEC structure and definition 37 - include/asm-m68k/fsl_i2c.h I2C structure and definition 38 - include/asm-m68k/global_data.h Global data structure 39 - include/asm-m68k/immap.h ColdFire specific header file and driver macros 40 - include/asm-m68k/immap_5445x.h mcf5445x specific header file 41 - include/asm-m68k/io.h io functions 42 - include/asm-m68k/m5445x.h mcf5445x specific header file 43 - include/asm-m68k/posix_types.h Posix 44 - include/asm-m68k/processor.h header file 45 - include/asm-m68k/ptrace.h Exception structure 46 - include/asm-m68k/rtc.h Realtime clock header file 47 - include/asm-m68k/string.h String function export 48 - include/asm-m68k/timer.h Timer structure and definition 49 - include/asm-m68k/types.h Data types definition 50 - include/asm-m68k/uart.h Uart structure and definition 51 - include/asm-m68k/u-boot.h U-Boot structure 52 53 - include/configs/M54455EVB.h Board specific configuration file 54 55 - arch/m68k/lib/board.c board init function 56 - arch/m68k/lib/cache.c 57 - arch/m68k/lib/interrupts Coldfire common interrupt functions 58 - arch/m68k/lib/m68k_linux.c 59 - arch/m68k/lib/time.c Timer functions (Dma timer and PIT) 60 - arch/m68k/lib/traps.c Exception init code 61 62 - rtc/mcfrtc.c Realtime clock Driver 63 64 1 MCF5445x specific Options/Settings 65 ==================================== 66 1.1 pre-loader is no longer suppoer in thie coldfire family 67 68 1.2 Configuration settings for M54455EVB Development Board 69 CONFIG_MCF5445x -- define for all MCF5445x CPUs 70 CONFIG_M54455 -- define for all Freescale MCF54455 CPUs 71 CONFIG_M54455EVB -- define for M54455EVB board 72 73 CONFIG_MCFUART -- define to use common CF Uart driver 74 CONFIG_SYS_UART_PORT -- define UART port number, start with 0, 1 and 2 75 CONFIG_BAUDRATE -- define UART baudrate 76 77 CONFIG_MCFRTC -- define to use common CF RTC driver 78 CONFIG_SYS_MCFRTC_BASE -- provide base address for RTC in immap.h 79 CONFIG_SYS_RTC_OSCILLATOR -- define RTC clock frequency 80 RTC_DEBUG -- define to show RTC debug message 81 CONFIG_CMD_DATE -- enable to use date feature in U-Boot 82 83 CONFIG_MCFFEC -- define to use common CF FEC driver 84 CONFIG_MII -- enable to use MII driver 85 CONFIG_CF_DOMII -- enable to use MII feature in cmd_mii.c 86 CONFIG_SYS_DISCOVER_PHY -- enable PHY discovery 87 CONFIG_SYS_RX_ETH_BUFFER -- Set FEC Receive buffer 88 CONFIG_SYS_FAULT_ECHO_LINK_DOWN-- 89 CONFIG_SYS_FEC0_PINMUX -- Set FEC0 Pin configuration 90 CONFIG_SYS_FEC1_PINMUX -- Set FEC1 Pin configuration 91 CONFIG_SYS_FEC0_MIIBASE -- Set FEC0 MII base register 92 CONFIG_SYS_FEC1_MIIBASE -- Set FEC0 MII base register 93 MCFFEC_TOUT_LOOP -- set FEC timeout loop 94 CONFIG_HAS_ETH1 -- define to enable second FEC in U-Boot 95 96 CONFIG_ISO_PARTITION -- enable ISO read/write 97 CONFIG_DOS_PARTITION -- enable DOS read/write 98 CONFIG_IDE_RESET -- define ide_reset() 99 CONFIG_IDE_PREINIT -- define ide_preinit() 100 CONFIG_ATAPI -- define ATAPI support 101 CONFIG_LBA48 -- define LBA48 (larger than 120GB) support 102 CONFIG_SYS_IDE_MAXBUS -- define max channel 103 CONFIG_SYS_IDE_MAXDEVICE -- define max devices per channel 104 CONFIG_SYS_ATA_BASE_ADDR -- define ATA base address 105 CONFIG_SYS_ATA_IDE0_OFFSET -- define ATA IDE0 offset 106 CONFIG_SYS_ATA_DATA_OFFSET -- define ATA data IO 107 CONFIG_SYS_ATA_REG_OFFSET -- define for normal register accesses 108 CONFIG_SYS_ATA_ALT_OFFSET -- define for alternate registers 109 CONFIG_SYS_ATA_STRIDE -- define for Interval between registers 110 _IO_BASE -- define for IO base address 111 112 CONFIG_MCFTMR -- define to use DMA timer 113 CONFIG_MCFPIT -- define to use PIT timer 114 115 CONFIG_SYS_FSL_I2C -- define to use FSL common I2C driver 116 CONFIG_SYS_I2C_SOFT -- define for I2C bit-banged 117 CONFIG_SYS_I2C_SPEED -- define for I2C speed 118 CONFIG_SYS_I2C_SLAVE -- define for I2C slave address 119 CONFIG_SYS_I2C_OFFSET -- define for I2C base address offset 120 CONFIG_SYS_IMMR -- define for MBAR offset 121 122 CONFIG_PCI -- define for PCI support 123 CONFIG_PCI_PNP -- define for Plug n play support 124 CONFIG_SYS_PCI_MEM_BUS -- PCI memory logical offset 125 CONFIG_SYS_PCI_MEM_PHYS -- PCI memory physical offset 126 CONFIG_SYS_PCI_MEM_SIZE -- PCI memory size 127 CONFIG_SYS_PCI_IO_BUS -- PCI IO logical offset 128 CONFIG_SYS_PCI_IO_PHYS -- PCI IO physical offset 129 CONFIG_SYS_PCI_IO_SIZE -- PCI IO size 130 CONFIG_SYS_PCI_CFG_BUS -- PCI Configuration logical offset 131 CONFIG_SYS_PCI_CFG_PHYS -- PCI Configuration physical offset 132 CONFIG_SYS_PCI_CFG_SIZE -- PCI Configuration size 133 134 CONFIG_EXTRA_CLOCK -- Enable extra clock such as vco, flexbus, pci, etc 135 136 CONFIG_SYS_MBAR -- define MBAR offset 137 138 CONFIG_SYS_ATMEL_BOOT -- To determine the U-Boot is booted from Atmel or Intel 139 140 CONFIG_MONITOR_IS_IN_RAM -- Not support 141 142 CONFIG_SYS_INIT_RAM_ADDR -- defines the base address of the MCF54455 internal SRAM 143 144 CONFIG_SYS_CSn_BASE -- defines the Chip Select Base register 145 CONFIG_SYS_CSn_MASK -- defines the Chip Select Mask register 146 CONFIG_SYS_CSn_CTRL -- defines the Chip Select Control register 147 148 CONFIG_SYS_ATMEL_BASE -- defines the Atmel Flash base 149 CONFIG_SYS_INTEL_BASE -- defines the Intel Flash base 150 151 CONFIG_SYS_SDRAM_BASE -- defines the DRAM Base 152 CONFIG_SYS_SDRAM_BASE1 -- defines the DRAM Base 1 153 154 2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL 155 =========================================== 156 2.1. System memory map: 157 Flash: 0x00000000-0x3FFFFFFF (1024MB) 158 DDR: 0x40000000-0x7FFFFFFF (1024MB) 159 SRAM: 0x80000000-0x8FFFFFFF (256MB) 160 ATA: 0x90000000-0x9FFFFFFF (256MB) 161 PCI: 0xA0000000-0xBFFFFFFF (512MB) 162 FlexBus: 0xC0000000-0xDFFFFFFF (512MB) 163 IP: 0xF0000000-0xFFFFFFFF (256MB) 164 165 2.2. For the initial bringup, we adopted a consistent memory scheme between U-Boot and 166 linux kernel, you can customize it based on your system requirements: 167 Atmel boot: 168 Flash0: 0x00000000-0x0007FFFF (512KB) 169 Flash1: 0x04000000-0x05FFFFFF (32MB) 170 Intel boot: 171 Flash0: 0x00000000-0x01FFFFFF (32MB) 172 Flash1: 0x04000000-0x0407FFFF (512KB) 173 174 CPLD: 0x08000000-0x08FFFFFF (16MB) 175 FPGA: 0x09000000-0x09FFFFFF (16MB) 176 DDR: 0x40000000-0x4FFFFFFF (256MB) 177 SRAM: 0x80000000-0x80007FFF (32KB) 178 IP: 0xFC000000-0xFC0FFFFF (64KB) 179 180 3. SWITCH SETTINGS 181 ================== 182 3.1 SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL 183 SW1 Pin4: 0 - ULPI chip not in reset state or 1 - ULPI chip in reset state 184 SW1 Pin5: 0 - Full ATA Bus enabled, FEC Phy1 powered down 185 1 - Upper 8 bits ATA data bus disabled, FEC PHY1 active 186 SW1 Pin6: 0 - FEC Phy0 active or 1 - FEC Phy0 powered down 187 SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL 188 189 4. COMPILATION 190 ============== 191 4.1 To create U-Boot the gcc-4.1-32 compiler set (ColdFire ELF version) 192 from codesourcery.com was used. Download it from: 193 http://www.codesourcery.com/gnu_toolchains/coldfire/download.html 194 195 4.2 Compilation 196 export CROSS_COMPILE=cross-compile-prefix 197 cd u-boot-1.x.x 198 make distclean 199 make M54455EVB_config, or - default to atmel 33Mhz input clock 200 make M54455EVB_atmel_config, or - default to atmel 33Mhz input clock 201 make M54455EVB_a33_config, or - default to atmel 33Mhz input clock 202 make M54455EVB_a66_config, or - default to atmel 66Mhz input clock 203 make M54455EVB_intel_config, or - default to intel 33Mhz input clock 204 make M54455EVB_i33_config, or - default to intel 33Mhz input clock 205 make M54455EVB_i66_config, or - default to intel 66Mhz input clock 206 make 207 208 5. SCREEN DUMP 209 ============== 210 5.1 M54455EVB Development board 211 Boot from Atmel (NOTE: May not show exactly the same) 212 213 U-Boot 1.2.0-g98c80b46-dirty (Jul 26 2007 - 12:44:08) 214 215 CPU: Freescale MCF54455 (Mask:48 Version:1) 216 CPU CLK 266 Mhz BUS CLK 133 Mhz FLB CLK 66 Mhz 217 PCI CLK 33 Mhz INP CLK 33 Mhz VCO CLK 533 Mhz 218 Board: Freescale M54455 EVB 219 I2C: ready 220 DRAM: 256 MB 221 FLASH: 16.5 MB 222 In: serial 223 Out: serial 224 Err: serial 225 Net: FEC0, FEC1 226 IDE: Bus 0: not available 227 -> print 228 bootargs=root=/dev/ram rw 229 bootdelay=1 230 baudrate=115200 231 ethaddr=00:e0:0c:bc:e5:60 232 eth1addr=00:e0:0c:bc:e5:61 233 hostname=M54455EVB 234 netdev=eth0 235 inpclk=33333333 236 loadaddr=40010000 237 load=tftp ${loadaddr) ${u-boot} 238 upd=run load; run prog 239 prog=prot off 0 2ffff;era 0 2ffff;cp.b ${loadaddr} 0 ${filesize};save 240 ethact=FEC0 241 mtdids=nor0=M54455EVB-1 242 mtdparts=M54455EVB-1:16m(user) 243 u-boot=u-boot54455.bin 244 filesize=292b4 245 fileaddr=40010000 246 gatewayip=192.168.1.1 247 netmask=255.255.255.0 248 ipaddr=192.168.1.3 249 serverip=192.168.1.2 250 stdin=serial 251 stdout=serial 252 stderr=serial 253 mem=261632k 254 255 Environment size: 563/8188 bytes 256 -> bdinfo 257 memstart = 0x40000000 258 memsize = 0x10000000 259 flashstart = 0x00000000 260 flashsize = 0x01080000 261 flashoffset = 0x00000000 262 sramstart = 0x80000000 263 sramsize = 0x00008000 264 mbar = 0xFC000000 265 busfreq = 133.333 MHz 266 pcifreq = 33.333 MHz 267 flbfreq = 66.666 MHz 268 inpfreq = 33.333 MHz 269 vcofreq = 533.333 MHz 270 ethaddr = 00:E0:0C:BC:E5:60 271 eth1addr = 00:E0:0C:BC:E5:61 272 ip_addr = 192.168.1.3 273 baudrate = 115200 bps 274 -> 275 -> help 276 ? - alias for 'help' 277 base - print or set address offset 278 bdinfo - print Board Info structure 279 boot - boot default, i.e., run 'bootcmd' 280 bootd - boot default, i.e., run 'bootcmd' 281 bootelf - Boot from an ELF image in memory 282 bootm - boot application image from memory 283 bootp - boot image via network using BootP/TFTP protocol 284 bootvx - Boot vxWorks from an ELF image 285 cmp - memory compare 286 coninfo - print console devices and information 287 cp - memory copy 288 crc32 - checksum calculation 289 date - get/set/reset date & time 290 dcache - enable or disable data cache 291 diskboot- boot from IDE device 292 echo - echo args to console 293 erase - erase FLASH memory 294 ext2load- load binary file from a Ext2 filesystem 295 ext2ls - list files in a directory (default /) 296 fatinfo - print information about filesystem 297 fatload - load binary file from a dos filesystem 298 fatls - list files in a directory (default /) 299 flinfo - print FLASH memory information 300 fsinfo - print information about filesystems 301 fsload - load binary file from a filesystem image 302 go - start application at address 'addr' 303 help - print online help 304 i2c - I2C sub-system 305 icache - enable or disable instruction cache 306 ide - IDE sub-system 307 iminfo - print header information for application image 308 imls - list all images found in flash 309 itest - return true/false on integer compare 310 loadb - load binary file over serial line (kermit mode) 311 loads - load S-Record file over serial line 312 loady - load binary file over serial line (ymodem mode) 313 loop - infinite loop on address range 314 ls - list files in a directory (default /) 315 md - memory display 316 mii - MII utility commands 317 mm - memory modify (auto-incrementing) 318 mtest - simple RAM test 319 mw - memory write (fill) 320 nfs - boot image via network using NFS protocol 321 nm - memory modify (constant address) 322 pci - list and access PCI Configuration Space 323 ping - send ICMP ECHO_REQUEST to network host 324 printenv- print environment variables 325 protect - enable or disable FLASH write protection 326 rarpboot- boot image via network using RARP/TFTP protocol 327 reset - Perform RESET of the CPU 328 run - run commands in an environment variable 329 saveenv - save environment variables to persistent storage 330 setenv - set environment variables 331 sleep - delay execution for some time 332 source - run script from memory 333 tftpboot- boot image via network using TFTP protocol 334 version - print monitor version 335 ->bootm 4000000 336 337 ## Booting image at 04000000 ... 338 Image Name: Linux Kernel Image 339 Created: 2007-08-14 15:13:00 UTC 340 Image Type: M68K Linux Kernel Image (uncompressed) 341 Data Size: 2301952 Bytes = 2.2 MB 342 Load Address: 40020000 343 Entry Point: 40020000 344 Verifying Checksum ... OK 345 OK 346 Linux version 2.6.20-gfe5136d6-dirty (mattw@kea) (gcc version 4.2.0 20070318 (pr 347 erelease) (Sourcery G++ Lite 4.2-20)) #108 Mon Aug 13 13:00:13 MDT 2007 348 starting up linux startmem 0xc0254000, endmem 0xcfffffff, size 253MB 349 Built 1 zonelists. Total pages: 32624 350 Kernel command line: root=/dev/mtdblock1 rw rootfstype=jffs2 ip=none mtdparts=ph 351 ysmap-flash.0:5M(kernel)ro,-(jffs2) 352 PID hash table entries: 1024 (order: 10, 4096 bytes) 353 Console: colour dummy device 80x25 354 Dentry cache hash table entries: 32768 (order: 4, 131072 bytes) 355 Inode-cache hash table entries: 16384 (order: 3, 65536 bytes) 356 Memory: 257496k/262136k available (1864k kernel code, 2440k data, 88k init) 357 Mount-cache hash table entries: 1024 358 NET: Registered protocol family 16 359 SCSI subsystem initialized 360 NET: Registered protocol family 2 361 IP route cache hash table entries: 2048 (order: 0, 8192 bytes) 362 TCP established hash table entries: 8192 (order: 2, 32768 bytes) 363 TCP bind hash table entries: 4096 (order: 1, 16384 bytes) 364 TCP: Hash tables configured (established 8192 bind 4096) 365 TCP reno registered 366 JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc. 367 io scheduler noop registered 368 io scheduler anticipatory registered 369 io scheduler deadline registered 370 io scheduler cfq registered (default) 371 ColdFire internal UART serial driver version 1.00 372 ttyS0 at 0xfc060000 (irq = 90) is a builtin ColdFire UART 373 ttyS1 at 0xfc064000 (irq = 91) is a builtin ColdFire UART 374 ttyS2 at 0xfc068000 (irq = 92) is a builtin ColdFire UART 375 RAMDISK driver initialized: 16 RAM disks of 64000K size 1024 blocksize 376 loop: loaded (max 8 devices) 377 FEC ENET Version 0.2 378 fec: PHY @ 0x0, ID 0x20005ca2 -- DP83849 379 eth0: ethernet 00:08:ee:00:e4:19 380 physmap platform flash device: 01000000 at 04000000 381 physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank 382 Intel/Sharp Extended Query Table at 0x0031 383 Using buffer write method 384 cfi_cmdset_0001: Erase suspend on write enabled 385 2 cmdlinepart partitions found on MTD device physmap-flash.0 386 Creating 2 MTD partitions on "physmap-flash.0": 387 0x00000000-0x00500000 : "kernel" 388 mtd: Giving out device 0 to kernel 389 0x00500000-0x01000000 : "jffs2" 390 mtd: Giving out device 1 to jffs2 391 mice: PS/2 mouse device common for all mice 392 i2c /dev entries driver 393 TCP cubic registered 394 NET: Registered protocol family 1 395 NET: Registered protocol family 17 396 NET: Registered protocol family 15 397 VFS: Mounted root (jffs2 filesystem). 398 Setting the hostname to freescale 399 Mounting filesystems 400 mount: Mounting usbfs on /proc/bus/usb failed: No such file or directory 401 Starting syslogd and klogd 402 Setting up networking on loopback device: 403 Setting up networking on eth0: 404 eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX. 405 Adding static route for default gateway to 172.27.255.254: 406 Setting nameserver to 172.27.0.1 in /etc/resolv.conf: 407 Starting inetd: 408 / # 409