1*702e6014SWolfgang DenkFreescale MCF52277EVB ColdFire Development Board 2*702e6014SWolfgang Denk================================================ 3*702e6014SWolfgang Denk 4*702e6014SWolfgang DenkTsiChung Liew(Tsi-Chung.Liew@freescale.com) 5*702e6014SWolfgang DenkCreated Jan 8, 2008 6*702e6014SWolfgang Denk=========================================== 7*702e6014SWolfgang Denk 8*702e6014SWolfgang Denk 9*702e6014SWolfgang DenkChanged files: 10*702e6014SWolfgang Denk============== 11*702e6014SWolfgang Denk 12*702e6014SWolfgang Denk- board/freescale/m52277evb/m52277evb.c Dram setup 13*702e6014SWolfgang Denk- board/freescale/m52277evb/Makefile Makefile 14*702e6014SWolfgang Denk- board/freescale/m52277evb/config.mk config make 15*702e6014SWolfgang Denk- board/freescale/m52277evb/u-boot.lds Linker description 16*702e6014SWolfgang Denk 17*702e6014SWolfgang Denk- arch/m68k/cpu/mcf5227x/cpu.c cpu specific code 18*702e6014SWolfgang Denk- arch/m68k/cpu/mcf5227x/cpu_init.c FBCS, Mux pins, icache and RTC extra regs 19*702e6014SWolfgang Denk- arch/m68k/cpu/mcf5227x/interrupts.c cpu specific interrupt support 20*702e6014SWolfgang Denk- arch/m68k/cpu/mcf5227x/speed.c system, flexbus, and cpu clock 21*702e6014SWolfgang Denk- arch/m68k/cpu/mcf5227x/Makefile Makefile 22*702e6014SWolfgang Denk- arch/m68k/cpu/mcf5227x/config.mk config make 23*702e6014SWolfgang Denk- arch/m68k/cpu/mcf5227x/start.S start up assembly code 24*702e6014SWolfgang Denk 25*702e6014SWolfgang Denk- doc/README.m52277evb This readme file 26*702e6014SWolfgang Denk 27*702e6014SWolfgang Denk- drivers/serial/mcfuart.c ColdFire common UART driver 28*702e6014SWolfgang Denk- drivers/rtc/mcfrtc.c Realtime clock Driver 29*702e6014SWolfgang Denk 30*702e6014SWolfgang Denk- include/asm-m68k/bitops.h Bit operation function export 31*702e6014SWolfgang Denk- include/asm-m68k/byteorder.h Byte order functions 32*702e6014SWolfgang Denk- include/asm-m68k/crossbar.h CrossBar structure and definition 33*702e6014SWolfgang Denk- include/asm-m68k/dspi.h DSPI structure and definition 34*702e6014SWolfgang Denk- include/asm-m68k/edma.h eDMA structure and definition 35*702e6014SWolfgang Denk- include/asm-m68k/flexbus.h FlexBus structure and definition 36*702e6014SWolfgang Denk- include/asm-m68k/fsl_i2c.h I2C structure and definition 37*702e6014SWolfgang Denk- include/asm-m68k/global_data.h Global data structure 38*702e6014SWolfgang Denk- include/asm-m68k/immap.h ColdFire specific header file and driver macros 39*702e6014SWolfgang Denk- include/asm-m68k/immap_5227x.h mcf5227x specific header file 40*702e6014SWolfgang Denk- include/asm-m68k/io.h io functions 41*702e6014SWolfgang Denk- include/asm-m68k/lcd.h LCD structure and definition 42*702e6014SWolfgang Denk- include/asm-m68k/m5227x.h mcf5227x specific header file 43*702e6014SWolfgang Denk- include/asm-m68k/posix_types.h Posix 44*702e6014SWolfgang Denk- include/asm-m68k/processor.h header file 45*702e6014SWolfgang Denk- include/asm-m68k/ptrace.h Exception structure 46*702e6014SWolfgang Denk- include/asm-m68k/rtc.h Realtime clock header file 47*702e6014SWolfgang Denk- include/asm-m68k/ssi.h SSI structure and definition 48*702e6014SWolfgang Denk- include/asm-m68k/string.h String function export 49*702e6014SWolfgang Denk- include/asm-m68k/timer.h Timer structure and definition 50*702e6014SWolfgang Denk- include/asm-m68k/types.h Data types definition 51*702e6014SWolfgang Denk- include/asm-m68k/uart.h Uart structure and definition 52*702e6014SWolfgang Denk- include/asm-m68k/u-boot.h u-boot structure 53*702e6014SWolfgang Denk 54*702e6014SWolfgang Denk- include/configs/M52277EVB.h Board specific configuration file 55*702e6014SWolfgang Denk 56*702e6014SWolfgang Denk- arch/m68k/lib/board.c board init function 57*702e6014SWolfgang Denk- arch/m68k/lib/cache.c 58*702e6014SWolfgang Denk- arch/m68k/lib/interrupts Coldfire common interrupt functions 59*702e6014SWolfgang Denk- arch/m68k/lib/m68k_linux.c 60*702e6014SWolfgang Denk- arch/m68k/lib/time.c Timer functions (Dma timer and PIT) 61*702e6014SWolfgang Denk- arch/m68k/lib/traps.c Exception init code 62*702e6014SWolfgang Denk 63*702e6014SWolfgang Denk1 MCF52277 specific Options/Settings 64*702e6014SWolfgang Denk==================================== 65*702e6014SWolfgang Denk1.1 pre-loader is no longer suppoer in this coldfire family 66*702e6014SWolfgang Denk 67*702e6014SWolfgang Denk1.2 Configuration settings for M52277EVB Development Board 68*702e6014SWolfgang DenkCONFIG_MCF5227x -- define for all MCF5227x CPUs 69*702e6014SWolfgang DenkCONFIG_M52277 -- define for all Freescale MCF52277 CPUs 70*702e6014SWolfgang DenkCONFIG_M52277EVB -- define for M52277EVB board 71*702e6014SWolfgang Denk 72*702e6014SWolfgang DenkCONFIG_MCFUART -- define to use common CF Uart driver 73*702e6014SWolfgang DenkCONFIG_SYS_UART_PORT -- define UART port number, start with 0, 1 and 2 74*702e6014SWolfgang DenkCONFIG_BAUDRATE -- define UART baudrate 75*702e6014SWolfgang Denk 76*702e6014SWolfgang DenkCONFIG_MCFRTC -- define to use common CF RTC driver 77*702e6014SWolfgang DenkCONFIG_SYS_MCFRTC_BASE -- provide base address for RTC in immap.h 78*702e6014SWolfgang DenkCONFIG_SYS_RTC_OSCILLATOR -- define RTC clock frequency 79*702e6014SWolfgang DenkRTC_DEBUG -- define to show RTC debug message 80*702e6014SWolfgang DenkCONFIG_CMD_DATE -- enable to use date feature in u-boot 81*702e6014SWolfgang Denk 82*702e6014SWolfgang DenkCONFIG_MCFTMR -- define to use DMA timer 83*702e6014SWolfgang DenkCONFIG_MCFPIT -- define to use PIT timer 84*702e6014SWolfgang Denk 85*702e6014SWolfgang DenkCONFIG_FSL_I2C -- define to use FSL common I2C driver 86*702e6014SWolfgang DenkCONFIG_HARD_I2C -- define for I2C hardware support 87*702e6014SWolfgang DenkCONFIG_SOFT_I2C -- define for I2C bit-banged 88*702e6014SWolfgang DenkCONFIG_SYS_I2C_SPEED -- define for I2C speed 89*702e6014SWolfgang DenkCONFIG_SYS_I2C_SLAVE -- define for I2C slave address 90*702e6014SWolfgang DenkCONFIG_SYS_I2C_OFFSET -- define for I2C base address offset 91*702e6014SWolfgang DenkCONFIG_SYS_IMMR -- define for MBAR offset 92*702e6014SWolfgang Denk 93*702e6014SWolfgang DenkCONFIG_SYS_MBAR -- define MBAR offset 94*702e6014SWolfgang Denk 95*702e6014SWolfgang DenkCONFIG_MONITOR_IS_IN_RAM -- Not support 96*702e6014SWolfgang Denk 97*702e6014SWolfgang DenkCONFIG_SYS_INIT_RAM_ADDR -- defines the base address of the MCF52277 internal SRAM 98*702e6014SWolfgang Denk 99*702e6014SWolfgang DenkCONFIG_SYS_CSn_BASE -- defines the Chip Select Base register 100*702e6014SWolfgang DenkCONFIG_SYS_CSn_MASK -- defines the Chip Select Mask register 101*702e6014SWolfgang DenkCONFIG_SYS_CSn_CTRL -- defines the Chip Select Control register 102*702e6014SWolfgang Denk 103*702e6014SWolfgang DenkCONFIG_SYS_SDRAM_BASE -- defines the DRAM Base 104*702e6014SWolfgang Denk 105*702e6014SWolfgang DenkCONFIG_LCD and CONFIG_CMD_USB are not supported in this current u-boot, 106*702e6014SWolfgang Denkupdate will be provided at later time 107*702e6014SWolfgang Denk 108*702e6014SWolfgang Denk2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL 109*702e6014SWolfgang Denk=========================================== 110*702e6014SWolfgang Denk2.1. System memory map: 111*702e6014SWolfgang Denk Flash: 0x00000000-0x3FFFFFFF (1024MB) 112*702e6014SWolfgang Denk DDR: 0x40000000-0x7FFFFFFF (1024MB) 113*702e6014SWolfgang Denk SRAM: 0x80000000-0x8FFFFFFF (256MB) 114*702e6014SWolfgang Denk IP: 0xF0000000-0xFFFFFFFF (256MB) 115*702e6014SWolfgang Denk 116*702e6014SWolfgang Denk2.2. For the initial bringup, we adopted a consistent memory scheme between u-boot and 117*702e6014SWolfgang Denk linux kernel, you can customize it based on your system requirements: 118*702e6014SWolfgang Denk Flash0: 0x00000000-0x00FFFFFF (16MB) 119*702e6014SWolfgang Denk 120*702e6014SWolfgang Denk DDR: 0x40000000-0x4FFFFFFF (64MB) 121*702e6014SWolfgang Denk SRAM: 0x80000000-0x80007FFF (32KB) 122*702e6014SWolfgang Denk IP: 0xFC000000-0xFC0FFFFF (64KB) 123*702e6014SWolfgang Denk 124*702e6014SWolfgang Denk3. COMPILATION 125*702e6014SWolfgang Denk============== 126*702e6014SWolfgang Denk3.1 To create U-Boot the gcc-4.1-xx compiler set (ColdFire ELF or 127*702e6014SWolfgang DenkuClinux version) from codesourcery.com was used. Download it from: 128*702e6014SWolfgang Denkhttp://www.codesourcery.com/gnu_toolchains/coldfire/download.html 129*702e6014SWolfgang Denk 130*702e6014SWolfgang Denk3.2 Compilation 131*702e6014SWolfgang Denk export CROSS_COMPILE=cross-compile-prefix 132*702e6014SWolfgang Denk cd u-boot-1.x.x 133*702e6014SWolfgang Denk make distclean 134*702e6014SWolfgang Denk make M52277EVB_config 135*702e6014SWolfgang Denk make 136*702e6014SWolfgang Denk 137*702e6014SWolfgang Denk4. SCREEN DUMP 138*702e6014SWolfgang Denk============== 139*702e6014SWolfgang Denk4.1 M52277EVB Development board 140*702e6014SWolfgang Denk (NOTE: May not show exactly the same) 141*702e6014SWolfgang Denk 142*702e6014SWolfgang DenkU-Boot 1.3.1 (Jan 8 2008 - 12:44:08) 143*702e6014SWolfgang Denk 144*702e6014SWolfgang DenkCPU: Freescale MCF52277 (Mask:6c Version:0) 145*702e6014SWolfgang Denk CPU CLK 160 Mhz BUS CLK 80 Mhz FLB CLK 80 MHZ 146*702e6014SWolfgang Denk INP CLK 16 Mhz VCO CLK 480 Mhz 147*702e6014SWolfgang DenkBoard: Freescale 52277 EVB 148*702e6014SWolfgang DenkI2C: ready 149*702e6014SWolfgang DenkDRAM: 64 MB 150*702e6014SWolfgang DenkFLASH: 16 MB 151*702e6014SWolfgang DenkIn: serial 152*702e6014SWolfgang DenkOut: serial 153*702e6014SWolfgang DenkErr: serial 154*702e6014SWolfgang Denk-> print 155*702e6014SWolfgang Denkbaudrate=115200 156*702e6014SWolfgang Denkhostname=M52277EVB 157*702e6014SWolfgang Denkinpclk=16000000 158*702e6014SWolfgang Denkloadaddr=(0x40000000 + 0x10000) 159*702e6014SWolfgang Denkload=tftp ${loadaddr) ${u-boot} 160*702e6014SWolfgang Denkupd=run load; run prog 161*702e6014SWolfgang Denkprog=prot off 0 3ffff;era 0 3ffff;cp.b ${loadaddr} 0 ${filesize};save 162*702e6014SWolfgang Denku-boot=u-boot.bin 163*702e6014SWolfgang Denkstdin=serial 164*702e6014SWolfgang Denkstdout=serial 165*702e6014SWolfgang Denkstderr=serial 166*702e6014SWolfgang Denkmem=65024k 167*702e6014SWolfgang Denk 168*702e6014SWolfgang DenkEnvironment size: 280/32764 bytes 169*702e6014SWolfgang Denk-> bdinfo 170*702e6014SWolfgang Denkmemstart = 0x40000000 171*702e6014SWolfgang Denkmemsize = 0x04000000 172*702e6014SWolfgang Denkflashstart = 0x00000000 173*702e6014SWolfgang Denkflashsize = 0x01000000 174*702e6014SWolfgang Denkflashoffset = 0x00000000 175*702e6014SWolfgang Denksramstart = 0x80000000 176*702e6014SWolfgang Denksramsize = 0x00008000 177*702e6014SWolfgang Denkmbar = 0xFC000000 178*702e6014SWolfgang Denkbusfreq = 80 MHz 179*702e6014SWolfgang Denkflbfreq = 80 Mhz 180*702e6014SWolfgang Denkinpfreq = 16 Mhz 181*702e6014SWolfgang Denkvcofreq = 480 Mhz 182*702e6014SWolfgang Denk 183*702e6014SWolfgang Denkbaudrate = 115200 bps 184*702e6014SWolfgang Denk-> 185*702e6014SWolfgang Denk-> help 186*702e6014SWolfgang Denk? - alias for 'help' 187*702e6014SWolfgang Denkbase - print or set address offset 188*702e6014SWolfgang Denkbdinfo - print Board Info structure 189*702e6014SWolfgang Denkboot - boot default, i.e., run 'bootcmd' 190*702e6014SWolfgang Denkbootd - boot default, i.e., run 'bootcmd' 191*702e6014SWolfgang Denkbootelf - Boot from an ELF image in memory 192*702e6014SWolfgang Denkbootm - boot application image from memory 193*702e6014SWolfgang Denkbootp - boot image via network using BootP/TFTP protocol 194*702e6014SWolfgang Denkbootvx - Boot vxWorks from an ELF image 195*702e6014SWolfgang Denkcmp - memory compare 196*702e6014SWolfgang Denkconinfo - print console devices and information 197*702e6014SWolfgang Denkcp - memory copy 198*702e6014SWolfgang Denkcrc32 - checksum calculation 199*702e6014SWolfgang Denkdate - get/set/reset date & time 200*702e6014SWolfgang Denkdcache - enable or disable data cache 201*702e6014SWolfgang Denkecho - echo args to console 202*702e6014SWolfgang Denkerase - erase FLASH memory 203*702e6014SWolfgang Denkflinfo - print FLASH memory information 204*702e6014SWolfgang Denkgo - start application at address 'addr' 205*702e6014SWolfgang Denkhelp - print online help 206*702e6014SWolfgang Denki2c - I2C sub-system 207*702e6014SWolfgang Denkicache - enable or disable instruction cache 208*702e6014SWolfgang Denkiminfo - print header information for application image 209*702e6014SWolfgang Denkimls - list all images found in flash 210*702e6014SWolfgang Denkitest - return true/false on integer compare 211*702e6014SWolfgang Denkloadb - load binary file over serial line (kermit mode) 212*702e6014SWolfgang Denkloads - load S-Record file over serial line 213*702e6014SWolfgang Denkloady - load binary file over serial line (ymodem mode) 214*702e6014SWolfgang Denkloop - infinite loop on address range 215*702e6014SWolfgang Denkls - list files in a directory (default /) 216*702e6014SWolfgang Denkmd - memory display 217*702e6014SWolfgang Denkmm - memory modify (auto-incrementing) 218*702e6014SWolfgang Denkmtest - simple RAM test 219*702e6014SWolfgang Denkmw - memory write (fill) 220*702e6014SWolfgang Denknm - memory modify (constant address) 221*702e6014SWolfgang Denkping - send ICMP ECHO_REQUEST to network host 222*702e6014SWolfgang Denkprintenv- print environment variables 223*702e6014SWolfgang Denkprotect - enable or disable FLASH write protection 224*702e6014SWolfgang Denkreset - Perform RESET of the CPU 225*702e6014SWolfgang Denkrun - run commands in an environment variable 226*702e6014SWolfgang Denksaveenv - save environment variables to persistent storage 227*702e6014SWolfgang Denksetenv - set environment variables 228*702e6014SWolfgang Denksleep - delay execution for some time 229*702e6014SWolfgang Denksource - run script from memory 230*702e6014SWolfgang Denkversion - print monitor version 231*702e6014SWolfgang Denk-> 232