README 15 KB

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