Freescale MCF5475EVB ColdFire Development Board
================================================

TsiChung Liew(Tsi-Chung.Liew@freescale.com)
Created Jan 08, 2008
===========================================


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

- board/freescale/m547xevb/m547xevb.c	Dram setup, IDE pre init, and PCI init
- board/freescale/m547xevb/mii.c	MII init
- board/freescale/m547xevb/Makefile	Makefile
- board/freescale/m547xevb/config.mk	config make
- board/freescale/m547xevb/u-boot.lds	Linker description

- cpu/mcf547x_8x/cpu.c			cpu specific code
- cpu/mcf547x_8x/cpu_init.c		Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs
- cpu/mcf547x_8x/interrupts.c		cpu specific interrupt support
- cpu/mcf547x_8x/slicetimer.c		Timer support
- cpu/mcf547x_8x/speed.c		system, pci, flexbus, and cpu clock
- cpu/mcf547x_8x/Makefile		Makefile
- cpu/mcf547x_8x/config.mk		config make
- cpu/mcf547x_8x/start.S		start up assembly code

- doc/README.m5475evb			This readme file

- drivers/dma/MCD_dmaApi.c		DMA API functions
- drivers/dma/MCD_tasks.c		DMA Tasks
- drivers/dma/MCD_tasksInit.c		DMA Tasks Init
- drivers/net/fsl_mcdmafec.c		ColdFire common DMA FEC driver
- drivers/serial/mcfuart.c		ColdFire common UART driver

- include/MCD_dma.h			DMA header file
- include/MCD_progCheck.h		DMA header file
- include/MCD_tasksInit.h		DMA header file
- include/asm-m68k/bitops.h		Bit operation function export
- include/asm-m68k/byteorder.h		Byte order functions
- include/asm-m68k/errno.h		Error Number definition
- include/asm-m68k/fec.h		FEC structure and definition
- include/asm-m68k/fsl_i2c.h		I2C structure and definition
- include/asm-m68k/fsl_mcddmafec.h	DMA FEC 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_547x_8x.h	mcf547x_8x specific header file
- include/asm-m68k/io.h			io functions
- include/asm-m68k/m547x_8x.h		mcf547x_8x 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/M5475EVB.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/traps.c			Exception init code

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

1.2 Configuration settings for M5475EVB Development Board
CONFIG_MCF547x_8x	-- define for all MCF547x_8x CPUs
CONFIG_M547x		-- define for all Freescale MCF547x CPUs
CONFIG_M5475		-- define for M5475EVB board

CONFIG_MCFUART		-- define to use common CF Uart driver
CFG_UART_PORT		-- define UART port number, start with 0, 1 and 2
CONFIG_BAUDRATE		-- define UART baudrate

CONFIG_FSLDMAFEC	-- define to use common dma 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
CFG_DISCOVER_PHY	-- enable PHY discovery
CFG_RX_ETH_BUFFER	-- Set FEC Receive buffer
CFG_FAULT_ECHO_LINK_DOWN--
CFG_FEC0_PINMUX		-- Set FEC0 Pin configuration
CFG_FEC1_PINMUX		-- Set FEC1 Pin configuration
CFG_FEC0_MIIBASE	-- Set FEC0 MII base register
CFG_FEC1_MIIBASE	-- Set FEC0 MII base register
MCFFEC_TOUT_LOOP	-- set FEC timeout loop
CONFIG_HAS_ETH1		-- define to enable second FEC in u-boot

CONFIG_CMD_USB		-- enable USB commands
CONFIG_USB_OHCI_NEW	-- enable USB OHCI driver
CONFIG_USB_STORAGE	-- enable USB Storage device
CONFIG_DOS_PARTITION	-- enable DOS read/write

CONFIG_SLTTMR		-- define to use SLT 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
CFG_I2C_SPEED		-- define for I2C speed
CFG_I2C_SLAVE		-- define for I2C slave address
CFG_I2C_OFFSET		-- define for I2C base address offset
CFG_IMMR		-- define for MBAR offset

CONFIG_PCI		-- define for PCI support
CONFIG_PCI_PNP		-- define for Plug n play support
CONFIG_SKIPPCI_HOSTBRIDGE	-- SKIP PCI Host bridge
CFG_PCI_MEM_BUS		-- PCI memory logical offset
CFG_PCI_MEM_PHYS	-- PCI memory physical offset
CFG_PCI_MEM_SIZE	-- PCI memory size
CFG_PCI_IO_BUS		-- PCI IO logical offset
CFG_PCI_IO_PHYS		-- PCI IO physical offset
CFG_PCI_IO_SIZE		-- PCI IO size
CFG_PCI_CFG_BUS		-- PCI Configuration logical offset
CFG_PCI_CFG_PHYS	-- PCI Configuration physical offset
CFG_PCI_CFG_SIZE	-- PCI Configuration size

