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