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