Freescale MCF54455EVB ColdFire Development Board
================================================

TsiChung Liew(Tsi-Chung.Liew@freescale.com)
Created 4/08/07
===========================================


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

- board/freescale/m54455evb/m54455evb.c	Dram setup, IDE pre init, and PCI init
- board/freescale/m54455evb/flash.c		Atmel and INTEL flash support
- board/freescale/m54455evb/Makefile		Makefile
- board/freescale/m54455evb/config.mk	config make
- board/freescale/m54455evb/u-boot.lds	Linker description

- common/cmd_bdinfo.c		Clock frequencies output
- common/cmd_mii.c		mii support

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

- doc/README.m54455evb	This readme file

- drivers/net/mcffec.c		ColdFire common FEC driver
- drivers/serial/mcfuart.c	ColdFire common UART 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_5445x.h	mcf5445x specific header file
- include/asm-m68k/io.h			io functions
- include/asm-m68k/m5445x.h		mcf5445x 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/M54455EVB.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

- rtc/mcfrtc.c				Realtime clock Driver

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

1.2 Configuration settings for M54455EVB Development Board
CONFIG_MCF5445x		-- define for all MCF5445x CPUs
CONFIG_M54455		-- define for all Freescale MCF54455 CPUs
CONFIG_M54455EVB	-- define for M54455EVB 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_MCFRTC		-- define to use common CF RTC driver
CFG_MCFRTC_BASE		-- provide base address for RTC in immap.h
CFG_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
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_ISO_PARTITION	-- enable ISO read/write
CONFIG_DOS_PARTITION	-- enable DOS read/write
CONFIG_IDE_RESET	-- define ide_reset()
CONFIG_IDE_PREINIT	-- define ide_preinit()
CONFIG_ATAPI		-- define ATAPI support
CONFIG_LBA48		-- define LBA48 (larger than 120GB) support
CFG_IDE_MAXBUS		-- define max channel
CFG_IDE_MAXDEVICE	-- define max devices per channel
CFG_ATA_BASE_ADDR	-- define ATA base address
CFG_ATA_IDE0_OFFSET	-- define ATA IDE0 offset
CFG_ATA_DATA_OFFSET	-- define ATA data IO
CFG_ATA_REG_OFFSET	-- define for normal register accesses
CFG_ATA_ALT_OFFSET	-- define for alternate registers
CFG_ATA_STRIDE		-- define for Interval between registers
_IO_BASE		-- define for IO base address

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

CONFIG_EXTRA_CLOCK	-- Enable extra clock such as vco, flexbus, pci, etc

CFG_MBAR		-- define MBAR offset

CFG_ATMEL_BOOT		-- To determine the u-boot is booted from Atmel or Intel

CONFIG_MONITOR_IS_IN_RAM -- Not support

CFG_INIT_RAM_ADDR	-- defines the base address of the MCF54455 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_ATMEL_BASE	-- defines the Atmel Flash base
CFG_INTEL_BASE	-- defines the Intel Flash base

CFG_SDRAM_BASE	-- defines the DRAM Base
CFG_SDRAM_BASE1	-- defines the DRAM Base 1

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)
	ATA:		0x90000000-0x9FFFFFFF (256MB)
	PCI:		0xA0000000-0xBFFFFFFF (512MB)
	FlexBus:	0xC0000000-0xDFFFFFFF (512MB)
	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:
	Atmel boot:
	Flash0:		0x00000000-0x0007FFFF (512KB)
	Flash1:		0x04000000-0x05FFFFFF (32MB)
	Intel boot:
	Flash0:		0x00000000-0x01FFFFFF (32MB)
	Flash1:		0x04000000-0x0407FFFF (512KB)

	CPLD:		0x08000000-0x08FFFFFF (16MB)
	FPGA:		0x09000000-0x09FFFFFF (16MB)
	DDR:		0x40000000-0x4FFFFFFF (256MB)
	SRAM:		0x80000000-0x80007FFF (32KB)
	IP:		0xFC000000-0xFC0FFFFF (64KB)

3. SWITCH SETTINGS
==================
3.1 SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL
	SW1 Pin4: 0 - ULPI chip not in reset state or 1 - ULPI chip in reset state
	SW1 Pin5: 0 - Full ATA Bus enabled, FEC Phy1 powered down
			  1 - Upper 8 bits ATA data bus disabled, FEC PHY1 active
	SW1 Pin6: 0 - FEC Phy0 active or 1 - FEC Phy0 powered down
	SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL

4. COMPILATION
==============
4.1	To create U-Boot the gcc-4.1-32 compiler set (ColdFire ELF version)
from codesourcery.com was used. Download it from:
http://www.codesourcery.com/gnu_toolchains/coldfire/download.html

4.2 Compilation
   export CROSS_COMPILE=cross-compile-prefix
   cd u-boot-1.x.x
   make distclean
   make M54455EVB_config, or		- default to atmel 33Mhz input clock
   make M54455EVB_atmel_config, or	- default to atmel 33Mhz input clock
   make M54455EVB_a33_config, or	- default to atmel 33Mhz input clock
   make M54455EVB_a66_config, or	- default to atmel 66Mhz input clock
   make M54455EVB_intel_config, or	- default to intel 33Mhz input clock
   make M54455EVB_i33_config, or	- default to intel 33Mhz input clock
   make M54455EVB_i66_config, or	- default to intel 66Mhz input clock
   make

5. SCREEN DUMP
==============
5.1 M54455EVB Development board
    Boot from Atmel (NOTE: May not show exactly the same)

