1Freescale MCF54455EVB ColdFire Development Board
2================================================
3
4TsiChung Liew(Tsi-Chung.Liew@freescale.com)
5Created 4/08/07
6===========================================
7
8
9Changed files:
10==============
11
12- board/freescale/m54455evb/m54455evb.c	Dram setup, IDE pre init, and PCI init
13- board/freescale/m54455evb/flash.c		Atmel and INTEL flash support
14- board/freescale/m54455evb/Makefile		Makefile
15- board/freescale/m54455evb/config.mk	config make
16- board/freescale/m54455evb/u-boot.lds	Linker description
17
18- common/cmd_bdinfo.c		Clock frequencies output
19- common/cmd_mii.c		mii support
20
21- arch/m68k/cpu/mcf5445x/cpu.c		cpu specific code
22- arch/m68k/cpu/mcf5445x/cpu_init.c	Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs
23- arch/m68k/cpu/mcf5445x/interrupts.c	cpu specific interrupt support
24- arch/m68k/cpu/mcf5445x/speed.c		system, pci, flexbus, and cpu clock
25- arch/m68k/cpu/mcf5445x/Makefile		Makefile
26- arch/m68k/cpu/mcf5445x/config.mk	config make
27- arch/m68k/cpu/mcf5445x/start.S		start up assembly code
28
29- doc/README.m54455evb	This readme file
30
31- drivers/net/mcffec.c		ColdFire common FEC driver
32- drivers/serial/mcfuart.c	ColdFire common UART driver
33
34- include/asm-m68k/bitops.h		Bit operation function export
35- include/asm-m68k/byteorder.h		Byte order functions
36- include/asm-m68k/fec.h		FEC structure and definition
37- include/asm-m68k/fsl_i2c.h		I2C structure and definition
38- include/asm-m68k/global_data.h	Global data structure
39- include/asm-m68k/immap.h		ColdFire specific header file and driver macros
40- include/asm-m68k/immap_5445x.h	mcf5445x specific header file
41- include/asm-m68k/io.h			io functions
42- include/asm-m68k/m5445x.h		mcf5445x specific header file
43- include/asm-m68k/posix_types.h	Posix
44- include/asm-m68k/processor.h		header file
45- include/asm-m68k/ptrace.h		Exception structure
46- include/asm-m68k/rtc.h		Realtime clock header file
47- include/asm-m68k/string.h		String function export
48- include/asm-m68k/timer.h		Timer structure and definition
49- include/asm-m68k/types.h		Data types definition
50- include/asm-m68k/uart.h		Uart structure and definition
51- include/asm-m68k/u-boot.h		U-Boot structure
52
53- include/configs/M54455EVB.h	Board specific configuration file
54
55- arch/m68k/lib/board.c			board init function
56- arch/m68k/lib/cache.c
57- arch/m68k/lib/interrupts			Coldfire common interrupt functions
58- arch/m68k/lib/m68k_linux.c
59- arch/m68k/lib/time.c			Timer functions (Dma timer and PIT)
60- arch/m68k/lib/traps.c			Exception init code
61
62- rtc/mcfrtc.c				Realtime clock Driver
63
641 MCF5445x specific Options/Settings
65====================================
661.1 pre-loader is no longer suppoer in thie coldfire family
67
681.2 Configuration settings for M54455EVB Development Board
69CONFIG_MCF5445x		-- define for all MCF5445x CPUs
70CONFIG_M54455		-- define for all Freescale MCF54455 CPUs
71CONFIG_M54455EVB	-- define for M54455EVB board
72
73CONFIG_MCFUART		-- define to use common CF Uart driver
74CONFIG_SYS_UART_PORT		-- define UART port number, start with 0, 1 and 2
75CONFIG_BAUDRATE		-- define UART baudrate
76
77CONFIG_MCFRTC		-- define to use common CF RTC driver
78CONFIG_SYS_MCFRTC_BASE		-- provide base address for RTC in immap.h
79CONFIG_SYS_RTC_OSCILLATOR	-- define RTC clock frequency
80RTC_DEBUG		-- define to show RTC debug message
81CONFIG_CMD_DATE		-- enable to use date feature in U-Boot
82
83CONFIG_MCFFEC		-- define to use common CF FEC driver
84CONFIG_MII		-- enable to use MII driver
85CONFIG_CF_DOMII		-- enable to use MII feature in cmd_mii.c
86CONFIG_SYS_DISCOVER_PHY	-- enable PHY discovery
87CONFIG_SYS_RX_ETH_BUFFER	-- Set FEC Receive buffer
88CONFIG_SYS_FAULT_ECHO_LINK_DOWN--
89CONFIG_SYS_FEC0_PINMUX		-- Set FEC0 Pin configuration
90CONFIG_SYS_FEC1_PINMUX		-- Set FEC1 Pin configuration
91CONFIG_SYS_FEC0_MIIBASE	-- Set FEC0 MII base register
92CONFIG_SYS_FEC1_MIIBASE	-- Set FEC0 MII base register
93MCFFEC_TOUT_LOOP	-- set FEC timeout loop
94CONFIG_HAS_ETH1		-- define to enable second FEC in U-Boot
95
96CONFIG_ISO_PARTITION	-- enable ISO read/write
97CONFIG_DOS_PARTITION	-- enable DOS read/write
98CONFIG_IDE_RESET	-- define ide_reset()
99CONFIG_IDE_PREINIT	-- define ide_preinit()
100CONFIG_ATAPI		-- define ATAPI support
101CONFIG_LBA48		-- define LBA48 (larger than 120GB) support
102CONFIG_SYS_IDE_MAXBUS		-- define max channel
103CONFIG_SYS_IDE_MAXDEVICE	-- define max devices per channel
104CONFIG_SYS_ATA_BASE_ADDR	-- define ATA base address
105CONFIG_SYS_ATA_IDE0_OFFSET	-- define ATA IDE0 offset
106CONFIG_SYS_ATA_DATA_OFFSET	-- define ATA data IO
107CONFIG_SYS_ATA_REG_OFFSET	-- define for normal register accesses
108CONFIG_SYS_ATA_ALT_OFFSET	-- define for alternate registers
109CONFIG_SYS_ATA_STRIDE		-- define for Interval between registers
110_IO_BASE		-- define for IO base address
111
112CONFIG_MCFTMR		-- define to use DMA timer
113CONFIG_MCFPIT		-- define to use PIT timer
114
115CONFIG_SYS_FSL_I2C	-- define to use FSL common I2C driver
116CONFIG_SYS_I2C_SOFT	-- define for I2C bit-banged
117CONFIG_SYS_I2C_SPEED		-- define for I2C speed
118CONFIG_SYS_I2C_SLAVE		-- define for I2C slave address
119CONFIG_SYS_I2C_OFFSET		-- define for I2C base address offset
120CONFIG_SYS_IMMR		-- define for MBAR offset
121
122CONFIG_PCI              -- define for PCI support
123CONFIG_PCI_PNP          -- define for Plug n play support
124CONFIG_SYS_PCI_MEM_BUS		-- PCI memory logical offset
125CONFIG_SYS_PCI_MEM_PHYS	-- PCI memory physical offset
126CONFIG_SYS_PCI_MEM_SIZE	-- PCI memory size
127CONFIG_SYS_PCI_IO_BUS		-- PCI IO logical offset
128CONFIG_SYS_PCI_IO_PHYS		-- PCI IO physical offset
129CONFIG_SYS_PCI_IO_SIZE		-- PCI IO size
130CONFIG_SYS_PCI_CFG_BUS		-- PCI Configuration logical offset
131CONFIG_SYS_PCI_CFG_PHYS	-- PCI Configuration physical offset
132CONFIG_SYS_PCI_CFG_SIZE	-- PCI Configuration size
133
134CONFIG_EXTRA_CLOCK	-- Enable extra clock such as vco, flexbus, pci, etc
135
136CONFIG_SYS_MBAR		-- define MBAR offset
137
138CONFIG_SYS_ATMEL_BOOT		-- To determine the U-Boot is booted from Atmel or Intel
139
140CONFIG_MONITOR_IS_IN_RAM -- Not support
141
142CONFIG_SYS_INIT_RAM_ADDR	-- defines the base address of the MCF54455 internal SRAM
143
144CONFIG_SYS_CSn_BASE	-- defines the Chip Select Base register
145CONFIG_SYS_CSn_MASK	-- defines the Chip Select Mask register
146CONFIG_SYS_CSn_CTRL	-- defines the Chip Select Control register
147
148CONFIG_SYS_ATMEL_BASE	-- defines the Atmel Flash base
149CONFIG_SYS_INTEL_BASE	-- defines the Intel Flash base
150
151CONFIG_SYS_SDRAM_BASE	-- defines the DRAM Base
152CONFIG_SYS_SDRAM_BASE1	-- defines the DRAM Base 1
153
1542. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL
155===========================================
1562.1. System memory map:
157	Flash:		0x00000000-0x3FFFFFFF (1024MB)
158	DDR:		0x40000000-0x7FFFFFFF (1024MB)
159	SRAM:		0x80000000-0x8FFFFFFF (256MB)
160	ATA:		0x90000000-0x9FFFFFFF (256MB)
161	PCI:		0xA0000000-0xBFFFFFFF (512MB)
162	FlexBus:	0xC0000000-0xDFFFFFFF (512MB)
163	IP:		0xF0000000-0xFFFFFFFF (256MB)
164
1652.2. For the initial bringup, we adopted a consistent memory scheme between U-Boot and
166	linux kernel, you can customize it based on your system requirements:
167	Atmel boot:
168	Flash0:		0x00000000-0x0007FFFF (512KB)
169	Flash1:		0x04000000-0x05FFFFFF (32MB)
170	Intel boot:
171	Flash0:		0x00000000-0x01FFFFFF (32MB)
172	Flash1:		0x04000000-0x0407FFFF (512KB)
173
174	CPLD:		0x08000000-0x08FFFFFF (16MB)
175	FPGA:		0x09000000-0x09FFFFFF (16MB)
176	DDR:		0x40000000-0x4FFFFFFF (256MB)
177	SRAM:		0x80000000-0x80007FFF (32KB)
178	IP:		0xFC000000-0xFC0FFFFF (64KB)
179
1803. SWITCH SETTINGS
181==================
1823.1 SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL
183	SW1 Pin4: 0 - ULPI chip not in reset state or 1 - ULPI chip in reset state
184	SW1 Pin5: 0 - Full ATA Bus enabled, FEC Phy1 powered down
185			  1 - Upper 8 bits ATA data bus disabled, FEC PHY1 active
186	SW1 Pin6: 0 - FEC Phy0 active or 1 - FEC Phy0 powered down
187	SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL
188
1894. COMPILATION
190==============
1914.1	To create U-Boot the gcc-4.1-32 compiler set (ColdFire ELF version)
192from codesourcery.com was used. Download it from:
193http://www.codesourcery.com/gnu_toolchains/coldfire/download.html
194
1954.2 Compilation
196   export CROSS_COMPILE=cross-compile-prefix
197   cd u-boot-1.x.x
198   make distclean
199   make M54455EVB_config, or		- default to atmel 33Mhz input clock
200   make M54455EVB_atmel_config, or	- default to atmel 33Mhz input clock
201   make M54455EVB_a33_config, or	- default to atmel 33Mhz input clock
202   make M54455EVB_a66_config, or	- default to atmel 66Mhz input clock
203   make M54455EVB_intel_config, or	- default to intel 33Mhz input clock
204   make M54455EVB_i33_config, or	- default to intel 33Mhz input clock
205   make M54455EVB_i66_config, or	- default to intel 66Mhz input clock
206   make
207
2085. SCREEN DUMP
209==============
2105.1 M54455EVB Development board
211    Boot from Atmel (NOTE: May not show exactly the same)
212
213U-Boot 1.2.0-g98c80b46-dirty (Jul 26 2007 - 12:44:08)
214
215CPU:   Freescale MCF54455 (Mask:48 Version:1)
216       CPU CLK 266 Mhz BUS CLK 133 Mhz FLB CLK 66 Mhz
217       PCI CLK 33 Mhz INP CLK 33 Mhz VCO CLK 533 Mhz
218Board: Freescale M54455 EVB
219I2C:   ready
220DRAM:  256 MB
221FLASH: 16.5 MB
222In:    serial
223Out:   serial
224Err:   serial
225Net:   FEC0, FEC1
226IDE:   Bus 0: not available
227-> print
228bootargs=root=/dev/ram rw
229bootdelay=1
230baudrate=115200
231ethaddr=00:e0:0c:bc:e5:60
232eth1addr=00:e0:0c:bc:e5:61
233hostname=M54455EVB
234netdev=eth0
235inpclk=33333333
236loadaddr=40010000
237load=tftp ${loadaddr) ${u-boot}
238upd=run load; run prog
239prog=prot off 0 2ffff;era 0 2ffff;cp.b ${loadaddr} 0 ${filesize};save
240ethact=FEC0
241mtdids=nor0=M54455EVB-1
242mtdparts=M54455EVB-1:16m(user)
243u-boot=u-boot54455.bin
244filesize=292b4
245fileaddr=40010000
246gatewayip=192.168.1.1
247netmask=255.255.255.0
248ipaddr=192.168.1.3
249serverip=192.168.1.2
250stdin=serial
251stdout=serial
252stderr=serial
253mem=261632k
254
255Environment size: 563/8188 bytes
256-> bdinfo
257memstart    = 0x40000000
258memsize     = 0x10000000
259flashstart  = 0x00000000
260flashsize   = 0x01080000
261flashoffset = 0x00000000
262sramstart   = 0x80000000
263sramsize    = 0x00008000
264mbar        = 0xFC000000
265busfreq     = 133.333 MHz
266pcifreq     = 33.333 MHz
267flbfreq     = 66.666 MHz
268inpfreq     = 33.333 MHz
269vcofreq     = 533.333 MHz
270ethaddr     = 00:E0:0C:BC:E5:60
271eth1addr    = 00:E0:0C:BC:E5:61
272ip_addr     = 192.168.1.3
273baudrate    = 115200 bps
274->
275-> help
276?       - alias for 'help'
277base    - print or set address offset
278bdinfo  - print Board Info structure
279boot    - boot default, i.e., run 'bootcmd'
280bootd   - boot default, i.e., run 'bootcmd'
281bootelf - Boot from an ELF image in memory
282bootm   - boot application image from memory
283bootp	- boot image via network using BootP/TFTP protocol
284bootvx  - Boot vxWorks from an ELF image
285cmp     - memory compare
286coninfo - print console devices and information
287cp      - memory copy
288crc32   - checksum calculation
289date    - get/set/reset date & time
290dcache  - enable or disable data cache
291diskboot- boot from IDE device
292echo    - echo args to console
293erase   - erase FLASH memory
294ext2load- load binary file from a Ext2 filesystem
295ext2ls  - list files in a directory (default /)
296fatinfo - print information about filesystem
297fatload - load binary file from a dos filesystem
298fatls   - list files in a directory (default /)
299flinfo  - print FLASH memory information
300fsinfo	- print information about filesystems
301fsload	- load binary file from a filesystem image
302go      - start application at address 'addr'
303help    - print online help
304i2c     - I2C sub-system
305icache  - enable or disable instruction cache
306ide     - IDE sub-system
307iminfo  - print header information for application image
308imls    - list all images found in flash
309itest	- return true/false on integer compare
310loadb   - load binary file over serial line (kermit mode)
311loads   - load S-Record file over serial line
312loady   - load binary file over serial line (ymodem mode)
313loop    - infinite loop on address range
314ls	- list files in a directory (default /)
315md      - memory display
316mii     - MII utility commands
317mm      - memory modify (auto-incrementing)
318mtest   - simple RAM test
319mw      - memory write (fill)
320nfs	- boot image via network using NFS protocol
321nm      - memory modify (constant address)
322pci     - list and access PCI Configuration Space
323ping	- send ICMP ECHO_REQUEST to network host
324printenv- print environment variables
325protect - enable or disable FLASH write protection
326rarpboot- boot image via network using RARP/TFTP protocol
327reset   - Perform RESET of the CPU
328run     - run commands in an environment variable
329saveenv - save environment variables to persistent storage
330setenv  - set environment variables
331sleep   - delay execution for some time
332source  - run script from memory
333tftpboot- boot image via network using TFTP protocol
334version - print monitor version
335->bootm 4000000
336
337## Booting image at 04000000 ...
338   Image Name:   Linux Kernel Image
339   Created:      2007-08-14  15:13:00 UTC
340   Image Type:   M68K Linux Kernel Image (uncompressed)
341   Data Size:    2301952 Bytes =  2.2 MB
342   Load Address: 40020000
343   Entry Point:  40020000
344   Verifying Checksum ... OK
345OK
346Linux version 2.6.20-gfe5136d6-dirty (mattw@kea) (gcc version 4.2.0 20070318 (pr
347erelease) (Sourcery G++ Lite 4.2-20)) #108 Mon Aug 13 13:00:13 MDT 2007
348starting up linux startmem 0xc0254000, endmem 0xcfffffff, size 253MB
349Built 1 zonelists.  Total pages: 32624
350Kernel command line: root=/dev/mtdblock1 rw rootfstype=jffs2 ip=none mtdparts=ph
351ysmap-flash.0:5M(kernel)ro,-(jffs2)
352PID hash table entries: 1024 (order: 10, 4096 bytes)
353Console: colour dummy device 80x25
354Dentry cache hash table entries: 32768 (order: 4, 131072 bytes)
355Inode-cache hash table entries: 16384 (order: 3, 65536 bytes)
356Memory: 257496k/262136k available (1864k kernel code, 2440k data, 88k init)
357Mount-cache hash table entries: 1024
358NET: Registered protocol family 16
359SCSI subsystem initialized
360NET: Registered protocol family 2
361IP route cache hash table entries: 2048 (order: 0, 8192 bytes)
362TCP established hash table entries: 8192 (order: 2, 32768 bytes)
363TCP bind hash table entries: 4096 (order: 1, 16384 bytes)
364TCP: Hash tables configured (established 8192 bind 4096)
365TCP reno registered
366JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
367io scheduler noop registered
368io scheduler anticipatory registered
369io scheduler deadline registered
370io scheduler cfq registered (default)
371ColdFire internal UART serial driver version 1.00
372ttyS0 at 0xfc060000 (irq = 90) is a builtin ColdFire UART
373ttyS1 at 0xfc064000 (irq = 91) is a builtin ColdFire UART
374ttyS2 at 0xfc068000 (irq = 92) is a builtin ColdFire UART
375RAMDISK driver initialized: 16 RAM disks of 64000K size 1024 blocksize
376loop: loaded (max 8 devices)
377FEC ENET Version 0.2
378fec: PHY @ 0x0, ID 0x20005ca2 -- DP83849
379eth0: ethernet 00:08:ee:00:e4:19
380physmap platform flash device: 01000000 at 04000000
381physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank
382 Intel/Sharp Extended Query Table at 0x0031
383Using buffer write method
384cfi_cmdset_0001: Erase suspend on write enabled
3852 cmdlinepart partitions found on MTD device physmap-flash.0
386Creating 2 MTD partitions on "physmap-flash.0":
3870x00000000-0x00500000 : "kernel"
388mtd: Giving out device 0 to kernel
3890x00500000-0x01000000 : "jffs2"
390mtd: Giving out device 1 to jffs2
391mice: PS/2 mouse device common for all mice
392i2c /dev entries driver
393TCP cubic registered
394NET: Registered protocol family 1
395NET: Registered protocol family 17
396NET: Registered protocol family 15
397VFS: Mounted root (jffs2 filesystem).
398Setting the hostname to freescale
399Mounting filesystems
400mount: Mounting usbfs on /proc/bus/usb failed: No such file or directory
401Starting syslogd and klogd
402Setting up networking on loopback device:
403Setting up networking on eth0:
404eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
405Adding static route for default gateway to 172.27.255.254:
406Setting nameserver to 172.27.0.1 in /etc/resolv.conf:
407Starting inetd:
408/ #
409