blob: f867ca1fbbbd5a1a3f3f237afa545fcf43d0e2a8 [file] [log] [blame]
wdenkbf9e3b32004-02-12 00:47:09 +00001
Angelo Dureghello6ba2da92017-11-03 01:35:34 +01002U-Boot for Motorola (or Freescale/NXP) ColdFire processors
wdenkbf9e3b32004-02-12 00:47:09 +00003
Angelo Dureghello6ba2da92017-11-03 01:35:34 +01004===============================================================================
Heiko Schocher9acb6262006-04-20 08:42:42 +02005History
6
Angelo Dureghello6ba2da92017-11-03 01:35:34 +01007November 02, 2017 Angelo Dureghello <angelo@sysam.it>
8August 08, 2005 Jens Scharsig <esw@bus-elektronik.de>
Heiko Schocher9acb6262006-04-20 08:42:42 +02009 MCF5282 implementation without preloader
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010010January 12, 2004 <josef.baumgartner@telex.de>
11===============================================================================
12
wdenkbf9e3b32004-02-12 00:47:09 +000013
14This file contains status information for the port of U-Boot to the
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010015Motorola ColdFire series of CPUs.
wdenkbf9e3b32004-02-12 00:47:09 +000016
17
Angelo Dureghello6ba2da92017-11-03 01:35:34 +0100181. Overview
wdenkbf9e3b32004-02-12 00:47:09 +000019
Angelo Dureghello6ba2da92017-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.
24
25Bernhard 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.
30
31Thanks 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.
wdenkbf9e3b32004-02-12 00:47:09 +000034
35
Angelo Dureghello6ba2da92017-11-03 01:35:34 +0100362. Supported CPU families
wdenkbf9e3b32004-02-12 00:47:09 +000037
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010038Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the
39currently supported processor and families.
wdenkbf9e3b32004-02-12 00:47:09 +000040
41
Angelo Dureghello6ba2da92017-11-03 01:35:34 +0100423. Supported boards
wdenkbf9e3b32004-02-12 00:47:09 +000043
Angelo Dureghello6ba2da92017-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.
wdenkbf9e3b32004-02-12 00:47:09 +000048
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010049To know details as memory map, build targets, default setup, etc, of a
50specific board please check:
wdenkbf9e3b32004-02-12 00:47:09 +000051
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010052include/configs/<boardname>.h
53and/or
54configs/<boardname>_defconfig
55
56It is possible to build all ColdFire boards in a single command-line command,
57from u-boot root directory, as:
58
59./tools/buildman/buildman m68k
wdenkbf9e3b32004-02-12 00:47:09 +000060
61
Angelo Dureghello6ba2da92017-11-03 01:35:34 +0100623.1. Build U-Boot for a specific board
wdenkbf9e3b32004-02-12 00:47:09 +000063
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010064A bash script similar to the one below may be used:
wdenkbf9e3b32004-02-12 00:47:09 +000065
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010066#!/bin/bash
Heiko Schocher9acb6262006-04-20 08:42:42 +020067
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010068export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux-
Heiko Schocher9acb6262006-04-20 08:42:42 +020069
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010070board=M5475DFE
Heiko Schocher9acb6262006-04-20 08:42:42 +020071
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010072make distclean
73make ARCH=m68k ${board}_defconfig
74make ARCH=m68k KBUILD_VERBOSE=1
Heiko Schocher9acb6262006-04-20 08:42:42 +020075
wdenkbf9e3b32004-02-12 00:47:09 +000076
Angelo Dureghello6ba2da92017-11-03 01:35:34 +0100774. Adopted toolchains
wdenkbf9e3b32004-02-12 00:47:09 +000078
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010079Please check:
80https://www.denx.de/wiki/U-Boot/ColdFireNotes
81
82
835. ColdFire specific configuration options/settings
84
85
865.1. Configuration to use a pre-loader
87
Bin Menga1875592016-02-05 19:30:11 -080088If U-Boot should be loaded to RAM and started by a pre-loader
wdenkbf9e3b32004-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 Menga1875592016-02-05 19:30:11 -080091be compiled in. The start address of U-Boot must be adjusted in
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020092the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
Wolfgang Denk14d0a022010-10-07 21:51:12 +020093(CONFIG_SYS_TEXT_BASE) to the load address.
wdenkbf9e3b32004-02-12 00:47:09 +000094
Angelo Dureghello6ba2da92017-11-03 01:35:34 +010095
965.2 ColdFire CPU specific options/settings
97
98To specify a CPU model, some defines shoudl be used, i.e.:
wdenkbf9e3b32004-02-12 00:47:09 +000099
100CONFIG_MCF52x2 -- defined for all MCF52x2 CPUs
101CONFIG_M5272 -- defined for all Motorola MCF5272 CPUs
102
Angelo Dureghello6ba2da92017-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:
wdenkbf9e3b32004-02-12 00:47:09 +0000105
Angelo Dureghello6ba2da92017-11-03 01:35:34 +0100106CONFIG_SYS_MBAR -- defines the base address of the MCF5272 configuration
107 registers
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200108CONFIG_SYS_ENET_BD_BASE
Mike Williams16263082011-07-22 04:01:30 +0000109 -- defines the base address of the FEC buffer descriptors
Angelo Dureghello6ba2da92017-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 Schocher9acb6262006-04-20 08:42:42 +0200113 (see table 9-4 of MCF user manual)
Angelo Dureghello6ba2da92017-11-03 01:35:34 +0100114CONFIG_SYS_RFD -- defines the PLL Reduce Frequency Devider
Heiko Schocher9acb6262006-04-20 08:42:42 +0200115 (see table 9-4 of MCF user manual)
Angelo Dureghello6ba2da92017-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