Freescale MCF53017EVB ColdFire Development Board
================================================

TsiChung Liew(Tsi-Chung.Liew@freescale.com)
Created 10/22/08
===========================================


Changed files:
==============

- board/freescale/m53017evb/m53017evb.c	Dram setup
- board/freescale/m53017evb/mii.c	Mii access
- board/freescale/m53017evb/Makefile	Makefile
- board/freescale/m53017evb/config.mk	config make
- board/freescale/m53017evb/u-boot.lds	Linker description

- cpu/mcf532x/cpu.c			cpu specific code
- cpu/mcf532x/cpu_init.c		FBCS, Mux pins, icache and RTC extra regs
- cpu/mcf532x/interrupts.c		cpu specific interrupt support
- cpu/mcf532x/speed.c			system, flexbus, and cpu clock
- cpu/mcf532x/Makefile			Makefile
- cpu/mcf532x/config.mk			config make
- cpu/mcf532x/start.S			start up assembly code

- doc/README.m53017evb			This readme file

- drivers/net/mcffec.c			ColdFire common FEC driver
- drivers/net/mcfmii.c			ColdFire common Mii driver
- 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/fec.h		FEC 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_5301x.h	mcf5301x specific header file
- include/asm-m68k/io.h			io functions
- include/asm-m68k/m532x.h		mcf5301x 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/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/M53017EVB.h		Board specific configuration file

- lib_m68k/board.c			board init function
- lib_m68k/cache.c
- lib_m68k/interrupts			Coldfire common interrupt functions
- lib_m68k/m68k_linux.c
- lib_m68k/time.c			Timer functions (Dma timer and PIT)
- lib_m68k/traps.c			Exception init code

1 MCF5301x specific Options/Settings
====================================
1.1 pre-loader is no longer suppoer in thie coldfire family

1.2 Configuration settings for M53017EVB Development Board
CONFIG_MCF5301x			-- define for all MCF5301x CPUs
CONFIG_M53015			-- define for MCF53015 CPUs
CONFIG_M53017EVB		-- define for M53017EVB 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_MCFFEC			-- define to use common CF FEC driver
CONFIG_NET_MULTI		-- define to use multi FEC in u-boot
CONFIG_MII			-- enable to use MII driver
CONFIG_CF_DOMII			-- enable to use MII feature in cmd_mii.c
CONFIG_SYS_DISCOVER_PHY		-- enable PHY discovery
CONFIG_SYS_RX_ETH_BUFFER	-- Set FEC Receive buffer
CONFIG_SYS_FAULT_ECHO_LINK_DOWN	--
CONFIG_SYS_FEC0_PINMUX		-- Set FEC0 Pin configuration
CONFIG_SYS_FEC0_MIIBASE		-- Set FEC0 MII base register
MCFFEC_TOUT_LOOP		-- set FEC timeout loop

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 MCF5301x 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

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:		0xFC000000-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 (256MB)
	SRAM:		0x80000000-0x80007FFF (32KB)
	IP:		0xFC000000-0xFC0FFFFF (64KB)

3. COMPILATION
==============
3.1	To create U-Boot the gcc-4.x-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
   make distclean
   make M53017EVB_config
   make

4. SCREEN DUMP
==============
4.1 M53017EVB Development board
    (NOTE: May not show exactly the same)

U-Boot 2008.10 (Oct 22 2007 - 11:07:57)

CPU:   Freescale MCF53015 (Mask:76 Version:0)
       CPU CLK 240 Mhz BUS CLK 80 Mhz
Board: Freescale M53017EVB
I2C:   ready
DRAM:  64 MB
FLASH: 16 MB
In:    serial
Out:   serial
Err:   serial
NAND:  16 MiB
Net:   FEC0, FEC1
-> print
bootdelay=1
baudrate=115200
ethaddr=00:e0:0c:bc:e5:60
hostname=M53017EVB
netdev=eth0
loadaddr=40010000
u-boot=u-boot.bin
load=tftp ${loadaddr) ${u-boot}
upd=run load; run prog
prog=prot off 0 3ffff;era 0 3ffff;cp.b ${loadaddr} 0 ${filesize};save
gatewayip=192.168.1.1
netmask=255.255.255.0
ipaddr=192.168.1.3
serverip=192.168.1.2
stdin=serial
stdout=serial
stderr=serial
mem=65024k

Environment size: 437/4092 bytes
->
