1 Freescale MCF5373EVB ColdFire Development Board 2 ================================================ 3 4 TsiChung Liew(Tsi-Chung.Liew (a] freescale.com) 5 Created 11/08/07 6 =========================================== 7 8 9 Changed files: 10 ============== 11 12 - board/freescale/m5373evb/m5373evb.c Dram setup 13 - board/freescale/m5373evb/mii.c Mii access 14 - board/freescale/m5373evb/Makefile Makefile 15 - board/freescale/m5373evb/config.mk config make 16 - board/freescale/m5373evb/u-boot.lds Linker description 17 18 - arch/m68k/cpu/mcf532x/cpu.c cpu specific code 19 - arch/m68k/cpu/mcf532x/cpu_init.c FBCS, Mux pins, icache and RTC extra regs 20 - arch/m68k/cpu/mcf532x/interrupts.c cpu specific interrupt support 21 - arch/m68k/cpu/mcf532x/speed.c system, pci, flexbus, and cpu clock 22 - arch/m68k/cpu/mcf532x/Makefile Makefile 23 - arch/m68k/cpu/mcf532x/config.mk config make 24 - arch/m68k/cpu/mcf532x/start.S start up assembly code 25 26 - doc/README.m5373evb This readme file 27 28 - drivers/net/mcffec.c ColdFire common FEC driver 29 - drivers/serial/mcfuart.c ColdFire common UART driver 30 - drivers/rtc/mcfrtc.c Realtime clock Driver 31 32 - include/asm-m68k/bitops.h Bit operation function export 33 - include/asm-m68k/byteorder.h Byte order functions 34 - include/asm-m68k/fec.h FEC structure and definition 35 - include/asm-m68k/fsl_i2c.h I2C structure and definition 36 - include/asm-m68k/global_data.h Global data structure 37 - include/asm-m68k/immap.h ColdFire specific header file and driver macros 38 - include/asm-m68k/immap_532x.h mcf532x specific header file 39 - include/asm-m68k/io.h io functions 40 - include/asm-m68k/m532x.h mcf532x specific header file 41 - include/asm-m68k/posix_types.h Posix 42 - include/asm-m68k/processor.h header file 43 - include/asm-m68k/ptrace.h Exception structure 44 - include/asm-m68k/rtc.h Realtime clock header file 45 - include/asm-m68k/string.h String function export 46 - include/asm-m68k/timer.h Timer structure and definition 47 - include/asm-m68k/types.h Data types definition 48 - include/asm-m68k/uart.h Uart structure and definition 49 - include/asm-m68k/u-boot.h U-Boot structure 50 51 - include/configs/M5373EVB.h Board specific configuration file 52 53 - arch/m68k/lib/board.c board init function 54 - arch/m68k/lib/cache.c 55 - arch/m68k/lib/interrupts Coldfire common interrupt functions 56 - arch/m68k/lib/m68k_linux.c 57 - arch/m68k/lib/time.c Timer functions (Dma timer and PIT) 58 - arch/m68k/lib/traps.c Exception init code 59 60 1 MCF5373 specific Options/Settings 61 ==================================== 62 1.1 pre-loader is no longer suppoer in thie coldfire family 63 64 1.2 Configuration settings for M5373EVB Development Board 65 CONFIG_MCF532x -- define for all MCF532x CPUs 66 CONFIG_M5373 -- define for all Freescale MCF5373 CPUs 67 CONFIG_M5373EVB -- define for M5373EVB board 68 69 CONFIG_MCFUART -- define to use common CF Uart driver 70 CONFIG_SYS_UART_PORT -- define UART port number, start with 0, 1 and 2 71 CONFIG_BAUDRATE -- define UART baudrate 72 73 CONFIG_MCFRTC -- define to use common CF RTC driver 74 CONFIG_SYS_MCFRTC_BASE -- provide base address for RTC in immap.h 75 CONFIG_SYS_RTC_OSCILLATOR -- define RTC clock frequency 76 RTC_DEBUG -- define to show RTC debug message 77 CONFIG_CMD_DATE -- enable to use date feature in U-Boot 78 79 CONFIG_MCFFEC -- define to use common CF FEC driver 80 CONFIG_MII -- enable to use MII driver 81 CONFIG_CF_DOMII -- enable to use MII feature in cmd_mii.c 82 CONFIG_SYS_DISCOVER_PHY -- enable PHY discovery 83 CONFIG_SYS_RX_ETH_BUFFER -- Set FEC Receive buffer 84 CONFIG_SYS_FAULT_ECHO_LINK_DOWN-- 85 CONFIG_SYS_FEC0_PINMUX -- Set FEC0 Pin configuration 86 CONFIG_SYS_FEC0_MIIBASE -- Set FEC0 MII base register 87 MCFFEC_TOUT_LOOP -- set FEC timeout loop 88 89 CONFIG_MCFTMR -- define to use DMA timer 90 CONFIG_MCFPIT -- define to use PIT timer 91 92 CONFIG_SYS_I2C_FSL -- define to use FSL common I2C driver 93 CONFIG_SYS_I2C_SOFT -- define for I2C bit-banged 94 CONFIG_SYS_I2C_SPEED -- define for I2C speed 95 CONFIG_SYS_I2C_SLAVE -- define for I2C slave address 96 CONFIG_SYS_I2C_OFFSET -- define for I2C base address offset 97 CONFIG_SYS_IMMR -- define for MBAR offset 98 99 CONFIG_SYS_MBAR -- define MBAR offset 100 101 CONFIG_MONITOR_IS_IN_RAM -- Not support 102 103 CONFIG_SYS_INIT_RAM_ADDR -- defines the base address of the MCF5373 internal SRAM 104 105 CONFIG_SYS_CSn_BASE -- defines the Chip Select Base register 106 CONFIG_SYS_CSn_MASK -- defines the Chip Select Mask register 107 CONFIG_SYS_CSn_CTRL -- defines the Chip Select Control register 108 109 CONFIG_SYS_SDRAM_BASE -- defines the DRAM Base 110 111 2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL 112 =========================================== 113 2.1. System memory map: 114 Flash: 0x00000000-0x3FFFFFFF (1024MB) 115 DDR: 0x40000000-0x7FFFFFFF (1024MB) 116 SRAM: 0x80000000-0x8FFFFFFF (256MB) 117 IP: 0xF0000000-0xFFFFFFFF (256MB) 118 119 2.2. For the initial bringup, we adopted a consistent memory scheme between U-Boot and 120 linux kernel, you can customize it based on your system requirements: 121 Flash0: 0x00000000-0x00FFFFFF (16MB) 122 123 DDR: 0x40000000-0x4FFFFFFF (256MB) 124 SRAM: 0x80000000-0x80007FFF (32KB) 125 IP: 0xFC000000-0xFC0FFFFF (64KB) 126 127 3. COMPILATION 128 ============== 129 3.1 To create U-Boot the gcc-4.1-xx compiler set (ColdFire ELF or 130 uClinux version) from codesourcery.com was used. Download it from: 131 http://www.codesourcery.com/gnu_toolchains/coldfire/download.html 132 133 3.2 Compilation 134 export CROSS_COMPILE=cross-compile-prefix 135 cd u-boot-1.x.x 136 make distclean 137 make M5373EVB_config 138 make 139 140 4. SCREEN DUMP 141 ============== 142 4.1 M5373EVB Development board 143 (NOTE: May not show exactly the same) 144 145 U-Boot 1.3.0 (Nov 8 2007 - 12:44:08) 146 147 CPU: Freescale MCF5373 (Mask:65 Version:1) 148 CPU CLK 240 Mhz BUS CLK 80 Mhz 149 Board: Freescale FireEngine 5373 EVB 150 I2C: ready 151 DRAM: 32 MB 152 FLASH: 2 MB 153 In: serial 154 Out: serial 155 Err: serial 156 NAND: 16 MiB 157 Net: FEC0 158 -> print 159 bootdelay=1 160 baudrate=115200 161 ethaddr=00:e0:0c:bc:e5:60 162 hostname=M5373EVB 163 netdev=eth0 164 loadaddr=40010000 165 load=tftp ${loadaddr) ${u-boot} 166 upd=run load; run prog 167 prog=prot off 0 2ffff;era 0 2ffff;cp.b ${loadaddr} 0 ${filesize};save 168 ethact=FEC0 169 u-boot=u-boot.bin 170 gatewayip=192.168.1.1 171 netmask=255.255.255.0 172 ipaddr=192.168.1.3 173 serverip=192.168.1.2 174 stdin=serial 175 stdout=serial 176 stderr=serial 177 mem=261632k 178 179 Environment size: 401/8188 bytes 180 -> bdinfo 181 memstart = 0x40000000 182 memsize = 0x02000000 183 flashstart = 0x00000000 184 flashsize = 0x00200000 185 flashoffset = 0x00000000 186 sramstart = 0x80000000 187 sramsize = 0x00008000 188 mbar = 0xFC000000 189 busfreq = 80 MHz 190 ethaddr = 00:E0:0C:BC:E5:60 191 ip_addr = 192.168.1.3 192 baudrate = 115200 bps 193 -> 194 -> help 195 ? - alias for 'help' 196 base - print or set address offset 197 bdinfo - print Board Info structure 198 boot - boot default, i.e., run 'bootcmd' 199 bootd - boot default, i.e., run 'bootcmd' 200 bootelf - Boot from an ELF image in memory 201 bootm - boot application image from memory 202 bootp - boot image via network using BootP/TFTP protocol 203 bootvx - Boot vxWorks from an ELF image 204 cmp - memory compare 205 coninfo - print console devices and information 206 cp - memory copy 207 crc32 - checksum calculation 208 date - get/set/reset date & time 209 dcache - enable or disable data cache 210 echo - echo args to console 211 erase - erase FLASH memory 212 flinfo - print FLASH memory information 213 go - start application at address 'addr' 214 help - print online help 215 i2c - I2C sub-system 216 icache - enable or disable instruction cache 217 iminfo - print header information for application image 218 imls - list all images found in flash 219 itest - return true/false on integer compare 220 loadb - load binary file over serial line (kermit mode) 221 loads - load S-Record file over serial line 222 loady - load binary file over serial line (ymodem mode) 223 loop - infinite loop on address range 224 ls - list files in a directory (default /) 225 md - memory display 226 mii - MII utility commands 227 mm - memory modify (auto-incrementing) 228 mtest - simple RAM test 229 mw - memory write (fill) 230 nand - NAND sub-system 231 nboot - boot from NAND device 232 nfs - boot image via network using NFS protocol 233 nm - memory modify (constant address) 234 ping - send ICMP ECHO_REQUEST to network host 235 printenv- print environment variables 236 protect - enable or disable FLASH write protection 237 rarpboot- boot image via network using RARP/TFTP protocol 238 reset - Perform RESET of the CPU 239 run - run commands in an environment variable 240 saveenv - save environment variables to persistent storage 241 setenv - set environment variables 242 sleep - delay execution for some time 243 source - run script from memory 244 tftpboot- boot image via network using TFTP protocol 245 version - print monitor version 246 -> tftp 0x40800000 uImage 247 Using FEC0 device 248 TFTP from server 192.168.1.3; our IP address is 192.168.1.3 Filename 'uImage'. 249 Load address: 0x40800000 250 Loading: ################################################################# 251 ################################################################# 252 ########## 253 done 254 Bytes transferred = 2053270 (1f5496 hex) 255 -> bootm 0x40800000 256 ## Booting image at 40800000 ... 257 Image Name: Linux Kernel Image 258 Created: 2007-11-07 20:33:08 UTC 259 Image Type: M68K Linux Kernel Image (gzip compressed) 260 Data Size: 2053206 Bytes = 2 MB 261 Load Address: 40020000 262 Entry Point: 40020000 263 Verifying Checksum ... OK 264 Uncompressing Kernel Image ... OK 265 Linux version 2.6.22-uc1 (mattw@loa) (gcc version 4.2.1 (Sourcery G++ Lite 4.2-7 266 267 268 uClinux/COLDFIRE(m537x) 269 COLDFIRE port done by Greg Ungerer, gerg (a] snapgear.com Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne Built 1 zonelists. Total pages: 8128 Kernel command line: rootfstype=romfs PID hash table entries: 128 (order: 7, 512 bytes) Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) Memory available: 28092k/32768k RAM, (1788k kernel code, 244k data) Mount-cache hash table entries: 512 270 NET: Registered protocol family 16 271 USB-MCF537x: (HOST module) EHCI device is registered 272 USB-MCF537x: (OTG module) EHCI device is registered 273 USB-MCF537x: (OTG module) UDC device is registered 274 usbcore: registered new interface driver usbfs 275 usbcore: registered new interface driver hub 276 usbcore: registered new device driver usb 277 NET: Registered protocol family 2 278 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 1024 (order: 1, 8192 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) 279 TCP: Hash tables configured (established 1024 bind 1024) TCP reno registered 280 JFFS2 version 2.2. (NAND) 2001-2006 Red Hat, Inc. 281 io scheduler noop registered 282 io scheduler cfq registered (default) 283 ColdFire internal UART serial driver version 1.00 ttyS0 at 0xfc060000 (irq = 90) is a builtin ColdFire UART 284 ttyS1 at 0xfc064000 (irq = 91) is a builtin ColdFire UART 285 ttyS2 at 0xfc068000 (irq = 92) is a builtin ColdFire UART RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize 286 loop: module loaded 287 nbd: registered device at major 43 288 usbcore: registered new interface driver ub FEC ENET Version 0.2 289 fec: PHY @ 0x1, ID 0x20005c90 -- DP83848 290 eth0: ethernet 00:e0:0c:bc:e5:60 291 uclinux[mtd]: RAM probe address=0x4021c22c size=0x22b000 Creating 1 MTD partitions on "RAM": 292 0x00000000-0x0022b000 : "ROMfs" 293 uclinux[mtd]: set ROMfs to be root filesystem NAND device: Manufacturer ID: 0x20, Chip ID: 0x73 (ST Micro NAND 16MiB 3,3V 8-b) Scanning device for bad blocks Creating 1 MTD partitions on "NAND 16MiB 3,3V 8-bit": 294 0x00000000-0x01000000 : "M53xx flash partition 1" 295 QSPI: spi->max_speed_hz 300000 296 QSPI: Baud set to 255 297 SPI: Coldfire master initialized 298 M537x - Disable UART1 when using Audio 299 udc: Freescale MCF53xx UDC driver version 27 October 2006 init 300 udc: MCF53xx USB Device is found. ID=0x5 Rev=0x41 i2c /dev entries driver 301 usbcore: registered new interface driver usbhid 302 drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver TCP cubic registered 303 NET: Registered protocol family 1 304 NET: Registered protocol family 17 305 VFS: Mounted root (romfs filesystem) readonly. 306 Freeing unused kernel memory: 64k freed (0x401f5000 - 0x40204000) init started: BusyBox v1.00 (2007.11.07-19:57+0000) multi-call binary?Setting e Mounting filesystems 307 mount: Mounting devpts on /dev/pts failed: No such device 308 mount: Mounting usbfs on /proc/bus/usb failed: No such file or directory Starting syslogd and klogd Setting up networking on loopback device: 309 Setting up networking on eth0: 310 info, udhcpc (v0.9.9-pre) started 311 eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX. 312 debug, Sending discover... 313 debug, Sending discover... 314 debug, Sending select for 172.27.0.130... 315 info, Lease of 172.27.0.130 obtained, lease time 43200 deleting routers 316 route: SIOC[ADD|DEL]RT: No such process 317 adding dns 172.27.0.1 318 Starting the boa webserver: 319 Setting time from ntp server: ntp.cs.strath.ac.uk 320 ntp.cs.strath.ac.uk: Unknown host 321 322 323 BusyBox v1.00 (2007.11.07-19:57+0000) Built-in shell (msh) Enter 'help' for a list of built-in commands. 324 325 # 326