xref: /OK3568_Linux_fs/u-boot/doc/README.m68k (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun
2*4882a593SmuzhiyunU-Boot for Motorola M68K
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun====================================================================
5*4882a593SmuzhiyunHistory
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunAugust 08,2005;		Jens Scharsig <esw@bus-elektronik.de>
8*4882a593Smuzhiyun			MCF5282 implementation without preloader
9*4882a593SmuzhiyunJanuary 12, 2004;	<josef.baumgartner@telex.de>
10*4882a593Smuzhiyun====================================================================
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThis file contains status information for the port of U-Boot to the
13*4882a593SmuzhiyunMotorola M68K series of CPUs.
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun1. OVERVIEW
16*4882a593Smuzhiyun-----------
17*4882a593SmuzhiyunBernhard Kuhn ported U-Boot 0.4.0 to the Motorola Coldfire
18*4882a593Smuzhiyunarchitecture. The patches of Bernhard support the MCF5272 and
19*4882a593SmuzhiyunMCF5282. A great disadvantage of these patches was that they needed
20*4882a593Smuzhiyuna pre-bootloader to start U-Boot. Because of this, a new port was
21*4882a593Smuzhiyuncreated which no longer needs a first stage booter.
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunAlthough this port is intended to cover all M68k processors, only
24*4882a593Smuzhiyunthe parts for the Motorola Coldfire MCF5272 and MCF5282 are
25*4882a593Smuzhiyunimplemented at the moment. Additional CPUs and boards will be
26*4882a593Smuzhiyunhopefully added soon!
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun2. SUPPORTED CPUs
30*4882a593Smuzhiyun-----------------
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun2.1 Motorola Coldfire MCF5272
33*4882a593Smuzhiyun-----------------------------
34*4882a593SmuzhiyunCPU specific code is located in: arch/m68k/cpu/mcf52x2
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun2.1 Motorola Coldfire MCF5282
38*4882a593Smuzhiyun-----------------------------
39*4882a593SmuzhiyunCPU specific code is located in: arch/m68k/cpu/mcf52x2
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunThe MCF5282 Port no longer needs a preloader and can place in external or
42*4882a593Smuzhiyuninternal FLASH.
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun3. SUPPORTED BOARDs
46*4882a593Smuzhiyun-------------------
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun3.1 Motorola M5272C3 EVB
49*4882a593Smuzhiyun------------------------
50*4882a593SmuzhiyunBoard specific code is located in: board/m5272c3
51*4882a593Smuzhiyun
52*4882a593SmuzhiyunTo configure the board, type: make M5272C3_config
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunU-Boot Memory Map:
55*4882a593Smuzhiyun------------------
56*4882a593Smuzhiyun0xffe00000 - 0xffe3ffff		U-Boot
57*4882a593Smuzhiyun0xffe04000 - 0xffe05fff		environment (embedded in U-Boot!)
58*4882a593Smuzhiyun0xffe40000 - 0xffffffff		free for linux/applications
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun3.2 Motorola M5282 EVB
62*4882a593Smuzhiyun------------------------
63*4882a593SmuzhiyunBoard specific code is located in: board/m5282evb
64*4882a593Smuzhiyun
65*4882a593SmuzhiyunTo configure the board, type: make M5272C3_config
66*4882a593Smuzhiyun
67*4882a593SmuzhiyunAt the moment the code isn't fully implemented and still needs a pre-loader!
68*4882a593SmuzhiyunThe preloader must initialize the processor and then start U-Boot. The board
69*4882a593Smuzhiyunmust be configured for a pre-loader (see 4.1)
70*4882a593Smuzhiyun
71*4882a593SmuzhiyunFor the preloader, please see
72*4882a593Smuzhiyunhttp://mailman.uclinux.org/pipermail/uclinux-dev/2003-December/023384.html
73*4882a593Smuzhiyun
74*4882a593SmuzhiyunU-Boot is configured to run at 0x20000 at default. This can be configured by
75*4882a593Smuzhiyunchange CONFIG_SYS_TEXT_BASE in board/m5282evb/config.mk and CONFIG_SYS_MONITOR_BASE in
76*4882a593Smuzhiyuninclude/configs/M5282EVB.h.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun3.2 BuS EB+MCF-EV123
79*4882a593Smuzhiyun---------------------
80*4882a593Smuzhiyun
81*4882a593SmuzhiyunBoard specific code is located in: board/bus/EB+MCF-EV123
82*4882a593Smuzhiyun
83*4882a593SmuzhiyunTo configure the board, type:
84*4882a593Smuzhiyun
85*4882a593Smuzhiyunmake EB+MCF-EV123_config		for external FLASH
86*4882a593Smuzhiyunmake EB+MCF-EV123_internal_config	for internal FLASH
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun4. CONFIGURATION OPTIONS/SETTINGS
90*4882a593Smuzhiyun----------------------------------
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun4.1 Configuration to use a pre-loader
93*4882a593Smuzhiyun-------------------------------------
94*4882a593SmuzhiyunIf U-Boot should be loaded to RAM and started by a pre-loader
95*4882a593SmuzhiyunCONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the
96*4882a593Smuzhiyuninitial vector table and basic processor initialization will not
97*4882a593Smuzhiyunbe compiled in. The start address of U-Boot must be adjusted in
98*4882a593Smuzhiyunthe boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
99*4882a593Smuzhiyun(CONFIG_SYS_TEXT_BASE) to the load address.
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun4.1 MCF5272 specific Options/Settings
102*4882a593Smuzhiyun-------------------------------------
103*4882a593Smuzhiyun
104*4882a593SmuzhiyunCONFIG_MCF52x2	-- defined for all MCF52x2 CPUs
105*4882a593SmuzhiyunCONFIG_M5272	-- defined for all Motorola MCF5272 CPUs
106*4882a593Smuzhiyun
107*4882a593SmuzhiyunCONFIG_MONITOR_IS_IN_RAM
108*4882a593Smuzhiyun		-- defined if U-Boot is loaded by a pre-loader
109*4882a593Smuzhiyun
110*4882a593SmuzhiyunCONFIG_SYS_MBAR	-- defines the base address of the MCF5272 configuration registers
111*4882a593SmuzhiyunCONFIG_SYS_INIT_RAM_ADDR
112*4882a593Smuzhiyun		-- defines the base address of the MCF5272 internal SRAM
113*4882a593SmuzhiyunCONFIG_SYS_ENET_BD_BASE
114*4882a593Smuzhiyun		-- defines the base address of the FEC buffer descriptors
115*4882a593Smuzhiyun
116*4882a593SmuzhiyunCONFIG_SYS_SCR		-- defines the contents of the System Configuration Register
117*4882a593SmuzhiyunCONFIG_SYS_SPR		-- defines the contents of the System Protection Register
118*4882a593SmuzhiyunCONFIG_SYS_BRx_PRELIM	-- defines the contents of the Chip Select Base Registers
119*4882a593SmuzhiyunCONFIG_SYS_ORx_PRELIM	-- defines the contents of the Chip Select Option Registers
120*4882a593Smuzhiyun
121*4882a593SmuzhiyunCONFIG_SYS_PxDDR	-- defines the contents of the Data Direction Registers
122*4882a593SmuzhiyunCONFIG_SYS_PxDAT	-- defines the contents of the Data Registers
123*4882a593SmuzhiyunCONFIG_SYS_PXCNT	-- defines the contents of the Port Configuration Registers
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun4.2 MCF5282 specific Options/Settings
127*4882a593Smuzhiyun-------------------------------------
128*4882a593Smuzhiyun
129*4882a593SmuzhiyunCONFIG_MCF52x2	-- defined for all MCF52x2 CPUs
130*4882a593SmuzhiyunCONFIG_M5282	-- defined for all Motorola MCF5282 CPUs
131*4882a593Smuzhiyun
132*4882a593SmuzhiyunCONFIG_MONITOR_IS_IN_RAM
133*4882a593Smuzhiyun		-- defined if U-Boot is loaded by a pre-loader
134*4882a593Smuzhiyun
135*4882a593SmuzhiyunCONFIG_SYS_MBAR	-- defines the base address of the MCF5282 internal register space
136*4882a593SmuzhiyunCONFIG_SYS_INIT_RAM_ADDR
137*4882a593Smuzhiyun		-- defines the base address of the MCF5282 internal SRAM
138*4882a593SmuzhiyunCONFIG_SYS_INT_FLASH_BASE
139*4882a593Smuzhiyun		-- defines the base address of the MCF5282 internal Flash memory
140*4882a593SmuzhiyunCONFIG_SYS_ENET_BD_BASE
141*4882a593Smuzhiyun		-- defines the base address of the FEC buffer descriptors
142*4882a593Smuzhiyun
143*4882a593SmuzhiyunCONFIG_SYS_MFD
144*4882a593Smuzhiyun		-- defines the PLL Multiplication Factor Devider
145*4882a593Smuzhiyun		   (see table 9-4 of MCF user manual)
146*4882a593SmuzhiyunCONFIG_SYS_RFD		-- defines the PLL Reduce Frecuency Devider
147*4882a593Smuzhiyun		   (see table 9-4 of MCF user manual)
148*4882a593Smuzhiyun
149*4882a593SmuzhiyunCONFIG_SYS_CSx_BASE	-- defines the base address of chip select x
150*4882a593SmuzhiyunCONFIG_SYS_CSx_SIZE	-- defines the memory size (address range) of chip select x
151*4882a593SmuzhiyunCONFIG_SYS_CSx_WIDTH	-- defines the bus with of chip select x
152*4882a593SmuzhiyunCONFIG_SYS_CSx_RO	-- if set to 0 chip select x is read/wirte
153*4882a593Smuzhiyun			else chipselct is read only
154*4882a593SmuzhiyunCONFIG_SYS_CSx_WS	-- defines the number of wait states  of chip select x
155*4882a593Smuzhiyun
156*4882a593SmuzhiyunCONFIG_SYS_PxDDR	-- defines the contents of the Data Direction Registers
157*4882a593SmuzhiyunCONFIG_SYS_PxDAT	-- defines the contents of the Data Registers
158*4882a593SmuzhiyunCONFIG_SYS_PXCNT	-- defines the contents of the Port Configuration Registers
159*4882a593Smuzhiyun
160*4882a593SmuzhiyunCONFIG_SYS_PxPAR	-- defines the function of ports
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun5. COMPILER
164*4882a593Smuzhiyun-----------
165*4882a593SmuzhiyunTo create U-Boot the gcc-2.95.3 compiler set (m68k-elf-20030314) from uClinux.org was used.
166*4882a593SmuzhiyunYou can download it from: http://www.uclinux.org/pub/uClinux/m68k-elf-tools/
167