U-Boot 1.2.0-g98c80b46-dirty (Jul 26 2007 - 12:44:08)

CPU:   Freescale MCF54455 (Mask:48 Version:1)
       CPU CLK 266 Mhz BUS CLK 133 Mhz FLB CLK 66 Mhz
       PCI CLK 33 Mhz INP CLK 33 Mhz VCO CLK 533 Mhz
Board: Freescale M54455 EVB
I2C:   ready
DRAM:  256 MB
FLASH: 16.5 MB
In:    serial
Out:   serial
Err:   serial
Net:   FEC0, FEC1
IDE:   Bus 0: not available
-> print
bootargs=root=/dev/ram rw
bootdelay=1
baudrate=115200
ethaddr=00:e0:0c:bc:e5:60
eth1addr=00:e0:0c:bc:e5:61
hostname=M54455EVB
netdev=eth0
inpclk=33333333
loadaddr=40010000
load=tftp ${loadaddr) ${u-boot}
upd=run load; run prog
prog=prot off 0 2ffff;era 0 2ffff;cp.b ${loadaddr} 0 ${filesize};save
ethact=FEC0
mtdids=nor0=M54455EVB-1
mtdparts=M54455EVB-1:16m(user)
u-boot=u-boot54455.bin
filesize=292b4
fileaddr=40010000
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=261632k

Environment size: 563/8188 bytes
-> bdinfo
memstart    = 0x40000000
memsize     = 0x10000000
flashstart  = 0x00000000
flashsize   = 0x01080000
flashoffset = 0x00000000
sramstart   = 0x80000000
sramsize    = 0x00008000
mbar        = 0xFC000000
busfreq     = 133.333 MHz
pcifreq     = 33.333 MHz
flbfreq     = 66.666 MHz
inpfreq     = 33.333 MHz
vcofreq     = 533.333 MHz
ethaddr     = 00:E0:0C:BC:E5:60
eth1addr    = 00:E0:0C:BC:E5:61
ip_addr     = 192.168.1.3
baudrate    = 115200 bps
->
-> help
?       - 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
date    - get/set/reset date & time
dcache  - enable or disable data cache
diskboot- boot from IDE device
echo    - echo args to console
erase   - erase FLASH memory
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
flinfo  - print FLASH memory information
fsinfo	- print information about filesystems
fsload	- load binary file from a filesystem image
go      - start application at address 'addr'
help    - print online help
icache  - enable or disable instruction cache
icrc32  - checksum calculation
ide     - IDE sub-system
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
ls	- list files in a directory (default /)
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
version - print monitor version
->bootm 4000000

## Booting image at 04000000 ...
   Image Name:   Linux Kernel Image
   Created:      2007-08-14  15:13:00 UTC
   Image Type:   M68K Linux Kernel Image (uncompressed)
   Data Size:    2301952 Bytes =  2.2 MB
   Load Address: 40020000
   Entry Point:  40020000
   Verifying Checksum ... OK
OK
Linux version 2.6.20-gfe5136d6-dirty (mattw@kea) (gcc version 4.2.0 20070318 (pr
erelease) (Sourcery G++ Lite 4.2-20)) #108 Mon Aug 13 13:00:13 MDT 2007
starting up linux startmem 0xc0254000, endmem 0xcfffffff, size 253MB
Built 1 zonelists.  Total pages: 32624
Kernel command line: root=/dev/mtdblock1 rw rootfstype=jffs2 ip=none mtdparts=ph
ysmap-flash.0:5M(kernel)ro,-(jffs2)
PID hash table entries: 1024 (order: 10, 4096 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 32768 (order: 4, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 3, 65536 bytes)
Memory: 257496k/262136k available (1864k kernel code, 2440k data, 88k init)
Mount-cache hash table entries: 1024
NET: Registered protocol family 16
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 0, 8192 bytes)
TCP established hash table entries: 8192 (order: 2, 32768 bytes)
TCP bind hash table entries: 4096 (order: 1, 16384 bytes)
TCP: Hash tables configured (established 8192 bind 4096)
TCP reno registered
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
ColdFire internal UART serial driver version 1.00
ttyS0 at 0xfc060000 (irq = 90) is a builtin ColdFire UART
ttyS1 at 0xfc064000 (irq = 91) is a builtin ColdFire UART
ttyS2 at 0xfc068000 (irq = 92) is a builtin ColdFire UART
RAMDISK driver initialized: 16 RAM disks of 64000K size 1024 blocksize
loop: loaded (max 8 devices)
FEC ENET Version 0.2
fec: PHY @ 0x0, ID 0x20005ca2 -- DP83849
eth0: ethernet 00:08:ee:00:e4:19
physmap platform flash device: 01000000 at 04000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank
 Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
2 cmdlinepart partitions found on MTD device physmap-flash.0
Creating 2 MTD partitions on "physmap-flash.0":
0x00000000-0x00500000 : "kernel"
mtd: Giving out device 0 to kernel
0x00500000-0x01000000 : "jffs2"
mtd: Giving out device 1 to jffs2
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
NET: Registered protocol family 15
VFS: Mounted root (jffs2 filesystem).
Setting the hostname to freescale
Mounting filesystems
mount: Mounting usbfs on /proc/bus/usb failed: No such file or directory
Starting syslogd and klogd
Setting up networking on loopback device:
Setting up networking on eth0:
eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
Adding static route for default gateway to 172.27.255.254:
Setting nameserver to 172.27.0.1 in /etc/resolv.conf:
Starting inetd:
/ #
