123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- .. SPDX-License-Identifier: GPL-2.0+
- M68K / ColdFire
- ===============
- History
- -------
- * November 02, 2017 Angelo Dureghello <angelo@sysam.it>
- * 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=M5475DFE
- make distclean
- make ${board}_defconfig
- make KBUILD_VERBOSE=1
- Adopted toolchains
- ------------------
- Please check:
- https://www.denx.de/wiki/U-Boot/ColdFireNotes
- 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 defined. If it is defined 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 config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
- (CONFIG_SYS_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:
- CONFIG_SYS_MBAR:
- defines the base address of the MCF5272 configuration registers
- CONFIG_SYS_ENET_BD_BASE:
- defines the base address of the FEC buffer descriptors
- CONFIG_SYS_SCR:
- defines the contents of the System Configuration Register
- CONFIG_SYS_SPR:
- defines the contents of the System Protection Register
- CONFIG_SYS_MFD:
- defines the PLL Multiplication Factor Divider
- (see table 9-4 of MCF user manual)
- CONFIG_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
- CONFIG_SYS_CACHE_ICACR:
- cache-related registers config
- CONFIG_SYS_CACHE_DCACR:
- cache-related registers config
- CONFIG_SYS_CACHE_ACRX:
- cache-related registers config
- CONFIG_SYS_SDRAM_BASE:
- SDRAM config for SDRAM controller-specific registers
- CONFIG_SYS_SDRAM_SIZE:
- SDRAM config for SDRAM controller-specific registers
- CONFIG_SYS_SDRAM_BASEX:
- SDRAM config for SDRAM controller-specific registers
- CONFIG_SYS_SDRAM_CFG1:
- SDRAM config for SDRAM controller-specific registers
- CONFIG_SYS_SDRAM_CFG2:
- SDRAM config for SDRAM controller-specific registers
- CONFIG_SYS_SDRAM_CTRL:
- SDRAM config for SDRAM controller-specific registers
- CONFIG_SYS_SDRAM_MODE:
- SDRAM config for SDRAM controller-specific registers
- CONFIG_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
- CONFIG_SYS_UART_PORT:
- defines the UART port to be used (only a single UART can be actually enabled)
- CONFIG_SYS_SBFHDR_SIZE:
- size of the prepended SBF header, if any
|