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