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

- arch/m68k/cpu/mcf5445x/cpu.c		cpu specific code
- arch/m68k/cpu/mcf5445x/cpu_init.c	Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs
- arch/m68k/cpu/mcf5445x/interrupts.c	cpu specific interrupt support
- arch/m68k/cpu/mcf5445x/speed.c		system, pci, flexbus, and cpu clock
- arch/m68k/cpu/mcf5445x/Makefile		Makefile
- arch/m68k/cpu/mcf5445x/config.mk	config make
- arch/m68k/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

- 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

- 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_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_SYS_FSL_I2C	-- define to use FSL common I2C driver
CONFIG_HARD_I2C		-- define for I2C hardware support
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_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'
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
source  - run script from memory
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:
/ #
