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
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_FEC1_PINMUX		-- Set FEC1 Pin configuration
CONFIG_SYS_FEC0_MIIBASE	-- Set FEC0 MII base register
CONFIG_SYS_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
CONFIG_SYS_IDE_MAXBUS		-- define max channel
CONFIG_SYS_IDE_MAXDEVICE	-- define max devices per channel
CONFIG_SYS_ATA_BASE_ADDR	-- define ATA base address
CONFIG_SYS_ATA_IDE0_OFFSET	-- define ATA IDE0 offset
CONFIG_SYS_ATA_DATA_OFFSET	-- define ATA data IO
CONFIG_SYS_ATA_REG_OFFSET	-- define for normal register accesses
CONFIG_SYS_ATA_ALT_OFFSET	-- define for alternate registers
CONFIG_SYS_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
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_PCI              -- define for PCI support
CONFIG_PCI_PNP          -- define for Plug n play support
CONFIG_SYS_PCI_MEM_BUS		-- PCI memory logical offset
CONFIG_SYS_PCI_MEM_PHYS	-- PCI memory physical offset
CONFIG_SYS_PCI_MEM_SIZE	-- PCI memory size
CONFIG_SYS_PCI_IO_BUS		-- PCI IO logical offset
CONFIG_SYS_PCI_IO_PHYS		-- PCI IO physical offset
CONFIG_SYS_PCI_IO_SIZE		-- PCI IO size
CONFIG_SYS_PCI_CFG_BUS		-- PCI Configuration logical offset
CONFIG_SYS_PCI_CFG_PHYS	-- PCI Configuration physical offset
CONFIG_SYS_PCI_CFG_SIZE	-- PCI Configuration size

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

CONFIG_SYS_MBAR		-- define MBAR offset

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

CONFIG_MONITOR_IS_IN_RAM -- Not support

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

CONFIG_SYS_SDRAM_BASE	-- defines the DRAM Base
CONFIG_SYS_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
i2c     - I2C sub-system
icache  - enable or disable instruction cache
ide     - IDE sub-system
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
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:
/ #
