From 6ba2da90de9acbdfbc0ad1519fd2905e9548cb34 Mon Sep 17 00:00:00 2001 From: Angelo Dureghello Date: Fri, 3 Nov 2017 01:35:34 +0100 Subject: [PATCH] m68k: doc: update outdated documentation Update m68k documentation to reflect the current ColdFire architecture support status. Signed-off-by: Angelo Dureghello --- doc/README.m54418twr | 2 + doc/README.m68k | 216 ++++++++++++++++++++++++--------------------------- 2 files changed, 102 insertions(+), 116 deletions(-) diff --git a/doc/README.m54418twr b/doc/README.m54418twr index f69ae01..1d90fcc 100644 --- a/doc/README.m54418twr +++ b/doc/README.m54418twr @@ -13,6 +13,8 @@ Changed files: - board/freescale/m54418twr/Makefile Makefile - board/freescale/m54418twr/config.mk config make - board/freescale/m54418twr/u-boot.lds Linker description +- board/freescale/m54418twr/sbf_dram_init.S + DDR/SDRAM initialization - arch/m68k/cpu/mcf5445x/cpu.c cpu specific code - arch/m68k/cpu/mcf5445x/cpu_init.c Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs diff --git a/doc/README.m68k b/doc/README.m68k index 9d5c08f..f867ca1 100644 --- a/doc/README.m68k +++ b/doc/README.m68k @@ -1,96 +1,90 @@ -U-Boot for Motorola M68K +U-Boot for Motorola (or Freescale/NXP) ColdFire processors -==================================================================== +=============================================================================== History -August 08,2005; Jens Scharsig +November 02, 2017 Angelo Dureghello +August 08, 2005 Jens Scharsig MCF5282 implementation without preloader -January 12, 2004; -==================================================================== +January 12, 2004 +=============================================================================== + 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/.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/.h +and/or +configs/_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 -------------------------------------- -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 address of the FEC buffer descriptors +5.2 ColdFire CPU specific options/settings -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 -------------------------------------- +To specify a CPU model, some defines shoudl be used, i.e.: CONFIG_MCF52x2 -- defined for all MCF52x2 CPUs -CONFIG_M5282 -- defined for all Motorola MCF5282 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/.h, they may +apply to one or more cpu for the ColdFire family: -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_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_MFD - -- defines the PLL Multiplication Factor Devider +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 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//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