Commit 6ba2da90de9acbdfbc0ad1519fd2905e9548cb34

Authored by Angelo Dureghello
Committed by Tom Rini
1 parent 8f7102cf6b

m68k: doc: update outdated documentation

Update m68k documentation to reflect the current ColdFire
architecture support status.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>

Showing 2 changed files with 102 additions and 116 deletions Side-by-side Diff

doc/README.m54418twr
... ... @@ -13,6 +13,8 @@
13 13 - board/freescale/m54418twr/Makefile Makefile
14 14 - board/freescale/m54418twr/config.mk config make
15 15 - board/freescale/m54418twr/u-boot.lds Linker description
  16 +- board/freescale/m54418twr/sbf_dram_init.S
  17 + DDR/SDRAM initialization
16 18  
17 19 - arch/m68k/cpu/mcf5445x/cpu.c cpu specific code
18 20 - arch/m68k/cpu/mcf5445x/cpu_init.c Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs
1 1  
2   -U-Boot for Motorola M68K
  2 +U-Boot for Motorola (or Freescale/NXP) ColdFire processors
3 3  
4   -====================================================================
  4 +===============================================================================
5 5 History
6 6  
7   -August 08,2005; Jens Scharsig <esw@bus-elektronik.de>
  7 +November 02, 2017 Angelo Dureghello <angelo@sysam.it>
  8 +August 08, 2005 Jens Scharsig <esw@bus-elektronik.de>
8 9 MCF5282 implementation without preloader
9   -January 12, 2004; <josef.baumgartner@telex.de>
10   -====================================================================
  10 +January 12, 2004 <josef.baumgartner@telex.de>
  11 +===============================================================================
11 12  
  13 +
12 14 This file contains status information for the port of U-Boot to the
13   -Motorola M68K series of CPUs.
  15 +Motorola ColdFire series of CPUs.
14 16  
15   -1. OVERVIEW
16   ------------
17   -Bernhard Kuhn ported U-Boot 0.4.0 to the Motorola Coldfire
18   -architecture. The patches of Bernhard support the MCF5272 and
19   -MCF5282. A great disadvantage of these patches was that they needed
20   -a pre-bootloader to start U-Boot. Because of this, a new port was
21   -created which no longer needs a first stage booter.
22 17  
23   -Although this port is intended to cover all M68k processors, only
24   -the parts for the Motorola Coldfire MCF5272 and MCF5282 are
25   -implemented at the moment. Additional CPUs and boards will be
26   -hopefully added soon!
  18 +1. Overview
27 19  
  20 +The ColdFire instruction set is "assembly source" compatible but an evolution
  21 +of the original 68000 instruction set. Some not much used instructions has
  22 +been removed. The instructions are only 16, 32, or 48 bits long, a
  23 +simplification compared to the 68000 series.
28 24  
29   -2. SUPPORTED CPUs
30   ------------------
  25 +Bernhard Kuhn ported U-Boot 0.4.0 to the Motorola ColdFire architecture.
  26 +The patches of Bernhard support the MCF5272 and MCF5282. A great disadvantage
  27 +of these patches was that they needed a pre-bootloader to start U-Boot.
  28 +Because of this, a new port was created which no longer needs a first stage
  29 +booter.
31 30  
32   -2.1 Motorola Coldfire MCF5272
33   ------------------------------
34   -CPU specific code is located in: arch/m68k/cpu/mcf52x2
  31 +Thanks mainly to Freescale but also to several other contributors, U-Boot now
  32 +supports nearly the entire range of ColdFire processors and their related
  33 +development boards.
35 34  
36 35  
37   -2.1 Motorola Coldfire MCF5282
38   ------------------------------
39   -CPU specific code is located in: arch/m68k/cpu/mcf52x2
  36 +2. Supported CPU families
40 37  
41   -The MCF5282 Port no longer needs a preloader and can place in external or
42   -internal FLASH.
  38 +Please "make menuconfig" with ARCH=m68k, or check arch/m68k/cpu to see the
  39 +currently supported processor and families.
43 40  
44 41  
45   -3. SUPPORTED BOARDs
46   --------------------
  42 +3. Supported boards
47 43  
48   -3.1 Motorola M5272C3 EVB
49   -------------------------
50   -Board specific code is located in: board/m5272c3
  44 +U-Boot supports actually more than 40 ColdFire based boards.
  45 +Board configuration can be done trough include/configs/<boardname>.h but the
  46 +current recommended method is to use the new and more friendly approach as
  47 +the "make menuconfig" way, very similar to the Linux way.
51 48  
52   -To configure the board, type: make M5272C3_config
  49 +To know details as memory map, build targets, default setup, etc, of a
  50 +specific board please check:
