1 2U-Boot for Motorola (or Freescale/NXP) ColdFire processors 3 4=============================================================================== 5History 6 7November 02, 2017 Angelo Dureghello <angelo@sysam.it> 8August 08, 2005 Jens Scharsig <esw@bus-elektronik.de> 9 MCF5282 implementation without preloader 10January 12, 2004 <josef.baumgartner@telex.de> 11=============================================================================== 12 13 14This file contains status information for the port of U-Boot to the 15Motorola ColdFire series of CPUs. 16 17 181. Overview 19 20The 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. 34 35 362. Supported CPU families 37 38Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the 39currently supported processor and families. 40 41 423. Supported boards 43 44U-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. 48 49To know details as memory map, build targets, default setup, etc, of a 50specific board please check: 51 52include/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 60 61 623.1. Build U-Boot for a specific board 63 64A bash script similar to the one below may be used: 65 66#!/bin/bash 67 68export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux- 69 70board=M5475DFE 71 72make distclean 73make ARCH=m68k ${board}_defconfig 74make ARCH=m68k KBUILD_VERBOSE=1 75 76 774. Adopted toolchains 78 79Please 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 88If U-Boot should be loaded to RAM and started by a pre-loader 89CONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the 90initial vector table and basic processor initialization will not 91be compiled in. The start address of U-Boot must be adjusted in 92the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile 93(CONFIG_SYS_TEXT_BASE) to the load address. 94 95 965.2 ColdFire CPU specific options/settings 97 98To specify a CPU model, some defines shoudl be used, i.e.: 99 100CONFIG_MCF52x2 -- defined for all MCF52x2 CPUs 101CONFIG_M5272 -- defined for all Motorola MCF5272 CPUs 102 103Other options, generally set inside include/configs/<boardname>.h, they may 104apply to one or more cpu for the ColdFire family: 105 106CONFIG_SYS_MBAR -- defines the base address of the MCF5272 configuration 107 registers 108CONFIG_SYS_ENET_BD_BASE 109 -- defines the base address of the FEC buffer descriptors 110CONFIG_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 113 (see table 9-4 of MCF user manual) 114CONFIG_SYS_RFD -- defines the PLL Reduce Frequency Devider 115 (see table 9-4 of MCF user manual) 116CONFIG_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 151