.. SPDX-License-Identifier: GPL-2.0+

M68K / ColdFire
===============

History
-------
* November 02, 2017	Angelo Dureghello <angelo@kernel-space.org>
* August   08, 2005	Jens Scharsig <esw@bus-elektronik.de>
  MCF5282 implementation without preloader
* January  12, 2004	<josef.baumgartner@telex.de>

This file contains status information for the port of U-Boot to the
Motorola ColdFire series of CPUs.

Overview
--------

The ColdFire instruction set is "assembly source" compatible but an evolution
of the original 68000 instruction set. Some not much used instructions has
been removed. The instructions are only 16, 32, or 48 bits long, a
simplification compared to the 68000 series.

Bernhard Kuhn ported U-Boot 0.4.0 to the Motorola ColdFire architecture.
The patches of Bernhard support the MCF5272 and MCF5282. A great disadvantage
of these patches was that they needed a pre-bootloader to start U-Boot.
Because of this, a new port was created which no longer needs a first stage
booter.

Thanks mainly to Freescale but also to several other contributors, U-Boot now
supports nearly the entire range of ColdFire processors and their related
development boards.


Supported CPU families
----------------------

Please "make menuconfig" and select "m68k" or check arch/m68k/cpu to see the
currently supported processor and families.


Supported boards
----------------

U-Boot supports actually more than 40 ColdFire based boards.
Board configuration can be done trough include/configs/<boardname>.h but the
current recommended method is to use the new and more friendly approach as
the "make menuconfig" way, very similar to the Linux way.

To know details as memory map, build targets, default setup, etc, of a
specific board please check:

* include/configs/<boardname>.h

and/or

* configs/<boardname>_defconfig

It is possible to build all ColdFire boards in a single command-line command,
from u-boot root directory, as::

   ./tools/buildman/buildman m68k

Build U-Boot for a specific board
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

A bash script similar to the one below may be used:

.. code-block:: shell

   #!/bin/bash

   export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux-

   board=M5249EVB

   make distclean
   make ${board}_defconfig
   make KBUILD_VERBOSE=1


Adopted toolchains
------------------

Currently the `kernel.org cross-development toolchains
<https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/>`_ are
used in the project CI builds.

ColdFire specific configuration options/settings
------------------------------------------------

Configuration to use a pre-loader
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If U-Boot should be loaded to RAM and started by a pre-loader
CONFIG_MONITOR_IS_IN_RAM must be enabled. If it is enabled the
initial vector table and basic processor initialization will not
be compiled in. The start address of U-Boot must be adjusted in
the boards defconfig file (CONFIG_SYS_MONITOR_BASE) and Makefile
(CONFIG_TEXT_BASE) to the load address.

ColdFire CPU specific options/settings
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

To specify a CPU model, some defines shoudl be used, i.e.:

CONFIG_MCF52x2:
  defined for all MCF52x2 CPUs
CONFIG_M5272:
  defined for all Motorola MCF5272 CPUs

Other options, generally set inside include/configs/<boardname>.h, they may
apply to one or more cpu for the ColdFire family:

CFG_SYS_MBAR:
  defines the base address of the MCF5272 configuration registers
CFG_SYS_SCR:
  defines the contents of the System Configuration Register
CFG_SYS_SPR:
  defines the contents of the System Protection Register
CFG_SYS_MFD:
  defines the PLL Multiplication Factor Divider
  (see table 9-4 of MCF user manual)
CFG_SYS_RFD:
  defines the PLL Reduce Frequency Devider
  (see table 9-4 of MCF user manual)
CONFIG_SYS_CSx_BASE:
  defines the base address of chip select x
CONFIG_SYS_CSx_SIZE:
  defines the memory size (address range) of chip select x
CONFIG_SYS_CSx_WIDTH:
  defines the bus with of chip select x
CONFIG_SYS_CSx_MASK:
  defines the mask for the related chip select x
CONFIG_SYS_CSx_RO:
  if set to 0 chip select x is read/write else chip select is read only
CONFIG_SYS_CSx_WS:
  defines the number of wait states  of chip select x
CFG_SYS_CACHE_ICACR:
  cache-related registers config
CFG_SYS_CACHE_DCACR:
  cache-related registers config
CONFIG_SYS_CACHE_ACRX:
  cache-related registers config
CFG_SYS_SDRAM_BASE:
  SDRAM config for SDRAM controller-specific registers
CFG_SYS_SDRAM_SIZE:
  SDRAM config for SDRAM controller-specific registers
CFG_SYS_SDRAM_BASEX:
  SDRAM config for SDRAM controller-specific registers
CFG_SYS_SDRAM_CFG1:
  SDRAM config for SDRAM controller-specific registers
CFG_SYS_SDRAM_CFG2:
  SDRAM config for SDRAM controller-specific registers
CFG_SYS_SDRAM_CTRL:
  SDRAM config for SDRAM controller-specific registers
CFG_SYS_SDRAM_MODE:
  SDRAM config for SDRAM controller-specific registers
CFG_SYS_SDRAM_EMOD:
  SDRAM config for SDRAM controller-specific registers, please
  see arch/m68k/cpu/<specific_cpu>/start.S files to see how
  these options are used.
CONFIG_MCFUART:
  defines enabling of ColdFire UART driver
CFG_SYS_UART_PORT:
  defines the UART port to be used (only a single UART can be actually enabled)
CFG_SYS_SBFHDR_SIZE:
  size of the prepended SBF header, if any
