1*186fc4dbSAlison WangFreescale MCF54418TWR ColdFire Development Board 2*186fc4dbSAlison Wang================================================ 3*186fc4dbSAlison Wang 4*186fc4dbSAlison WangTsiChung Liew(Tsi-Chung.Liew@freescale.com) 5*186fc4dbSAlison WangCreated Mar 22, 2012 6*186fc4dbSAlison Wang=========================================== 7*186fc4dbSAlison Wang 8*186fc4dbSAlison Wang 9*186fc4dbSAlison WangChanged files: 10*186fc4dbSAlison Wang============== 11*186fc4dbSAlison Wang 12*186fc4dbSAlison Wang- board/freescale/m54418twr/m54418twr.c Dram setup 13*186fc4dbSAlison Wang- board/freescale/m54418twr/Makefile Makefile 14*186fc4dbSAlison Wang- board/freescale/m54418twr/config.mk config make 15*186fc4dbSAlison Wang- board/freescale/m54418twr/u-boot.lds Linker description 16*186fc4dbSAlison Wang 17*186fc4dbSAlison Wang- arch/m68k/cpu/mcf5445x/cpu.c cpu specific code 18*186fc4dbSAlison Wang- arch/m68k/cpu/mcf5445x/cpu_init.c Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs 19*186fc4dbSAlison Wang- arch/m68k/cpu/mcf5445x/interrupts.c cpu specific interrupt support 20*186fc4dbSAlison Wang- arch/m68k/cpu/mcf5445x/speed.c system, pci, flexbus, and cpu clock 21*186fc4dbSAlison Wang- arch/m68k/cpu/mcf5445x/Makefile Makefile 22*186fc4dbSAlison Wang- arch/m68k/cpu/mcf5445x/config.mk config make 23*186fc4dbSAlison Wang- arch/m68k/cpu/mcf5445x/start.S start up assembly code 24*186fc4dbSAlison Wang 25*186fc4dbSAlison Wang- doc/README.m54418twr This readme file 26*186fc4dbSAlison Wang 27*186fc4dbSAlison Wang- drivers/net/mcffec.c ColdFire common FEC driver 28*186fc4dbSAlison Wang- drivers/net/mcfmii.c ColdFire common MII driver 29*186fc4dbSAlison Wang- drivers/serial/mcfuart.c ColdFire common UART driver 30*186fc4dbSAlison Wang 31*186fc4dbSAlison Wang- arch/m68k/include/asm/bitops.h Bit operation function export 32*186fc4dbSAlison Wang- arch/m68k/include/asm/byteorder.h Byte order functions 33*186fc4dbSAlison Wang- arch/m68k/include/asm/fec.h FEC structure and definition 34*186fc4dbSAlison Wang- arch/m68k/include/asm/global_data.h Global data structure 35*186fc4dbSAlison Wang- arch/m68k/include/asm/immap.h ColdFire specific header file and driver macros 36*186fc4dbSAlison Wang- arch/m68k/include/asm/immap_5441x.h mcf5441x specific header file 37*186fc4dbSAlison Wang- arch/m68k/include/asm/io.h io functions 38*186fc4dbSAlison Wang- arch/m68k/include/asm/m5441x.h mcf5441x specific header file 39*186fc4dbSAlison Wang- arch/m68k/include/asm/posix_types.h Posix 40*186fc4dbSAlison Wang- arch/m68k/include/asm/processor.h header file 41*186fc4dbSAlison Wang- arch/m68k/include/asm/ptrace.h Exception structure 42*186fc4dbSAlison Wang- arch/m68k/include/asm/rtc.h Realtime clock header file 43*186fc4dbSAlison Wang- arch/m68k/include/asm/string.h String function export 44*186fc4dbSAlison Wang- arch/m68k/include/asm/timer.h Timer structure and definition 45*186fc4dbSAlison Wang- arch/m68k/include/asm/types.h Data types definition 46*186fc4dbSAlison Wang- arch/m68k/include/asm/uart.h Uart structure and definition 47*186fc4dbSAlison Wang- arch/m68k/include/asm/u-boot.h u-boot structure 48*186fc4dbSAlison Wang 49*186fc4dbSAlison Wang- include/configs/M54418TWR.h Board specific configuration file 50*186fc4dbSAlison Wang 51*186fc4dbSAlison Wang- arch/m68k/lib/board.c board init function 52*186fc4dbSAlison Wang- arch/m68k/lib/cache.c 53*186fc4dbSAlison Wang- arch/m68k/lib/interrupts.c Coldfire common interrupt functions 54*186fc4dbSAlison Wang- arch/m68k/lib/time.c Timer functions (Dma timer and PIT) 55*186fc4dbSAlison Wang- arch/m68k/lib/traps.c Exception init code 56*186fc4dbSAlison Wang 57*186fc4dbSAlison Wang1 MCF5441x specific Options/Settings 58*186fc4dbSAlison Wang==================================== 59*186fc4dbSAlison Wang1.1 pre-loader is no longer suppoer in thie coldfire family 60*186fc4dbSAlison Wang 61*186fc4dbSAlison Wang1.2 Configuration settings for M54418TWR Development Board 62*186fc4dbSAlison WangCONFIG_MCF5441x -- define for all MCF5441x CPUs 63*186fc4dbSAlison WangCONFIG_M54418 -- define for all Freescale MCF54418 CPUs 64*186fc4dbSAlison WangCONFIG_M54418TWR -- define for M54418TWR board 65*186fc4dbSAlison Wang 66*186fc4dbSAlison WangCONFIG_MCFUART -- define to use common CF Uart driver 67*186fc4dbSAlison WangCONFIG_SYS_UART_PORT -- define UART port number, start with 0, 1 and 2 68*186fc4dbSAlison WangCONFIG_BAUDRATE -- define UART baudrate 69*186fc4dbSAlison Wang 70*186fc4dbSAlison WangCONFIG_MCFFEC -- define to use common CF FEC driver 71*186fc4dbSAlison WangCONFIG_MII -- enable to use MII driver 72*186fc4dbSAlison WangCONFIG_SYS_DISCOVER_PHY -- enable PHY discovery 73*186fc4dbSAlison WangCONFIG_SYS_RX_ETH_BUFFER -- Set FEC Receive buffer 74*186fc4dbSAlison WangCONFIG_SYS_FAULT_ECHO_LINK_DOWN -- 75*186fc4dbSAlison WangCONFIG_SYS_FEC0_PINMUX -- Set FEC0 Pin configuration 76*186fc4dbSAlison WangCONFIG_SYS_FEC1_PINMUX -- Set FEC1 Pin configuration 77*186fc4dbSAlison WangCONFIG_SYS_FEC0_MIIBASE -- Set FEC0 MII base register 78*186fc4dbSAlison WangCONFIG_SYS_FEC1_MIIBASE -- Set FEC0 MII base register 79*186fc4dbSAlison WangMCFFEC_TOUT_LOOP -- set FEC timeout loop 80*186fc4dbSAlison WangCONFIG_HAS_ETH1 -- define to enable second FEC in u-boot 81*186fc4dbSAlison Wang 82*186fc4dbSAlison WangCONFIG_MCFTMR -- define to use DMA timer 83*186fc4dbSAlison Wang 84*186fc4dbSAlison WangCONFIG_SYS_IMMR -- define for MBAR offset 85*186fc4dbSAlison Wang 86*186fc4dbSAlison WangCONFIG_EXTRA_CLOCK -- Enable extra clock such as vco, flexbus, pci, etc 87*186fc4dbSAlison Wang 88*186fc4dbSAlison WangCONFIG_SYS_MBAR -- define MBAR offset 89*186fc4dbSAlison Wang 90*186fc4dbSAlison WangCONFIG_MONITOR_IS_IN_RAM -- Not support 91*186fc4dbSAlison Wang 92*186fc4dbSAlison WangCONFIG_SYS_INIT_RAM_ADDR -- defines the base address of the MCF54455 internal SRAM 93*186fc4dbSAlison Wang 94*186fc4dbSAlison WangCONFIG_SYS_CSn_BASE -- defines the Chip Select Base register 95*186fc4dbSAlison WangCONFIG_SYS_CSn_MASK -- defines the Chip Select Mask register 96*186fc4dbSAlison WangCONFIG_SYS_CSn_CTRL -- defines the Chip Select Control register 97*186fc4dbSAlison Wang 98*186fc4dbSAlison WangCONFIG_SYS_SDRAM_BASE -- defines the DRAM Base 99*186fc4dbSAlison Wang 100*186fc4dbSAlison Wang2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL 101*186fc4dbSAlison Wang=========================================== 102*186fc4dbSAlison Wang2.1. System memory map: 103*186fc4dbSAlison Wang MRAM: 0x00000000-0x0003FFFF (256KB) 104*186fc4dbSAlison Wang DDR: 0x40000000-0x47FFFFFF (128MB) 105*186fc4dbSAlison Wang SRAM: 0x80000000-0x8000FFFF (64KB) 106*186fc4dbSAlison Wang IP: 0xE0000000-0xFFFFFFFF (512MB) 107*186fc4dbSAlison Wang 108*186fc4dbSAlison Wang3. COMPILATION 109*186fc4dbSAlison Wang============== 110*186fc4dbSAlison Wang3.1 To create U-Boot the gcc-4.x compiler set (ColdFire ELF version) 111*186fc4dbSAlison Wangfrom codesourcery.com was used. Download it from: 112*186fc4dbSAlison Wanghttp://www.codesourcery.com/gnu_toolchains/coldfire/download.html 113*186fc4dbSAlison Wang 114*186fc4dbSAlison Wang3.2 Compilation 115*186fc4dbSAlison Wang export CROSS_COMPILE=cross-compile-prefix 116*186fc4dbSAlison Wang cd u-boot 117*186fc4dbSAlison Wang make distclean 118*186fc4dbSAlison Wang make M54418TWR_config, or - default to spi serial flash boot, 50Mhz input clock 119*186fc4dbSAlison Wang make M54418TWR_nand_mii_config, or - default to nand flash boot, mii mode, 25Mhz input clock 120*186fc4dbSAlison Wang make M54418TWR_nand_rmii_config, or - default to nand flash boot, rmii mode, 50Mhz input clock 121*186fc4dbSAlison Wang make M54418TWR_nand_rmii_lowfreq_config, or - default to nand flash boot, rmii mode, 50Mhz input clock 122*186fc4dbSAlison Wang make M54418TWR_serial_mii_config, or - default to spi serial flash boot, 25Mhz input clock 123*186fc4dbSAlison Wang make M54418TWR_serial_rmii_config, or - default to spi serial flash boot, 50Mhz input clock 124*186fc4dbSAlison Wang make 125*186fc4dbSAlison Wang 126*186fc4dbSAlison Wang4. SCREEN DUMP 127*186fc4dbSAlison Wang============== 128*186fc4dbSAlison Wang4.1 M54418TWR Development board 129*186fc4dbSAlison Wang Boot from NAND flash (NOTE: May not show exactly the same) 130*186fc4dbSAlison Wang 131*186fc4dbSAlison WangU-Boot 2012.10-00209-g12ae1d8-dirty (Oct 18 2012 - 15:54:54) 132*186fc4dbSAlison Wang 133*186fc4dbSAlison WangCPU: Freescale MCF54418 (Mask:a3 Version:1) 134*186fc4dbSAlison Wang CPU CLK 250 MHz BUS CLK 125 MHz FLB CLK 125 MHz 135*186fc4dbSAlison Wang INP CLK 50 MHz VCO CLK 500 MHz 136*186fc4dbSAlison WangBoard: Freescale MCF54418 Tower System 137*186fc4dbSAlison WangSPI: ready 138*186fc4dbSAlison WangDRAM: 128 MiB 139*186fc4dbSAlison WangNAND: 256 MiB 140*186fc4dbSAlison WangIn: serial 141*186fc4dbSAlison WangOut: serial 142*186fc4dbSAlison WangErr: serial 143*186fc4dbSAlison WangNet: FEC0, FEC1 144*186fc4dbSAlison Wang-> pri 145*186fc4dbSAlison Wangbaudrate=115200 146*186fc4dbSAlison Wangbootargs=root=/dev/mtdblock2 rw rootfstype=jffs2 mtdparts=NAND:1M(u-boot)ro,7M(k 147*186fc4dbSAlison Wangernel)ro,-(jffs2) console=ttyS0,115200 148*186fc4dbSAlison Wangbootdelay=2 149*186fc4dbSAlison Wangeth1addr=00:e0:0c:bc:e5:61 150*186fc4dbSAlison Wangethact=FEC0 151*186fc4dbSAlison Wangethaddr=00:e0:0c:bc:e5:60 152*186fc4dbSAlison Wangfileaddr=40010000 153*186fc4dbSAlison Wangfilesize=27354 154*186fc4dbSAlison Wanggatewayip=192.168.1.1 155*186fc4dbSAlison Wanghostname=M54418TWR 156*186fc4dbSAlison Wanginpclk=50000000 157*186fc4dbSAlison Wangipaddr=192.168.1.2 158*186fc4dbSAlison Wangload=tftp ${loadaddr} ${u-boot}; 159*186fc4dbSAlison Wangloadaddr=0x40010000 160*186fc4dbSAlison Wangmem=129024k 161*186fc4dbSAlison Wangnetdev=eth0 162*186fc4dbSAlison Wangnetmask=255.255.255.0 163*186fc4dbSAlison Wangprog=nand device 0;nand erase 0 40000;nb_update ${loadaddr} ${filesize};save 164*186fc4dbSAlison Wangserverip=192.168.1.1 165*186fc4dbSAlison Wangstderr=serial 166*186fc4dbSAlison Wangstdin=serial 167*186fc4dbSAlison Wangstdout=serial 168*186fc4dbSAlison Wangu-boot=u-boot.bin 169*186fc4dbSAlison Wangupd=run load; run prog 170*186fc4dbSAlison Wang 171*186fc4dbSAlison WangEnvironment size: 653/131068 bytes 172*186fc4dbSAlison Wang-> bdinfo 173*186fc4dbSAlison Wangmemstart = 0x40000000 174*186fc4dbSAlison Wangmemsize = 0x08000000 175*186fc4dbSAlison Wangflashstart = 0x00000000 176*186fc4dbSAlison Wangflashsize = 0x00000000 177*186fc4dbSAlison Wangflashoffset = 0x00000000 178*186fc4dbSAlison Wangsramstart = 0x80000000 179*186fc4dbSAlison Wangsramsize = 0x00010000 180*186fc4dbSAlison Wangmbar = 0xFC000000 181*186fc4dbSAlison Wangcpufreq = 250 MHz 182*186fc4dbSAlison Wangbusfreq = 125 MHz 183*186fc4dbSAlison Wangflbfreq = 125 MHz 184*186fc4dbSAlison Wanginpfreq = 50 MHz 185*186fc4dbSAlison Wangvcofreq = 500 MHz 186*186fc4dbSAlison Wangethaddr = 00:e0:0c:bc:e5:60 187*186fc4dbSAlison Wangeth1addr = 00:e0:0c:bc:e5:61 188*186fc4dbSAlison Wangip_addr = 192.168.1.2 189*186fc4dbSAlison Wangbaudrate = 115200 bps 190*186fc4dbSAlison Wang-> help 191*186fc4dbSAlison Wang? - alias for 'help' 192*186fc4dbSAlison Wangbase - print or set address offset 193*186fc4dbSAlison Wangbdinfo - print Board Info structure 194*186fc4dbSAlison Wangboot - boot default, i.e., run 'bootcmd' 195*186fc4dbSAlison Wangbootd - boot default, i.e., run 'bootcmd' 196*186fc4dbSAlison Wangbootelf - Boot from an ELF image in memory 197*186fc4dbSAlison Wangbootm - boot application image from memory 198*186fc4dbSAlison Wangbootp - boot image via network using BOOTP/TFTP protocol 199*186fc4dbSAlison Wangbootvx - Boot vxWorks from an ELF image 200*186fc4dbSAlison Wangcmp - memory compare 201*186fc4dbSAlison Wangconinfo - print console devices and information 202*186fc4dbSAlison Wangcp - memory copy 203*186fc4dbSAlison Wangcrc32 - checksum calculation 204*186fc4dbSAlison Wangdcache - enable or disable data cache 205*186fc4dbSAlison Wangdhcp - boot image via network using DHCP/TFTP protocol 206*186fc4dbSAlison Wangecho - echo args to console 207*186fc4dbSAlison Wangeditenv - edit environment variable 208*186fc4dbSAlison Wangenv - environment handling commands 209*186fc4dbSAlison Wangexit - exit script 210*186fc4dbSAlison Wangfalse - do nothing, unsuccessfully 211*186fc4dbSAlison Wanggo - start application at address 'addr' 212*186fc4dbSAlison Wanghelp - print command description/usage 213*186fc4dbSAlison Wangicache - enable or disable instruction cache 214*186fc4dbSAlison Wangiminfo - print header information for application image 215*186fc4dbSAlison Wangimxtract- extract a part of a multi-image 216*186fc4dbSAlison Wangitest - return true/false on integer compare 217*186fc4dbSAlison Wangloop - infinite loop on address range 218*186fc4dbSAlison Wangmd - memory display 219*186fc4dbSAlison Wangmdio - MDIO utility commands 220*186fc4dbSAlison Wangmii - MII utility commands 221*186fc4dbSAlison Wangmm - memory modify (auto-incrementing address) 222*186fc4dbSAlison Wangmtest - simple RAM read/write test 223*186fc4dbSAlison Wangmw - memory write (fill) 224*186fc4dbSAlison Wangnand - NAND sub-system 225*186fc4dbSAlison Wangnb_update- Nand boot update program 226*186fc4dbSAlison Wangnboot - boot from NAND device 227*186fc4dbSAlison Wangnfs - boot image via network using NFS protocol 228*186fc4dbSAlison Wangnm - memory modify (constant address) 229*186fc4dbSAlison Wangping - send ICMP ECHO_REQUEST to network host 230*186fc4dbSAlison Wangprintenv- print environment variables 231*186fc4dbSAlison Wangreginfo - print register information 232*186fc4dbSAlison Wangreset - Perform RESET of the CPU 233*186fc4dbSAlison Wangrun - run commands in an environment variable 234*186fc4dbSAlison Wangsaveenv - save environment variables to persistent storage 235*186fc4dbSAlison Wangsetenv - set environment variables 236*186fc4dbSAlison Wangsf - SPI flash sub-system 237*186fc4dbSAlison Wangshowvar - print local hushshell variables 238*186fc4dbSAlison Wangsleep - delay execution for some time 239*186fc4dbSAlison Wangsource - run script from memory 240*186fc4dbSAlison Wangsspi - SPI utility command 241*186fc4dbSAlison Wangtest - minimal test like /bin/sh 242*186fc4dbSAlison Wangtftpboot- boot image via network using TFTP protocol 243*186fc4dbSAlison Wangtrue - do nothing, successfully 244*186fc4dbSAlison Wangversion - print monitor, compiler and linker version 245