Blame view

doc/README.m68k 4.76 KB
d41ce506b   Eric Lee   Initial Release, ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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
148
149
150
  
  U-Boot for Motorola (or Freescale/NXP) ColdFire processors
  
  ===============================================================================
  History
  
  November 02, 2017	Angelo Dureghello <angelo@sysam.it>
  August   08, 2005	Jens Scharsig <esw@bus-elektronik.de>
  			MCF5282 implementation without preloader
  January  12, 2004	<josef.baumgartner@telex.de>
  ===============================================================================
  
  
  This file contains status information for the port of U-Boot to the
  Motorola ColdFire series of CPUs.
  
  
  1. Overview
  
  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.
  
  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.
  
  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.
  
  
  2. Supported CPU families
  
  Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the
  currently supported processor and families.
  
  
  3. Supported boards
  
  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.
  
  To know details as memory map, build targets, default setup, etc, of a
  specific board please check:
  
  include/configs/<boardname>.h
  and/or
  configs/<boardname>_defconfig
  
  It is possible to build all ColdFire boards in a single command-line command,
  from u-boot root directory, as:
  
  ./tools/buildman/buildman m68k
  
  
  3.1. Build U-Boot for a specific board
  
  A bash script similar to the one below may be used:
  
  #!/bin/bash
  
  export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux-
  
  board=M5475DFE
  
  make distclean
  make ARCH=m68k ${board}_defconfig
  make ARCH=m68k KBUILD_VERBOSE=1
  
  
  4. Adopted toolchains
  
  Please check:
  https://www.denx.de/wiki/U-Boot/ColdFireNotes
  
  
  5. ColdFire specific configuration options/settings
  
  
  5.1. Configuration to use a pre-loader
  
  If U-Boot should be loaded to RAM and started by a pre-loader
  CONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the
  initial vector table and basic processor initialization will not
  be compiled in. The start address of U-Boot must be adjusted in
  the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
  (CONFIG_SYS_TEXT_BASE) to the load address.
  
  
  5.2 ColdFire CPU specific options/settings
  
  To specify a CPU model, some defines shoudl be used, i.e.:
  
  CONFIG_MCF52x2	-- defined for all MCF52x2 CPUs
  CONFIG_M5272	-- defined for all Motorola MCF5272 CPUs
  
  Other options, generally set inside include/configs/<boardname>.h, they may
  apply to one or more cpu for the ColdFire family:
  
  CONFIG_SYS_MBAR	-- defines the base address of the MCF5272 configuration
  		   registers
  CONFIG_SYS_ENET_BD_BASE
  		-- defines the base address of the FEC buffer descriptors
  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
  		   (see table 9-4 of MCF user manual)
  CONFIG_SYS_RFD	-- defines the PLL Reduce Frequency Devider
  		   (see table 9-4 of MCF user manual)
  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