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