|
|
|
@ -1,96 +1,90 @@ |
|
|
|
|
|
|
|
|
|
U-Boot for Motorola M68K |
|
|
|
|
U-Boot for Motorola (or Freescale/NXP) ColdFire processors |
|
|
|
|
|
|
|
|
|
==================================================================== |
|
|
|
|
=============================================================================== |
|
|
|
|
History |
|
|
|
|
|
|
|
|
|
August 08,2005; Jens Scharsig <esw@bus-elektronik.de> |
|
|
|
|
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> |
|
|
|
|
==================================================================== |
|
|
|
|
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. |
|
|
|
|
Motorola ColdFire series of CPUs. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Overview |
|
|
|
|
|
|
|
|
|
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. |
|
|
|
|
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. |
|
|
|
|
|
|
|
|
|
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! |
|
|
|
|
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 CPUs |
|
|
|
|
----------------- |
|
|
|
|
|
|
|
|
|
2.1 Motorola Coldfire MCF5272 |
|
|
|
|
----------------------------- |
|
|
|
|
CPU specific code is located in: arch/m68k/cpu/mcf52x2 |
|
|
|
|
2. Supported CPU families |
|
|
|
|
|
|
|
|
|
Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the |
|
|
|
|
currently supported processor and families. |
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
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. |
|
|
|
|
|
|
|
|
|
3. SUPPORTED BOARDs |
|
|
|
|
------------------- |
|
|
|
|
To know details as memory map, build targets, default setup, etc, of a |
|
|
|
|
specific board please check: |
|
|
|
|
|
|
|
|
|
3.1 Motorola M5272C3 EVB |
|
|
|
|
------------------------ |
|
|
|
|
Board specific code is located in: board/m5272c3 |
|
|
|
|
include/configs/<boardname>.h |
|
|
|
|
and/or |
|
|
|
|
configs/<boardname>_defconfig |
|
|
|
|
|
|
|
|
|
To configure the board, type: make M5272C3_config |
|
|
|
|
It is possible to build all ColdFire boards in a single command-line command, |
|
|
|
|
from u-boot root directory, as: |
|
|
|
|
|
|
|
|
|
U-Boot Memory Map: |
|
|
|
|
------------------ |
|
|
|
|
0xffe00000 - 0xffe3ffff U-Boot |
|
|
|
|
0xffe04000 - 0xffe05fff environment (embedded in U-Boot!) |
|
|
|
|
0xffe40000 - 0xffffffff free for linux/applications |
|
|
|
|
./tools/buildman/buildman m68k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.2 Motorola M5282 EVB |
|
|
|
|
------------------------ |
|
|
|
|
Board specific code is located in: board/m5282evb |
|
|
|
|
3.1. Build U-Boot for a specific board |
|
|
|
|
|
|
|
|
|
To configure the board, type: make M5272C3_config |
|
|
|
|
A bash script similar to the one below may be used: |
|
|
|
|
|
|
|
|
|
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) |
|
|
|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
For the preloader, please see |
|
|
|
|
http://mailman.uclinux.org/pipermail/uclinux-dev/2003-December/023384.html |
|
|
|
|
export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux- |
|
|
|
|
|
|
|
|
|
U-Boot is configured to run at 0x20000 at default. This can be configured by |
|
|
|
|
change CONFIG_SYS_TEXT_BASE in board/m5282evb/config.mk and CONFIG_SYS_MONITOR_BASE in |
|
|
|
|
include/configs/M5282EVB.h. |
|
|
|
|
board=M5475DFE |
|
|
|
|
|
|
|
|
|
3.2 BuS EB+MCF-EV123 |
|
|
|
|
--------------------- |
|
|
|
|
make distclean |
|
|
|
|
make ARCH=m68k ${board}_defconfig |
|
|
|
|
make ARCH=m68k KBUILD_VERBOSE=1 |
|
|
|
|
|
|
|
|
|
Board specific code is located in: board/bus/EB+MCF-EV123 |
|
|
|
|
|
|
|
|
|
To configure the board, type: |
|
|
|
|
4. Adopted toolchains |
|
|
|
|
|
|
|
|
|
make EB+MCF-EV123_config for external FLASH |
|
|
|
|
make EB+MCF-EV123_internal_config for internal FLASH |
|
|
|
|
Please check: |
|
|
|
|
https://www.denx.de/wiki/U-Boot/ColdFireNotes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. CONFIGURATION OPTIONS/SETTINGS |
|
|
|
|
---------------------------------- |
|
|
|
|
5. ColdFire specific configuration options/settings |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.1. Configuration to use a pre-loader |
|
|
|
|
|
|
|
|
|
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 |
|
|
|
@ -98,69 +92,59 @@ 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. |
|
|
|
|
|
|
|
|
|
4.1 MCF5272 specific Options/Settings |
|
|
|
|
------------------------------------- |
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
CONFIG_MONITOR_IS_IN_RAM |
|
|
|
|
-- defined if U-Boot is loaded by a pre-loader |
|
|
|
|
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_INIT_RAM_ADDR |
|
|
|
|
-- defines the base address of the MCF5272 internal SRAM |
|
|
|
|
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_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 address of the FEC buffer descriptors |
|
|
|
|
|
|
|
|
|
CONFIG_SYS_MFD |
|
|
|
|
-- defines the PLL Multiplication Factor Devider |
|
|
|
|
CONFIG_SYS_MFD -- defines the PLL Multiplication Factor Divider |
|
|
|
|
(see table 9-4 of MCF user manual) |
|
|
|
|
CONFIG_SYS_RFD -- defines the PLL Reduce Frecuency Devider |
|
|
|
|
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_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/ |
|
|
|
|
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 |
|
|
|
|