53 51  
54   -U-Boot Memory Map:
55   -------------------
56   -0xffe00000 - 0xffe3ffff U-Boot
57   -0xffe04000 - 0xffe05fff environment (embedded in U-Boot!)
58   -0xffe40000 - 0xffffffff free for linux/applications
  52 +include/configs/<boardname>.h
  53 +and/or
  54 +configs/<boardname>_defconfig
59 55  
  56 +It is possible to build all ColdFire boards in a single command-line command,
  57 +from u-boot root directory, as:
60 58  
61   -3.2 Motorola M5282 EVB
62   -------------------------
63   -Board specific code is located in: board/m5282evb
  59 +./tools/buildman/buildman m68k
64 60  
65   -To configure the board, type: make M5272C3_config
66 61  
67   -At the moment the code isn't fully implemented and still needs a pre-loader!
68   -The preloader must initialize the processor and then start U-Boot. The board
69   -must be configured for a pre-loader (see 4.1)
  62 +3.1. Build U-Boot for a specific board
70 63  
71   -For the preloader, please see
72   -http://mailman.uclinux.org/pipermail/uclinux-dev/2003-December/023384.html
  64 +A bash script similar to the one below may be used:
73 65  
74   -U-Boot is configured to run at 0x20000 at default. This can be configured by
75   -change CONFIG_SYS_TEXT_BASE in board/m5282evb/config.mk and CONFIG_SYS_MONITOR_BASE in
76   -include/configs/M5282EVB.h.
  66 +#!/bin/bash
77 67  
78   -3.2 BuS EB+MCF-EV123
79   ----------------------
  68 +export CROSS_COMPILE=/opt/toolchains/m68k/gcc-4.9.0-nolibc/bin/m68k-linux-
80 69  
81   -Board specific code is located in: board/bus/EB+MCF-EV123
  70 +board=M5475DFE
82 71  
83   -To configure the board, type:
  72 +make distclean
  73 +make ARCH=m68k ${board}_defconfig
  74 +make ARCH=m68k KBUILD_VERBOSE=1
84 75  
85   -make EB+MCF-EV123_config for external FLASH
86   -make EB+MCF-EV123_internal_config for internal FLASH
87 76  
  77 +4. Adopted toolchains
88 78  
89   -4. CONFIGURATION OPTIONS/SETTINGS
90   -----------------------------------
  79 +Please check:
  80 +https://www.denx.de/wiki/U-Boot/ColdFireNotes
91 81  
92   -4.1 Configuration to use a pre-loader
93   --------------------------------------
  82 +
  83 +5. ColdFire specific configuration options/settings
  84 +
  85 +
  86 +5.1. Configuration to use a pre-loader
  87 +
94 88 If U-Boot should be loaded to RAM and started by a pre-loader
95 89 CONFIG_MONITOR_IS_IN_RAM must be defined. If it is defined the
96 90 initial vector table and basic processor initialization will not
97 91  
98 92  
99 93  
100 94  
101 95  
102 96  
103 97  
104 98  
105 99  
... ... @@ -98,70 +92,60 @@
98 92 the boards config header file (CONFIG_SYS_MONITOR_BASE) and Makefile
99 93 (CONFIG_SYS_TEXT_BASE) to the load address.
100 94  
101   -4.1 MCF5272 specific Options/Settings
102   --------------------------------------
103 95  
104   -CONFIG_MCF52x2 -- defined for all MCF52x2 CPUs
105   -CONFIG_M5272 -- defined for all Motorola MCF5272 CPUs
  96 +5.2 ColdFire CPU specific options/settings
106 97  
107   -CONFIG_MONITOR_IS_IN_RAM
108   - -- defined if U-Boot is loaded by a pre-loader
  98 +To specify a CPU model, some defines shoudl be used, i.e.:
109 99  
110   -CONFIG_SYS_MBAR -- defines the base address of the MCF5272 configuration registers
111   -CONFIG_SYS_INIT_RAM_ADDR
112   - -- defines the base address of the MCF5272 internal SRAM
113   -CONFIG_SYS_ENET_BD_BASE
114   - -- defines the base address of the FEC buffer descriptors
115   -
116   -CONFIG_SYS_SCR -- defines the contents of the System Configuration Register
117   -CONFIG_SYS_SPR -- defines the contents of the System Protection Register
118   -CONFIG_SYS_BRx_PRELIM -- defines the contents of the Chip Select Base Registers
119   -CONFIG_SYS_ORx_PRELIM -- defines the contents of the Chip Select Option Registers
120   -
121   -CONFIG_SYS_PxDDR -- defines the contents of the Data Direction Registers
122   -CONFIG_SYS_PxDAT -- defines the contents of the Data Registers
123   -CONFIG_SYS_PXCNT -- defines the contents of the Port Configuration Registers
124   -
125   -
126   -4.2 MCF5282 specific Options/Settings
127   --------------------------------------
128   -
129 100 CONFIG_MCF52x2 -- defined for all MCF52x2 CPUs
130   -CONFIG_M5282 -- defined for all Motorola MCF5282 CPUs
  101 +CONFIG_M5272 -- defined for all Motorola MCF5272 CPUs
