Freescale MCF52277EVB ColdFire Development Board ================================================ TsiChung Liew(Tsi-Chung.Liew@freescale.com) Created Jan 8, 2008 =========================================== Changed files: ============== - board/freescale/m52277evb/m52277evb.c Dram setup - board/freescale/m52277evb/Makefile Makefile - board/freescale/m52277evb/config.mk config make - board/freescale/m52277evb/u-boot.lds Linker description - arch/m68k/cpu/mcf5227x/cpu.c cpu specific code - arch/m68k/cpu/mcf5227x/cpu_init.c FBCS, Mux pins, icache and RTC extra regs - arch/m68k/cpu/mcf5227x/interrupts.c cpu specific interrupt support - arch/m68k/cpu/mcf5227x/speed.c system, flexbus, and cpu clock - arch/m68k/cpu/mcf5227x/Makefile Makefile - arch/m68k/cpu/mcf5227x/config.mk config make - arch/m68k/cpu/mcf5227x/start.S start up assembly code - doc/README.m52277evb This readme file - drivers/serial/mcfuart.c ColdFire common UART driver - drivers/rtc/mcfrtc.c Realtime clock Driver - include/asm-m68k/bitops.h Bit operation function export - include/asm-m68k/byteorder.h Byte order functions - include/asm-m68k/crossbar.h CrossBar structure and definition - include/asm-m68k/dspi.h DSPI structure and definition - include/asm-m68k/edma.h eDMA structure and definition - include/asm-m68k/flexbus.h FlexBus structure and definition - include/asm-m68k/fsl_i2c.h I2C structure and definition - include/asm-m68k/global_data.h Global data structure - include/asm-m68k/immap.h ColdFire specific header file and driver macros - include/asm-m68k/immap_5227x.h mcf5227x specific header file - include/asm-m68k/io.h io functions - include/asm-m68k/lcd.h LCD structure and definition - include/asm-m68k/m5227x.h mcf5227x specific header file - include/asm-m68k/posix_types.h Posix - include/asm-m68k/processor.h header file - include/asm-m68k/ptrace.h Exception structure - include/asm-m68k/rtc.h Realtime clock header file - include/asm-m68k/ssi.h SSI structure and definition - include/asm-m68k/string.h String function export - include/asm-m68k/timer.h Timer structure and definition - include/asm-m68k/types.h Data types definition - include/asm-m68k/uart.h Uart structure and definition - include/asm-m68k/u-boot.h u-boot structure - include/configs/M52277EVB.h Board specific configuration file - arch/m68k/lib/board.c board init function - arch/m68k/lib/cache.c - arch/m68k/lib/interrupts Coldfire common interrupt functions - arch/m68k/lib/m68k_linux.c - arch/m68k/lib/time.c Timer functions (Dma timer and PIT) - arch/m68k/lib/traps.c Exception init code 1 MCF52277 specific Options/Settings ==================================== 1.1 pre-loader is no longer suppoer in this coldfire family 1.2 Configuration settings for M52277EVB Development Board CONFIG_MCF5227x -- define for all MCF5227x CPUs CONFIG_M52277 -- define for all Freescale MCF52277 CPUs CONFIG_M52277EVB -- define for M52277EVB board CONFIG_MCFUART -- define to use common CF Uart driver CONFIG_SYS_UART_PORT -- define UART port number, start with 0, 1 and 2 CONFIG_BAUDRATE -- define UART baudrate CONFIG_MCFRTC -- define to use common CF RTC driver CONFIG_SYS_MCFRTC_BASE -- provide base address for RTC in immap.h CONFIG_SYS_RTC_OSCILLATOR -- define RTC clock frequency RTC_DEBUG -- define to show RTC debug message CONFIG_CMD_DATE -- enable to use date feature in u-boot CONFIG_MCFTMR -- define to use DMA timer CONFIG_MCFPIT -- define to use PIT timer CONFIG_FSL_I2C -- define to use FSL common I2C driver CONFIG_HARD_I2C -- define for I2C hardware support CONFIG_SOFT_I2C -- define for I2C bit-banged CONFIG_SYS_I2C_SPEED -- define for I2C speed CONFIG_SYS_I2C_SLAVE -- define for I2C slave address CONFIG_SYS_I2C_OFFSET -- define for I2C base address offset CONFIG_SYS_IMMR -- define for MBAR offset CONFIG_SYS_MBAR -- define MBAR offset CONFIG_MONITOR_IS_IN_RAM -- Not support CONFIG_SYS_INIT_RAM_ADDR -- defines the base address of the MCF52277 internal SRAM CONFIG_SYS_CSn_BASE -- defines the Chip Select Base register CONFIG_SYS_CSn_MASK -- defines the Chip Select Mask register CONFIG_SYS_CSn_CTRL -- defines the Chip Select Control register CONFIG_SYS_SDRAM_BASE -- defines the DRAM Base CONFIG_LCD and CONFIG_CMD_USB are not supported in this current u-boot, update will be provided at later time 2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL =========================================== 2.1. System memory map: Flash: 0x00000000-0x3FFFFFFF (1024MB) DDR: 0x40000000-0x7FFFFFFF (1024MB) SRAM: 0x80000000-0x8FFFFFFF (256MB) IP: 0xF0000000-0xFFFFFFFF (256MB) 2.2. For the initial bringup, we adopted a consistent memory scheme between u-boot and linux kernel, you can customize it based on your system requirements: Flash0: 0x00000000-0x00FFFFFF (16MB) DDR: 0x40000000-0x4FFFFFFF (64MB) SRAM: 0x80000000-0x80007FFF (32KB) IP: 0xFC000000-0xFC0FFFFF (64KB) 3. COMPILATION ============== 3.1 To create U-Boot the gcc-4.1-xx compiler set (ColdFire ELF or uClinux version) from codesourcery.com was used. Download it from: http://www.codesourcery.com/gnu_toolchains/coldfire/download.html 3.2 Compilation export CROSS_COMPILE=cross-compile-prefix cd u-boot-1.x.x make distclean make M52277EVB_config make 4. SCREEN DUMP ============== 4.1 M52277EVB Development board (NOTE: May not show exactly the same) U-Boot 1.3.1 (Jan 8 2008 - 12:44:08) CPU: Freescale MCF52277 (Mask:6c Version:0) CPU CLK 160 Mhz BUS CLK 80 Mhz FLB CLK 80 MHZ INP CLK 16 Mhz VCO CLK 480 Mhz Board: Freescale 52277 EVB I2C: ready DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial -> print baudrate=115200 hostname=M52277EVB inpclk=16000000 loadaddr=(0x40000000 + 0x10000) load=tftp ${loadaddr) ${u-boot} upd=run load; run prog prog=prot off 0 3ffff;era 0 3ffff;cp.b ${loadaddr} 0 ${filesize};save u-boot=u-boot.bin stdin=serial stdout=serial stderr=serial mem=65024k Environment size: 280/32764 bytes -> bdinfo memstart = 0x40000000 memsize = 0x04000000 flashstart = 0x00000000 flashsize = 0x01000000 flashoffset = 0x00000000 sramstart = 0x80000000 sramsize = 0x00008000 mbar = 0xFC000000 busfreq = 80 MHz flbfreq = 80 Mhz inpfreq = 16 Mhz vcofreq = 480 Mhz baudrate = 115200 bps -> -> help ? - alias for 'help' base - print or set address offset bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootelf - Boot from an ELF image in memory bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol bootvx - Boot vxWorks from an ELF image cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation date - get/set/reset date & time dcache - enable or disable data cache echo - echo args to console erase - erase FLASH memory flinfo - print FLASH memory information go - start application at address 'addr' help - print online help i2c - I2C sub-system icache - enable or disable instruction cache iminfo - print header information for application image imls - list all images found in flash itest - return true/false on integer compare loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range ls - list files in a directory (default /) md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nm - memory modify (constant address) ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables protect - enable or disable FLASH write protection reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage setenv - set environment variables sleep - delay execution for some time source - run script from memory version - print monitor version ->