README.m68k 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. U-Boot for Motorola (or Freescale/NXP) ColdFire processors
  2. ===============================================================================
  3. History
  4. November 02, 2017 Angelo Dureghello <angelo@sysam.it>
  5. August 08, 2005 Jens Scharsig <esw@bus-elektronik.de>
  6. MCF5282 implementation without preloader
  7. January 12, 2004 <josef.baumgartner@telex.de>
  8. ===============================================================================
  9. This file contains status information for the port of U-Boot to the
  10. Motorola ColdFire series of CPUs.
  11. 1. Overview
  12. The ColdFire instruction set is "assembly source" compatible but an evolution
  13. of the original 68000 instruction set. Some not much used instructions has
  14. been removed. The instructions are only 16, 32, or 48 bits long, a
  15. simplification compared to the 68000 series.
  16. Bernhard Kuhn ported U-Boot 0.4.0 to the Motorola ColdFire architecture.
  17. The patches of Bernhard support the MCF5272 and MCF5282. A great disadvantage
  18. of these patches was that they needed a pre-bootloader to start U-Boot.
  19. Because of this, a new port was created which no longer needs a first stage
  20. booter.
  21. Thanks mainly to Freescale but also to several other contributors, U-Boot now
  22. supports nearly the entire range of ColdFire processors and their related
  23. development boards.
  24. 2. Supported CPU families
  25. Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the
  26. currently supported processor and families.
  27. 3. Supported boards
  28. U-Boot supports actually more than 40 ColdFire based boards.
  29. Board configuration can be done trough include/configs/<boardname>.h but the
  30. current recommended method is to use the new and more friendly approach as
  31. the "make menuconfig" way, very similar to the Linux way.
  32. To know details as memory map, build targets, default setup, etc, of a
  33. specific board please check:
  34. include/configs/<boardname>.h
  35. and/or
  36. configs/<boardname>_defconfig
  37. It is possible to build all ColdFire boards in a single command-line command,
  38. from u-boot root directory, as:
  39. ./tools/buildman/buildman m68k
  40. 3.1. Build U-Boot for a specific board
  41. A bash script similar to the one below may be used:
  42. #!/bin/bash
  43. export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux-
  44. board=M5475DFE
  45. make distclean
  46. make ARCH=m68k ${board}_defconfig
  47. make ARCH=m68k KBUILD_VERBOSE=1
  48. 4. Adopted toolchains
  49. Please check:
  50. https://www.denx.de/wiki/U-Boot/ColdFireNotes
  51. 5. ColdFire specific configuration options/settings
  52. 5.1. Configuration to use a pre-loader
  53. If U-Boot should be loaded to RAM and started by a pre-loader
  54. CONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the
  55. initial vector table and basic processor initialization will not
  56. be compiled in. The start address of U-Boot must be adjusted in
  57. the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
  58. (CONFIG_SYS_TEXT_BASE) to the load address.
  59. 5.2 ColdFire CPU specific options/settings
  60. To specify a CPU model, some defines shoudl be used, i.e.:
  61. CONFIG_MCF52x2 -- defined for all MCF52x2 CPUs
  62. CONFIG_M5272 -- defined for all Motorola MCF5272 CPUs
  63. Other options, generally set inside include/configs/<boardname>.h, they may
  64. apply to one or more cpu for the ColdFire family:
  65. CONFIG_SYS_MBAR -- defines the base address of the MCF5272 configuration
  66. registers
  67. CONFIG_SYS_ENET_BD_BASE
  68. -- defines the base address of the FEC buffer descriptors
  69. CONFIG_SYS_SCR -- defines the contents of the System Configuration Register
  70. CONFIG_SYS_SPR -- defines the contents of the System Protection Register
  71. CONFIG_SYS_MFD -- defines the PLL Multiplication Factor Divider
  72. (see table 9-4 of MCF user manual)
  73. CONFIG_SYS_RFD -- defines the PLL Reduce Frequency Devider
  74. (see table 9-4 of MCF user manual)
  75. CONFIG_SYS_CSx_BASE
  76. -- defines the base address of chip select x
  77. CONFIG_SYS_CSx_SIZE
  78. -- defines the memory size (address range) of chip select x
  79. CONFIG_SYS_CSx_WIDTH
  80. -- defines the bus with of chip select x
  81. CONFIG_SYS_CSx_MASK
  82. -- defines the mask for the related chip select x
  83. CONFIG_SYS_CSx_RO
  84. -- if set to 0 chip select x is read/write else chip select
  85. is read only
  86. CONFIG_SYS_CSx_WS
  87. -- defines the number of wait states of chip select x
  88. CONFIG_SYS_CACHE_ICACR
  89. CONFIG_SYS_CACHE_DCACR
  90. CONFIG_SYS_CACHE_ACRX
  91. -- cache-related registers config
  92. CONFIG_SYS_SDRAM_BASE
  93. CONFIG_SYS_SDRAM_SIZE
  94. CONFIG_SYS_SDRAM_BASEX
  95. CONFIG_SYS_SDRAM_CFG1
  96. CONFIG_SYS_SDRAM_CFG2
  97. CONFIG_SYS_SDRAM_CTRL
  98. CONFIG_SYS_SDRAM_MODE
  99. CONFIG_SYS_SDRAM_EMOD
  100. -- SDRAM config for SDRAM controller-specific registers, please
  101. see arch/m68k/cpu/<specific_cpu>/start.S files to see how
  102. these options are used.
  103. CONFIG_MCFUART
  104. -- defines enabling of ColdFire UART driver
  105. CONFIG_SYS_UART_PORT
  106. -- defines the UART port to be used (only a single UART can be
  107. actually enabled)
  108. CONFIG_SYS_SBFHDR_SIZE
  109. -- size of the prepended SBF header, if any