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