m68k.rst 5.2 KB

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