README 15 KB

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