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

- board/freescale/m52277evb/README	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_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_SYS_I2C_FSL	-- define to use FSL common I2C driver
CONFIG_SYS_I2C_SOFT	-- 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
->
