1.. SPDX-License-Identifier: GPL-2.0+ 2 3M68K / ColdFire 4=============== 5 6History 7------- 8* November 02, 2017 Angelo Dureghello <angelo@sysam.it> 9* August 08, 2005 Jens Scharsig <esw@bus-elektronik.de> 10 MCF5282 implementation without preloader 11* January 12, 2004 <josef.baumgartner@telex.de> 12 13This file contains status information for the port of U-Boot to the 14Motorola ColdFire series of CPUs. 15 16Overview 17-------- 18 19The ColdFire instruction set is "assembly source" compatible but an evolution 20of the original 68000 instruction set. Some not much used instructions has 21been removed. The instructions are only 16, 32, or 48 bits long, a 22simplification compared to the 68000 series. 23 24Bernhard Kuhn ported U-Boot 0.4.0 to the Motorola ColdFire architecture. 25The patches of Bernhard support the MCF5272 and MCF5282. A great disadvantage 26of these patches was that they needed a pre-bootloader to start U-Boot. 27Because of this, a new port was created which no longer needs a first stage 28booter. 29 30Thanks mainly to Freescale but also to several other contributors, U-Boot now 31supports nearly the entire range of ColdFire processors and their related 32development boards. 33 34 35Supported CPU families 36---------------------- 37 38Please "make menuconfig" and select "m68k" or check arch/m68k/cpu to see the 39currently supported processor and families. 40 41 42Supported boards 43---------------- 44 45U-Boot supports actually more than 40 ColdFire based boards. 46Board configuration can be done trough include/configs/<boardname>.h but the 47current recommended method is to use the new and more friendly approach as 48the "make menuconfig" way, very similar to the Linux way. 49 50To know details as memory map, build targets, default setup, etc, of a 51specific board please check: 52 53* include/configs/<boardname>.h 54 55and/or 56 57* configs/<boardname>_defconfig 58 59It is possible to build all ColdFire boards in a single command-line command, 60from u-boot root directory, as:: 61 62 ./tools/buildman/buildman m68k 63 64Build U-Boot for a specific board 65^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 66 67A bash script similar to the one below may be used: 68 69.. code-block:: shell 70 71 #!/bin/bash 72 73 export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux- 74 75 board=M5475DFE 76 77 make distclean 78 make ${board}_defconfig 79 make KBUILD_VERBOSE=1 80 81 82Adopted toolchains 83------------------ 84 85Please check: 86https://www.denx.de/wiki/U-Boot/ColdFireNotes 87 88 89ColdFire specific configuration options/settings 90------------------------------------------------ 91 92Configuration to use a pre-loader 93^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 94 95If U-Boot should be loaded to RAM and started by a pre-loader 96CONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the 97initial vector table and basic processor initialization will not 98be compiled in. The start address of U-Boot must be adjusted in 99the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile 100(CONFIG_SYS_TEXT_BASE) to the load address. 101 102ColdFire CPU specific options/settings 103^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 104 105To specify a CPU model, some defines shoudl be used, i.e.: 106 107CONFIG_MCF52x2: 108 defined for all MCF52x2 CPUs 109CONFIG_M5272: 110 defined for all Motorola MCF5272 CPUs 111 112Other options, generally set inside include/configs/<boardname>.h, they may 113apply to one or more cpu for the ColdFire family: 114 115CONFIG_SYS_MBAR: 116 defines the base address of the MCF5272 configuration registers 117CONFIG_SYS_ENET_BD_BASE: 118 defines the base address of the FEC buffer descriptors 119CONFIG_SYS_SCR: 120 defines the contents of the System Configuration Register 121CONFIG_SYS_SPR: 122 defines the contents of the System Protection Register 123CONFIG_SYS_MFD: 124 defines the PLL Multiplication Factor Divider 125 (see table 9-4 of MCF user manual) 126CONFIG_SYS_RFD: 127 defines the PLL Reduce Frequency Devider 128 (see table 9-4 of MCF user manual) 129CONFIG_SYS_CSx_BASE: 130 defines the base address of chip select x 131CONFIG_SYS_CSx_SIZE: 132 defines the memory size (address range) of chip select x 133CONFIG_SYS_CSx_WIDTH: 134 defines the bus with of chip select x 135CONFIG_SYS_CSx_MASK: 136 defines the mask for the related chip select x 137CONFIG_SYS_CSx_RO: 138 if set to 0 chip select x is read/write else chip select is read only 139CONFIG_SYS_CSx_WS: 140 defines the number of wait states of chip select x 141CONFIG_SYS_CACHE_ICACR: 142 cache-related registers config 143CONFIG_SYS_CACHE_DCACR: 144 cache-related registers config 145CONFIG_SYS_CACHE_ACRX: 146 cache-related registers config 147CONFIG_SYS_SDRAM_BASE: 148 SDRAM config for SDRAM controller-specific registers 149CONFIG_SYS_SDRAM_SIZE: 150 SDRAM config for SDRAM controller-specific registers 151CONFIG_SYS_SDRAM_BASEX: 152 SDRAM config for SDRAM controller-specific registers 153CONFIG_SYS_SDRAM_CFG1: 154 SDRAM config for SDRAM controller-specific registers 155CONFIG_SYS_SDRAM_CFG2: 156 SDRAM config for SDRAM controller-specific registers 157CONFIG_SYS_SDRAM_CTRL: 158 SDRAM config for SDRAM controller-specific registers 159CONFIG_SYS_SDRAM_MODE: 160 SDRAM config for SDRAM controller-specific registers 161CONFIG_SYS_SDRAM_EMOD: 162 SDRAM config for SDRAM controller-specific registers, please 163 see arch/m68k/cpu/<specific_cpu>/start.S files to see how 164 these options are used. 165CONFIG_MCFUART: 166 defines enabling of ColdFire UART driver 167CONFIG_SYS_UART_PORT: 168 defines the UART port to be used (only a single UART can be actually enabled) 169CONFIG_SYS_SBFHDR_SIZE: 170 size of the prepended SBF header, if any 171