Blame view

doc/README.m68k 4.76 KB
bf9e3b38f   wdenk   * Some code cleanup
1

6ba2da90d   Angelo Dureghello   m68k: doc: update...
2
  U-Boot for Motorola (or Freescale/NXP) ColdFire processors
bf9e3b38f   wdenk   * Some code cleanup
3

6ba2da90d   Angelo Dureghello   m68k: doc: update...
4
  ===============================================================================
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
5
  History
6ba2da90d   Angelo Dureghello   m68k: doc: update...
6
7
  November 02, 2017	Angelo Dureghello <angelo@sysam.it>
  August   08, 2005	Jens Scharsig <esw@bus-elektronik.de>
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
8
  			MCF5282 implementation without preloader
6ba2da90d   Angelo Dureghello   m68k: doc: update...
9
10
  January  12, 2004	<josef.baumgartner@telex.de>
  ===============================================================================
bf9e3b38f   wdenk   * Some code cleanup
11
12
  
  This file contains status information for the port of U-Boot to the
6ba2da90d   Angelo Dureghello   m68k: doc: update...
13
14
15
16
  Motorola ColdFire series of CPUs.
  
  
  1. Overview
bf9e3b38f   wdenk   * Some code cleanup
17

6ba2da90d   Angelo Dureghello   m68k: doc: update...
18
19
20
21
  The ColdFire instruction set is "assembly source" compatible but an evolution
  of the original 68000 instruction set. Some not much used instructions has
  been removed. The instructions are only 16, 32, or 48 bits long, a
  simplification compared to the 68000 series.
bf9e3b38f   wdenk   * Some code cleanup
22

6ba2da90d   Angelo Dureghello   m68k: doc: update...
23
24
25
26
27
  Bernhard Kuhn ported U-Boot 0.4.0 to the Motorola ColdFire architecture.
  The patches of Bernhard support the MCF5272 and MCF5282. A great disadvantage
  of these patches was that they needed a pre-bootloader to start U-Boot.
  Because of this, a new port was created which no longer needs a first stage
  booter.
bf9e3b38f   wdenk   * Some code cleanup
28

6ba2da90d   Angelo Dureghello   m68k: doc: update...
29
30
31
  Thanks mainly to Freescale but also to several other contributors, U-Boot now
  supports nearly the entire range of ColdFire processors and their related
  development boards.
bf9e3b38f   wdenk   * Some code cleanup
32

bf9e3b38f   wdenk   * Some code cleanup
33

6ba2da90d   Angelo Dureghello   m68k: doc: update...
34
  2. Supported CPU families
bf9e3b38f   wdenk   * Some code cleanup
35

6ba2da90d   Angelo Dureghello   m68k: doc: update...
36
37
  Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the
  currently supported processor and families.
bf9e3b38f   wdenk   * Some code cleanup
38

bf9e3b38f   wdenk   * Some code cleanup
39

6ba2da90d   Angelo Dureghello   m68k: doc: update...
40
  3. Supported boards
bf9e3b38f   wdenk   * Some code cleanup
41

6ba2da90d   Angelo Dureghello   m68k: doc: update...
42
43
44
45
  U-Boot supports actually more than 40 ColdFire based boards.
  Board configuration can be done trough include/configs/<boardname>.h but the
  current recommended method is to use the new and more friendly approach as
  the "make menuconfig" way, very similar to the Linux way.
bf9e3b38f   wdenk   * Some code cleanup
46

6ba2da90d   Angelo Dureghello   m68k: doc: update...
47
48
  To know details as memory map, build targets, default setup, etc, of a
  specific board please check:
bf9e3b38f   wdenk   * Some code cleanup
49

6ba2da90d   Angelo Dureghello   m68k: doc: update...
50
51
52
  include/configs/<boardname>.h
  and/or
  configs/<boardname>_defconfig
bf9e3b38f   wdenk   * Some code cleanup
53

6ba2da90d   Angelo Dureghello   m68k: doc: update...
54
55
  It is possible to build all ColdFire boards in a single command-line command,
  from u-boot root directory, as:
bf9e3b38f   wdenk   * Some code cleanup
56

6ba2da90d   Angelo Dureghello   m68k: doc: update...
57
  ./tools/buildman/buildman m68k
bf9e3b38f   wdenk   * Some code cleanup
58

6ba2da90d   Angelo Dureghello   m68k: doc: update...
59
  3.1. Build U-Boot for a specific board
bf9e3b38f   wdenk   * Some code cleanup
60

6ba2da90d   Angelo Dureghello   m68k: doc: update...
61
  A bash script similar to the one below may be used:
bf9e3b38f   wdenk   * Some code cleanup
62

6ba2da90d   Angelo Dureghello   m68k: doc: update...
63
  #!/bin/bash
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
64

6ba2da90d   Angelo Dureghello   m68k: doc: update...
65
  export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux-
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
66

6ba2da90d   Angelo Dureghello   m68k: doc: update...
67
  board=M5475DFE
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
68

6ba2da90d   Angelo Dureghello   m68k: doc: update...
69
70
71
  make distclean
  make ARCH=m68k ${board}_defconfig
  make ARCH=m68k KBUILD_VERBOSE=1
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
72