131 102  
132   -CONFIG_MONITOR_IS_IN_RAM
133   - -- defined if U-Boot is loaded by a pre-loader
  103 +Other options, generally set inside include/configs/<boardname>.h, they may
  104 +apply to one or more cpu for the ColdFire family:
134 105  
135   -CONFIG_SYS_MBAR -- defines the base address of the MCF5282 internal register space
136   -CONFIG_SYS_INIT_RAM_ADDR
137   - -- defines the base address of the MCF5282 internal SRAM
138   -CONFIG_SYS_INT_FLASH_BASE
139   - -- defines the base address of the MCF5282 internal Flash memory
  106 +CONFIG_SYS_MBAR -- defines the base address of the MCF5272 configuration
  107 + registers
140 108 CONFIG_SYS_ENET_BD_BASE
141 109 -- defines the base address of the FEC buffer descriptors
142   -
143   -CONFIG_SYS_MFD
144   - -- defines the PLL Multiplication Factor Devider
  110 +CONFIG_SYS_SCR -- defines the contents of the System Configuration Register
  111 +CONFIG_SYS_SPR -- defines the contents of the System Protection Register
  112 +CONFIG_SYS_MFD -- defines the PLL Multiplication Factor Divider
145 113 (see table 9-4 of MCF user manual)
146   -CONFIG_SYS_RFD -- defines the PLL Reduce Frecuency Devider
  114 +CONFIG_SYS_RFD -- defines the PLL Reduce Frequency Devider
147 115 (see table 9-4 of MCF user manual)
148   -
149   -CONFIG_SYS_CSx_BASE -- defines the base address of chip select x
150   -CONFIG_SYS_CSx_SIZE -- defines the memory size (address range) of chip select x
151   -CONFIG_SYS_CSx_WIDTH -- defines the bus with of chip select x
152   -CONFIG_SYS_CSx_RO -- if set to 0 chip select x is read/wirte
153   - else chipselct is read only
154   -CONFIG_SYS_CSx_WS -- defines the number of wait states of chip select x
155   -
156   -CONFIG_SYS_PxDDR -- defines the contents of the Data Direction Registers
157   -CONFIG_SYS_PxDAT -- defines the contents of the Data Registers
158   -CONFIG_SYS_PXCNT -- defines the contents of the Port Configuration Registers
159   -
160   -CONFIG_SYS_PxPAR -- defines the function of ports
161   -
162   -
163   -5. COMPILER
164   ------------
165   -To create U-Boot the gcc-2.95.3 compiler set (m68k-elf-20030314) from uClinux.org was used.
166   -You can download it from: http://www.uclinux.org/pub/uClinux/m68k-elf-tools/
  116 +CONFIG_SYS_CSx_BASE
  117 + -- defines the base address of chip select x
  118 +CONFIG_SYS_CSx_SIZE
  119 + -- defines the memory size (address range) of chip select x
  120 +CONFIG_SYS_CSx_WIDTH
  121 + -- defines the bus with of chip select x
  122 +CONFIG_SYS_CSx_MASK
  123 + -- defines the mask for the related chip select x
  124 +CONFIG_SYS_CSx_RO
  125 + -- if set to 0 chip select x is read/write else chip select
  126 + is read only
  127 +CONFIG_SYS_CSx_WS
  128 + -- defines the number of wait states of chip select x
  129 +CONFIG_SYS_CACHE_ICACR
  130 +CONFIG_SYS_CACHE_DCACR
  131 +CONFIG_SYS_CACHE_ACRX
  132 + -- cache-related registers config
  133 +CONFIG_SYS_SDRAM_BASE
  134 +CONFIG_SYS_SDRAM_SIZE
  135 +CONFIG_SYS_SDRAM_BASEX
  136 +CONFIG_SYS_SDRAM_CFG1
  137 +CONFIG_SYS_SDRAM_CFG2
  138 +CONFIG_SYS_SDRAM_CTRL
  139 +CONFIG_SYS_SDRAM_MODE
  140 +CONFIG_SYS_SDRAM_EMOD
  141 + -- SDRAM config for SDRAM controller-specific registers, please
  142 + see arch/m68k/cpu/<specific_cpu>/start.S files to see how
  143 + these options are used.
  144 +CONFIG_MCFUART
  145 + -- defines enabling of ColdFire UART driver
  146 +CONFIG_SYS_UART_PORT
  147 + -- defines the UART port to be used (only a single UART can be
  148 + actually enabled)
  149 +CONFIG_SYS_SBFHDR_SIZE
  150 + -- size of the prepended SBF header, if any