blob: f867ca1fbbbd5a1a3f3f237afa545fcf43d0e2a8 [file] [log] [blame]
wdenke65527f2004-02-12 00:47:09 +00001
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +01002U-Boot for Motorola (or Freescale/NXP) ColdFire processors
wdenke65527f2004-02-12 00:47:09 +00003
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +01004===============================================================================
Heiko Schocherac1956e2006-04-20 08:42:42 +02005History
6
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +01007November 02, 2017 Angelo Dureghello <angelo@sysam.it>
8August 08, 2005 Jens Scharsig <esw@bus-elektronik.de>
Heiko Schocherac1956e2006-04-20 08:42:42 +02009 MCF5282 implementation without preloader
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010010January 12, 2004 <josef.baumgartner@telex.de>
11===============================================================================
12
wdenke65527f2004-02-12 00:47:09 +000013
14This file contains status information for the port of U-Boot to the
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010015Motorola ColdFire series of CPUs.
16
17
181. Overview
wdenke65527f2004-02-12 00:47:09 +000019
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010020The ColdFire instruction set is "assembly source" compatible but an evolution
21of the original 68000 instruction set. Some not much used instructions has
22been removed. The instructions are only 16, 32, or 48 bits long, a
23simplification compared to the 68000 series.
wdenke65527f2004-02-12 00:47:09 +000024
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010025Bernhard Kuhn ported U-Boot 0.4.0 to the Motorola ColdFire architecture.
26The patches of Bernhard support the MCF5272 and MCF5282. A great disadvantage
27of these patches was that they needed a pre-bootloader to start U-Boot.
28Because of this, a new port was created which no longer needs a first stage
29booter.
wdenke65527f2004-02-12 00:47:09 +000030
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010031Thanks mainly to Freescale but also to several other contributors, U-Boot now
32supports nearly the entire range of ColdFire processors and their related
33development boards.
wdenke65527f2004-02-12 00:47:09 +000034
wdenke65527f2004-02-12 00:47:09 +000035
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100362. Supported CPU families
wdenke65527f2004-02-12 00:47:09 +000037
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010038Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the
39currently supported processor and families.
wdenke65527f2004-02-12 00:47:09 +000040
wdenke65527f2004-02-12 00:47:09 +000041
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100423. Supported boards
wdenke65527f2004-02-12 00:47:09 +000043
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010044U-Boot supports actually more than 40 ColdFire based boards.
45Board configuration can be done trough include/configs/<boardname>.h but the
46current recommended method is to use the new and more friendly approach as
47the "make menuconfig" way, very similar to the Linux way.
wdenke65527f2004-02-12 00:47:09 +000048
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010049To know details as memory map, build targets, default setup, etc, of a
50specific board please check:
wdenke65527f2004-02-12 00:47:09 +000051
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010052include/configs/<boardname>.h
53and/or
54configs/<boardname>_defconfig
wdenke65527f2004-02-12 00:47:09 +000055
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010056It is possible to build all ColdFire boards in a single command-line command,
57from u-boot root directory, as:
wdenke65527f2004-02-12 00:47:09 +000058
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010059./tools/buildman/buildman m68k
wdenke65527f2004-02-12 00:47:09 +000060
61
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100623.1. Build U-Boot for a specific board
wdenke65527f2004-02-12 00:47:09 +000063
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010064A bash script similar to the one below may be used:
wdenke65527f2004-02-12 00:47:09 +000065
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010066#!/bin/bash
Heiko Schocherac1956e2006-04-20 08:42:42 +020067
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010068export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux-
Heiko Schocherac1956e2006-04-20 08:42:42 +020069
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010070board=M5475DFE
Heiko Schocherac1956e2006-04-20 08:42:42 +020071
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010072make distclean
73make ARCH=m68k ${board}_defconfig
74make ARCH=m68k KBUILD_VERBOSE=1
Heiko Schocherac1956e2006-04-20 08:42:42 +020075
Heiko Schocherac1956e2006-04-20 08:42:42 +020076
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100774. Adopted toolchains
Heiko Schocherac1956e2006-04-20 08:42:42 +020078
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010079Please check:
80https://www.denx.de/wiki/U-Boot/ColdFireNotes
Heiko Schocherac1956e2006-04-20 08:42:42 +020081
wdenke65527f2004-02-12 00:47:09 +000082
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100835. ColdFire specific configuration options/settings
wdenke65527f2004-02-12 00:47:09 +000084
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010085
865.1. Configuration to use a pre-loader
87
Bin Meng75574052016-02-05 19:30:11 -080088If U-Boot should be loaded to RAM and started by a pre-loader
wdenke65527f2004-02-12 00:47:09 +000089CONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the
90initial vector table and basic processor initialization will not
Bin Meng75574052016-02-05 19:30:11 -080091be compiled in. The start address of U-Boot must be adjusted in
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020092the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
Wolfgang Denk0708bc62010-10-07 21:51:12 +020093(CONFIG_SYS_TEXT_BASE) to the load address.
wdenke65527f2004-02-12 00:47:09 +000094
wdenke65527f2004-02-12 00:47:09 +000095
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100965.2 ColdFire CPU specific options/settings
wdenke65527f2004-02-12 00:47:09 +000097
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +010098To specify a CPU model, some defines shoudl be used, i.e.:
wdenke65527f2004-02-12 00:47:09 +000099
100CONFIG_MCF52x2 -- defined for all MCF52x2 CPUs
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100101CONFIG_M5272 -- defined for all Motorola MCF5272 CPUs
wdenke65527f2004-02-12 00:47:09 +0000102
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100103Other options, generally set inside include/configs/<boardname>.h, they may
104apply to one or more cpu for the ColdFire family:
wdenke65527f2004-02-12 00:47:09 +0000105
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100106CONFIG_SYS_MBAR -- defines the base address of the MCF5272 configuration
107 registers
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +0200108CONFIG_SYS_ENET_BD_BASE
Mike Williamsbf895ad2011-07-22 04:01:30 +0000109 -- defines the base address of the FEC buffer descriptors
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100110CONFIG_SYS_SCR -- defines the contents of the System Configuration Register
111CONFIG_SYS_SPR -- defines the contents of the System Protection Register
112CONFIG_SYS_MFD -- defines the PLL Multiplication Factor Divider
Heiko Schocherac1956e2006-04-20 08:42:42 +0200113 (see table 9-4 of MCF user manual)
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100114CONFIG_SYS_RFD -- defines the PLL Reduce Frequency Devider
Heiko Schocherac1956e2006-04-20 08:42:42 +0200115 (see table 9-4 of MCF user manual)
Angelo Dureghelloe637e6f2017-11-03 01:35:34 +0100116CONFIG_SYS_CSx_BASE
117 -- defines the base address of chip select x
118CONFIG_SYS_CSx_SIZE
119 -- defines the memory size (address range) of chip select x
120CONFIG_SYS_CSx_WIDTH
121 -- defines the bus with of chip select x
122CONFIG_SYS_CSx_MASK
123 -- defines the mask for the related chip select x
124CONFIG_SYS_CSx_RO
125 -- if set to 0 chip select x is read/write else chip select
126 is read only
127CONFIG_SYS_CSx_WS
128 -- defines the number of wait states of chip select x
129CONFIG_SYS_CACHE_ICACR
130CONFIG_SYS_CACHE_DCACR
131CONFIG_SYS_CACHE_ACRX
132 -- cache-related registers config
133CONFIG_SYS_SDRAM_BASE
134CONFIG_SYS_SDRAM_SIZE
135CONFIG_SYS_SDRAM_BASEX
136CONFIG_SYS_SDRAM_CFG1
137CONFIG_SYS_SDRAM_CFG2
138CONFIG_SYS_SDRAM_CTRL
139CONFIG_SYS_SDRAM_MODE
140CONFIG_SYS_SDRAM_EMOD
141 -- SDRAM config for SDRAM controller-specific registers, please
142 see arch/m68k/cpu/<specific_cpu>/start.S files to see how
143 these options are used.
144CONFIG_MCFUART
145 -- defines enabling of ColdFire UART driver
146CONFIG_SYS_UART_PORT
147 -- defines the UART port to be used (only a single UART can be
148 actually enabled)
149CONFIG_SYS_SBFHDR_SIZE
150 -- size of the prepended SBF header, if any