9acb626fc   Heiko Schocher   Add MCF5282 suppo...
73

6ba2da90d   Angelo Dureghello   m68k: doc: update...
74
  4. Adopted toolchains
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
75

6ba2da90d   Angelo Dureghello   m68k: doc: update...
76
77
  Please check:
  https://www.denx.de/wiki/U-Boot/ColdFireNotes
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
78

bf9e3b38f   wdenk   * Some code cleanup
79

6ba2da90d   Angelo Dureghello   m68k: doc: update...
80
81
82
83
  5. ColdFire specific configuration options/settings
  
  
  5.1. Configuration to use a pre-loader
bf9e3b38f   wdenk   * Some code cleanup
84

a187559e3   Bin Meng   Use correct spell...
85
  If U-Boot should be loaded to RAM and started by a pre-loader
bf9e3b38f   wdenk   * Some code cleanup
86
87
  CONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the
  initial vector table and basic processor initialization will not
a187559e3   Bin Meng   Use correct spell...
88
  be compiled in. The start address of U-Boot must be adjusted in
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
89
  the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
14d0a02a1   Wolfgang Denk   Rename TEXT_BASE ...
90
  (CONFIG_SYS_TEXT_BASE) to the load address.
bf9e3b38f   wdenk   * Some code cleanup
91

bf9e3b38f   wdenk   * Some code cleanup
92

6ba2da90d   Angelo Dureghello   m68k: doc: update...
93
  5.2 ColdFire CPU specific options/settings
bf9e3b38f   wdenk   * Some code cleanup
94

6ba2da90d   Angelo Dureghello   m68k: doc: update...
95
  To specify a CPU model, some defines shoudl be used, i.e.:
bf9e3b38f   wdenk   * Some code cleanup
96
97
  
  CONFIG_MCF52x2	-- defined for all MCF52x2 CPUs
6ba2da90d   Angelo Dureghello   m68k: doc: update...
98
  CONFIG_M5272	-- defined for all Motorola MCF5272 CPUs
bf9e3b38f   wdenk   * Some code cleanup
99

6ba2da90d   Angelo Dureghello   m68k: doc: update...
100
101
  Other options, generally set inside include/configs/<boardname>.h, they may
  apply to one or more cpu for the ColdFire family:
bf9e3b38f   wdenk   * Some code cleanup
102

6ba2da90d   Angelo Dureghello   m68k: doc: update...
103
104
  CONFIG_SYS_MBAR	-- defines the base address of the MCF5272 configuration
  		   registers
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
105
  CONFIG_SYS_ENET_BD_BASE
162630879   Mike Williams   cleanup: Fix typo...
106
  		-- defines the base address of the FEC buffer descriptors
6ba2da90d   Angelo Dureghello   m68k: doc: update...
107
108
109
  CONFIG_SYS_SCR	-- defines the contents of the System Configuration Register
  CONFIG_SYS_SPR	-- defines the contents of the System Protection Register
  CONFIG_SYS_MFD	-- defines the PLL Multiplication Factor Divider
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
110
  		   (see table 9-4 of MCF user manual)
6ba2da90d   Angelo Dureghello   m68k: doc: update...
111
  CONFIG_SYS_RFD	-- defines the PLL Reduce Frequency Devider
9acb626fc   Heiko Schocher   Add MCF5282 suppo...
112
  		   (see table 9-4 of MCF user manual)
6ba2da90d   Angelo Dureghello   m68k: doc: update...
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
  CONFIG_SYS_CSx_BASE
  		-- defines the base address of chip select x
  CONFIG_SYS_CSx_SIZE
  		-- defines the memory size (address range) of chip select x
  CONFIG_SYS_CSx_WIDTH
  		-- defines the bus with of chip select x
  CONFIG_SYS_CSx_MASK
  		-- defines the mask for the related chip select x
  CONFIG_SYS_CSx_RO
  		-- if set to 0 chip select x is read/write else chip select
  		   is read only
  CONFIG_SYS_CSx_WS
  		-- defines the number of wait states  of chip select x
  CONFIG_SYS_CACHE_ICACR
  CONFIG_SYS_CACHE_DCACR
  CONFIG_SYS_CACHE_ACRX
  		-- cache-related registers config
  CONFIG_SYS_SDRAM_BASE
  CONFIG_SYS_SDRAM_SIZE
  CONFIG_SYS_SDRAM_BASEX
  CONFIG_SYS_SDRAM_CFG1
  CONFIG_SYS_SDRAM_CFG2
  CONFIG_SYS_SDRAM_CTRL
  CONFIG_SYS_SDRAM_MODE
  CONFIG_SYS_SDRAM_EMOD
  		-- SDRAM config for SDRAM controller-specific registers, please
  		   see arch/m68k/cpu/<specific_cpu>/start.S files to see how
  		   these options are used.
  CONFIG_MCFUART
  		-- defines enabling of ColdFire UART driver
  CONFIG_SYS_UART_PORT
  		-- defines the UART port to be used (only a single UART can be
  		   actually enabled)
  CONFIG_SYS_SBFHDR_SIZE
  		-- size of the prepended SBF header, if any