
U-Boot for Motorola M68K

====================================================================
History

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 M68K series of CPUs.

1. OVERVIEW
-----------
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.

Although this port is intended to cover all M68k processors, only
the parts for the Motorola Coldfire MCF5272 and MCF5282 are
implemented at the moment. Additional CPUs and boards will be
hopefully added soon!


2. SUPPORTED CPUs
-----------------

2.1 Motorola Coldfire MCF5272
-----------------------------
CPU specific code is located in: arch/m68k/cpu/mcf52x2


2.1 Motorola Coldfire MCF5282
-----------------------------
CPU specific code is located in: arch/m68k/cpu/mcf52x2

The MCF5282 Port no longer needs a preloader and can place in external or
internal FLASH.


3. SUPPORTED BOARDs
-------------------

3.1 Motorola M5272C3 EVB
------------------------
Board specific code is located in: board/m5272c3

To configure the board, type: make M5272C3_config

U-Boot Memory Map:
------------------
0xffe00000 - 0xffe3ffff		u-boot
0xffe04000 - 0xffe05fff		environment (embedded in u-boot!)
0xffe40000 - 0xffffffff		free for linux/applications


3.2 Motorola M5282 EVB
------------------------
Board specific code is located in: board/m5282evb

To configure the board, type: make M5272C3_config

At the moment the code isn't fully implemented and still needs a pre-loader!
The preloader must initialize the processor and then start u-boot. The board
must be configured for a pre-loader (see 4.1)

For the preloader, please see
http://mailman.uclinux.org/pipermail/uclinux-dev/2003-December/023384.html

U-boot is configured to run at 0x20000 at default. This can be configured by
change TEXT_BASE in board/m5282evb/config.mk and CONFIG_SYS_MONITOR_BASE in
include/configs/M5282EVB.h.

3.2 BuS EB+MCF-EV123
---------------------

Board specific code is located in: board/bus/EB+MCF-EV123

To configure the board, type:

make EB+MCF-EV123_config		for external FLASH
make EB+MCF-EV123_internal_config	for internal FLASH


4. CONFIGURATION OPTIONS/SETTINGS
----------------------------------

4.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
(TEXT_BASE) to the load address.

4.1 MCF5272 specific Options/Settings
-------------------------------------

CONFIG_MCF52x2	-- defined for all MCF52x2 CPUs
CONFIG_M5272	-- defined for all Motorola MCF5272 CPUs

CONFIG_MONITOR_IS_IN_RAM
		-- defined if u-boot is loaded by a pre-loader

CONFIG_SYS_MBAR	-- defines the base address of the MCF5272 configuration registers
CONFIG_SYS_INIT_RAM_ADDR
		-- defines the base address of the MCF5272 internal SRAM
CONFIG_SYS_ENET_BD_BASE
		-- defines the base addres 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_BRx_PRELIM	-- defines the contents of the Chip Select Base Registers
CONFIG_SYS_ORx_PRELIM	-- defines the contents of the Chip Select Option Registers

CONFIG_SYS_PxDDR	-- defines the contents of the Data Direction Registers
CONFIG_SYS_PxDAT	-- defines the contents of the Data Registers
CONFIG_SYS_PXCNT	-- defines the contents of the Port Configuration Registers


4.2 MCF5282 specific Options/Settings
-------------------------------------

CONFIG_MCF52x2	-- defined for all MCF52x2 CPUs
CONFIG_M5282	-- defined for all Motorola MCF5282 CPUs

CONFIG_MONITOR_IS_IN_RAM
		-- defined if u-boot is loaded by a pre-loader

CONFIG_SYS_MBAR	-- defines the base address of the MCF5282 internal register space
CONFIG_SYS_INIT_RAM_ADDR
		-- defines the base address of the MCF5282 internal SRAM
CONFIG_SYS_INT_FLASH_BASE
		-- defines the base address of the MCF5282 internal Flash memory
CONFIG_SYS_ENET_BD_BASE
		-- defines the base addres of the FEC buffer descriptors

CONFIG_SYS_MFD
		-- defines the PLL Multiplication Factor Devider
		   (see table 9-4 of MCF user manual)
CONFIG_SYS_RFD		-- defines the PLL Reduce Frecuency 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_RO	-- if set to 0 chip select x is read/wirte
			else chipselct is read only
CONFIG_SYS_CSx_WS	-- defines the number of wait states  of chip select x

CONFIG_SYS_PxDDR	-- defines the contents of the Data Direction Registers
CONFIG_SYS_PxDAT	-- defines the contents of the Data Registers
CONFIG_SYS_PXCNT	-- defines the contents of the Port Configuration Registers

CONFIG_SYS_PxPAR	-- defines the function of ports


5. COMPILER
-----------
To create U-Boot the gcc-2.95.3 compiler set (m68k-elf-20030314) from uClinux.org was used.
You can download it from: http://www.uclinux.org/pub/uClinux/m68k-elf-tools/