CFG_MBAR		-- define MBAR offset

CONFIG_MONITOR_IS_IN_RAM -- Not support

CFG_INIT_RAM_ADDR	-- defines the base address of the MCF547x internal SRAM

CFG_CSn_BASE	-- defines the Chip Select Base register
CFG_CSn_MASK	-- defines the Chip Select Mask register
CFG_CSn_CTRL	-- defines the Chip Select Control register

CFG_SDRAM_BASE	-- defines the DRAM Base

2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL
===========================================
2.1. System memory map:
	Flash:		0xFF800000-0xFFFFFFFF (8MB)
	DDR:		0x00000000-0x3FFFFFFF (1024MB)
	SRAM:		0xF2000000-0xF2000FFF (4KB)
	PCI:		0x70000000-0x8FFFFFFF (512MB)
	IP:		0xF0000000-0xFFFFFFFF (256MB)

3. COMPILATION
==============
3.1	To create U-Boot the gcc-4.x 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 M5475AFE_config, or	- boot 2MB, RAM 64MB
   make M5475BFE_config, or	- boot 2MB, code 16MB, RAM 64MB
   make M5475CFE_config, or	- boot 2MB, code 16MB, Video, USB, RAM 64MB
   make M5475DFE_config, or	- boot 2MB, USB, RAM 64MB
   make M5475EFE_config, or	- boot 2MB, Video, USB, RAM 64MB
   make M5475FFE_config, or	- boot 2MB, code 32MB, Video, USB, RAM 128MB
   make M5475GFE_config, or	- boot 2MB, RAM 64MB
   make

5. SCREEN DUMP
==============
5.1

U-Boot 1.3.1 (Jan  8 2008 - 12:47:44)

CPU:   Freescale MCF5475
       CPU CLK 266 Mhz BUS CLK 133 Mhz
Board: Freescale FireEngine 5475 EVB
I2C:   ready
DRAM:  64 MB
FLASH: 18 MB
In:    serial
Out:   serial
Err:   serial
Net:   FEC0, FEC1
-> pri
bootdelay=1
baudrate=115200
ethaddr=00:e0:0c:bc:e5:60
eth1addr=00:e0:0c:bc:e5:61
ipaddr=192.162.1.2
serverip=192.162.1.1
gatewayip=192.162.1.1
netmask=255.255.255.0
hostname=M547xEVB
netdev=eth0
loadaddr=10000
u-boot=u-boot.bin
load=tftp ${loadaddr) ${u-boot}
upd=run load; run prog
prog=prot off bank 1;era ff800000 ff82ffff;cp.b ${loadaddr} ff800000 ${filesize};save
stdin=serial
stdout=serial
stderr=serial
ethact=FEC0
mem=65024k

Environment size: 433/8188 bytes
-> bdin
memstart    = 0x00000000
memsize     = 0x04000000
flashstart  = 0xFF800000
flashsize   = 0x01200000
flashoffset = 0x00000000
sramstart   = 0xF2000000
sramsize    = 0x00001000
mbar	    = 0xF0000000
busfreq     = 133.333 MHz
pcifreq     =	   0 MHz
ethaddr     = 00:E0:0C:BC:E5:60
eth1addr    = 00:E0:0C:BC:E5:61
ip_addr     = 192.162.1.2
baudrate    = 115200 bps
-> ?
?	- alias for 'help'
autoscr - run script from memory
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
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
icache	- enable or disable instruction cache
icrc32	- checksum calculation
iloop	- infinite loop on address range
imd	- i2c memory display
iminfo	- print header information for application image
imls	- list all images found in flash
imm	- i2c memory modify (auto-incrementing)
imw	- memory write (fill)
inm	- memory modify (constant address)
iprobe	- probe to discover valid I2C chip addresses
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
md	- memory display
mii	- MII utility commands
mm	- memory modify (auto-incrementing)
mtest	- simple RAM test
mw	- memory write (fill)
nfs	- boot image via network using NFS protocol
nm	- memory modify (constant address)
pci	- list and access PCI Configuration Space
ping	- send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
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
tftpboot- boot image via network using TFTP protocol
usb	- USB sub-system
usbboot - boot from USB device
version - print monitor version
-> usb start
(Re)start USB...
USB:   OHCI pci controller (1131, 1561) found @(0:17:0)
OHCI regs address 0x80000000
scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
->
