Commit 4c0d4c3b782ef278f5843eb2533e03b9c4c16e21
1 parent
ca0e774894
Exists in
master
and in
54 other branches
* Patch by Tom Armistead, 04 Jun 2004:
Add support for MAX6900 RTC * Patches by Ladislav Michl, 03 Jun 2004: - fix cfi_flash.c on LE systems - let 'make mrproper' delete u-boot.img as well - turn printf into debug in cfi_flash.c
Showing 6 changed files with 147 additions and 6 deletions Inline Diff
CHANGELOG
1 | ====================================================================== | 1 | ====================================================================== |
2 | Changes since U-Boot 1.1.1: | 2 | Changes since U-Boot 1.1.1: |
3 | ====================================================================== | 3 | ====================================================================== |
4 | 4 | ||
5 | * Patch by Tom Armistead, 04 Jun 2004: | ||
6 | Add support for MAX6900 RTC | ||
7 | |||
8 | * Patches by Ladislav Michl, 03 Jun 2004: | ||
9 | - fix cfi_flash.c on LE systems | ||
10 | - let 'make mrproper' delete u-boot.img as well | ||
11 | - turn printf into debug in cfi_flash.c | ||
12 | |||
5 | * Patch by Kurt Stremerch, 28 May 2004: | 13 | * Patch by Kurt Stremerch, 28 May 2004: |
6 | Add support for Exys XSEngine board | 14 | Add support for Exys XSEngine board |
7 | 15 | ||
8 | * Patch by Martin Krause, 27 May 2004: | 16 | * Patch by Martin Krause, 27 May 2004: |
9 | Fix a MPC5xxx I2C timing issue in i2c_probe(). | 17 | Fix a MPC5xxx I2C timing issue in i2c_probe(). |
10 | 18 | ||
11 | * Patch by Leif Lindholm, 27 May 2004: | 19 | * Patch by Leif Lindholm, 27 May 2004: |
12 | Fix board_init_f() for dbau1x00 board. | 20 | Fix board_init_f() for dbau1x00 board. |
13 | 21 | ||
14 | * Patch by Imre Deak, 26 May 2004: | 22 | * Patch by Imre Deak, 26 May 2004: |
15 | On OMAP1610 platforms check if booting from RAM(CS0) or flash(CS3). | 23 | On OMAP1610 platforms check if booting from RAM(CS0) or flash(CS3). |
16 | Set flash base accordingly, and decide whether to do or skip board | 24 | Set flash base accordingly, and decide whether to do or skip board |
17 | specific setup steps. | 25 | specific setup steps. |
18 | 26 | ||
19 | * Patch by Josef Baumgartner, 26 May 2004: | 27 | * Patch by Josef Baumgartner, 26 May 2004: |
20 | Add missing define in include/asm-m68k/global_data.h | 28 | Add missing define in include/asm-m68k/global_data.h |
21 | 29 | ||
22 | * Patch by Josef Baumgartner, 25 May 2004: | 30 | * Patch by Josef Baumgartner, 25 May 2004: |
23 | Add missing functions get_ticks() and get_tbclk() in lib_m68k/time.c | 31 | Add missing functions get_ticks() and get_tbclk() in lib_m68k/time.c |
24 | 32 | ||
25 | * Patch by Paul Ruhland, 24 May 2004: | 33 | * Patch by Paul Ruhland, 24 May 2004: |
26 | fix SDRAM initialization for LPD7A400 board. | 34 | fix SDRAM initialization for LPD7A400 board. |
27 | 35 | ||
28 | * Patch by Jian Zhang, 20 May 2004: | 36 | * Patch by Jian Zhang, 20 May 2004: |
29 | add support for environment in NAND flash | 37 | add support for environment in NAND flash |
30 | 38 | ||
31 | * Patch by Yuli Barcohen, 20 May 2004: | 39 | * Patch by Yuli Barcohen, 20 May 2004: |
32 | Add support for Interphase iSPAN boards. | 40 | Add support for Interphase iSPAN boards. |
33 | 41 | ||
34 | * Patches by Paul Ruhland, 17 May 2004: | 42 | * Patches by Paul Ruhland, 17 May 2004: |
35 | - Add I/O functions to the smc91111 ethernet driver to support the | 43 | - Add I/O functions to the smc91111 ethernet driver to support the |
36 | Logic LPD7A40x boards. | 44 | Logic LPD7A40x boards. |
37 | - Add support for the Logic Zoom LH7A40x based SDK board(s), | 45 | - Add support for the Logic Zoom LH7A40x based SDK board(s), |
38 | specifically the LPD7A400. | 46 | specifically the LPD7A400. |
39 | 47 | ||
40 | * Patches by Robert Schwebel, 15 May 2004: | 48 | * Patches by Robert Schwebel, 15 May 2004: |
41 | - call MAC address reading code also for SMSC91C111; | 49 | - call MAC address reading code also for SMSC91C111; |
42 | - make SMSC91C111 timeout configurable, remove duplicate code | 50 | - make SMSC91C111 timeout configurable, remove duplicate code |
43 | - fix get_timer() for PXA | 51 | - fix get_timer() for PXA |
44 | - update doc/README.JFFS2 | 52 | - update doc/README.JFFS2 |
45 | - use "bootfile" env variable also for jffs2 | 53 | - use "bootfile" env variable also for jffs2 |
46 | 54 | ||
47 | * Patch by Tolunay Orkun, 14 May 2004: | 55 | * Patch by Tolunay Orkun, 14 May 2004: |
48 | Add support for Cogent CSB472 board (8MB Flash Rev) | 56 | Add support for Cogent CSB472 board (8MB Flash Rev) |
49 | 57 | ||
50 | * Patch by Thomas Viehweger, 14 May 2004: | 58 | * Patch by Thomas Viehweger, 14 May 2004: |
51 | - flash.h: more flash types added | 59 | - flash.h: more flash types added |
52 | - immap_8260.h: some bits added (useful for RMII) | 60 | - immap_8260.h: some bits added (useful for RMII) |
53 | - cmd_coninfo.c: typo corrected, printf -> puts | 61 | - cmd_coninfo.c: typo corrected, printf -> puts |
54 | - reduced size by replacing spaces with tab | 62 | - reduced size by replacing spaces with tab |
55 | 63 | ||
56 | * Patch by Robert Schwebel, 13 May 2004: | 64 | * Patch by Robert Schwebel, 13 May 2004: |
57 | Add 'imgextract' command: extract one part of a multi file image. | 65 | Add 'imgextract' command: extract one part of a multi file image. |
58 | 66 | ||
59 | * Patches by Jon Loeliger, 11 May 2004: | 67 | * Patches by Jon Loeliger, 11 May 2004: |
60 | Dynamically handle REV1 and REV2 MPC85xx parts. | 68 | Dynamically handle REV1 and REV2 MPC85xx parts. |
61 | (Jon Loeliger, 10-May-2004). | 69 | (Jon Loeliger, 10-May-2004). |
62 | New consistent memory map and Local Access Window across MPC85xx line. | 70 | New consistent memory map and Local Access Window across MPC85xx line. |
63 | New CCSRBAR at 0xE000_0000 now. | 71 | New CCSRBAR at 0xE000_0000 now. |
64 | Add RAPID I/O memory map. | 72 | Add RAPID I/O memory map. |
65 | New memory map in README.MPC85xxads | 73 | New memory map in README.MPC85xxads |
66 | (Kumar Gala, 10-May-2004) | 74 | (Kumar Gala, 10-May-2004) |
67 | Better board and CPU identification on MPC85xx boards at boot. | 75 | Better board and CPU identification on MPC85xx boards at boot. |
68 | (Jon Loeliger, 10-May-2004) | 76 | (Jon Loeliger, 10-May-2004) |
69 | SDRAM clock control fixes on MPC8540ADS & MPC8560 boards. | 77 | SDRAM clock control fixes on MPC8540ADS & MPC8560 boards. |
70 | Some configuration options for MPC8540ADS & MPC8560ADS cleaned up. | 78 | Some configuration options for MPC8540ADS & MPC8560ADS cleaned up. |
71 | (Jim Robertson, 10-May-2004) | 79 | (Jim Robertson, 10-May-2004) |
72 | Rewrite of the MPC85xx Three Speed Ethernet Controller (TSEC) driver. | 80 | Rewrite of the MPC85xx Three Speed Ethernet Controller (TSEC) driver. |
73 | Supports multiple PHYs. | 81 | Supports multiple PHYs. |
74 | (Andy Fleming, 10-May-2004) | 82 | (Andy Fleming, 10-May-2004) |
75 | Some README.MPC85xxads updates. | 83 | Some README.MPC85xxads updates. |
76 | (Kumar Gala, 10-May-2004) | 84 | (Kumar Gala, 10-May-2004) |
77 | Copyright updates for "Freescale" | 85 | Copyright updates for "Freescale" |
78 | (Andy Fleming, 10-May-2004) | 86 | (Andy Fleming, 10-May-2004) |
79 | 87 | ||
80 | * Patch by Stephen Williams, 11 May 2004: | 88 | * Patch by Stephen Williams, 11 May 2004: |
81 | Add flash support for ST M29W040B | 89 | Add flash support for ST M29W040B |
82 | Reduce JSE specific flash.c to remove dead code. | 90 | Reduce JSE specific flash.c to remove dead code. |
83 | 91 | ||
84 | * Patch by Markus Pietrek, 04 May 2004: | 92 | * Patch by Markus Pietrek, 04 May 2004: |
85 | Fix clear_bss code for ARM systems (all except s3c44b0 which | 93 | Fix clear_bss code for ARM systems (all except s3c44b0 which |
86 | doesn't clear BSS at all?) | 94 | doesn't clear BSS at all?) |
87 | 95 | ||
88 | * Fix "ping" problem on INC-IP board. Strange problem: | 96 | * Fix "ping" problem on INC-IP board. Strange problem: |
89 | Sometimes the store word instruction hangs while writing to one of | 97 | Sometimes the store word instruction hangs while writing to one of |
90 | the Switch registers, but only if the next instruction is 16-byte | 98 | the Switch registers, but only if the next instruction is 16-byte |
91 | aligned. Moving the instruction into a separate function somehow | 99 | aligned. Moving the instruction into a separate function somehow |
92 | makes the problem go away. | 100 | makes the problem go away. |
93 | 101 | ||
94 | * Patch by Rishi Bhattacharya, 08 May 2004: | 102 | * Patch by Rishi Bhattacharya, 08 May 2004: |
95 | Add support for TI OMAP5912 OSK Board | 103 | Add support for TI OMAP5912 OSK Board |
96 | 104 | ||
97 | * Patch by Sam Song May, 07 May 2004: | 105 | * Patch by Sam Song May, 07 May 2004: |
98 | Fix typo of UPM table for rmu board | 106 | Fix typo of UPM table for rmu board |
99 | 107 | ||
100 | * Patch by Pantelis Antoniou, 05 May 2004: | 108 | * Patch by Pantelis Antoniou, 05 May 2004: |
101 | - Intracom board update. | 109 | - Intracom board update. |
102 | - Add Codec POST. | 110 | - Add Codec POST. |
103 | 111 | ||
104 | * Add support for the second Ethernet interface for the 'PPChameleon' | 112 | * Add support for the second Ethernet interface for the 'PPChameleon' |
105 | board. | 113 | board. |
106 | 114 | ||
107 | * Patch by Dave Peverley, 30 Apr 2004: | 115 | * Patch by Dave Peverley, 30 Apr 2004: |
108 | Add support for OMAP730 Perseus2 Development board | 116 | Add support for OMAP730 Perseus2 Development board |
109 | 117 | ||
110 | * Patch by Alan J. Luse, 29 Apr 2004: | 118 | * Patch by Alan J. Luse, 29 Apr 2004: |
111 | Fix flash chip-select (OR0) option register setting on FADS boards. | 119 | Fix flash chip-select (OR0) option register setting on FADS boards. |
112 | 120 | ||
113 | * Patch by Alan J. Luse, 29 Apr 2004: | 121 | * Patch by Alan J. Luse, 29 Apr 2004: |
114 | Report MII network speed and duplex setting properly when | 122 | Report MII network speed and duplex setting properly when |
115 | auto-negotiate is not enabled. | 123 | auto-negotiate is not enabled. |
116 | 124 | ||
117 | * Patch by Jarrett Redd, 29 Apr 2004: | 125 | * Patch by Jarrett Redd, 29 Apr 2004: |
118 | Fix hang on reset on Ocotea board due to flash in wrong mode. | 126 | Fix hang on reset on Ocotea board due to flash in wrong mode. |
119 | 127 | ||
120 | * Patch by Dave Peverley, 29 Apr 2004: | 128 | * Patch by Dave Peverley, 29 Apr 2004: |
121 | add MAC address detection to smc91111 driver | 129 | add MAC address detection to smc91111 driver |
122 | 130 | ||
123 | * Patch by David Müller, 28 Apr 2004: | 131 | * Patch by David Müller, 28 Apr 2004: |
124 | fix typo in lib_arm/board.c | 132 | fix typo in lib_arm/board.c |
125 | 133 | ||
126 | * Patch by Tolunay Orkun, 20 Apr 2004: | 134 | * Patch by Tolunay Orkun, 20 Apr 2004: |
127 | - README update: add CONFIG_CSB272 and csb272_config | 135 | - README update: add CONFIG_CSB272 and csb272_config |
128 | - add descriptions for some MII/PHY options, CONFIG_I2CFAST, and | 136 | - add descriptions for some MII/PHY options, CONFIG_I2CFAST, and |
129 | i2cfast environment variable | 137 | i2cfast environment variable |
130 | 138 | ||
131 | * Patch by Yuli Barcohen, 19 Apr 2004: | 139 | * Patch by Yuli Barcohen, 19 Apr 2004: |
132 | - Rename DUET_ADS to MPC885ADS | 140 | - Rename DUET_ADS to MPC885ADS |
133 | - Rename CONFIG_DUET to CONFIG_MPC885_FAMILY | 141 | - Rename CONFIG_DUET to CONFIG_MPC885_FAMILY |
134 | - Rename CONFIG_866_et_al to CONFIG_MPC866_FAMILY | 142 | - Rename CONFIG_866_et_al to CONFIG_MPC866_FAMILY |
135 | - Clean up FADS family port to use the new defines | 143 | - Clean up FADS family port to use the new defines |
136 | 144 | ||
137 | * Fix PCI support on CPC45 board | 145 | * Fix PCI support on CPC45 board |
138 | 146 | ||
139 | * Patch by Scott McNutt, 25 Apr 2004: | 147 | * Patch by Scott McNutt, 25 Apr 2004: |
140 | Add Nios GDB/JTAG Console support: | 148 | Add Nios GDB/JTAG Console support: |
141 | - Add stubs to support gdb via JTAG. | 149 | - Add stubs to support gdb via JTAG. |
142 | - Add support for console over JTAG. | 150 | - Add support for console over JTAG. |
143 | - Minor cleanup. | 151 | - Minor cleanup. |
144 | 152 | ||
145 | * Add support for CATcenter board (based on PPChameleon ME module) | 153 | * Add support for CATcenter board (based on PPChameleon ME module) |
146 | 154 | ||
147 | * Patch by Klaus Heydeck, 12 May 2004: | 155 | * Patch by Klaus Heydeck, 12 May 2004: |
148 | Using external watchdog for KUP4 boards in mpc8xx/cpu.c; | 156 | Using external watchdog for KUP4 boards in mpc8xx/cpu.c; |
149 | load_sernum_ethaddr() for KUP4 boards in lib_ppc/board.c; | 157 | load_sernum_ethaddr() for KUP4 boards in lib_ppc/board.c; |
150 | various changes to KUP4 board specific files | 158 | various changes to KUP4 board specific files |
151 | 159 | ||
152 | * Fix minor network problem on MPC5200: need some delay between | 160 | * Fix minor network problem on MPC5200: need some delay between |
153 | resetting the PHY and sending the first packet. Implemented in a | 161 | resetting the PHY and sending the first packet. Implemented in a |
154 | "natural" way by invoking the PHY reset and initialization code | 162 | "natural" way by invoking the PHY reset and initialization code |
155 | only once after power on vs. each time the interface is brought up. | 163 | only once after power on vs. each time the interface is brought up. |
156 | 164 | ||
157 | * Add some limited support for low-speed devices to SL811 USB controller | 165 | * Add some limited support for low-speed devices to SL811 USB controller |
158 | (at least "usb reset" now passes successfully and "usb info" displays | 166 | (at least "usb reset" now passes successfully and "usb info" displays |
159 | correct information) | 167 | correct information) |
160 | 168 | ||
161 | * Change init sequence for multiple network interfaces: initialize | 169 | * Change init sequence for multiple network interfaces: initialize |
162 | on-chip interfaces before external cards. | 170 | on-chip interfaces before external cards. |
163 | 171 | ||
164 | * Fix memory leak in the NAND-specific JFFS2 code | 172 | * Fix memory leak in the NAND-specific JFFS2 code |
165 | 173 | ||
166 | * Fix SL811 USB controller when attached to a USB hub | 174 | * Fix SL811 USB controller when attached to a USB hub |
167 | 175 | ||
168 | * Fix config option spelling in PM520 config file | 176 | * Fix config option spelling in PM520 config file |
169 | 177 | ||
170 | * Fix PHY discovery problem in cpu/mpc8xx/fec.c (introduced by | 178 | * Fix PHY discovery problem in cpu/mpc8xx/fec.c (introduced by |
171 | patches by Pantelis Antoniou, 30 Mar 2004) | 179 | patches by Pantelis Antoniou, 30 Mar 2004) |
172 | 180 | ||
173 | * Fix minor NAND JFFS2 related issue | 181 | * Fix minor NAND JFFS2 related issue |
174 | 182 | ||
175 | * Fixes for SL811 USB controller: | 183 | * Fixes for SL811 USB controller: |
176 | - implement workaround for broken memory stick | 184 | - implement workaround for broken memory stick |
177 | - improve error handling | 185 | - improve error handling |
178 | 186 | ||
179 | * Increase packet send timeout to 1 ms in cpu/mpc8xx/scc.c to better | 187 | * Increase packet send timeout to 1 ms in cpu/mpc8xx/scc.c to better |
180 | cope with congested networks. | 188 | cope with congested networks. |
181 | 189 | ||
182 | ====================================================================== | 190 | ====================================================================== |
183 | Changes for U-Boot 1.1.1: | 191 | Changes for U-Boot 1.1.1: |
184 | ====================================================================== | 192 | ====================================================================== |
185 | 193 | ||
186 | * Patch by Travis Sawyer, 23 Apr 2004: | 194 | * Patch by Travis Sawyer, 23 Apr 2004: |
187 | Fix VSC/CIS 8201 phy descrambler interoperability timing due to | 195 | Fix VSC/CIS 8201 phy descrambler interoperability timing due to |
188 | errata from Vitesse Semiconductor. | 196 | errata from Vitesse Semiconductor. |
189 | 197 | ||
190 | * Patch by Philippe Robin, 22 Apr 2004: | 198 | * Patch by Philippe Robin, 22 Apr 2004: |
191 | Fix ethernet configuration for "versatile" board | 199 | Fix ethernet configuration for "versatile" board |
192 | 200 | ||
193 | * Patch by Kshitij Gupta, 21 Apr 2004: | 201 | * Patch by Kshitij Gupta, 21 Apr 2004: |
194 | Remove busy loop and use MPU timer fr usleep() on OMAP1510/1610 boards | 202 | Remove busy loop and use MPU timer fr usleep() on OMAP1510/1610 boards |
195 | 203 | ||
196 | * Patch by Steven Scholz, 24 Feb 2004: | 204 | * Patch by Steven Scholz, 24 Feb 2004: |
197 | Fix a bug in AT91RM9200 ethernet driver: | 205 | Fix a bug in AT91RM9200 ethernet driver: |
198 | The MII interface is now initialized before accessing the PHY. | 206 | The MII interface is now initialized before accessing the PHY. |
199 | 207 | ||
200 | * Patch by John Kerl, 19 Apr 2004: | 208 | * Patch by John Kerl, 19 Apr 2004: |
201 | Use U-boot's miiphy.h for PHY register names, rather than | 209 | Use U-boot's miiphy.h for PHY register names, rather than |
202 | introducing a new header file. | 210 | introducing a new header file. |
203 | 211 | ||
204 | * Update pci_ids.h from linux-2.4.26 | 212 | * Update pci_ids.h from linux-2.4.26 |
205 | 213 | ||
206 | * Patch by Masami Komiya, 19 Apr 2004: | 214 | * Patch by Masami Komiya, 19 Apr 2004: |
207 | Fix problem cause by VLAN function on little endian architecture | 215 | Fix problem cause by VLAN function on little endian architecture |
208 | without VLAN environment | 216 | without VLAN environment |
209 | 217 | ||
210 | * Clean up the TQM8xx_YYMHz configurations; allow to use the same | 218 | * Clean up the TQM8xx_YYMHz configurations; allow to use the same |
211 | binary image for all clock frequencies. Implement run-time | 219 | binary image for all clock frequencies. Implement run-time |
212 | optimization of flash access timing based on the actual bus | 220 | optimization of flash access timing based on the actual bus |
213 | frequency. | 221 | frequency. |
214 | 222 | ||
215 | * Modify KUP4X board configuration to use SL811 driver for USB memory | 223 | * Modify KUP4X board configuration to use SL811 driver for USB memory |
216 | sticks (including FAT / VFAT filesystem support) | 224 | sticks (including FAT / VFAT filesystem support) |
217 | 225 | ||
218 | * Add SL811 Host Controller Interface driver for USB | 226 | * Add SL811 Host Controller Interface driver for USB |
219 | 227 | ||
220 | * Add CFG_I2C_EEPROM_ADDR_OVERFLOW desription to README | 228 | * Add CFG_I2C_EEPROM_ADDR_OVERFLOW desription to README |
221 | 229 | ||
222 | * Patch by Pantelis Antoniou, 19 Apr 2004: | 230 | * Patch by Pantelis Antoniou, 19 Apr 2004: |
223 | Allow to use shell style syntax (i. e. ${var} ) with standard parser. | 231 | Allow to use shell style syntax (i. e. ${var} ) with standard parser. |
224 | Minor patches for Intracom boards. | 232 | Minor patches for Intracom boards. |
225 | 233 | ||
226 | * Patch by Christian Pell, 19 Apr 2004: | 234 | * Patch by Christian Pell, 19 Apr 2004: |
227 | cleanup support for CF/IDE on PCMCIA for PXA25X | 235 | cleanup support for CF/IDE on PCMCIA for PXA25X |
228 | 236 | ||
229 | * Temporarily disabled John Kerl's extended MII command code because | 237 | * Temporarily disabled John Kerl's extended MII command code because |
230 | "miivals.h" is missing | 238 | "miivals.h" is missing |
231 | 239 | ||
232 | * Patches by Mark Jonas, 13 Apr 2004: | 240 | * Patches by Mark Jonas, 13 Apr 2004: |
233 | - Remove CS0 chip select timing setting from cpu/mpc5xxx/start.S | 241 | - Remove CS0 chip select timing setting from cpu/mpc5xxx/start.S |
234 | - Add sync instructions to IceCube SDRAM init code | 242 | - Add sync instructions to IceCube SDRAM init code |
235 | - Move SDRAM chip constants into seperate include files | 243 | - Move SDRAM chip constants into seperate include files |
236 | - Unify DDR and SDR initialization code | 244 | - Unify DDR and SDR initialization code |
237 | - Unify all IceCube (Lite5xxx) target names | 245 | - Unify all IceCube (Lite5xxx) target names |
238 | 246 | ||
239 | * Patch by John Kerl, 16 Apr 2004: | 247 | * Patch by John Kerl, 16 Apr 2004: |
240 | Enable ranges in mii command, e.g. mii read 0-1f 0 or | 248 | Enable ranges in mii command, e.g. mii read 0-1f 0 or |
241 | mii read 4-7 18-1a. Also add mii dump subcommand for | 249 | mii read 4-7 18-1a. Also add mii dump subcommand for |
242 | pretty-printing standard regs 0-5. | 250 | pretty-printing standard regs 0-5. |
243 | 251 | ||
244 | * Patch by Stephen Williams, 16 April 2004: | 252 | * Patch by Stephen Williams, 16 April 2004: |
245 | fix typo in JSE.h; update MAINTAINERS | 253 | fix typo in JSE.h; update MAINTAINERS |
246 | 254 | ||
247 | * Patch by Matthew S. McClintock, 14 Apr 2004: | 255 | * Patch by Matthew S. McClintock, 14 Apr 2004: |
248 | fix initdram function for utx8245 board | 256 | fix initdram function for utx8245 board |
249 | 257 | ||
250 | * Patch by Markus Pietrek, 14 Apr 2004: | 258 | * Patch by Markus Pietrek, 14 Apr 2004: |
251 | use ATAG_INITRD2 instead of deprecated ATAG_INITRD tag | 259 | use ATAG_INITRD2 instead of deprecated ATAG_INITRD tag |
252 | 260 | ||
253 | * Patch by Reinhard Meyer, 18 Apr 2004: | 261 | * Patch by Reinhard Meyer, 18 Apr 2004: |
254 | provide the IDE Reset Function for EMK 5200 boards | 262 | provide the IDE Reset Function for EMK 5200 boards |
255 | 263 | ||
256 | * Patch by Masami Komiya, 12 Apr 2004: | 264 | * Patch by Masami Komiya, 12 Apr 2004: |
257 | fix pci_hose_write_config_{byte,word}_via_dword problems | 265 | fix pci_hose_write_config_{byte,word}_via_dword problems |
258 | 266 | ||
259 | * Patch by Sangmoon Kim, 12 Apr 2004: | 267 | * Patch by Sangmoon Kim, 12 Apr 2004: |
260 | Update max RAM size for debris board | 268 | Update max RAM size for debris board |
261 | 269 | ||
262 | * Patch by Travis Sawyer, 08 Apr 2004: | 270 | * Patch by Travis Sawyer, 08 Apr 2004: |
263 | Add TLB entry for second DIMM slot on ocotea | 271 | Add TLB entry for second DIMM slot on ocotea |
264 | 272 | ||
265 | * Patch by Masami Komiya, 08 Apr 2004: | 273 | * Patch by Masami Komiya, 08 Apr 2004: |
266 | add RTL8169 network driver | 274 | add RTL8169 network driver |
267 | 275 | ||
268 | * Patch by Dan Malek, 07 Apr 2004: | 276 | * Patch by Dan Malek, 07 Apr 2004: |
269 | - Add support for RPC/STx GP3, Motorola 8560 board | 277 | - Add support for RPC/STx GP3, Motorola 8560 board |
270 | - Update 85xx TSEC driver so it searches MII for first available PHY | 278 | - Update 85xx TSEC driver so it searches MII for first available PHY |
271 | and uses that one. | 279 | and uses that one. |
272 | - Add functions to support console MII commands. | 280 | - Add functions to support console MII commands. |
273 | 281 | ||
274 | * Patch by Tolunay Orkun, 07 Apr 2004: | 282 | * Patch by Tolunay Orkun, 07 Apr 2004: |
275 | Move initialization of bi_iic_fast[] | 283 | Move initialization of bi_iic_fast[] |
276 | from board_init_f() to board_init_r() | 284 | from board_init_f() to board_init_r() |
277 | 285 | ||
278 | * Patch by Yasushi Shoji, 07 Apr 2004: | 286 | * Patch by Yasushi Shoji, 07 Apr 2004: |
279 | Cleanup microblaze port | 287 | Cleanup microblaze port |
280 | 288 | ||
281 | * Patch by Sangmoon Kim, 07 Apr 2004: | 289 | * Patch by Sangmoon Kim, 07 Apr 2004: |
282 | Add auto SDRAM module detection for Debris board | 290 | Add auto SDRAM module detection for Debris board |
283 | 291 | ||
284 | * Patch by Rune Torgersen, 06 Apr 2004: | 292 | * Patch by Rune Torgersen, 06 Apr 2004: |
285 | - Fix some PCI problems on the MPC8266ADS board | 293 | - Fix some PCI problems on the MPC8266ADS board |
286 | - Fix the location of some PCI entries in the immap structure | 294 | - Fix the location of some PCI entries in the immap structure |
287 | 295 | ||
288 | * Patch by Yasushi Shoji, 07 Apr 2004: | 296 | * Patch by Yasushi Shoji, 07 Apr 2004: |
289 | - add support for microblaze processors | 297 | - add support for microblaze processors |
290 | - add support for AtmarkTechno "suzaku" board | 298 | - add support for AtmarkTechno "suzaku" board |
291 | 299 | ||
292 | * Configure PPChameleon board to use redundand environment in flash | 300 | * Configure PPChameleon board to use redundand environment in flash |
293 | 301 | ||
294 | * Configure PPChameleon board to use JFFS2 NAND support. | 302 | * Configure PPChameleon board to use JFFS2 NAND support. |
295 | 303 | ||
296 | * Added support for JFFS2 filesystem (read-only) on top of NAND flash | 304 | * Added support for JFFS2 filesystem (read-only) on top of NAND flash |
297 | 305 | ||
298 | * Patch by Rune Torgersen, 16 Apr 2004: | 306 | * Patch by Rune Torgersen, 16 Apr 2004: |
299 | LBA48 fixes | 307 | LBA48 fixes |
300 | 308 | ||
301 | * Patches by Pantelis Antoniou, 16 Apr 2004: | 309 | * Patches by Pantelis Antoniou, 16 Apr 2004: |
302 | - add support for a new version of an Intracom board and fix | 310 | - add support for a new version of an Intracom board and fix |
303 | various other things on others. | 311 | various other things on others. |
304 | - add verify support to the crc32 command (define | 312 | - add verify support to the crc32 command (define |
305 | CONFIG_CRC32_VERIFY to enable it) | 313 | CONFIG_CRC32_VERIFY to enable it) |
306 | - fix FEC driver for MPC8xx systems: | 314 | - fix FEC driver for MPC8xx systems: |
307 | 1. fix compilation problems for boards that use dynamic | 315 | 1. fix compilation problems for boards that use dynamic |
308 | allocation of DPRAM | 316 | allocation of DPRAM |
309 | 2. shut down FEC after network transfers | 317 | 2. shut down FEC after network transfers |
310 | - HUSH parser fixes: | 318 | - HUSH parser fixes: |
311 | 1. A new test command was added. This is a simplified version of | 319 | 1. A new test command was added. This is a simplified version of |
312 | the one in the bourne shell. | 320 | the one in the bourne shell. |
313 | 2. A new exit command was added which terminates the current | 321 | 2. A new exit command was added which terminates the current |
314 | executing script. | 322 | executing script. |
315 | 3. Fixed handing of $? (exit code of last executed command) | 323 | 3. Fixed handing of $? (exit code of last executed command) |
316 | - Fix some compile problems; | 324 | - Fix some compile problems; |
317 | add "once" functionality for the netretry variable | 325 | add "once" functionality for the netretry variable |
318 | 326 | ||
319 | * Patch by George G. Davis, 02 Apr 2004: | 327 | * Patch by George G. Davis, 02 Apr 2004: |
320 | add support for Intel Assabet board | 328 | add support for Intel Assabet board |
321 | 329 | ||
322 | * Patch by Stephen Williams, 01 Apr 2004: | 330 | * Patch by Stephen Williams, 01 Apr 2004: |
323 | Add support for Picture Elements JSE board | 331 | Add support for Picture Elements JSE board |
324 | 332 | ||
325 | * Patch by Christian Pell, 01 Apr 2004: | 333 | * Patch by Christian Pell, 01 Apr 2004: |
326 | Add CompactFlash support for PXA systems. | 334 | Add CompactFlash support for PXA systems. |
327 | 335 | ||
328 | * Patches by Pantelis Antoniou, 30 Mar 2004: | 336 | * Patches by Pantelis Antoniou, 30 Mar 2004: |
329 | - add auto-complete support to the U-Boot CLI | 337 | - add auto-complete support to the U-Boot CLI |
330 | - add support for NETTA and NETPHONE boards; fix NETVIA board | 338 | - add support for NETTA and NETPHONE boards; fix NETVIA board |
331 | - add support for the Epson 156x series of graphical displays | 339 | - add support for the Epson 156x series of graphical displays |
332 | (These displays are serial and not suitable for using a normal | 340 | (These displays are serial and not suitable for using a normal |
333 | framebuffer console on them) | 341 | framebuffer console on them) |
334 | - add infrastructure needed in order to POST any DSPs in a board | 342 | - add infrastructure needed in order to POST any DSPs in a board |
335 | - improve and fix various things in the MPC8xx FEC driver: | 343 | - improve and fix various things in the MPC8xx FEC driver: |
336 | 1. The new 87x and 88x series of processors have two FECs, | 344 | 1. The new 87x and 88x series of processors have two FECs, |
337 | and the new driver supports them both. | 345 | and the new driver supports them both. |
338 | 2. Another change in the 87x/88x series is support for | 346 | 2. Another change in the 87x/88x series is support for |
339 | the RMII (Reduced MII) interface. However numerous | 347 | the RMII (Reduced MII) interface. However numerous |
340 | changes are needed to make it work since the PHYs | 348 | changes are needed to make it work since the PHYs |
341 | are connected to the same lines. That means that | 349 | are connected to the same lines. That means that |
342 | you have to address them correctly over the MII | 350 | you have to address them correctly over the MII |
343 | interface. | 351 | interface. |
344 | 3. We now correctly match the MII/RMII interface | 352 | 3. We now correctly match the MII/RMII interface |
345 | configuration to what the PHY reports. | 353 | configuration to what the PHY reports. |
346 | - Fix problem when readingthe MII status register. Due to the | 354 | - Fix problem when readingthe MII status register. Due to the |
347 | internal design of many PHYs you have to read the register | 355 | internal design of many PHYs you have to read the register |
348 | twice. The problem is more apparent in 10Mbit mode. | 356 | twice. The problem is more apparent in 10Mbit mode. |
349 | - add new mode ".jffs2s" for reading from a NAND device: it just | 357 | - add new mode ".jffs2s" for reading from a NAND device: it just |
350 | skips over bad blocks. | 358 | skips over bad blocks. |
351 | - add networking support for VLANs (802.1q), and CDP (Cisco | 359 | - add networking support for VLANs (802.1q), and CDP (Cisco |
352 | Discovery Protocol) | 360 | Discovery Protocol) |
353 | - some minor patches / cleanup | 361 | - some minor patches / cleanup |
354 | 362 | ||
355 | * Patch by Yuli Barcohen, 28 Mar 2004: | 363 | * Patch by Yuli Barcohen, 28 Mar 2004: |
356 | - Add support for MPC8272 family including MPC8247/8248/8271/8272 | 364 | - Add support for MPC8272 family including MPC8247/8248/8271/8272 |
357 | - Add support for MPC8272ADS evaluation board (another flavour of MPC8260ADS) | 365 | - Add support for MPC8272ADS evaluation board (another flavour of MPC8260ADS) |
358 | - Change configuration method for MPC8260ADS family | 366 | - Change configuration method for MPC8260ADS family |
359 | 367 | ||
360 | * add startup code to clear the BSS of standalone applications | 368 | * add startup code to clear the BSS of standalone applications |
361 | 369 | ||
362 | * Fix if / elif handling bug in HUSH shell | 370 | * Fix if / elif handling bug in HUSH shell |
363 | 371 | ||
364 | ====================================================================== | 372 | ====================================================================== |
365 | Changes for U-Boot 1.1.0: | 373 | Changes for U-Boot 1.1.0: |
366 | ====================================================================== | 374 | ====================================================================== |
367 | 375 | ||
368 | * Patch by Mark Jonas: Remove config.tmp files only when | 376 | * Patch by Mark Jonas: Remove config.tmp files only when |
369 | unconfiguring the board | 377 | unconfiguring the board |
370 | 378 | ||
371 | * Adapt RMU board for bigger flash memory | 379 | * Adapt RMU board for bigger flash memory |
372 | 380 | ||
373 | * Patch by Klaus Heydeck, 13 Mar 2003: | 381 | * Patch by Klaus Heydeck, 13 Mar 2003: |
374 | Add support for KUP4X Board | 382 | Add support for KUP4X Board |
375 | 383 | ||
376 | * Patch by Pavel Bartusek, 21 Mar 2004 | 384 | * Patch by Pavel Bartusek, 21 Mar 2004 |
377 | Add Reiserfs support | 385 | Add Reiserfs support |
378 | 386 | ||
379 | * Patch by Hinko Kocevar, 20 Mar 2004 | 387 | * Patch by Hinko Kocevar, 20 Mar 2004 |
380 | - Add auto-release for SMSC LAN91c111 driver | 388 | - Add auto-release for SMSC LAN91c111 driver |
381 | - Add save/restore of PTR and PNR regs as suggested in datasheet | 389 | - Add save/restore of PTR and PNR regs as suggested in datasheet |
382 | 390 | ||
383 | * Patch by Stephen Williams, 19 March 2004 | 391 | * Patch by Stephen Williams, 19 March 2004 |
384 | Increase speed of sector reads from SystemACE, | 392 | Increase speed of sector reads from SystemACE, |
385 | shorten poll timeout and remove a useless reset | 393 | shorten poll timeout and remove a useless reset |
386 | 394 | ||
387 | * Patch by Tolunay Orkun, 19 Mar 2004: | 395 | * Patch by Tolunay Orkun, 19 Mar 2004: |
388 | Make GigE PHY 1000Mbps Speed/Duplex detection conditional | 396 | Make GigE PHY 1000Mbps Speed/Duplex detection conditional |
389 | (CONFIG_PHY_GIGE) | 397 | (CONFIG_PHY_GIGE) |
390 | 398 | ||
391 | * Patch by Brad Kemp, 18 Mar 2004: | 399 | * Patch by Brad Kemp, 18 Mar 2004: |
392 | prevent machine checks during a PCI scan | 400 | prevent machine checks during a PCI scan |
393 | 401 | ||
394 | * Patch by Pierre Aubert, 18 Mar 2004: | 402 | * Patch by Pierre Aubert, 18 Mar 2004: |
395 | Fix string cleaning in IDE identification | 403 | Fix string cleaning in IDE identification |
396 | 404 | ||
397 | * Patch by Pierre Aubert, 18 Mar 2004: | 405 | * Patch by Pierre Aubert, 18 Mar 2004: |
398 | - Unify video mode handling for Chips & Technologies 69000 Video | 406 | - Unify video mode handling for Chips & Technologies 69000 Video |
399 | chip and Silicon Motion SMI 712/710/810 Video chip | 407 | chip and Silicon Motion SMI 712/710/810 Video chip |
400 | - Add selection of the video output (CRT or LCD) via 'videoout' | 408 | - Add selection of the video output (CRT or LCD) via 'videoout' |
401 | environment variable for the Silicon Motion | 409 | environment variable for the Silicon Motion |
402 | - README update | 410 | - README update |
403 | 411 | ||
404 | * Patch by Pierre Aubert, 18 Mar 2004: | 412 | * Patch by Pierre Aubert, 18 Mar 2004: |
405 | include/common.h typo fix | 413 | include/common.h typo fix |
406 | 414 | ||
407 | * Patches by Tolunay Orkun, 17 Mar 2004: | 415 | * Patches by Tolunay Orkun, 17 Mar 2004: |
408 | - Add support for bd->bi_iic_fast[] initialization via environment | 416 | - Add support for bd->bi_iic_fast[] initialization via environment |
409 | variable "i2cfast" (CONFIG_I2CFAST) | 417 | variable "i2cfast" (CONFIG_I2CFAST) |
410 | - Add "i2cfast" u-boot environment variable support for csb272 | 418 | - Add "i2cfast" u-boot environment variable support for csb272 |
411 | 419 | ||
412 | * Patch by Carl Riechers, 17 Mar 2004: | 420 | * Patch by Carl Riechers, 17 Mar 2004: |
413 | Ignore '\0' characters in console input for use with telnet and | 421 | Ignore '\0' characters in console input for use with telnet and |
414 | telco pads. | 422 | telco pads. |
415 | 423 | ||
416 | * Patch by Leon Kukovec, 17 Mar 2004: | 424 | * Patch by Leon Kukovec, 17 Mar 2004: |
417 | typo fix for strswab prototype #ifdef | 425 | typo fix for strswab prototype #ifdef |
418 | 426 | ||
419 | * Patches by Thomas Viehweger, 16 Mar 2004: | 427 | * Patches by Thomas Viehweger, 16 Mar 2004: |
420 | - show PCI clock frequency on MPC8260 systems | 428 | - show PCI clock frequency on MPC8260 systems |
421 | - add FCC_PSMR_RMII flag for HiP7 processors | 429 | - add FCC_PSMR_RMII flag for HiP7 processors |
422 | - in do_jffs2_fsload(), take load address from load_addr if not set | 430 | - in do_jffs2_fsload(), take load address from load_addr if not set |
423 | explicit, update load_addr otherwise | 431 | explicit, update load_addr otherwise |
424 | - replaced printf by putc/puts when no formatting is needed | 432 | - replaced printf by putc/puts when no formatting is needed |
425 | (smaller code size, faster execution) | 433 | (smaller code size, faster execution) |
426 | 434 | ||
427 | * Patch by Phillippe Robin, 16 Mar 2004: | 435 | * Patch by Phillippe Robin, 16 Mar 2004: |
428 | avoid dereferencing NULL pointer in lib_arm/armlinux.c | 436 | avoid dereferencing NULL pointer in lib_arm/armlinux.c |
429 | 437 | ||
430 | * Patch by Stephen Williams, 15 Mar 2004: | 438 | * Patch by Stephen Williams, 15 Mar 2004: |
431 | Fix CONFIG_SERIAL_SOFTWARE_FIFO documentation | 439 | Fix CONFIG_SERIAL_SOFTWARE_FIFO documentation |
432 | 440 | ||
433 | * Patch by Tolunay Orkun, 15 Mar 2004: | 441 | * Patch by Tolunay Orkun, 15 Mar 2004: |
434 | Initialize bi_opbfreq to real OPB frequency via get_OPB_freq() | 442 | Initialize bi_opbfreq to real OPB frequency via get_OPB_freq() |
435 | 443 | ||
436 | * Patch by Travis Sawyer, 15 Mar 2004: | 444 | * Patch by Travis Sawyer, 15 Mar 2004: |
437 | Update CREDITS & MAINTAINERS files for PPC440GX & Ocotea port | 445 | Update CREDITS & MAINTAINERS files for PPC440GX & Ocotea port |
438 | 446 | ||
439 | * Add start-up delay to make sure power has stabilized before | 447 | * Add start-up delay to make sure power has stabilized before |
440 | attempting to switch on USB on SX1 board. | 448 | attempting to switch on USB on SX1 board. |
441 | 449 | ||
442 | * Patch by Josef Wagner, 18 Mar 2004: | 450 | * Patch by Josef Wagner, 18 Mar 2004: |
443 | - Add support for MicroSys XM250 board (PXA255) | 451 | - Add support for MicroSys XM250 board (PXA255) |
444 | - Add support for MicroSys PM828 board (MPC8280) | 452 | - Add support for MicroSys PM828 board (MPC8280) |
445 | - Add support for 32 MB Flash on PM825/826 | 453 | - Add support for 32 MB Flash on PM825/826 |
446 | - new SDRAM refresh rate for PM825/PM826 | 454 | - new SDRAM refresh rate for PM825/PM826 |
447 | - added support for MicroSys PM520 (MPC5200) | 455 | - added support for MicroSys PM520 (MPC5200) |
448 | - replaced Query by Identify command in CPU86/flash.c | 456 | - replaced Query by Identify command in CPU86/flash.c |
449 | to support 28F160F3B | 457 | to support 28F160F3B |
450 | 458 | ||
451 | * Fix wrap around problem with udelay() on ARM920T | 459 | * Fix wrap around problem with udelay() on ARM920T |
452 | 460 | ||
453 | * Add support for Macronix flash on TRAB board | 461 | * Add support for Macronix flash on TRAB board |
454 | 462 | ||
455 | * Patch by Pierre Aubert, 15 Mar 2004: | 463 | * Patch by Pierre Aubert, 15 Mar 2004: |
456 | Fix buffer overflow in IDE identification | 464 | Fix buffer overflow in IDE identification |
457 | 465 | ||
458 | * Fix power-off of LCD for out-of-band temperatures on LWMON board | 466 | * Fix power-off of LCD for out-of-band temperatures on LWMON board |
459 | 467 | ||
460 | * Remove redundand #define in IceCube.h | 468 | * Remove redundand #define in IceCube.h |
461 | 469 | ||
462 | * Patch by Steven Scholz, 27 Feb 2004: | 470 | * Patch by Steven Scholz, 27 Feb 2004: |
463 | - Adding get_ticks() and get_tbclk() for AT91RM9200 | 471 | - Adding get_ticks() and get_tbclk() for AT91RM9200 |
464 | - Many white space fixes in cpu/at91rm9200/interrupts.c | 472 | - Many white space fixes in cpu/at91rm9200/interrupts.c |
465 | 473 | ||
466 | * Patches by Steven Scholz, 20 Feb 2004: | 474 | * Patches by Steven Scholz, 20 Feb 2004: |
467 | some cleanup in AT91RM9200 related code | 475 | some cleanup in AT91RM9200 related code |
468 | 476 | ||
469 | * Patches by Travis Sawyer, 12 Mar 2004: | 477 | * Patches by Travis Sawyer, 12 Mar 2004: |
470 | - Fix Gigabit Ethernet support for 440GX | 478 | - Fix Gigabit Ethernet support for 440GX |
471 | - Add Gigabit Ethernet Support to MII PHY utilities | 479 | - Add Gigabit Ethernet Support to MII PHY utilities |
472 | 480 | ||
473 | * Patch by Brad Kemp, 12 Mar 2004: | 481 | * Patch by Brad Kemp, 12 Mar 2004: |
474 | Fixes for drivers/cfi_flash.c: | 482 | Fixes for drivers/cfi_flash.c: |
475 | - Better support for x8/x16 implementations | 483 | - Better support for x8/x16 implementations |
476 | - Added failure for AMD chips attempting to use CFG_FLASH_USE_BUFFER_WRITE | 484 | - Added failure for AMD chips attempting to use CFG_FLASH_USE_BUFFER_WRITE |
477 | - Added defines for AMD command and address constants | 485 | - Added defines for AMD command and address constants |
478 | 486 | ||
479 | * Patch by Leon Kukovec, 12 Mar 2004: | 487 | * Patch by Leon Kukovec, 12 Mar 2004: |
480 | Fix get_dentfromdir() to correctly handle deleted dentries | 488 | Fix get_dentfromdir() to correctly handle deleted dentries |
481 | 489 | ||
482 | * Patch by George G. Davis, 11 Mar 2004: | 490 | * Patch by George G. Davis, 11 Mar 2004: |
483 | Remove hard coded network settings in TI OMAP1610 H2 | 491 | Remove hard coded network settings in TI OMAP1610 H2 |
484 | default board config | 492 | default board config |
485 | 493 | ||
486 | * Patch by George G. Davis, 11 Mar 2004: | 494 | * Patch by George G. Davis, 11 Mar 2004: |
487 | add support for ADS GraphicsClient+ board. | 495 | add support for ADS GraphicsClient+ board. |
488 | 496 | ||
489 | * Patch by Pierre Aubert, 11 Mar 2004: | 497 | * Patch by Pierre Aubert, 11 Mar 2004: |
490 | - add bitmap command and splash screen support in cfb console | 498 | - add bitmap command and splash screen support in cfb console |
491 | - add [optional] origin in the bitmap display command | 499 | - add [optional] origin in the bitmap display command |
492 | 500 | ||
493 | * Patch by Travis Sawyer, 11 Mar 2004: | 501 | * Patch by Travis Sawyer, 11 Mar 2004: |
494 | Fix ocotea board early init interrupt setup. | 502 | Fix ocotea board early init interrupt setup. |
495 | 503 | ||
496 | * Patch by Thomas Viehweger, 11 Mar 2004: | 504 | * Patch by Thomas Viehweger, 11 Mar 2004: |
497 | Remove redundand code; add PCI-specific bits to include/mpc8260.h | 505 | Remove redundand code; add PCI-specific bits to include/mpc8260.h |
498 | 506 | ||
499 | * Patch by Stephan Linz, 09 Mar 2004 | 507 | * Patch by Stephan Linz, 09 Mar 2004 |
500 | - Add support for the SSV ADNP/ESC1 (Nios Softcore) | 508 | - Add support for the SSV ADNP/ESC1 (Nios Softcore) |
501 | 509 | ||
502 | * Patch by George G. Davis, 9 Mar 2004: | 510 | * Patch by George G. Davis, 9 Mar 2004: |
503 | fix recent build failure for SA1100 target | 511 | fix recent build failure for SA1100 target |
504 | 512 | ||
505 | * Patch by Travis Sawyer, 09 Mar 2004: | 513 | * Patch by Travis Sawyer, 09 Mar 2004: |
506 | Support native interrupt mode for the IBM440GX. | 514 | Support native interrupt mode for the IBM440GX. |
507 | Previously it was running in 440GP compatibility mode. | 515 | Previously it was running in 440GP compatibility mode. |
508 | 516 | ||
509 | * Patch by Philippe Robin, 09 Mar 2004: | 517 | * Patch by Philippe Robin, 09 Mar 2004: |
510 | Added ARM Integrator AP, CP and Versatile PB926EJ-S Reference | 518 | Added ARM Integrator AP, CP and Versatile PB926EJ-S Reference |
511 | Platform support. | 519 | Platform support. |
512 | 520 | ||
513 | * Patch by Masami Komiya, 08 Mar 2004: | 521 | * Patch by Masami Komiya, 08 Mar 2004: |
514 | Don't overwrite server IP address or boot file name | 522 | Don't overwrite server IP address or boot file name |
515 | when the boot server does not return values | 523 | when the boot server does not return values |
516 | 524 | ||
517 | * Patch by Tolunay Orkun, 5 Mar 2004: | 525 | * Patch by Tolunay Orkun, 5 Mar 2004: |
518 | Removed compile time restriction on CFG_I2C_SPEED for DS1338 RTC | 526 | Removed compile time restriction on CFG_I2C_SPEED for DS1338 RTC |
519 | 527 | ||
520 | * Patch by Tolunay Orkun, 5 Mar 2004: | 528 | * Patch by Tolunay Orkun, 5 Mar 2004: |
521 | Fix early board initialization for Cogent CSB272 board | 529 | Fix early board initialization for Cogent CSB272 board |
522 | 530 | ||
523 | * Patch by Ed Okerson, 3 Mar 2004: | 531 | * Patch by Ed Okerson, 3 Mar 2004: |
524 | fix CFI flash writes for little endian systems | 532 | fix CFI flash writes for little endian systems |
525 | 533 | ||
526 | * Patch by Reinhard Meyer, 01 Mar 2004: | 534 | * Patch by Reinhard Meyer, 01 Mar 2004: |
527 | generalize USB and IDE support for MPC5200 with according | 535 | generalize USB and IDE support for MPC5200 with according |
528 | changes to IceCube.h and TOP5200.h | 536 | changes to IceCube.h and TOP5200.h |
529 | add Am29LV256 256 MBit FLASH support for TOP5200 boards | 537 | add Am29LV256 256 MBit FLASH support for TOP5200 boards |
530 | add info about USB and IDE to README | 538 | add info about USB and IDE to README |
531 | 539 | ||
532 | * Patch by Yuli Barcohen, 4 Mar 2004: | 540 | * Patch by Yuli Barcohen, 4 Mar 2004: |
533 | Fix problems with GCC 3.3.x which changed handling of global | 541 | Fix problems with GCC 3.3.x which changed handling of global |
534 | variables explicitly initialized to zero (now in .bss instead of | 542 | variables explicitly initialized to zero (now in .bss instead of |
535 | .data as before). | 543 | .data as before). |
536 | 544 | ||
537 | * Patch by Leon Kukovec, 02 Mar 2004: | 545 | * Patch by Leon Kukovec, 02 Mar 2004: |
538 | add strswab() to fix IDE LBA capacity, firmware and model numbers | 546 | add strswab() to fix IDE LBA capacity, firmware and model numbers |
539 | on little endian machines | 547 | on little endian machines |
540 | 548 | ||
541 | * Patch by Masami Komiya, 02 Mar 2004: | 549 | * Patch by Masami Komiya, 02 Mar 2004: |
542 | - Remove get_ticks() from NFS code | 550 | - Remove get_ticks() from NFS code |
543 | - Add verification of RPC transaction ID | 551 | - Add verification of RPC transaction ID |
544 | 552 | ||
545 | * Patch by Pierre Aubert, 02 Mar 2004: | 553 | * Patch by Pierre Aubert, 02 Mar 2004: |
546 | cleanup for IDE and USB drivers for MPC5200 | 554 | cleanup for IDE and USB drivers for MPC5200 |
547 | 555 | ||
548 | * Patch by Travis Sawyer, 01 Mar 2004: | 556 | * Patch by Travis Sawyer, 01 Mar 2004: |
549 | Ocotea: | 557 | Ocotea: |
550 | - Add IBM PPC440GX Ref Platform support (Ocotea) | 558 | - Add IBM PPC440GX Ref Platform support (Ocotea) |
551 | Original code by Paul Reynolds <PaulReynolds@lhsolutions.com> | 559 | Original code by Paul Reynolds <PaulReynolds@lhsolutions.com> |
552 | Adapted to U-Boot and 440GX port | 560 | Adapted to U-Boot and 440GX port |
553 | 440gx_enet.c: | 561 | 440gx_enet.c: |
554 | - Add gracious handling of all Ethernet Pin Selections for 440GX | 562 | - Add gracious handling of all Ethernet Pin Selections for 440GX |
555 | - Add RGMII selection for Cicada CIS8201 Gigabit PHY | 563 | - Add RGMII selection for Cicada CIS8201 Gigabit PHY |
556 | ppc440.h: | 564 | ppc440.h: |
557 | - Add needed bit definitions | 565 | - Add needed bit definitions |
558 | - Fix formatting | 566 | - Fix formatting |
559 | 567 | ||
560 | * Patch by Carl Riechers, 1 Mar 2004: | 568 | * Patch by Carl Riechers, 1 Mar 2004: |
561 | Add PPC440GX prbdv0 divider to fix memory clock calculation. | 569 | Add PPC440GX prbdv0 divider to fix memory clock calculation. |
562 | 570 | ||
563 | * Patch by Stephan Linz, 27 Feb 2004 | 571 | * Patch by Stephan Linz, 27 Feb 2004 |
564 | - avoid problems for targets without NFS download support | 572 | - avoid problems for targets without NFS download support |
565 | 573 | ||
566 | * Patch by Rune Torgersen, 27 Feb 2004: | 574 | * Patch by Rune Torgersen, 27 Feb 2004: |
567 | - Added LBA48 support (CONFIG_LBA48 & CFG_64BIT_LBA) | 575 | - Added LBA48 support (CONFIG_LBA48 & CFG_64BIT_LBA) |
568 | - Added support for 64bit printing in vsprintf (CFG_64BIT_VSPRINTF) | 576 | - Added support for 64bit printing in vsprintf (CFG_64BIT_VSPRINTF) |
569 | - Added support for 64bit strtoul (CFG_64BIT_STRTOUL) | 577 | - Added support for 64bit strtoul (CFG_64BIT_STRTOUL) |
570 | 578 | ||
571 | * Patch by Masami Komiya, 27 Feb 2004: | 579 | * Patch by Masami Komiya, 27 Feb 2004: |
572 | Fix rarpboot: add autoload by NFS | 580 | Fix rarpboot: add autoload by NFS |
573 | 581 | ||
574 | * Patch by Dan Eisenhut, 26 Feb 2004: | 582 | * Patch by Dan Eisenhut, 26 Feb 2004: |
575 | fix flash_write return value in saveenv | 583 | fix flash_write return value in saveenv |
576 | 584 | ||
577 | * Patch by Stephan Linz, 11 Dec 2003 | 585 | * Patch by Stephan Linz, 11 Dec 2003 |
578 | expand config.mk to avoid trigraph warnings on NIOS | 586 | expand config.mk to avoid trigraph warnings on NIOS |
579 | 587 | ||
580 | * Rename "BMS2003" board into "HMI10" | 588 | * Rename "BMS2003" board into "HMI10" |
581 | 589 | ||
582 | * SX1 patches: use "serial#" for USB serial #; use redundand environment | 590 | * SX1 patches: use "serial#" for USB serial #; use redundand environment |
583 | storage; auto-set console on USB port (using preboot command) | 591 | storage; auto-set console on USB port (using preboot command) |
584 | 592 | ||
585 | * Add support for SX1 mobile phone; add support for USB-based console | 593 | * Add support for SX1 mobile phone; add support for USB-based console |
586 | (enable with "setenv stdout usbtty; setenv stdin usbtty") | 594 | (enable with "setenv stdout usbtty; setenv stdin usbtty") |
587 | 595 | ||
588 | * Fix LOWBOOT configuration for MPC5200 with DDR memory | 596 | * Fix LOWBOOT configuration for MPC5200 with DDR memory |
589 | 597 | ||
590 | * Fix SDRAM timings for LITE5200 / IceCube board | 598 | * Fix SDRAM timings for LITE5200 / IceCube board |
591 | 599 | ||
592 | * Handle Auti-MDIX / connection status for INCA-IP | 600 | * Handle Auti-MDIX / connection status for INCA-IP |
593 | 601 | ||
594 | * Fix USB problems when attempting to read 0 bytes | 602 | * Fix USB problems when attempting to read 0 bytes |
595 | 603 | ||
596 | * Patch by Travis Sawyer, 26 Feb 2004: | 604 | * Patch by Travis Sawyer, 26 Feb 2004: |
597 | Fix broken compile for XPEDITE1K target. | 605 | Fix broken compile for XPEDITE1K target. |
598 | 606 | ||
599 | * Patch by Stephan Linz, 26 Feb 2004: | 607 | * Patch by Stephan Linz, 26 Feb 2004: |
600 | Bug fix for NFS code on NIOS targets | 608 | Bug fix for NFS code on NIOS targets |
601 | 609 | ||
602 | * Patch by Stephen Williams, 26 Feb 2004: | 610 | * Patch by Stephen Williams, 26 Feb 2004: |
603 | Break up SystemACE reads of large block counts | 611 | Break up SystemACE reads of large block counts |
604 | 612 | ||
605 | * Patch by Pierre Aubert, 26 Feb 2004 | 613 | * Patch by Pierre Aubert, 26 Feb 2004 |
606 | add IDE support for MPC5200 | 614 | add IDE support for MPC5200 |
607 | 615 | ||
608 | * Patch by Masami Komiya, 26 Feb 2004: | 616 | * Patch by Masami Komiya, 26 Feb 2004: |
609 | add autoload via NFS | 617 | add autoload via NFS |
610 | 618 | ||
611 | * Patch by Stephen Williams | 619 | * Patch by Stephen Williams |
612 | Use of CONFIG_SERIAL_SOFTWARE_FIFO in board.c consistent with uses | 620 | Use of CONFIG_SERIAL_SOFTWARE_FIFO in board.c consistent with uses |
613 | elsewhere in the source. | 621 | elsewhere in the source. |
614 | 622 | ||
615 | * Patch by Steven Scholz, 25 Feb 2004: | 623 | * Patch by Steven Scholz, 25 Feb 2004: |
616 | - Timeouts in FPGA code should be based on CFG_HZ | 624 | - Timeouts in FPGA code should be based on CFG_HZ |
617 | - Minor cleanup in code for Altera FPGA ACEX1K | 625 | - Minor cleanup in code for Altera FPGA ACEX1K |
618 | 626 | ||
619 | * Patch by Steven Scholz, 25 Feb 2004: | 627 | * Patch by Steven Scholz, 25 Feb 2004: |
620 | Changed "Directory Hierarchy" section in README | 628 | Changed "Directory Hierarchy" section in README |
621 | 629 | ||
622 | * Patch by Masami Komiya, 25 Feb 2004: | 630 | * Patch by Masami Komiya, 25 Feb 2004: |
623 | Reduce copy count in nfs_read_reply() of NFS code | 631 | Reduce copy count in nfs_read_reply() of NFS code |
624 | 632 | ||
625 | * Patch by Markus Pietrek, 24 Feb 2004: | 633 | * Patch by Markus Pietrek, 24 Feb 2004: |
626 | NS9750 DevBoard added | 634 | NS9750 DevBoard added |
627 | 635 | ||
628 | * Patch by Pierre Aubert, 24 Feb 2004 | 636 | * Patch by Pierre Aubert, 24 Feb 2004 |
629 | add USB support for MPC5200 | 637 | add USB support for MPC5200 |
630 | 638 | ||
631 | * Patch by Steven Scholz, 24 Feb 2004: | 639 | * Patch by Steven Scholz, 24 Feb 2004: |
632 | - fix MII commands to use values from last command | 640 | - fix MII commands to use values from last command |
633 | 641 | ||
634 | * Patch by Torsten Demke, 24 Feb 2004: | 642 | * Patch by Torsten Demke, 24 Feb 2004: |
635 | Add support for the eXalion platform (SPSW-8240, F-30, F-300) | 643 | Add support for the eXalion platform (SPSW-8240, F-30, F-300) |
636 | 644 | ||
637 | * Patch by Rahul Shanbhag, 19 Feb 2004: | 645 | * Patch by Rahul Shanbhag, 19 Feb 2004: |
638 | Fixes for for OMAP1610 board: | 646 | Fixes for for OMAP1610 board: |
639 | - shift some IRQ specific code to platform.S file | 647 | - shift some IRQ specific code to platform.S file |
640 | - remove duplicatewatchdog reset code from start.S | 648 | - remove duplicatewatchdog reset code from start.S |
641 | 649 | ||
642 | * Make Auto-MDIX Support configurable on INCA-IP board | 650 | * Make Auto-MDIX Support configurable on INCA-IP board |
643 | 651 | ||
644 | * Fix license for mkimage tool | 652 | * Fix license for mkimage tool |
645 | 653 | ||
646 | * Patch by Masami Komiya, 24 Feb 2004: | 654 | * Patch by Masami Komiya, 24 Feb 2004: |
647 | Update NetBootFileXferSize in NFS code | 655 | Update NetBootFileXferSize in NFS code |
648 | 656 | ||
649 | * Patch by Scott McNutt, 24 Feb 2004: | 657 | * Patch by Scott McNutt, 24 Feb 2004: |
650 | fix packet length in NFS code | 658 | fix packet length in NFS code |
651 | 659 | ||
652 | * Patch by Masami Komiy, 22 Feb 2004: | 660 | * Patch by Masami Komiy, 22 Feb 2004: |
653 | Add support for NFS for file download | 661 | Add support for NFS for file download |
654 | 662 | ||
655 | * Patch by Andrea Scian, 17 Feb 2004: | 663 | * Patch by Andrea Scian, 17 Feb 2004: |
656 | Add support for S3C44B0 processor and DAVE B2 board | 664 | Add support for S3C44B0 processor and DAVE B2 board |
657 | 665 | ||
658 | * Patch by Steven Scholz, 20 Feb 2004: | 666 | * Patch by Steven Scholz, 20 Feb 2004: |
659 | - Add support for MII commands on AT91RM9200 boards | 667 | - Add support for MII commands on AT91RM9200 boards |
660 | - some cleanup in AT91RM9200 ethernet code | 668 | - some cleanup in AT91RM9200 ethernet code |
661 | 669 | ||
662 | * Patch by Peter Ryser, 20 Feb 2004: | 670 | * Patch by Peter Ryser, 20 Feb 2004: |
663 | Add support for the Xilinx ML300 platform | 671 | Add support for the Xilinx ML300 platform |
664 | 672 | ||
665 | * Patch by Stephan Linz, 17 Feb 2004: | 673 | * Patch by Stephan Linz, 17 Feb 2004: |
666 | Fix watchdog support for NIOS | 674 | Fix watchdog support for NIOS |
667 | 675 | ||
668 | * Patch by Josh Fryman, 16 Feb 2004: | 676 | * Patch by Josh Fryman, 16 Feb 2004: |
669 | Fix byte-swapping for cfi_flash.c for different bus widths | 677 | Fix byte-swapping for cfi_flash.c for different bus widths |
670 | 678 | ||
671 | * Patch by Jon Diekema, 14 Jeb 2004: | 679 | * Patch by Jon Diekema, 14 Jeb 2004: |
672 | Remove duplicate "FPGA Support" notes from the README file | 680 | Remove duplicate "FPGA Support" notes from the README file |
673 | 681 | ||
674 | * Patches by Reinhard Meyer, 14 Feb 2004: | 682 | * Patches by Reinhard Meyer, 14 Feb 2004: |
675 | - update board/emk tree; use common flash driver | 683 | - update board/emk tree; use common flash driver |
676 | - Corrected tested bits in machine check exception in cpu/mpc5xxx/traps.c | 684 | - Corrected tested bits in machine check exception in cpu/mpc5xxx/traps.c |
677 | [adapted for other PPC CPUs -- wd] | 685 | [adapted for other PPC CPUs -- wd] |
678 | - Added support for the M48T08 on the EVAL5200 board in rtc/mk48t59.c | 686 | - Added support for the M48T08 on the EVAL5200 board in rtc/mk48t59.c |
679 | 687 | ||
680 | * Patch by Jon Diekema, 13 Feb 2004: | 688 | * Patch by Jon Diekema, 13 Feb 2004: |
681 | Call show_boot_progress() whenever POST "FAILED" is printed. | 689 | Call show_boot_progress() whenever POST "FAILED" is printed. |
682 | 690 | ||
683 | * Patch by Nishant Kamat, 13 Feb 2004: | 691 | * Patch by Nishant Kamat, 13 Feb 2004: |
684 | Add support for TI OMAP1610 H2 Board | 692 | Add support for TI OMAP1610 H2 Board |
685 | Fixes for cpu/arm926ejs/interrupt.c | 693 | Fixes for cpu/arm926ejs/interrupt.c |
686 | (based on Richard Woodruff's patch for arm925, 16 Oct 03) | 694 | (based on Richard Woodruff's patch for arm925, 16 Oct 03) |
687 | Fix for a timer bug in OMAP1610 Innovator | 695 | Fix for a timer bug in OMAP1610 Innovator |
688 | Add support for CS0 (ROM)/CS3 (Flash) boot in OMAP1610 Innovator and H2 | 696 | Add support for CS0 (ROM)/CS3 (Flash) boot in OMAP1610 Innovator and H2 |
689 | 697 | ||
690 | * Patches by Stephan Linz, 12 Feb 2004: | 698 | * Patches by Stephan Linz, 12 Feb 2004: |
691 | - add support for NIOS timer with variable period preload counter value | 699 | - add support for NIOS timer with variable period preload counter value |
692 | - prepare POST framework support for NIOS targets | 700 | - prepare POST framework support for NIOS targets |
693 | 701 | ||
694 | * Patch by Denis Peter, 11 Feb 2004: | 702 | * Patch by Denis Peter, 11 Feb 2004: |
695 | add POST support for the MIP405 board | 703 | add POST support for the MIP405 board |
696 | 704 | ||
697 | * Patch by Laurent Mohin, 10 Feb 2004: | 705 | * Patch by Laurent Mohin, 10 Feb 2004: |
698 | Fix buffer overflow in common/usb.c | 706 | Fix buffer overflow in common/usb.c |
699 | 707 | ||
700 | * Patch by Tolunay Orkun, 10 Feb 2004: | 708 | * Patch by Tolunay Orkun, 10 Feb 2004: |
701 | Add support for Cogent CSB272 board | 709 | Add support for Cogent CSB272 board |
702 | 710 | ||
703 | * Patch by Thomas Elste, 10 Feb 2004: | 711 | * Patch by Thomas Elste, 10 Feb 2004: |
704 | Add support for NET+50 CPU and ModNET50 board | 712 | Add support for NET+50 CPU and ModNET50 board |
705 | 713 | ||
706 | * Patch by Sam Song, 10 Feb 2004: | 714 | * Patch by Sam Song, 10 Feb 2004: |
707 | Fix typos in cfi_flash.c | 715 | Fix typos in cfi_flash.c |
708 | 716 | ||
709 | * Patch by Leon Kukovec, 10 Feb 2004 | 717 | * Patch by Leon Kukovec, 10 Feb 2004 |
710 | Fixed long dir entry slot id calculation in get_vfatname | 718 | Fixed long dir entry slot id calculation in get_vfatname |
711 | 719 | ||
712 | * Patch by Robin Gilks, 10 Feb 2004: | 720 | * Patch by Robin Gilks, 10 Feb 2004: |
713 | add "itest" command (operators: -eq, -ne, -lt, -gt, -le, -ge, ==, | 721 | add "itest" command (operators: -eq, -ne, -lt, -gt, -le, -ge, ==, |
714 | !=, <>, <, >, <=, >=) | 722 | !=, <>, <, >, <=, >=) |
715 | 723 | ||
716 | * Fix problem with side effects in macros in include/usb.h | 724 | * Fix problem with side effects in macros in include/usb.h |
717 | 725 | ||
718 | * Patch by David Benson, 13 Nov 2003: | 726 | * Patch by David Benson, 13 Nov 2003: |
719 | bug 841358 - fix TFTP download size limit | 727 | bug 841358 - fix TFTP download size limit |
720 | 728 | ||
721 | * Fixing bug 850768: | 729 | * Fixing bug 850768: |
722 | improper flush_cache() in load_serial() | 730 | improper flush_cache() in load_serial() |
723 | 731 | ||
724 | * Fixing bug 834943: | 732 | * Fixing bug 834943: |
725 | MPC8540 - missing volatile declarations | 733 | MPC8540 - missing volatile declarations |
726 | 734 | ||
727 | * Patch by Stephen Williams, 09 Feb 2004: | 735 | * Patch by Stephen Williams, 09 Feb 2004: |
728 | Add support for Xilinx SystemACE chip: | 736 | Add support for Xilinx SystemACE chip: |
729 | - New files common/cmd_ace.c and include/systemace.h | 737 | - New files common/cmd_ace.c and include/systemace.h |
730 | - Hook systemace support into cmd_fat and the partition manager | 738 | - Hook systemace support into cmd_fat and the partition manager |
731 | 739 | ||
732 | * Patch by Travis Sawyer, 09 Feb 2004: | 740 | * Patch by Travis Sawyer, 09 Feb 2004: |
733 | Add bi_opbfreq & bi_iic_fast to 440GX bd_info as needed for Linux | 741 | Add bi_opbfreq & bi_iic_fast to 440GX bd_info as needed for Linux |
734 | 742 | ||
735 | * Patch by Travis Sawyer, 09 Feb 2004: | 743 | * Patch by Travis Sawyer, 09 Feb 2004: |
736 | o 440GX: | 744 | o 440GX: |
737 | - Fix PCI Indirect access for type 1 config cycles with ppc440. | 745 | - Fix PCI Indirect access for type 1 config cycles with ppc440. |
738 | - Add phymode for 440 enet | 746 | - Add phymode for 440 enet |
739 | - fix pci pre init | 747 | - fix pci pre init |
740 | o XPedite1K: | 748 | o XPedite1K: |
741 | - Change board_pre_init to board_early_init_f | 749 | - Change board_pre_init to board_early_init_f |
742 | - Add user flash to bus controller setup | 750 | - Add user flash to bus controller setup |
743 | - Fix pci pre init | 751 | - Fix pci pre init |
744 | - Fix is_pci_host to check GPIO for monarch bit | 752 | - Fix is_pci_host to check GPIO for monarch bit |
745 | - Force xpedite1k to pci conventional mode (via #define option) | 753 | - Force xpedite1k to pci conventional mode (via #define option) |
746 | 754 | ||
747 | * Patch by Brad Kemp, 4 Feb 2004: | 755 | * Patch by Brad Kemp, 4 Feb 2004: |
748 | - handle the machine check that is generated during the PCI scans | 756 | - handle the machine check that is generated during the PCI scans |
749 | on 82xx processors. | 757 | on 82xx processors. |
750 | - define the registers used in the IMMR by the PCI subsystem. | 758 | - define the registers used in the IMMR by the PCI subsystem. |
751 | 759 | ||
752 | * Patch by Pierre Aubert, 03 Feb 2004: | 760 | * Patch by Pierre Aubert, 03 Feb 2004: |
753 | cpu/mpc5xxx/start.S: copy MBAR into SPR311 | 761 | cpu/mpc5xxx/start.S: copy MBAR into SPR311 |
754 | 762 | ||
755 | * Patch by Jeff Angielski, 03 Feb 2004: | 763 | * Patch by Jeff Angielski, 03 Feb 2004: |
756 | Fix copy & paste error in cpu/mpc8260/pci.c | 764 | Fix copy & paste error in cpu/mpc8260/pci.c |
757 | 765 | ||
758 | * Patch by Reinhard Meyer, 24 Jan 2004: | 766 | * Patch by Reinhard Meyer, 24 Jan 2004: |
759 | Fix typo in cpu/mpc5xxx/pci_mpc5200.c | 767 | Fix typo in cpu/mpc5xxx/pci_mpc5200.c |
760 | 768 | ||
761 | * Add Auto-MDIX support for INCA-IP | 769 | * Add Auto-MDIX support for INCA-IP |
762 | 770 | ||
763 | * Some code cleanup | 771 | * Some code cleanup |
764 | 772 | ||
765 | * Patch by Josef Baumgartner, 10 Feb 2004: | 773 | * Patch by Josef Baumgartner, 10 Feb 2004: |
766 | Fixes for Coldfire port | 774 | Fixes for Coldfire port |
767 | 775 | ||
768 | * Patch by Brad Kemp, 11 Feb 2004: | 776 | * Patch by Brad Kemp, 11 Feb 2004: |
769 | Fix CFI flash driver problems | 777 | Fix CFI flash driver problems |
770 | 778 | ||
771 | * Make sure to use a bus clock divider of 2 only when running TQM8xxM | 779 | * Make sure to use a bus clock divider of 2 only when running TQM8xxM |
772 | modules at CPU clock frequencies above 66 MHz. | 780 | modules at CPU clock frequencies above 66 MHz. |
773 | 781 | ||
774 | * Optimize flash programming speed for LWMON (by another 100% :-) | 782 | * Optimize flash programming speed for LWMON (by another 100% :-) |
775 | 783 | ||
776 | * Patch by Jian Zhang, 3 Feb 2004: | 784 | * Patch by Jian Zhang, 3 Feb 2004: |
777 | - Changed the incorrect FAT12BUFSIZE | 785 | - Changed the incorrect FAT12BUFSIZE |
778 | - data_begin in fsdata can be negative. Changed it to be short. | 786 | - data_begin in fsdata can be negative. Changed it to be short. |
779 | 787 | ||
780 | * Patches by Stephan Linz, 30 Jan 2004: | 788 | * Patches by Stephan Linz, 30 Jan 2004: |
781 | 1: - board/altera/common/flash.c:flash_erase(): | 789 | 1: - board/altera/common/flash.c:flash_erase(): |
782 | o allow interrupts befor get_timer() call | 790 | o allow interrupts befor get_timer() call |
783 | o check-up each erased sector and avoid unexpected timeouts | 791 | o check-up each erased sector and avoid unexpected timeouts |
784 | - board/altera/dk1c20/dk1s10.c:board_early_init_f(): | 792 | - board/altera/dk1c20/dk1s10.c:board_early_init_f(): |
785 | o enclose sevenseg_set() in cpp condition | 793 | o enclose sevenseg_set() in cpp condition |
786 | - remove the ASMI configuration for DK1S10_standard_32 (never present) | 794 | - remove the ASMI configuration for DK1S10_standard_32 (never present) |
787 | - fix some typed in mistakes in the NIOS documentation | 795 | - fix some typed in mistakes in the NIOS documentation |
788 | 2: - split DK1C20 configuration into several header files: | 796 | 2: - split DK1C20 configuration into several header files: |
789 | o two new files for each NIOS CPU description | 797 | o two new files for each NIOS CPU description |
790 | o U-Boot related part is remaining in DK1C20.h | 798 | o U-Boot related part is remaining in DK1C20.h |
791 | 3: - split DK1S10 configuration into several header files: | 799 | 3: - split DK1S10 configuration into several header files: |
792 | o two new files for each NIOS CPU description | 800 | o two new files for each NIOS CPU description |
793 | o U-Boot related part is remaining in DK1S10.h | 801 | o U-Boot related part is remaining in DK1S10.h |
794 | 4: - Add support for the Microtronix Linux Development Kit | 802 | 4: - Add support for the Microtronix Linux Development Kit |
795 | NIOS CPU configuration at the Altera Nios Development Kit, | 803 | NIOS CPU configuration at the Altera Nios Development Kit, |
796 | Stratix Edition (DK-1S10) | 804 | Stratix Edition (DK-1S10) |
797 | 5: - Add documentation for the Altera Nios Development Kit, | 805 | 5: - Add documentation for the Altera Nios Development Kit, |
798 | Stratix Edition (DK-1S10) | 806 | Stratix Edition (DK-1S10) |
799 | 6: - Add support for the Nios Serial Peripharel Interface (SPI) | 807 | 6: - Add support for the Nios Serial Peripharel Interface (SPI) |
800 | (master only) | 808 | (master only) |
801 | 7: - Add support for the common U-Boot SPI framework at | 809 | 7: - Add support for the common U-Boot SPI framework at |
802 | RTC driver DS1306 | 810 | RTC driver DS1306 |
803 | 811 | ||
804 | * Patch by Rahul Shanbhag, 28 Jan 2004: | 812 | * Patch by Rahul Shanbhag, 28 Jan 2004: |
805 | Fix flash protection/locking handling for OMAP1610 innovator board. | 813 | Fix flash protection/locking handling for OMAP1610 innovator board. |
806 | 814 | ||
807 | * Patch by Rolf Peukert, 28 Jan 2004: | 815 | * Patch by Rolf Peukert, 28 Jan 2004: |
808 | fix flash write problems on CSB226 board (write with 32 bit bus width) | 816 | fix flash write problems on CSB226 board (write with 32 bit bus width) |
809 | 817 | ||
810 | * Patches by Mark Jonas, 16 Jan 2004: | 818 | * Patches by Mark Jonas, 16 Jan 2004: |
811 | - fix rounding error when calculating baudrates for MPC5200 PSCs | 819 | - fix rounding error when calculating baudrates for MPC5200 PSCs |
812 | - make sure CFG_RAMBOOT and CFG_LOWBOOT are not enabled at the same | 820 | - make sure CFG_RAMBOOT and CFG_LOWBOOT are not enabled at the same |
813 | time which is not supported | 821 | time which is not supported |
814 | 822 | ||
815 | * Patch by Yuli Barcohen, 26 Jan 2004: | 823 | * Patch by Yuli Barcohen, 26 Jan 2004: |
816 | Allow bzip2 compression for small memory footprint boards | 824 | Allow bzip2 compression for small memory footprint boards |
817 | 825 | ||
818 | * Patch by Brad Kemp, 21 Jan 2004: | 826 | * Patch by Brad Kemp, 21 Jan 2004: |
819 | Add support for CFI flash driver for both the Intel and the AMD | 827 | Add support for CFI flash driver for both the Intel and the AMD |
820 | command sets. | 828 | command sets. |
821 | 829 | ||
822 | * Patch by Travis Sawyer, 20 Jan 2004: | 830 | * Patch by Travis Sawyer, 20 Jan 2004: |
823 | Fix pci bridge auto enumeration of sibling p2p bridges. | 831 | Fix pci bridge auto enumeration of sibling p2p bridges. |
824 | 832 | ||
825 | * Patch by Tolunay Orkun, 12 Jan 2004: | 833 | * Patch by Tolunay Orkun, 12 Jan 2004: |
826 | Add some delays as needed for Intel LXT971A PHY support | 834 | Add some delays as needed for Intel LXT971A PHY support |
827 | 835 | ||
828 | * Patches by Stephan Linz, 09 Jan 2004: | 836 | * Patches by Stephan Linz, 09 Jan 2004: |
829 | - avoid warning: unused variable `piop' in board/altera/common/sevenseg.c | 837 | - avoid warning: unused variable `piop' in board/altera/common/sevenseg.c |
830 | - make DK1C20 board configuration related to ASMI conform to | 838 | - make DK1C20 board configuration related to ASMI conform to |
831 | documentation | 839 | documentation |
832 | 840 | ||
833 | * Patch by Anders Larsen, 09 Jan 2004: | 841 | * Patch by Anders Larsen, 09 Jan 2004: |
834 | 842 | ||
835 | ARM memory layout fixes: the abort-stack is now set up in the | 843 | ARM memory layout fixes: the abort-stack is now set up in the |
836 | correct RAM area, and the BSS is zeroed out as it should be. | 844 | correct RAM area, and the BSS is zeroed out as it should be. |
837 | 845 | ||
838 | Furthermore, the magic variables 'armboot_end' and 'armboot_end_data' | 846 | Furthermore, the magic variables 'armboot_end' and 'armboot_end_data' |
839 | of the linker scripts are replaced by '__bss_start' and '_end', | 847 | of the linker scripts are replaced by '__bss_start' and '_end', |
840 | resp., which is a further step to eliminate unnecessary differences | 848 | resp., which is a further step to eliminate unnecessary differences |
841 | between the implementation of the CPU architectures. | 849 | between the implementation of the CPU architectures. |
842 | 850 | ||
843 | * Patch by liang a lei, 9 Jan 2004: | 851 | * Patch by liang a lei, 9 Jan 2004: |
844 | Fix Intel 28F128J3 ID in include/flash.h | 852 | Fix Intel 28F128J3 ID in include/flash.h |
845 | 853 | ||
846 | * Patch by Masami Komiya, 09 Jan 2004: | 854 | * Patch by Masami Komiya, 09 Jan 2004: |
847 | add support for TB0229 board (NEC VR4131 MIPS processor) | 855 | add support for TB0229 board (NEC VR4131 MIPS processor) |
848 | 856 | ||
849 | * Patch by Leon Kukovec, 12 Dec 2003: | 857 | * Patch by Leon Kukovec, 12 Dec 2003: |
850 | changed extern __inline__ into static __inline__ in | 858 | changed extern __inline__ into static __inline__ in |
851 | include/linux/byteorder/swab.h | 859 | include/linux/byteorder/swab.h |
852 | 860 | ||
853 | * Patch by Travis Sawyer, 30 Dec 2003: | 861 | * Patch by Travis Sawyer, 30 Dec 2003: |
854 | Add support for IBM PPC440GX. Multiple EMAC Ethernet devices, | 862 | Add support for IBM PPC440GX. Multiple EMAC Ethernet devices, |
855 | select MDI port based on enabled EMAC device. | 863 | select MDI port based on enabled EMAC device. |
856 | Add support for XES Inc <http://www.xes-inc.com> XPedite1000 440GX | 864 | Add support for XES Inc <http://www.xes-inc.com> XPedite1000 440GX |
857 | base PrPMC board. | 865 | base PrPMC board. |
858 | 866 | ||
859 | * Patch by Wolter Kamphuis, 15 Dec 2003: | 867 | * Patch by Wolter Kamphuis, 15 Dec 2003: |
860 | made CONFIG_SILENT_CONSOLE usable on all architectures | 868 | made CONFIG_SILENT_CONSOLE usable on all architectures |
861 | 869 | ||
862 | * Disable date command on TQM866M - there is no RTC on MPC866 | 870 | * Disable date command on TQM866M - there is no RTC on MPC866 |
863 | 871 | ||
864 | * Fix variable CPU clock for MPC859/866 systems for low CPU clocks | 872 | * Fix variable CPU clock for MPC859/866 systems for low CPU clocks |
865 | 873 | ||
866 | * Implement adaptive SDRAM timing configuration based on actual CPU | 874 | * Implement adaptive SDRAM timing configuration based on actual CPU |
867 | clock frequency for INCA-IP; fix problem with board hanging when | 875 | clock frequency for INCA-IP; fix problem with board hanging when |
868 | switching from 150MHz to 100MHz | 876 | switching from 150MHz to 100MHz |
869 | 877 | ||
870 | * Add PCMCIA CS support for BMS2003 board | 878 | * Add PCMCIA CS support for BMS2003 board |
871 | 879 | ||
872 | * Add variable CPU clock for MPC859/866 systems (so far only TQM866M): | 880 | * Add variable CPU clock for MPC859/866 systems (so far only TQM866M): |
873 | see doc/README.MPC866 for details; | 881 | see doc/README.MPC866 for details; |
874 | implement workaround for "SIU4" and "SIU9" silicon bugs on MPC866; | 882 | implement workaround for "SIU4" and "SIU9" silicon bugs on MPC866; |
875 | calculate CPU clock frequency from PLL register values. | 883 | calculate CPU clock frequency from PLL register values. |
876 | 884 | ||
877 | * Add support for 128 MB RAM on TQM8xxL/M modules | 885 | * Add support for 128 MB RAM on TQM8xxL/M modules |
878 | 886 | ||
879 | * Fix PS/2 keyboard problem caused by statically initialized variable | 887 | * Fix PS/2 keyboard problem caused by statically initialized variable |
880 | pointing to a location in flash | 888 | pointing to a location in flash |
881 | 889 | ||
882 | * Fix INCA-IP clock calculation: 400/3 = 133.3 MHz, not 130. | 890 | * Fix INCA-IP clock calculation: 400/3 = 133.3 MHz, not 130. |
883 | 891 | ||
884 | * The PS/2 mux on the BMS2003 board needs 450 ms after power on | 892 | * The PS/2 mux on the BMS2003 board needs 450 ms after power on |
885 | before we can access it; add delay in case we are faster (with no | 893 | before we can access it; add delay in case we are faster (with no |
886 | CF card inserted) | 894 | CF card inserted) |
887 | 895 | ||
888 | * Cleanup of some init functions | 896 | * Cleanup of some init functions |
889 | 897 | ||
890 | * Make sure SCC Ethernet is always stopped by the time we boot Linux | 898 | * Make sure SCC Ethernet is always stopped by the time we boot Linux |
891 | to avoid Linux crashes by early packets coming in. | 899 | to avoid Linux crashes by early packets coming in. |
892 | 900 | ||
893 | * Accelerate flash accesses on LWMON board by using buffered writes | 901 | * Accelerate flash accesses on LWMON board by using buffered writes |
894 | 902 | ||
895 | * Fix typo in Makefile; | 903 | * Fix typo in Makefile; |
896 | fix problem with PARTNUM detection | 904 | fix problem with PARTNUM detection |
897 | 905 | ||
898 | * Patch by Reinhard Meyer, 09 Jan 2004: | 906 | * Patch by Reinhard Meyer, 09 Jan 2004: |
899 | - add RTC support for MPC5200 based boards (requires RTC_XTAL) | 907 | - add RTC support for MPC5200 based boards (requires RTC_XTAL) |
900 | 908 | ||
901 | * Add support for IDE LED on BMS2003 board | 909 | * Add support for IDE LED on BMS2003 board |
902 | (exclusive with status LED!) | 910 | (exclusive with status LED!) |
903 | 911 | ||
904 | * Add support for PS/2 keyboard (used with PS/2 multiplexor on | 912 | * Add support for PS/2 keyboard (used with PS/2 multiplexor on |
905 | BMS2003 board) | 913 | BMS2003 board) |
906 | 914 | ||
907 | * Patches by Reinhard Meyer, 4 Jan 2004 + 7 Jan 2004: | 915 | * Patches by Reinhard Meyer, 4 Jan 2004 + 7 Jan 2004: |
908 | Add common files for "emk" boards | 916 | Add common files for "emk" boards |
909 | 917 | ||
910 | * Add a common get_ram_size() function and modify the the | 918 | * Add a common get_ram_size() function and modify the the |
911 | board-specific files to invoke that common implementation. | 919 | board-specific files to invoke that common implementation. |
912 | 920 | ||
913 | ====================================================================== | 921 | ====================================================================== |
914 | Changes for U-Boot 1.0.1: | 922 | Changes for U-Boot 1.0.1: |
915 | ====================================================================== | 923 | ====================================================================== |
916 | 924 | ||
917 | * Set default clock for INCA-IP to 150 MHz | 925 | * Set default clock for INCA-IP to 150 MHz |
918 | 926 | ||
919 | * Make BMS2003 use a separate config file to avoid #ifdef mess; | 927 | * Make BMS2003 use a separate config file to avoid #ifdef mess; |
920 | add I2C support; add support for DS1337 RTC | 928 | add I2C support; add support for DS1337 RTC |
921 | 929 | ||
922 | * Add CompactFlash support for BMS2003 board | 930 | * Add CompactFlash support for BMS2003 board |
923 | 931 | ||
924 | * Add support for status LED on BMS2003 board | 932 | * Add support for status LED on BMS2003 board |
925 | 933 | ||
926 | * Patch by Scott McNutt, 02 Jan 2004: | 934 | * Patch by Scott McNutt, 02 Jan 2004: |
927 | Add support for the Nios Active Serial Memory Interface (ASMI) | 935 | Add support for the Nios Active Serial Memory Interface (ASMI) |
928 | on Cyclone devices | 936 | on Cyclone devices |
929 | 937 | ||
930 | * Patch by Andrea Marson, 16 Dec 2003: | 938 | * Patch by Andrea Marson, 16 Dec 2003: |
931 | Add support for the PPChameleon ME and HI modules | 939 | Add support for the PPChameleon ME and HI modules |
932 | 940 | ||
933 | * Patch by Yuli Barcohen, 22 Dec 2003: | 941 | * Patch by Yuli Barcohen, 22 Dec 2003: |
934 | Add support for Motorola DUET ADS board (MPC87x/88x) | 942 | Add support for Motorola DUET ADS board (MPC87x/88x) |
935 | 943 | ||
936 | * Patch by Robert Schwebel, 15 Dec 2003: | 944 | * Patch by Robert Schwebel, 15 Dec 2003: |
937 | add support for cramfs (uses JFFS2 command interface) | 945 | add support for cramfs (uses JFFS2 command interface) |
938 | 946 | ||
939 | * Patches by Stephan Linz, 11 Dec 2003: | 947 | * Patches by Stephan Linz, 11 Dec 2003: |
940 | - more documentation for NIOS port | 948 | - more documentation for NIOS port |
941 | - new struct nios_pio_t, struct nios_spi_t | 949 | - new struct nios_pio_t, struct nios_spi_t |
942 | - Reconfiguration for NIOS Development Kit DK1C20: | 950 | - Reconfiguration for NIOS Development Kit DK1C20: |
943 | o move board related code from board/dk1c20 | 951 | o move board related code from board/dk1c20 |
944 | to board/altera/dk1c20 | 952 | to board/altera/dk1c20 |
945 | o create a new common source path board/altera/common | 953 | o create a new common source path board/altera/common |
946 | and move generic flash access stuff into it | 954 | and move generic flash access stuff into it |
947 | o change/expand configuration file DK1C20.h | 955 | o change/expand configuration file DK1C20.h |
948 | - Add support for NIOS Development Kit DK1S10 | 956 | - Add support for NIOS Development Kit DK1S10 |
949 | - Add status LED support for NIOS systems | 957 | - Add status LED support for NIOS systems |
950 | - Add dual 7-segment LED support for Altera NIOS DevKits | 958 | - Add dual 7-segment LED support for Altera NIOS DevKits |
951 | 959 | ||
952 | * Patch by Ronen Shitrit, 10 Dec 2003: | 960 | * Patch by Ronen Shitrit, 10 Dec 2003: |
953 | Add support for the Marvell DB64360 / DB64460 development boards | 961 | Add support for the Marvell DB64360 / DB64460 development boards |
954 | 962 | ||
955 | * Patch by Detlev Zundel, 10 Dec 2003: | 963 | * Patch by Detlev Zundel, 10 Dec 2003: |
956 | fix dependency problem in examples/Makefile | 964 | fix dependency problem in examples/Makefile |
957 | 965 | ||
958 | * Patch by Denis Peter, 8 Dec 2003 | 966 | * Patch by Denis Peter, 8 Dec 2003 |
959 | - add support for the PATI board (MPC555) | 967 | - add support for the PATI board (MPC555) |
960 | - add SPI support for the MPC5xx | 968 | - add SPI support for the MPC5xx |
961 | 969 | ||
962 | * Patch by Anders Larsen, 08 Dec 2003: | 970 | * Patch by Anders Larsen, 08 Dec 2003: |
963 | add configuration options CONFIG_SERIAL_TAG and CONFIG_REVISION_TAG | 971 | add configuration options CONFIG_SERIAL_TAG and CONFIG_REVISION_TAG |
964 | to pass ATAG_SERIAL and ATAG_REVISION, resp., to the ARM target; | 972 | to pass ATAG_SERIAL and ATAG_REVISION, resp., to the ARM target; |
965 | cleanup some redundand #defines | 973 | cleanup some redundand #defines |
966 | 974 | ||
967 | * Patch by André Schwarz, 8 Dec 2003: | 975 | * Patch by André Schwarz, 8 Dec 2003: |
968 | fixes for Davicom DM9102A Ethernet Chip (#define CONFIG_TULIP_FIX_DAVICOM): | 976 | fixes for Davicom DM9102A Ethernet Chip (#define CONFIG_TULIP_FIX_DAVICOM): |
969 | - TX and RX deskriptors must be quad-word aligned | 977 | - TX and RX deskriptors must be quad-word aligned |
970 | - does not work with only one TX deskriptor | 978 | - does not work with only one TX deskriptor |
971 | - standard reset method does not work | 979 | - standard reset method does not work |
972 | 980 | ||
973 | * Patch by Masami Komiya, 08 Dec 2003: | 981 | * Patch by Masami Komiya, 08 Dec 2003: |
974 | add RTL8139 ethernet driver | 982 | add RTL8139 ethernet driver |
975 | 983 | ||
976 | * Patches by Ed Okerson, 07 Dec 2003: | 984 | * Patches by Ed Okerson, 07 Dec 2003: |
977 | - fix ethernet for the AU1x00 processors in little-endian mode. | 985 | - fix ethernet for the AU1x00 processors in little-endian mode. |
978 | - extend memsetup.S for the AU1x00 processors in BE and LE modes | 986 | - extend memsetup.S for the AU1x00 processors in BE and LE modes |
979 | 987 | ||
980 | * Minor code cleanup (coding style) | 988 | * Minor code cleanup (coding style) |
981 | 989 | ||
982 | * Patch by Reinhard Meyer, 30 Dec 2003: | 990 | * Patch by Reinhard Meyer, 30 Dec 2003: |
983 | - cpu/mpc5xxx/fec.c: added CONFIG_PHY_ADDR, added CONFIG_PHY_TYPE, | 991 | - cpu/mpc5xxx/fec.c: added CONFIG_PHY_ADDR, added CONFIG_PHY_TYPE, |
984 | - added CONFIG_PHY_ADDR to include/configs/IceCube.h, | 992 | - added CONFIG_PHY_ADDR to include/configs/IceCube.h, |
985 | - turned debug print of PHY registers into a function (called in two places) | 993 | - turned debug print of PHY registers into a function (called in two places) |
986 | - added support for EMK MPC5200 based modules | 994 | - added support for EMK MPC5200 based modules |
987 | 995 | ||
988 | * Fix MPC8xx PLPRCR_MFD_SHIFT typo | 996 | * Fix MPC8xx PLPRCR_MFD_SHIFT typo |
989 | 997 | ||
990 | * Add support for TQM866M modules | 998 | * Add support for TQM866M modules |
991 | 999 | ||
992 | * Fixes for TQM855M with 4 MB flash (Am29DL163 = _no_ mirror bit flash) | 1000 | * Fixes for TQM855M with 4 MB flash (Am29DL163 = _no_ mirror bit flash) |
993 | 1001 | ||
994 | * Fix a few compiler warnings | 1002 | * Fix a few compiler warnings |
995 | 1003 | ||
996 | * Patch by Reinhard Meyer, 28 Dec 2003: | 1004 | * Patch by Reinhard Meyer, 28 Dec 2003: |
997 | Add initial support for TOP5200 board | 1005 | Add initial support for TOP5200 board |
998 | 1006 | ||
999 | * Make CPU clock on ICA-IP board controllable by a "cpuclk" | 1007 | * Make CPU clock on ICA-IP board controllable by a "cpuclk" |
1000 | environment variable which can set to "100", "133", or "150". The | 1008 | environment variable which can set to "100", "133", or "150". The |
1001 | CPU clock will be configured accordingly upon next reboot. Other | 1009 | CPU clock will be configured accordingly upon next reboot. Other |
1002 | values are ignored. In case of an invalid or undefined "cpuclk" | 1010 | values are ignored. In case of an invalid or undefined "cpuclk" |
1003 | value, the compile-time default CPU clock speed will be used. | 1011 | value, the compile-time default CPU clock speed will be used. |
1004 | 1012 | ||
1005 | * Enable Quad-UART on BMS2003 board (initialize the PCMCIA memory | 1013 | * Enable Quad-UART on BMS2003 board (initialize the PCMCIA memory |
1006 | window that is used to access the UART registers by the Linux driver) | 1014 | window that is used to access the UART registers by the Linux driver) |
1007 | 1015 | ||
1008 | * Patch by Reinhard Meyer, 20 Dec 2003: | 1016 | * Patch by Reinhard Meyer, 20 Dec 2003: |
1009 | Fix clock calculation for the MPC5200 for higher clock frequencies | 1017 | Fix clock calculation for the MPC5200 for higher clock frequencies |
1010 | (above 2**32 / 10 = 429.5 MHz). | 1018 | (above 2**32 / 10 = 429.5 MHz). |
1011 | 1019 | ||
1012 | * Fix CONFIG_PLL_PCI_TO_MEM_MULTIPLIER divider error in SP8240 configuration | 1020 | * Fix CONFIG_PLL_PCI_TO_MEM_MULTIPLIER divider error in SP8240 configuration |
1013 | 1021 | ||
1014 | * Fix IceCube CLKIN configuration (it's 33.000000MHz) | 1022 | * Fix IceCube CLKIN configuration (it's 33.000000MHz) |
1015 | 1023 | ||
1016 | * Add new configuration for IceCube board with DDR memory | 1024 | * Add new configuration for IceCube board with DDR memory |
1017 | 1025 | ||
1018 | * Update TRAB memory configurations | 1026 | * Update TRAB memory configurations |
1019 | 1027 | ||
1020 | * Add JFFS2 support for INCA-IP board | 1028 | * Add JFFS2 support for INCA-IP board |
1021 | 1029 | ||
1022 | * Patch by Bill Hargen, 09 Dec 2003: | 1030 | * Patch by Bill Hargen, 09 Dec 2003: |
1023 | - BUBINGA405EP: changed flash driver to protect top sector containing | 1031 | - BUBINGA405EP: changed flash driver to protect top sector containing |
1024 | first instruction. | 1032 | first instruction. |
1025 | - BUBINGA405EP: configured "eeprom" command to access boot config EEPROM. | 1033 | - BUBINGA405EP: configured "eeprom" command to access boot config EEPROM. |
1026 | - BUBINGA405EP: fixed PLL init (init chip selects before FPGA/NVRAM access). | 1034 | - BUBINGA405EP: fixed PLL init (init chip selects before FPGA/NVRAM access). |
1027 | - 405EP: fixed SPD-based SDRAM init (only use banks 0 and 1). | 1035 | - 405EP: fixed SPD-based SDRAM init (only use banks 0 and 1). |
1028 | - 405EP: added/fixed support for "reginfo" command. | 1036 | - 405EP: added/fixed support for "reginfo" command. |
1029 | - 4xx: removed spurious MII error messages on "mii info" command. | 1037 | - 4xx: removed spurious MII error messages on "mii info" command. |
1030 | 1038 | ||
1031 | * Patch by Bernhard Kuhn, 28 Nov 2003: | 1039 | * Patch by Bernhard Kuhn, 28 Nov 2003: |
1032 | add support for Coldfire CPU | 1040 | add support for Coldfire CPU |
1033 | add support for Motorola M5272C3 and M5282EVB boards | 1041 | add support for Motorola M5272C3 and M5282EVB boards |
1034 | 1042 | ||
1035 | * Patch by Pierre Aubert, 24 Nov 2003: | 1043 | * Patch by Pierre Aubert, 24 Nov 2003: |
1036 | - add a return value for the fpga command | 1044 | - add a return value for the fpga command |
1037 | - add ide_preinit() function called in ide_init if CONFIG_IDE_PREINIT | 1045 | - add ide_preinit() function called in ide_init if CONFIG_IDE_PREINIT |
1038 | is defined. If ide_preinit fails, ide_init is aborted. | 1046 | is defined. If ide_preinit fails, ide_init is aborted. |
1039 | - fix an endianess problem in fat.h | 1047 | - fix an endianess problem in fat.h |
1040 | 1048 | ||
1041 | * Patch by Wolter Kamphuis, 05 Dec 2003: | 1049 | * Patch by Wolter Kamphuis, 05 Dec 2003: |
1042 | Add support for SNMC's QS850/QS823/QS860T boards | 1050 | Add support for SNMC's QS850/QS823/QS860T boards |
1043 | 1051 | ||
1044 | * Patch by Yuli Barcohen, 3 Dec 2003: | 1052 | * Patch by Yuli Barcohen, 3 Dec 2003: |
1045 | "revive" U-Boot support for old Motorola MPC860ADS board | 1053 | "revive" U-Boot support for old Motorola MPC860ADS board |
1046 | 1054 | ||
1047 | * Patch by Cam(ilo?), 03 Dec 2003: | 1055 | * Patch by Cam(ilo?), 03 Dec 2003: |
1048 | make examples build even with broken Montavista objcopy | 1056 | make examples build even with broken Montavista objcopy |
1049 | 1057 | ||
1050 | * Patch by Pavel Bartusek, 27 Nov 2003: | 1058 | * Patch by Pavel Bartusek, 27 Nov 2003: |
1051 | fix conversion problem with "bootretry" evironment variable | 1059 | fix conversion problem with "bootretry" evironment variable |
1052 | 1060 | ||
1053 | * Patch by Andre Schwarz, 24 Nov 2003: | 1061 | * Patch by Andre Schwarz, 24 Nov 2003: |
1054 | add support for mvblue (mvBlueLYNX and mvBlueBOX) boards | 1062 | add support for mvblue (mvBlueLYNX and mvBlueBOX) boards |
1055 | 1063 | ||
1056 | * Patch by Pavel Bartusek, 21 Nov 2003: | 1064 | * Patch by Pavel Bartusek, 21 Nov 2003: |
1057 | set ZMII bridge speed on 440 | 1065 | set ZMII bridge speed on 440 |
1058 | 1066 | ||
1059 | * Patch by Anders Larsen, 17 Nov 2003: | 1067 | * Patch by Anders Larsen, 17 Nov 2003: |
1060 | Fix mismatched #ifdef / #endif in include/asm-arm/arch-pxa/hardware.h | 1068 | Fix mismatched #ifdef / #endif in include/asm-arm/arch-pxa/hardware.h |
1061 | 1069 | ||
1062 | * Patches by David Müller, 14 Nov 2003: | 1070 | * Patches by David Müller, 14 Nov 2003: |
1063 | - board/mpl/common/common_util.c | 1071 | - board/mpl/common/common_util.c |
1064 | * implement support for BZIP2 compressed images | 1072 | * implement support for BZIP2 compressed images |
1065 | * various cleanups (printf -> puts, ...) | 1073 | * various cleanups (printf -> puts, ...) |
1066 | - board/mpl/common/flash.c | 1074 | - board/mpl/common/flash.c |
1067 | * report correct errors to upper layers | 1075 | * report correct errors to upper layers |
1068 | * check the erase fail and VPP low bits in status reg | 1076 | * check the erase fail and VPP low bits in status reg |
1069 | - board/mpl/vcma9/cmd_vcma9.c | 1077 | - board/mpl/vcma9/cmd_vcma9.c |
1070 | - board/mpl/vcma9/flash.c | 1078 | - board/mpl/vcma9/flash.c |
1071 | * various cleanups (printf -> puts, ...) | 1079 | * various cleanups (printf -> puts, ...) |
1072 | - common/cmd_usb.c | 1080 | - common/cmd_usb.c |
1073 | * fix typo in comment | 1081 | * fix typo in comment |
1074 | - cpu/arm920t/usb_ohci.c | 1082 | - cpu/arm920t/usb_ohci.c |
1075 | * support for S3C2410 is missing in #if line | 1083 | * support for S3C2410 is missing in #if line |
1076 | - drivers/cs8900.c | 1084 | - drivers/cs8900.c |
1077 | * reinit some registers in case of error (cable missing, ...) | 1085 | * reinit some registers in case of error (cable missing, ...) |
1078 | - fs/fat/fat.c | 1086 | - fs/fat/fat.c |
1079 | * support for USB/MMC devices is missing in #if line | 1087 | * support for USB/MMC devices is missing in #if line |
1080 | - include/configs/MIP405.h | 1088 | - include/configs/MIP405.h |
1081 | - include/configs/PIP405.h | 1089 | - include/configs/PIP405.h |
1082 | * enable BZIP2 support | 1090 | * enable BZIP2 support |
1083 | * enlarge malloc space to 1MiB because of BZIP2 support | 1091 | * enlarge malloc space to 1MiB because of BZIP2 support |
1084 | - include/configs/VCMA9.h | 1092 | - include/configs/VCMA9.h |
1085 | * enable BZIP2 support | 1093 | * enable BZIP2 support |
1086 | * enlarge malloc space to 1MiB because of BZIP2 support | 1094 | * enlarge malloc space to 1MiB because of BZIP2 support |
1087 | * enable USB support | 1095 | * enable USB support |
1088 | - lib_arm/armlinux.c | 1096 | - lib_arm/armlinux.c |
1089 | * change calling convention of ARM Linux kernel as | 1097 | * change calling convention of ARM Linux kernel as |
1090 | described on http://www.arm.linux.org.uk/developer/booting.php | 1098 | described on http://www.arm.linux.org.uk/developer/booting.php |
1091 | 1099 | ||
1092 | * Patch by Thomas Lange, 14 Nov 2003: | 1100 | * Patch by Thomas Lange, 14 Nov 2003: |
1093 | Split dbau1x00 into dbau1000, dbau1100 and dbau1500 configs to | 1101 | Split dbau1x00 into dbau1000, dbau1100 and dbau1500 configs to |
1094 | support all these AMD boards. | 1102 | support all these AMD boards. |
1095 | 1103 | ||
1096 | * Patch by Thomas Lange, 14 Nov 2003: | 1104 | * Patch by Thomas Lange, 14 Nov 2003: |
1097 | Workaround for mips au1x00 physical memory accesses (the au1x00 | 1105 | Workaround for mips au1x00 physical memory accesses (the au1x00 |
1098 | uses a 36 bit bus internally and cannot access physical memory | 1106 | uses a 36 bit bus internally and cannot access physical memory |
1099 | directly. Use the uncached SDRAM address instead of the physical | 1107 | directly. Use the uncached SDRAM address instead of the physical |
1100 | one.) | 1108 | one.) |
1101 | 1109 | ||
1102 | * Patch by Xue Ligong (Joe), 13 Nov 2003: | 1110 | * Patch by Xue Ligong (Joe), 13 Nov 2003: |
1103 | add Realtek 8019 ethernet driver | 1111 | add Realtek 8019 ethernet driver |
1104 | 1112 | ||
1105 | * Patch by Yuli Barcohen, 13 Nov 2003: | 1113 | * Patch by Yuli Barcohen, 13 Nov 2003: |
1106 | MPC826xADS/PQ2FADS cleanup | 1114 | MPC826xADS/PQ2FADS cleanup |
1107 | 1115 | ||
1108 | * Patch by Anders Larsen, 12 Nov 2003: | 1116 | * Patch by Anders Larsen, 12 Nov 2003: |
1109 | Update README to mark the PORTIO commands non-standard | 1117 | Update README to mark the PORTIO commands non-standard |
1110 | 1118 | ||
1111 | * Patch by Nicolas Lacressonnière, 12 Nov 2003: | 1119 | * Patch by Nicolas Lacressonnière, 12 Nov 2003: |
1112 | update for for Atmel AT91RM9200DK development kit: | 1120 | update for for Atmel AT91RM9200DK development kit: |
1113 | - support for environment variables in DataFlash | 1121 | - support for environment variables in DataFlash |
1114 | - Atmel DataFlash AT45DB1282 support | 1122 | - Atmel DataFlash AT45DB1282 support |
1115 | 1123 | ||
1116 | * Patch by Jeff Carr, 11 Nov 2003: | 1124 | * Patch by Jeff Carr, 11 Nov 2003: |
1117 | add support for new version of 8270 processors | 1125 | add support for new version of 8270 processors |
1118 | 1126 | ||
1119 | * Patches by George G. Davis, 05 Nov 2003: | 1127 | * Patches by George G. Davis, 05 Nov 2003: |
1120 | - only pass the ARM linux initrd tag to the kernel when an initrd | 1128 | - only pass the ARM linux initrd tag to the kernel when an initrd |
1121 | is actually present | 1129 | is actually present |
1122 | - update omap1510inn configuration file | 1130 | - update omap1510inn configuration file |
1123 | 1131 | ||
1124 | * Patches by Stephan Linz, 3 Nov 2003: | 1132 | * Patches by Stephan Linz, 3 Nov 2003: |
1125 | - more endianess fixes for LAN91C111 driver | 1133 | - more endianess fixes for LAN91C111 driver |
1126 | - CFG_HZ configuration patch for NIOS Cyclone board | 1134 | - CFG_HZ configuration patch for NIOS Cyclone board |
1127 | 1135 | ||
1128 | * Patch by Stephan Linz, 28 Oct 2003: | 1136 | * Patch by Stephan Linz, 28 Oct 2003: |
1129 | fix PHY_INT_REG vs. PHY_MASK_REG bug in drivers/smc91111.c | 1137 | fix PHY_INT_REG vs. PHY_MASK_REG bug in drivers/smc91111.c |
1130 | 1138 | ||
1131 | * Patch by Steven Scholz, 20 Oct 2003: | 1139 | * Patch by Steven Scholz, 20 Oct 2003: |
1132 | - make "mii info <addr>" show infor for PHY at "addr" only | 1140 | - make "mii info <addr>" show infor for PHY at "addr" only |
1133 | - Endian fix for miiphy_info() | 1141 | - Endian fix for miiphy_info() |
1134 | 1142 | ||
1135 | * Patch by Gleb Natapov, 19 Sep 2003: | 1143 | * Patch by Gleb Natapov, 19 Sep 2003: |
1136 | Move most of the timer interrupt related PPC code to ppc_lib/interrupts.c | 1144 | Move most of the timer interrupt related PPC code to ppc_lib/interrupts.c |
1137 | 1145 | ||
1138 | * Patch by Anders Larsen, 17 Sep 2003: | 1146 | * Patch by Anders Larsen, 17 Sep 2003: |
1139 | Bring ARM memory layout in sync with the documentation: | 1147 | Bring ARM memory layout in sync with the documentation: |
1140 | stack and malloc-heap are now located _below_ the U-Boot code | 1148 | stack and malloc-heap are now located _below_ the U-Boot code |
1141 | 1149 | ||
1142 | * Accelerate booting on TRAB board: read and check autoupdate image | 1150 | * Accelerate booting on TRAB board: read and check autoupdate image |
1143 | headers first instead of always reading the whole images. | 1151 | headers first instead of always reading the whole images. |
1144 | 1152 | ||
1145 | * Fix type in MPC5XXX code (pointed out by Victor Wren) | 1153 | * Fix type in MPC5XXX code (pointed out by Victor Wren) |
1146 | 1154 | ||
1147 | * Enabled password check on RMU board | 1155 | * Enabled password check on RMU board |
1148 | 1156 | ||
1149 | * Fix configuration problem with IceCube in LOWBOOT configuration: | 1157 | * Fix configuration problem with IceCube in LOWBOOT configuration: |
1150 | envrionment got embedded, corrupting the image layout. | 1158 | envrionment got embedded, corrupting the image layout. |
1151 | 1159 | ||
1152 | * Fix NEC display names (it's 6440 [for 640x480], not 6640). | 1160 | * Fix NEC display names (it's 6440 [for 640x480], not 6640). |
1153 | 1161 | ||
1154 | * Added BMS2003 board | 1162 | * Added BMS2003 board |
1155 | add support for NEC NL6448BC33-54. 10.4", 640x480 TFT display | 1163 | add support for NEC NL6448BC33-54. 10.4", 640x480 TFT display |
1156 | 1164 | ||
1157 | * Fix flash driver for TRAB board (must use Unlock Bypass Reset | 1165 | * Fix flash driver for TRAB board (must use Unlock Bypass Reset |
1158 | command to exit Unlock Bypass Mode); adjust timings for flash, SRAM | 1166 | command to exit Unlock Bypass Mode); adjust timings for flash, SRAM |
1159 | and CPLD | 1167 | and CPLD |
1160 | 1168 | ||
1161 | * Use "-fPIC" instead of "-mrelocatable" to prevent problems with | 1169 | * Use "-fPIC" instead of "-mrelocatable" to prevent problems with |
1162 | recent tools | 1170 | recent tools |
1163 | 1171 | ||
1164 | * Add checksum verification to 'imls' command | 1172 | * Add checksum verification to 'imls' command |
1165 | 1173 | ||
1166 | * Add bd_info fields needed for 4xx Linux I2C driver | 1174 | * Add bd_info fields needed for 4xx Linux I2C driver |
1167 | 1175 | ||
1168 | * Patch by Martin Krause, 4 Nov. 2003: | 1176 | * Patch by Martin Krause, 4 Nov. 2003: |
1169 | Fix error in cmd_vfd.c (TRAB board: "vfd /1" shows now only one Bitmap) | 1177 | Fix error in cmd_vfd.c (TRAB board: "vfd /1" shows now only one Bitmap) |
1170 | 1178 | ||
1171 | * Print used network interface when CONFIG_NET_MULTI is set | 1179 | * Print used network interface when CONFIG_NET_MULTI is set |
1172 | 1180 | ||
1173 | * Patch by Bernhard Kuhn, 28 Oct 2003: | 1181 | * Patch by Bernhard Kuhn, 28 Oct 2003: |
1174 | Add low boot support for MPC5200 | 1182 | Add low boot support for MPC5200 |
1175 | 1183 | ||
1176 | * Fix problem with dual PCMCIA support (NSCU) | 1184 | * Fix problem with dual PCMCIA support (NSCU) |
1177 | 1185 | ||
1178 | * Fix MPC5200 I2C initialization function | 1186 | * Fix MPC5200 I2C initialization function |
1179 | 1187 | ||
1180 | ====================================================================== | 1188 | ====================================================================== |
1181 | Changes for U-Boot 1.0.0: | 1189 | Changes for U-Boot 1.0.0: |
1182 | ====================================================================== | 1190 | ====================================================================== |
1183 | 1191 | ||
1184 | * Fix parameter passing to standalone images with bootm command | 1192 | * Fix parameter passing to standalone images with bootm command |
1185 | 1193 | ||
1186 | * Patch by Kyle Harris, 30 Oct 2003: | 1194 | * Patch by Kyle Harris, 30 Oct 2003: |
1187 | Fix build errors for ixdp425 board | 1195 | Fix build errors for ixdp425 board |
1188 | 1196 | ||
1189 | * Patch by David M. Horn, 29 Oct 2003: | 1197 | * Patch by David M. Horn, 29 Oct 2003: |
1190 | Fixes to build under CYGWIN | 1198 | Fixes to build under CYGWIN |
1191 | 1199 | ||
1192 | * Get IceCube MGT5100 working (again) | 1200 | * Get IceCube MGT5100 working (again) |
1193 | 1201 | ||
1194 | * Fix problems in memory test on some boards (which was not | 1202 | * Fix problems in memory test on some boards (which was not |
1195 | non-destructive as intended) | 1203 | non-destructive as intended) |
1196 | 1204 | ||
1197 | * Patch by Gary Jennejohn, 28 Oct 2003: | 1205 | * Patch by Gary Jennejohn, 28 Oct 2003: |
1198 | Change fs/fat/fat.c to put I/O buffers in BSS instead on the stack | 1206 | Change fs/fat/fat.c to put I/O buffers in BSS instead on the stack |
1199 | to prevent stack overflow on ARM systems | 1207 | to prevent stack overflow on ARM systems |
1200 | 1208 | ||
1201 | * Patch by Stephan Linz, 28 Oct 2003: | 1209 | * Patch by Stephan Linz, 28 Oct 2003: |
1202 | fix init sequence error for NIOS port | 1210 | fix init sequence error for NIOS port |
1203 | 1211 | ||
1204 | * Allow lowercase spelling for IceCube_5200; support MPC5200LITE name | 1212 | * Allow lowercase spelling for IceCube_5200; support MPC5200LITE name |
1205 | 1213 | ||
1206 | * Add CONFIG_VERSION_VARIABLE to TRAB configuration | 1214 | * Add CONFIG_VERSION_VARIABLE to TRAB configuration |
1207 | 1215 | ||
1208 | * Patch by Xiao Xianghua, 23 Oct 2003: | 1216 | * Patch by Xiao Xianghua, 23 Oct 2003: |
1209 | small patch for mpc85xx | 1217 | small patch for mpc85xx |
1210 | 1218 | ||
1211 | * Fix small problem in MPC5200 I2C driver | 1219 | * Fix small problem in MPC5200 I2C driver |
1212 | 1220 | ||
1213 | * Fix FCC3 support on ATC board | 1221 | * Fix FCC3 support on ATC board |
1214 | 1222 | ||
1215 | * Correct header printing for multi-image files in do_bootm() | 1223 | * Correct header printing for multi-image files in do_bootm() |
1216 | 1224 | ||
1217 | * Make CONFIG_SILENT_CONSOLE work with CONFIG_AUTOBOOT_KEYED | 1225 | * Make CONFIG_SILENT_CONSOLE work with CONFIG_AUTOBOOT_KEYED |
1218 | 1226 | ||
1219 | * Fix PCI problems on PPChameleon board | 1227 | * Fix PCI problems on PPChameleon board |
1220 | 1228 | ||
1221 | * Patch by Steven Scholz, 18 Oct 2003: | 1229 | * Patch by Steven Scholz, 18 Oct 2003: |
1222 | Fix AT91RM9200 ethernet driver | 1230 | Fix AT91RM9200 ethernet driver |
1223 | 1231 | ||
1224 | * Patch by Nye Liu, 17 Oct 2003: | 1232 | * Patch by Nye Liu, 17 Oct 2003: |
1225 | Fix typo in include/mpc8xx.h | 1233 | Fix typo in include/mpc8xx.h |
1226 | 1234 | ||
1227 | * Patch by Richard Woodruff, 16 Oct 03: | 1235 | * Patch by Richard Woodruff, 16 Oct 03: |
1228 | Fixes for cpu/arm925/interrupt.c | 1236 | Fixes for cpu/arm925/interrupt.c |
1229 | - Initialize timestamp & lastdec vars. | 1237 | - Initialize timestamp & lastdec vars. |
1230 | - fix timestamp overflows. | 1238 | - fix timestamp overflows. |
1231 | - fix lastdec overflow. | 1239 | - fix lastdec overflow. |
1232 | - smarter normalization to allow udelay() below 1ms to work. | 1240 | - smarter normalization to allow udelay() below 1ms to work. |
1233 | 1241 | ||
1234 | * Patch by Scott McNutt, 16 Oct | 1242 | * Patch by Scott McNutt, 16 Oct |
1235 | add networking support for the Altera Nios Development Kit, | 1243 | add networking support for the Altera Nios Development Kit, |
1236 | Cyclone Edition (DK-1C20) | 1244 | Cyclone Edition (DK-1C20) |
1237 | 1245 | ||
1238 | * Patch by Jon Diekema, 14 Oct 2003: | 1246 | * Patch by Jon Diekema, 14 Oct 2003: |
1239 | add hint about doc/README.silent to README file | 1247 | add hint about doc/README.silent to README file |
1240 | 1248 | ||
1241 | * Add CompactFlash support for NSCU | 1249 | * Add CompactFlash support for NSCU |
1242 | 1250 | ||
1243 | * Fix PCI problems on PPChameleonEVB | 1251 | * Fix PCI problems on PPChameleonEVB |
1244 | 1252 | ||
1245 | * TRAB auto-update: Base decision if we have to strip the image | 1253 | * TRAB auto-update: Base decision if we have to strip the image |
1246 | header on image type as encoded in the header | 1254 | header on image type as encoded in the header |
1247 | (include image type patch by Martin Krause, 17 Oct 2003) | 1255 | (include image type patch by Martin Krause, 17 Oct 2003) |
1248 | 1256 | ||
1249 | * Patches by Xianghua Xiao, 15 Oct 2003: | 1257 | * Patches by Xianghua Xiao, 15 Oct 2003: |
1250 | 1258 | ||
1251 | - Added Motorola CPU 8540/8560 support (cpu/85xx) | 1259 | - Added Motorola CPU 8540/8560 support (cpu/85xx) |
1252 | - Added Motorola MPC8540ADS board support (board/mpc8540ads) | 1260 | - Added Motorola MPC8540ADS board support (board/mpc8540ads) |
1253 | - Added Motorola MPC8560ADS board support (board/mpc8560ads) | 1261 | - Added Motorola MPC8560ADS board support (board/mpc8560ads) |
1254 | 1262 | ||
1255 | * Fix flash timings on TRAB board | 1263 | * Fix flash timings on TRAB board |
1256 | 1264 | ||
1257 | * Make sure HUSH is initialized for running auto-update scripts | 1265 | * Make sure HUSH is initialized for running auto-update scripts |
1258 | 1266 | ||
1259 | * Make 5200 reset command _really_ reset the board, without running | 1267 | * Make 5200 reset command _really_ reset the board, without running |
1260 | any other code after it | 1268 | any other code after it |
1261 | 1269 | ||
1262 | * Fix errors with flash erase when range spans across banks | 1270 | * Fix errors with flash erase when range spans across banks |
1263 | that are mapped in reverse order | 1271 | that are mapped in reverse order |
1264 | 1272 | ||
1265 | * Fix flash mapping and display on P3G4 board | 1273 | * Fix flash mapping and display on P3G4 board |
1266 | 1274 | ||
1267 | * Patch by Kyle Harris, 15 Jul 2003: | 1275 | * Patch by Kyle Harris, 15 Jul 2003: |
1268 | - add support for Intel IXP425 CPU | 1276 | - add support for Intel IXP425 CPU |
1269 | - add support for IXDP425 eval board | 1277 | - add support for IXDP425 eval board |
1270 | 1278 | ||
1271 | * Added config option CONFIG_SILENT_CONSOLE. See doc/README.silent | 1279 | * Added config option CONFIG_SILENT_CONSOLE. See doc/README.silent |
1272 | for more information | 1280 | for more information |
1273 | 1281 | ||
1274 | * Patch by Steven Scholz, 10 Oct 2003 | 1282 | * Patch by Steven Scholz, 10 Oct 2003 |
1275 | - Add support for Altera FPGA ACEX1K | 1283 | - Add support for Altera FPGA ACEX1K |
1276 | 1284 | ||
1277 | * Patches by Thomas Lange, 09 Oct 2003: | 1285 | * Patches by Thomas Lange, 09 Oct 2003: |
1278 | - fix cmd_ide.c for non ppc boards (read/write functions did not | 1286 | - fix cmd_ide.c for non ppc boards (read/write functions did not |
1279 | add ATA base address) | 1287 | add ATA base address) |
1280 | - fix for shannon board | 1288 | - fix for shannon board |
1281 | - #ifdef CONFIG_IDE_8xx_DIRECT some otherwise unused code | 1289 | - #ifdef CONFIG_IDE_8xx_DIRECT some otherwise unused code |
1282 | - Endian swap ATA identity for all big endian CPUs, not just PPC | 1290 | - Endian swap ATA identity for all big endian CPUs, not just PPC |
1283 | - MIPS only: New option CONFIG_MEMSIZE_IN_BYTES for passing memsize | 1291 | - MIPS only: New option CONFIG_MEMSIZE_IN_BYTES for passing memsize |
1284 | args to linux | 1292 | args to linux |
1285 | - add support for dbau1x00 board (MIPS32) | 1293 | - add support for dbau1x00 board (MIPS32) |
1286 | 1294 | ||
1287 | * Patch by Sangmoon Kim, 07 Oct 2003: | 1295 | * Patch by Sangmoon Kim, 07 Oct 2003: |
1288 | add support for debris board | 1296 | add support for debris board |
1289 | 1297 | ||
1290 | * Patch by Martin Krause, 09 Oct 2003: | 1298 | * Patch by Martin Krause, 09 Oct 2003: |
1291 | Fixes for TRAB board | 1299 | Fixes for TRAB board |
1292 | - /board/trab/rs485.c: correct baudrate | 1300 | - /board/trab/rs485.c: correct baudrate |
1293 | - /board/trab/cmd_trab.c: bug fix for problem with timer overflow in | 1301 | - /board/trab/cmd_trab.c: bug fix for problem with timer overflow in |
1294 | udelay(); fix some timing problems with adc controller | 1302 | udelay(); fix some timing problems with adc controller |
1295 | - /board/trab/trab_fkt.c: add new commands: gain, eeprom and power; | 1303 | - /board/trab/trab_fkt.c: add new commands: gain, eeprom and power; |
1296 | modify commands: touch and buzzer | 1304 | modify commands: touch and buzzer |
1297 | 1305 | ||
1298 | * Disable CONFIG_SUPPORT_VFAT when used with CONFIG_AUTO_UPDATE | 1306 | * Disable CONFIG_SUPPORT_VFAT when used with CONFIG_AUTO_UPDATE |
1299 | (quick & dirty workaround for rogue pointer problem in get_vfatname()); | 1307 | (quick & dirty workaround for rogue pointer problem in get_vfatname()); |
1300 | Use direct function calls for auto_update instead of hush commands | 1308 | Use direct function calls for auto_update instead of hush commands |
1301 | 1309 | ||
1302 | * Patch by Scott McNutt, 04 Oct 2003: | 1310 | * Patch by Scott McNutt, 04 Oct 2003: |
1303 | - add support for Altera Nios-32 CPU | 1311 | - add support for Altera Nios-32 CPU |
1304 | - add support for Nios Cyclone Development Kit (DK-1C20) | 1312 | - add support for Nios Cyclone Development Kit (DK-1C20) |
1305 | 1313 | ||
1306 | * Patch by Steven Scholz, 29 Sep 2003: | 1314 | * Patch by Steven Scholz, 29 Sep 2003: |
1307 | - A second parameter for bootm overwrites the load address for | 1315 | - A second parameter for bootm overwrites the load address for |
1308 | "Standalone Application" images. | 1316 | "Standalone Application" images. |
1309 | - bootm sets environment variable "filesize" to the resulting | 1317 | - bootm sets environment variable "filesize" to the resulting |
1310 | (uncompressed) data length for "Standalone Application" images | 1318 | (uncompressed) data length for "Standalone Application" images |
1311 | when autostart is set to "no". Now you can do something like | 1319 | when autostart is set to "no". Now you can do something like |
1312 | if bootm $fpgadata $some_free_ram ; then | 1320 | if bootm $fpgadata $some_free_ram ; then |
1313 | fpga load 0 $some_free_ram $filesize | 1321 | fpga load 0 $some_free_ram $filesize |
1314 | fi | 1322 | fi |
1315 | 1323 | ||
1316 | * Patch by Denis Peter, 25 Sept 2003: | 1324 | * Patch by Denis Peter, 25 Sept 2003: |
1317 | add support for the MIP405 Rev. C board | 1325 | add support for the MIP405 Rev. C board |
1318 | 1326 | ||
1319 | * Patch by Yuli Barcohen, 25 Sep 2003: | 1327 | * Patch by Yuli Barcohen, 25 Sep 2003: |
1320 | add support for Zephyr Engineering ZPC.1900 board | 1328 | add support for Zephyr Engineering ZPC.1900 board |
1321 | 1329 | ||
1322 | * Patch by Anders Larsen, 23 Sep 2003: | 1330 | * Patch by Anders Larsen, 23 Sep 2003: |
1323 | add CMD_PORTIO to CFG_CMD_NONSTD (commands in question are only | 1331 | add CMD_PORTIO to CFG_CMD_NONSTD (commands in question are only |
1324 | implemented for the x86 architecture) | 1332 | implemented for the x86 architecture) |
1325 | 1333 | ||
1326 | * Patch by Sangmoon Kim, 23 Sep 2003: | 1334 | * Patch by Sangmoon Kim, 23 Sep 2003: |
1327 | fix pll_pci_to_mem_multiplier table for MPC8245 | 1335 | fix pll_pci_to_mem_multiplier table for MPC8245 |
1328 | 1336 | ||
1329 | * Patch by Anders Larsen, 22 Sep 2003: | 1337 | * Patch by Anders Larsen, 22 Sep 2003: |
1330 | enable timed autoboot on PXA | 1338 | enable timed autoboot on PXA |
1331 | 1339 | ||
1332 | * Patch by David Müller, 22 Sep 2003: | 1340 | * Patch by David Müller, 22 Sep 2003: |
1333 | - add $(CFLAGS) to "-print-libgcc-filename" so compiler driver | 1341 | - add $(CFLAGS) to "-print-libgcc-filename" so compiler driver |
1334 | returns correct libgcc file path | 1342 | returns correct libgcc file path |
1335 | - "latency" reduction of busy-loop waiting to improve "U-Boot" boot | 1343 | - "latency" reduction of busy-loop waiting to improve "U-Boot" boot |
1336 | time on s3c24x0 systems | 1344 | time on s3c24x0 systems |
1337 | 1345 | ||
1338 | * Patch by Jon Diekema, 19 Sep 2003: | 1346 | * Patch by Jon Diekema, 19 Sep 2003: |
1339 | - Add CFG_FAULT_ECHO_LINK_DOWN option to echo the inverted Ethernet | 1347 | - Add CFG_FAULT_ECHO_LINK_DOWN option to echo the inverted Ethernet |
1340 | link state to the fault LED. | 1348 | link state to the fault LED. |
1341 | - In NetLoop, make the Fault LED reflect the link status. The link | 1349 | - In NetLoop, make the Fault LED reflect the link status. The link |
1342 | status gets updated on entry, and on timeouts. | 1350 | status gets updated on entry, and on timeouts. |
1343 | 1351 | ||
1344 | * Patch by Anders Larsen, 18 Sep 2003: | 1352 | * Patch by Anders Larsen, 18 Sep 2003: |
1345 | allow mkimage to build and run on Cygwin-hosted systems | 1353 | allow mkimage to build and run on Cygwin-hosted systems |
1346 | 1354 | ||
1347 | * Patch by Frank Müller, 18 Sep 2003: | 1355 | * Patch by Frank Müller, 18 Sep 2003: |
1348 | use bi_intfreq instead of bi_busfreq to compute fec_mii_speed in | 1356 | use bi_intfreq instead of bi_busfreq to compute fec_mii_speed in |
1349 | cpu/mpc8xx/fec.c | 1357 | cpu/mpc8xx/fec.c |
1350 | 1358 | ||
1351 | * Patch by Pantelis Antoniou, 16 Sep 2003: | 1359 | * Patch by Pantelis Antoniou, 16 Sep 2003: |
1352 | add tool to compute fileds in the PLPRCR register for MPC86x | 1360 | add tool to compute fileds in the PLPRCR register for MPC86x |
1353 | 1361 | ||
1354 | * Use IH_TYPE_FILESYSTEM for TRAB "disk" images. | 1362 | * Use IH_TYPE_FILESYSTEM for TRAB "disk" images. |
1355 | 1363 | ||
1356 | * Fix build problems under FreeBSD | 1364 | * Fix build problems under FreeBSD |
1357 | 1365 | ||
1358 | * Add generic filesystem image type | 1366 | * Add generic filesystem image type |
1359 | 1367 | ||
1360 | * Make fatload set filesize environment variable | 1368 | * Make fatload set filesize environment variable |
1361 | 1369 | ||
1362 | * enable basic / medium / high-end configurations for PPChameleonEVB | 1370 | * enable basic / medium / high-end configurations for PPChameleonEVB |
1363 | board; fix NAND code | 1371 | board; fix NAND code |
1364 | 1372 | ||
1365 | * enable TFTP client code to specify to the server the desired | 1373 | * enable TFTP client code to specify to the server the desired |
1366 | timeout value (see RFC-2349) | 1374 | timeout value (see RFC-2349) |
1367 | 1375 | ||
1368 | * Improve SDRAM setup for TRAB board | 1376 | * Improve SDRAM setup for TRAB board |
1369 | 1377 | ||
1370 | * Suppress all output with splashscreen configured only if "splashimage" | 1378 | * Suppress all output with splashscreen configured only if "splashimage" |
1371 | is set | 1379 | is set |
1372 | 1380 | ||
1373 | * Fix problems with I2C support for mpc5200 | 1381 | * Fix problems with I2C support for mpc5200 |
1374 | 1382 | ||
1375 | * Adapt TRAB configuration and auto_update to new memory layout | 1383 | * Adapt TRAB configuration and auto_update to new memory layout |
1376 | 1384 | ||
1377 | * Add configuration for wtk board | 1385 | * Add configuration for wtk board |
1378 | 1386 | ||
1379 | * Add support for the Sharp LQ065T9DR51U LCD display | 1387 | * Add support for the Sharp LQ065T9DR51U LCD display |
1380 | 1388 | ||
1381 | * Patch by Rune Torgersen, 17 Sep 2003: | 1389 | * Patch by Rune Torgersen, 17 Sep 2003: |
1382 | - Fixes for MPC8266 default config | 1390 | - Fixes for MPC8266 default config |
1383 | - Allow eth_loopback_test() on 8260 to use a subset of the FCC's | 1391 | - Allow eth_loopback_test() on 8260 to use a subset of the FCC's |
1384 | 1392 | ||
1385 | * Patches by Jon Diekema, 17 Sep 2003: | 1393 | * Patches by Jon Diekema, 17 Sep 2003: |
1386 | - update README (SHOW_BOOT_PROGRESS values for cmd_nand.c and | 1394 | - update README (SHOW_BOOT_PROGRESS values for cmd_nand.c and |
1387 | env_common.c) | 1395 | env_common.c) |
1388 | - sbc8260 tweaks | 1396 | - sbc8260 tweaks |
1389 | - adjust "help" output | 1397 | - adjust "help" output |
1390 | 1398 | ||
1391 | * Patches by Anders Larsen, 17 Sep 2003: | 1399 | * Patches by Anders Larsen, 17 Sep 2003: |
1392 | - fix spelling errors | 1400 | - fix spelling errors |
1393 | - set GD_FLG_DEVINIT flag only after device function pointers | 1401 | - set GD_FLG_DEVINIT flag only after device function pointers |
1394 | are valid | 1402 | are valid |
1395 | - Allow CFG_ALT_MEMTEST on systems where address zero isn't | 1403 | - Allow CFG_ALT_MEMTEST on systems where address zero isn't |
1396 | writeable | 1404 | writeable |
1397 | - enable 3.rd UART (ST-UART) on PXA(XScale) CPUs | 1405 | - enable 3.rd UART (ST-UART) on PXA(XScale) CPUs |
1398 | - trigger watchdog while waiting in serial driver | 1406 | - trigger watchdog while waiting in serial driver |
1399 | 1407 | ||
1400 | * Add auto-update code for TRAB board using USB memory sticks, | 1408 | * Add auto-update code for TRAB board using USB memory sticks, |
1401 | support new configuration with more memory | 1409 | support new configuration with more memory |
1402 | 1410 | ||
1403 | * disable MPC5200 bus pipelining as workaround for bus contention | 1411 | * disable MPC5200 bus pipelining as workaround for bus contention |
1404 | 1412 | ||
1405 | * Modify XLB arbiter priorities on MPC5200 so all devices use same | 1413 | * Modify XLB arbiter priorities on MPC5200 so all devices use same |
1406 | priority; configure critical interrupts to be handled like external | 1414 | priority; configure critical interrupts to be handled like external |
1407 | interrupts | 1415 | interrupts |
1408 | 1416 | ||
1409 | * Make IPB clock on MGT5100/MPC5200 configurable in board config file; | 1417 | * Make IPB clock on MGT5100/MPC5200 configurable in board config file; |
1410 | go back to 66 MHz for stability | 1418 | go back to 66 MHz for stability |
1411 | 1419 | ||
1412 | * Patches by Jon Diekema, 15 Sep 2003: | 1420 | * Patches by Jon Diekema, 15 Sep 2003: |
1413 | - add description for missing CFG_CMD_* entries in the README file | 1421 | - add description for missing CFG_CMD_* entries in the README file |
1414 | - sacsng tweaks | 1422 | - sacsng tweaks |
1415 | 1423 | ||
1416 | * Patch by Gleb Natapov, 14 Sep 2003: | 1424 | * Patch by Gleb Natapov, 14 Sep 2003: |
1417 | enable watchdog support for all MPC824x boards that have a watchdog | 1425 | enable watchdog support for all MPC824x boards that have a watchdog |
1418 | 1426 | ||
1419 | * On MPC5200, restrict FEC to a maximum of 10 Mbps to work around the | 1427 | * On MPC5200, restrict FEC to a maximum of 10 Mbps to work around the |
1420 | "Non-octet Aligned Frame" errors we see at 100 Mbps | 1428 | "Non-octet Aligned Frame" errors we see at 100 Mbps |
1421 | 1429 | ||
1422 | * Patch by Sharad Gupta, 14 Sep 2003: | 1430 | * Patch by Sharad Gupta, 14 Sep 2003: |
1423 | fix SPR numbers for upper BAT register ([ID]BAT[4-7][UL]) | 1431 | fix SPR numbers for upper BAT register ([ID]BAT[4-7][UL]) |
1424 | 1432 | ||
1425 | * Patch by llandre, 11 Sep 2003: | 1433 | * Patch by llandre, 11 Sep 2003: |
1426 | update configuration for PPChameleonEVB board | 1434 | update configuration for PPChameleonEVB board |
1427 | 1435 | ||
1428 | * Patch by David Müller, 13 Sep 2003: | 1436 | * Patch by David Müller, 13 Sep 2003: |
1429 | various changes to VCMA9 board specific files | 1437 | various changes to VCMA9 board specific files |
1430 | 1438 | ||
1431 | * Add I2C support for MGT5100 / MPC5200 | 1439 | * Add I2C support for MGT5100 / MPC5200 |
1432 | 1440 | ||
1433 | * Patch by Rune Torgersen, 11 Sep 2003: | 1441 | * Patch by Rune Torgersen, 11 Sep 2003: |
1434 | Changed default memory option on MPC8266ADS to NOT be Page Based | 1442 | Changed default memory option on MPC8266ADS to NOT be Page Based |
1435 | Interleave, since this doesn't work very well with the standard | 1443 | Interleave, since this doesn't work very well with the standard |
1436 | 16MB DIMM | 1444 | 16MB DIMM |
1437 | 1445 | ||
1438 | * Patch by George G. Davis, 12 Sep 2003: | 1446 | * Patch by George G. Davis, 12 Sep 2003: |
1439 | fix Makefile settings for sk98 driver | 1447 | fix Makefile settings for sk98 driver |
1440 | 1448 | ||
1441 | * Patch by Stefan Roese, 12 Sep 2003: | 1449 | * Patch by Stefan Roese, 12 Sep 2003: |
1442 | - new boards added: DP405, HUB405, PLU405, VOH405 | 1450 | - new boards added: DP405, HUB405, PLU405, VOH405 |
1443 | - some esd boards updated | 1451 | - some esd boards updated |
1444 | - cpu/ppc4xx/sdram.c: disable memory controller before setting | 1452 | - cpu/ppc4xx/sdram.c: disable memory controller before setting |
1445 | first values | 1453 | first values |
1446 | - cpu/ppc4xx/405_pci.c: set vendor id on PPC405EP systems | 1454 | - cpu/ppc4xx/405_pci.c: set vendor id on PPC405EP systems |
1447 | 1455 | ||
1448 | * Patch by Martin Krause, 11 Sep 2003: | 1456 | * Patch by Martin Krause, 11 Sep 2003: |
1449 | add burn-in tests for TRAB board | 1457 | add burn-in tests for TRAB board |
1450 | 1458 | ||
1451 | * Enable instruction cache on MPC5200 board | 1459 | * Enable instruction cache on MPC5200 board |
1452 | 1460 | ||
1453 | * Patch by Denis Peter, 11 Sep 2003: | 1461 | * Patch by Denis Peter, 11 Sep 2003: |
1454 | - fix USB data pointer assignment for bulk only transfer. | 1462 | - fix USB data pointer assignment for bulk only transfer. |
1455 | - prevent to display erased directories in FAT filesystem. | 1463 | - prevent to display erased directories in FAT filesystem. |
1456 | 1464 | ||
1457 | * Change output format for NAND flash - make it look like for other | 1465 | * Change output format for NAND flash - make it look like for other |
1458 | memory, too | 1466 | memory, too |
1459 | 1467 | ||
1460 | ====================================================================== | 1468 | ====================================================================== |
1461 | Changes for U-Boot 0.4.8: | 1469 | Changes for U-Boot 0.4.8: |
1462 | ====================================================================== | 1470 | ====================================================================== |
1463 | 1471 | ||
1464 | * Add I2C and RTC support for RMU board | 1472 | * Add I2C and RTC support for RMU board |
1465 | 1473 | ||
1466 | * Patches by Denis Peter, 9 Sep 2003: | 1474 | * Patches by Denis Peter, 9 Sep 2003: |
1467 | add FAT support for IDE, SCSI and USB | 1475 | add FAT support for IDE, SCSI and USB |
1468 | 1476 | ||
1469 | * Patches by Gleb Natapov, 2 Sep 2003: | 1477 | * Patches by Gleb Natapov, 2 Sep 2003: |
1470 | - cleanup of POST code for unsupported architectures | 1478 | - cleanup of POST code for unsupported architectures |
1471 | - MPC824x locks way0 of data cache for use as initial RAM; | 1479 | - MPC824x locks way0 of data cache for use as initial RAM; |
1472 | this patch unlocks it after relocation to RAM and invalidates | 1480 | this patch unlocks it after relocation to RAM and invalidates |
1473 | the locked entries. | 1481 | the locked entries. |
1474 | 1482 | ||
1475 | * Patch by Gleb Natapov, 30 Aug 2003: | 1483 | * Patch by Gleb Natapov, 30 Aug 2003: |
1476 | new I2C driver for mpc107 bridge. Now works from flash. | 1484 | new I2C driver for mpc107 bridge. Now works from flash. |
1477 | 1485 | ||
1478 | * Patch by Dave Ellis, 11 Aug 2003: | 1486 | * Patch by Dave Ellis, 11 Aug 2003: |
1479 | - JFFS2: fix typo in common/cmd_jffs2.c | 1487 | - JFFS2: fix typo in common/cmd_jffs2.c |
1480 | - JFFS2: fix CFG_JFFS2_SORT_FRAGMENTS option | 1488 | - JFFS2: fix CFG_JFFS2_SORT_FRAGMENTS option |
1481 | - JFFS2: remove node version 0 warning | 1489 | - JFFS2: remove node version 0 warning |
1482 | - JFFS2: accept JFFS2 PADDING nodes | 1490 | - JFFS2: accept JFFS2 PADDING nodes |
1483 | - SXNI855T: add AM29LV800 support | 1491 | - SXNI855T: add AM29LV800 support |
1484 | - SXNI855T: move environment from EEPROM to flash | 1492 | - SXNI855T: move environment from EEPROM to flash |
1485 | - SXNI855T: boot from JFFS2 in NOR or NAND flash | 1493 | - SXNI855T: boot from JFFS2 in NOR or NAND flash |
1486 | 1494 | ||
1487 | * Patch by Bill Hargen, 11 Aug 2003: | 1495 | * Patch by Bill Hargen, 11 Aug 2003: |
1488 | fixes for I2C on MPC8240 | 1496 | fixes for I2C on MPC8240 |
1489 | - fix i2c_write routine | 1497 | - fix i2c_write routine |
1490 | - fix iprobe command | 1498 | - fix iprobe command |
1491 | - eliminates use of global variables, plus dead code, cleanup. | 1499 | - eliminates use of global variables, plus dead code, cleanup. |
1492 | 1500 | ||
1493 | * Add support for USB Mass Storage Devices (BBB) | 1501 | * Add support for USB Mass Storage Devices (BBB) |
1494 | (tested with USB memory sticks only) | 1502 | (tested with USB memory sticks only) |
1495 | 1503 | ||
1496 | * Avoid flicker on TRAB's VFD | 1504 | * Avoid flicker on TRAB's VFD |
1497 | 1505 | ||
1498 | * Add support for SK98xx driver | 1506 | * Add support for SK98xx driver |
1499 | 1507 | ||
1500 | * Add PCI support for SL8245 board | 1508 | * Add PCI support for SL8245 board |
1501 | 1509 | ||
1502 | * Support IceCube board configurations with 1 x AMD AM29LV065 (8 MB) | 1510 | * Support IceCube board configurations with 1 x AMD AM29LV065 (8 MB) |
1503 | or 1 x AM29LV652 (two LV065 in one chip = 16 MB); | 1511 | or 1 x AM29LV652 (two LV065 in one chip = 16 MB); |
1504 | Run IPB at 133 Mhz; adjust the MII clock frequency accordingly | 1512 | Run IPB at 133 Mhz; adjust the MII clock frequency accordingly |
1505 | 1513 | ||
1506 | * Set BRG_CLK on PM825/826 to 64MHz (VCO_OUT / 4, instead of 16 MHz) | 1514 | * Set BRG_CLK on PM825/826 to 64MHz (VCO_OUT / 4, instead of 16 MHz) |
1507 | to allow for more accurate baudrate settings | 1515 | to allow for more accurate baudrate settings |
1508 | (error now 0.7% at 115 kbps, instead of 3.5% before) | 1516 | (error now 0.7% at 115 kbps, instead of 3.5% before) |
1509 | 1517 | ||
1510 | * Patch by Andreas Mohr, 4 Sep 2003: | 1518 | * Patch by Andreas Mohr, 4 Sep 2003: |
1511 | Fix a lot of spelling errors | 1519 | Fix a lot of spelling errors |
1512 | 1520 | ||
1513 | * Add support for PPChameleon Eval Board | 1521 | * Add support for PPChameleon Eval Board |
1514 | 1522 | ||
1515 | * Add support for P3G4 board | 1523 | * Add support for P3G4 board |
1516 | 1524 | ||
1517 | * Fix problem with MGT5100 FEC driver: add "early" MAC address | 1525 | * Fix problem with MGT5100 FEC driver: add "early" MAC address |
1518 | initialization | 1526 | initialization |
1519 | 1527 | ||
1520 | * Patch by Yuli Barcohen, 7 Aug 2003: | 1528 | * Patch by Yuli Barcohen, 7 Aug 2003: |
1521 | check BCSR to detect if the board is configured in PCI mode | 1529 | check BCSR to detect if the board is configured in PCI mode |
1522 | 1530 | ||
1523 | ====================================================================== | 1531 | ====================================================================== |
1524 | Changes for U-Boot 0.4.7: | 1532 | Changes for U-Boot 0.4.7: |
1525 | ====================================================================== | 1533 | ====================================================================== |
1526 | 1534 | ||
1527 | * Patch by Raghu Krishnaprasad, 7 Aug 2003: | 1535 | * Patch by Raghu Krishnaprasad, 7 Aug 2003: |
1528 | add support for Adder II MPC852T module | 1536 | add support for Adder II MPC852T module |
1529 | 1537 | ||
1530 | * Patch by George G. Davis, 19 Aug 2003: | 1538 | * Patch by George G. Davis, 19 Aug 2003: |
1531 | fix TI Innovator/OMAP1510 pin configs | 1539 | fix TI Innovator/OMAP1510 pin configs |
1532 | 1540 | ||
1533 | * Patches by Kshitij, 18 Aug 2003 | 1541 | * Patches by Kshitij, 18 Aug 2003 |
1534 | - add support for arm926ejs cpu core | 1542 | - add support for arm926ejs cpu core |
1535 | - add support for TI OMAP 1610 Innovator Board | 1543 | - add support for TI OMAP 1610 Innovator Board |
1536 | 1544 | ||
1537 | * Patch by Yuli Barcohen, 14 Aug 2003: | 1545 | * Patch by Yuli Barcohen, 14 Aug 2003: |
1538 | add support for bzip2 uncompression | 1546 | add support for bzip2 uncompression |
1539 | 1547 | ||
1540 | * Add GCC library to examples/Makefile so GCC utility functions will | 1548 | * Add GCC library to examples/Makefile so GCC utility functions will |
1541 | be resolved, too | 1549 | be resolved, too |
1542 | 1550 | ||
1543 | * Add I2C and RTC support for RMU board using software I2C driver | 1551 | * Add I2C and RTC support for RMU board using software I2C driver |
1544 | (because of better response to iprobe command); fix problem with | 1552 | (because of better response to iprobe command); fix problem with |
1545 | "reset" command | 1553 | "reset" command |
1546 | 1554 | ||
1547 | * Patch by Matthias Fuchs, 28 Aug 2003: | 1555 | * Patch by Matthias Fuchs, 28 Aug 2003: |
1548 | Added CONFIG_BOOTP_DNS2 and CONFIG_BOOTP_SEND_HOSTNAME to | 1556 | Added CONFIG_BOOTP_DNS2 and CONFIG_BOOTP_SEND_HOSTNAME to |
1549 | CONFIG_BOOTP_MAKS (see README). | 1557 | CONFIG_BOOTP_MAKS (see README). |
1550 | 1558 | ||
1551 | * Fix ICU862 environment problem | 1559 | * Fix ICU862 environment problem |
1552 | 1560 | ||
1553 | * Fix RAM size detection for RMU board | 1561 | * Fix RAM size detection for RMU board |
1554 | 1562 | ||
1555 | * Implement "reset" for MGT5100/MPC5200 systems | 1563 | * Implement "reset" for MGT5100/MPC5200 systems |
1556 | 1564 | ||
1557 | ====================================================================== | 1565 | ====================================================================== |
1558 | Changes for U-Boot 0.4.6: | 1566 | Changes for U-Boot 0.4.6: |
1559 | ====================================================================== | 1567 | ====================================================================== |
1560 | 1568 | ||
1561 | * Make Ethernet autonegotiation on INCA-IP work for all clock rates; | 1569 | * Make Ethernet autonegotiation on INCA-IP work for all clock rates; |
1562 | allow selection of clock frequency as "make" target | 1570 | allow selection of clock frequency as "make" target |
1563 | 1571 | ||
1564 | * Implement memory autosizing code for IceCube boards | 1572 | * Implement memory autosizing code for IceCube boards |
1565 | 1573 | ||
1566 | * Configure network port on INCA-IP for autonegotiation | 1574 | * Configure network port on INCA-IP for autonegotiation |
1567 | 1575 | ||
1568 | * Fix overflow problem in network timeout code | 1576 | * Fix overflow problem in network timeout code |
1569 | 1577 | ||
1570 | * Patch by Richard Woodruff, 8 Aug 2003: | 1578 | * Patch by Richard Woodruff, 8 Aug 2003: |
1571 | Allow crc32 to be used at address 0x000 (crc32_no_comp, too). | 1579 | Allow crc32 to be used at address 0x000 (crc32_no_comp, too). |
1572 | 1580 | ||
1573 | ====================================================================== | 1581 | ====================================================================== |
1574 | Changes for U-Boot 0.4.5: | 1582 | Changes for U-Boot 0.4.5: |
1575 | ====================================================================== | 1583 | ====================================================================== |
1576 | 1584 | ||
1577 | * Update for TQM board defaults: | 1585 | * Update for TQM board defaults: |
1578 | disable clocks_in_mhz, enable boot count limit | 1586 | disable clocks_in_mhz, enable boot count limit |
1579 | 1587 | ||
1580 | * Removed tools/gdb from "make all" target. Added make target "gdbtools" | 1588 | * Removed tools/gdb from "make all" target. Added make target "gdbtools" |
1581 | in toplevel directory instead. Removed astest.c from tools/gdb because | 1589 | in toplevel directory instead. Removed astest.c from tools/gdb because |
1582 | it is no longer relevant. | 1590 | it is no longer relevant. |
1583 | 1591 | ||
1584 | * Fix PCI support for MPC5200 / IceCube Board | 1592 | * Fix PCI support for MPC5200 / IceCube Board |
1585 | 1593 | ||
1586 | * Map ISP1362 USB OTG controller for NSCU board | 1594 | * Map ISP1362 USB OTG controller for NSCU board |
1587 | 1595 | ||
1588 | * Patch by Brad Parker, 02 Aug 2003: | 1596 | * Patch by Brad Parker, 02 Aug 2003: |
1589 | fix sc520_cdp problems | 1597 | fix sc520_cdp problems |
1590 | 1598 | ||
1591 | * Implement Boot Cycle Detection (Req. 2.3 of OSDL CGL Reqirements) | 1599 | * Implement Boot Cycle Detection (Req. 2.3 of OSDL CGL Reqirements) |
1592 | 1600 | ||
1593 | * Allow erase command to cross flash bank boundaries | 1601 | * Allow erase command to cross flash bank boundaries |
1594 | 1602 | ||
1595 | * Patch by Scott McNutt, 21 Jul 2003: | 1603 | * Patch by Scott McNutt, 21 Jul 2003: |
1596 | Add support for LynuxWorks Kernel Downloadable Images (KDIs). | 1604 | Add support for LynuxWorks Kernel Downloadable Images (KDIs). |
1597 | Both LynxOS and BlueCat linux KDIs are supported. | 1605 | Both LynxOS and BlueCat linux KDIs are supported. |
1598 | 1606 | ||
1599 | * Patch by Richard Woodruff, 25 Jul 2003: | 1607 | * Patch by Richard Woodruff, 25 Jul 2003: |
1600 | use more reliable reset for OMAP/925T | 1608 | use more reliable reset for OMAP/925T |
1601 | 1609 | ||
1602 | * Patch by Nye Liu, 25 Jul 2003: | 1610 | * Patch by Nye Liu, 25 Jul 2003: |
1603 | fix typo in mpc8xx.h | 1611 | fix typo in mpc8xx.h |
1604 | 1612 | ||
1605 | * Patch by Richard Woodruff, 24 Jul 2003: | 1613 | * Patch by Richard Woodruff, 24 Jul 2003: |
1606 | Fixes for cmd_nand.c: | 1614 | Fixes for cmd_nand.c: |
1607 | - Fixed null dereferece which could result in incorrect ECC values. | 1615 | - Fixed null dereferece which could result in incorrect ECC values. |
1608 | - Added support for devices with no Ready/Busy signal hooked up. | 1616 | - Added support for devices with no Ready/Busy signal hooked up. |
1609 | - Added OMAP1510 read/write protect handling. | 1617 | - Added OMAP1510 read/write protect handling. |
1610 | - Fixed nand.h's ECCPOS. A conflict existed with POS5 and badblock | 1618 | - Fixed nand.h's ECCPOS. A conflict existed with POS5 and badblock |
1611 | for non-JFFS2. | 1619 | for non-JFFS2. |
1612 | - Switched default ECC to be JFFS2. | 1620 | - Switched default ECC to be JFFS2. |
1613 | 1621 | ||
1614 | * Allow crc32 to be used at address 0x000 | 1622 | * Allow crc32 to be used at address 0x000 |
1615 | 1623 | ||
1616 | * Provide consistent interface to standalone applications to access | 1624 | * Provide consistent interface to standalone applications to access |
1617 | the 'global_data' structure | 1625 | the 'global_data' structure |
1618 | Provide a doc/README.standalone more useful to users/developers. | 1626 | Provide a doc/README.standalone more useful to users/developers. |
1619 | 1627 | ||
1620 | * Make IceCube MGT5100 FEC driver work | 1628 | * Make IceCube MGT5100 FEC driver work |
1621 | 1629 | ||
1622 | * Implement new mechanism to export U-Boot's functions to standalone | 1630 | * Implement new mechanism to export U-Boot's functions to standalone |
1623 | applications: instead of using (PPC-specific) system calls we now | 1631 | applications: instead of using (PPC-specific) system calls we now |
1624 | use a jump table; please see doc/README.standalone for details | 1632 | use a jump table; please see doc/README.standalone for details |
1625 | 1633 | ||
1626 | * Patch by Dave Westwood, 24 Jul 2003: | 1634 | * Patch by Dave Westwood, 24 Jul 2003: |
1627 | added support for Unity OS (a proprietary OS) | 1635 | added support for Unity OS (a proprietary OS) |
1628 | 1636 | ||
1629 | * Patch by Detlev Zundel, 23 Jul 2003: | 1637 | * Patch by Detlev Zundel, 23 Jul 2003: |
1630 | add "imls" command to print flash table of contents | 1638 | add "imls" command to print flash table of contents |
1631 | 1639 | ||
1632 | * Fix cold boot detection for log buffer reset | 1640 | * Fix cold boot detection for log buffer reset |
1633 | 1641 | ||
1634 | * Return error for invalid length specifiers with "cp.X" etc. | 1642 | * Return error for invalid length specifiers with "cp.X" etc. |
1635 | 1643 | ||
1636 | * Fix startup problem on MIPS | 1644 | * Fix startup problem on MIPS |
1637 | 1645 | ||
1638 | * Allow for CONFIG_SPLASH_SCREEN even when no explicit | 1646 | * Allow for CONFIG_SPLASH_SCREEN even when no explicit |
1639 | bitmap support is configured | 1647 | bitmap support is configured |
1640 | 1648 | ||
1641 | * Patch by Bill Hargen, 18 Jul 2003: | 1649 | * Patch by Bill Hargen, 18 Jul 2003: |
1642 | - fix endinaness problem in cpu/mpc824x/drivers/i2c/i2c1.c | 1650 | - fix endinaness problem in cpu/mpc824x/drivers/i2c/i2c1.c |
1643 | 1651 | ||
1644 | * Patch by Denis Peter, 18 Jul 2003: | 1652 | * Patch by Denis Peter, 18 Jul 2003: |
1645 | - fix memory configuration for MIP405T | 1653 | - fix memory configuration for MIP405T |
1646 | - fix printout of baudrate for "loadb <loadaddr> <baudrate>" | 1654 | - fix printout of baudrate for "loadb <loadaddr> <baudrate>" |
1647 | 1655 | ||
1648 | * Cleanup of TQM82xx configurations; use "official" board types | 1656 | * Cleanup of TQM82xx configurations; use "official" board types |
1649 | to make selection easier. | 1657 | to make selection easier. |
1650 | 1658 | ||
1651 | * Patch by Martin Krause, 17 Jul 2003: | 1659 | * Patch by Martin Krause, 17 Jul 2003: |
1652 | add delay to get I2C working with "imm" command and s3c24x0_i2c.c | 1660 | add delay to get I2C working with "imm" command and s3c24x0_i2c.c |
1653 | 1661 | ||
1654 | * Patch by Richard Woodruff, 17 July 03: | 1662 | * Patch by Richard Woodruff, 17 July 03: |
1655 | - Fixed bug in OMAP1510 baud rate divisor settings. | 1663 | - Fixed bug in OMAP1510 baud rate divisor settings. |
1656 | 1664 | ||
1657 | * Patch by Nye Liu, 16 July 2003: | 1665 | * Patch by Nye Liu, 16 July 2003: |
1658 | MPC860FADS fixes: | 1666 | MPC860FADS fixes: |
1659 | - add MPC86xADS support (uses MPC86xADS.h) | 1667 | - add MPC86xADS support (uses MPC86xADS.h) |
1660 | - add 866P/T core support (also MPC859T/MPC859DSL/MPC852T) | 1668 | - add 866P/T core support (also MPC859T/MPC859DSL/MPC852T) |
1661 | o PLPRCR changes | 1669 | o PLPRCR changes |
1662 | o BRG changes (EXTAL/XTAL restricted to 10MHz) | 1670 | o BRG changes (EXTAL/XTAL restricted to 10MHz) |
1663 | o don't trust gclk() software measurement by default, depend on | 1671 | o don't trust gclk() software measurement by default, depend on |
1664 | CONFIG_8xx_GCLK_FREQ | 1672 | CONFIG_8xx_GCLK_FREQ |
1665 | - add DRAM SIMM not installed detection | 1673 | - add DRAM SIMM not installed detection |
1666 | - use more "correct" SDRAM initialization sequence | 1674 | - use more "correct" SDRAM initialization sequence |
1667 | - allow different SDRAM sizes (8xxADS has 8M) | 1675 | - allow different SDRAM sizes (8xxADS has 8M) |
1668 | - default DER is 0 | 1676 | - default DER is 0 |
1669 | - remove unused MAMR defines from FADS860T.h (all done in fads.c) | 1677 | - remove unused MAMR defines from FADS860T.h (all done in fads.c) |
1670 | - rename MAMR/MBMR defines to be more consistent. Should eventually | 1678 | - rename MAMR/MBMR defines to be more consistent. Should eventually |
1671 | be merged into MxMR to better reflect the PowerQUICC datasheet. | 1679 | be merged into MxMR to better reflect the PowerQUICC datasheet. |
1672 | 1680 | ||
1673 | * Patch by Yuli Barcohen, 16 Jul 2003: | 1681 | * Patch by Yuli Barcohen, 16 Jul 2003: |
1674 | support new Motorola PQ2FADS-ZU evaluation board which replaced | 1682 | support new Motorola PQ2FADS-ZU evaluation board which replaced |
1675 | MPC8260ADS and MPC8266ADS | 1683 | MPC8260ADS and MPC8266ADS |
1676 | 1684 | ||
1677 | ====================================================================== | 1685 | ====================================================================== |
1678 | Changes for U-Boot 0.4.4: | 1686 | Changes for U-Boot 0.4.4: |
1679 | ====================================================================== | 1687 | ====================================================================== |
1680 | 1688 | ||
1681 | * Add support for IceCube board (with MGT5100 and MPC5200 CPUs) | 1689 | * Add support for IceCube board (with MGT5100 and MPC5200 CPUs) |
1682 | 1690 | ||
1683 | * Add support for MGT5100 and MPC5200 processors | 1691 | * Add support for MGT5100 and MPC5200 processors |
1684 | 1692 | ||
1685 | * Patch by Lutz Dennig, 15 Jul 2003: | 1693 | * Patch by Lutz Dennig, 15 Jul 2003: |
1686 | update for R360MPI board | 1694 | update for R360MPI board |
1687 | 1695 | ||
1688 | ====================================================================== | 1696 | ====================================================================== |
1689 | Changes for U-Boot 0.4.3: | 1697 | Changes for U-Boot 0.4.3: |
1690 | ====================================================================== | 1698 | ====================================================================== |
1691 | 1699 | ||
1692 | * Patches by Kshitij, 04 Jul 2003 | 1700 | * Patches by Kshitij, 04 Jul 2003 |
1693 | - added support for arm925t cpu core | 1701 | - added support for arm925t cpu core |
1694 | - added support for TI OMAP 1510 Innovator Board | 1702 | - added support for TI OMAP 1510 Innovator Board |
1695 | 1703 | ||
1696 | * Patches by Martin Krause, 14 Jul 2003: | 1704 | * Patches by Martin Krause, 14 Jul 2003: |
1697 | - add I2C support for s3c2400 systems (trab board) | 1705 | - add I2C support for s3c2400 systems (trab board) |
1698 | - (re-) add "ping" to command table | 1706 | - (re-) add "ping" to command table |
1699 | 1707 | ||
1700 | * Fix handling of "slow" POST routines | 1708 | * Fix handling of "slow" POST routines |
1701 | 1709 | ||
1702 | * Patches by Yuli Barcohen, 13 Jul 2003: | 1710 | * Patches by Yuli Barcohen, 13 Jul 2003: |
1703 | - Correct flash and JFFS2 support for MPC8260ADS | 1711 | - Correct flash and JFFS2 support for MPC8260ADS |
1704 | - fix PVR values and clock generation for PowerQUICC II family | 1712 | - fix PVR values and clock generation for PowerQUICC II family |
1705 | (8270/8275/8280) | 1713 | (8270/8275/8280) |
1706 | 1714 | ||
1707 | * Patch by Bernhard Kuhn, 08 Jul 2003: | 1715 | * Patch by Bernhard Kuhn, 08 Jul 2003: |
1708 | - add support for M68K targets | 1716 | - add support for M68K targets |
1709 | 1717 | ||
1710 | * Patch by Ken Chou, 3 Jul: | 1718 | * Patch by Ken Chou, 3 Jul: |
1711 | - Fix PCI config table for A3000 | 1719 | - Fix PCI config table for A3000 |
1712 | - Fix iobase for natsemi.c | 1720 | - Fix iobase for natsemi.c |
1713 | (PCI_BASE_ADDRESS_0 is the IO base register for DP83815) | 1721 | (PCI_BASE_ADDRESS_0 is the IO base register for DP83815) |
1714 | 1722 | ||
1715 | * Allow to enable "slow" POST routines by key press on power-on | 1723 | * Allow to enable "slow" POST routines by key press on power-on |
1716 | * Fix temperature dependend switching of LCD backlight on LWMON | 1724 | * Fix temperature dependend switching of LCD backlight on LWMON |
1717 | * Tweak output format for LWMON | 1725 | * Tweak output format for LWMON |
1718 | 1726 | ||
1719 | * Patch by Stefan Roese, 11 Jul 2003: | 1727 | * Patch by Stefan Roese, 11 Jul 2003: |
1720 | - Fix bug in CONFIG_VERSION_VARIABLE. | 1728 | - Fix bug in CONFIG_VERSION_VARIABLE. |
1721 | - AR405 config updated. | 1729 | - AR405 config updated. |
1722 | - OCRTC/ORSG: bsp command added. | 1730 | - OCRTC/ORSG: bsp command added. |
1723 | - ASH405 bsp update. | 1731 | - ASH405 bsp update. |
1724 | 1732 | ||
1725 | ====================================================================== | 1733 | ====================================================================== |
1726 | Changes for U-Boot 0.4.2: | 1734 | Changes for U-Boot 0.4.2: |
1727 | ====================================================================== | 1735 | ====================================================================== |
1728 | 1736 | ||
1729 | * Add support for NSCU board | 1737 | * Add support for NSCU board |
1730 | 1738 | ||
1731 | * Add support for TQM823M, TQM850M, TQM855M and TQM860M modules | 1739 | * Add support for TQM823M, TQM850M, TQM855M and TQM860M modules |
1732 | 1740 | ||
1733 | * Add support for Am29LV160ML, Am29LV320ML, and Am29LV640ML | 1741 | * Add support for Am29LV160ML, Am29LV320ML, and Am29LV640ML |
1734 | mirror bit flash on TQM8xxM modules | 1742 | mirror bit flash on TQM8xxM modules |
1735 | 1743 | ||
1736 | * Patch by Kenneth Johansson, 30 Jun 2003: | 1744 | * Patch by Kenneth Johansson, 30 Jun 2003: |
1737 | get rid of MK_CMD_ENTRY macro; update doc/README.command | 1745 | get rid of MK_CMD_ENTRY macro; update doc/README.command |
1738 | 1746 | ||
1739 | * Patch by Seb James, 30 Jun 2003: | 1747 | * Patch by Seb James, 30 Jun 2003: |
1740 | Improve documentation of I2C configuration in README | 1748 | Improve documentation of I2C configuration in README |
1741 | 1749 | ||
1742 | * Fix problems with previous log buffer "fixes" | 1750 | * Fix problems with previous log buffer "fixes" |
1743 | 1751 | ||
1744 | * Fix minor help text issues | 1752 | * Fix minor help text issues |
1745 | 1753 | ||
1746 | * "log append" did not append a newline | 1754 | * "log append" did not append a newline |
1747 | 1755 | ||
1748 | ====================================================================== | 1756 | ====================================================================== |
1749 | Changes for U-Boot 0.4.1: | 1757 | Changes for U-Boot 0.4.1: |
1750 | ====================================================================== | 1758 | ====================================================================== |
1751 | 1759 | ||
1752 | * Fix some missing commands, cleanup header files | 1760 | * Fix some missing commands, cleanup header files |
1753 | (autoscript, bmp, bsp, fat, mmc, nand, portio, ...) | 1761 | (autoscript, bmp, bsp, fat, mmc, nand, portio, ...) |
1754 | 1762 | ||
1755 | * Rewrite command lookup and help command (fix problems with bubble | 1763 | * Rewrite command lookup and help command (fix problems with bubble |
1756 | sort when sorting command name list). Minor cleanup here and there. | 1764 | sort when sorting command name list). Minor cleanup here and there. |
1757 | 1765 | ||
1758 | * Merge from "stable branch", tag LABEL_2003_06_28_1800-stable: | 1766 | * Merge from "stable branch", tag LABEL_2003_06_28_1800-stable: |
1759 | - Allow to call sysmon function interactively | 1767 | - Allow to call sysmon function interactively |
1760 | - PIC on LWMON board needs delay after power-on | 1768 | - PIC on LWMON board needs delay after power-on |
1761 | - Add missing RSR definitions for MPC8xx | 1769 | - Add missing RSR definitions for MPC8xx |
1762 | - Improve log buffer handling: guarantee clean reset after power-on | 1770 | - Improve log buffer handling: guarantee clean reset after power-on |
1763 | - Add support for EXBITGEN board (aka "genie") | 1771 | - Add support for EXBITGEN board (aka "genie") |
1764 | - Add support for SL8245 board | 1772 | - Add support for SL8245 board |
1765 | 1773 | ||
1766 | * Code cleanup: | 1774 | * Code cleanup: |
1767 | - remove trailing white space, trailing empty lines, C++ comments, etc. | 1775 | - remove trailing white space, trailing empty lines, C++ comments, etc. |
1768 | - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c) | 1776 | - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c) |
1769 | 1777 | ||
1770 | * Patches by Kenneth Johansson, 25 Jun 2003: | 1778 | * Patches by Kenneth Johansson, 25 Jun 2003: |
1771 | - major rework of command structure | 1779 | - major rework of command structure |
1772 | (work done mostly by Michal Cendrowski and Joakim Kristiansen) | 1780 | (work done mostly by Michal Cendrowski and Joakim Kristiansen) |
1773 | 1781 | ||
1774 | ====================================================================== | 1782 | ====================================================================== |
1775 | Changes for U-Boot 0.4.0: | 1783 | Changes for U-Boot 0.4.0: |
1776 | ====================================================================== | 1784 | ====================================================================== |
1777 | 1785 | ||
1778 | * Patches by Robert Schwebel, 26 Jun 2003: | 1786 | * Patches by Robert Schwebel, 26 Jun 2003: |
1779 | - csb226 configuration updated | 1787 | - csb226 configuration updated |
1780 | - credits for logodl port updated | 1788 | - credits for logodl port updated |
1781 | - innokom configuration updated | 1789 | - innokom configuration updated |
1782 | - logodl tree update, still with coding style inconsistencies | 1790 | - logodl tree update, still with coding style inconsistencies |
1783 | - added OCM for ppc405 warning to README | 1791 | - added OCM for ppc405 warning to README |
1784 | 1792 | ||
1785 | * Patch by Pantelis Antoniou, 25 Jun 2003: | 1793 | * Patch by Pantelis Antoniou, 25 Jun 2003: |
1786 | update NetVia with V2 board support | 1794 | update NetVia with V2 board support |
1787 | 1795 | ||
1788 | * Header file cleanup for ARM | 1796 | * Header file cleanup for ARM |
1789 | 1797 | ||
1790 | * Patch by Murray Jensen, 24 Jun 2003: | 1798 | * Patch by Murray Jensen, 24 Jun 2003: |
1791 | - make sure to use only U-boot provided header files | 1799 | - make sure to use only U-boot provided header files |
1792 | - fix problems with ".rodata.str1.4" section as used by GCC-3.x | 1800 | - fix problems with ".rodata.str1.4" section as used by GCC-3.x |
1793 | 1801 | ||
1794 | * Patch by Stefan Roese, 24 Jun 2003: | 1802 | * Patch by Stefan Roese, 24 Jun 2003: |
1795 | - Update esd ASH405 board files. | 1803 | - Update esd ASH405 board files. |
1796 | - Update esd DASA_SIM config file. | 1804 | - Update esd DASA_SIM config file. |
1797 | - Add ping command to some esd boards. | 1805 | - Add ping command to some esd boards. |
1798 | 1806 | ||
1799 | * Patch by Yuli Barcohen, 23 Jun 2003: | 1807 | * Patch by Yuli Barcohen, 23 Jun 2003: |
1800 | Update for MPC8260ADS board | 1808 | Update for MPC8260ADS board |
1801 | 1809 | ||
1802 | * Patch by Murray Jensen, 23 Jun 2003: | 1810 | * Patch by Murray Jensen, 23 Jun 2003: |
1803 | - cleanup of GCC 3.x compiler warnings | 1811 | - cleanup of GCC 3.x compiler warnings |
1804 | 1812 | ||
1805 | * Patch by Rune Torgersen, 4 Jun 2003: | 1813 | * Patch by Rune Torgersen, 4 Jun 2003: |
1806 | add large memory support for MPC8266ADS board | 1814 | add large memory support for MPC8266ADS board |
1807 | 1815 | ||
1808 | * Patch by Richard Woodruff, 19 June 03: | 1816 | * Patch by Richard Woodruff, 19 June 03: |
1809 | - Enabled standard u-boot device abstraction for ARM | 1817 | - Enabled standard u-boot device abstraction for ARM |
1810 | - Enabled console device for ARM | 1818 | - Enabled console device for ARM |
1811 | - Initilized bi_baudrate for ARM | 1819 | - Initilized bi_baudrate for ARM |
1812 | 1820 | ||
1813 | * Patch by Bill Hargen, 23 Apr 2003: | 1821 | * Patch by Bill Hargen, 23 Apr 2003: |
1814 | fix byte order for 824x I2C addresses (write op) | 1822 | fix byte order for 824x I2C addresses (write op) |
1815 | 1823 | ||
1816 | * Patch by Murray Jensen, 20 Jun 2003: | 1824 | * Patch by Murray Jensen, 20 Jun 2003: |
1817 | - hymod update | 1825 | - hymod update |
1818 | - cleanup (especially for gcc-3.x compilers) | 1826 | - cleanup (especially for gcc-3.x compilers) |
1819 | 1827 | ||
1820 | * Patch by Tom Guilliams, 20 Jun 2003: | 1828 | * Patch by Tom Guilliams, 20 Jun 2003: |
1821 | added CONFIG_750FX support for IBM 750FX processors | 1829 | added CONFIG_750FX support for IBM 750FX processors |
1822 | 1830 | ||
1823 | * Patch by Devin Crumb, 02 Apr 2003: | 1831 | * Patch by Devin Crumb, 02 Apr 2003: |
1824 | Fix clock divider rounding problem in drivers/serial.c | 1832 | Fix clock divider rounding problem in drivers/serial.c |
1825 | 1833 | ||
1826 | * Patch by Richard Woodruff, 19 June 03: | 1834 | * Patch by Richard Woodruff, 19 June 03: |
1827 | - Fixed smc91c111 driver to sync with the u-boot environment | 1835 | - Fixed smc91c111 driver to sync with the u-boot environment |
1828 | (driver/smc91c111.c). | 1836 | (driver/smc91c111.c). |
1829 | - Added eth_init error return check in NetLoop (net/net.c). | 1837 | - Added eth_init error return check in NetLoop (net/net.c). |
1830 | 1838 | ||
1831 | * Patch by Ken Chou, 19 June 2003: | 1839 | * Patch by Ken Chou, 19 June 2003: |
1832 | Added support for A3000 SBC board (Artis Microsystems Inc.) | 1840 | Added support for A3000 SBC board (Artis Microsystems Inc.) |
1833 | 1841 | ||
1834 | * Patches by Murray Jensen, 17 Jun 2003: | 1842 | * Patches by Murray Jensen, 17 Jun 2003: |
1835 | - Hymod board database mods: add "who" field and new xilinx chip types | 1843 | - Hymod board database mods: add "who" field and new xilinx chip types |
1836 | - provide new "init_cmd_timeout()" function so code external to | 1844 | - provide new "init_cmd_timeout()" function so code external to |
1837 | "common/main.c" can use the "reset_cmd_timeout()" function before | 1845 | "common/main.c" can use the "reset_cmd_timeout()" function before |
1838 | entering the main loop | 1846 | entering the main loop |
1839 | - add DTT support for adm1021 (new file dtt/adm1021.c; config | 1847 | - add DTT support for adm1021 (new file dtt/adm1021.c; config |
1840 | slightly different. see include/configs/hymod.h for an example | 1848 | slightly different. see include/configs/hymod.h for an example |
1841 | (requires CONFIG_DTT_ADM1021, CONFIG_DTT_SENSORS, and | 1849 | (requires CONFIG_DTT_ADM1021, CONFIG_DTT_SENSORS, and |
1842 | CFG_DTT_ADM1021 defined) | 1850 | CFG_DTT_ADM1021 defined) |
1843 | - add new "eeprom_probe()" function which has similar args and | 1851 | - add new "eeprom_probe()" function which has similar args and |
1844 | behaves in a similar way to "eeprom_read()" etc. | 1852 | behaves in a similar way to "eeprom_read()" etc. |
1845 | - add 8260 FCC ethernet loopback code (new "eth_loopback_test()" | 1853 | - add 8260 FCC ethernet loopback code (new "eth_loopback_test()" |
1846 | function which is enabled by defining CONFIG_ETHER_LOOPBACK_TEST) | 1854 | function which is enabled by defining CONFIG_ETHER_LOOPBACK_TEST) |
1847 | - gdbtools copyright update | 1855 | - gdbtools copyright update |
1848 | - ensure that set_msr() executes the "sync" and "isync" instructions | 1856 | - ensure that set_msr() executes the "sync" and "isync" instructions |
1849 | after the "mtmsr" instruction in cpu/mpc8260/interrupts.c | 1857 | after the "mtmsr" instruction in cpu/mpc8260/interrupts.c |
1850 | - 8260 I/O ports fix: Open Drain should be set last when configuring | 1858 | - 8260 I/O ports fix: Open Drain should be set last when configuring |
1851 | - add SIU IRQ defines for 8260 | 1859 | - add SIU IRQ defines for 8260 |
1852 | - allow LDSCRIPT override and OBJCFLAGS initialization: change to | 1860 | - allow LDSCRIPT override and OBJCFLAGS initialization: change to |
1853 | config.mk to allow board configurations to override the GNU | 1861 | config.mk to allow board configurations to override the GNU |
1854 | linker script, selected via the LDSCRIPT, make variable, and to | 1862 | linker script, selected via the LDSCRIPT, make variable, and to |
1855 | give an initial value to the OBJCFLAGS make variable | 1863 | give an initial value to the OBJCFLAGS make variable |
1856 | - 8260 i2c enhancement: | 1864 | - 8260 i2c enhancement: |
1857 | o correctly extends the timeout depending on the size of all | 1865 | o correctly extends the timeout depending on the size of all |
1858 | queued messages for both transmit and receive | 1866 | queued messages for both transmit and receive |
1859 | o will not continue with receive if transmit times out | 1867 | o will not continue with receive if transmit times out |
1860 | o ensures that the error callback is done for all queued tx | 1868 | o ensures that the error callback is done for all queued tx |
1861 | and rx messages | 1869 | and rx messages |
1862 | o correctly detects both tx and rx timeouts, only delivers one to | 1870 | o correctly detects both tx and rx timeouts, only delivers one to |
1863 | the callback, and does not overwrite an earlier error | 1871 | the callback, and does not overwrite an earlier error |
1864 | o logic in i2c_probe now correct | 1872 | o logic in i2c_probe now correct |
1865 | - add "vprintf()" function so that "panic()" function can be | 1873 | - add "vprintf()" function so that "panic()" function can be |
1866 | technically correct | 1874 | technically correct |
1867 | - many Hymod board changes | 1875 | - many Hymod board changes |
1868 | 1876 | ||
1869 | * Patches by Robert Schwebel, 14 Jun 2003: | 1877 | * Patches by Robert Schwebel, 14 Jun 2003: |
1870 | - add support for Logotronic DL datalogger board | 1878 | - add support for Logotronic DL datalogger board |
1871 | - cleanup serial line after kermit binary download | 1879 | - cleanup serial line after kermit binary download |
1872 | - add debugX macro (debug level support) | 1880 | - add debugX macro (debug level support) |
1873 | - update mach-types.h to latest arm.linux.org.uk master list. | 1881 | - update mach-types.h to latest arm.linux.org.uk master list. |
1874 | 1882 | ||
1875 | * Patches by David Müller, 12 Jun 2003: | 1883 | * Patches by David Müller, 12 Jun 2003: |
1876 | - rewrite of the S3C24X0 register definitions stuff | 1884 | - rewrite of the S3C24X0 register definitions stuff |
1877 | - "driver" for the built-in S3C24X0 RTC | 1885 | - "driver" for the built-in S3C24X0 RTC |
1878 | 1886 | ||
1879 | * Patches by Yuli Barcohen, 12 Jun 2003: | 1887 | * Patches by Yuli Barcohen, 12 Jun 2003: |
1880 | - Add MII support and Ethernet PHY initialization for MPC8260ADS board | 1888 | - Add MII support and Ethernet PHY initialization for MPC8260ADS board |
1881 | - Fix incorrect SIUMCR initialisation caused by wrong Hard Reset | 1889 | - Fix incorrect SIUMCR initialisation caused by wrong Hard Reset |
1882 | configuration word supplied by FPGA on some MPC8260ADS boards | 1890 | configuration word supplied by FPGA on some MPC8260ADS boards |
1883 | 1891 | ||
1884 | * Patch by Pantelis Antoniou, 10 Jun 2003: | 1892 | * Patch by Pantelis Antoniou, 10 Jun 2003: |
1885 | Unify status LED interface | 1893 | Unify status LED interface |
1886 | 1894 | ||
1887 | * Add support for DS12887 RTC; add RTC support for ATC board | 1895 | * Add support for DS12887 RTC; add RTC support for ATC board |
1888 | 1896 | ||
1889 | * Patch by Nicolas Lacressonniere, 11 Jun 2003: | 1897 | * Patch by Nicolas Lacressonniere, 11 Jun 2003: |
1890 | Modifications for Atmel AT91RM9200DK ARM920T based development kit | 1898 | Modifications for Atmel AT91RM9200DK ARM920T based development kit |
1891 | - Add Atmel DataFlash support for reading and writing. | 1899 | - Add Atmel DataFlash support for reading and writing. |
1892 | - Add possibility to boot a Linux from DataFlash with BOOTM command. | 1900 | - Add possibility to boot a Linux from DataFlash with BOOTM command. |
1893 | - Add Flash detection on Atmel AT91RM9200DK | 1901 | - Add Flash detection on Atmel AT91RM9200DK |
1894 | (between Atmel AT49BV1614 and AT49BV1614A flashes) | 1902 | (between Atmel AT49BV1614 and AT49BV1614A flashes) |
1895 | - Replace old Ethernet PHY layer functions | 1903 | - Replace old Ethernet PHY layer functions |
1896 | - Change link address | 1904 | - Change link address |
1897 | 1905 | ||
1898 | * Patch by Frank Smith, 9 Jun 2003: | 1906 | * Patch by Frank Smith, 9 Jun 2003: |
1899 | use CRIT_EXCEPTION for machine check on 4xx | 1907 | use CRIT_EXCEPTION for machine check on 4xx |
1900 | 1908 | ||
1901 | * Patch by Detlev Zundel, 13 Jun 2003: | 1909 | * Patch by Detlev Zundel, 13 Jun 2003: |
1902 | added implementation of the "carinfo" command in cmd_immap.c | 1910 | added implementation of the "carinfo" command in cmd_immap.c |
1903 | 1911 | ||
1904 | * Fix CONFIG_NET_MULTI support in include/net.h | 1912 | * Fix CONFIG_NET_MULTI support in include/net.h |
1905 | 1913 | ||
1906 | * Patches by Kyle Harris, 13 Mar 2003: | 1914 | * Patches by Kyle Harris, 13 Mar 2003: |
1907 | - Add FAT partition support | 1915 | - Add FAT partition support |
1908 | - Add command support for FAT | 1916 | - Add command support for FAT |
1909 | - Add command support for MMC | 1917 | - Add command support for MMC |
1910 | ---- | 1918 | ---- |
1911 | - Add Intel PXA support for video | 1919 | - Add Intel PXA support for video |
1912 | - Add Intel PXA support for MMC | 1920 | - Add Intel PXA support for MMC |
1913 | ---- | 1921 | ---- |
1914 | - Enable MMC and FAT for lubbock board | 1922 | - Enable MMC and FAT for lubbock board |
1915 | - Other misc changes for lubbock board | 1923 | - Other misc changes for lubbock board |
1916 | 1924 | ||
1917 | * Patch by Robert Schwebel, April 02, 2003: | 1925 | * Patch by Robert Schwebel, April 02, 2003: |
1918 | fix for SMSC91111 driver | 1926 | fix for SMSC91111 driver |
1919 | 1927 | ||
1920 | * Patch by Vladimir Gurevich, 04 Jun 2003: | 1928 | * Patch by Vladimir Gurevich, 04 Jun 2003: |
1921 | make ppc405 ethernet driver compatible with CONFIG_NET_MULTI option | 1929 | make ppc405 ethernet driver compatible with CONFIG_NET_MULTI option |
1922 | 1930 | ||
1923 | * Patch by Stefan Roese, 05 Jun 2003: | 1931 | * Patch by Stefan Roese, 05 Jun 2003: |
1924 | - PPC4xx: Fix bug for initial stack in data cache as pointed out by | 1932 | - PPC4xx: Fix bug for initial stack in data cache as pointed out by |
1925 | Thomas Schaefer (tschaefer@giga-stream.de). Now inital stack in | 1933 | Thomas Schaefer (tschaefer@giga-stream.de). Now inital stack in |
1926 | data cache can be used even if the chip select is in use. | 1934 | data cache can be used even if the chip select is in use. |
1927 | - CFG_RX_ETH_BUFFER added to set the ethernet receive buffer count | 1935 | - CFG_RX_ETH_BUFFER added to set the ethernet receive buffer count |
1928 | (see README for further description). | 1936 | (see README for further description). |
1929 | - Changed config files of CONFIG_EEPRO100 boards to use the | 1937 | - Changed config files of CONFIG_EEPRO100 boards to use the |
1930 | CFG_RX_ETH_BUFFER define. | 1938 | CFG_RX_ETH_BUFFER define. |
1931 | 1939 | ||
1932 | * Add support for RMU board | 1940 | * Add support for RMU board |
1933 | 1941 | ||
1934 | * Add support for TQM862L at 100/50 MHz | 1942 | * Add support for TQM862L at 100/50 MHz |
1935 | 1943 | ||
1936 | * Patch by Pantelis Antoniou, 02 Jun 2003: | 1944 | * Patch by Pantelis Antoniou, 02 Jun 2003: |
1937 | major reconstruction of networking code; | 1945 | major reconstruction of networking code; |
1938 | add "ping" support (outgoing only!) | 1946 | add "ping" support (outgoing only!) |
1939 | 1947 | ||
1940 | * Patch by Denis Peter, 04 June 2003: | 1948 | * Patch by Denis Peter, 04 June 2003: |
1941 | add support for the MIP405T board | 1949 | add support for the MIP405T board |
1942 | 1950 | ||
1943 | * Patches by Udi Finkelstein, 2 June 2003: | 1951 | * Patches by Udi Finkelstein, 2 June 2003: |
1944 | - Added support for custom keyboards, initialized by defining a | 1952 | - Added support for custom keyboards, initialized by defining a |
1945 | board-specific drv_keyboard_init as well as defining CONFIG_KEYBOARD . | 1953 | board-specific drv_keyboard_init as well as defining CONFIG_KEYBOARD . |
1946 | - Added support for the RBC823 board. | 1954 | - Added support for the RBC823 board. |
1947 | - cpu/mpc8xx/lcd.c now automatically calculates the | 1955 | - cpu/mpc8xx/lcd.c now automatically calculates the |
1948 | Horizontal Pixel Count field. | 1956 | Horizontal Pixel Count field. |
1949 | 1957 | ||
1950 | * Fix alignment problem in BOOTP (dhcp_leasetime option) | 1958 | * Fix alignment problem in BOOTP (dhcp_leasetime option) |
1951 | [pointed out by Nicolas Lacressonnière, 2 Jun 2003] | 1959 | [pointed out by Nicolas Lacressonnière, 2 Jun 2003] |
1952 | 1960 | ||
1953 | * Patch by Mark Rakes, 14 May 2003: | 1961 | * Patch by Mark Rakes, 14 May 2003: |
1954 | add support for Intel e1000 gig cards. | 1962 | add support for Intel e1000 gig cards. |
1955 | 1963 | ||
1956 | * Patch by Nye Liu, 3 Jun 2003: | 1964 | * Patch by Nye Liu, 3 Jun 2003: |
1957 | fix critical typo in MAMR definition (include/mpc8xx.h) | 1965 | fix critical typo in MAMR definition (include/mpc8xx.h) |
1958 | 1966 | ||
1959 | * Fix requirement to align U-Boot image on 16 kB boundaries on PPC. | 1967 | * Fix requirement to align U-Boot image on 16 kB boundaries on PPC. |
1960 | 1968 | ||
1961 | * Patch by Klaus Heydeck, 2 Jun 2003 | 1969 | * Patch by Klaus Heydeck, 2 Jun 2003 |
1962 | Minor changes for KUP4K configuration | 1970 | Minor changes for KUP4K configuration |
1963 | 1971 | ||
1964 | * Patch by Marc Singer, 29 May 2003: | 1972 | * Patch by Marc Singer, 29 May 2003: |
1965 | Fixed rarp boot method for IA32 and other little-endian CPUs. | 1973 | Fixed rarp boot method for IA32 and other little-endian CPUs. |
1966 | 1974 | ||
1967 | * Patch by Marc Singer, 28 May 2003: | 1975 | * Patch by Marc Singer, 28 May 2003: |
1968 | Added port I/O commands. | 1976 | Added port I/O commands. |
1969 | 1977 | ||
1970 | * Patch by Matthew McClintock, 28 May 2003 | 1978 | * Patch by Matthew McClintock, 28 May 2003 |
1971 | - cpu/mpc824x/start.S: fix relocation code when booting from RAM | 1979 | - cpu/mpc824x/start.S: fix relocation code when booting from RAM |
1972 | - minor patches for utx8245 | 1980 | - minor patches for utx8245 |
1973 | 1981 | ||
1974 | * Patch by Daniel Engström, 28 May 2003: | 1982 | * Patch by Daniel Engström, 28 May 2003: |
1975 | x86 update | 1983 | x86 update |
1976 | 1984 | ||
1977 | * Patch by Dave Ellis, 9 May 2003 + 27 May 2003: | 1985 | * Patch by Dave Ellis, 9 May 2003 + 27 May 2003: |
1978 | add nand flash support to SXNI855T configuration | 1986 | add nand flash support to SXNI855T configuration |
1979 | fix/extend nand flash support: | 1987 | fix/extend nand flash support: |
1980 | - fix 'nand erase' command so does not erase bad blocks | 1988 | - fix 'nand erase' command so does not erase bad blocks |
1981 | - fix 'nand write' command so does not write to bad blocks | 1989 | - fix 'nand write' command so does not write to bad blocks |
1982 | - fix nand_probe() so handles no flash detected properly | 1990 | - fix nand_probe() so handles no flash detected properly |
1983 | - add doc/README.nand | 1991 | - add doc/README.nand |
1984 | - add .jffs2 and .oob options to nand read/write | 1992 | - add .jffs2 and .oob options to nand read/write |
1985 | - add 'nand bad' command to list bad blocks | 1993 | - add 'nand bad' command to list bad blocks |
1986 | - add 'clean' option to 'nand erase' to write JFFS2 clean markers | 1994 | - add 'clean' option to 'nand erase' to write JFFS2 clean markers |
1987 | - make NAND read/write faster | 1995 | - make NAND read/write faster |
1988 | 1996 | ||
1989 | * Patch by Rune Torgersen, 23 May 2003: | 1997 | * Patch by Rune Torgersen, 23 May 2003: |
1990 | Update for MPC8266ADS board | 1998 | Update for MPC8266ADS board |
1991 | 1999 | ||
1992 | * Get (mostly) rid of CFG_MONITOR_LEN definition; compute real length | 2000 | * Get (mostly) rid of CFG_MONITOR_LEN definition; compute real length |
1993 | instead CFG_MONITOR_LEN is now only used to determine _at_compile_ | 2001 | instead CFG_MONITOR_LEN is now only used to determine _at_compile_ |
1994 | _time_ (!) if the environment is embedded within the U-Boot image, | 2002 | _time_ (!) if the environment is embedded within the U-Boot image, |
1995 | or in a separate flash sector. | 2003 | or in a separate flash sector. |
1996 | 2004 | ||
1997 | * Cleanup CFG_DER #defines in config files (wd maintained only) | 2005 | * Cleanup CFG_DER #defines in config files (wd maintained only) |
1998 | 2006 | ||
1999 | * Fix data abort exception handling for arm920t CPU | 2007 | * Fix data abort exception handling for arm920t CPU |
2000 | 2008 | ||
2001 | * Fix alignment problems with flash driver for TRAB board | 2009 | * Fix alignment problems with flash driver for TRAB board |
2002 | 2010 | ||
2003 | * Patch by Donald White, 21 May 2003: | 2011 | * Patch by Donald White, 21 May 2003: |
2004 | fix calculation of base address in pci_hose_config_device() | 2012 | fix calculation of base address in pci_hose_config_device() |
2005 | 2013 | ||
2006 | * Fix bug in command line parsing: "cmd1;cmd2" is supposed to always | 2014 | * Fix bug in command line parsing: "cmd1;cmd2" is supposed to always |
2007 | execute "cmd2", even if "cmd1" fails. Note that this is different | 2015 | execute "cmd2", even if "cmd1" fails. Note that this is different |
2008 | to "run var1 var2" where the contents of "var2" will NOT be | 2016 | to "run var1 var2" where the contents of "var2" will NOT be |
2009 | executed when a command in "var1" fails. | 2017 | executed when a command in "var1" fails. |
2010 | 2018 | ||
2011 | * Add zero-copy ramdisk support (requires corresponding kernel support!) | 2019 | * Add zero-copy ramdisk support (requires corresponding kernel support!) |
2012 | 2020 | ||
2013 | * Patch by Kyle Harris, 20 May 2003: | 2021 | * Patch by Kyle Harris, 20 May 2003: |
2014 | In preparation for an ixp port, rename cpu/xscale and arch-xscale | 2022 | In preparation for an ixp port, rename cpu/xscale and arch-xscale |
2015 | into cpu/pxa and arch-pxa. | 2023 | into cpu/pxa and arch-pxa. |
2016 | 2024 | ||
2017 | * Patch by Stefan Roese, 23 May 2003: | 2025 | * Patch by Stefan Roese, 23 May 2003: |
2018 | - IBM PPC405EP port added. | 2026 | - IBM PPC405EP port added. |
2019 | - CONFIG_UART1_CONSOLE added. If defined internal UART1 (and not | 2027 | - CONFIG_UART1_CONSOLE added. If defined internal UART1 (and not |
2020 | UART0) is used as default U-Boot console. PPC4xx only! | 2028 | UART0) is used as default U-Boot console. PPC4xx only! |
2021 | - esd ASH405 board added (PPC405EP based). | 2029 | - esd ASH405 board added (PPC405EP based). |
2022 | - BUBINGA405EP board added (PPC405EP based - IBM Eval Board). | 2030 | - BUBINGA405EP board added (PPC405EP based - IBM Eval Board). |
2023 | - esd CPCI405AB board added. | 2031 | - esd CPCI405AB board added. |
2024 | - esd PMC405 board added. | 2032 | - esd PMC405 board added. |
2025 | - Update of some esd boards. | 2033 | - Update of some esd boards. |
2026 | 2034 | ||
2027 | * Patch by Denis Peter, 19 Mai 2003: | 2035 | * Patch by Denis Peter, 19 Mai 2003: |
2028 | add support for the MIP405-3 board | 2036 | add support for the MIP405-3 board |
2029 | 2037 | ||
2030 | * Patch by Dave Ellis, 22 May 2003: | 2038 | * Patch by Dave Ellis, 22 May 2003: |
2031 | Fix problem with only partially cleared .bss segment | 2039 | Fix problem with only partially cleared .bss segment |
2032 | 2040 | ||
2033 | * Patch by Rune Torgersen, 12 May 2003: | 2041 | * Patch by Rune Torgersen, 12 May 2003: |
2034 | get PCI to work on a MPC8266ADS board; incorporate change to | 2042 | get PCI to work on a MPC8266ADS board; incorporate change to |
2035 | cpu/mpc8260/pci.c to enable overrides of PCI memory parameters | 2043 | cpu/mpc8260/pci.c to enable overrides of PCI memory parameters |
2036 | 2044 | ||
2037 | * Patch by Nye Liu, 1 May 2003: | 2045 | * Patch by Nye Liu, 1 May 2003: |
2038 | minor patches for the FADS8xx | 2046 | minor patches for the FADS8xx |
2039 | 2047 | ||
2040 | * Patch by Thomas Schäfer, 28 Apr 2003: | 2048 | * Patch by Thomas Schäfer, 28 Apr 2003: |
2041 | Fix SPD handling for 256 ECC DIMM on Walnut | 2049 | Fix SPD handling for 256 ECC DIMM on Walnut |
2042 | 2050 | ||
2043 | * Add support for arbitrary bitmaps for TRAB's VFD command; | 2051 | * Add support for arbitrary bitmaps for TRAB's VFD command; |
2044 | allow to pass boot bitmap addresses in environment variables; | 2052 | allow to pass boot bitmap addresses in environment variables; |
2045 | allow for zero boot delay | 2053 | allow for zero boot delay |
2046 | 2054 | ||
2047 | * Patch by Christian Geißinger, 19 May 2002: | 2055 | * Patch by Christian Geißinger, 19 May 2002: |
2048 | On TRAB: wait until the dummy byte has been completely sent | 2056 | On TRAB: wait until the dummy byte has been completely sent |
2049 | 2057 | ||
2050 | * Patch by David Updegraff, 22 Apr 2003: | 2058 | * Patch by David Updegraff, 22 Apr 2003: |
2051 | update for CrayL1 board | 2059 | update for CrayL1 board |
2052 | 2060 | ||
2053 | * Patch by Pantelis Antoniou, 21 Apr 2003: | 2061 | * Patch by Pantelis Antoniou, 21 Apr 2003: |
2054 | add boot support for ARTOS (a proprietary OS) | 2062 | add boot support for ARTOS (a proprietary OS) |
2055 | 2063 | ||
2056 | * Patch by Steven Scholz, 11 Apr 2003: | 2064 | * Patch by Steven Scholz, 11 Apr 2003: |
2057 | Add support for RTC DS1338 | 2065 | Add support for RTC DS1338 |
2058 | 2066 | ||
2059 | * Patch by Rod Boyce, 24 Jan 2003: | 2067 | * Patch by Rod Boyce, 24 Jan 2003: |
2060 | Fix counting of extended partitions in diskboot command | 2068 | Fix counting of extended partitions in diskboot command |
2061 | 2069 | ||
2062 | * Patch by Christophe Lindheimer, 20 May 2003: | 2070 | * Patch by Christophe Lindheimer, 20 May 2003: |
2063 | allow the use of CFG_LOADS when CFG_NO_FLASH is set | 2071 | allow the use of CFG_LOADS when CFG_NO_FLASH is set |
2064 | 2072 | ||
2065 | * Fix SDRAM timing on Purple board | 2073 | * Fix SDRAM timing on Purple board |
2066 | 2074 | ||
2067 | * Add support for CompactFlash on ATC board | 2075 | * Add support for CompactFlash on ATC board |
2068 | (includes support for Intel 82365 and compatible PC Card controllers, | 2076 | (includes support for Intel 82365 and compatible PC Card controllers, |
2069 | and Yenta-compatible PCI-to-CardBus controllers) | 2077 | and Yenta-compatible PCI-to-CardBus controllers) |
2070 | 2078 | ||
2071 | * Patch by Mathijs Haarman, 08 May 2003: | 2079 | * Patch by Mathijs Haarman, 08 May 2003: |
2072 | Add lan91c96 driver (tested on Lubbock and custom PXA250 board only) | 2080 | Add lan91c96 driver (tested on Lubbock and custom PXA250 board only) |
2073 | 2081 | ||
2074 | * Fix problem with usage of "true" (undefined in current versions of bfd.h) | 2082 | * Fix problem with usage of "true" (undefined in current versions of bfd.h) |
2075 | 2083 | ||
2076 | * Add support for Promess ATC board | 2084 | * Add support for Promess ATC board |
2077 | 2085 | ||
2078 | * Patch by Keith Outwater, 28 Apr 2003: | 2086 | * Patch by Keith Outwater, 28 Apr 2003: |
2079 | - Miscellaneous corrections and additions to GEN860T board specific code. | 2087 | - Miscellaneous corrections and additions to GEN860T board specific code. |
2080 | - Added GEN860_SC variant to GEN860T. | 2088 | - Added GEN860_SC variant to GEN860T. |
2081 | - Miscellaneous corrections to GEN860T documentation. | 2089 | - Miscellaneous corrections to GEN860T documentation. |
2082 | - Correct duplicate entry in U-Boot CREDITS file. | 2090 | - Correct duplicate entry in U-Boot CREDITS file. |
2083 | - Add GEN860T_SC entry in MAINTAINERS file. | 2091 | - Add GEN860T_SC entry in MAINTAINERS file. |
2084 | - Update CREDITS file with GEN860T_SC info. | 2092 | - Update CREDITS file with GEN860T_SC info. |
2085 | 2093 | ||
2086 | * Update Smiths Aerospace addresses in MAINTAINERS file | 2094 | * Update Smiths Aerospace addresses in MAINTAINERS file |
2087 | 2095 | ||
2088 | * Fix error handling in hush's version of "run" command | 2096 | * Fix error handling in hush's version of "run" command |
2089 | 2097 | ||
2090 | * LWMON extensions: | 2098 | * LWMON extensions: |
2091 | - Splashscreen support | 2099 | - Splashscreen support |
2092 | - modem support | 2100 | - modem support |
2093 | - sysmon support | 2101 | - sysmon support |
2094 | - temperature dependend enabling of LCD | 2102 | - temperature dependend enabling of LCD |
2095 | 2103 | ||
2096 | * Allow booting from old "PPCBoot" disk partitions | 2104 | * Allow booting from old "PPCBoot" disk partitions |
2097 | 2105 | ||
2098 | * Add support for TQM8255 Board / MPC8255 CPU | 2106 | * Add support for TQM8255 Board / MPC8255 CPU |
2099 | 2107 | ||
2100 | ====================================================================== | 2108 | ====================================================================== |
2101 | Changes for U-Boot 0.3.1: | 2109 | Changes for U-Boot 0.3.1: |
2102 | ====================================================================== | 2110 | ====================================================================== |
2103 | 2111 | ||
2104 | * Make sure Block Lock Bits get cleared in R360MPI flash driver | 2112 | * Make sure Block Lock Bits get cleared in R360MPI flash driver |
2105 | 2113 | ||
2106 | * MPC823 LCD driver: Fill color map backwards, to allow for steady | 2114 | * MPC823 LCD driver: Fill color map backwards, to allow for steady |
2107 | display when Linux takes over | 2115 | display when Linux takes over |
2108 | 2116 | ||
2109 | * Patch by Erwin Rol, 27 Feb 2003: | 2117 | * Patch by Erwin Rol, 27 Feb 2003: |
2110 | Add support for RTEMS (this time for real). | 2118 | Add support for RTEMS (this time for real). |
2111 | 2119 | ||
2112 | * Add support for "bmp info" and "bmp display" commands to load | 2120 | * Add support for "bmp info" and "bmp display" commands to load |
2113 | bitmap images; this can be used (for example in a "preboot" | 2121 | bitmap images; this can be used (for example in a "preboot" |
2114 | command) to display a splash screen very quickly after poweron. | 2122 | command) to display a splash screen very quickly after poweron. |
2115 | 2123 | ||
2116 | * Add support for 133 MHz clock on INCA-IP board | 2124 | * Add support for 133 MHz clock on INCA-IP board |
2117 | 2125 | ||
2118 | * Patch by Lutz Dennig, 10 Apr 2003: | 2126 | * Patch by Lutz Dennig, 10 Apr 2003: |
2119 | Update for R360MPI board | 2127 | Update for R360MPI board |
2120 | 2128 | ||
2121 | * Add new meaning to "autostart" environment variable: | 2129 | * Add new meaning to "autostart" environment variable: |
2122 | If set to "no", a standalone image passed to the | 2130 | If set to "no", a standalone image passed to the |
2123 | "bootm" command will be copied to the load address | 2131 | "bootm" command will be copied to the load address |
2124 | (and eventually uncompressed), but NOT be started. | 2132 | (and eventually uncompressed), but NOT be started. |
2125 | This can be used to load and uncompress arbitrary | 2133 | This can be used to load and uncompress arbitrary |
2126 | data. | 2134 | data. |
2127 | 2135 | ||
2128 | * Patch by Stefan Roese, 10 Apr 2003: | 2136 | * Patch by Stefan Roese, 10 Apr 2003: |
2129 | Changed DHCP client to use IP address from server option field #54 | 2137 | Changed DHCP client to use IP address from server option field #54 |
2130 | from the OFFER packet in the server option field #54 in the REQUEST | 2138 | from the OFFER packet in the server option field #54 in the REQUEST |
2131 | packet. This fixes a problem using a Windows 2000 DHCP server, | 2139 | packet. This fixes a problem using a Windows 2000 DHCP server, |
2132 | where the DHCP-server is not the TFTP-server. | 2140 | where the DHCP-server is not the TFTP-server. |
2133 | 2141 | ||
2134 | * Set max brightness for MN11236 displays on TRAB board | 2142 | * Set max brightness for MN11236 displays on TRAB board |
2135 | 2143 | ||
2136 | * Add support for TQM862L modules | 2144 | * Add support for TQM862L modules |
2137 | 2145 | ||
2138 | ====================================================================== | 2146 | ====================================================================== |
2139 | Changes for U-Boot 0.3.0: | 2147 | Changes for U-Boot 0.3.0: |
2140 | ====================================================================== | 2148 | ====================================================================== |
2141 | 2149 | ||
2142 | * Patch by Arun Dharankar, 4 Apr 2003: | 2150 | * Patch by Arun Dharankar, 4 Apr 2003: |
2143 | Add IDMA example code (tested on 8260 only) | 2151 | Add IDMA example code (tested on 8260 only) |
2144 | 2152 | ||
2145 | * Add support for Purple Board (MIPS64 5Kc) | 2153 | * Add support for Purple Board (MIPS64 5Kc) |
2146 | 2154 | ||
2147 | * Add support for MIPS64 5Kc CPUs | 2155 | * Add support for MIPS64 5Kc CPUs |
2148 | 2156 | ||
2149 | * Fix missing setting of "loadaddr" and "bootfile" on ARM and MIPS | 2157 | * Fix missing setting of "loadaddr" and "bootfile" on ARM and MIPS |
2150 | 2158 | ||
2151 | * Patch by Denis Peter, 04 Apr 2003: | 2159 | * Patch by Denis Peter, 04 Apr 2003: |
2152 | - update MIP405-4 board | 2160 | - update MIP405-4 board |
2153 | 2161 | ||
2154 | * Patch by Stefan Roese, 4 Apr 2003: | 2162 | * Patch by Stefan Roese, 4 Apr 2003: |
2155 | - U-Boot version environment variable "ver" added | 2163 | - U-Boot version environment variable "ver" added |
2156 | (CONFIG_VERSION_VARIABLE). | 2164 | (CONFIG_VERSION_VARIABLE). |
2157 | - Changed PPC405GPr version from A to B. | 2165 | - Changed PPC405GPr version from A to B. |
2158 | - Changed CPCI405 to use CTS instead of DSR on PPC405 UART1. | 2166 | - Changed CPCI405 to use CTS instead of DSR on PPC405 UART1. |
2159 | 2167 | ||
2160 | * Patches by Denis Peter, 03 April 2003: | 2168 | * Patches by Denis Peter, 03 April 2003: |
2161 | - fix PCI IRQs on MPL boards | 2169 | - fix PCI IRQs on MPL boards |
2162 | - fix two more un-relocated pointer problems | 2170 | - fix two more un-relocated pointer problems |
2163 | 2171 | ||
2164 | * Fix behaviour of "run" command: | 2172 | * Fix behaviour of "run" command: |
2165 | - print error message iv variable does not exist | 2173 | - print error message iv variable does not exist |
2166 | - terminate processing of arguments in case of error | 2174 | - terminate processing of arguments in case of error |
2167 | 2175 | ||
2168 | * Patches by Peter Figuli, 10 Mar 2003 | 2176 | * Patches by Peter Figuli, 10 Mar 2003 |
2169 | - Add support for BTUART on PXA platform | 2177 | - Add support for BTUART on PXA platform |
2170 | - Add support for WEP EP250 (PXA) board | 2178 | - Add support for WEP EP250 (PXA) board |
2171 | 2179 | ||
2172 | * Fix flash problems on INCA-IP; add tool to allow bruning images to | 2180 | * Fix flash problems on INCA-IP; add tool to allow bruning images to |
2173 | flash using a BDI2000 | 2181 | flash using a BDI2000 |
2174 | 2182 | ||
2175 | * Implement fix for I2C Edge Conditions problem for all boards that | 2183 | * Implement fix for I2C Edge Conditions problem for all boards that |
2176 | use the bit-banging driver (common/soft_i2c.c) | 2184 | use the bit-banging driver (common/soft_i2c.c) |
2177 | 2185 | ||
2178 | * Patch by Martin Winistoerfer, 23 Mar 2003 | 2186 | * Patch by Martin Winistoerfer, 23 Mar 2003 |
2179 | - Add port to MPC555/556 microcontrollers | 2187 | - Add port to MPC555/556 microcontrollers |
2180 | - Add support for cmi customer board with | 2188 | - Add support for cmi customer board with |
2181 | Intel 28F128J3A, 28F320J3A or 28F640J3A flash. | 2189 | Intel 28F128J3A, 28F320J3A or 28F640J3A flash. |
2182 | 2190 | ||
2183 | * Patch by Rick Bronson, 28 Mar 2003: | 2191 | * Patch by Rick Bronson, 28 Mar 2003: |
2184 | - fix common/cmd_nand.c | 2192 | - fix common/cmd_nand.c |
2185 | 2193 | ||
2186 | * Patch by Arun Dharankar, 24 Mar 2003: | 2194 | * Patch by Arun Dharankar, 24 Mar 2003: |
2187 | - add threads / scheduler example code | 2195 | - add threads / scheduler example code |
2188 | 2196 | ||
2189 | * Add patches by Robert Schwebel, 31 Mar 2003: | 2197 | * Add patches by Robert Schwebel, 31 Mar 2003: |
2190 | - add ctrl-c support for kermit download | 2198 | - add ctrl-c support for kermit download |
2191 | - align bdinfo output on ARM | 2199 | - align bdinfo output on ARM |
2192 | - csb226 board: bring in sync with innokom/memsetup.S | 2200 | - csb226 board: bring in sync with innokom/memsetup.S |
2193 | - csb226 board: fix MDREFR handling | 2201 | - csb226 board: fix MDREFR handling |
2194 | - misc doc fixes / extensions | 2202 | - misc doc fixes / extensions |
2195 | - innokom board: cleanup, MDREFR fix in memsetup.S, config update | 2203 | - innokom board: cleanup, MDREFR fix in memsetup.S, config update |
2196 | - add BOOT_PROGRESS to armlinux.c | 2204 | - add BOOT_PROGRESS to armlinux.c |
2197 | 2205 | ||
2198 | * Add CPU ID, version, and clock speed for INCA-IP | 2206 | * Add CPU ID, version, and clock speed for INCA-IP |
2199 | 2207 | ||
2200 | * Patches by Dave Ellis, 18 Mar 2003 for SXNI855T board: | 2208 | * Patches by Dave Ellis, 18 Mar 2003 for SXNI855T board: |
2201 | - fix SRAM and SDRAM memory sizing | 2209 | - fix SRAM and SDRAM memory sizing |
2202 | - add status LED support | 2210 | - add status LED support |
2203 | - add MAC address for second (SCC1) ethernet port | 2211 | - add MAC address for second (SCC1) ethernet port |
2204 | 2212 | ||
2205 | * Update default environment for TQM8260 board | 2213 | * Update default environment for TQM8260 board |
2206 | 2214 | ||
2207 | * Patch by Rick Bronson, 16 Mar 2003: | 2215 | * Patch by Rick Bronson, 16 Mar 2003: |
2208 | - Add NAND flash support for reading, writing, and erasing NAND | 2216 | - Add NAND flash support for reading, writing, and erasing NAND |
2209 | flash (certain forms of which are called SmartMedia). | 2217 | flash (certain forms of which are called SmartMedia). |
2210 | - Add support for Atmel AT91RM9200DK ARM920T based development kit. | 2218 | - Add support for Atmel AT91RM9200DK ARM920T based development kit. |
2211 | 2219 | ||
2212 | * Patches by Robert Schwebel, 19 Mar 2003: | 2220 | * Patches by Robert Schwebel, 19 Mar 2003: |
2213 | - use arm-linux-gcc as default compiler for ARM | 2221 | - use arm-linux-gcc as default compiler for ARM |
2214 | - fix i2c fixup code | 2222 | - fix i2c fixup code |
2215 | - fix missing baudrate setting | 2223 | - fix missing baudrate setting |
2216 | - added $loadaddr / CFG_LOAD_ADDR support to loadb | 2224 | - added $loadaddr / CFG_LOAD_ADDR support to loadb |
2217 | - moved "ignoring trailing characters" _before_ u-boot wants to | 2225 | - moved "ignoring trailing characters" _before_ u-boot wants to |
2218 | print out diagnostics messages; removes bogus characters at the | 2226 | print out diagnostics messages; removes bogus characters at the |
2219 | end of transmission | 2227 | end of transmission |
2220 | 2228 | ||
2221 | * Patch by John Zhan, 18 Mar 2003: | 2229 | * Patch by John Zhan, 18 Mar 2003: |
2222 | Add support for SinoVee Microsystems SC8xx boards | 2230 | Add support for SinoVee Microsystems SC8xx boards |
2223 | 2231 | ||
2224 | * Patch by Rolf Offermanns, 21 Mar 2003: | 2232 | * Patch by Rolf Offermanns, 21 Mar 2003: |
2225 | ported the dnp1110 related changes from the current armboot cvs to | 2233 | ported the dnp1110 related changes from the current armboot cvs to |
2226 | current u-boot cvs. smc91111 does not work. problem marked in | 2234 | current u-boot cvs. smc91111 does not work. problem marked in |
2227 | smc91111.c, grep for "FIXME". | 2235 | smc91111.c, grep for "FIXME". |
2228 | 2236 | ||
2229 | * Patch by Brian Auld, 25 Mar 2003: | 2237 | * Patch by Brian Auld, 25 Mar 2003: |
2230 | Add support for STM flash chips on ebony board | 2238 | Add support for STM flash chips on ebony board |
2231 | 2239 | ||
2232 | * Add PCI support for MPC8250 Boards (PM825 module) | 2240 | * Add PCI support for MPC8250 Boards (PM825 module) |
2233 | 2241 | ||
2234 | * Patch by Stefan Roese, 25 Mar 2003: | 2242 | * Patch by Stefan Roese, 25 Mar 2003: |
2235 | - PCI405 update. | 2243 | - PCI405 update. |
2236 | 2244 | ||
2237 | * Patch by Stefan Roese, 20 Mar 2003: | 2245 | * Patch by Stefan Roese, 20 Mar 2003: |
2238 | - CPCI4052 update (support for revision 3). | 2246 | - CPCI4052 update (support for revision 3). |
2239 | - Set edge conditioning circuitry on PPC405GPr for compatibility | 2247 | - Set edge conditioning circuitry on PPC405GPr for compatibility |
2240 | to existing PPC405GP designs. | 2248 | to existing PPC405GP designs. |
2241 | - Clip udiv to 5 bits on PPC405 (serial.c). | 2249 | - Clip udiv to 5 bits on PPC405 (serial.c). |
2242 | 2250 | ||
2243 | * Extend INCAIP board support: | 2251 | * Extend INCAIP board support: |
2244 | - add automatic RAM size detection | 2252 | - add automatic RAM size detection |
2245 | - add "bdinfo" command | 2253 | - add "bdinfo" command |
2246 | - pass flash address and size to Linux kernel | 2254 | - pass flash address and size to Linux kernel |
2247 | - switch to 150 MHz clock | 2255 | - switch to 150 MHz clock |
2248 | 2256 | ||
2249 | * Avoid flicker on the TRAB's VFD by synchronizing the enable with | 2257 | * Avoid flicker on the TRAB's VFD by synchronizing the enable with |
2250 | the HSYNC/VSYNC. Requires new CPLD code (Version 101 for Rev. 100 | 2258 | the HSYNC/VSYNC. Requires new CPLD code (Version 101 for Rev. 100 |
2251 | boards, version 153 for Rev. 200 boards). | 2259 | boards, version 153 for Rev. 200 boards). |
2252 | 2260 | ||
2253 | * Patch by Vladimir Gurevich, 12 Mar 2003: | 2261 | * Patch by Vladimir Gurevich, 12 Mar 2003: |
2254 | Fix relocation problem of statically initialized string pointers | 2262 | Fix relocation problem of statically initialized string pointers |
2255 | in common/cmd_pci.c | 2263 | in common/cmd_pci.c |
2256 | 2264 | ||
2257 | * Patch by Kai-Uwe Blöm, 12 Mar 2003: | 2265 | * Patch by Kai-Uwe Blöm, 12 Mar 2003: |
2258 | Cleanup & bug fixes for JFFS2 code: | 2266 | Cleanup & bug fixes for JFFS2 code: |
2259 | - the memory mangement was broken. It caused havoc on malloc by | 2267 | - the memory mangement was broken. It caused havoc on malloc by |
2260 | writing beyond the block boundaries. | 2268 | writing beyond the block boundaries. |
2261 | - the length calculation for files was wrong, sometimes resulting | 2269 | - the length calculation for files was wrong, sometimes resulting |
2262 | in short file reads. | 2270 | in short file reads. |
2263 | - data copying now optionally takes fragment version numbers into | 2271 | - data copying now optionally takes fragment version numbers into |
2264 | account, to avoid copying from older data. | 2272 | account, to avoid copying from older data. |
2265 | See doc/README.JFFS2 for details. | 2273 | See doc/README.JFFS2 for details. |
2266 | 2274 | ||
2267 | * Patch by Josef Wagner, 12 Mar 2003: | 2275 | * Patch by Josef Wagner, 12 Mar 2003: |
2268 | - 16/32 MB and 50/80 MHz support with auto-detection for IP860 | 2276 | - 16/32 MB and 50/80 MHz support with auto-detection for IP860 |
2269 | - ETH05 and BEDBUG support for CU824 | 2277 | - ETH05 and BEDBUG support for CU824 |
2270 | - added support for MicroSys CPC45 | 2278 | - added support for MicroSys CPC45 |
2271 | - new BOOTROM/FLASH0 and DOC base for PM826 | 2279 | - new BOOTROM/FLASH0 and DOC base for PM826 |
2272 | 2280 | ||
2273 | * Patch by Robert Schwebel, 12 Mar 2003: | 2281 | * Patch by Robert Schwebel, 12 Mar 2003: |
2274 | Fix the chpart command on innokom board | 2282 | Fix the chpart command on innokom board |
2275 | 2283 | ||
2276 | * Name cleanup: | 2284 | * Name cleanup: |
2277 | mv include/asm-i386/ppcboot-i386.h include/asm-i386/u-boot-i386.h | 2285 | mv include/asm-i386/ppcboot-i386.h include/asm-i386/u-boot-i386.h |
2278 | s/PPCBoot/U-Boot/ in some files | 2286 | s/PPCBoot/U-Boot/ in some files |
2279 | s/pImage/uImage/ in some files | 2287 | s/pImage/uImage/ in some files |
2280 | 2288 | ||
2281 | * Patch by Detlev Zundel, 15 Jan 2003: | 2289 | * Patch by Detlev Zundel, 15 Jan 2003: |
2282 | Fix '' command line quoting | 2290 | Fix '' command line quoting |
2283 | 2291 | ||
2284 | * Patch by The LEOX team, 19 Jan 2003: | 2292 | * Patch by The LEOX team, 19 Jan 2003: |
2285 | - add support for the ELPT860 board | 2293 | - add support for the ELPT860 board |
2286 | - add support for Dallas ds164x RTC | 2294 | - add support for Dallas ds164x RTC |
2287 | 2295 | ||
2288 | * Patches by David Müller, 31 Jan 2003: | 2296 | * Patches by David Müller, 31 Jan 2003: |
2289 | - minimal setup for CardBus bridges | 2297 | - minimal setup for CardBus bridges |
2290 | - add EEPROM read/write support in the CS8900 driver | 2298 | - add EEPROM read/write support in the CS8900 driver |
2291 | - add support for the builtin I2C controller in the Samsung s3c24x0 chips | 2299 | - add support for the builtin I2C controller in the Samsung s3c24x0 chips |
2292 | - add support for MPL's VCMA9 (Samsung s3c2410 based) board | 2300 | - add support for MPL's VCMA9 (Samsung s3c2410 based) board |
2293 | 2301 | ||
2294 | * Patch by Steven Scholz, 04 Feb 2003: | 2302 | * Patch by Steven Scholz, 04 Feb 2003: |
2295 | add support for RTC DS1307 | 2303 | add support for RTC DS1307 |
2296 | 2304 | ||
2297 | * Patch by Reinhard Meyer, 5 Feb 2003: | 2305 | * Patch by Reinhard Meyer, 5 Feb 2003: |
2298 | fix PLPRCR/SCCR init sequence on 8xx to allow for | 2306 | fix PLPRCR/SCCR init sequence on 8xx to allow for |
2299 | changes of EBDF by software | 2307 | changes of EBDF by software |
2300 | 2308 | ||
2301 | * Patch by Vladimir Gurevich, 07 Feb 2003: | 2309 | * Patch by Vladimir Gurevich, 07 Feb 2003: |
2302 | "API-compatibility patch" for 4xx I2C driver | 2310 | "API-compatibility patch" for 4xx I2C driver |
2303 | 2311 | ||
2304 | * TRAB fixes / extensions: | 2312 | * TRAB fixes / extensions: |
2305 | - Restore VFD brightness as saved in environment | 2313 | - Restore VFD brightness as saved in environment |
2306 | - add support for Fujitsu flashes | 2314 | - add support for Fujitsu flashes |
2307 | - make sure both buzzers are turned off (drive low level) | 2315 | - make sure both buzzers are turned off (drive low level) |
2308 | 2316 | ||
2309 | * Patches by Robert Schwebel, 06 Mar 2003: | 2317 | * Patches by Robert Schwebel, 06 Mar 2003: |
2310 | - fix bug in BOOTP code (must use NetCopyIP) | 2318 | - fix bug in BOOTP code (must use NetCopyIP) |
2311 | - update of CSB226 port | 2319 | - update of CSB226 port |
2312 | - clear BSS segment on XScale | 2320 | - clear BSS segment on XScale |
2313 | - added support for i2c_init_board() function | 2321 | - added support for i2c_init_board() function |
2314 | - update to the Innokom plattform | 2322 | - update to the Innokom plattform |
2315 | 2323 | ||
2316 | * Extend support for redundand environments for configurations where | 2324 | * Extend support for redundand environments for configurations where |
2317 | environment size < sector size | 2325 | environment size < sector size |
2318 | 2326 | ||
2319 | * Patch by Rune Torgersen, 13 Feb 2003: | 2327 | * Patch by Rune Torgersen, 13 Feb 2003: |
2320 | Add support for Motorola MPC8266ADS board | 2328 | Add support for Motorola MPC8266ADS board |
2321 | 2329 | ||
2322 | * Patch by Kyle Harris, 19 Feb 2003: | 2330 | * Patch by Kyle Harris, 19 Feb 2003: |
2323 | patches for the Intel lubbock board: | 2331 | patches for the Intel lubbock board: |
2324 | memsetup.S - general cleanup (based on Robert's csb226 code) | 2332 | memsetup.S - general cleanup (based on Robert's csb226 code) |
2325 | flash.c - overhaul, actually works now | 2333 | flash.c - overhaul, actually works now |
2326 | lubbock.c - fix init funcs to return proper value | 2334 | lubbock.c - fix init funcs to return proper value |
2327 | 2335 | ||
2328 | * Patch by Kenneth Johansson, 26 Feb 2003: | 2336 | * Patch by Kenneth Johansson, 26 Feb 2003: |
2329 | - Fixed off by one in RFTA calculation. | 2337 | - Fixed off by one in RFTA calculation. |
2330 | - No need to abort when LDF is lower than we can program it's only | 2338 | - No need to abort when LDF is lower than we can program it's only |
2331 | minimum timing so clamp it to what we can do. | 2339 | minimum timing so clamp it to what we can do. |
2332 | - Takes function pointer to function for reading the spd_nvram. Usefull | 2340 | - Takes function pointer to function for reading the spd_nvram. Usefull |
2333 | for faking data or hardcode a module without the nvram. | 2341 | for faking data or hardcode a module without the nvram. |
2334 | - fix other user for above change | 2342 | - fix other user for above change |
2335 | - fix some comments. | 2343 | - fix some comments. |
2336 | 2344 | ||
2337 | * Patches by Brian Waite, 26 Feb 2003: | 2345 | * Patches by Brian Waite, 26 Feb 2003: |
2338 | - fix port for evb64260 board | 2346 | - fix port for evb64260 board |
2339 | - fix PCI for evb64260 board | 2347 | - fix PCI for evb64260 board |
2340 | - fix PCI scan | 2348 | - fix PCI scan |
2341 | 2349 | ||
2342 | * Patch by Reinhard Meyer, 1 Mar 2003: | 2350 | * Patch by Reinhard Meyer, 1 Mar 2003: |
2343 | Add support for EMK TOP860 Module | 2351 | Add support for EMK TOP860 Module |
2344 | 2352 | ||
2345 | * Patch by Yuli Barcohen, 02 Mar 2003: | 2353 | * Patch by Yuli Barcohen, 02 Mar 2003: |
2346 | Add SPD EEPROM support for MPC8260ADS board | 2354 | Add SPD EEPROM support for MPC8260ADS board |
2347 | 2355 | ||
2348 | * Patch by Robert Schwebel, 21 Jan 2003: | 2356 | * Patch by Robert Schwebel, 21 Jan 2003: |
2349 | - Add support for Innokom board | 2357 | - Add support for Innokom board |
2350 | - Don't complain if "install" fails | 2358 | - Don't complain if "install" fails |
2351 | - README cleanup (remove duplicated lines) | 2359 | - README cleanup (remove duplicated lines) |
2352 | - Update PXA header files | 2360 | - Update PXA header files |
2353 | 2361 | ||
2354 | * Add documentation for existing POST code (doc/README.POST) | 2362 | * Add documentation for existing POST code (doc/README.POST) |
2355 | 2363 | ||
2356 | * Patch by Laudney Ren, 15 Jan 2003: | 2364 | * Patch by Laudney Ren, 15 Jan 2003: |
2357 | Fix handling of redundand environment in "tools/envcrc.c" | 2365 | Fix handling of redundand environment in "tools/envcrc.c" |
2358 | 2366 | ||
2359 | * Patch by Detlev Zundel, 28 Feb 2003: | 2367 | * Patch by Detlev Zundel, 28 Feb 2003: |
2360 | Add bedbug support for 824x systems | 2368 | Add bedbug support for 824x systems |
2361 | 2369 | ||
2362 | * Add support for 16 MB flash configuration of TRAB board | 2370 | * Add support for 16 MB flash configuration of TRAB board |
2363 | 2371 | ||
2364 | * Patch by Erwin Rol, 27 Feb 2003: | 2372 | * Patch by Erwin Rol, 27 Feb 2003: |
2365 | Add support for RTEMS | 2373 | Add support for RTEMS |
2366 | 2374 | ||
2367 | * Add image information to README | 2375 | * Add image information to README |
2368 | 2376 | ||
2369 | * Patch by Stefan Roese, 18 Feb 2003: | 2377 | * Patch by Stefan Roese, 18 Feb 2003: |
2370 | CPCIISER4 configuration updated. | 2378 | CPCIISER4 configuration updated. |
2371 | 2379 | ||
2372 | * Patch by Stefan Roese, 17 Feb 2003: | 2380 | * Patch by Stefan Roese, 17 Feb 2003: |
2373 | Fixed bug in ext. serial clock setup on PPC405 (since PPC440 port). | 2381 | Fixed bug in ext. serial clock setup on PPC405 (since PPC440 port). |
2374 | 2382 | ||
2375 | * Patch by Stefan Roese, 13 Feb 2003: | 2383 | * Patch by Stefan Roese, 13 Feb 2003: |
2376 | Add "pcidelay" environment variable (in ms, enabled via | 2384 | Add "pcidelay" environment variable (in ms, enabled via |
2377 | CONFIG_PCI_BOOTDELAY). | 2385 | CONFIG_PCI_BOOTDELAY). |
2378 | PCI spec 2.2 defines, that a pci target has 2^25 pci clocks after | 2386 | PCI spec 2.2 defines, that a pci target has 2^25 pci clocks after |
2379 | RST# to respond to configuration cycles (33MHz -> 1s). | 2387 | RST# to respond to configuration cycles (33MHz -> 1s). |
2380 | 2388 | ||
2381 | * Fix dual PCMCIA slot support (when running with just one | 2389 | * Fix dual PCMCIA slot support (when running with just one |
2382 | slot populated) | 2390 | slot populated) |
2383 | 2391 | ||
2384 | * Add VFD type detection to trab board | 2392 | * Add VFD type detection to trab board |
2385 | 2393 | ||
2386 | * extend drivers/cs8900.c driver to synchronize ethaddr environment | 2394 | * extend drivers/cs8900.c driver to synchronize ethaddr environment |
2387 | variable with value in the EEPROM | 2395 | variable with value in the EEPROM |
2388 | 2396 | ||
2389 | * Patch by Stefan Roese, 10 Feb 2003: | 2397 | * Patch by Stefan Roese, 10 Feb 2003: |
2390 | Add support for 4MB and 128MB onboard SDRAM (cpu/ppc4xx/sdram.c) | 2398 | Add support for 4MB and 128MB onboard SDRAM (cpu/ppc4xx/sdram.c) |
2391 | 2399 | ||
2392 | * Add support for MIPS32 4Kc CPUs | 2400 | * Add support for MIPS32 4Kc CPUs |
2393 | 2401 | ||
2394 | * Add support for INCA-IP Board | 2402 | * Add support for INCA-IP Board |
2395 | 2403 | ||
2396 | ====================================================================== | 2404 | ====================================================================== |
2397 | Changes for U-Boot 0.2.2: | 2405 | Changes for U-Boot 0.2.2: |
2398 | ====================================================================== | 2406 | ====================================================================== |
2399 | 2407 | ||
2400 | * Add dual ethernet support on PM826 | 2408 | * Add dual ethernet support on PM826 |
2401 | 2409 | ||
2402 | * Add support for LXT971 PHY on PM826 | 2410 | * Add support for LXT971 PHY on PM826 |
2403 | 2411 | ||
2404 | * Patch by Tord Andersson, 16 Jan 2003: | 2412 | * Patch by Tord Andersson, 16 Jan 2003: |
2405 | Fix flash sector count for TQM8xxL | 2413 | Fix flash sector count for TQM8xxL |
2406 | 2414 | ||
2407 | * Fix I2C EEPROM problem on ICU862 board (would only write the first | 2415 | * Fix I2C EEPROM problem on ICU862 board (would only write the first |
2408 | 16 bytes out of each 32 byte block) | 2416 | 16 bytes out of each 32 byte block) |
2409 | 2417 | ||
2410 | ====================================================================== | 2418 | ====================================================================== |
2411 | Changes for U-Boot 0.2.1: | 2419 | Changes for U-Boot 0.2.1: |
2412 | ====================================================================== | 2420 | ====================================================================== |
2413 | 2421 | ||
2414 | * Add support for V37 board | 2422 | * Add support for V37 board |
2415 | (patch by Jón Benediktsson, 11 Dec 2002) | 2423 | (patch by Jón Benediktsson, 11 Dec 2002) |
2416 | 2424 | ||
2417 | * Update baudrate in bd_info when it gets changed | 2425 | * Update baudrate in bd_info when it gets changed |
2418 | 2426 | ||
2419 | * Add watchdog trigger points while waiting for serial port | 2427 | * Add watchdog trigger points while waiting for serial port |
2420 | (so far only 8xx -- needed on LWMON with 100ms watchdog) | 2428 | (so far only 8xx -- needed on LWMON with 100ms watchdog) |
2421 | 2429 | ||
2422 | * Improve command line tool to access the U-Boot's environment | 2430 | * Improve command line tool to access the U-Boot's environment |
2423 | (figuration of the utility, using a config file) | 2431 | (figuration of the utility, using a config file) |
2424 | 2432 | ||
2425 | * Add single quote support for (old) command line parser | 2433 | * Add single quote support for (old) command line parser |
2426 | 2434 | ||
2427 | * Switch LWMON board default config from FRAM to EEPROM; | 2435 | * Switch LWMON board default config from FRAM to EEPROM; |
2428 | in POST, EEPROM shows up on 8 addresses | 2436 | in POST, EEPROM shows up on 8 addresses |
2429 | 2437 | ||
2430 | ====================================================================== | 2438 | ====================================================================== |
2431 | Changes for U-Boot 0.2.0: | 2439 | Changes for U-Boot 0.2.0: |
2432 | ====================================================================== | 2440 | ====================================================================== |
2433 | 2441 | ||
2434 | * Use 1-byte-read instead of -write for iprobe() function | 2442 | * Use 1-byte-read instead of -write for iprobe() function |
2435 | Add i2c commands to PM826 config | 2443 | Add i2c commands to PM826 config |
2436 | 2444 | ||
2437 | * extend I2C POST code: check for list on known addresses | 2445 | * extend I2C POST code: check for list on known addresses |
2438 | 2446 | ||
2439 | * Improve log buffer code; use "loglevel" to decide which messages | 2447 | * Improve log buffer code; use "loglevel" to decide which messages |
2440 | to log on the console, too (like in Linux); get rid of "logstart" | 2448 | to log on the console, too (like in Linux); get rid of "logstart" |
2441 | 2449 | ||
2442 | * Add command line tool to access the U-Boot's environment | 2450 | * Add command line tool to access the U-Boot's environment |
2443 | (board-specific for TRAB now, to be fixed later) | 2451 | (board-specific for TRAB now, to be fixed later) |
2444 | 2452 | ||
2445 | * Patch by Hans-Joerg Frieden, 06 Dec 2002 | 2453 | * Patch by Hans-Joerg Frieden, 06 Dec 2002 |
2446 | Fix misc problems with AmigaOne support | 2454 | Fix misc problems with AmigaOne support |
2447 | 2455 | ||
2448 | * Patch by Chris Hallinan, 3 Dec 2002: | 2456 | * Patch by Chris Hallinan, 3 Dec 2002: |
2449 | minor cleanup to the MPC8245 EPIC driver | 2457 | minor cleanup to the MPC8245 EPIC driver |
2450 | 2458 | ||
2451 | * Patch by Pierre Aubert , 28 Nov 2002 | 2459 | * Patch by Pierre Aubert , 28 Nov 2002 |
2452 | Add support for external (SIU) interrupts on MPC8xx | 2460 | Add support for external (SIU) interrupts on MPC8xx |
2453 | 2461 | ||
2454 | * Patch by Pierre Aubert , 28 Nov 2002 | 2462 | * Patch by Pierre Aubert , 28 Nov 2002 |
2455 | Fix nested syscalls bug in standalone applications | 2463 | Fix nested syscalls bug in standalone applications |
2456 | 2464 | ||
2457 | * Patch by David Müller, 27 Nov 2002: | 2465 | * Patch by David Müller, 27 Nov 2002: |
2458 | fix output of "pciinfo" command for CardBus bridge devices. | 2466 | fix output of "pciinfo" command for CardBus bridge devices. |
2459 | 2467 | ||
2460 | * Fix bug in TQM8260 board detection - boards got stuck when board ID | 2468 | * Fix bug in TQM8260 board detection - boards got stuck when board ID |
2461 | was not readable | 2469 | was not readable |
2462 | 2470 | ||
2463 | * Add LED indication for IDE activity on KUP4K board | 2471 | * Add LED indication for IDE activity on KUP4K board |
2464 | 2472 | ||
2465 | * Fix startup problems with VFD display on TRAB | 2473 | * Fix startup problems with VFD display on TRAB |
2466 | 2474 | ||
2467 | * Patch by Pierre Aubert, 20 Nov 2002 | 2475 | * Patch by Pierre Aubert, 20 Nov 2002 |
2468 | Add driver for Epson SED13806 graphic controller. | 2476 | Add driver for Epson SED13806 graphic controller. |
2469 | Add support for BMP logos in cfb_console driver. | 2477 | Add support for BMP logos in cfb_console driver. |
2470 | 2478 | ||
2471 | * Added support for both PCMCIA slots (at the same time!) on MPC8xx | 2479 | * Added support for both PCMCIA slots (at the same time!) on MPC8xx |
2472 | 2480 | ||
2473 | * Patch by Rod Boyce, 21 Nov 2002: | 2481 | * Patch by Rod Boyce, 21 Nov 2002: |
2474 | fix PCMCIA on MBX8xx board | 2482 | fix PCMCIA on MBX8xx board |
2475 | 2483 | ||
2476 | * Patch by Pierre Aubert , 21 Nov 2002 | 2484 | * Patch by Pierre Aubert , 21 Nov 2002 |
2477 | Add CFG_CPM_POST_WORD_ADDR to make the offset of the | 2485 | Add CFG_CPM_POST_WORD_ADDR to make the offset of the |
2478 | bootmode word in DPRAM configurable | 2486 | bootmode word in DPRAM configurable |
2479 | 2487 | ||
2480 | * Patch by Daniel Engström, 18 Nov 2002: | 2488 | * Patch by Daniel Engström, 18 Nov 2002: |
2481 | Fixes for x86 port (mostly strings issues) | 2489 | Fixes for x86 port (mostly strings issues) |
2482 | 2490 | ||
2483 | * Patch by Ken Chou, 18 Nov 2002: | 2491 | * Patch by Ken Chou, 18 Nov 2002: |
2484 | Fix for natsemi NIC cards (DP83815) | 2492 | Fix for natsemi NIC cards (DP83815) |
2485 | 2493 | ||
2486 | * Patch by Pierre Aubert, 19 Nov 2002: | 2494 | * Patch by Pierre Aubert, 19 Nov 2002: |
2487 | fix a bug for the MII configuration, and some warnings | 2495 | fix a bug for the MII configuration, and some warnings |
2488 | 2496 | ||
2489 | * Patch by Thomas Frieden, 13 Nov 2002: | 2497 | * Patch by Thomas Frieden, 13 Nov 2002: |
2490 | Add code for AmigaOne board | 2498 | Add code for AmigaOne board |
2491 | (preliminary merge to U-Boot, still WIP) | 2499 | (preliminary merge to U-Boot, still WIP) |
2492 | 2500 | ||
2493 | * Patch by Jon Diekema, 12 Nov 2002: | 2501 | * Patch by Jon Diekema, 12 Nov 2002: |
2494 | - Adding URL for IEEE OUI lookup | 2502 | - Adding URL for IEEE OUI lookup |
2495 | - Making the autoboot #defines dependent on CONFIG_AUTOBOOT_KEYED | 2503 | - Making the autoboot #defines dependent on CONFIG_AUTOBOOT_KEYED |
2496 | being defined. | 2504 | being defined. |
2497 | - In the CONFIG_EXTRA_ENV_SETTINGS #define, the root-on-initrd and | 2505 | - In the CONFIG_EXTRA_ENV_SETTINGS #define, the root-on-initrd and |
2498 | root-on-nfs macros are designed to switch how the default boot | 2506 | root-on-nfs macros are designed to switch how the default boot |
2499 | method gets defined. | 2507 | method gets defined. |
2500 | 2508 | ||
2501 | * Patch by Daniel Engström, 13 Nov 2002: | 2509 | * Patch by Daniel Engström, 13 Nov 2002: |
2502 | Add support for i386 architecture and AMD SC520 board | 2510 | Add support for i386 architecture and AMD SC520 board |
2503 | 2511 | ||
2504 | * Patch by Pierre Aubert, 12 Nov 2002: | 2512 | * Patch by Pierre Aubert, 12 Nov 2002: |
2505 | Add support for DOS filesystem and booting from DOS floppy disk | 2513 | Add support for DOS filesystem and booting from DOS floppy disk |
2506 | 2514 | ||
2507 | * Patch by Jim Sandoz, 07 Nov 2002: | 2515 | * Patch by Jim Sandoz, 07 Nov 2002: |
2508 | Increase number of network RX buffers (PKTBUFSRX in | 2516 | Increase number of network RX buffers (PKTBUFSRX in |
2509 | "include/net.h") for EEPRO100 based boards (especially SP8240) | 2517 | "include/net.h") for EEPRO100 based boards (especially SP8240) |
2510 | which showed "Receiver is not ready" errors when U-Boot was | 2518 | which showed "Receiver is not ready" errors when U-Boot was |
2511 | processing the receive buffers slower than the network controller | 2519 | processing the receive buffers slower than the network controller |
2512 | was filling them. | 2520 | was filling them. |
2513 | 2521 | ||
2514 | * Patch by Andreas Oberritter, 09 Nov 2002: | 2522 | * Patch by Andreas Oberritter, 09 Nov 2002: |
2515 | Change behaviour of NetLoop(): return -1 for errors, filesize | 2523 | Change behaviour of NetLoop(): return -1 for errors, filesize |
2516 | otherwise; return code 0 is valid an means no file loaded - in this | 2524 | otherwise; return code 0 is valid an means no file loaded - in this |
2517 | case the environment still gets updated! | 2525 | case the environment still gets updated! |
2518 | 2526 | ||
2519 | * Patches by Jon Diekema, 9 Nov 2002: | 2527 | * Patches by Jon Diekema, 9 Nov 2002: |
2520 | - improve ADC/DAC clocking on the SACSng board to align | 2528 | - improve ADC/DAC clocking on the SACSng board to align |
2521 | the failing edges of LRCLK and SCLK | 2529 | the failing edges of LRCLK and SCLK |
2522 | - sbc8260 configuration tweaks | 2530 | - sbc8260 configuration tweaks |
2523 | - add status LED support for 82xx systems | 2531 | - add status LED support for 82xx systems |
2524 | - wire sspi/sspo commands into command handler; improved error | 2532 | - wire sspi/sspo commands into command handler; improved error |
2525 | handlering | 2533 | handlering |
2526 | - add timestamp support and alternate memory test to the | 2534 | - add timestamp support and alternate memory test to the |
2527 | SACSng configuration | 2535 | SACSng configuration |
2528 | 2536 | ||
2529 | * Patch by Vince Husovsky, 7 Nov 2002: | 2537 | * Patch by Vince Husovsky, 7 Nov 2002: |
2530 | Add "-n" to linker options to get rid of "Not enough room for | 2538 | Add "-n" to linker options to get rid of "Not enough room for |
2531 | program headers" problem | 2539 | program headers" problem |
2532 | 2540 | ||
2533 | * Patch by David Müller, 05 Nov 2002 | 2541 | * Patch by David Müller, 05 Nov 2002 |
2534 | Rename CONFIG_PLL_INPUT_FREQ to CONFIG_SYS_CLK_FREQ | 2542 | Rename CONFIG_PLL_INPUT_FREQ to CONFIG_SYS_CLK_FREQ |
2535 | so we can use an already existing name | 2543 | so we can use an already existing name |
2536 | 2544 | ||
2537 | * Patch by Pierre Aubert, 05 Nov 2002 | 2545 | * Patch by Pierre Aubert, 05 Nov 2002 |
2538 | Hardware relatied improvments in FDC boot code | 2546 | Hardware relatied improvments in FDC boot code |
2539 | 2547 | ||
2540 | * Patch by Holger Schurig, 5 Nov 2002: | 2548 | * Patch by Holger Schurig, 5 Nov 2002: |
2541 | Make the PXA really change it's frequency | 2549 | Make the PXA really change it's frequency |
2542 | 2550 | ||
2543 | * Patch by Pierre Aubert, 05 Nov 2002 | 2551 | * Patch by Pierre Aubert, 05 Nov 2002 |
2544 | Add support for slave serial Spartan 2 FPGAs | 2552 | Add support for slave serial Spartan 2 FPGAs |
2545 | 2553 | ||
2546 | * Fix uninitialized memory (MAC address) in 8xx SCC/FEC ethernet | 2554 | * Fix uninitialized memory (MAC address) in 8xx SCC/FEC ethernet |
2547 | drivers | 2555 | drivers |
2548 | 2556 | ||
2549 | * Add support for log buffer which can be passed to Linux kernel's | 2557 | * Add support for log buffer which can be passed to Linux kernel's |
2550 | syslog mechanism; used especially for POST results. | 2558 | syslog mechanism; used especially for POST results. |
2551 | 2559 | ||
2552 | * Patch by Klaus Heydeck, 31 Oct 2002: | 2560 | * Patch by Klaus Heydeck, 31 Oct 2002: |
2553 | Add initial support for kup4k board | 2561 | Add initial support for kup4k board |
2554 | 2562 | ||
2555 | * Patch by Robert Schwebel, 04 Nov 2002: | 2563 | * Patch by Robert Schwebel, 04 Nov 2002: |
2556 | - use watchdog to reset PXA250 systems | 2564 | - use watchdog to reset PXA250 systems |
2557 | - added progress callbacks to (some of the) ARM code | 2565 | - added progress callbacks to (some of the) ARM code |
2558 | - update for Cogent CSB226 board | 2566 | - update for Cogent CSB226 board |
2559 | 2567 | ||
2560 | * Add support for FPS860 board | 2568 | * Add support for FPS860 board |
2561 | 2569 | ||
2562 | * Patch by Guillaume Alexandre,, 04 Nov 2002: | 2570 | * Patch by Guillaume Alexandre,, 04 Nov 2002: |
2563 | Improve PCI access on 32-bits Compact PCI bus | 2571 | Improve PCI access on 32-bits Compact PCI bus |
2564 | 2572 | ||
2565 | * Fix mdelay() on TRAB - this was still the debugging version with | 2573 | * Fix mdelay() on TRAB - this was still the debugging version with |
2566 | seconds instead of ms. | 2574 | seconds instead of ms. |
2567 | 2575 | ||
2568 | * Patch by Robert Schwebel, 1 Nov 2002: | 2576 | * Patch by Robert Schwebel, 1 Nov 2002: |
2569 | XScale related cleanup (affects all ARM boards) | 2577 | XScale related cleanup (affects all ARM boards) |
2570 | 2578 | ||
2571 | * Cleanup of names and README. | 2579 | * Cleanup of names and README. |
2572 | 2580 | ||
2573 | ====================================================================== | 2581 | ====================================================================== |
2574 | Notes for U-Boot 0.1.0: | 2582 | Notes for U-Boot 0.1.0: |
2575 | ====================================================================== | 2583 | ====================================================================== |
2576 | 2584 | ||
2577 | This is the initial version of "Das U-Boot", the Universal Boot Loader. | 2585 | This is the initial version of "Das U-Boot", the Universal Boot Loader. |
2578 | 2586 | ||
2579 | It is based on version 2.0.0 (the "Halloween Release") of PPCBoot. | 2587 | It is based on version 2.0.0 (the "Halloween Release") of PPCBoot. |
2580 | For information about the history of the project please see the | 2588 | For information about the history of the project please see the |
2581 | PPCBoot project page at http://sourceforge.net/projects/ppcboot | 2589 | PPCBoot project page at http://sourceforge.net/projects/ppcboot |
2582 | 2590 | ||
2583 | ====================================================================== | 2591 | ====================================================================== |
2584 | 2592 |
Makefile
1 | # | 1 | # |
2 | # (C) Copyright 2000-2004 | 2 | # (C) Copyright 2000-2004 |
3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | 3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
4 | # | 4 | # |
5 | # See file CREDITS for list of people who contributed to this | 5 | # See file CREDITS for list of people who contributed to this |
6 | # project. | 6 | # project. |
7 | # | 7 | # |
8 | # This program is free software; you can redistribute it and/or | 8 | # This program is free software; you can redistribute it and/or |
9 | # modify it under the terms of the GNU General Public License as | 9 | # modify it under the terms of the GNU General Public License as |
10 | # published by the Free Software Foundation; either version 2 of | 10 | # published by the Free Software Foundation; either version 2 of |
11 | # the License, or (at your option) any later version. | 11 | # the License, or (at your option) any later version. |
12 | # | 12 | # |
13 | # This program is distributed in the hope that it will be useful, | 13 | # This program is distributed in the hope that it will be useful, |
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | # GNU General Public License for more details. | 16 | # GNU General Public License for more details. |
17 | # | 17 | # |
18 | # You should have received a copy of the GNU General Public License | 18 | # You should have received a copy of the GNU General Public License |
19 | # along with this program; if not, write to the Free Software | 19 | # along with this program; if not, write to the Free Software |
20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
21 | # MA 02111-1307 USA | 21 | # MA 02111-1307 USA |
22 | # | 22 | # |
23 | 23 | ||
24 | HOSTARCH := $(shell uname -m | \ | 24 | HOSTARCH := $(shell uname -m | \ |
25 | sed -e s/i.86/i386/ \ | 25 | sed -e s/i.86/i386/ \ |
26 | -e s/sun4u/sparc64/ \ | 26 | -e s/sun4u/sparc64/ \ |
27 | -e s/arm.*/arm/ \ | 27 | -e s/arm.*/arm/ \ |
28 | -e s/sa110/arm/ \ | 28 | -e s/sa110/arm/ \ |
29 | -e s/powerpc/ppc/ \ | 29 | -e s/powerpc/ppc/ \ |
30 | -e s/macppc/ppc/) | 30 | -e s/macppc/ppc/) |
31 | 31 | ||
32 | HOSTOS := $(shell uname -s | tr A-Z a-z | \ | 32 | HOSTOS := $(shell uname -s | tr A-Z a-z | \ |
33 | sed -e 's/\(cygwin\).*/cygwin/') | 33 | sed -e 's/\(cygwin\).*/cygwin/') |
34 | 34 | ||
35 | export HOSTARCH | 35 | export HOSTARCH |
36 | 36 | ||
37 | # Deal with colliding definitions from tcsh etc. | 37 | # Deal with colliding definitions from tcsh etc. |
38 | VENDOR= | 38 | VENDOR= |
39 | 39 | ||
40 | ######################################################################### | 40 | ######################################################################### |
41 | 41 | ||
42 | TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) | 42 | TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) |
43 | export TOPDIR | 43 | export TOPDIR |
44 | 44 | ||
45 | ifeq (include/config.mk,$(wildcard include/config.mk)) | 45 | ifeq (include/config.mk,$(wildcard include/config.mk)) |
46 | # load ARCH, BOARD, and CPU configuration | 46 | # load ARCH, BOARD, and CPU configuration |
47 | include include/config.mk | 47 | include include/config.mk |
48 | export ARCH CPU BOARD VENDOR | 48 | export ARCH CPU BOARD VENDOR |
49 | # load other configuration | 49 | # load other configuration |
50 | include $(TOPDIR)/config.mk | 50 | include $(TOPDIR)/config.mk |
51 | 51 | ||
52 | ifndef CROSS_COMPILE | 52 | ifndef CROSS_COMPILE |
53 | ifeq ($(HOSTARCH),ppc) | 53 | ifeq ($(HOSTARCH),ppc) |
54 | CROSS_COMPILE = | 54 | CROSS_COMPILE = |
55 | else | 55 | else |
56 | ifeq ($(ARCH),ppc) | 56 | ifeq ($(ARCH),ppc) |
57 | CROSS_COMPILE = ppc_8xx- | 57 | CROSS_COMPILE = ppc_8xx- |
58 | endif | 58 | endif |
59 | ifeq ($(ARCH),arm) | 59 | ifeq ($(ARCH),arm) |
60 | CROSS_COMPILE = arm-linux- | 60 | CROSS_COMPILE = arm-linux- |
61 | endif | 61 | endif |
62 | ifeq ($(ARCH),i386) | 62 | ifeq ($(ARCH),i386) |
63 | ifeq ($(HOSTARCH),i386) | 63 | ifeq ($(HOSTARCH),i386) |
64 | CROSS_COMPILE = | 64 | CROSS_COMPILE = |
65 | else | 65 | else |
66 | CROSS_COMPILE = i386-linux- | 66 | CROSS_COMPILE = i386-linux- |
67 | endif | 67 | endif |
68 | endif | 68 | endif |
69 | ifeq ($(ARCH),mips) | 69 | ifeq ($(ARCH),mips) |
70 | CROSS_COMPILE = mips_4KC- | 70 | CROSS_COMPILE = mips_4KC- |
71 | endif | 71 | endif |
72 | ifeq ($(ARCH),nios) | 72 | ifeq ($(ARCH),nios) |
73 | CROSS_COMPILE = nios-elf- | 73 | CROSS_COMPILE = nios-elf- |
74 | endif | 74 | endif |
75 | ifeq ($(ARCH),m68k) | 75 | ifeq ($(ARCH),m68k) |
76 | CROSS_COMPILE = m68k-elf- | 76 | CROSS_COMPILE = m68k-elf- |
77 | endif | 77 | endif |
78 | ifeq ($(ARCH),microblaze) | 78 | ifeq ($(ARCH),microblaze) |
79 | CROSS_COMPILE = mb- | 79 | CROSS_COMPILE = mb- |
80 | endif | 80 | endif |
81 | endif | 81 | endif |
82 | endif | 82 | endif |
83 | 83 | ||
84 | export CROSS_COMPILE | 84 | export CROSS_COMPILE |
85 | 85 | ||
86 | ######################################################################### | 86 | ######################################################################### |
87 | # U-Boot objects....order is important (i.e. start must be first) | 87 | # U-Boot objects....order is important (i.e. start must be first) |
88 | 88 | ||
89 | OBJS = cpu/$(CPU)/start.o | 89 | OBJS = cpu/$(CPU)/start.o |
90 | ifeq ($(CPU),i386) | 90 | ifeq ($(CPU),i386) |
91 | OBJS += cpu/$(CPU)/start16.o | 91 | OBJS += cpu/$(CPU)/start16.o |
92 | OBJS += cpu/$(CPU)/reset.o | 92 | OBJS += cpu/$(CPU)/reset.o |
93 | endif | 93 | endif |
94 | ifeq ($(CPU),ppc4xx) | 94 | ifeq ($(CPU),ppc4xx) |
95 | OBJS += cpu/$(CPU)/resetvec.o | 95 | OBJS += cpu/$(CPU)/resetvec.o |
96 | endif | 96 | endif |
97 | ifeq ($(CPU),mpc85xx) | 97 | ifeq ($(CPU),mpc85xx) |
98 | OBJS += cpu/$(CPU)/resetvec.o | 98 | OBJS += cpu/$(CPU)/resetvec.o |
99 | endif | 99 | endif |
100 | 100 | ||
101 | LIBS = lib_generic/libgeneric.a | 101 | LIBS = lib_generic/libgeneric.a |
102 | LIBS += board/$(BOARDDIR)/lib$(BOARD).a | 102 | LIBS += board/$(BOARDDIR)/lib$(BOARD).a |
103 | LIBS += cpu/$(CPU)/lib$(CPU).a | 103 | LIBS += cpu/$(CPU)/lib$(CPU).a |
104 | LIBS += lib_$(ARCH)/lib$(ARCH).a | 104 | LIBS += lib_$(ARCH)/lib$(ARCH).a |
105 | LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \ | 105 | LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \ |
106 | fs/reiserfs/libreiserfs.a | 106 | fs/reiserfs/libreiserfs.a |
107 | LIBS += net/libnet.a | 107 | LIBS += net/libnet.a |
108 | LIBS += disk/libdisk.a | 108 | LIBS += disk/libdisk.a |
109 | LIBS += rtc/librtc.a | 109 | LIBS += rtc/librtc.a |
110 | LIBS += dtt/libdtt.a | 110 | LIBS += dtt/libdtt.a |
111 | LIBS += drivers/libdrivers.a | 111 | LIBS += drivers/libdrivers.a |
112 | LIBS += drivers/sk98lin/libsk98lin.a | 112 | LIBS += drivers/sk98lin/libsk98lin.a |
113 | LIBS += post/libpost.a post/cpu/libcpu.a | 113 | LIBS += post/libpost.a post/cpu/libcpu.a |
114 | LIBS += common/libcommon.a | 114 | LIBS += common/libcommon.a |
115 | .PHONY : $(LIBS) | 115 | .PHONY : $(LIBS) |
116 | 116 | ||
117 | # Add GCC lib | 117 | # Add GCC lib |
118 | PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc | 118 | PLATFORM_LIBS += --no-warn-mismatch -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc |
119 | 119 | ||
120 | 120 | ||
121 | # The "tools" are needed early, so put this first | 121 | # The "tools" are needed early, so put this first |
122 | # Don't include stuff already done in $(LIBS) | 122 | # Don't include stuff already done in $(LIBS) |
123 | SUBDIRS = tools \ | 123 | SUBDIRS = tools \ |
124 | examples \ | 124 | examples \ |
125 | post \ | 125 | post \ |
126 | post/cpu | 126 | post/cpu |
127 | .PHONY : $(SUBDIRS) | 127 | .PHONY : $(SUBDIRS) |
128 | 128 | ||
129 | ######################################################################### | 129 | ######################################################################### |
130 | ######################################################################### | 130 | ######################################################################### |
131 | 131 | ||
132 | ALL = u-boot.srec u-boot.bin System.map | 132 | ALL = u-boot.srec u-boot.bin System.map |
133 | 133 | ||
134 | all: $(ALL) | 134 | all: $(ALL) |
135 | 135 | ||
136 | u-boot.srec: u-boot | 136 | u-boot.srec: u-boot |
137 | $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ | 137 | $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ |
138 | 138 | ||
139 | u-boot.bin: u-boot | 139 | u-boot.bin: u-boot |
140 | $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ | 140 | $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ |
141 | 141 | ||
142 | u-boot.img: u-boot.bin | 142 | u-boot.img: u-boot.bin |
143 | ./tools/mkimage -A $(ARCH) -T firmware -C none \ | 143 | ./tools/mkimage -A $(ARCH) -T firmware -C none \ |
144 | -a $(TEXT_BASE) -e 0 \ | 144 | -a $(TEXT_BASE) -e 0 \ |
145 | -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' include/version.h | \ | 145 | -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' include/version.h | \ |
146 | sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \ | 146 | sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \ |
147 | -d $< $@ | 147 | -d $< $@ |
148 | 148 | ||
149 | u-boot.dis: u-boot | 149 | u-boot.dis: u-boot |
150 | $(OBJDUMP) -d $< > $@ | 150 | $(OBJDUMP) -d $< > $@ |
151 | 151 | ||
152 | u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT) | 152 | u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT) |
153 | UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ | 153 | UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ |
154 | $(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \ | 154 | $(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \ |
155 | --start-group $(LIBS) $(PLATFORM_LIBS) --end-group \ | 155 | --start-group $(LIBS) $(PLATFORM_LIBS) --end-group \ |
156 | -Map u-boot.map -o u-boot | 156 | -Map u-boot.map -o u-boot |
157 | 157 | ||
158 | $(LIBS): | 158 | $(LIBS): |
159 | $(MAKE) -C `dirname $@` | 159 | $(MAKE) -C `dirname $@` |
160 | 160 | ||
161 | $(SUBDIRS): | 161 | $(SUBDIRS): |
162 | $(MAKE) -C $@ all | 162 | $(MAKE) -C $@ all |
163 | 163 | ||
164 | gdbtools: | 164 | gdbtools: |
165 | $(MAKE) -C tools/gdb || exit 1 | 165 | $(MAKE) -C tools/gdb || exit 1 |
166 | 166 | ||
167 | depend dep: | 167 | depend dep: |
168 | @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done | 168 | @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done |
169 | 169 | ||
170 | tags: | 170 | tags: |
171 | ctags -w `find $(SUBDIRS) include \ | 171 | ctags -w `find $(SUBDIRS) include \ |
172 | lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \ | 172 | lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \ |
173 | fs/cramfs fs/fat fs/fdos fs/jffs2 \ | 173 | fs/cramfs fs/fat fs/fdos fs/jffs2 \ |
174 | net disk rtc dtt drivers drivers/sk98lin common \ | 174 | net disk rtc dtt drivers drivers/sk98lin common \ |
175 | \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)` | 175 | \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)` |
176 | 176 | ||
177 | etags: | 177 | etags: |
178 | etags -a `find $(SUBDIRS) include \ | 178 | etags -a `find $(SUBDIRS) include \ |
179 | \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)` | 179 | \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)` |
180 | 180 | ||
181 | System.map: u-boot | 181 | System.map: u-boot |
182 | @$(NM) $< | \ | 182 | @$(NM) $< | \ |
183 | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ | 183 | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ |
184 | sort > System.map | 184 | sort > System.map |
185 | 185 | ||
186 | ######################################################################### | 186 | ######################################################################### |
187 | else | 187 | else |
188 | all install u-boot u-boot.srec depend dep: | 188 | all install u-boot u-boot.srec depend dep: |
189 | @echo "System not configured - see README" >&2 | 189 | @echo "System not configured - see README" >&2 |
190 | @ exit 1 | 190 | @ exit 1 |
191 | endif | 191 | endif |
192 | 192 | ||
193 | ######################################################################### | 193 | ######################################################################### |
194 | 194 | ||
195 | unconfig: | 195 | unconfig: |
196 | @rm -f include/config.h include/config.mk board/*/config.tmp | 196 | @rm -f include/config.h include/config.mk board/*/config.tmp |
197 | 197 | ||
198 | #======================================================================== | 198 | #======================================================================== |
199 | # PowerPC | 199 | # PowerPC |
200 | #======================================================================== | 200 | #======================================================================== |
201 | 201 | ||
202 | ######################################################################### | 202 | ######################################################################### |
203 | ## MPC5xx Systems | 203 | ## MPC5xx Systems |
204 | ######################################################################### | 204 | ######################################################################### |
205 | 205 | ||
206 | cmi_mpc5xx_config: unconfig | 206 | cmi_mpc5xx_config: unconfig |
207 | @./mkconfig $(@:_config=) ppc mpc5xx cmi | 207 | @./mkconfig $(@:_config=) ppc mpc5xx cmi |
208 | 208 | ||
209 | PATI_config: unconfig | 209 | PATI_config: unconfig |
210 | @./mkconfig $(@:_config=) ppc mpc5xx pati mpl | 210 | @./mkconfig $(@:_config=) ppc mpc5xx pati mpl |
211 | 211 | ||
212 | ######################################################################### | 212 | ######################################################################### |
213 | ## MPC5xxx Systems | 213 | ## MPC5xxx Systems |
214 | ######################################################################### | 214 | ######################################################################### |
215 | Lite5200_config \ | 215 | Lite5200_config \ |
216 | Lite5200_LOWBOOT_config \ | 216 | Lite5200_LOWBOOT_config \ |
217 | Lite5200_LOWBOOT08_config \ | 217 | Lite5200_LOWBOOT08_config \ |
218 | icecube_5200_config \ | 218 | icecube_5200_config \ |
219 | icecube_5200_LOWBOOT_config \ | 219 | icecube_5200_LOWBOOT_config \ |
220 | icecube_5200_LOWBOOT08_config \ | 220 | icecube_5200_LOWBOOT08_config \ |
221 | icecube_5200_DDR_config \ | 221 | icecube_5200_DDR_config \ |
222 | icecube_5200_DDR_LOWBOOT_config \ | 222 | icecube_5200_DDR_LOWBOOT_config \ |
223 | icecube_5200_DDR_LOWBOOT08_config \ | 223 | icecube_5200_DDR_LOWBOOT08_config \ |
224 | icecube_5100_config: unconfig | 224 | icecube_5100_config: unconfig |
225 | @ >include/config.h | 225 | @ >include/config.h |
226 | @[ -z "$(findstring LOWBOOT_,$@)" ] || \ | 226 | @[ -z "$(findstring LOWBOOT_,$@)" ] || \ |
227 | { if [ "$(findstring DDR,$@)" ] ; \ | 227 | { if [ "$(findstring DDR,$@)" ] ; \ |
228 | then echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \ | 228 | then echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \ |
229 | else echo "TEXT_BASE = 0xFF000000" >board/icecube/config.tmp ; \ | 229 | else echo "TEXT_BASE = 0xFF000000" >board/icecube/config.tmp ; \ |
230 | fi ; \ | 230 | fi ; \ |
231 | echo "... with LOWBOOT configuration" ; \ | 231 | echo "... with LOWBOOT configuration" ; \ |
232 | } | 232 | } |
233 | @[ -z "$(findstring LOWBOOT08,$@)" ] || \ | 233 | @[ -z "$(findstring LOWBOOT08,$@)" ] || \ |
234 | { echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \ | 234 | { echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \ |
235 | echo "... with 8 MB flash only" ; \ | 235 | echo "... with 8 MB flash only" ; \ |
236 | echo "... with LOWBOOT configuration" ; \ | 236 | echo "... with LOWBOOT configuration" ; \ |
237 | } | 237 | } |
238 | @[ -z "$(findstring DDR,$@)" ] || \ | 238 | @[ -z "$(findstring DDR,$@)" ] || \ |
239 | { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \ | 239 | { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \ |
240 | echo "... DDR memory revision" ; \ | 240 | echo "... DDR memory revision" ; \ |
241 | } | 241 | } |
242 | @[ -z "$(findstring 5200,$@)" ] || \ | 242 | @[ -z "$(findstring 5200,$@)" ] || \ |
243 | { echo "#define CONFIG_MPC5200" >>include/config.h ; \ | 243 | { echo "#define CONFIG_MPC5200" >>include/config.h ; \ |
244 | echo "... with MPC5200 processor" ; \ | 244 | echo "... with MPC5200 processor" ; \ |
245 | } | 245 | } |
246 | @[ -z "$(findstring 5100,$@)" ] || \ | 246 | @[ -z "$(findstring 5100,$@)" ] || \ |
247 | { echo "#define CONFIG_MGT5100" >>include/config.h ; \ | 247 | { echo "#define CONFIG_MGT5100" >>include/config.h ; \ |
248 | echo "... with MGT5100 processor" ; \ | 248 | echo "... with MGT5100 processor" ; \ |
249 | } | 249 | } |
250 | @./mkconfig -a IceCube ppc mpc5xxx icecube | 250 | @./mkconfig -a IceCube ppc mpc5xxx icecube |
251 | 251 | ||
252 | MINI5200_config \ | 252 | MINI5200_config \ |
253 | EVAL5200_config \ | 253 | EVAL5200_config \ |
254 | TOP5200_config: unconfig | 254 | TOP5200_config: unconfig |
255 | @ echo "#define CONFIG_$(@:_config=) 1" >include/config.h | 255 | @ echo "#define CONFIG_$(@:_config=) 1" >include/config.h |
256 | @./mkconfig -a TOP5200 ppc mpc5xxx top5200 emk | 256 | @./mkconfig -a TOP5200 ppc mpc5xxx top5200 emk |
257 | 257 | ||
258 | PM520_config: unconfig | 258 | PM520_config: unconfig |
259 | @./mkconfig $(@:_config=) ppc mpc5xxx pm520 | 259 | @./mkconfig $(@:_config=) ppc mpc5xxx pm520 |
260 | 260 | ||
261 | ######################################################################### | 261 | ######################################################################### |
262 | ## MPC8xx Systems | 262 | ## MPC8xx Systems |
263 | ######################################################################### | 263 | ######################################################################### |
264 | 264 | ||
265 | AdderII_config: unconfig | 265 | AdderII_config: unconfig |
266 | @./mkconfig $(@:_config=) ppc mpc8xx adderII | 266 | @./mkconfig $(@:_config=) ppc mpc8xx adderII |
267 | 267 | ||
268 | ADS860_config \ | 268 | ADS860_config \ |
269 | FADS823_config \ | 269 | FADS823_config \ |
270 | FADS850SAR_config \ | 270 | FADS850SAR_config \ |
271 | MPC86xADS_config \ | 271 | MPC86xADS_config \ |
272 | MPC885ADS_config \ | 272 | MPC885ADS_config \ |
273 | FADS860T_config: unconfig | 273 | FADS860T_config: unconfig |
274 | @./mkconfig $(@:_config=) ppc mpc8xx fads | 274 | @./mkconfig $(@:_config=) ppc mpc8xx fads |
275 | 275 | ||
276 | AMX860_config : unconfig | 276 | AMX860_config : unconfig |
277 | @./mkconfig $(@:_config=) ppc mpc8xx amx860 westel | 277 | @./mkconfig $(@:_config=) ppc mpc8xx amx860 westel |
278 | 278 | ||
279 | c2mon_config: unconfig | 279 | c2mon_config: unconfig |
280 | @./mkconfig $(@:_config=) ppc mpc8xx c2mon | 280 | @./mkconfig $(@:_config=) ppc mpc8xx c2mon |
281 | 281 | ||
282 | CCM_config: unconfig | 282 | CCM_config: unconfig |
283 | @./mkconfig $(@:_config=) ppc mpc8xx CCM siemens | 283 | @./mkconfig $(@:_config=) ppc mpc8xx CCM siemens |
284 | 284 | ||
285 | cogent_mpc8xx_config: unconfig | 285 | cogent_mpc8xx_config: unconfig |
286 | @./mkconfig $(@:_config=) ppc mpc8xx cogent | 286 | @./mkconfig $(@:_config=) ppc mpc8xx cogent |
287 | 287 | ||
288 | ELPT860_config: unconfig | 288 | ELPT860_config: unconfig |
289 | @./mkconfig $(@:_config=) ppc mpc8xx elpt860 LEOX | 289 | @./mkconfig $(@:_config=) ppc mpc8xx elpt860 LEOX |
290 | 290 | ||
291 | ESTEEM192E_config: unconfig | 291 | ESTEEM192E_config: unconfig |
292 | @./mkconfig $(@:_config=) ppc mpc8xx esteem192e | 292 | @./mkconfig $(@:_config=) ppc mpc8xx esteem192e |
293 | 293 | ||
294 | ETX094_config : unconfig | 294 | ETX094_config : unconfig |
295 | @./mkconfig $(@:_config=) ppc mpc8xx etx094 | 295 | @./mkconfig $(@:_config=) ppc mpc8xx etx094 |
296 | 296 | ||
297 | FLAGADM_config: unconfig | 297 | FLAGADM_config: unconfig |
298 | @./mkconfig $(@:_config=) ppc mpc8xx flagadm | 298 | @./mkconfig $(@:_config=) ppc mpc8xx flagadm |
299 | 299 | ||
300 | xtract_GEN860T = $(subst _SC,,$(subst _config,,$1)) | 300 | xtract_GEN860T = $(subst _SC,,$(subst _config,,$1)) |
301 | 301 | ||
302 | GEN860T_SC_config \ | 302 | GEN860T_SC_config \ |
303 | GEN860T_config: unconfig | 303 | GEN860T_config: unconfig |
304 | @ >include/config.h | 304 | @ >include/config.h |
305 | @[ -z "$(findstring _SC,$@)" ] || \ | 305 | @[ -z "$(findstring _SC,$@)" ] || \ |
306 | { echo "#define CONFIG_SC" >>include/config.h ; \ | 306 | { echo "#define CONFIG_SC" >>include/config.h ; \ |
307 | echo "With reduced H/W feature set (SC)..." ; \ | 307 | echo "With reduced H/W feature set (SC)..." ; \ |
308 | } | 308 | } |
309 | @./mkconfig -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t | 309 | @./mkconfig -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t |
310 | 310 | ||
311 | GENIETV_config: unconfig | 311 | GENIETV_config: unconfig |
312 | @./mkconfig $(@:_config=) ppc mpc8xx genietv | 312 | @./mkconfig $(@:_config=) ppc mpc8xx genietv |
313 | 313 | ||
314 | GTH_config: unconfig | 314 | GTH_config: unconfig |
315 | @./mkconfig $(@:_config=) ppc mpc8xx gth | 315 | @./mkconfig $(@:_config=) ppc mpc8xx gth |
316 | 316 | ||
317 | hermes_config : unconfig | 317 | hermes_config : unconfig |
318 | @./mkconfig $(@:_config=) ppc mpc8xx hermes | 318 | @./mkconfig $(@:_config=) ppc mpc8xx hermes |
319 | 319 | ||
320 | HMI10_config : unconfig | 320 | HMI10_config : unconfig |
321 | @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx | 321 | @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx |
322 | 322 | ||
323 | IAD210_config: unconfig | 323 | IAD210_config: unconfig |
324 | @./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens | 324 | @./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens |
325 | 325 | ||
326 | xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1)) | 326 | xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1)) |
327 | 327 | ||
328 | ICU862_100MHz_config \ | 328 | ICU862_100MHz_config \ |
329 | ICU862_config: unconfig | 329 | ICU862_config: unconfig |
330 | @ >include/config.h | 330 | @ >include/config.h |
331 | @[ -z "$(findstring _100MHz,$@)" ] || \ | 331 | @[ -z "$(findstring _100MHz,$@)" ] || \ |
332 | { echo "#define CONFIG_100MHz" >>include/config.h ; \ | 332 | { echo "#define CONFIG_100MHz" >>include/config.h ; \ |
333 | echo "... with 100MHz system clock" ; \ | 333 | echo "... with 100MHz system clock" ; \ |
334 | } | 334 | } |
335 | @./mkconfig -a $(call xtract_ICU862,$@) ppc mpc8xx icu862 | 335 | @./mkconfig -a $(call xtract_ICU862,$@) ppc mpc8xx icu862 |
336 | 336 | ||
337 | IP860_config : unconfig | 337 | IP860_config : unconfig |
338 | @./mkconfig $(@:_config=) ppc mpc8xx ip860 | 338 | @./mkconfig $(@:_config=) ppc mpc8xx ip860 |
339 | 339 | ||
340 | IVML24_256_config \ | 340 | IVML24_256_config \ |
341 | IVML24_128_config \ | 341 | IVML24_128_config \ |
342 | IVML24_config: unconfig | 342 | IVML24_config: unconfig |
343 | @ >include/config.h | 343 | @ >include/config.h |
344 | @[ -z "$(findstring IVML24_config,$@)" ] || \ | 344 | @[ -z "$(findstring IVML24_config,$@)" ] || \ |
345 | { echo "#define CONFIG_IVML24_16M" >>include/config.h ; \ | 345 | { echo "#define CONFIG_IVML24_16M" >>include/config.h ; \ |
346 | } | 346 | } |
347 | @[ -z "$(findstring IVML24_128_config,$@)" ] || \ | 347 | @[ -z "$(findstring IVML24_128_config,$@)" ] || \ |
348 | { echo "#define CONFIG_IVML24_32M" >>include/config.h ; \ | 348 | { echo "#define CONFIG_IVML24_32M" >>include/config.h ; \ |
349 | } | 349 | } |
350 | @[ -z "$(findstring IVML24_256_config,$@)" ] || \ | 350 | @[ -z "$(findstring IVML24_256_config,$@)" ] || \ |
351 | { echo "#define CONFIG_IVML24_64M" >>include/config.h ; \ | 351 | { echo "#define CONFIG_IVML24_64M" >>include/config.h ; \ |
352 | } | 352 | } |
353 | @./mkconfig -a IVML24 ppc mpc8xx ivm | 353 | @./mkconfig -a IVML24 ppc mpc8xx ivm |
354 | 354 | ||
355 | IVMS8_256_config \ | 355 | IVMS8_256_config \ |
356 | IVMS8_128_config \ | 356 | IVMS8_128_config \ |
357 | IVMS8_config: unconfig | 357 | IVMS8_config: unconfig |
358 | @ >include/config.h | 358 | @ >include/config.h |
359 | @[ -z "$(findstring IVMS8_config,$@)" ] || \ | 359 | @[ -z "$(findstring IVMS8_config,$@)" ] || \ |
360 | { echo "#define CONFIG_IVMS8_16M" >>include/config.h ; \ | 360 | { echo "#define CONFIG_IVMS8_16M" >>include/config.h ; \ |
361 | } | 361 | } |
362 | @[ -z "$(findstring IVMS8_128_config,$@)" ] || \ | 362 | @[ -z "$(findstring IVMS8_128_config,$@)" ] || \ |
363 | { echo "#define CONFIG_IVMS8_32M" >>include/config.h ; \ | 363 | { echo "#define CONFIG_IVMS8_32M" >>include/config.h ; \ |
364 | } | 364 | } |
365 | @[ -z "$(findstring IVMS8_256_config,$@)" ] || \ | 365 | @[ -z "$(findstring IVMS8_256_config,$@)" ] || \ |
366 | { echo "#define CONFIG_IVMS8_64M" >>include/config.h ; \ | 366 | { echo "#define CONFIG_IVMS8_64M" >>include/config.h ; \ |
367 | } | 367 | } |
368 | @./mkconfig -a IVMS8 ppc mpc8xx ivm | 368 | @./mkconfig -a IVMS8 ppc mpc8xx ivm |
369 | 369 | ||
370 | KUP4K_config : unconfig | 370 | KUP4K_config : unconfig |
371 | @./mkconfig $(@:_config=) ppc mpc8xx kup4k kup | 371 | @./mkconfig $(@:_config=) ppc mpc8xx kup4k kup |
372 | 372 | ||
373 | KUP4X_config : unconfig | 373 | KUP4X_config : unconfig |
374 | @./mkconfig $(@:_config=) ppc mpc8xx kup4x kup | 374 | @./mkconfig $(@:_config=) ppc mpc8xx kup4x kup |
375 | 375 | ||
376 | LANTEC_config : unconfig | 376 | LANTEC_config : unconfig |
377 | @./mkconfig $(@:_config=) ppc mpc8xx lantec | 377 | @./mkconfig $(@:_config=) ppc mpc8xx lantec |
378 | 378 | ||
379 | lwmon_config: unconfig | 379 | lwmon_config: unconfig |
380 | @./mkconfig $(@:_config=) ppc mpc8xx lwmon | 380 | @./mkconfig $(@:_config=) ppc mpc8xx lwmon |
381 | 381 | ||
382 | MBX_config \ | 382 | MBX_config \ |
383 | MBX860T_config: unconfig | 383 | MBX860T_config: unconfig |
384 | @./mkconfig $(@:_config=) ppc mpc8xx mbx8xx | 384 | @./mkconfig $(@:_config=) ppc mpc8xx mbx8xx |
385 | 385 | ||
386 | MHPC_config: unconfig | 386 | MHPC_config: unconfig |
387 | @./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec | 387 | @./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec |
388 | 388 | ||
389 | MVS1_config : unconfig | 389 | MVS1_config : unconfig |
390 | @./mkconfig $(@:_config=) ppc mpc8xx mvs1 | 390 | @./mkconfig $(@:_config=) ppc mpc8xx mvs1 |
391 | 391 | ||
392 | xtract_NETVIA = $(subst _V2,,$(subst _config,,$1)) | 392 | xtract_NETVIA = $(subst _V2,,$(subst _config,,$1)) |
393 | 393 | ||
394 | NETVIA_V2_config \ | 394 | NETVIA_V2_config \ |
395 | NETVIA_config: unconfig | 395 | NETVIA_config: unconfig |
396 | @ >include/config.h | 396 | @ >include/config.h |
397 | @[ -z "$(findstring NETVIA_config,$@)" ] || \ | 397 | @[ -z "$(findstring NETVIA_config,$@)" ] || \ |
398 | { echo "#define CONFIG_NETVIA_VERSION 1" >>include/config.h ; \ | 398 | { echo "#define CONFIG_NETVIA_VERSION 1" >>include/config.h ; \ |
399 | echo "... Version 1" ; \ | 399 | echo "... Version 1" ; \ |
400 | } | 400 | } |
401 | @[ -z "$(findstring NETVIA_V2_config,$@)" ] || \ | 401 | @[ -z "$(findstring NETVIA_V2_config,$@)" ] || \ |
402 | { echo "#define CONFIG_NETVIA_VERSION 2" >>include/config.h ; \ | 402 | { echo "#define CONFIG_NETVIA_VERSION 2" >>include/config.h ; \ |
403 | echo "... Version 2" ; \ | 403 | echo "... Version 2" ; \ |
404 | } | 404 | } |
405 | @./mkconfig -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia | 405 | @./mkconfig -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia |
406 | 406 | ||
407 | xtract_NETPHONE = $(subst _V2,,$(subst _config,,$1)) | 407 | xtract_NETPHONE = $(subst _V2,,$(subst _config,,$1)) |
408 | 408 | ||
409 | NETPHONE_V2_config \ | 409 | NETPHONE_V2_config \ |
410 | NETPHONE_config: unconfig | 410 | NETPHONE_config: unconfig |
411 | @ >include/config.h | 411 | @ >include/config.h |
412 | @[ -z "$(findstring NETPHONE_config,$@)" ] || \ | 412 | @[ -z "$(findstring NETPHONE_config,$@)" ] || \ |
413 | { echo "#define CONFIG_NETPHONE_VERSION 1" >>include/config.h ; \ | 413 | { echo "#define CONFIG_NETPHONE_VERSION 1" >>include/config.h ; \ |
414 | } | 414 | } |
415 | @[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \ | 415 | @[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \ |
416 | { echo "#define CONFIG_NETPHONE_VERSION 2" >>include/config.h ; \ | 416 | { echo "#define CONFIG_NETPHONE_VERSION 2" >>include/config.h ; \ |
417 | } | 417 | } |
418 | @./mkconfig -a $(call xtract_NETPHONE,$@) ppc mpc8xx netphone | 418 | @./mkconfig -a $(call xtract_NETPHONE,$@) ppc mpc8xx netphone |
419 | 419 | ||
420 | xtract_NETTA = $(subst _SWAPHOOK,,$(subst _6412,,$(subst _ISDN,,$(subst _config,,$1)))) | 420 | xtract_NETTA = $(subst _SWAPHOOK,,$(subst _6412,,$(subst _ISDN,,$(subst _config,,$1)))) |
421 | 421 | ||
422 | NETTA_ISDN_6412_SWAPHOOK_config \ | 422 | NETTA_ISDN_6412_SWAPHOOK_config \ |
423 | NETTA_ISDN_SWAPHOOK_config \ | 423 | NETTA_ISDN_SWAPHOOK_config \ |
424 | NETTA_6412_SWAPHOOK_config \ | 424 | NETTA_6412_SWAPHOOK_config \ |
425 | NETTA_SWAPHOOK_config \ | 425 | NETTA_SWAPHOOK_config \ |
426 | NETTA_ISDN_6412_config \ | 426 | NETTA_ISDN_6412_config \ |
427 | NETTA_ISDN_config \ | 427 | NETTA_ISDN_config \ |
428 | NETTA_6412_config \ | 428 | NETTA_6412_config \ |
429 | NETTA_config: unconfig | 429 | NETTA_config: unconfig |
430 | @ >include/config.h | 430 | @ >include/config.h |
431 | @[ -z "$(findstring ISDN_,$@)" ] || \ | 431 | @[ -z "$(findstring ISDN_,$@)" ] || \ |
432 | { echo "#define CONFIG_NETTA_ISDN 1" >>include/config.h ; \ | 432 | { echo "#define CONFIG_NETTA_ISDN 1" >>include/config.h ; \ |
433 | } | 433 | } |
434 | @[ -n "$(findstring ISDN_,$@)" ] || \ | 434 | @[ -n "$(findstring ISDN_,$@)" ] || \ |
435 | { echo "#undef CONFIG_NETTA_ISDN" >>include/config.h ; \ | 435 | { echo "#undef CONFIG_NETTA_ISDN" >>include/config.h ; \ |
436 | } | 436 | } |
437 | @[ -z "$(findstring 6412_,$@)" ] || \ | 437 | @[ -z "$(findstring 6412_,$@)" ] || \ |
438 | { echo "#define CONFIG_NETTA_6412 1" >>include/config.h ; \ | 438 | { echo "#define CONFIG_NETTA_6412 1" >>include/config.h ; \ |
439 | } | 439 | } |
440 | @[ -n "$(findstring 6412_,$@)" ] || \ | 440 | @[ -n "$(findstring 6412_,$@)" ] || \ |
441 | { echo "#undef CONFIG_NETTA_6412" >>include/config.h ; \ | 441 | { echo "#undef CONFIG_NETTA_6412" >>include/config.h ; \ |
442 | } | 442 | } |
443 | @[ -z "$(findstring SWAPHOOK_,$@)" ] || \ | 443 | @[ -z "$(findstring SWAPHOOK_,$@)" ] || \ |
444 | { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>include/config.h ; \ | 444 | { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>include/config.h ; \ |
445 | } | 445 | } |
446 | @[ -n "$(findstring SWAPHOOK_,$@)" ] || \ | 446 | @[ -n "$(findstring SWAPHOOK_,$@)" ] || \ |
447 | { echo "#undef CONFIG_NETTA_SWAPHOOK" >>include/config.h ; \ | 447 | { echo "#undef CONFIG_NETTA_SWAPHOOK" >>include/config.h ; \ |
448 | } | 448 | } |
449 | @./mkconfig -a $(call xtract_NETTA,$@) ppc mpc8xx netta | 449 | @./mkconfig -a $(call xtract_NETTA,$@) ppc mpc8xx netta |
450 | 450 | ||
451 | xtract_NETTA2 = $(subst _V2,,$(subst _config,,$1)) | 451 | xtract_NETTA2 = $(subst _V2,,$(subst _config,,$1)) |
452 | 452 | ||
453 | NETTA2_V2_config \ | 453 | NETTA2_V2_config \ |
454 | NETTA2_config: unconfig | 454 | NETTA2_config: unconfig |
455 | @ >include/config.h | 455 | @ >include/config.h |
456 | @[ -z "$(findstring NETTA2_config,$@)" ] || \ | 456 | @[ -z "$(findstring NETTA2_config,$@)" ] || \ |
457 | { echo "#define CONFIG_NETTA2_VERSION 1" >>include/config.h ; \ | 457 | { echo "#define CONFIG_NETTA2_VERSION 1" >>include/config.h ; \ |
458 | } | 458 | } |
459 | @[ -z "$(findstring NETTA2_V2_config,$@)" ] || \ | 459 | @[ -z "$(findstring NETTA2_V2_config,$@)" ] || \ |
460 | { echo "#define CONFIG_NETTA2_VERSION 2" >>include/config.h ; \ | 460 | { echo "#define CONFIG_NETTA2_VERSION 2" >>include/config.h ; \ |
461 | } | 461 | } |
462 | @./mkconfig -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2 | 462 | @./mkconfig -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2 |
463 | 463 | ||
464 | NX823_config: unconfig | 464 | NX823_config: unconfig |
465 | @./mkconfig $(@:_config=) ppc mpc8xx nx823 | 465 | @./mkconfig $(@:_config=) ppc mpc8xx nx823 |
466 | 466 | ||
467 | pcu_e_config: unconfig | 467 | pcu_e_config: unconfig |
468 | @./mkconfig $(@:_config=) ppc mpc8xx pcu_e siemens | 468 | @./mkconfig $(@:_config=) ppc mpc8xx pcu_e siemens |
469 | 469 | ||
470 | QS850_config: unconfig | 470 | QS850_config: unconfig |
471 | @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc | 471 | @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc |
472 | 472 | ||
473 | QS823_config: unconfig | 473 | QS823_config: unconfig |
474 | @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc | 474 | @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc |
475 | 475 | ||
476 | QS860T_config: unconfig | 476 | QS860T_config: unconfig |
477 | @./mkconfig $(@:_config=) ppc mpc8xx qs860t snmc | 477 | @./mkconfig $(@:_config=) ppc mpc8xx qs860t snmc |
478 | 478 | ||
479 | R360MPI_config: unconfig | 479 | R360MPI_config: unconfig |
480 | @./mkconfig $(@:_config=) ppc mpc8xx r360mpi | 480 | @./mkconfig $(@:_config=) ppc mpc8xx r360mpi |
481 | 481 | ||
482 | RBC823_config: unconfig | 482 | RBC823_config: unconfig |
483 | @./mkconfig $(@:_config=) ppc mpc8xx rbc823 | 483 | @./mkconfig $(@:_config=) ppc mpc8xx rbc823 |
484 | 484 | ||
485 | RPXClassic_config: unconfig | 485 | RPXClassic_config: unconfig |
486 | @./mkconfig $(@:_config=) ppc mpc8xx RPXClassic | 486 | @./mkconfig $(@:_config=) ppc mpc8xx RPXClassic |
487 | 487 | ||
488 | RPXlite_config: unconfig | 488 | RPXlite_config: unconfig |
489 | @./mkconfig $(@:_config=) ppc mpc8xx RPXlite | 489 | @./mkconfig $(@:_config=) ppc mpc8xx RPXlite |
490 | 490 | ||
491 | rmu_config: unconfig | 491 | rmu_config: unconfig |
492 | @./mkconfig $(@:_config=) ppc mpc8xx rmu | 492 | @./mkconfig $(@:_config=) ppc mpc8xx rmu |
493 | 493 | ||
494 | RRvision_config: unconfig | 494 | RRvision_config: unconfig |
495 | @./mkconfig $(@:_config=) ppc mpc8xx RRvision | 495 | @./mkconfig $(@:_config=) ppc mpc8xx RRvision |
496 | 496 | ||
497 | RRvision_LCD_config: unconfig | 497 | RRvision_LCD_config: unconfig |
498 | @echo "#define CONFIG_LCD" >include/config.h | 498 | @echo "#define CONFIG_LCD" >include/config.h |
499 | @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h | 499 | @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h |
500 | @./mkconfig -a RRvision ppc mpc8xx RRvision | 500 | @./mkconfig -a RRvision ppc mpc8xx RRvision |
501 | 501 | ||
502 | SM850_config : unconfig | 502 | SM850_config : unconfig |
503 | @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx | 503 | @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx |
504 | 504 | ||
505 | SPD823TS_config: unconfig | 505 | SPD823TS_config: unconfig |
506 | @./mkconfig $(@:_config=) ppc mpc8xx spd8xx | 506 | @./mkconfig $(@:_config=) ppc mpc8xx spd8xx |
507 | 507 | ||
508 | svm_sc8xx_config: unconfig | 508 | svm_sc8xx_config: unconfig |
509 | @ >include/config.h | 509 | @ >include/config.h |
510 | @./mkconfig $(@:_config=) ppc mpc8xx svm_sc8xx | 510 | @./mkconfig $(@:_config=) ppc mpc8xx svm_sc8xx |
511 | 511 | ||
512 | SXNI855T_config: unconfig | 512 | SXNI855T_config: unconfig |
513 | @./mkconfig $(@:_config=) ppc mpc8xx sixnet | 513 | @./mkconfig $(@:_config=) ppc mpc8xx sixnet |
514 | 514 | ||
515 | # EMK MPC8xx based modules | 515 | # EMK MPC8xx based modules |
516 | TOP860_config: unconfig | 516 | TOP860_config: unconfig |
517 | @./mkconfig $(@:_config=) ppc mpc8xx top860 emk | 517 | @./mkconfig $(@:_config=) ppc mpc8xx top860 emk |
518 | 518 | ||
519 | # Play some tricks for configuration selection | 519 | # Play some tricks for configuration selection |
520 | # Only 855 and 860 boards may come with FEC | 520 | # Only 855 and 860 boards may come with FEC |
521 | # and only 823 boards may have LCD support | 521 | # and only 823 boards may have LCD support |
522 | xtract_8xx = $(subst _LCD,,$(subst _config,,$1)) | 522 | xtract_8xx = $(subst _LCD,,$(subst _config,,$1)) |
523 | 523 | ||
524 | FPS850L_config \ | 524 | FPS850L_config \ |
525 | FPS860L_config \ | 525 | FPS860L_config \ |
526 | NSCU_config \ | 526 | NSCU_config \ |
527 | TQM823L_config \ | 527 | TQM823L_config \ |
528 | TQM823L_LCD_config \ | 528 | TQM823L_LCD_config \ |
529 | TQM850L_config \ | 529 | TQM850L_config \ |
530 | TQM855L_config \ | 530 | TQM855L_config \ |
531 | TQM860L_config \ | 531 | TQM860L_config \ |
532 | TQM862L_config \ | 532 | TQM862L_config \ |
533 | TQM823M_config \ | 533 | TQM823M_config \ |
534 | TQM850M_config \ | 534 | TQM850M_config \ |
535 | TQM855M_config \ | 535 | TQM855M_config \ |
536 | TQM860M_config \ | 536 | TQM860M_config \ |
537 | TQM862M_config \ | 537 | TQM862M_config \ |
538 | TQM866M_config: unconfig | 538 | TQM866M_config: unconfig |
539 | @ >include/config.h | 539 | @ >include/config.h |
540 | @[ -z "$(findstring _LCD,$@)" ] || \ | 540 | @[ -z "$(findstring _LCD,$@)" ] || \ |
541 | { echo "#define CONFIG_LCD" >>include/config.h ; \ | 541 | { echo "#define CONFIG_LCD" >>include/config.h ; \ |
542 | echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \ | 542 | echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \ |
543 | echo "... with LCD display" ; \ | 543 | echo "... with LCD display" ; \ |
544 | } | 544 | } |
545 | @./mkconfig -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx | 545 | @./mkconfig -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx |
546 | 546 | ||
547 | TTTech_config: unconfig | 547 | TTTech_config: unconfig |
548 | @echo "#define CONFIG_LCD" >include/config.h | 548 | @echo "#define CONFIG_LCD" >include/config.h |
549 | @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h | 549 | @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h |
550 | @./mkconfig -a TQM823L ppc mpc8xx tqm8xx | 550 | @./mkconfig -a TQM823L ppc mpc8xx tqm8xx |
551 | 551 | ||
552 | v37_config: unconfig | 552 | v37_config: unconfig |
553 | @echo "#define CONFIG_LCD" >include/config.h | 553 | @echo "#define CONFIG_LCD" >include/config.h |
554 | @echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h | 554 | @echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h |
555 | @./mkconfig $(@:_config=) ppc mpc8xx v37 | 555 | @./mkconfig $(@:_config=) ppc mpc8xx v37 |
556 | 556 | ||
557 | wtk_config: unconfig | 557 | wtk_config: unconfig |
558 | @echo "#define CONFIG_LCD" >include/config.h | 558 | @echo "#define CONFIG_LCD" >include/config.h |
559 | @echo "#define CONFIG_SHARP_LQ065T9DR51U" >>include/config.h | 559 | @echo "#define CONFIG_SHARP_LQ065T9DR51U" >>include/config.h |
560 | @./mkconfig -a TQM823L ppc mpc8xx tqm8xx | 560 | @./mkconfig -a TQM823L ppc mpc8xx tqm8xx |
561 | 561 | ||
562 | ######################################################################### | 562 | ######################################################################### |
563 | ## PPC4xx Systems | 563 | ## PPC4xx Systems |
564 | ######################################################################### | 564 | ######################################################################### |
565 | xtract_4xx = $(subst _MODEL_BA,,$(subst _MODEL_ME,,$(subst _MODEL_HI,,$(subst _config,,$1)))) | 565 | xtract_4xx = $(subst _MODEL_BA,,$(subst _MODEL_ME,,$(subst _MODEL_HI,,$(subst _config,,$1)))) |
566 | 566 | ||
567 | ADCIOP_config: unconfig | 567 | ADCIOP_config: unconfig |
568 | @./mkconfig $(@:_config=) ppc ppc4xx adciop esd | 568 | @./mkconfig $(@:_config=) ppc ppc4xx adciop esd |
569 | 569 | ||
570 | AR405_config: unconfig | 570 | AR405_config: unconfig |
571 | @./mkconfig $(@:_config=) ppc ppc4xx ar405 esd | 571 | @./mkconfig $(@:_config=) ppc ppc4xx ar405 esd |
572 | 572 | ||
573 | ASH405_config: unconfig | 573 | ASH405_config: unconfig |
574 | @./mkconfig $(@:_config=) ppc ppc4xx ash405 esd | 574 | @./mkconfig $(@:_config=) ppc ppc4xx ash405 esd |
575 | 575 | ||
576 | BUBINGA405EP_config: unconfig | 576 | BUBINGA405EP_config: unconfig |
577 | @./mkconfig $(@:_config=) ppc ppc4xx bubinga405ep | 577 | @./mkconfig $(@:_config=) ppc ppc4xx bubinga405ep |
578 | 578 | ||
579 | CANBT_config: unconfig | 579 | CANBT_config: unconfig |
580 | @./mkconfig $(@:_config=) ppc ppc4xx canbt esd | 580 | @./mkconfig $(@:_config=) ppc ppc4xx canbt esd |
581 | 581 | ||
582 | CATcenter_config: unconfig | 582 | CATcenter_config: unconfig |
583 | @ echo "/* CATcenter uses PPChameleon Model ME */" > include/config.h | 583 | @ echo "/* CATcenter uses PPChameleon Model ME */" > include/config.h |
584 | @ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >> include/config.h | 584 | @ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >> include/config.h |
585 | @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave | 585 | @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave |
586 | 586 | ||
587 | CPCI405_config \ | 587 | CPCI405_config \ |
588 | CPCI4052_config \ | 588 | CPCI4052_config \ |
589 | CPCI405AB_config: unconfig | 589 | CPCI405AB_config: unconfig |
590 | @./mkconfig $(@:_config=) ppc ppc4xx cpci405 esd | 590 | @./mkconfig $(@:_config=) ppc ppc4xx cpci405 esd |
591 | @echo "BOARD_REVISION = $(@:_config=)" >>include/config.mk | 591 | @echo "BOARD_REVISION = $(@:_config=)" >>include/config.mk |
592 | 592 | ||
593 | CPCI440_config: unconfig | 593 | CPCI440_config: unconfig |
594 | @./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd | 594 | @./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd |
595 | 595 | ||
596 | CPCIISER4_config: unconfig | 596 | CPCIISER4_config: unconfig |
597 | @./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd | 597 | @./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd |
598 | 598 | ||
599 | CRAYL1_config: unconfig | 599 | CRAYL1_config: unconfig |
600 | @./mkconfig $(@:_config=) ppc ppc4xx L1 cray | 600 | @./mkconfig $(@:_config=) ppc ppc4xx L1 cray |
601 | 601 | ||
602 | csb272_config: unconfig | 602 | csb272_config: unconfig |
603 | @./mkconfig $(@:_config=) ppc ppc4xx csb272 | 603 | @./mkconfig $(@:_config=) ppc ppc4xx csb272 |
604 | 604 | ||
605 | csb472_config: unconfig | 605 | csb472_config: unconfig |
606 | @./mkconfig $(@:_config=) ppc ppc4xx csb472 | 606 | @./mkconfig $(@:_config=) ppc ppc4xx csb472 |
607 | 607 | ||
608 | DASA_SIM_config: unconfig | 608 | DASA_SIM_config: unconfig |
609 | @./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd | 609 | @./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd |
610 | 610 | ||
611 | DP405_config: unconfig | 611 | DP405_config: unconfig |
612 | @./mkconfig $(@:_config=) ppc ppc4xx dp405 esd | 612 | @./mkconfig $(@:_config=) ppc ppc4xx dp405 esd |
613 | 613 | ||
614 | DU405_config: unconfig | 614 | DU405_config: unconfig |
615 | @./mkconfig $(@:_config=) ppc ppc4xx du405 esd | 615 | @./mkconfig $(@:_config=) ppc ppc4xx du405 esd |
616 | 616 | ||
617 | EBONY_config: unconfig | 617 | EBONY_config: unconfig |
618 | @./mkconfig $(@:_config=) ppc ppc4xx ebony | 618 | @./mkconfig $(@:_config=) ppc ppc4xx ebony |
619 | 619 | ||
620 | ERIC_config: unconfig | 620 | ERIC_config: unconfig |
621 | @./mkconfig $(@:_config=) ppc ppc4xx eric | 621 | @./mkconfig $(@:_config=) ppc ppc4xx eric |
622 | 622 | ||
623 | EXBITGEN_config: unconfig | 623 | EXBITGEN_config: unconfig |
624 | @./mkconfig $(@:_config=) ppc ppc4xx exbitgen | 624 | @./mkconfig $(@:_config=) ppc ppc4xx exbitgen |
625 | 625 | ||
626 | HUB405_config: unconfig | 626 | HUB405_config: unconfig |
627 | @./mkconfig $(@:_config=) ppc ppc4xx hub405 esd | 627 | @./mkconfig $(@:_config=) ppc ppc4xx hub405 esd |
628 | 628 | ||
629 | JSE_config: unconfig | 629 | JSE_config: unconfig |
630 | @./mkconfig $(@:_config=) ppc ppc4xx jse | 630 | @./mkconfig $(@:_config=) ppc ppc4xx jse |
631 | 631 | ||
632 | MIP405_config: unconfig | 632 | MIP405_config: unconfig |
633 | @./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl | 633 | @./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl |
634 | 634 | ||
635 | MIP405T_config: unconfig | 635 | MIP405T_config: unconfig |
636 | @echo "#define CONFIG_MIP405T" >include/config.h | 636 | @echo "#define CONFIG_MIP405T" >include/config.h |
637 | @echo "Enable subset config for MIP405T" | 637 | @echo "Enable subset config for MIP405T" |
638 | @./mkconfig -a MIP405 ppc ppc4xx mip405 mpl | 638 | @./mkconfig -a MIP405 ppc ppc4xx mip405 mpl |
639 | 639 | ||
640 | ML2_config: unconfig | 640 | ML2_config: unconfig |
641 | @./mkconfig $(@:_config=) ppc ppc4xx ml2 | 641 | @./mkconfig $(@:_config=) ppc ppc4xx ml2 |
642 | 642 | ||
643 | ml300_config: unconfig | 643 | ml300_config: unconfig |
644 | @./mkconfig $(@:_config=) ppc ppc4xx ml300 xilinx | 644 | @./mkconfig $(@:_config=) ppc ppc4xx ml300 xilinx |
645 | 645 | ||
646 | OCOTEA_config: unconfig | 646 | OCOTEA_config: unconfig |
647 | @./mkconfig $(@:_config=) ppc ppc4xx ocotea | 647 | @./mkconfig $(@:_config=) ppc ppc4xx ocotea |
648 | 648 | ||
649 | OCRTC_config \ | 649 | OCRTC_config \ |
650 | ORSG_config: unconfig | 650 | ORSG_config: unconfig |
651 | @./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd | 651 | @./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd |
652 | 652 | ||
653 | PCI405_config: unconfig | 653 | PCI405_config: unconfig |
654 | @./mkconfig $(@:_config=) ppc ppc4xx pci405 esd | 654 | @./mkconfig $(@:_config=) ppc ppc4xx pci405 esd |
655 | 655 | ||
656 | PIP405_config: unconfig | 656 | PIP405_config: unconfig |
657 | @./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl | 657 | @./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl |
658 | 658 | ||
659 | PLU405_config: unconfig | 659 | PLU405_config: unconfig |
660 | @./mkconfig $(@:_config=) ppc ppc4xx plu405 esd | 660 | @./mkconfig $(@:_config=) ppc ppc4xx plu405 esd |
661 | 661 | ||
662 | PMC405_config: unconfig | 662 | PMC405_config: unconfig |
663 | @./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd | 663 | @./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd |
664 | 664 | ||
665 | PPChameleonEVB_MODEL_BA_config \ | 665 | PPChameleonEVB_MODEL_BA_config \ |
666 | PPChameleonEVB_MODEL_ME_config \ | 666 | PPChameleonEVB_MODEL_ME_config \ |
667 | PPChameleonEVB_MODEL_HI_config \ | 667 | PPChameleonEVB_MODEL_HI_config \ |
668 | PPChameleonEVB_config: unconfig | 668 | PPChameleonEVB_config: unconfig |
669 | @ >include/config.h | 669 | @ >include/config.h |
670 | @[ -z "$(findstring _MODEL_BA,$@)" ] || \ | 670 | @[ -z "$(findstring _MODEL_BA,$@)" ] || \ |
671 | { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>include/config.h ; \ | 671 | { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>include/config.h ; \ |
672 | echo "... BASIC model" ; \ | 672 | echo "... BASIC model" ; \ |
673 | } | 673 | } |
674 | @[ -z "$(findstring _MODEL_ME,$@)" ] || \ | 674 | @[ -z "$(findstring _MODEL_ME,$@)" ] || \ |
675 | { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>include/config.h ; \ | 675 | { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>include/config.h ; \ |
676 | echo "... MEDIUM model" ; \ | 676 | echo "... MEDIUM model" ; \ |
677 | } | 677 | } |
678 | @[ -z "$(findstring _MODEL_HI,$@)" ] || \ | 678 | @[ -z "$(findstring _MODEL_HI,$@)" ] || \ |
679 | { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>include/config.h ; \ | 679 | { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>include/config.h ; \ |
680 | echo "... HIGH-END model" ; \ | 680 | echo "... HIGH-END model" ; \ |
681 | } | 681 | } |
682 | @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave | 682 | @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave |
683 | 683 | ||
684 | VOH405_config: unconfig | 684 | VOH405_config: unconfig |
685 | @./mkconfig $(@:_config=) ppc ppc4xx voh405 esd | 685 | @./mkconfig $(@:_config=) ppc ppc4xx voh405 esd |
686 | 686 | ||
687 | W7OLMC_config \ | 687 | W7OLMC_config \ |
688 | W7OLMG_config: unconfig | 688 | W7OLMG_config: unconfig |
689 | @./mkconfig $(@:_config=) ppc ppc4xx w7o | 689 | @./mkconfig $(@:_config=) ppc ppc4xx w7o |
690 | 690 | ||
691 | WALNUT405_config: unconfig | 691 | WALNUT405_config: unconfig |
692 | @./mkconfig $(@:_config=) ppc ppc4xx walnut405 | 692 | @./mkconfig $(@:_config=) ppc ppc4xx walnut405 |
693 | 693 | ||
694 | XPEDITE1K_config: unconfig | 694 | XPEDITE1K_config: unconfig |
695 | @./mkconfig $(@:_config=) ppc ppc4xx xpedite1k | 695 | @./mkconfig $(@:_config=) ppc ppc4xx xpedite1k |
696 | 696 | ||
697 | ######################################################################### | 697 | ######################################################################### |
698 | ## MPC824x Systems | 698 | ## MPC824x Systems |
699 | ######################################################################### | 699 | ######################################################################### |
700 | xtract_82xx = $(subst _BIGFLASH,,$(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1)))))) | 700 | xtract_82xx = $(subst _BIGFLASH,,$(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1)))))) |
701 | 701 | ||
702 | A3000_config: unconfig | 702 | A3000_config: unconfig |
703 | @./mkconfig $(@:_config=) ppc mpc824x a3000 | 703 | @./mkconfig $(@:_config=) ppc mpc824x a3000 |
704 | 704 | ||
705 | BMW_config: unconfig | 705 | BMW_config: unconfig |
706 | @./mkconfig $(@:_config=) ppc mpc824x bmw | 706 | @./mkconfig $(@:_config=) ppc mpc824x bmw |
707 | 707 | ||
708 | CPC45_config \ | 708 | CPC45_config \ |
709 | CPC45_ROMBOOT_config: unconfig | 709 | CPC45_ROMBOOT_config: unconfig |
710 | @./mkconfig $(call xtract_82xx,$@) ppc mpc824x cpc45 | 710 | @./mkconfig $(call xtract_82xx,$@) ppc mpc824x cpc45 |
711 | @cd ./include ; \ | 711 | @cd ./include ; \ |
712 | if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ | 712 | if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ |
713 | echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ | 713 | echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ |
714 | echo "... booting from 8-bit flash" ; \ | 714 | echo "... booting from 8-bit flash" ; \ |
715 | else \ | 715 | else \ |
716 | echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ | 716 | echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ |
717 | echo "... booting from 64-bit flash" ; \ | 717 | echo "... booting from 64-bit flash" ; \ |
718 | fi; \ | 718 | fi; \ |
719 | echo "export CONFIG_BOOT_ROM" >> config.mk; | 719 | echo "export CONFIG_BOOT_ROM" >> config.mk; |
720 | 720 | ||
721 | CU824_config: unconfig | 721 | CU824_config: unconfig |
722 | @./mkconfig $(@:_config=) ppc mpc824x cu824 | 722 | @./mkconfig $(@:_config=) ppc mpc824x cu824 |
723 | 723 | ||
724 | debris_config: unconfig | 724 | debris_config: unconfig |
725 | @./mkconfig $(@:_config=) ppc mpc824x debris etin | 725 | @./mkconfig $(@:_config=) ppc mpc824x debris etin |
726 | 726 | ||
727 | eXalion_config: unconfig | 727 | eXalion_config: unconfig |
728 | @./mkconfig $(@:_config=) ppc mpc824x eXalion | 728 | @./mkconfig $(@:_config=) ppc mpc824x eXalion |
729 | 729 | ||
730 | MOUSSE_config: unconfig | 730 | MOUSSE_config: unconfig |
731 | @./mkconfig $(@:_config=) ppc mpc824x mousse | 731 | @./mkconfig $(@:_config=) ppc mpc824x mousse |
732 | 732 | ||
733 | MUSENKI_config: unconfig | 733 | MUSENKI_config: unconfig |
734 | @./mkconfig $(@:_config=) ppc mpc824x musenki | 734 | @./mkconfig $(@:_config=) ppc mpc824x musenki |
735 | 735 | ||
736 | MVBLUE_config: unconfig | 736 | MVBLUE_config: unconfig |
737 | @./mkconfig $(@:_config=) ppc mpc824x mvblue | 737 | @./mkconfig $(@:_config=) ppc mpc824x mvblue |
738 | 738 | ||
739 | OXC_config: unconfig | 739 | OXC_config: unconfig |
740 | @./mkconfig $(@:_config=) ppc mpc824x oxc | 740 | @./mkconfig $(@:_config=) ppc mpc824x oxc |
741 | 741 | ||
742 | PN62_config: unconfig | 742 | PN62_config: unconfig |
743 | @./mkconfig $(@:_config=) ppc mpc824x pn62 | 743 | @./mkconfig $(@:_config=) ppc mpc824x pn62 |
744 | 744 | ||
745 | Sandpoint8240_config: unconfig | 745 | Sandpoint8240_config: unconfig |
746 | @./mkconfig $(@:_config=) ppc mpc824x sandpoint | 746 | @./mkconfig $(@:_config=) ppc mpc824x sandpoint |
747 | 747 | ||
748 | Sandpoint8245_config: unconfig | 748 | Sandpoint8245_config: unconfig |
749 | @./mkconfig $(@:_config=) ppc mpc824x sandpoint | 749 | @./mkconfig $(@:_config=) ppc mpc824x sandpoint |
750 | 750 | ||
751 | SL8245_config: unconfig | 751 | SL8245_config: unconfig |
752 | @./mkconfig $(@:_config=) ppc mpc824x sl8245 | 752 | @./mkconfig $(@:_config=) ppc mpc824x sl8245 |
753 | 753 | ||
754 | utx8245_config: unconfig | 754 | utx8245_config: unconfig |
755 | @./mkconfig $(@:_config=) ppc mpc824x utx8245 | 755 | @./mkconfig $(@:_config=) ppc mpc824x utx8245 |
756 | 756 | ||
757 | ######################################################################### | 757 | ######################################################################### |
758 | ## MPC8260 Systems | 758 | ## MPC8260 Systems |
759 | ######################################################################### | 759 | ######################################################################### |
760 | 760 | ||
761 | atc_config: unconfig | 761 | atc_config: unconfig |
762 | @./mkconfig $(@:_config=) ppc mpc8260 atc | 762 | @./mkconfig $(@:_config=) ppc mpc8260 atc |
763 | 763 | ||
764 | cogent_mpc8260_config: unconfig | 764 | cogent_mpc8260_config: unconfig |
765 | @./mkconfig $(@:_config=) ppc mpc8260 cogent | 765 | @./mkconfig $(@:_config=) ppc mpc8260 cogent |
766 | 766 | ||
767 | CPU86_config \ | 767 | CPU86_config \ |
768 | CPU86_ROMBOOT_config: unconfig | 768 | CPU86_ROMBOOT_config: unconfig |
769 | @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu86 | 769 | @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu86 |
770 | @cd ./include ; \ | 770 | @cd ./include ; \ |
771 | if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ | 771 | if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ |
772 | echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ | 772 | echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ |
773 | echo "... booting from 8-bit flash" ; \ | 773 | echo "... booting from 8-bit flash" ; \ |
774 | else \ | 774 | else \ |
775 | echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ | 775 | echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ |
776 | echo "... booting from 64-bit flash" ; \ | 776 | echo "... booting from 64-bit flash" ; \ |
777 | fi; \ | 777 | fi; \ |
778 | echo "export CONFIG_BOOT_ROM" >> config.mk; | 778 | echo "export CONFIG_BOOT_ROM" >> config.mk; |
779 | 779 | ||
780 | ep8260_config: unconfig | 780 | ep8260_config: unconfig |
781 | @./mkconfig $(@:_config=) ppc mpc8260 ep8260 | 781 | @./mkconfig $(@:_config=) ppc mpc8260 ep8260 |
782 | 782 | ||
783 | gw8260_config: unconfig | 783 | gw8260_config: unconfig |
784 | @./mkconfig $(@:_config=) ppc mpc8260 gw8260 | 784 | @./mkconfig $(@:_config=) ppc mpc8260 gw8260 |
785 | 785 | ||
786 | hymod_config: unconfig | 786 | hymod_config: unconfig |
787 | @./mkconfig $(@:_config=) ppc mpc8260 hymod | 787 | @./mkconfig $(@:_config=) ppc mpc8260 hymod |
788 | 788 | ||
789 | IPHASE4539_config: unconfig | 789 | IPHASE4539_config: unconfig |
790 | @./mkconfig $(@:_config=) ppc mpc8260 iphase4539 | 790 | @./mkconfig $(@:_config=) ppc mpc8260 iphase4539 |
791 | 791 | ||
792 | ISPAN_config \ | 792 | ISPAN_config \ |
793 | ISPAN_REVB_config: unconfig | 793 | ISPAN_REVB_config: unconfig |
794 | @if [ "$(findstring _REVB_,$@)" ] ; then \ | 794 | @if [ "$(findstring _REVB_,$@)" ] ; then \ |
795 | echo "#define CFG_REV_B" > include/config.h ; \ | 795 | echo "#define CFG_REV_B" > include/config.h ; \ |
796 | fi | 796 | fi |
797 | @./mkconfig -a ISPAN ppc mpc8260 ispan | 797 | @./mkconfig -a ISPAN ppc mpc8260 ispan |
798 | 798 | ||
799 | MPC8260ADS_config \ | 799 | MPC8260ADS_config \ |
800 | MPC8260ADS_33MHz_config \ | 800 | MPC8260ADS_33MHz_config \ |
801 | MPC8260ADS_40MHz_config \ | 801 | MPC8260ADS_40MHz_config \ |
802 | MPC8272ADS_config \ | 802 | MPC8272ADS_config \ |
803 | PQ2FADS_config \ | 803 | PQ2FADS_config \ |
804 | PQ2FADS-VR_config \ | 804 | PQ2FADS-VR_config \ |
805 | PQ2FADS-ZU_config \ | 805 | PQ2FADS-ZU_config \ |
806 | PQ2FADS-ZU_66MHz_config \ | 806 | PQ2FADS-ZU_66MHz_config \ |
807 | : unconfig | 807 | : unconfig |
808 | $(if $(findstring PQ2FADS,$@), \ | 808 | $(if $(findstring PQ2FADS,$@), \ |
809 | @echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > include/config.h, \ | 809 | @echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > include/config.h, \ |
810 | @echo "#define CONFIG_ADSTYPE CFG_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > include/config.h) | 810 | @echo "#define CONFIG_ADSTYPE CFG_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > include/config.h) |
811 | $(if $(findstring MHz,$@), \ | 811 | $(if $(findstring MHz,$@), \ |
812 | @echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> include/config.h, \ | 812 | @echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> include/config.h, \ |
813 | $(if $(findstring VR,$@), \ | 813 | $(if $(findstring VR,$@), \ |
814 | @echo "#define CONFIG_8260_CLKIN 66000000" >> include/config.h)) | 814 | @echo "#define CONFIG_8260_CLKIN 66000000" >> include/config.h)) |
815 | @./mkconfig -a MPC8260ADS ppc mpc8260 mpc8260ads | 815 | @./mkconfig -a MPC8260ADS ppc mpc8260 mpc8260ads |
816 | 816 | ||
817 | MPC8266ADS_config: unconfig | 817 | MPC8266ADS_config: unconfig |
818 | @./mkconfig $(@:_config=) ppc mpc8260 mpc8266ads | 818 | @./mkconfig $(@:_config=) ppc mpc8260 mpc8266ads |
819 | 819 | ||
820 | # PM825/PM826 default configuration: small (= 8 MB) Flash / boot from 64-bit flash | 820 | # PM825/PM826 default configuration: small (= 8 MB) Flash / boot from 64-bit flash |
821 | PM825_config \ | 821 | PM825_config \ |
822 | PM825_ROMBOOT_config \ | 822 | PM825_ROMBOOT_config \ |
823 | PM825_BIGFLASH_config \ | 823 | PM825_BIGFLASH_config \ |
824 | PM825_ROMBOOT_BIGFLASH_config \ | 824 | PM825_ROMBOOT_BIGFLASH_config \ |
825 | PM826_config \ | 825 | PM826_config \ |
826 | PM826_ROMBOOT_config \ | 826 | PM826_ROMBOOT_config \ |
827 | PM826_BIGFLASH_config \ | 827 | PM826_BIGFLASH_config \ |
828 | PM826_ROMBOOT_BIGFLASH_config: unconfig | 828 | PM826_ROMBOOT_BIGFLASH_config: unconfig |
829 | @if [ "$(findstring PM825_,$@)" ] ; then \ | 829 | @if [ "$(findstring PM825_,$@)" ] ; then \ |
830 | echo "#define CONFIG_PCI" >include/config.h ; \ | 830 | echo "#define CONFIG_PCI" >include/config.h ; \ |
831 | else \ | 831 | else \ |
832 | >include/config.h ; \ | 832 | >include/config.h ; \ |
833 | fi | 833 | fi |
834 | @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ | 834 | @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ |
835 | echo "... booting from 8-bit flash" ; \ | 835 | echo "... booting from 8-bit flash" ; \ |
836 | echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \ | 836 | echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \ |
837 | echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \ | 837 | echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \ |
838 | if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ | 838 | if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ |
839 | echo "... with 32 MB Flash" ; \ | 839 | echo "... with 32 MB Flash" ; \ |
840 | echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \ | 840 | echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \ |
841 | fi; \ | 841 | fi; \ |
842 | else \ | 842 | else \ |
843 | echo "... booting from 64-bit flash" ; \ | 843 | echo "... booting from 64-bit flash" ; \ |
844 | if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ | 844 | if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ |
845 | echo "... with 32 MB Flash" ; \ | 845 | echo "... with 32 MB Flash" ; \ |
846 | echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \ | 846 | echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \ |
847 | echo "TEXT_BASE = 0x40000000" >board/pm826/config.tmp ; \ | 847 | echo "TEXT_BASE = 0x40000000" >board/pm826/config.tmp ; \ |
848 | else \ | 848 | else \ |
849 | echo "TEXT_BASE = 0xFF000000" >board/pm826/config.tmp ; \ | 849 | echo "TEXT_BASE = 0xFF000000" >board/pm826/config.tmp ; \ |
850 | fi; \ | 850 | fi; \ |
851 | fi | 851 | fi |
852 | @./mkconfig -a PM826 ppc mpc8260 pm826 | 852 | @./mkconfig -a PM826 ppc mpc8260 pm826 |
853 | 853 | ||
854 | PM828_config \ | 854 | PM828_config \ |
855 | PM828_PCI_config \ | 855 | PM828_PCI_config \ |
856 | PM828_ROMBOOT_config \ | 856 | PM828_ROMBOOT_config \ |
857 | PM828_ROMBOOT_PCI_config: unconfig | 857 | PM828_ROMBOOT_PCI_config: unconfig |
858 | @if [ -z "$(findstring _PCI_,$@)" ] ; then \ | 858 | @if [ -z "$(findstring _PCI_,$@)" ] ; then \ |
859 | echo "#define CONFIG_PCI" >>include/config.h ; \ | 859 | echo "#define CONFIG_PCI" >>include/config.h ; \ |
860 | echo "... with PCI enabled" ; \ | 860 | echo "... with PCI enabled" ; \ |
861 | else \ | 861 | else \ |
862 | >include/config.h ; \ | 862 | >include/config.h ; \ |
863 | fi | 863 | fi |
864 | @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ | 864 | @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ |
865 | echo "... booting from 8-bit flash" ; \ | 865 | echo "... booting from 8-bit flash" ; \ |
866 | echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \ | 866 | echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \ |
867 | echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \ | 867 | echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \ |
868 | fi | 868 | fi |
869 | @./mkconfig -a PM828 ppc mpc8260 pm828 | 869 | @./mkconfig -a PM828 ppc mpc8260 pm828 |
870 | 870 | ||
871 | ppmc8260_config: unconfig | 871 | ppmc8260_config: unconfig |
872 | @./mkconfig $(@:_config=) ppc mpc8260 ppmc8260 | 872 | @./mkconfig $(@:_config=) ppc mpc8260 ppmc8260 |
873 | 873 | ||
874 | RPXsuper_config: unconfig | 874 | RPXsuper_config: unconfig |
875 | @./mkconfig $(@:_config=) ppc mpc8260 rpxsuper | 875 | @./mkconfig $(@:_config=) ppc mpc8260 rpxsuper |
876 | 876 | ||
877 | rsdproto_config: unconfig | 877 | rsdproto_config: unconfig |
878 | @./mkconfig $(@:_config=) ppc mpc8260 rsdproto | 878 | @./mkconfig $(@:_config=) ppc mpc8260 rsdproto |
879 | 879 | ||
880 | sacsng_config: unconfig | 880 | sacsng_config: unconfig |
881 | @./mkconfig $(@:_config=) ppc mpc8260 sacsng | 881 | @./mkconfig $(@:_config=) ppc mpc8260 sacsng |
882 | 882 | ||
883 | sbc8260_config: unconfig | 883 | sbc8260_config: unconfig |
884 | @./mkconfig $(@:_config=) ppc mpc8260 sbc8260 | 884 | @./mkconfig $(@:_config=) ppc mpc8260 sbc8260 |
885 | 885 | ||
886 | SCM_config: unconfig | 886 | SCM_config: unconfig |
887 | @./mkconfig $(@:_config=) ppc mpc8260 SCM siemens | 887 | @./mkconfig $(@:_config=) ppc mpc8260 SCM siemens |
888 | 888 | ||
889 | TQM8255_AA_config \ | 889 | TQM8255_AA_config \ |
890 | TQM8260_AA_config \ | 890 | TQM8260_AA_config \ |
891 | TQM8260_AB_config \ | 891 | TQM8260_AB_config \ |
892 | TQM8260_AC_config \ | 892 | TQM8260_AC_config \ |
893 | TQM8260_AD_config \ | 893 | TQM8260_AD_config \ |
894 | TQM8260_AE_config \ | 894 | TQM8260_AE_config \ |
895 | TQM8260_AF_config \ | 895 | TQM8260_AF_config \ |
896 | TQM8260_AG_config \ | 896 | TQM8260_AG_config \ |
897 | TQM8260_AH_config \ | 897 | TQM8260_AH_config \ |
898 | TQM8265_AA_config: unconfig | 898 | TQM8265_AA_config: unconfig |
899 | @case "$@" in \ | 899 | @case "$@" in \ |
900 | TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no; BMODE=8260;; \ | 900 | TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no; BMODE=8260;; \ |
901 | TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no; BMODE=8260;; \ | 901 | TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no; BMODE=8260;; \ |
902 | TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ | 902 | TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ |
903 | TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ | 903 | TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ |
904 | TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ | 904 | TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ |
905 | TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no; BMODE=8260;; \ | 905 | TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no; BMODE=8260;; \ |
906 | TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ | 906 | TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ |
907 | TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=8260;; \ | 907 | TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=8260;; \ |
908 | TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes; BMODE=60x;; \ | 908 | TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes; BMODE=60x;; \ |
909 | TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no; BMODE=60x;; \ | 909 | TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no; BMODE=60x;; \ |
910 | esac; \ | 910 | esac; \ |
911 | >include/config.h ; \ | 911 | >include/config.h ; \ |
912 | if [ "$${CTYPE}" != "MPC8260" ] ; then \ | 912 | if [ "$${CTYPE}" != "MPC8260" ] ; then \ |
913 | echo "#define CONFIG_$${CTYPE}" >>include/config.h ; \ | 913 | echo "#define CONFIG_$${CTYPE}" >>include/config.h ; \ |
914 | fi; \ | 914 | fi; \ |
915 | echo "#define CONFIG_$${CFREQ}MHz" >>include/config.h ; \ | 915 | echo "#define CONFIG_$${CFREQ}MHz" >>include/config.h ; \ |
916 | echo "... with $${CFREQ}MHz system clock" ; \ | 916 | echo "... with $${CFREQ}MHz system clock" ; \ |
917 | if [ "$${CACHE}" == "yes" ] ; then \ | 917 | if [ "$${CACHE}" == "yes" ] ; then \ |
918 | echo "#define CONFIG_L2_CACHE" >>include/config.h ; \ | 918 | echo "#define CONFIG_L2_CACHE" >>include/config.h ; \ |
919 | echo "... with L2 Cache support" ; \ | 919 | echo "... with L2 Cache support" ; \ |
920 | else \ | 920 | else \ |
921 | echo "#undef CONFIG_L2_CACHE" >>include/config.h ; \ | 921 | echo "#undef CONFIG_L2_CACHE" >>include/config.h ; \ |
922 | echo "... without L2 Cache support" ; \ | 922 | echo "... without L2 Cache support" ; \ |
923 | fi; \ | 923 | fi; \ |
924 | if [ "$${BMODE}" == "60x" ] ; then \ | 924 | if [ "$${BMODE}" == "60x" ] ; then \ |
925 | echo "#define CONFIG_BUSMODE_60x" >>include/config.h ; \ | 925 | echo "#define CONFIG_BUSMODE_60x" >>include/config.h ; \ |
926 | echo "... with 60x Bus Mode" ; \ | 926 | echo "... with 60x Bus Mode" ; \ |
927 | else \ | 927 | else \ |
928 | echo "#undef CONFIG_BUSMODE_60x" >>include/config.h ; \ | 928 | echo "#undef CONFIG_BUSMODE_60x" >>include/config.h ; \ |
929 | echo "... without 60x Bus Mode" ; \ | 929 | echo "... without 60x Bus Mode" ; \ |
930 | fi | 930 | fi |
931 | @./mkconfig -a TQM8260 ppc mpc8260 tqm8260 | 931 | @./mkconfig -a TQM8260 ppc mpc8260 tqm8260 |
932 | 932 | ||
933 | ZPC1900_config: unconfig | 933 | ZPC1900_config: unconfig |
934 | @./mkconfig $(@:_config=) ppc mpc8260 zpc1900 | 934 | @./mkconfig $(@:_config=) ppc mpc8260 zpc1900 |
935 | 935 | ||
936 | #======================================================================== | 936 | #======================================================================== |
937 | # M68K | 937 | # M68K |
938 | #======================================================================== | 938 | #======================================================================== |
939 | ######################################################################### | 939 | ######################################################################### |
940 | ## Coldfire | 940 | ## Coldfire |
941 | ######################################################################### | 941 | ######################################################################### |
942 | 942 | ||
943 | M5272C3_config : unconfig | 943 | M5272C3_config : unconfig |
944 | @./mkconfig $(@:_config=) m68k mcf52x2 m5272c3 | 944 | @./mkconfig $(@:_config=) m68k mcf52x2 m5272c3 |
945 | 945 | ||
946 | M5282EVB_config : unconfig | 946 | M5282EVB_config : unconfig |
947 | @./mkconfig $(@:_config=) m68k mcf52x2 m5282evb | 947 | @./mkconfig $(@:_config=) m68k mcf52x2 m5282evb |
948 | 948 | ||
949 | ######################################################################### | 949 | ######################################################################### |
950 | ## MPC85xx Systems | 950 | ## MPC85xx Systems |
951 | ######################################################################### | 951 | ######################################################################### |
952 | 952 | ||
953 | MPC8540ADS_config: unconfig | 953 | MPC8540ADS_config: unconfig |
954 | @./mkconfig $(@:_config=) ppc mpc85xx mpc8540ads | 954 | @./mkconfig $(@:_config=) ppc mpc85xx mpc8540ads |
955 | 955 | ||
956 | MPC8560ADS_config: unconfig | 956 | MPC8560ADS_config: unconfig |
957 | @./mkconfig $(@:_config=) ppc mpc85xx mpc8560ads | 957 | @./mkconfig $(@:_config=) ppc mpc85xx mpc8560ads |
958 | 958 | ||
959 | stxgp3_config: unconfig | 959 | stxgp3_config: unconfig |
960 | @./mkconfig $(@:_config=) ppc mpc85xx stxgp3 | 960 | @./mkconfig $(@:_config=) ppc mpc85xx stxgp3 |
961 | 961 | ||
962 | ######################################################################### | 962 | ######################################################################### |
963 | ## 74xx/7xx Systems | 963 | ## 74xx/7xx Systems |
964 | ######################################################################### | 964 | ######################################################################### |
965 | 965 | ||
966 | AmigaOneG3SE_config: unconfig | 966 | AmigaOneG3SE_config: unconfig |
967 | @./mkconfig $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI | 967 | @./mkconfig $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI |
968 | 968 | ||
969 | BAB7xx_config: unconfig | 969 | BAB7xx_config: unconfig |
970 | @./mkconfig $(@:_config=) ppc 74xx_7xx bab7xx eltec | 970 | @./mkconfig $(@:_config=) ppc 74xx_7xx bab7xx eltec |
971 | 971 | ||
972 | DB64360_config: unconfig | 972 | DB64360_config: unconfig |
973 | @./mkconfig DB64360 ppc 74xx_7xx db64360 Marvell | 973 | @./mkconfig DB64360 ppc 74xx_7xx db64360 Marvell |
974 | 974 | ||
975 | DB64460_config: unconfig | 975 | DB64460_config: unconfig |
976 | @./mkconfig DB64460 ppc 74xx_7xx db64460 Marvell | 976 | @./mkconfig DB64460 ppc 74xx_7xx db64460 Marvell |
977 | 977 | ||
978 | ELPPC_config: unconfig | 978 | ELPPC_config: unconfig |
979 | @./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec | 979 | @./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec |
980 | 980 | ||
981 | EVB64260_config \ | 981 | EVB64260_config \ |
982 | EVB64260_750CX_config: unconfig | 982 | EVB64260_750CX_config: unconfig |
983 | @./mkconfig EVB64260 ppc 74xx_7xx evb64260 | 983 | @./mkconfig EVB64260 ppc 74xx_7xx evb64260 |
984 | 984 | ||
985 | P3G4_config: unconfig | 985 | P3G4_config: unconfig |
986 | @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260 | 986 | @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260 |
987 | 987 | ||
988 | PCIPPC2_config \ | 988 | PCIPPC2_config \ |
989 | PCIPPC6_config: unconfig | 989 | PCIPPC6_config: unconfig |
990 | @./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2 | 990 | @./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2 |
991 | 991 | ||
992 | ZUMA_config: unconfig | 992 | ZUMA_config: unconfig |
993 | @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260 | 993 | @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260 |
994 | 994 | ||
995 | #======================================================================== | 995 | #======================================================================== |
996 | # ARM | 996 | # ARM |
997 | #======================================================================== | 997 | #======================================================================== |
998 | ######################################################################### | 998 | ######################################################################### |
999 | ## StrongARM Systems | 999 | ## StrongARM Systems |
1000 | ######################################################################### | 1000 | ######################################################################### |
1001 | 1001 | ||
1002 | assabet_config : unconfig | 1002 | assabet_config : unconfig |
1003 | @./mkconfig $(@:_config=) arm sa1100 assabet | 1003 | @./mkconfig $(@:_config=) arm sa1100 assabet |
1004 | 1004 | ||
1005 | dnp1110_config : unconfig | 1005 | dnp1110_config : unconfig |
1006 | @./mkconfig $(@:_config=) arm sa1100 dnp1110 | 1006 | @./mkconfig $(@:_config=) arm sa1100 dnp1110 |
1007 | 1007 | ||
1008 | gcplus_config : unconfig | 1008 | gcplus_config : unconfig |
1009 | @./mkconfig $(@:_config=) arm sa1100 gcplus | 1009 | @./mkconfig $(@:_config=) arm sa1100 gcplus |
1010 | 1010 | ||
1011 | lart_config : unconfig | 1011 | lart_config : unconfig |
1012 | @./mkconfig $(@:_config=) arm sa1100 lart | 1012 | @./mkconfig $(@:_config=) arm sa1100 lart |
1013 | 1013 | ||
1014 | shannon_config : unconfig | 1014 | shannon_config : unconfig |
1015 | @./mkconfig $(@:_config=) arm sa1100 shannon | 1015 | @./mkconfig $(@:_config=) arm sa1100 shannon |
1016 | 1016 | ||
1017 | ######################################################################### | 1017 | ######################################################################### |
1018 | ## ARM92xT Systems | 1018 | ## ARM92xT Systems |
1019 | ######################################################################### | 1019 | ######################################################################### |
1020 | 1020 | ||
1021 | xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1)))) | 1021 | xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1)))) |
1022 | 1022 | ||
1023 | xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1)))) | 1023 | xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1)))) |
1024 | 1024 | ||
1025 | xtract_omap730p2 = $(subst _cs0boot,,$(subst _cs3boot,, $(subst _config,,$1))) | 1025 | xtract_omap730p2 = $(subst _cs0boot,,$(subst _cs3boot,, $(subst _config,,$1))) |
1026 | 1026 | ||
1027 | SX1_config : unconfig | 1027 | SX1_config : unconfig |
1028 | @./mkconfig $(@:_config=) arm arm925t sx1 | 1028 | @./mkconfig $(@:_config=) arm arm925t sx1 |
1029 | 1029 | ||
1030 | integratorcp_config : unconfig | 1030 | integratorcp_config : unconfig |
1031 | @./mkconfig $(@:_config=) arm arm926ejs integratorcp | 1031 | @./mkconfig $(@:_config=) arm arm926ejs integratorcp |
1032 | 1032 | ||
1033 | integratorap_config : unconfig | 1033 | integratorap_config : unconfig |
1034 | @./mkconfig $(@:_config=) arm arm926ejs integratorap | 1034 | @./mkconfig $(@:_config=) arm arm926ejs integratorap |
1035 | 1035 | ||
1036 | versatile_config : unconfig | 1036 | versatile_config : unconfig |
1037 | @./mkconfig $(@:_config=) arm arm926ejs versatile | 1037 | @./mkconfig $(@:_config=) arm arm926ejs versatile |
1038 | 1038 | ||
1039 | omap1510inn_config : unconfig | 1039 | omap1510inn_config : unconfig |
1040 | @./mkconfig $(@:_config=) arm arm925t omap1510inn | 1040 | @./mkconfig $(@:_config=) arm arm925t omap1510inn |
1041 | 1041 | ||
1042 | omap5912osk_config : unconfig | 1042 | omap5912osk_config : unconfig |
1043 | @./mkconfig $(@:_config=) arm arm926ejs omap5912osk | 1043 | @./mkconfig $(@:_config=) arm arm926ejs omap5912osk |
1044 | 1044 | ||
1045 | omap1610inn_config \ | 1045 | omap1610inn_config \ |
1046 | omap1610inn_cs0boot_config \ | 1046 | omap1610inn_cs0boot_config \ |
1047 | omap1610inn_cs3boot_config \ | 1047 | omap1610inn_cs3boot_config \ |
1048 | omap1610inn_cs_autoboot_config \ | 1048 | omap1610inn_cs_autoboot_config \ |
1049 | omap1610h2_config \ | 1049 | omap1610h2_config \ |
1050 | omap1610h2_cs0boot_config \ | 1050 | omap1610h2_cs0boot_config \ |
1051 | omap1610h2_cs3boot_config \ | 1051 | omap1610h2_cs3boot_config \ |
1052 | omap1610h2_cs_autoboot_config: unconfig | 1052 | omap1610h2_cs_autoboot_config: unconfig |
1053 | @if [ "$(findstring _cs0boot_, $@)" ] ; then \ | 1053 | @if [ "$(findstring _cs0boot_, $@)" ] ; then \ |
1054 | echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \ | 1054 | echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \ |
1055 | echo "... configured for CS0 boot"; \ | 1055 | echo "... configured for CS0 boot"; \ |
1056 | elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \ | 1056 | elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \ |
1057 | echo "#define CONFIG_CS_AUTOBOOT" >> ./include/config.h ; \ | 1057 | echo "#define CONFIG_CS_AUTOBOOT" >> ./include/config.h ; \ |
1058 | echo "... configured for CS_AUTO boot"; \ | 1058 | echo "... configured for CS_AUTO boot"; \ |
1059 | else \ | 1059 | else \ |
1060 | echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \ | 1060 | echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \ |
1061 | echo "... configured for CS3 boot"; \ | 1061 | echo "... configured for CS3 boot"; \ |
1062 | fi; | 1062 | fi; |
1063 | @./mkconfig -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn | 1063 | @./mkconfig -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn |
1064 | 1064 | ||
1065 | omap730p2_config \ | 1065 | omap730p2_config \ |
1066 | omap730p2_cs0boot_config \ | 1066 | omap730p2_cs0boot_config \ |
1067 | omap730p2_cs3boot_config : unconfig | 1067 | omap730p2_cs3boot_config : unconfig |
1068 | @if [ "$(findstring _cs0boot_, $@)" ] ; then \ | 1068 | @if [ "$(findstring _cs0boot_, $@)" ] ; then \ |
1069 | echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \ | 1069 | echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \ |
1070 | echo "... configured for CS0 boot"; \ | 1070 | echo "... configured for CS0 boot"; \ |
1071 | else \ | 1071 | else \ |
1072 | echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \ | 1072 | echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \ |
1073 | echo "... configured for CS3 boot"; \ | 1073 | echo "... configured for CS3 boot"; \ |
1074 | fi; | 1074 | fi; |
1075 | @./mkconfig -a $(call xtract_omap730p2,$@) arm arm926ejs omap730p2 | 1075 | @./mkconfig -a $(call xtract_omap730p2,$@) arm arm926ejs omap730p2 |
1076 | 1076 | ||
1077 | smdk2400_config : unconfig | 1077 | smdk2400_config : unconfig |
1078 | @./mkconfig $(@:_config=) arm arm920t smdk2400 | 1078 | @./mkconfig $(@:_config=) arm arm920t smdk2400 |
1079 | 1079 | ||
1080 | smdk2410_config : unconfig | 1080 | smdk2410_config : unconfig |
1081 | @./mkconfig $(@:_config=) arm arm920t smdk2410 | 1081 | @./mkconfig $(@:_config=) arm arm920t smdk2410 |
1082 | 1082 | ||
1083 | # TRAB default configuration: 8 MB Flash, 32 MB RAM | 1083 | # TRAB default configuration: 8 MB Flash, 32 MB RAM |
1084 | trab_config \ | 1084 | trab_config \ |
1085 | trab_bigram_config \ | 1085 | trab_bigram_config \ |
1086 | trab_bigflash_config \ | 1086 | trab_bigflash_config \ |
1087 | trab_old_config: unconfig | 1087 | trab_old_config: unconfig |
1088 | @ >include/config.h | 1088 | @ >include/config.h |
1089 | @[ -z "$(findstring _bigram,$@)" ] || \ | 1089 | @[ -z "$(findstring _bigram,$@)" ] || \ |
1090 | { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \ | 1090 | { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \ |
1091 | echo "#define CONFIG_RAM_32MB" >>include/config.h ; \ | 1091 | echo "#define CONFIG_RAM_32MB" >>include/config.h ; \ |
1092 | echo "... with 8 MB Flash, 32 MB RAM" ; \ | 1092 | echo "... with 8 MB Flash, 32 MB RAM" ; \ |
1093 | } | 1093 | } |
1094 | @[ -z "$(findstring _bigflash,$@)" ] || \ | 1094 | @[ -z "$(findstring _bigflash,$@)" ] || \ |
1095 | { echo "#define CONFIG_FLASH_16MB" >>include/config.h ; \ | 1095 | { echo "#define CONFIG_FLASH_16MB" >>include/config.h ; \ |
1096 | echo "#define CONFIG_RAM_16MB" >>include/config.h ; \ | 1096 | echo "#define CONFIG_RAM_16MB" >>include/config.h ; \ |
1097 | echo "... with 16 MB Flash, 16 MB RAM" ; \ | 1097 | echo "... with 16 MB Flash, 16 MB RAM" ; \ |
1098 | echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \ | 1098 | echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \ |
1099 | } | 1099 | } |
1100 | @[ -z "$(findstring _old,$@)" ] || \ | 1100 | @[ -z "$(findstring _old,$@)" ] || \ |
1101 | { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \ | 1101 | { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \ |
1102 | echo "#define CONFIG_RAM_16MB" >>include/config.h ; \ | 1102 | echo "#define CONFIG_RAM_16MB" >>include/config.h ; \ |
1103 | echo "... with 8 MB Flash, 16 MB RAM" ; \ | 1103 | echo "... with 8 MB Flash, 16 MB RAM" ; \ |
1104 | echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \ | 1104 | echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \ |
1105 | } | 1105 | } |
1106 | @./mkconfig -a $(call xtract_trab,$@) arm arm920t trab | 1106 | @./mkconfig -a $(call xtract_trab,$@) arm arm920t trab |
1107 | 1107 | ||
1108 | VCMA9_config : unconfig | 1108 | VCMA9_config : unconfig |
1109 | @./mkconfig $(@:_config=) arm arm920t vcma9 mpl | 1109 | @./mkconfig $(@:_config=) arm arm920t vcma9 mpl |
1110 | 1110 | ||
1111 | lpd7a400_config: unconfig | 1111 | lpd7a400_config: unconfig |
1112 | @./mkconfig $(@:_config=) arm lh7a40x lpd7a40x | 1112 | @./mkconfig $(@:_config=) arm lh7a40x lpd7a40x |
1113 | 1113 | ||
1114 | ######################################################################### | 1114 | ######################################################################### |
1115 | ## S3C44B0 Systems | 1115 | ## S3C44B0 Systems |
1116 | ######################################################################### | 1116 | ######################################################################### |
1117 | 1117 | ||
1118 | B2_config : unconfig | 1118 | B2_config : unconfig |
1119 | @./mkconfig $(@:_config=) arm s3c44b0 B2 dave | 1119 | @./mkconfig $(@:_config=) arm s3c44b0 B2 dave |
1120 | 1120 | ||
1121 | ######################################################################### | 1121 | ######################################################################### |
1122 | ## ARM720T Systems | 1122 | ## ARM720T Systems |
1123 | ######################################################################### | 1123 | ######################################################################### |
1124 | 1124 | ||
1125 | impa7_config : unconfig | 1125 | impa7_config : unconfig |
1126 | @./mkconfig $(@:_config=) arm arm720t impa7 | 1126 | @./mkconfig $(@:_config=) arm arm720t impa7 |
1127 | 1127 | ||
1128 | ep7312_config : unconfig | 1128 | ep7312_config : unconfig |
1129 | @./mkconfig $(@:_config=) arm arm720t ep7312 | 1129 | @./mkconfig $(@:_config=) arm arm720t ep7312 |
1130 | 1130 | ||
1131 | modnet50_config : unconfig | 1131 | modnet50_config : unconfig |
1132 | @./mkconfig $(@:_config=) arm arm720t modnet50 | 1132 | @./mkconfig $(@:_config=) arm arm720t modnet50 |
1133 | 1133 | ||
1134 | ######################################################################### | 1134 | ######################################################################### |
1135 | ## AT91RM9200 Systems | 1135 | ## AT91RM9200 Systems |
1136 | ######################################################################### | 1136 | ######################################################################### |
1137 | 1137 | ||
1138 | at91rm9200dk_config : unconfig | 1138 | at91rm9200dk_config : unconfig |
1139 | @./mkconfig $(@:_config=) arm at91rm9200 at91rm9200dk | 1139 | @./mkconfig $(@:_config=) arm at91rm9200 at91rm9200dk |
1140 | 1140 | ||
1141 | ######################################################################### | 1141 | ######################################################################### |
1142 | ## XScale Systems | 1142 | ## XScale Systems |
1143 | ######################################################################### | 1143 | ######################################################################### |
1144 | 1144 | ||
1145 | cradle_config : unconfig | 1145 | cradle_config : unconfig |
1146 | @./mkconfig $(@:_config=) arm pxa cradle | 1146 | @./mkconfig $(@:_config=) arm pxa cradle |
1147 | 1147 | ||
1148 | csb226_config : unconfig | 1148 | csb226_config : unconfig |
1149 | @./mkconfig $(@:_config=) arm pxa csb226 | 1149 | @./mkconfig $(@:_config=) arm pxa csb226 |
1150 | 1150 | ||
1151 | innokom_config : unconfig | 1151 | innokom_config : unconfig |
1152 | @./mkconfig $(@:_config=) arm pxa innokom | 1152 | @./mkconfig $(@:_config=) arm pxa innokom |
1153 | 1153 | ||
1154 | ixdp425_config : unconfig | 1154 | ixdp425_config : unconfig |
1155 | @./mkconfig $(@:_config=) arm ixp ixdp425 | 1155 | @./mkconfig $(@:_config=) arm ixp ixdp425 |
1156 | 1156 | ||
1157 | lubbock_config : unconfig | 1157 | lubbock_config : unconfig |
1158 | @./mkconfig $(@:_config=) arm pxa lubbock | 1158 | @./mkconfig $(@:_config=) arm pxa lubbock |
1159 | 1159 | ||
1160 | logodl_config : unconfig | 1160 | logodl_config : unconfig |
1161 | @./mkconfig $(@:_config=) arm pxa logodl | 1161 | @./mkconfig $(@:_config=) arm pxa logodl |
1162 | 1162 | ||
1163 | wepep250_config : unconfig | 1163 | wepep250_config : unconfig |
1164 | @./mkconfig $(@:_config=) arm pxa wepep250 | 1164 | @./mkconfig $(@:_config=) arm pxa wepep250 |
1165 | 1165 | ||
1166 | xm250_config : unconfig | 1166 | xm250_config : unconfig |
1167 | @./mkconfig $(@:_config=) arm pxa xm250 | 1167 | @./mkconfig $(@:_config=) arm pxa xm250 |
1168 | 1168 | ||
1169 | xsengine_config : unconfig | 1169 | xsengine_config : unconfig |
1170 | @./mkconfig $(@:_config=) arm pxa xsengine | 1170 | @./mkconfig $(@:_config=) arm pxa xsengine |
1171 | 1171 | ||
1172 | #======================================================================== | 1172 | #======================================================================== |
1173 | # i386 | 1173 | # i386 |
1174 | #======================================================================== | 1174 | #======================================================================== |
1175 | ######################################################################### | 1175 | ######################################################################### |
1176 | ## AMD SC520 CDP | 1176 | ## AMD SC520 CDP |
1177 | ######################################################################### | 1177 | ######################################################################### |
1178 | sc520_cdp_config : unconfig | 1178 | sc520_cdp_config : unconfig |
1179 | @./mkconfig $(@:_config=) i386 i386 sc520_cdp | 1179 | @./mkconfig $(@:_config=) i386 i386 sc520_cdp |
1180 | 1180 | ||
1181 | sc520_spunk_config : unconfig | 1181 | sc520_spunk_config : unconfig |
1182 | @./mkconfig $(@:_config=) i386 i386 sc520_spunk | 1182 | @./mkconfig $(@:_config=) i386 i386 sc520_spunk |
1183 | 1183 | ||
1184 | sc520_spunk_rel_config : unconfig | 1184 | sc520_spunk_rel_config : unconfig |
1185 | @./mkconfig $(@:_config=) i386 i386 sc520_spunk | 1185 | @./mkconfig $(@:_config=) i386 i386 sc520_spunk |
1186 | 1186 | ||
1187 | #======================================================================== | 1187 | #======================================================================== |
1188 | # MIPS | 1188 | # MIPS |
1189 | #======================================================================== | 1189 | #======================================================================== |
1190 | ######################################################################### | 1190 | ######################################################################### |
1191 | ## MIPS32 4Kc | 1191 | ## MIPS32 4Kc |
1192 | ######################################################################### | 1192 | ######################################################################### |
1193 | 1193 | ||
1194 | xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1)))) | 1194 | xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1)))) |
1195 | 1195 | ||
1196 | incaip_100MHz_config \ | 1196 | incaip_100MHz_config \ |
1197 | incaip_133MHz_config \ | 1197 | incaip_133MHz_config \ |
1198 | incaip_150MHz_config \ | 1198 | incaip_150MHz_config \ |
1199 | incaip_config: unconfig | 1199 | incaip_config: unconfig |
1200 | @ >include/config.h | 1200 | @ >include/config.h |
1201 | @[ -z "$(findstring _100MHz,$@)" ] || \ | 1201 | @[ -z "$(findstring _100MHz,$@)" ] || \ |
1202 | { echo "#define CPU_CLOCK_RATE 100000000" >>include/config.h ; \ | 1202 | { echo "#define CPU_CLOCK_RATE 100000000" >>include/config.h ; \ |
1203 | echo "... with 100MHz system clock" ; \ | 1203 | echo "... with 100MHz system clock" ; \ |
1204 | } | 1204 | } |
1205 | @[ -z "$(findstring _133MHz,$@)" ] || \ | 1205 | @[ -z "$(findstring _133MHz,$@)" ] || \ |
1206 | { echo "#define CPU_CLOCK_RATE 133000000" >>include/config.h ; \ | 1206 | { echo "#define CPU_CLOCK_RATE 133000000" >>include/config.h ; \ |
1207 | echo "... with 133MHz system clock" ; \ | 1207 | echo "... with 133MHz system clock" ; \ |
1208 | } | 1208 | } |
1209 | @[ -z "$(findstring _150MHz,$@)" ] || \ | 1209 | @[ -z "$(findstring _150MHz,$@)" ] || \ |
1210 | { echo "#define CPU_CLOCK_RATE 150000000" >>include/config.h ; \ | 1210 | { echo "#define CPU_CLOCK_RATE 150000000" >>include/config.h ; \ |
1211 | echo "... with 150MHz system clock" ; \ | 1211 | echo "... with 150MHz system clock" ; \ |
1212 | } | 1212 | } |
1213 | @./mkconfig -a $(call xtract_incaip,$@) mips mips incaip | 1213 | @./mkconfig -a $(call xtract_incaip,$@) mips mips incaip |
1214 | 1214 | ||
1215 | tb0229_config: unconfig | 1215 | tb0229_config: unconfig |
1216 | @./mkconfig $(@:_config=) mips mips tb0229 | 1216 | @./mkconfig $(@:_config=) mips mips tb0229 |
1217 | 1217 | ||
1218 | ######################################################################### | 1218 | ######################################################################### |
1219 | ## MIPS32 AU1X00 | 1219 | ## MIPS32 AU1X00 |
1220 | ######################################################################### | 1220 | ######################################################################### |
1221 | dbau1000_config : unconfig | 1221 | dbau1000_config : unconfig |
1222 | @ >include/config.h | 1222 | @ >include/config.h |
1223 | @echo "#define CONFIG_DBAU1000 1" >>include/config.h | 1223 | @echo "#define CONFIG_DBAU1000 1" >>include/config.h |
1224 | @./mkconfig -a dbau1x00 mips mips dbau1x00 | 1224 | @./mkconfig -a dbau1x00 mips mips dbau1x00 |
1225 | 1225 | ||
1226 | dbau1100_config : unconfig | 1226 | dbau1100_config : unconfig |
1227 | @ >include/config.h | 1227 | @ >include/config.h |
1228 | @echo "#define CONFIG_DBAU1100 1" >>include/config.h | 1228 | @echo "#define CONFIG_DBAU1100 1" >>include/config.h |
1229 | @./mkconfig -a dbau1x00 mips mips dbau1x00 | 1229 | @./mkconfig -a dbau1x00 mips mips dbau1x00 |
1230 | 1230 | ||
1231 | dbau1500_config : unconfig | 1231 | dbau1500_config : unconfig |
1232 | @ >include/config.h | 1232 | @ >include/config.h |
1233 | @echo "#define CONFIG_DBAU1500 1" >>include/config.h | 1233 | @echo "#define CONFIG_DBAU1500 1" >>include/config.h |
1234 | @./mkconfig -a dbau1x00 mips mips dbau1x00 | 1234 | @./mkconfig -a dbau1x00 mips mips dbau1x00 |
1235 | 1235 | ||
1236 | ######################################################################### | 1236 | ######################################################################### |
1237 | ## MIPS64 5Kc | 1237 | ## MIPS64 5Kc |
1238 | ######################################################################### | 1238 | ######################################################################### |
1239 | 1239 | ||
1240 | purple_config : unconfig | 1240 | purple_config : unconfig |
1241 | @./mkconfig $(@:_config=) mips mips purple | 1241 | @./mkconfig $(@:_config=) mips mips purple |
1242 | 1242 | ||
1243 | #======================================================================== | 1243 | #======================================================================== |
1244 | # Nios | 1244 | # Nios |
1245 | #======================================================================== | 1245 | #======================================================================== |
1246 | ######################################################################### | 1246 | ######################################################################### |
1247 | ## Nios32 | 1247 | ## Nios32 |
1248 | ######################################################################### | 1248 | ######################################################################### |
1249 | 1249 | ||
1250 | DK1C20_safe_32_config \ | 1250 | DK1C20_safe_32_config \ |
1251 | DK1C20_standard_32_config \ | 1251 | DK1C20_standard_32_config \ |
1252 | DK1C20_config: unconfig | 1252 | DK1C20_config: unconfig |
1253 | @ >include/config.h | 1253 | @ >include/config.h |
1254 | @[ -z "$(findstring _safe_32,$@)" ] || \ | 1254 | @[ -z "$(findstring _safe_32,$@)" ] || \ |
1255 | { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \ | 1255 | { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \ |
1256 | echo "... NIOS 'safe_32' configuration" ; \ | 1256 | echo "... NIOS 'safe_32' configuration" ; \ |
1257 | } | 1257 | } |
1258 | @[ -z "$(findstring _standard_32,$@)" ] || \ | 1258 | @[ -z "$(findstring _standard_32,$@)" ] || \ |
1259 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ | 1259 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ |
1260 | echo "... NIOS 'standard_32' configuration" ; \ | 1260 | echo "... NIOS 'standard_32' configuration" ; \ |
1261 | } | 1261 | } |
1262 | @[ -z "$(findstring DK1C20_config,$@)" ] || \ | 1262 | @[ -z "$(findstring DK1C20_config,$@)" ] || \ |
1263 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ | 1263 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ |
1264 | echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \ | 1264 | echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \ |
1265 | } | 1265 | } |
1266 | @./mkconfig -a DK1C20 nios nios dk1c20 altera | 1266 | @./mkconfig -a DK1C20 nios nios dk1c20 altera |
1267 | 1267 | ||
1268 | DK1S10_safe_32_config \ | 1268 | DK1S10_safe_32_config \ |
1269 | DK1S10_standard_32_config \ | 1269 | DK1S10_standard_32_config \ |
1270 | DK1S10_mtx_ldk_20_config \ | 1270 | DK1S10_mtx_ldk_20_config \ |
1271 | DK1S10_config: unconfig | 1271 | DK1S10_config: unconfig |
1272 | @ >include/config.h | 1272 | @ >include/config.h |
1273 | @[ -z "$(findstring _safe_32,$@)" ] || \ | 1273 | @[ -z "$(findstring _safe_32,$@)" ] || \ |
1274 | { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \ | 1274 | { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \ |
1275 | echo "... NIOS 'safe_32' configuration" ; \ | 1275 | echo "... NIOS 'safe_32' configuration" ; \ |
1276 | } | 1276 | } |
1277 | @[ -z "$(findstring _standard_32,$@)" ] || \ | 1277 | @[ -z "$(findstring _standard_32,$@)" ] || \ |
1278 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ | 1278 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ |
1279 | echo "... NIOS 'standard_32' configuration" ; \ | 1279 | echo "... NIOS 'standard_32' configuration" ; \ |
1280 | } | 1280 | } |
1281 | @[ -z "$(findstring _mtx_ldk_20,$@)" ] || \ | 1281 | @[ -z "$(findstring _mtx_ldk_20,$@)" ] || \ |
1282 | { echo "#define CONFIG_NIOS_MTX_LDK_20 1" >>include/config.h ; \ | 1282 | { echo "#define CONFIG_NIOS_MTX_LDK_20 1" >>include/config.h ; \ |
1283 | echo "... NIOS 'mtx_ldk_20' configuration" ; \ | 1283 | echo "... NIOS 'mtx_ldk_20' configuration" ; \ |
1284 | } | 1284 | } |
1285 | @[ -z "$(findstring DK1S10_config,$@)" ] || \ | 1285 | @[ -z "$(findstring DK1S10_config,$@)" ] || \ |
1286 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ | 1286 | { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ |
1287 | echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \ | 1287 | echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \ |
1288 | } | 1288 | } |
1289 | @./mkconfig -a DK1S10 nios nios dk1s10 altera | 1289 | @./mkconfig -a DK1S10 nios nios dk1s10 altera |
1290 | 1290 | ||
1291 | ADNPESC1_DNPEVA2_base_32_config \ | 1291 | ADNPESC1_DNPEVA2_base_32_config \ |
1292 | ADNPESC1_base_32_config \ | 1292 | ADNPESC1_base_32_config \ |
1293 | ADNPESC1_config: unconfig | 1293 | ADNPESC1_config: unconfig |
1294 | @ >include/config.h | 1294 | @ >include/config.h |
1295 | @[ -z "$(findstring _DNPEVA2,$@)" ] || \ | 1295 | @[ -z "$(findstring _DNPEVA2,$@)" ] || \ |
1296 | { echo "#define CONFIG_DNPEVA2 1" >>include/config.h ; \ | 1296 | { echo "#define CONFIG_DNPEVA2 1" >>include/config.h ; \ |
1297 | echo "... DNP/EVA2 configuration" ; \ | 1297 | echo "... DNP/EVA2 configuration" ; \ |
1298 | } | 1298 | } |
1299 | @[ -z "$(findstring _base_32,$@)" ] || \ | 1299 | @[ -z "$(findstring _base_32,$@)" ] || \ |
1300 | { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \ | 1300 | { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \ |
1301 | echo "... NIOS 'base_32' configuration" ; \ | 1301 | echo "... NIOS 'base_32' configuration" ; \ |
1302 | } | 1302 | } |
1303 | @[ -z "$(findstring ADNPESC1_config,$@)" ] || \ | 1303 | @[ -z "$(findstring ADNPESC1_config,$@)" ] || \ |
1304 | { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \ | 1304 | { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \ |
1305 | echo "... NIOS 'base_32' configuration (DEFAULT)" ; \ | 1305 | echo "... NIOS 'base_32' configuration (DEFAULT)" ; \ |
1306 | } | 1306 | } |
1307 | @./mkconfig -a ADNPESC1 nios nios adnpesc1 ssv | 1307 | @./mkconfig -a ADNPESC1 nios nios adnpesc1 ssv |
1308 | 1308 | ||
1309 | 1309 | ||
1310 | #======================================================================== | 1310 | #======================================================================== |
1311 | # MicroBlaze | 1311 | # MicroBlaze |
1312 | #======================================================================== | 1312 | #======================================================================== |
1313 | ######################################################################### | 1313 | ######################################################################### |
1314 | ## Microblaze | 1314 | ## Microblaze |
1315 | ######################################################################### | 1315 | ######################################################################### |
1316 | suzaku_config: unconfig | 1316 | suzaku_config: unconfig |
1317 | @ >include/config.h | 1317 | @ >include/config.h |
1318 | @echo "#define CONFIG_SUZAKU 1" >> include/config.h | 1318 | @echo "#define CONFIG_SUZAKU 1" >> include/config.h |
1319 | @./mkconfig -a $(@:_config=) microblaze microblaze suzaku AtmarkTechno | 1319 | @./mkconfig -a $(@:_config=) microblaze microblaze suzaku AtmarkTechno |
1320 | 1320 | ||
1321 | ######################################################################### | 1321 | ######################################################################### |
1322 | ######################################################################### | 1322 | ######################################################################### |
1323 | 1323 | ||
1324 | clean: | 1324 | clean: |
1325 | find . -type f \ | 1325 | find . -type f \ |
1326 | \( -name 'core' -o -name '*.bak' -o -name '*~' \ | 1326 | \( -name 'core' -o -name '*.bak' -o -name '*~' \ |
1327 | -o -name '*.o' -o -name '*.a' \) -print \ | 1327 | -o -name '*.o' -o -name '*.a' \) -print \ |
1328 | | xargs rm -f | 1328 | | xargs rm -f |
1329 | rm -f examples/hello_world examples/timer \ | 1329 | rm -f examples/hello_world examples/timer \ |
1330 | examples/eepro100_eeprom examples/sched \ | 1330 | examples/eepro100_eeprom examples/sched \ |
1331 | examples/mem_to_mem_idma2intr examples/82559_eeprom | 1331 | examples/mem_to_mem_idma2intr examples/82559_eeprom |
1332 | rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr | 1332 | rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr |
1333 | rm -f tools/mpc86x_clk | 1333 | rm -f tools/mpc86x_clk |
1334 | rm -f tools/easylogo/easylogo tools/bmp_logo | 1334 | rm -f tools/easylogo/easylogo tools/bmp_logo |
1335 | rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend | 1335 | rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend |
1336 | rm -f tools/env/fw_printenv tools/env/fw_setenv | 1336 | rm -f tools/env/fw_printenv tools/env/fw_setenv |
1337 | rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image | 1337 | rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image |
1338 | rm -f board/trab/trab_fkt | 1338 | rm -f board/trab/trab_fkt |
1339 | 1339 | ||
1340 | clobber: clean | 1340 | clobber: clean |
1341 | find . -type f \ | 1341 | find . -type f \( -name .depend \ |
1342 | \( -name .depend -o -name '*.srec' -o -name '*.bin' \) \ | 1342 | -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \ |
1343 | -print \ | 1343 | -print0 \ |
1344 | | xargs rm -f | 1344 | | xargs -0 rm -f |
1345 | rm -f $(OBJS) *.bak tags TAGS | 1345 | rm -f $(OBJS) *.bak tags TAGS |
1346 | rm -fr *.*~ | 1346 | rm -fr *.*~ |
1347 | rm -f u-boot u-boot.map $(ALL) | 1347 | rm -f u-boot u-boot.map $(ALL) |
1348 | rm -f tools/crc32.c tools/environment.c tools/env/crc32.c | 1348 | rm -f tools/crc32.c tools/environment.c tools/env/crc32.c |
1349 | rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c | 1349 | rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c |
1350 | rm -f include/asm/proc include/asm/arch include/asm | 1350 | rm -f include/asm/proc include/asm/arch include/asm |
1351 | 1351 | ||
1352 | mrproper \ | 1352 | mrproper \ |
1353 | distclean: clobber unconfig | 1353 | distclean: clobber unconfig |
1354 | 1354 | ||
1355 | backup: | 1355 | backup: |
1356 | F=`basename $(TOPDIR)` ; cd .. ; \ | 1356 | F=`basename $(TOPDIR)` ; cd .. ; \ |
1357 | gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F | 1357 | gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F |
1358 | 1358 | ||
1359 | ######################################################################### | 1359 | ######################################################################### |
1360 | 1360 |
README
1 | # | 1 | # |
2 | # (C) Copyright 2000 - 2004 | 2 | # (C) Copyright 2000 - 2004 |
3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | 3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
4 | # | 4 | # |
5 | # See file CREDITS for list of people who contributed to this | 5 | # See file CREDITS for list of people who contributed to this |
6 | # project. | 6 | # project. |
7 | # | 7 | # |
8 | # This program is free software; you can redistribute it and/or | 8 | # This program is free software; you can redistribute it and/or |
9 | # modify it under the terms of the GNU General Public License as | 9 | # modify it under the terms of the GNU General Public License as |
10 | # published by the Free Software Foundation; either version 2 of | 10 | # published by the Free Software Foundation; either version 2 of |
11 | # the License, or (at your option) any later version. | 11 | # the License, or (at your option) any later version. |
12 | # | 12 | # |
13 | # This program is distributed in the hope that it will be useful, | 13 | # This program is distributed in the hope that it will be useful, |
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | # GNU General Public License for more details. | 16 | # GNU General Public License for more details. |
17 | # | 17 | # |
18 | # You should have received a copy of the GNU General Public License | 18 | # You should have received a copy of the GNU General Public License |
19 | # along with this program; if not, write to the Free Software | 19 | # along with this program; if not, write to the Free Software |
20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
21 | # MA 02111-1307 USA | 21 | # MA 02111-1307 USA |
22 | # | 22 | # |
23 | 23 | ||
24 | Summary: | 24 | Summary: |
25 | ======== | 25 | ======== |
26 | 26 | ||
27 | This directory contains the source code for U-Boot, a boot loader for | 27 | This directory contains the source code for U-Boot, a boot loader for |
28 | Embedded boards based on PowerPC and ARM processors, which can be | 28 | Embedded boards based on PowerPC and ARM processors, which can be |
29 | installed in a boot ROM and used to initialize and test the hardware | 29 | installed in a boot ROM and used to initialize and test the hardware |
30 | or to download and run application code. | 30 | or to download and run application code. |
31 | 31 | ||
32 | The development of U-Boot is closely related to Linux: some parts of | 32 | The development of U-Boot is closely related to Linux: some parts of |
33 | the source code originate in the Linux source tree, we have some | 33 | the source code originate in the Linux source tree, we have some |
34 | header files in common, and special provision has been made to | 34 | header files in common, and special provision has been made to |
35 | support booting of Linux images. | 35 | support booting of Linux images. |
36 | 36 | ||
37 | Some attention has been paid to make this software easily | 37 | Some attention has been paid to make this software easily |
38 | configurable and extendable. For instance, all monitor commands are | 38 | configurable and extendable. For instance, all monitor commands are |
39 | implemented with the same call interface, so that it's very easy to | 39 | implemented with the same call interface, so that it's very easy to |
40 | add new commands. Also, instead of permanently adding rarely used | 40 | add new commands. Also, instead of permanently adding rarely used |
41 | code (for instance hardware test utilities) to the monitor, you can | 41 | code (for instance hardware test utilities) to the monitor, you can |
42 | load and run it dynamically. | 42 | load and run it dynamically. |
43 | 43 | ||
44 | 44 | ||
45 | Status: | 45 | Status: |
46 | ======= | 46 | ======= |
47 | 47 | ||
48 | In general, all boards for which a configuration option exists in the | 48 | In general, all boards for which a configuration option exists in the |
49 | Makefile have been tested to some extent and can be considered | 49 | Makefile have been tested to some extent and can be considered |
50 | "working". In fact, many of them are used in production systems. | 50 | "working". In fact, many of them are used in production systems. |
51 | 51 | ||
52 | In case of problems see the CHANGELOG and CREDITS files to find out | 52 | In case of problems see the CHANGELOG and CREDITS files to find out |
53 | who contributed the specific port. | 53 | who contributed the specific port. |
54 | 54 | ||
55 | 55 | ||
56 | Where to get help: | 56 | Where to get help: |
57 | ================== | 57 | ================== |
58 | 58 | ||
59 | In case you have questions about, problems with or contributions for | 59 | In case you have questions about, problems with or contributions for |
60 | U-Boot you should send a message to the U-Boot mailing list at | 60 | U-Boot you should send a message to the U-Boot mailing list at |
61 | <u-boot-users@lists.sourceforge.net>. There is also an archive of | 61 | <u-boot-users@lists.sourceforge.net>. There is also an archive of |
62 | previous traffic on the mailing list - please search the archive | 62 | previous traffic on the mailing list - please search the archive |
63 | before asking FAQ's. Please see | 63 | before asking FAQ's. Please see |
64 | http://lists.sourceforge.net/lists/listinfo/u-boot-users/ | 64 | http://lists.sourceforge.net/lists/listinfo/u-boot-users/ |
65 | 65 | ||
66 | 66 | ||
67 | Where we come from: | 67 | Where we come from: |
68 | =================== | 68 | =================== |
69 | 69 | ||
70 | - start from 8xxrom sources | 70 | - start from 8xxrom sources |
71 | - create PPCBoot project (http://sourceforge.net/projects/ppcboot) | 71 | - create PPCBoot project (http://sourceforge.net/projects/ppcboot) |
72 | - clean up code | 72 | - clean up code |
73 | - make it easier to add custom boards | 73 | - make it easier to add custom boards |
74 | - make it possible to add other [PowerPC] CPUs | 74 | - make it possible to add other [PowerPC] CPUs |
75 | - extend functions, especially: | 75 | - extend functions, especially: |
76 | * Provide extended interface to Linux boot loader | 76 | * Provide extended interface to Linux boot loader |
77 | * S-Record download | 77 | * S-Record download |
78 | * network boot | 78 | * network boot |
79 | * PCMCIA / CompactFLash / ATA disk / SCSI ... boot | 79 | * PCMCIA / CompactFLash / ATA disk / SCSI ... boot |
80 | - create ARMBoot project (http://sourceforge.net/projects/armboot) | 80 | - create ARMBoot project (http://sourceforge.net/projects/armboot) |
81 | - add other CPU families (starting with ARM) | 81 | - add other CPU families (starting with ARM) |
82 | - create U-Boot project (http://sourceforge.net/projects/u-boot) | 82 | - create U-Boot project (http://sourceforge.net/projects/u-boot) |
83 | 83 | ||
84 | 84 | ||
85 | Names and Spelling: | 85 | Names and Spelling: |
86 | =================== | 86 | =================== |
87 | 87 | ||
88 | The "official" name of this project is "Das U-Boot". The spelling | 88 | The "official" name of this project is "Das U-Boot". The spelling |
89 | "U-Boot" shall be used in all written text (documentation, comments | 89 | "U-Boot" shall be used in all written text (documentation, comments |
90 | in source files etc.). Example: | 90 | in source files etc.). Example: |
91 | 91 | ||
92 | This is the README file for the U-Boot project. | 92 | This is the README file for the U-Boot project. |
93 | 93 | ||
94 | File names etc. shall be based on the string "u-boot". Examples: | 94 | File names etc. shall be based on the string "u-boot". Examples: |
95 | 95 | ||
96 | include/asm-ppc/u-boot.h | 96 | include/asm-ppc/u-boot.h |
97 | 97 | ||
98 | #include <asm/u-boot.h> | 98 | #include <asm/u-boot.h> |
99 | 99 | ||
100 | Variable names, preprocessor constants etc. shall be either based on | 100 | Variable names, preprocessor constants etc. shall be either based on |
101 | the string "u_boot" or on "U_BOOT". Example: | 101 | the string "u_boot" or on "U_BOOT". Example: |
102 | 102 | ||
103 | U_BOOT_VERSION u_boot_logo | 103 | U_BOOT_VERSION u_boot_logo |
104 | IH_OS_U_BOOT u_boot_hush_start | 104 | IH_OS_U_BOOT u_boot_hush_start |
105 | 105 | ||
106 | 106 | ||
107 | Versioning: | 107 | Versioning: |
108 | =========== | 108 | =========== |
109 | 109 | ||
110 | U-Boot uses a 3 level version number containing a version, a | 110 | U-Boot uses a 3 level version number containing a version, a |
111 | sub-version, and a patchlevel: "U-Boot-2.34.5" means version "2", | 111 | sub-version, and a patchlevel: "U-Boot-2.34.5" means version "2", |
112 | sub-version "34", and patchlevel "4". | 112 | sub-version "34", and patchlevel "4". |
113 | 113 | ||
114 | The patchlevel is used to indicate certain stages of development | 114 | The patchlevel is used to indicate certain stages of development |
115 | between released versions, i. e. officially released versions of | 115 | between released versions, i. e. officially released versions of |
116 | U-Boot will always have a patchlevel of "0". | 116 | U-Boot will always have a patchlevel of "0". |
117 | 117 | ||
118 | 118 | ||
119 | Directory Hierarchy: | 119 | Directory Hierarchy: |
120 | ==================== | 120 | ==================== |
121 | 121 | ||
122 | - board Board dependent files | 122 | - board Board dependent files |
123 | - common Misc architecture independent functions | 123 | - common Misc architecture independent functions |
124 | - cpu CPU specific files | 124 | - cpu CPU specific files |
125 | - 74xx_7xx Files specific to Motorola MPC74xx and 7xx CPUs | 125 | - 74xx_7xx Files specific to Motorola MPC74xx and 7xx CPUs |
126 | - arm720t Files specific to ARM 720 CPUs | 126 | - arm720t Files specific to ARM 720 CPUs |
127 | - arm920t Files specific to ARM 920 CPUs | 127 | - arm920t Files specific to ARM 920 CPUs |
128 | - arm925t Files specific to ARM 925 CPUs | 128 | - arm925t Files specific to ARM 925 CPUs |
129 | - arm926ejs Files specific to ARM 926 CPUs | 129 | - arm926ejs Files specific to ARM 926 CPUs |
130 | - at91rm9200 Files specific to Atmel AT91RM9200 CPUs | 130 | - at91rm9200 Files specific to Atmel AT91RM9200 CPUs |
131 | - i386 Files specific to i386 CPUs | 131 | - i386 Files specific to i386 CPUs |
132 | - ixp Files specific to Intel XScale IXP CPUs | 132 | - ixp Files specific to Intel XScale IXP CPUs |
133 | - mcf52x2 Files specific to Motorola ColdFire MCF52x2 CPUs | 133 | - mcf52x2 Files specific to Motorola ColdFire MCF52x2 CPUs |
134 | - mips Files specific to MIPS CPUs | 134 | - mips Files specific to MIPS CPUs |
135 | - mpc5xx Files specific to Motorola MPC5xx CPUs | 135 | - mpc5xx Files specific to Motorola MPC5xx CPUs |
136 | - mpc5xxx Files specific to Motorola MPC5xxx CPUs | 136 | - mpc5xxx Files specific to Motorola MPC5xxx CPUs |
137 | - mpc8xx Files specific to Motorola MPC8xx CPUs | 137 | - mpc8xx Files specific to Motorola MPC8xx CPUs |
138 | - mpc824x Files specific to Motorola MPC824x CPUs | 138 | - mpc824x Files specific to Motorola MPC824x CPUs |
139 | - mpc8260 Files specific to Motorola MPC8260 CPUs | 139 | - mpc8260 Files specific to Motorola MPC8260 CPUs |
140 | - mpc85xx Files specific to Motorola MPC85xx CPUs | 140 | - mpc85xx Files specific to Motorola MPC85xx CPUs |
141 | - nios Files specific to Altera NIOS CPUs | 141 | - nios Files specific to Altera NIOS CPUs |
142 | - ppc4xx Files specific to IBM PowerPC 4xx CPUs | 142 | - ppc4xx Files specific to IBM PowerPC 4xx CPUs |
143 | - pxa Files specific to Intel XScale PXA CPUs | 143 | - pxa Files specific to Intel XScale PXA CPUs |
144 | - s3c44b0 Files specific to Samsung S3C44B0 CPUs | 144 | - s3c44b0 Files specific to Samsung S3C44B0 CPUs |
145 | - sa1100 Files specific to Intel StrongARM SA1100 CPUs | 145 | - sa1100 Files specific to Intel StrongARM SA1100 CPUs |
146 | - disk Code for disk drive partition handling | 146 | - disk Code for disk drive partition handling |
147 | - doc Documentation (don't expect too much) | 147 | - doc Documentation (don't expect too much) |
148 | - drivers Commonly used device drivers | 148 | - drivers Commonly used device drivers |
149 | - dtt Digital Thermometer and Thermostat drivers | 149 | - dtt Digital Thermometer and Thermostat drivers |
150 | - examples Example code for standalone applications, etc. | 150 | - examples Example code for standalone applications, etc. |
151 | - include Header Files | 151 | - include Header Files |
152 | - lib_arm Files generic to ARM architecture | 152 | - lib_arm Files generic to ARM architecture |
153 | - lib_generic Files generic to all architectures | 153 | - lib_generic Files generic to all architectures |
154 | - lib_i386 Files generic to i386 architecture | 154 | - lib_i386 Files generic to i386 architecture |
155 | - lib_m68k Files generic to m68k architecture | 155 | - lib_m68k Files generic to m68k architecture |
156 | - lib_mips Files generic to MIPS architecture | 156 | - lib_mips Files generic to MIPS architecture |
157 | - lib_nios Files generic to NIOS architecture | 157 | - lib_nios Files generic to NIOS architecture |
158 | - lib_ppc Files generic to PowerPC architecture | 158 | - lib_ppc Files generic to PowerPC architecture |
159 | - net Networking code | 159 | - net Networking code |
160 | - post Power On Self Test | 160 | - post Power On Self Test |
161 | - rtc Real Time Clock drivers | 161 | - rtc Real Time Clock drivers |
162 | - tools Tools to build S-Record or U-Boot images, etc. | 162 | - tools Tools to build S-Record or U-Boot images, etc. |
163 | 163 | ||
164 | Software Configuration: | 164 | Software Configuration: |
165 | ======================= | 165 | ======================= |
166 | 166 | ||
167 | Configuration is usually done using C preprocessor defines; the | 167 | Configuration is usually done using C preprocessor defines; the |
168 | rationale behind that is to avoid dead code whenever possible. | 168 | rationale behind that is to avoid dead code whenever possible. |
169 | 169 | ||
170 | There are two classes of configuration variables: | 170 | There are two classes of configuration variables: |
171 | 171 | ||
172 | * Configuration _OPTIONS_: | 172 | * Configuration _OPTIONS_: |
173 | These are selectable by the user and have names beginning with | 173 | These are selectable by the user and have names beginning with |
174 | "CONFIG_". | 174 | "CONFIG_". |
175 | 175 | ||
176 | * Configuration _SETTINGS_: | 176 | * Configuration _SETTINGS_: |
177 | These depend on the hardware etc. and should not be meddled with if | 177 | These depend on the hardware etc. and should not be meddled with if |
178 | you don't know what you're doing; they have names beginning with | 178 | you don't know what you're doing; they have names beginning with |
179 | "CFG_". | 179 | "CFG_". |
180 | 180 | ||
181 | Later we will add a configuration tool - probably similar to or even | 181 | Later we will add a configuration tool - probably similar to or even |
182 | identical to what's used for the Linux kernel. Right now, we have to | 182 | identical to what's used for the Linux kernel. Right now, we have to |
183 | do the configuration by hand, which means creating some symbolic | 183 | do the configuration by hand, which means creating some symbolic |
184 | links and editing some configuration files. We use the TQM8xxL boards | 184 | links and editing some configuration files. We use the TQM8xxL boards |
185 | as an example here. | 185 | as an example here. |
186 | 186 | ||
187 | 187 | ||
188 | Selection of Processor Architecture and Board Type: | 188 | Selection of Processor Architecture and Board Type: |
189 | --------------------------------------------------- | 189 | --------------------------------------------------- |
190 | 190 | ||
191 | For all supported boards there are ready-to-use default | 191 | For all supported boards there are ready-to-use default |
192 | configurations available; just type "make <board_name>_config". | 192 | configurations available; just type "make <board_name>_config". |
193 | 193 | ||
194 | Example: For a TQM823L module type: | 194 | Example: For a TQM823L module type: |
195 | 195 | ||
196 | cd u-boot | 196 | cd u-boot |
197 | make TQM823L_config | 197 | make TQM823L_config |
198 | 198 | ||
199 | For the Cogent platform, you need to specify the cpu type as well; | 199 | For the Cogent platform, you need to specify the cpu type as well; |
200 | e.g. "make cogent_mpc8xx_config". And also configure the cogent | 200 | e.g. "make cogent_mpc8xx_config". And also configure the cogent |
201 | directory according to the instructions in cogent/README. | 201 | directory according to the instructions in cogent/README. |
202 | 202 | ||
203 | 203 | ||
204 | Configuration Options: | 204 | Configuration Options: |
205 | ---------------------- | 205 | ---------------------- |
206 | 206 | ||
207 | Configuration depends on the combination of board and CPU type; all | 207 | Configuration depends on the combination of board and CPU type; all |
208 | such information is kept in a configuration file | 208 | such information is kept in a configuration file |
209 | "include/configs/<board_name>.h". | 209 | "include/configs/<board_name>.h". |
210 | 210 | ||
211 | Example: For a TQM823L module, all configuration settings are in | 211 | Example: For a TQM823L module, all configuration settings are in |
212 | "include/configs/TQM823L.h". | 212 | "include/configs/TQM823L.h". |
213 | 213 | ||
214 | 214 | ||
215 | Many of the options are named exactly as the corresponding Linux | 215 | Many of the options are named exactly as the corresponding Linux |
216 | kernel configuration options. The intention is to make it easier to | 216 | kernel configuration options. The intention is to make it easier to |
217 | build a config tool - later. | 217 | build a config tool - later. |
218 | 218 | ||
219 | 219 | ||
220 | The following options need to be configured: | 220 | The following options need to be configured: |
221 | 221 | ||
222 | - CPU Type: Define exactly one of | 222 | - CPU Type: Define exactly one of |
223 | 223 | ||
224 | PowerPC based CPUs: | 224 | PowerPC based CPUs: |
225 | ------------------- | 225 | ------------------- |
226 | CONFIG_MPC823, CONFIG_MPC850, CONFIG_MPC855, CONFIG_MPC860 | 226 | CONFIG_MPC823, CONFIG_MPC850, CONFIG_MPC855, CONFIG_MPC860 |
227 | or CONFIG_MPC5xx | 227 | or CONFIG_MPC5xx |
228 | or CONFIG_MPC824X, CONFIG_MPC8260 | 228 | or CONFIG_MPC824X, CONFIG_MPC8260 |
229 | or CONFIG_MPC85xx | 229 | or CONFIG_MPC85xx |
230 | or CONFIG_IOP480 | 230 | or CONFIG_IOP480 |
231 | or CONFIG_405GP | 231 | or CONFIG_405GP |
232 | or CONFIG_405EP | 232 | or CONFIG_405EP |
233 | or CONFIG_440 | 233 | or CONFIG_440 |
234 | or CONFIG_MPC74xx | 234 | or CONFIG_MPC74xx |
235 | or CONFIG_750FX | 235 | or CONFIG_750FX |
236 | 236 | ||
237 | ARM based CPUs: | 237 | ARM based CPUs: |
238 | --------------- | 238 | --------------- |
239 | CONFIG_SA1110 | 239 | CONFIG_SA1110 |
240 | CONFIG_ARM7 | 240 | CONFIG_ARM7 |
241 | CONFIG_PXA250 | 241 | CONFIG_PXA250 |
242 | 242 | ||
243 | MicroBlaze based CPUs: | 243 | MicroBlaze based CPUs: |
244 | ---------------------- | 244 | ---------------------- |
245 | CONFIG_MICROBLZE | 245 | CONFIG_MICROBLZE |
246 | 246 | ||
247 | 247 | ||
248 | - Board Type: Define exactly one of | 248 | - Board Type: Define exactly one of |
249 | 249 | ||
250 | PowerPC based boards: | 250 | PowerPC based boards: |
251 | --------------------- | 251 | --------------------- |
252 | 252 | ||
253 | CONFIG_ADCIOP CONFIG_GEN860T CONFIG_PCI405 | 253 | CONFIG_ADCIOP CONFIG_GEN860T CONFIG_PCI405 |
254 | CONFIG_ADS860 CONFIG_GENIETV CONFIG_PCIPPC2 | 254 | CONFIG_ADS860 CONFIG_GENIETV CONFIG_PCIPPC2 |
255 | CONFIG_AMX860 CONFIG_GTH CONFIG_PCIPPC6 | 255 | CONFIG_AMX860 CONFIG_GTH CONFIG_PCIPPC6 |
256 | CONFIG_AR405 CONFIG_gw8260 CONFIG_pcu_e | 256 | CONFIG_AR405 CONFIG_gw8260 CONFIG_pcu_e |
257 | CONFIG_BAB7xx CONFIG_hermes CONFIG_PIP405 | 257 | CONFIG_BAB7xx CONFIG_hermes CONFIG_PIP405 |
258 | CONFIG_c2mon CONFIG_hymod CONFIG_PM826 | 258 | CONFIG_c2mon CONFIG_hymod CONFIG_PM826 |
259 | CONFIG_CANBT CONFIG_IAD210 CONFIG_ppmc8260 | 259 | CONFIG_CANBT CONFIG_IAD210 CONFIG_ppmc8260 |
260 | CONFIG_CCM CONFIG_ICU862 CONFIG_QS823 | 260 | CONFIG_CCM CONFIG_ICU862 CONFIG_QS823 |
261 | CONFIG_CMI CONFIG_IP860 CONFIG_QS850 | 261 | CONFIG_CMI CONFIG_IP860 CONFIG_QS850 |
262 | CONFIG_cogent_mpc8260 CONFIG_IPHASE4539 CONFIG_QS860T | 262 | CONFIG_cogent_mpc8260 CONFIG_IPHASE4539 CONFIG_QS860T |
263 | CONFIG_cogent_mpc8xx CONFIG_IVML24 CONFIG_RBC823 | 263 | CONFIG_cogent_mpc8xx CONFIG_IVML24 CONFIG_RBC823 |
264 | CONFIG_CPCI405 CONFIG_IVML24_128 CONFIG_RPXClassic | 264 | CONFIG_CPCI405 CONFIG_IVML24_128 CONFIG_RPXClassic |
265 | CONFIG_CPCI4052 CONFIG_IVML24_256 CONFIG_RPXlite | 265 | CONFIG_CPCI4052 CONFIG_IVML24_256 CONFIG_RPXlite |
266 | CONFIG_CPCIISER4 CONFIG_IVMS8 CONFIG_RPXsuper | 266 | CONFIG_CPCIISER4 CONFIG_IVMS8 CONFIG_RPXsuper |
267 | CONFIG_CPU86 CONFIG_IVMS8_128 CONFIG_rsdproto | 267 | CONFIG_CPU86 CONFIG_IVMS8_128 CONFIG_rsdproto |
268 | CONFIG_CRAYL1 CONFIG_IVMS8_256 CONFIG_sacsng | 268 | CONFIG_CRAYL1 CONFIG_IVMS8_256 CONFIG_sacsng |
269 | CONFIG_CSB272 CONFIG_JSE CONFIG_Sandpoint8240 | 269 | CONFIG_CSB272 CONFIG_JSE CONFIG_Sandpoint8240 |
270 | CONFIG_CU824 CONFIG_LANTEC CONFIG_Sandpoint8245 | 270 | CONFIG_CU824 CONFIG_LANTEC CONFIG_Sandpoint8245 |
271 | CONFIG_DASA_SIM CONFIG_lwmon CONFIG_sbc8260 | 271 | CONFIG_DASA_SIM CONFIG_lwmon CONFIG_sbc8260 |
272 | CONFIG_DB64360 CONFIG_MBX CONFIG_SM850 | 272 | CONFIG_DB64360 CONFIG_MBX CONFIG_SM850 |
273 | CONFIG_DB64460 CONFIG_MBX860T CONFIG_SPD823TS | 273 | CONFIG_DB64460 CONFIG_MBX860T CONFIG_SPD823TS |
274 | CONFIG_DU405 CONFIG_MHPC CONFIG_STXGP3 | 274 | CONFIG_DU405 CONFIG_MHPC CONFIG_STXGP3 |
275 | CONFIG_DUET_ADS CONFIG_MIP405 CONFIG_SXNI855T | 275 | CONFIG_DUET_ADS CONFIG_MIP405 CONFIG_SXNI855T |
276 | CONFIG_EBONY CONFIG_MOUSSE CONFIG_TQM823L | 276 | CONFIG_EBONY CONFIG_MOUSSE CONFIG_TQM823L |
277 | CONFIG_ELPPC CONFIG_MPC8260ADS CONFIG_TQM8260 | 277 | CONFIG_ELPPC CONFIG_MPC8260ADS CONFIG_TQM8260 |
278 | CONFIG_ELPT860 CONFIG_MPC8540ADS CONFIG_TQM850L | 278 | CONFIG_ELPT860 CONFIG_MPC8540ADS CONFIG_TQM850L |
279 | CONFIG_ep8260 CONFIG_MPC8560ADS CONFIG_TQM855L | 279 | CONFIG_ep8260 CONFIG_MPC8560ADS CONFIG_TQM855L |
280 | CONFIG_ERIC CONFIG_MUSENKI CONFIG_TQM860L | 280 | CONFIG_ERIC CONFIG_MUSENKI CONFIG_TQM860L |
281 | CONFIG_ESTEEM192E CONFIG_MVS1 CONFIG_TTTech | 281 | CONFIG_ESTEEM192E CONFIG_MVS1 CONFIG_TTTech |
282 | CONFIG_ETX094 CONFIG_NETPHONE CONFIG_UTX8245 | 282 | CONFIG_ETX094 CONFIG_NETPHONE CONFIG_UTX8245 |
283 | CONFIG_EVB64260 CONFIG_NETTA CONFIG_V37 | 283 | CONFIG_EVB64260 CONFIG_NETTA CONFIG_V37 |
284 | CONFIG_FADS823 CONFIG_NETVIA CONFIG_W7OLMC | 284 | CONFIG_FADS823 CONFIG_NETVIA CONFIG_W7OLMC |
285 | CONFIG_FADS850SAR CONFIG_NX823 CONFIG_W7OLMG | 285 | CONFIG_FADS850SAR CONFIG_NX823 CONFIG_W7OLMG |
286 | CONFIG_FADS860T CONFIG_OCRTC CONFIG_WALNUT405 | 286 | CONFIG_FADS860T CONFIG_OCRTC CONFIG_WALNUT405 |
287 | CONFIG_FLAGADM CONFIG_ORSG CONFIG_ZPC1900 | 287 | CONFIG_FLAGADM CONFIG_ORSG CONFIG_ZPC1900 |
288 | CONFIG_FPS850L CONFIG_OXC CONFIG_ZUMA | 288 | CONFIG_FPS850L CONFIG_OXC CONFIG_ZUMA |
289 | CONFIG_FPS860L | 289 | CONFIG_FPS860L |
290 | 290 | ||
291 | ARM based boards: | 291 | ARM based boards: |
292 | ----------------- | 292 | ----------------- |
293 | 293 | ||
294 | CONFIG_AT91RM9200DK, CONFIG_DNP1110, CONFIG_EP7312, | 294 | CONFIG_AT91RM9200DK, CONFIG_DNP1110, CONFIG_EP7312, |
295 | CONFIG_H2_OMAP1610, CONFIG_HHP_CRADLE, CONFIG_IMPA7, | 295 | CONFIG_H2_OMAP1610, CONFIG_HHP_CRADLE, CONFIG_IMPA7, |
296 | CONFIG_INNOVATOROMAP1510, CONFIG_INNOVATOROMAP1610, CONFIG_LART, | 296 | CONFIG_INNOVATOROMAP1510, CONFIG_INNOVATOROMAP1610, CONFIG_LART, |
297 | CONFIG_LPD7A400 CONFIG_LUBBOCK, CONFIG_OSK_OMAP5912, | 297 | CONFIG_LPD7A400 CONFIG_LUBBOCK, CONFIG_OSK_OMAP5912, |
298 | CONFIG_SHANNON, CONFIG_P2_OMAP730, CONFIG_SMDK2400, | 298 | CONFIG_SHANNON, CONFIG_P2_OMAP730, CONFIG_SMDK2400, |
299 | CONFIG_SMDK2410, CONFIG_TRAB, CONFIG_VCMA9 | 299 | CONFIG_SMDK2410, CONFIG_TRAB, CONFIG_VCMA9 |
300 | 300 | ||
301 | MicroBlaze based boards: | 301 | MicroBlaze based boards: |
302 | ------------------------ | 302 | ------------------------ |
303 | 303 | ||
304 | CONFIG_SUZAKU | 304 | CONFIG_SUZAKU |
305 | 305 | ||
306 | 306 | ||
307 | - CPU Module Type: (if CONFIG_COGENT is defined) | 307 | - CPU Module Type: (if CONFIG_COGENT is defined) |
308 | Define exactly one of | 308 | Define exactly one of |
309 | CONFIG_CMA286_60_OLD | 309 | CONFIG_CMA286_60_OLD |
310 | --- FIXME --- not tested yet: | 310 | --- FIXME --- not tested yet: |
311 | CONFIG_CMA286_60, CONFIG_CMA286_21, CONFIG_CMA286_60P, | 311 | CONFIG_CMA286_60, CONFIG_CMA286_21, CONFIG_CMA286_60P, |
312 | CONFIG_CMA287_23, CONFIG_CMA287_50 | 312 | CONFIG_CMA287_23, CONFIG_CMA287_50 |
313 | 313 | ||
314 | - Motherboard Type: (if CONFIG_COGENT is defined) | 314 | - Motherboard Type: (if CONFIG_COGENT is defined) |
315 | Define exactly one of | 315 | Define exactly one of |
316 | CONFIG_CMA101, CONFIG_CMA102 | 316 | CONFIG_CMA101, CONFIG_CMA102 |
317 | 317 | ||
318 | - Motherboard I/O Modules: (if CONFIG_COGENT is defined) | 318 | - Motherboard I/O Modules: (if CONFIG_COGENT is defined) |
319 | Define one or more of | 319 | Define one or more of |
320 | CONFIG_CMA302 | 320 | CONFIG_CMA302 |
321 | 321 | ||
322 | - Motherboard Options: (if CONFIG_CMA101 or CONFIG_CMA102 are defined) | 322 | - Motherboard Options: (if CONFIG_CMA101 or CONFIG_CMA102 are defined) |
323 | Define one or more of | 323 | Define one or more of |
324 | CONFIG_LCD_HEARTBEAT - update a character position on | 324 | CONFIG_LCD_HEARTBEAT - update a character position on |
325 | the lcd display every second with | 325 | the lcd display every second with |
326 | a "rotator" |\-/|\-/ | 326 | a "rotator" |\-/|\-/ |
327 | 327 | ||
328 | - Board flavour: (if CONFIG_MPC8260ADS is defined) | 328 | - Board flavour: (if CONFIG_MPC8260ADS is defined) |
329 | CONFIG_ADSTYPE | 329 | CONFIG_ADSTYPE |
330 | Possible values are: | 330 | Possible values are: |
331 | CFG_8260ADS - original MPC8260ADS | 331 | CFG_8260ADS - original MPC8260ADS |
332 | CFG_8266ADS - MPC8266ADS | 332 | CFG_8266ADS - MPC8266ADS |
333 | CFG_PQ2FADS - PQ2FADS-ZU or PQ2FADS-VR | 333 | CFG_PQ2FADS - PQ2FADS-ZU or PQ2FADS-VR |
334 | CFG_8272ADS - MPC8272ADS | 334 | CFG_8272ADS - MPC8272ADS |
335 | 335 | ||
336 | - MPC824X Family Member (if CONFIG_MPC824X is defined) | 336 | - MPC824X Family Member (if CONFIG_MPC824X is defined) |
337 | Define exactly one of | 337 | Define exactly one of |
338 | CONFIG_MPC8240, CONFIG_MPC8245 | 338 | CONFIG_MPC8240, CONFIG_MPC8245 |
339 | 339 | ||
340 | - 8xx CPU Options: (if using an MPC8xx cpu) | 340 | - 8xx CPU Options: (if using an MPC8xx cpu) |
341 | Define one or more of | 341 | Define one or more of |
342 | CONFIG_8xx_GCLK_FREQ - if get_gclk_freq() cannot work | 342 | CONFIG_8xx_GCLK_FREQ - if get_gclk_freq() cannot work |
343 | e.g. if there is no 32KHz | 343 | e.g. if there is no 32KHz |
344 | reference PIT/RTC clock | 344 | reference PIT/RTC clock |
345 | 345 | ||
346 | - 859/866 CPU options: (if using a MPC859 or MPC866 CPU): | 346 | - 859/866 CPU options: (if using a MPC859 or MPC866 CPU): |
347 | CFG_866_OSCCLK | 347 | CFG_866_OSCCLK |
348 | CFG_866_CPUCLK_MIN | 348 | CFG_866_CPUCLK_MIN |
349 | CFG_866_CPUCLK_MAX | 349 | CFG_866_CPUCLK_MAX |
350 | CFG_866_CPUCLK_DEFAULT | 350 | CFG_866_CPUCLK_DEFAULT |
351 | See doc/README.MPC866 | 351 | See doc/README.MPC866 |
352 | 352 | ||
353 | CFG_MEASURE_CPUCLK | 353 | CFG_MEASURE_CPUCLK |
354 | 354 | ||
355 | Define this to measure the actual CPU clock instead | 355 | Define this to measure the actual CPU clock instead |
356 | of relying on the correctness of the configured | 356 | of relying on the correctness of the configured |
357 | values. Mostly useful for board bringup to make sure | 357 | values. Mostly useful for board bringup to make sure |
358 | the PLL is locked at the intended frequency. Note | 358 | the PLL is locked at the intended frequency. Note |
359 | that this requires a (stable) reference clock (32 kHz | 359 | that this requires a (stable) reference clock (32 kHz |
360 | RTC clock), | 360 | RTC clock), |
361 | 361 | ||
362 | - Linux Kernel Interface: | 362 | - Linux Kernel Interface: |
363 | CONFIG_CLOCKS_IN_MHZ | 363 | CONFIG_CLOCKS_IN_MHZ |
364 | 364 | ||
365 | U-Boot stores all clock information in Hz | 365 | U-Boot stores all clock information in Hz |
366 | internally. For binary compatibility with older Linux | 366 | internally. For binary compatibility with older Linux |
367 | kernels (which expect the clocks passed in the | 367 | kernels (which expect the clocks passed in the |
368 | bd_info data to be in MHz) the environment variable | 368 | bd_info data to be in MHz) the environment variable |
369 | "clocks_in_mhz" can be defined so that U-Boot | 369 | "clocks_in_mhz" can be defined so that U-Boot |
370 | converts clock data to MHZ before passing it to the | 370 | converts clock data to MHZ before passing it to the |
371 | Linux kernel. | 371 | Linux kernel. |
372 | When CONFIG_CLOCKS_IN_MHZ is defined, a definition of | 372 | When CONFIG_CLOCKS_IN_MHZ is defined, a definition of |
373 | "clocks_in_mhz=1" is automatically included in the | 373 | "clocks_in_mhz=1" is automatically included in the |
374 | default environment. | 374 | default environment. |
375 | 375 | ||
376 | CONFIG_MEMSIZE_IN_BYTES [relevant for MIPS only] | 376 | CONFIG_MEMSIZE_IN_BYTES [relevant for MIPS only] |
377 | 377 | ||
378 | When transfering memsize parameter to linux, some versions | 378 | When transfering memsize parameter to linux, some versions |
379 | expect it to be in bytes, others in MB. | 379 | expect it to be in bytes, others in MB. |
380 | Define CONFIG_MEMSIZE_IN_BYTES to make it in bytes. | 380 | Define CONFIG_MEMSIZE_IN_BYTES to make it in bytes. |
381 | 381 | ||
382 | - Console Interface: | 382 | - Console Interface: |
383 | Depending on board, define exactly one serial port | 383 | Depending on board, define exactly one serial port |
384 | (like CONFIG_8xx_CONS_SMC1, CONFIG_8xx_CONS_SMC2, | 384 | (like CONFIG_8xx_CONS_SMC1, CONFIG_8xx_CONS_SMC2, |
385 | CONFIG_8xx_CONS_SCC1, ...), or switch off the serial | 385 | CONFIG_8xx_CONS_SCC1, ...), or switch off the serial |
386 | console by defining CONFIG_8xx_CONS_NONE | 386 | console by defining CONFIG_8xx_CONS_NONE |
387 | 387 | ||
388 | Note: if CONFIG_8xx_CONS_NONE is defined, the serial | 388 | Note: if CONFIG_8xx_CONS_NONE is defined, the serial |
389 | port routines must be defined elsewhere | 389 | port routines must be defined elsewhere |
390 | (i.e. serial_init(), serial_getc(), ...) | 390 | (i.e. serial_init(), serial_getc(), ...) |
391 | 391 | ||
392 | CONFIG_CFB_CONSOLE | 392 | CONFIG_CFB_CONSOLE |
393 | Enables console device for a color framebuffer. Needs following | 393 | Enables console device for a color framebuffer. Needs following |
394 | defines (cf. smiLynxEM, i8042, board/eltec/bab7xx) | 394 | defines (cf. smiLynxEM, i8042, board/eltec/bab7xx) |
395 | VIDEO_FB_LITTLE_ENDIAN graphic memory organisation | 395 | VIDEO_FB_LITTLE_ENDIAN graphic memory organisation |
396 | (default big endian) | 396 | (default big endian) |
397 | VIDEO_HW_RECTFILL graphic chip supports | 397 | VIDEO_HW_RECTFILL graphic chip supports |
398 | rectangle fill | 398 | rectangle fill |
399 | (cf. smiLynxEM) | 399 | (cf. smiLynxEM) |
400 | VIDEO_HW_BITBLT graphic chip supports | 400 | VIDEO_HW_BITBLT graphic chip supports |
401 | bit-blit (cf. smiLynxEM) | 401 | bit-blit (cf. smiLynxEM) |
402 | VIDEO_VISIBLE_COLS visible pixel columns | 402 | VIDEO_VISIBLE_COLS visible pixel columns |
403 | (cols=pitch) | 403 | (cols=pitch) |
404 | VIDEO_VISIBLE_ROWS visible pixel rows | 404 | VIDEO_VISIBLE_ROWS visible pixel rows |
405 | VIDEO_PIXEL_SIZE bytes per pixel | 405 | VIDEO_PIXEL_SIZE bytes per pixel |
406 | VIDEO_DATA_FORMAT graphic data format | 406 | VIDEO_DATA_FORMAT graphic data format |
407 | (0-5, cf. cfb_console.c) | 407 | (0-5, cf. cfb_console.c) |
408 | VIDEO_FB_ADRS framebuffer address | 408 | VIDEO_FB_ADRS framebuffer address |
409 | VIDEO_KBD_INIT_FCT keyboard int fct | 409 | VIDEO_KBD_INIT_FCT keyboard int fct |
410 | (i.e. i8042_kbd_init()) | 410 | (i.e. i8042_kbd_init()) |
411 | VIDEO_TSTC_FCT test char fct | 411 | VIDEO_TSTC_FCT test char fct |
412 | (i.e. i8042_tstc) | 412 | (i.e. i8042_tstc) |
413 | VIDEO_GETC_FCT get char fct | 413 | VIDEO_GETC_FCT get char fct |
414 | (i.e. i8042_getc) | 414 | (i.e. i8042_getc) |
415 | CONFIG_CONSOLE_CURSOR cursor drawing on/off | 415 | CONFIG_CONSOLE_CURSOR cursor drawing on/off |
416 | (requires blink timer | 416 | (requires blink timer |
417 | cf. i8042.c) | 417 | cf. i8042.c) |
418 | CFG_CONSOLE_BLINK_COUNT blink interval (cf. i8042.c) | 418 | CFG_CONSOLE_BLINK_COUNT blink interval (cf. i8042.c) |
419 | CONFIG_CONSOLE_TIME display time/date info in | 419 | CONFIG_CONSOLE_TIME display time/date info in |
420 | upper right corner | 420 | upper right corner |
421 | (requires CFG_CMD_DATE) | 421 | (requires CFG_CMD_DATE) |
422 | CONFIG_VIDEO_LOGO display Linux logo in | 422 | CONFIG_VIDEO_LOGO display Linux logo in |
423 | upper left corner | 423 | upper left corner |
424 | CONFIG_VIDEO_BMP_LOGO use bmp_logo.h instead of | 424 | CONFIG_VIDEO_BMP_LOGO use bmp_logo.h instead of |
425 | linux_logo.h for logo. | 425 | linux_logo.h for logo. |
426 | Requires CONFIG_VIDEO_LOGO | 426 | Requires CONFIG_VIDEO_LOGO |
427 | CONFIG_CONSOLE_EXTRA_INFO | 427 | CONFIG_CONSOLE_EXTRA_INFO |
428 | addional board info beside | 428 | addional board info beside |
429 | the logo | 429 | the logo |
430 | 430 | ||
431 | When CONFIG_CFB_CONSOLE is defined, video console is | 431 | When CONFIG_CFB_CONSOLE is defined, video console is |
432 | default i/o. Serial console can be forced with | 432 | default i/o. Serial console can be forced with |
433 | environment 'console=serial'. | 433 | environment 'console=serial'. |
434 | 434 | ||
435 | When CONFIG_SILENT_CONSOLE is defined, all console | 435 | When CONFIG_SILENT_CONSOLE is defined, all console |
436 | messages (by U-Boot and Linux!) can be silenced with | 436 | messages (by U-Boot and Linux!) can be silenced with |
437 | the "silent" environment variable. See | 437 | the "silent" environment variable. See |
438 | doc/README.silent for more information. | 438 | doc/README.silent for more information. |
439 | 439 | ||
440 | - Console Baudrate: | 440 | - Console Baudrate: |
441 | CONFIG_BAUDRATE - in bps | 441 | CONFIG_BAUDRATE - in bps |
442 | Select one of the baudrates listed in | 442 | Select one of the baudrates listed in |
443 | CFG_BAUDRATE_TABLE, see below. | 443 | CFG_BAUDRATE_TABLE, see below. |
444 | CFG_BRGCLK_PRESCALE, baudrate prescale | 444 | CFG_BRGCLK_PRESCALE, baudrate prescale |
445 | 445 | ||
446 | - Interrupt driven serial port input: | 446 | - Interrupt driven serial port input: |
447 | CONFIG_SERIAL_SOFTWARE_FIFO | 447 | CONFIG_SERIAL_SOFTWARE_FIFO |
448 | 448 | ||
449 | PPC405GP only. | 449 | PPC405GP only. |
450 | Use an interrupt handler for receiving data on the | 450 | Use an interrupt handler for receiving data on the |
451 | serial port. It also enables using hardware handshake | 451 | serial port. It also enables using hardware handshake |
452 | (RTS/CTS) and UART's built-in FIFO. Set the number of | 452 | (RTS/CTS) and UART's built-in FIFO. Set the number of |
453 | bytes the interrupt driven input buffer should have. | 453 | bytes the interrupt driven input buffer should have. |
454 | 454 | ||
455 | Leave undefined to disable this feature, including | 455 | Leave undefined to disable this feature, including |
456 | disable the buffer and hardware handshake. | 456 | disable the buffer and hardware handshake. |
457 | 457 | ||
458 | - Console UART Number: | 458 | - Console UART Number: |
459 | CONFIG_UART1_CONSOLE | 459 | CONFIG_UART1_CONSOLE |
460 | 460 | ||
461 | IBM PPC4xx only. | 461 | IBM PPC4xx only. |
462 | If defined internal UART1 (and not UART0) is used | 462 | If defined internal UART1 (and not UART0) is used |
463 | as default U-Boot console. | 463 | as default U-Boot console. |
464 | 464 | ||
465 | - Boot Delay: CONFIG_BOOTDELAY - in seconds | 465 | - Boot Delay: CONFIG_BOOTDELAY - in seconds |
466 | Delay before automatically booting the default image; | 466 | Delay before automatically booting the default image; |
467 | set to -1 to disable autoboot. | 467 | set to -1 to disable autoboot. |
468 | 468 | ||
469 | See doc/README.autoboot for these options that | 469 | See doc/README.autoboot for these options that |
470 | work with CONFIG_BOOTDELAY. None are required. | 470 | work with CONFIG_BOOTDELAY. None are required. |
471 | CONFIG_BOOT_RETRY_TIME | 471 | CONFIG_BOOT_RETRY_TIME |
472 | CONFIG_BOOT_RETRY_MIN | 472 | CONFIG_BOOT_RETRY_MIN |
473 | CONFIG_AUTOBOOT_KEYED | 473 | CONFIG_AUTOBOOT_KEYED |
474 | CONFIG_AUTOBOOT_PROMPT | 474 | CONFIG_AUTOBOOT_PROMPT |
475 | CONFIG_AUTOBOOT_DELAY_STR | 475 | CONFIG_AUTOBOOT_DELAY_STR |
476 | CONFIG_AUTOBOOT_STOP_STR | 476 | CONFIG_AUTOBOOT_STOP_STR |
477 | CONFIG_AUTOBOOT_DELAY_STR2 | 477 | CONFIG_AUTOBOOT_DELAY_STR2 |
478 | CONFIG_AUTOBOOT_STOP_STR2 | 478 | CONFIG_AUTOBOOT_STOP_STR2 |
479 | CONFIG_ZERO_BOOTDELAY_CHECK | 479 | CONFIG_ZERO_BOOTDELAY_CHECK |
480 | CONFIG_RESET_TO_RETRY | 480 | CONFIG_RESET_TO_RETRY |
481 | 481 | ||
482 | - Autoboot Command: | 482 | - Autoboot Command: |
483 | CONFIG_BOOTCOMMAND | 483 | CONFIG_BOOTCOMMAND |
484 | Only needed when CONFIG_BOOTDELAY is enabled; | 484 | Only needed when CONFIG_BOOTDELAY is enabled; |
485 | define a command string that is automatically executed | 485 | define a command string that is automatically executed |
486 | when no character is read on the console interface | 486 | when no character is read on the console interface |
487 | within "Boot Delay" after reset. | 487 | within "Boot Delay" after reset. |
488 | 488 | ||
489 | CONFIG_BOOTARGS | 489 | CONFIG_BOOTARGS |
490 | This can be used to pass arguments to the bootm | 490 | This can be used to pass arguments to the bootm |
491 | command. The value of CONFIG_BOOTARGS goes into the | 491 | command. The value of CONFIG_BOOTARGS goes into the |
492 | environment value "bootargs". | 492 | environment value "bootargs". |
493 | 493 | ||
494 | CONFIG_RAMBOOT and CONFIG_NFSBOOT | 494 | CONFIG_RAMBOOT and CONFIG_NFSBOOT |
495 | The value of these goes into the environment as | 495 | The value of these goes into the environment as |
496 | "ramboot" and "nfsboot" respectively, and can be used | 496 | "ramboot" and "nfsboot" respectively, and can be used |
497 | as a convenience, when switching between booting from | 497 | as a convenience, when switching between booting from |
498 | ram and nfs. | 498 | ram and nfs. |
499 | 499 | ||
500 | - Pre-Boot Commands: | 500 | - Pre-Boot Commands: |
501 | CONFIG_PREBOOT | 501 | CONFIG_PREBOOT |
502 | 502 | ||
503 | When this option is #defined, the existence of the | 503 | When this option is #defined, the existence of the |
504 | environment variable "preboot" will be checked | 504 | environment variable "preboot" will be checked |
505 | immediately before starting the CONFIG_BOOTDELAY | 505 | immediately before starting the CONFIG_BOOTDELAY |
506 | countdown and/or running the auto-boot command resp. | 506 | countdown and/or running the auto-boot command resp. |
507 | entering interactive mode. | 507 | entering interactive mode. |
508 | 508 | ||
509 | This feature is especially useful when "preboot" is | 509 | This feature is especially useful when "preboot" is |
510 | automatically generated or modified. For an example | 510 | automatically generated or modified. For an example |
511 | see the LWMON board specific code: here "preboot" is | 511 | see the LWMON board specific code: here "preboot" is |
512 | modified when the user holds down a certain | 512 | modified when the user holds down a certain |
513 | combination of keys on the (special) keyboard when | 513 | combination of keys on the (special) keyboard when |
514 | booting the systems | 514 | booting the systems |
515 | 515 | ||
516 | - Serial Download Echo Mode: | 516 | - Serial Download Echo Mode: |
517 | CONFIG_LOADS_ECHO | 517 | CONFIG_LOADS_ECHO |
518 | If defined to 1, all characters received during a | 518 | If defined to 1, all characters received during a |
519 | serial download (using the "loads" command) are | 519 | serial download (using the "loads" command) are |
520 | echoed back. This might be needed by some terminal | 520 | echoed back. This might be needed by some terminal |
521 | emulations (like "cu"), but may as well just take | 521 | emulations (like "cu"), but may as well just take |
522 | time on others. This setting #define's the initial | 522 | time on others. This setting #define's the initial |
523 | value of the "loads_echo" environment variable. | 523 | value of the "loads_echo" environment variable. |
524 | 524 | ||
525 | - Kgdb Serial Baudrate: (if CFG_CMD_KGDB is defined) | 525 | - Kgdb Serial Baudrate: (if CFG_CMD_KGDB is defined) |
526 | CONFIG_KGDB_BAUDRATE | 526 | CONFIG_KGDB_BAUDRATE |
527 | Select one of the baudrates listed in | 527 | Select one of the baudrates listed in |
528 | CFG_BAUDRATE_TABLE, see below. | 528 | CFG_BAUDRATE_TABLE, see below. |
529 | 529 | ||
530 | - Monitor Functions: | 530 | - Monitor Functions: |
531 | CONFIG_COMMANDS | 531 | CONFIG_COMMANDS |
532 | Most monitor functions can be selected (or | 532 | Most monitor functions can be selected (or |
533 | de-selected) by adjusting the definition of | 533 | de-selected) by adjusting the definition of |
534 | CONFIG_COMMANDS; to select individual functions, | 534 | CONFIG_COMMANDS; to select individual functions, |
535 | #define CONFIG_COMMANDS by "OR"ing any of the | 535 | #define CONFIG_COMMANDS by "OR"ing any of the |
536 | following values: | 536 | following values: |
537 | 537 | ||
538 | #define enables commands: | 538 | #define enables commands: |
539 | ------------------------- | 539 | ------------------------- |
540 | CFG_CMD_ASKENV * ask for env variable | 540 | CFG_CMD_ASKENV * ask for env variable |
541 | CFG_CMD_AUTOSCRIPT Autoscript Support | 541 | CFG_CMD_AUTOSCRIPT Autoscript Support |
542 | CFG_CMD_BDI bdinfo | 542 | CFG_CMD_BDI bdinfo |
543 | CFG_CMD_BEDBUG Include BedBug Debugger | 543 | CFG_CMD_BEDBUG Include BedBug Debugger |
544 | CFG_CMD_BMP * BMP support | 544 | CFG_CMD_BMP * BMP support |
545 | CFG_CMD_BOOTD bootd | 545 | CFG_CMD_BOOTD bootd |
546 | CFG_CMD_CACHE icache, dcache | 546 | CFG_CMD_CACHE icache, dcache |
547 | CFG_CMD_CONSOLE coninfo | 547 | CFG_CMD_CONSOLE coninfo |
548 | CFG_CMD_DATE * support for RTC, date/time... | 548 | CFG_CMD_DATE * support for RTC, date/time... |
549 | CFG_CMD_DHCP DHCP support | 549 | CFG_CMD_DHCP DHCP support |
550 | CFG_CMD_DIAG * Diagnostics | 550 | CFG_CMD_DIAG * Diagnostics |
551 | CFG_CMD_DOC * Disk-On-Chip Support | 551 | CFG_CMD_DOC * Disk-On-Chip Support |
552 | CFG_CMD_DTT Digital Therm and Thermostat | 552 | CFG_CMD_DTT Digital Therm and Thermostat |
553 | CFG_CMD_ECHO * echo arguments | 553 | CFG_CMD_ECHO * echo arguments |
554 | CFG_CMD_EEPROM * EEPROM read/write support | 554 | CFG_CMD_EEPROM * EEPROM read/write support |
555 | CFG_CMD_ELF bootelf, bootvx | 555 | CFG_CMD_ELF bootelf, bootvx |
556 | CFG_CMD_ENV saveenv | 556 | CFG_CMD_ENV saveenv |
557 | CFG_CMD_FDC * Floppy Disk Support | 557 | CFG_CMD_FDC * Floppy Disk Support |
558 | CFG_CMD_FAT FAT partition support | 558 | CFG_CMD_FAT FAT partition support |
559 | CFG_CMD_FDOS * Dos diskette Support | 559 | CFG_CMD_FDOS * Dos diskette Support |
560 | CFG_CMD_FLASH flinfo, erase, protect | 560 | CFG_CMD_FLASH flinfo, erase, protect |
561 | CFG_CMD_FPGA FPGA device initialization support | 561 | CFG_CMD_FPGA FPGA device initialization support |
562 | CFG_CMD_HWFLOW * RTS/CTS hw flow control | 562 | CFG_CMD_HWFLOW * RTS/CTS hw flow control |
563 | CFG_CMD_I2C * I2C serial bus support | 563 | CFG_CMD_I2C * I2C serial bus support |
564 | CFG_CMD_IDE * IDE harddisk support | 564 | CFG_CMD_IDE * IDE harddisk support |
565 | CFG_CMD_IMI iminfo | 565 | CFG_CMD_IMI iminfo |
566 | CFG_CMD_IMLS List all found images | 566 | CFG_CMD_IMLS List all found images |
567 | CFG_CMD_IMMAP * IMMR dump support | 567 | CFG_CMD_IMMAP * IMMR dump support |
568 | CFG_CMD_IRQ * irqinfo | 568 | CFG_CMD_IRQ * irqinfo |
569 | CFG_CMD_ITEST * Integer/string test of 2 values | 569 | CFG_CMD_ITEST * Integer/string test of 2 values |
570 | CFG_CMD_JFFS2 * JFFS2 Support | 570 | CFG_CMD_JFFS2 * JFFS2 Support |
571 | CFG_CMD_KGDB * kgdb | 571 | CFG_CMD_KGDB * kgdb |
572 | CFG_CMD_LOADB loadb | 572 | CFG_CMD_LOADB loadb |
573 | CFG_CMD_LOADS loads | 573 | CFG_CMD_LOADS loads |
574 | CFG_CMD_MEMORY md, mm, nm, mw, cp, cmp, crc, base, | 574 | CFG_CMD_MEMORY md, mm, nm, mw, cp, cmp, crc, base, |
575 | loop, mtest | 575 | loop, mtest |
576 | CFG_CMD_MISC Misc functions like sleep etc | 576 | CFG_CMD_MISC Misc functions like sleep etc |
577 | CFG_CMD_MMC MMC memory mapped support | 577 | CFG_CMD_MMC MMC memory mapped support |
578 | CFG_CMD_MII MII utility commands | 578 | CFG_CMD_MII MII utility commands |
579 | CFG_CMD_NAND * NAND support | 579 | CFG_CMD_NAND * NAND support |
580 | CFG_CMD_NET bootp, tftpboot, rarpboot | 580 | CFG_CMD_NET bootp, tftpboot, rarpboot |
581 | CFG_CMD_PCI * pciinfo | 581 | CFG_CMD_PCI * pciinfo |
582 | CFG_CMD_PCMCIA * PCMCIA support | 582 | CFG_CMD_PCMCIA * PCMCIA support |
583 | CFG_CMD_PING * send ICMP ECHO_REQUEST to network host | 583 | CFG_CMD_PING * send ICMP ECHO_REQUEST to network host |
584 | CFG_CMD_PORTIO * Port I/O | 584 | CFG_CMD_PORTIO * Port I/O |
585 | CFG_CMD_REGINFO * Register dump | 585 | CFG_CMD_REGINFO * Register dump |
586 | CFG_CMD_RUN run command in env variable | 586 | CFG_CMD_RUN run command in env variable |
587 | CFG_CMD_SAVES save S record dump | 587 | CFG_CMD_SAVES save S record dump |
588 | CFG_CMD_SCSI * SCSI Support | 588 | CFG_CMD_SCSI * SCSI Support |
589 | CFG_CMD_SDRAM * print SDRAM configuration information | 589 | CFG_CMD_SDRAM * print SDRAM configuration information |
590 | CFG_CMD_SETGETDCR Support for DCR Register access (4xx only) | 590 | CFG_CMD_SETGETDCR Support for DCR Register access (4xx only) |
591 | CFG_CMD_SPI * SPI serial bus support | 591 | CFG_CMD_SPI * SPI serial bus support |
592 | CFG_CMD_USB * USB support | 592 | CFG_CMD_USB * USB support |
593 | CFG_CMD_VFD * VFD support (TRAB) | 593 | CFG_CMD_VFD * VFD support (TRAB) |
594 | CFG_CMD_BSP * Board SPecific functions | 594 | CFG_CMD_BSP * Board SPecific functions |
595 | CFG_CMD_CDP * Cisco Discover Protocol support | 595 | CFG_CMD_CDP * Cisco Discover Protocol support |
596 | ----------------------------------------------- | 596 | ----------------------------------------------- |
597 | CFG_CMD_ALL all | 597 | CFG_CMD_ALL all |
598 | 598 | ||
599 | CFG_CMD_DFL Default configuration; at the moment | 599 | CFG_CMD_DFL Default configuration; at the moment |
600 | this is includes all commands, except | 600 | this is includes all commands, except |
601 | the ones marked with "*" in the list | 601 | the ones marked with "*" in the list |
602 | above. | 602 | above. |
603 | 603 | ||
604 | If you don't define CONFIG_COMMANDS it defaults to | 604 | If you don't define CONFIG_COMMANDS it defaults to |
605 | CFG_CMD_DFL in include/cmd_confdefs.h. A board can | 605 | CFG_CMD_DFL in include/cmd_confdefs.h. A board can |
606 | override the default settings in the respective | 606 | override the default settings in the respective |
607 | include file. | 607 | include file. |
608 | 608 | ||
609 | EXAMPLE: If you want all functions except of network | 609 | EXAMPLE: If you want all functions except of network |
610 | support you can write: | 610 | support you can write: |
611 | 611 | ||
612 | #define CONFIG_COMMANDS (CFG_CMD_ALL & ~CFG_CMD_NET) | 612 | #define CONFIG_COMMANDS (CFG_CMD_ALL & ~CFG_CMD_NET) |
613 | 613 | ||
614 | 614 | ||
615 | Note: Don't enable the "icache" and "dcache" commands | 615 | Note: Don't enable the "icache" and "dcache" commands |
616 | (configuration option CFG_CMD_CACHE) unless you know | 616 | (configuration option CFG_CMD_CACHE) unless you know |
617 | what you (and your U-Boot users) are doing. Data | 617 | what you (and your U-Boot users) are doing. Data |
618 | cache cannot be enabled on systems like the 8xx or | 618 | cache cannot be enabled on systems like the 8xx or |
619 | 8260 (where accesses to the IMMR region must be | 619 | 8260 (where accesses to the IMMR region must be |
620 | uncached), and it cannot be disabled on all other | 620 | uncached), and it cannot be disabled on all other |
621 | systems where we (mis-) use the data cache to hold an | 621 | systems where we (mis-) use the data cache to hold an |
622 | initial stack and some data. | 622 | initial stack and some data. |
623 | 623 | ||
624 | 624 | ||
625 | XXX - this list needs to get updated! | 625 | XXX - this list needs to get updated! |
626 | 626 | ||
627 | - Watchdog: | 627 | - Watchdog: |
628 | CONFIG_WATCHDOG | 628 | CONFIG_WATCHDOG |
629 | If this variable is defined, it enables watchdog | 629 | If this variable is defined, it enables watchdog |
630 | support. There must be support in the platform specific | 630 | support. There must be support in the platform specific |
631 | code for a watchdog. For the 8xx and 8260 CPUs, the | 631 | code for a watchdog. For the 8xx and 8260 CPUs, the |
632 | SIU Watchdog feature is enabled in the SYPCR | 632 | SIU Watchdog feature is enabled in the SYPCR |
633 | register. | 633 | register. |
634 | 634 | ||
635 | - U-Boot Version: | 635 | - U-Boot Version: |
636 | CONFIG_VERSION_VARIABLE | 636 | CONFIG_VERSION_VARIABLE |
637 | If this variable is defined, an environment variable | 637 | If this variable is defined, an environment variable |
638 | named "ver" is created by U-Boot showing the U-Boot | 638 | named "ver" is created by U-Boot showing the U-Boot |
639 | version as printed by the "version" command. | 639 | version as printed by the "version" command. |
640 | This variable is readonly. | 640 | This variable is readonly. |
641 | 641 | ||
642 | - Real-Time Clock: | 642 | - Real-Time Clock: |
643 | 643 | ||
644 | When CFG_CMD_DATE is selected, the type of the RTC | 644 | When CFG_CMD_DATE is selected, the type of the RTC |
645 | has to be selected, too. Define exactly one of the | 645 | has to be selected, too. Define exactly one of the |
646 | following options: | 646 | following options: |
647 | 647 | ||
648 | CONFIG_RTC_MPC8xx - use internal RTC of MPC8xx | 648 | CONFIG_RTC_MPC8xx - use internal RTC of MPC8xx |
649 | CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC | 649 | CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC |
650 | CONFIG_RTC_MC146818 - use MC146818 RTC | 650 | CONFIG_RTC_MC146818 - use MC146818 RTC |
651 | CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC | 651 | CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC |
652 | CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC | 652 | CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC |
653 | CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC | 653 | CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC |
654 | CONFIG_RTC_DS164x - use Dallas DS164x RTC | 654 | CONFIG_RTC_DS164x - use Dallas DS164x RTC |
655 | CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC | ||
655 | 656 | ||
656 | Note that if the RTC uses I2C, then the I2C interface | 657 | Note that if the RTC uses I2C, then the I2C interface |
657 | must also be configured. See I2C Support, below. | 658 | must also be configured. See I2C Support, below. |
658 | 659 | ||
659 | - Timestamp Support: | 660 | - Timestamp Support: |
660 | 661 | ||
661 | When CONFIG_TIMESTAMP is selected, the timestamp | 662 | When CONFIG_TIMESTAMP is selected, the timestamp |
662 | (date and time) of an image is printed by image | 663 | (date and time) of an image is printed by image |
663 | commands like bootm or iminfo. This option is | 664 | commands like bootm or iminfo. This option is |
664 | automatically enabled when you select CFG_CMD_DATE . | 665 | automatically enabled when you select CFG_CMD_DATE . |
665 | 666 | ||
666 | - Partition Support: | 667 | - Partition Support: |
667 | CONFIG_MAC_PARTITION and/or CONFIG_DOS_PARTITION | 668 | CONFIG_MAC_PARTITION and/or CONFIG_DOS_PARTITION |
668 | and/or CONFIG_ISO_PARTITION | 669 | and/or CONFIG_ISO_PARTITION |
669 | 670 | ||
670 | If IDE or SCSI support is enabled (CFG_CMD_IDE or | 671 | If IDE or SCSI support is enabled (CFG_CMD_IDE or |
671 | CFG_CMD_SCSI) you must configure support for at least | 672 | CFG_CMD_SCSI) you must configure support for at least |
672 | one partition type as well. | 673 | one partition type as well. |
673 | 674 | ||
674 | - IDE Reset method: | 675 | - IDE Reset method: |
675 | CONFIG_IDE_RESET_ROUTINE - this is defined in several | 676 | CONFIG_IDE_RESET_ROUTINE - this is defined in several |
676 | board configurations files but used nowhere! | 677 | board configurations files but used nowhere! |
677 | 678 | ||
678 | CONFIG_IDE_RESET - is this is defined, IDE Reset will | 679 | CONFIG_IDE_RESET - is this is defined, IDE Reset will |
679 | be performed by calling the function | 680 | be performed by calling the function |
680 | ide_set_reset(int reset) | 681 | ide_set_reset(int reset) |
681 | which has to be defined in a board specific file | 682 | which has to be defined in a board specific file |
682 | 683 | ||
683 | - ATAPI Support: | 684 | - ATAPI Support: |
684 | CONFIG_ATAPI | 685 | CONFIG_ATAPI |
685 | 686 | ||
686 | Set this to enable ATAPI support. | 687 | Set this to enable ATAPI support. |
687 | 688 | ||
688 | - LBA48 Support | 689 | - LBA48 Support |
689 | CONFIG_LBA48 | 690 | CONFIG_LBA48 |
690 | 691 | ||
691 | Set this to enable support for disks larger than 137GB | 692 | Set this to enable support for disks larger than 137GB |
692 | Also look at CFG_64BIT_LBA ,CFG_64BIT_VSPRINTF and CFG_64BIT_STRTOUL | 693 | Also look at CFG_64BIT_LBA ,CFG_64BIT_VSPRINTF and CFG_64BIT_STRTOUL |
693 | Whithout these , LBA48 support uses 32bit variables and will 'only' | 694 | Whithout these , LBA48 support uses 32bit variables and will 'only' |
694 | support disks up to 2.1TB. | 695 | support disks up to 2.1TB. |
695 | 696 | ||
696 | CFG_64BIT_LBA: | 697 | CFG_64BIT_LBA: |
697 | When enabled, makes the IDE subsystem use 64bit sector addresses. | 698 | When enabled, makes the IDE subsystem use 64bit sector addresses. |
698 | Default is 32bit. | 699 | Default is 32bit. |
699 | 700 | ||
700 | - SCSI Support: | 701 | - SCSI Support: |
701 | At the moment only there is only support for the | 702 | At the moment only there is only support for the |
702 | SYM53C8XX SCSI controller; define | 703 | SYM53C8XX SCSI controller; define |
703 | CONFIG_SCSI_SYM53C8XX to enable it. | 704 | CONFIG_SCSI_SYM53C8XX to enable it. |
704 | 705 | ||
705 | CFG_SCSI_MAX_LUN [8], CFG_SCSI_MAX_SCSI_ID [7] and | 706 | CFG_SCSI_MAX_LUN [8], CFG_SCSI_MAX_SCSI_ID [7] and |
706 | CFG_SCSI_MAX_DEVICE [CFG_SCSI_MAX_SCSI_ID * | 707 | CFG_SCSI_MAX_DEVICE [CFG_SCSI_MAX_SCSI_ID * |
707 | CFG_SCSI_MAX_LUN] can be adjusted to define the | 708 | CFG_SCSI_MAX_LUN] can be adjusted to define the |
708 | maximum numbers of LUNs, SCSI ID's and target | 709 | maximum numbers of LUNs, SCSI ID's and target |
709 | devices. | 710 | devices. |
710 | CFG_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz) | 711 | CFG_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz) |
711 | 712 | ||
712 | - NETWORK Support (PCI): | 713 | - NETWORK Support (PCI): |
713 | CONFIG_E1000 | 714 | CONFIG_E1000 |
714 | Support for Intel 8254x gigabit chips. | 715 | Support for Intel 8254x gigabit chips. |
715 | 716 | ||
716 | CONFIG_EEPRO100 | 717 | CONFIG_EEPRO100 |
717 | Support for Intel 82557/82559/82559ER chips. | 718 | Support for Intel 82557/82559/82559ER chips. |
718 | Optional CONFIG_EEPRO100_SROM_WRITE enables eeprom | 719 | Optional CONFIG_EEPRO100_SROM_WRITE enables eeprom |
719 | write routine for first time initialisation. | 720 | write routine for first time initialisation. |
720 | 721 | ||
721 | CONFIG_TULIP | 722 | CONFIG_TULIP |
722 | Support for Digital 2114x chips. | 723 | Support for Digital 2114x chips. |
723 | Optional CONFIG_TULIP_SELECT_MEDIA for board specific | 724 | Optional CONFIG_TULIP_SELECT_MEDIA for board specific |
724 | modem chip initialisation (KS8761/QS6611). | 725 | modem chip initialisation (KS8761/QS6611). |
725 | 726 | ||
726 | CONFIG_NATSEMI | 727 | CONFIG_NATSEMI |
727 | Support for National dp83815 chips. | 728 | Support for National dp83815 chips. |
728 | 729 | ||
729 | CONFIG_NS8382X | 730 | CONFIG_NS8382X |
730 | Support for National dp8382[01] gigabit chips. | 731 | Support for National dp8382[01] gigabit chips. |
731 | 732 | ||
732 | - NETWORK Support (other): | 733 | - NETWORK Support (other): |
733 | 734 | ||
734 | CONFIG_DRIVER_LAN91C96 | 735 | CONFIG_DRIVER_LAN91C96 |
735 | Support for SMSC's LAN91C96 chips. | 736 | Support for SMSC's LAN91C96 chips. |
736 | 737 | ||
737 | CONFIG_LAN91C96_BASE | 738 | CONFIG_LAN91C96_BASE |
738 | Define this to hold the physical address | 739 | Define this to hold the physical address |
739 | of the LAN91C96's I/O space | 740 | of the LAN91C96's I/O space |
740 | 741 | ||
741 | CONFIG_LAN91C96_USE_32_BIT | 742 | CONFIG_LAN91C96_USE_32_BIT |
742 | Define this to enable 32 bit addressing | 743 | Define this to enable 32 bit addressing |
743 | 744 | ||
744 | CONFIG_DRIVER_SMC91111 | 745 | CONFIG_DRIVER_SMC91111 |
745 | Support for SMSC's LAN91C111 chip | 746 | Support for SMSC's LAN91C111 chip |
746 | 747 | ||
747 | CONFIG_SMC91111_BASE | 748 | CONFIG_SMC91111_BASE |
748 | Define this to hold the physical address | 749 | Define this to hold the physical address |
749 | of the device (I/O space) | 750 | of the device (I/O space) |
750 | 751 | ||
751 | CONFIG_SMC_USE_32_BIT | 752 | CONFIG_SMC_USE_32_BIT |
752 | Define this if data bus is 32 bits | 753 | Define this if data bus is 32 bits |
753 | 754 | ||
754 | CONFIG_SMC_USE_IOFUNCS | 755 | CONFIG_SMC_USE_IOFUNCS |
755 | Define this to use i/o functions instead of macros | 756 | Define this to use i/o functions instead of macros |
756 | (some hardware wont work with macros) | 757 | (some hardware wont work with macros) |
757 | 758 | ||
758 | - USB Support: | 759 | - USB Support: |
759 | At the moment only the UHCI host controller is | 760 | At the moment only the UHCI host controller is |
760 | supported (PIP405, MIP405, MPC5200); define | 761 | supported (PIP405, MIP405, MPC5200); define |
761 | CONFIG_USB_UHCI to enable it. | 762 | CONFIG_USB_UHCI to enable it. |
762 | define CONFIG_USB_KEYBOARD to enable the USB Keyboard | 763 | define CONFIG_USB_KEYBOARD to enable the USB Keyboard |
763 | end define CONFIG_USB_STORAGE to enable the USB | 764 | end define CONFIG_USB_STORAGE to enable the USB |
764 | storage devices. | 765 | storage devices. |
765 | Note: | 766 | Note: |
766 | Supported are USB Keyboards and USB Floppy drives | 767 | Supported are USB Keyboards and USB Floppy drives |
767 | (TEAC FD-05PUB). | 768 | (TEAC FD-05PUB). |
768 | MPC5200 USB requires additional defines: | 769 | MPC5200 USB requires additional defines: |
769 | CONFIG_USB_CLOCK | 770 | CONFIG_USB_CLOCK |
770 | for 528 MHz Clock: 0x0001bbbb | 771 | for 528 MHz Clock: 0x0001bbbb |
771 | CONFIG_USB_CONFIG | 772 | CONFIG_USB_CONFIG |
772 | for differential drivers: 0x00001000 | 773 | for differential drivers: 0x00001000 |
773 | for single ended drivers: 0x00005000 | 774 | for single ended drivers: 0x00005000 |
774 | 775 | ||
775 | 776 | ||
776 | - MMC Support: | 777 | - MMC Support: |
777 | The MMC controller on the Intel PXA is supported. To | 778 | The MMC controller on the Intel PXA is supported. To |
778 | enable this define CONFIG_MMC. The MMC can be | 779 | enable this define CONFIG_MMC. The MMC can be |
779 | accessed from the boot prompt by mapping the device | 780 | accessed from the boot prompt by mapping the device |
780 | to physical memory similar to flash. Command line is | 781 | to physical memory similar to flash. Command line is |
781 | enabled with CFG_CMD_MMC. The MMC driver also works with | 782 | enabled with CFG_CMD_MMC. The MMC driver also works with |
782 | the FAT fs. This is enabled with CFG_CMD_FAT. | 783 | the FAT fs. This is enabled with CFG_CMD_FAT. |
783 | 784 | ||
784 | - Keyboard Support: | 785 | - Keyboard Support: |
785 | CONFIG_ISA_KEYBOARD | 786 | CONFIG_ISA_KEYBOARD |
786 | 787 | ||
787 | Define this to enable standard (PC-Style) keyboard | 788 | Define this to enable standard (PC-Style) keyboard |
788 | support | 789 | support |
789 | 790 | ||
790 | CONFIG_I8042_KBD | 791 | CONFIG_I8042_KBD |
791 | Standard PC keyboard driver with US (is default) and | 792 | Standard PC keyboard driver with US (is default) and |
792 | GERMAN key layout (switch via environment 'keymap=de') support. | 793 | GERMAN key layout (switch via environment 'keymap=de') support. |
793 | Export function i8042_kbd_init, i8042_tstc and i8042_getc | 794 | Export function i8042_kbd_init, i8042_tstc and i8042_getc |
794 | for cfb_console. Supports cursor blinking. | 795 | for cfb_console. Supports cursor blinking. |
795 | 796 | ||
796 | - Video support: | 797 | - Video support: |
797 | CONFIG_VIDEO | 798 | CONFIG_VIDEO |
798 | 799 | ||
799 | Define this to enable video support (for output to | 800 | Define this to enable video support (for output to |
800 | video). | 801 | video). |
801 | 802 | ||
802 | CONFIG_VIDEO_CT69000 | 803 | CONFIG_VIDEO_CT69000 |
803 | 804 | ||
804 | Enable Chips & Technologies 69000 Video chip | 805 | Enable Chips & Technologies 69000 Video chip |
805 | 806 | ||
806 | CONFIG_VIDEO_SMI_LYNXEM | 807 | CONFIG_VIDEO_SMI_LYNXEM |
807 | Enable Silicon Motion SMI 712/710/810 Video chip. The | 808 | Enable Silicon Motion SMI 712/710/810 Video chip. The |
808 | video output is selected via environment 'videoout' | 809 | video output is selected via environment 'videoout' |
809 | (1 = LCD and 2 = CRT). If videoout is undefined, CRT is | 810 | (1 = LCD and 2 = CRT). If videoout is undefined, CRT is |
810 | assumed. | 811 | assumed. |
811 | 812 | ||
812 | For the CT69000 and SMI_LYNXEM drivers, videomode is | 813 | For the CT69000 and SMI_LYNXEM drivers, videomode is |
813 | selected via environment 'videomode'. Two diferent ways | 814 | selected via environment 'videomode'. Two diferent ways |
814 | are possible: | 815 | are possible: |
815 | - "videomode=num" 'num' is a standard LiLo mode numbers. | 816 | - "videomode=num" 'num' is a standard LiLo mode numbers. |
816 | Following standard modes are supported (* is default): | 817 | Following standard modes are supported (* is default): |
817 | 818 | ||
818 | Colors 640x480 800x600 1024x768 1152x864 1280x1024 | 819 | Colors 640x480 800x600 1024x768 1152x864 1280x1024 |
819 | -------------+--------------------------------------------- | 820 | -------------+--------------------------------------------- |
820 | 8 bits | 0x301* 0x303 0x305 0x161 0x307 | 821 | 8 bits | 0x301* 0x303 0x305 0x161 0x307 |
821 | 15 bits | 0x310 0x313 0x316 0x162 0x319 | 822 | 15 bits | 0x310 0x313 0x316 0x162 0x319 |
822 | 16 bits | 0x311 0x314 0x317 0x163 0x31A | 823 | 16 bits | 0x311 0x314 0x317 0x163 0x31A |
823 | 24 bits | 0x312 0x315 0x318 ? 0x31B | 824 | 24 bits | 0x312 0x315 0x318 ? 0x31B |
824 | -------------+--------------------------------------------- | 825 | -------------+--------------------------------------------- |
825 | (i.e. setenv videomode 317; saveenv; reset;) | 826 | (i.e. setenv videomode 317; saveenv; reset;) |
826 | 827 | ||
827 | - "videomode=bootargs" all the video parameters are parsed | 828 | - "videomode=bootargs" all the video parameters are parsed |
828 | from the bootargs. (See drivers/videomodes.c) | 829 | from the bootargs. (See drivers/videomodes.c) |
829 | 830 | ||
830 | 831 | ||
831 | CONFIG_VIDEO_SED13806 | 832 | CONFIG_VIDEO_SED13806 |
832 | Enable Epson SED13806 driver. This driver supports 8bpp | 833 | Enable Epson SED13806 driver. This driver supports 8bpp |
833 | and 16bpp modes defined by CONFIG_VIDEO_SED13806_8BPP | 834 | and 16bpp modes defined by CONFIG_VIDEO_SED13806_8BPP |
834 | or CONFIG_VIDEO_SED13806_16BPP | 835 | or CONFIG_VIDEO_SED13806_16BPP |
835 | 836 | ||
836 | - Keyboard Support: | 837 | - Keyboard Support: |
837 | CONFIG_KEYBOARD | 838 | CONFIG_KEYBOARD |
838 | 839 | ||
839 | Define this to enable a custom keyboard support. | 840 | Define this to enable a custom keyboard support. |
840 | This simply calls drv_keyboard_init() which must be | 841 | This simply calls drv_keyboard_init() which must be |
841 | defined in your board-specific files. | 842 | defined in your board-specific files. |
842 | The only board using this so far is RBC823. | 843 | The only board using this so far is RBC823. |
843 | 844 | ||
844 | - LCD Support: CONFIG_LCD | 845 | - LCD Support: CONFIG_LCD |
845 | 846 | ||
846 | Define this to enable LCD support (for output to LCD | 847 | Define this to enable LCD support (for output to LCD |
847 | display); also select one of the supported displays | 848 | display); also select one of the supported displays |
848 | by defining one of these: | 849 | by defining one of these: |
849 | 850 | ||
850 | CONFIG_NEC_NL6448AC33: | 851 | CONFIG_NEC_NL6448AC33: |
851 | 852 | ||
852 | NEC NL6448AC33-18. Active, color, single scan. | 853 | NEC NL6448AC33-18. Active, color, single scan. |
853 | 854 | ||
854 | CONFIG_NEC_NL6448BC20 | 855 | CONFIG_NEC_NL6448BC20 |
855 | 856 | ||
856 | NEC NL6448BC20-08. 6.5", 640x480. | 857 | NEC NL6448BC20-08. 6.5", 640x480. |
857 | Active, color, single scan. | 858 | Active, color, single scan. |
858 | 859 | ||
859 | CONFIG_NEC_NL6448BC33_54 | 860 | CONFIG_NEC_NL6448BC33_54 |
860 | 861 | ||
861 | NEC NL6448BC33-54. 10.4", 640x480. | 862 | NEC NL6448BC33-54. 10.4", 640x480. |
862 | Active, color, single scan. | 863 | Active, color, single scan. |
863 | 864 | ||
864 | CONFIG_SHARP_16x9 | 865 | CONFIG_SHARP_16x9 |
865 | 866 | ||
866 | Sharp 320x240. Active, color, single scan. | 867 | Sharp 320x240. Active, color, single scan. |
867 | It isn't 16x9, and I am not sure what it is. | 868 | It isn't 16x9, and I am not sure what it is. |
868 | 869 | ||
869 | CONFIG_SHARP_LQ64D341 | 870 | CONFIG_SHARP_LQ64D341 |
870 | 871 | ||
871 | Sharp LQ64D341 display, 640x480. | 872 | Sharp LQ64D341 display, 640x480. |
872 | Active, color, single scan. | 873 | Active, color, single scan. |
873 | 874 | ||
874 | CONFIG_HLD1045 | 875 | CONFIG_HLD1045 |
875 | 876 | ||
876 | HLD1045 display, 640x480. | 877 | HLD1045 display, 640x480. |
877 | Active, color, single scan. | 878 | Active, color, single scan. |
878 | 879 | ||
879 | CONFIG_OPTREX_BW | 880 | CONFIG_OPTREX_BW |
880 | 881 | ||
881 | Optrex CBL50840-2 NF-FW 99 22 M5 | 882 | Optrex CBL50840-2 NF-FW 99 22 M5 |
882 | or | 883 | or |
883 | Hitachi LMG6912RPFC-00T | 884 | Hitachi LMG6912RPFC-00T |
884 | or | 885 | or |
885 | Hitachi SP14Q002 | 886 | Hitachi SP14Q002 |
886 | 887 | ||
887 | 320x240. Black & white. | 888 | 320x240. Black & white. |
888 | 889 | ||
889 | Normally display is black on white background; define | 890 | Normally display is black on white background; define |
890 | CFG_WHITE_ON_BLACK to get it inverted. | 891 | CFG_WHITE_ON_BLACK to get it inverted. |
891 | 892 | ||
892 | - Splash Screen Support: CONFIG_SPLASH_SCREEN | 893 | - Splash Screen Support: CONFIG_SPLASH_SCREEN |
893 | 894 | ||
894 | If this option is set, the environment is checked for | 895 | If this option is set, the environment is checked for |
895 | a variable "splashimage". If found, the usual display | 896 | a variable "splashimage". If found, the usual display |
896 | of logo, copyright and system information on the LCD | 897 | of logo, copyright and system information on the LCD |
897 | is supressed and the BMP image at the address | 898 | is supressed and the BMP image at the address |
898 | specified in "splashimage" is loaded instead. The | 899 | specified in "splashimage" is loaded instead. The |
899 | console is redirected to the "nulldev", too. This | 900 | console is redirected to the "nulldev", too. This |
900 | allows for a "silent" boot where a splash screen is | 901 | allows for a "silent" boot where a splash screen is |
901 | loaded very quickly after power-on. | 902 | loaded very quickly after power-on. |
902 | 903 | ||
903 | - Compression support: | 904 | - Compression support: |
904 | CONFIG_BZIP2 | 905 | CONFIG_BZIP2 |
905 | 906 | ||
906 | If this option is set, support for bzip2 compressed | 907 | If this option is set, support for bzip2 compressed |
907 | images is included. If not, only uncompressed and gzip | 908 | images is included. If not, only uncompressed and gzip |
908 | compressed images are supported. | 909 | compressed images are supported. |
909 | 910 | ||
910 | NOTE: the bzip2 algorithm requires a lot of RAM, so | 911 | NOTE: the bzip2 algorithm requires a lot of RAM, so |
911 | the malloc area (as defined by CFG_MALLOC_LEN) should | 912 | the malloc area (as defined by CFG_MALLOC_LEN) should |
912 | be at least 4MB. | 913 | be at least 4MB. |
913 | 914 | ||
914 | - MII/PHY support: | 915 | - MII/PHY support: |
915 | CONFIG_PHY_ADDR | 916 | CONFIG_PHY_ADDR |
916 | 917 | ||
917 | The address of PHY on MII bus. | 918 | The address of PHY on MII bus. |
918 | 919 | ||
919 | CONFIG_PHY_CLOCK_FREQ (ppc4xx) | 920 | CONFIG_PHY_CLOCK_FREQ (ppc4xx) |
920 | 921 | ||
921 | The clock frequency of the MII bus | 922 | The clock frequency of the MII bus |
922 | 923 | ||
923 | CONFIG_PHY_GIGE | 924 | CONFIG_PHY_GIGE |
924 | 925 | ||
925 | If this option is set, support for speed/duplex | 926 | If this option is set, support for speed/duplex |
926 | detection of Gigabit PHY is included. | 927 | detection of Gigabit PHY is included. |
927 | 928 | ||
928 | CONFIG_PHY_RESET_DELAY | 929 | CONFIG_PHY_RESET_DELAY |
929 | 930 | ||
930 | Some PHY like Intel LXT971A need extra delay after | 931 | Some PHY like Intel LXT971A need extra delay after |
931 | reset before any MII register access is possible. | 932 | reset before any MII register access is possible. |
932 | For such PHY, set this option to the usec delay | 933 | For such PHY, set this option to the usec delay |
933 | required. (minimum 300usec for LXT971A) | 934 | required. (minimum 300usec for LXT971A) |
934 | 935 | ||
935 | CONFIG_PHY_CMD_DELAY (ppc4xx) | 936 | CONFIG_PHY_CMD_DELAY (ppc4xx) |
936 | 937 | ||
937 | Some PHY like Intel LXT971A need extra delay after | 938 | Some PHY like Intel LXT971A need extra delay after |
938 | command issued before MII status register can be read | 939 | command issued before MII status register can be read |
939 | 940 | ||
940 | - Ethernet address: | 941 | - Ethernet address: |
941 | CONFIG_ETHADDR | 942 | CONFIG_ETHADDR |
942 | CONFIG_ETH2ADDR | 943 | CONFIG_ETH2ADDR |
943 | CONFIG_ETH3ADDR | 944 | CONFIG_ETH3ADDR |
944 | 945 | ||
945 | Define a default value for ethernet address to use | 946 | Define a default value for ethernet address to use |
946 | for the respective ethernet interface, in case this | 947 | for the respective ethernet interface, in case this |
947 | is not determined automatically. | 948 | is not determined automatically. |
948 | 949 | ||
949 | - IP address: | 950 | - IP address: |
950 | CONFIG_IPADDR | 951 | CONFIG_IPADDR |
951 | 952 | ||
952 | Define a default value for the IP address to use for | 953 | Define a default value for the IP address to use for |
953 | the default ethernet interface, in case this is not | 954 | the default ethernet interface, in case this is not |
954 | determined through e.g. bootp. | 955 | determined through e.g. bootp. |
955 | 956 | ||
956 | - Server IP address: | 957 | - Server IP address: |
957 | CONFIG_SERVERIP | 958 | CONFIG_SERVERIP |
958 | 959 | ||
959 | Defines a default value for theIP address of a TFTP | 960 | Defines a default value for theIP address of a TFTP |
960 | server to contact when using the "tftboot" command. | 961 | server to contact when using the "tftboot" command. |
961 | 962 | ||
962 | - BOOTP Recovery Mode: | 963 | - BOOTP Recovery Mode: |
963 | CONFIG_BOOTP_RANDOM_DELAY | 964 | CONFIG_BOOTP_RANDOM_DELAY |
964 | 965 | ||
965 | If you have many targets in a network that try to | 966 | If you have many targets in a network that try to |
966 | boot using BOOTP, you may want to avoid that all | 967 | boot using BOOTP, you may want to avoid that all |
967 | systems send out BOOTP requests at precisely the same | 968 | systems send out BOOTP requests at precisely the same |
968 | moment (which would happen for instance at recovery | 969 | moment (which would happen for instance at recovery |
969 | from a power failure, when all systems will try to | 970 | from a power failure, when all systems will try to |
970 | boot, thus flooding the BOOTP server. Defining | 971 | boot, thus flooding the BOOTP server. Defining |
971 | CONFIG_BOOTP_RANDOM_DELAY causes a random delay to be | 972 | CONFIG_BOOTP_RANDOM_DELAY causes a random delay to be |
972 | inserted before sending out BOOTP requests. The | 973 | inserted before sending out BOOTP requests. The |
973 | following delays are insterted then: | 974 | following delays are insterted then: |
974 | 975 | ||
975 | 1st BOOTP request: delay 0 ... 1 sec | 976 | 1st BOOTP request: delay 0 ... 1 sec |
976 | 2nd BOOTP request: delay 0 ... 2 sec | 977 | 2nd BOOTP request: delay 0 ... 2 sec |
977 | 3rd BOOTP request: delay 0 ... 4 sec | 978 | 3rd BOOTP request: delay 0 ... 4 sec |
978 | 4th and following | 979 | 4th and following |
979 | BOOTP requests: delay 0 ... 8 sec | 980 | BOOTP requests: delay 0 ... 8 sec |
980 | 981 | ||
981 | - DHCP Advanced Options: | 982 | - DHCP Advanced Options: |
982 | CONFIG_BOOTP_MASK | 983 | CONFIG_BOOTP_MASK |
983 | 984 | ||
984 | You can fine tune the DHCP functionality by adding | 985 | You can fine tune the DHCP functionality by adding |
985 | these flags to the CONFIG_BOOTP_MASK define: | 986 | these flags to the CONFIG_BOOTP_MASK define: |
986 | 987 | ||
987 | CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS | 988 | CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS |
988 | serverip from a DHCP server, it is possible that more | 989 | serverip from a DHCP server, it is possible that more |
989 | than one DNS serverip is offered to the client. | 990 | than one DNS serverip is offered to the client. |
990 | If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS | 991 | If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS |
991 | serverip will be stored in the additional environment | 992 | serverip will be stored in the additional environment |
992 | variable "dnsip2". The first DNS serverip is always | 993 | variable "dnsip2". The first DNS serverip is always |
993 | stored in the variable "dnsip", when CONFIG_BOOTP_DNS | 994 | stored in the variable "dnsip", when CONFIG_BOOTP_DNS |
994 | is added to the CONFIG_BOOTP_MASK. | 995 | is added to the CONFIG_BOOTP_MASK. |
995 | 996 | ||
996 | CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable | 997 | CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable |
997 | to do a dynamic update of a DNS server. To do this, they | 998 | to do a dynamic update of a DNS server. To do this, they |
998 | need the hostname of the DHCP requester. | 999 | need the hostname of the DHCP requester. |
999 | If CONFIG_BOOP_SEND_HOSTNAME is added to the | 1000 | If CONFIG_BOOP_SEND_HOSTNAME is added to the |
1000 | CONFIG_BOOTP_MASK, the content of the "hostname" | 1001 | CONFIG_BOOTP_MASK, the content of the "hostname" |
1001 | environment variable is passed as option 12 to | 1002 | environment variable is passed as option 12 to |
1002 | the DHCP server. | 1003 | the DHCP server. |
1003 | 1004 | ||
1004 | - CDP Options: | 1005 | - CDP Options: |
1005 | CONFIG_CDP_DEVICE_ID | 1006 | CONFIG_CDP_DEVICE_ID |
1006 | 1007 | ||
1007 | The device id used in CDP trigger frames. | 1008 | The device id used in CDP trigger frames. |
1008 | 1009 | ||
1009 | CONFIG_CDP_DEVICE_ID_PREFIX | 1010 | CONFIG_CDP_DEVICE_ID_PREFIX |
1010 | 1011 | ||
1011 | A two character string which is prefixed to the MAC address | 1012 | A two character string which is prefixed to the MAC address |
1012 | of the device. | 1013 | of the device. |
1013 | 1014 | ||
1014 | CONFIG_CDP_PORT_ID | 1015 | CONFIG_CDP_PORT_ID |
1015 | 1016 | ||
1016 | A printf format string which contains the ascii name of | 1017 | A printf format string which contains the ascii name of |
1017 | the port. Normally is set to "eth%d" which sets | 1018 | the port. Normally is set to "eth%d" which sets |
1018 | eth0 for the first ethernet, eth1 for the second etc. | 1019 | eth0 for the first ethernet, eth1 for the second etc. |
1019 | 1020 | ||
1020 | CONFIG_CDP_CAPABILITIES | 1021 | CONFIG_CDP_CAPABILITIES |
1021 | 1022 | ||
1022 | A 32bit integer which indicates the device capabilities; | 1023 | A 32bit integer which indicates the device capabilities; |
1023 | 0x00000010 for a normal host which does not forwards. | 1024 | 0x00000010 for a normal host which does not forwards. |
1024 | 1025 | ||
1025 | CONFIG_CDP_VERSION | 1026 | CONFIG_CDP_VERSION |
1026 | 1027 | ||
1027 | An ascii string containing the version of the software. | 1028 | An ascii string containing the version of the software. |
1028 | 1029 | ||
1029 | CONFIG_CDP_PLATFORM | 1030 | CONFIG_CDP_PLATFORM |
1030 | 1031 | ||
1031 | An ascii string containing the name of the platform. | 1032 | An ascii string containing the name of the platform. |
1032 | 1033 | ||
1033 | CONFIG_CDP_TRIGGER | 1034 | CONFIG_CDP_TRIGGER |
1034 | 1035 | ||
1035 | A 32bit integer sent on the trigger. | 1036 | A 32bit integer sent on the trigger. |
1036 | 1037 | ||
1037 | CONFIG_CDP_POWER_CONSUMPTION | 1038 | CONFIG_CDP_POWER_CONSUMPTION |
1038 | 1039 | ||
1039 | A 16bit integer containing the power consumption of the | 1040 | A 16bit integer containing the power consumption of the |
1040 | device in .1 of milliwatts. | 1041 | device in .1 of milliwatts. |
1041 | 1042 | ||
1042 | CONFIG_CDP_APPLIANCE_VLAN_TYPE | 1043 | CONFIG_CDP_APPLIANCE_VLAN_TYPE |
1043 | 1044 | ||
1044 | A byte containing the id of the VLAN. | 1045 | A byte containing the id of the VLAN. |
1045 | 1046 | ||
1046 | - Status LED: CONFIG_STATUS_LED | 1047 | - Status LED: CONFIG_STATUS_LED |
1047 | 1048 | ||
1048 | Several configurations allow to display the current | 1049 | Several configurations allow to display the current |
1049 | status using a LED. For instance, the LED will blink | 1050 | status using a LED. For instance, the LED will blink |
1050 | fast while running U-Boot code, stop blinking as | 1051 | fast while running U-Boot code, stop blinking as |
1051 | soon as a reply to a BOOTP request was received, and | 1052 | soon as a reply to a BOOTP request was received, and |
1052 | start blinking slow once the Linux kernel is running | 1053 | start blinking slow once the Linux kernel is running |
1053 | (supported by a status LED driver in the Linux | 1054 | (supported by a status LED driver in the Linux |
1054 | kernel). Defining CONFIG_STATUS_LED enables this | 1055 | kernel). Defining CONFIG_STATUS_LED enables this |
1055 | feature in U-Boot. | 1056 | feature in U-Boot. |
1056 | 1057 | ||
1057 | - CAN Support: CONFIG_CAN_DRIVER | 1058 | - CAN Support: CONFIG_CAN_DRIVER |
1058 | 1059 | ||
1059 | Defining CONFIG_CAN_DRIVER enables CAN driver support | 1060 | Defining CONFIG_CAN_DRIVER enables CAN driver support |
1060 | on those systems that support this (optional) | 1061 | on those systems that support this (optional) |
1061 | feature, like the TQM8xxL modules. | 1062 | feature, like the TQM8xxL modules. |
1062 | 1063 | ||
1063 | - I2C Support: CONFIG_HARD_I2C | CONFIG_SOFT_I2C | 1064 | - I2C Support: CONFIG_HARD_I2C | CONFIG_SOFT_I2C |
1064 | 1065 | ||
1065 | These enable I2C serial bus commands. Defining either of | 1066 | These enable I2C serial bus commands. Defining either of |
1066 | (but not both of) CONFIG_HARD_I2C or CONFIG_SOFT_I2C will | 1067 | (but not both of) CONFIG_HARD_I2C or CONFIG_SOFT_I2C will |
1067 | include the appropriate I2C driver for the selected cpu. | 1068 | include the appropriate I2C driver for the selected cpu. |
1068 | 1069 | ||
1069 | This will allow you to use i2c commands at the u-boot | 1070 | This will allow you to use i2c commands at the u-boot |
1070 | command line (as long as you set CFG_CMD_I2C in | 1071 | command line (as long as you set CFG_CMD_I2C in |
1071 | CONFIG_COMMANDS) and communicate with i2c based realtime | 1072 | CONFIG_COMMANDS) and communicate with i2c based realtime |
1072 | clock chips. See common/cmd_i2c.c for a description of the | 1073 | clock chips. See common/cmd_i2c.c for a description of the |
1073 | command line interface. | 1074 | command line interface. |
1074 | 1075 | ||
1075 | CONFIG_HARD_I2C selects the CPM hardware driver for I2C. | 1076 | CONFIG_HARD_I2C selects the CPM hardware driver for I2C. |
1076 | 1077 | ||
1077 | CONFIG_SOFT_I2C configures u-boot to use a software (aka | 1078 | CONFIG_SOFT_I2C configures u-boot to use a software (aka |
1078 | bit-banging) driver instead of CPM or similar hardware | 1079 | bit-banging) driver instead of CPM or similar hardware |
1079 | support for I2C. | 1080 | support for I2C. |
1080 | 1081 | ||
1081 | There are several other quantities that must also be | 1082 | There are several other quantities that must also be |
1082 | defined when you define CONFIG_HARD_I2C or CONFIG_SOFT_I2C. | 1083 | defined when you define CONFIG_HARD_I2C or CONFIG_SOFT_I2C. |
1083 | 1084 | ||
1084 | In both cases you will need to define CFG_I2C_SPEED | 1085 | In both cases you will need to define CFG_I2C_SPEED |
1085 | to be the frequency (in Hz) at which you wish your i2c bus | 1086 | to be the frequency (in Hz) at which you wish your i2c bus |
1086 | to run and CFG_I2C_SLAVE to be the address of this node (ie | 1087 | to run and CFG_I2C_SLAVE to be the address of this node (ie |
1087 | the cpu's i2c node address). | 1088 | the cpu's i2c node address). |
1088 | 1089 | ||
1089 | Now, the u-boot i2c code for the mpc8xx (cpu/mpc8xx/i2c.c) | 1090 | Now, the u-boot i2c code for the mpc8xx (cpu/mpc8xx/i2c.c) |
1090 | sets the cpu up as a master node and so its address should | 1091 | sets the cpu up as a master node and so its address should |
1091 | therefore be cleared to 0 (See, eg, MPC823e User's Manual | 1092 | therefore be cleared to 0 (See, eg, MPC823e User's Manual |
1092 | p.16-473). So, set CFG_I2C_SLAVE to 0. | 1093 | p.16-473). So, set CFG_I2C_SLAVE to 0. |
1093 | 1094 | ||
1094 | That's all that's required for CONFIG_HARD_I2C. | 1095 | That's all that's required for CONFIG_HARD_I2C. |
1095 | 1096 | ||
1096 | If you use the software i2c interface (CONFIG_SOFT_I2C) | 1097 | If you use the software i2c interface (CONFIG_SOFT_I2C) |
1097 | then the following macros need to be defined (examples are | 1098 | then the following macros need to be defined (examples are |
1098 | from include/configs/lwmon.h): | 1099 | from include/configs/lwmon.h): |
1099 | 1100 | ||
1100 | I2C_INIT | 1101 | I2C_INIT |
1101 | 1102 | ||
1102 | (Optional). Any commands necessary to enable the I2C | 1103 | (Optional). Any commands necessary to enable the I2C |
1103 | controller or configure ports. | 1104 | controller or configure ports. |
1104 | 1105 | ||
1105 | eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL) | 1106 | eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL) |
1106 | 1107 | ||
1107 | I2C_PORT | 1108 | I2C_PORT |
1108 | 1109 | ||
1109 | (Only for MPC8260 CPU). The I/O port to use (the code | 1110 | (Only for MPC8260 CPU). The I/O port to use (the code |
1110 | assumes both bits are on the same port). Valid values | 1111 | assumes both bits are on the same port). Valid values |
1111 | are 0..3 for ports A..D. | 1112 | are 0..3 for ports A..D. |
1112 | 1113 | ||
1113 | I2C_ACTIVE | 1114 | I2C_ACTIVE |
1114 | 1115 | ||
1115 | The code necessary to make the I2C data line active | 1116 | The code necessary to make the I2C data line active |
1116 | (driven). If the data line is open collector, this | 1117 | (driven). If the data line is open collector, this |
1117 | define can be null. | 1118 | define can be null. |
1118 | 1119 | ||
1119 | eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA) | 1120 | eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA) |
1120 | 1121 | ||
1121 | I2C_TRISTATE | 1122 | I2C_TRISTATE |
1122 | 1123 | ||
1123 | The code necessary to make the I2C data line tri-stated | 1124 | The code necessary to make the I2C data line tri-stated |
1124 | (inactive). If the data line is open collector, this | 1125 | (inactive). If the data line is open collector, this |
1125 | define can be null. | 1126 | define can be null. |
1126 | 1127 | ||
1127 | eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA) | 1128 | eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA) |
1128 | 1129 | ||
1129 | I2C_READ | 1130 | I2C_READ |
1130 | 1131 | ||
1131 | Code that returns TRUE if the I2C data line is high, | 1132 | Code that returns TRUE if the I2C data line is high, |
1132 | FALSE if it is low. | 1133 | FALSE if it is low. |
1133 | 1134 | ||
1134 | eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0) | 1135 | eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0) |
1135 | 1136 | ||
1136 | I2C_SDA(bit) | 1137 | I2C_SDA(bit) |
1137 | 1138 | ||
1138 | If <bit> is TRUE, sets the I2C data line high. If it | 1139 | If <bit> is TRUE, sets the I2C data line high. If it |
1139 | is FALSE, it clears it (low). | 1140 | is FALSE, it clears it (low). |
1140 | 1141 | ||
1141 | eg: #define I2C_SDA(bit) \ | 1142 | eg: #define I2C_SDA(bit) \ |
1142 | if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \ | 1143 | if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \ |
1143 | else immr->im_cpm.cp_pbdat &= ~PB_SDA | 1144 | else immr->im_cpm.cp_pbdat &= ~PB_SDA |
1144 | 1145 | ||
1145 | I2C_SCL(bit) | 1146 | I2C_SCL(bit) |
1146 | 1147 | ||
1147 | If <bit> is TRUE, sets the I2C clock line high. If it | 1148 | If <bit> is TRUE, sets the I2C clock line high. If it |
1148 | is FALSE, it clears it (low). | 1149 | is FALSE, it clears it (low). |
1149 | 1150 | ||
1150 | eg: #define I2C_SCL(bit) \ | 1151 | eg: #define I2C_SCL(bit) \ |
1151 | if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \ | 1152 | if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \ |
1152 | else immr->im_cpm.cp_pbdat &= ~PB_SCL | 1153 | else immr->im_cpm.cp_pbdat &= ~PB_SCL |
1153 | 1154 | ||
1154 | I2C_DELAY | 1155 | I2C_DELAY |
1155 | 1156 | ||
1156 | This delay is invoked four times per clock cycle so this | 1157 | This delay is invoked four times per clock cycle so this |
1157 | controls the rate of data transfer. The data rate thus | 1158 | controls the rate of data transfer. The data rate thus |
1158 | is 1 / (I2C_DELAY * 4). Often defined to be something | 1159 | is 1 / (I2C_DELAY * 4). Often defined to be something |
1159 | like: | 1160 | like: |
1160 | 1161 | ||
1161 | #define I2C_DELAY udelay(2) | 1162 | #define I2C_DELAY udelay(2) |
1162 | 1163 | ||
1163 | CFG_I2C_INIT_BOARD | 1164 | CFG_I2C_INIT_BOARD |
1164 | 1165 | ||
1165 | When a board is reset during an i2c bus transfer | 1166 | When a board is reset during an i2c bus transfer |
1166 | chips might think that the current transfer is still | 1167 | chips might think that the current transfer is still |
1167 | in progress. On some boards it is possible to access | 1168 | in progress. On some boards it is possible to access |
1168 | the i2c SCLK line directly, either by using the | 1169 | the i2c SCLK line directly, either by using the |
1169 | processor pin as a GPIO or by having a second pin | 1170 | processor pin as a GPIO or by having a second pin |
1170 | connected to the bus. If this option is defined a | 1171 | connected to the bus. If this option is defined a |
1171 | custom i2c_init_board() routine in boards/xxx/board.c | 1172 | custom i2c_init_board() routine in boards/xxx/board.c |
1172 | is run early in the boot sequence. | 1173 | is run early in the boot sequence. |
1173 | 1174 | ||
1174 | CONFIG_I2CFAST (PPC405GP|PPC405EP only) | 1175 | CONFIG_I2CFAST (PPC405GP|PPC405EP only) |
1175 | 1176 | ||
1176 | This option enables configuration of bi_iic_fast[] flags | 1177 | This option enables configuration of bi_iic_fast[] flags |
1177 | in u-boot bd_info structure based on u-boot environment | 1178 | in u-boot bd_info structure based on u-boot environment |
1178 | variable "i2cfast". (see also i2cfast) | 1179 | variable "i2cfast". (see also i2cfast) |
1179 | 1180 | ||
1180 | - SPI Support: CONFIG_SPI | 1181 | - SPI Support: CONFIG_SPI |
1181 | 1182 | ||
1182 | Enables SPI driver (so far only tested with | 1183 | Enables SPI driver (so far only tested with |
1183 | SPI EEPROM, also an instance works with Crystal A/D and | 1184 | SPI EEPROM, also an instance works with Crystal A/D and |
1184 | D/As on the SACSng board) | 1185 | D/As on the SACSng board) |
1185 | 1186 | ||
1186 | CONFIG_SPI_X | 1187 | CONFIG_SPI_X |
1187 | 1188 | ||
1188 | Enables extended (16-bit) SPI EEPROM addressing. | 1189 | Enables extended (16-bit) SPI EEPROM addressing. |
1189 | (symmetrical to CONFIG_I2C_X) | 1190 | (symmetrical to CONFIG_I2C_X) |
1190 | 1191 | ||
1191 | CONFIG_SOFT_SPI | 1192 | CONFIG_SOFT_SPI |
1192 | 1193 | ||
1193 | Enables a software (bit-bang) SPI driver rather than | 1194 | Enables a software (bit-bang) SPI driver rather than |
1194 | using hardware support. This is a general purpose | 1195 | using hardware support. This is a general purpose |
1195 | driver that only requires three general I/O port pins | 1196 | driver that only requires three general I/O port pins |
1196 | (two outputs, one input) to function. If this is | 1197 | (two outputs, one input) to function. If this is |
1197 | defined, the board configuration must define several | 1198 | defined, the board configuration must define several |
1198 | SPI configuration items (port pins to use, etc). For | 1199 | SPI configuration items (port pins to use, etc). For |
1199 | an example, see include/configs/sacsng.h. | 1200 | an example, see include/configs/sacsng.h. |
1200 | 1201 | ||
1201 | - FPGA Support: CONFIG_FPGA_COUNT | 1202 | - FPGA Support: CONFIG_FPGA_COUNT |
1202 | 1203 | ||
1203 | Specify the number of FPGA devices to support. | 1204 | Specify the number of FPGA devices to support. |
1204 | 1205 | ||
1205 | CONFIG_FPGA | 1206 | CONFIG_FPGA |
1206 | 1207 | ||
1207 | Used to specify the types of FPGA devices. For example, | 1208 | Used to specify the types of FPGA devices. For example, |
1208 | #define CONFIG_FPGA CFG_XILINX_VIRTEX2 | 1209 | #define CONFIG_FPGA CFG_XILINX_VIRTEX2 |
1209 | 1210 | ||
1210 | CFG_FPGA_PROG_FEEDBACK | 1211 | CFG_FPGA_PROG_FEEDBACK |
1211 | 1212 | ||
1212 | Enable printing of hash marks during FPGA configuration. | 1213 | Enable printing of hash marks during FPGA configuration. |
1213 | 1214 | ||
1214 | CFG_FPGA_CHECK_BUSY | 1215 | CFG_FPGA_CHECK_BUSY |
1215 | 1216 | ||
1216 | Enable checks on FPGA configuration interface busy | 1217 | Enable checks on FPGA configuration interface busy |
1217 | status by the configuration function. This option | 1218 | status by the configuration function. This option |
1218 | will require a board or device specific function to | 1219 | will require a board or device specific function to |
1219 | be written. | 1220 | be written. |
1220 | 1221 | ||
1221 | CONFIG_FPGA_DELAY | 1222 | CONFIG_FPGA_DELAY |
1222 | 1223 | ||
1223 | If defined, a function that provides delays in the FPGA | 1224 | If defined, a function that provides delays in the FPGA |
1224 | configuration driver. | 1225 | configuration driver. |
1225 | 1226 | ||
1226 | CFG_FPGA_CHECK_CTRLC | 1227 | CFG_FPGA_CHECK_CTRLC |
1227 | Allow Control-C to interrupt FPGA configuration | 1228 | Allow Control-C to interrupt FPGA configuration |
1228 | 1229 | ||
1229 | CFG_FPGA_CHECK_ERROR | 1230 | CFG_FPGA_CHECK_ERROR |
1230 | 1231 | ||
1231 | Check for configuration errors during FPGA bitfile | 1232 | Check for configuration errors during FPGA bitfile |
1232 | loading. For example, abort during Virtex II | 1233 | loading. For example, abort during Virtex II |
1233 | configuration if the INIT_B line goes low (which | 1234 | configuration if the INIT_B line goes low (which |
1234 | indicated a CRC error). | 1235 | indicated a CRC error). |
1235 | 1236 | ||
1236 | CFG_FPGA_WAIT_INIT | 1237 | CFG_FPGA_WAIT_INIT |
1237 | 1238 | ||
1238 | Maximum time to wait for the INIT_B line to deassert | 1239 | Maximum time to wait for the INIT_B line to deassert |
1239 | after PROB_B has been deasserted during a Virtex II | 1240 | after PROB_B has been deasserted during a Virtex II |
1240 | FPGA configuration sequence. The default time is 500 | 1241 | FPGA configuration sequence. The default time is 500 |
1241 | mS. | 1242 | mS. |
1242 | 1243 | ||
1243 | CFG_FPGA_WAIT_BUSY | 1244 | CFG_FPGA_WAIT_BUSY |
1244 | 1245 | ||
1245 | Maximum time to wait for BUSY to deassert during | 1246 | Maximum time to wait for BUSY to deassert during |
1246 | Virtex II FPGA configuration. The default is 5 mS. | 1247 | Virtex II FPGA configuration. The default is 5 mS. |
1247 | 1248 | ||
1248 | CFG_FPGA_WAIT_CONFIG | 1249 | CFG_FPGA_WAIT_CONFIG |
1249 | 1250 | ||
1250 | Time to wait after FPGA configuration. The default is | 1251 | Time to wait after FPGA configuration. The default is |
1251 | 200 mS. | 1252 | 200 mS. |
1252 | 1253 | ||
1253 | - Configuration Management: | 1254 | - Configuration Management: |
1254 | CONFIG_IDENT_STRING | 1255 | CONFIG_IDENT_STRING |
1255 | 1256 | ||
1256 | If defined, this string will be added to the U-Boot | 1257 | If defined, this string will be added to the U-Boot |
1257 | version information (U_BOOT_VERSION) | 1258 | version information (U_BOOT_VERSION) |
1258 | 1259 | ||
1259 | - Vendor Parameter Protection: | 1260 | - Vendor Parameter Protection: |
1260 | 1261 | ||
1261 | U-Boot considers the values of the environment | 1262 | U-Boot considers the values of the environment |
1262 | variables "serial#" (Board Serial Number) and | 1263 | variables "serial#" (Board Serial Number) and |
1263 | "ethaddr" (Ethernet Address) to be parameters that | 1264 | "ethaddr" (Ethernet Address) to be parameters that |
1264 | are set once by the board vendor / manufacturer, and | 1265 | are set once by the board vendor / manufacturer, and |
1265 | protects these variables from casual modification by | 1266 | protects these variables from casual modification by |
1266 | the user. Once set, these variables are read-only, | 1267 | the user. Once set, these variables are read-only, |
1267 | and write or delete attempts are rejected. You can | 1268 | and write or delete attempts are rejected. You can |
1268 | change this behviour: | 1269 | change this behviour: |
1269 | 1270 | ||
1270 | If CONFIG_ENV_OVERWRITE is #defined in your config | 1271 | If CONFIG_ENV_OVERWRITE is #defined in your config |
1271 | file, the write protection for vendor parameters is | 1272 | file, the write protection for vendor parameters is |
1272 | completely disabled. Anybody can change or delete | 1273 | completely disabled. Anybody can change or delete |
1273 | these parameters. | 1274 | these parameters. |
1274 | 1275 | ||
1275 | Alternatively, if you #define _both_ CONFIG_ETHADDR | 1276 | Alternatively, if you #define _both_ CONFIG_ETHADDR |
1276 | _and_ CONFIG_OVERWRITE_ETHADDR_ONCE, a default | 1277 | _and_ CONFIG_OVERWRITE_ETHADDR_ONCE, a default |
1277 | ethernet address is installed in the environment, | 1278 | ethernet address is installed in the environment, |
1278 | which can be changed exactly ONCE by the user. [The | 1279 | which can be changed exactly ONCE by the user. [The |
1279 | serial# is unaffected by this, i. e. it remains | 1280 | serial# is unaffected by this, i. e. it remains |
1280 | read-only.] | 1281 | read-only.] |
1281 | 1282 | ||
1282 | - Protected RAM: | 1283 | - Protected RAM: |
1283 | CONFIG_PRAM | 1284 | CONFIG_PRAM |
1284 | 1285 | ||
1285 | Define this variable to enable the reservation of | 1286 | Define this variable to enable the reservation of |
1286 | "protected RAM", i. e. RAM which is not overwritten | 1287 | "protected RAM", i. e. RAM which is not overwritten |
1287 | by U-Boot. Define CONFIG_PRAM to hold the number of | 1288 | by U-Boot. Define CONFIG_PRAM to hold the number of |
1288 | kB you want to reserve for pRAM. You can overwrite | 1289 | kB you want to reserve for pRAM. You can overwrite |
1289 | this default value by defining an environment | 1290 | this default value by defining an environment |
1290 | variable "pram" to the number of kB you want to | 1291 | variable "pram" to the number of kB you want to |
1291 | reserve. Note that the board info structure will | 1292 | reserve. Note that the board info structure will |
1292 | still show the full amount of RAM. If pRAM is | 1293 | still show the full amount of RAM. If pRAM is |
1293 | reserved, a new environment variable "mem" will | 1294 | reserved, a new environment variable "mem" will |
1294 | automatically be defined to hold the amount of | 1295 | automatically be defined to hold the amount of |
1295 | remaining RAM in a form that can be passed as boot | 1296 | remaining RAM in a form that can be passed as boot |
1296 | argument to Linux, for instance like that: | 1297 | argument to Linux, for instance like that: |
1297 | 1298 | ||
1298 | setenv bootargs ... mem=\$(mem) | 1299 | setenv bootargs ... mem=\$(mem) |
1299 | saveenv | 1300 | saveenv |
1300 | 1301 | ||
1301 | This way you can tell Linux not to use this memory, | 1302 | This way you can tell Linux not to use this memory, |
1302 | either, which results in a memory region that will | 1303 | either, which results in a memory region that will |
1303 | not be affected by reboots. | 1304 | not be affected by reboots. |
1304 | 1305 | ||
1305 | *WARNING* If your board configuration uses automatic | 1306 | *WARNING* If your board configuration uses automatic |
1306 | detection of the RAM size, you must make sure that | 1307 | detection of the RAM size, you must make sure that |
1307 | this memory test is non-destructive. So far, the | 1308 | this memory test is non-destructive. So far, the |
1308 | following board configurations are known to be | 1309 | following board configurations are known to be |
1309 | "pRAM-clean": | 1310 | "pRAM-clean": |
1310 | 1311 | ||
1311 | ETX094, IVMS8, IVML24, SPD8xx, TQM8xxL, | 1312 | ETX094, IVMS8, IVML24, SPD8xx, TQM8xxL, |
1312 | HERMES, IP860, RPXlite, LWMON, LANTEC, | 1313 | HERMES, IP860, RPXlite, LWMON, LANTEC, |
1313 | PCU_E, FLAGADM, TQM8260 | 1314 | PCU_E, FLAGADM, TQM8260 |
1314 | 1315 | ||
1315 | - Error Recovery: | 1316 | - Error Recovery: |
1316 | CONFIG_PANIC_HANG | 1317 | CONFIG_PANIC_HANG |
1317 | 1318 | ||
1318 | Define this variable to stop the system in case of a | 1319 | Define this variable to stop the system in case of a |
1319 | fatal error, so that you have to reset it manually. | 1320 | fatal error, so that you have to reset it manually. |
1320 | This is probably NOT a good idea for an embedded | 1321 | This is probably NOT a good idea for an embedded |
1321 | system where you want to system to reboot | 1322 | system where you want to system to reboot |
1322 | automatically as fast as possible, but it may be | 1323 | automatically as fast as possible, but it may be |
1323 | useful during development since you can try to debug | 1324 | useful during development since you can try to debug |
1324 | the conditions that lead to the situation. | 1325 | the conditions that lead to the situation. |
1325 | 1326 | ||
1326 | CONFIG_NET_RETRY_COUNT | 1327 | CONFIG_NET_RETRY_COUNT |
1327 | 1328 | ||
1328 | This variable defines the number of retries for | 1329 | This variable defines the number of retries for |
1329 | network operations like ARP, RARP, TFTP, or BOOTP | 1330 | network operations like ARP, RARP, TFTP, or BOOTP |
1330 | before giving up the operation. If not defined, a | 1331 | before giving up the operation. If not defined, a |
1331 | default value of 5 is used. | 1332 | default value of 5 is used. |
1332 | 1333 | ||
1333 | - Command Interpreter: | 1334 | - Command Interpreter: |
1334 | CFG_AUTO_COMPLETE | 1335 | CFG_AUTO_COMPLETE |
1335 | 1336 | ||
1336 | Enable auto completion of commands using TAB. | 1337 | Enable auto completion of commands using TAB. |
1337 | 1338 | ||
1338 | CFG_HUSH_PARSER | 1339 | CFG_HUSH_PARSER |
1339 | 1340 | ||
1340 | Define this variable to enable the "hush" shell (from | 1341 | Define this variable to enable the "hush" shell (from |
1341 | Busybox) as command line interpreter, thus enabling | 1342 | Busybox) as command line interpreter, thus enabling |
1342 | powerful command line syntax like | 1343 | powerful command line syntax like |
1343 | if...then...else...fi conditionals or `&&' and '||' | 1344 | if...then...else...fi conditionals or `&&' and '||' |
1344 | constructs ("shell scripts"). | 1345 | constructs ("shell scripts"). |
1345 | 1346 | ||
1346 | If undefined, you get the old, much simpler behaviour | 1347 | If undefined, you get the old, much simpler behaviour |
1347 | with a somewhat smaller memory footprint. | 1348 | with a somewhat smaller memory footprint. |
1348 | 1349 | ||
1349 | 1350 | ||
1350 | CFG_PROMPT_HUSH_PS2 | 1351 | CFG_PROMPT_HUSH_PS2 |
1351 | 1352 | ||
1352 | This defines the secondary prompt string, which is | 1353 | This defines the secondary prompt string, which is |
1353 | printed when the command interpreter needs more input | 1354 | printed when the command interpreter needs more input |
1354 | to complete a command. Usually "> ". | 1355 | to complete a command. Usually "> ". |
1355 | 1356 | ||
1356 | Note: | 1357 | Note: |
1357 | 1358 | ||
1358 | In the current implementation, the local variables | 1359 | In the current implementation, the local variables |
1359 | space and global environment variables space are | 1360 | space and global environment variables space are |
1360 | separated. Local variables are those you define by | 1361 | separated. Local variables are those you define by |
1361 | simply typing `name=value'. To access a local | 1362 | simply typing `name=value'. To access a local |
1362 | variable later on, you have write `$name' or | 1363 | variable later on, you have write `$name' or |
1363 | `${name}'; to execute the contents of a variable | 1364 | `${name}'; to execute the contents of a variable |
1364 | directly type `$name' at the command prompt. | 1365 | directly type `$name' at the command prompt. |
1365 | 1366 | ||
1366 | Global environment variables are those you use | 1367 | Global environment variables are those you use |
1367 | setenv/printenv to work with. To run a command stored | 1368 | setenv/printenv to work with. To run a command stored |
1368 | in such a variable, you need to use the run command, | 1369 | in such a variable, you need to use the run command, |
1369 | and you must not use the '$' sign to access them. | 1370 | and you must not use the '$' sign to access them. |
1370 | 1371 | ||
1371 | To store commands and special characters in a | 1372 | To store commands and special characters in a |
1372 | variable, please use double quotation marks | 1373 | variable, please use double quotation marks |
1373 | surrounding the whole text of the variable, instead | 1374 | surrounding the whole text of the variable, instead |
1374 | of the backslashes before semicolons and special | 1375 | of the backslashes before semicolons and special |
1375 | symbols. | 1376 | symbols. |
1376 | 1377 | ||
1377 | - Default Environment: | 1378 | - Default Environment: |
1378 | CONFIG_EXTRA_ENV_SETTINGS | 1379 | CONFIG_EXTRA_ENV_SETTINGS |
1379 | 1380 | ||
1380 | Define this to contain any number of null terminated | 1381 | Define this to contain any number of null terminated |
1381 | strings (variable = value pairs) that will be part of | 1382 | strings (variable = value pairs) that will be part of |
1382 | the default environment compiled into the boot image. | 1383 | the default environment compiled into the boot image. |
1383 | 1384 | ||
1384 | For example, place something like this in your | 1385 | For example, place something like this in your |
1385 | board's config file: | 1386 | board's config file: |
1386 | 1387 | ||
1387 | #define CONFIG_EXTRA_ENV_SETTINGS \ | 1388 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
1388 | "myvar1=value1\0" \ | 1389 | "myvar1=value1\0" \ |
1389 | "myvar2=value2\0" | 1390 | "myvar2=value2\0" |
1390 | 1391 | ||
1391 | Warning: This method is based on knowledge about the | 1392 | Warning: This method is based on knowledge about the |
1392 | internal format how the environment is stored by the | 1393 | internal format how the environment is stored by the |
1393 | U-Boot code. This is NOT an official, exported | 1394 | U-Boot code. This is NOT an official, exported |
1394 | interface! Although it is unlikely that this format | 1395 | interface! Although it is unlikely that this format |
1395 | will change soon, there is no guarantee either. | 1396 | will change soon, there is no guarantee either. |
1396 | You better know what you are doing here. | 1397 | You better know what you are doing here. |
1397 | 1398 | ||
1398 | Note: overly (ab)use of the default environment is | 1399 | Note: overly (ab)use of the default environment is |
1399 | discouraged. Make sure to check other ways to preset | 1400 | discouraged. Make sure to check other ways to preset |
1400 | the environment like the autoscript function or the | 1401 | the environment like the autoscript function or the |
1401 | boot command first. | 1402 | boot command first. |
1402 | 1403 | ||
1403 | - DataFlash Support: | 1404 | - DataFlash Support: |
1404 | CONFIG_HAS_DATAFLASH | 1405 | CONFIG_HAS_DATAFLASH |
1405 | 1406 | ||
1406 | Defining this option enables DataFlash features and | 1407 | Defining this option enables DataFlash features and |
1407 | allows to read/write in Dataflash via the standard | 1408 | allows to read/write in Dataflash via the standard |
1408 | commands cp, md... | 1409 | commands cp, md... |
1409 | 1410 | ||
1410 | - SystemACE Support: | 1411 | - SystemACE Support: |
1411 | CONFIG_SYSTEMACE | 1412 | CONFIG_SYSTEMACE |
1412 | 1413 | ||
1413 | Adding this option adds support for Xilinx SystemACE | 1414 | Adding this option adds support for Xilinx SystemACE |
1414 | chips attached via some sort of local bus. The address | 1415 | chips attached via some sort of local bus. The address |
1415 | of the chip must alsh be defined in the | 1416 | of the chip must alsh be defined in the |
1416 | CFG_SYSTEMACE_BASE macro. For example: | 1417 | CFG_SYSTEMACE_BASE macro. For example: |
1417 | 1418 | ||
1418 | #define CONFIG_SYSTEMACE | 1419 | #define CONFIG_SYSTEMACE |
1419 | #define CFG_SYSTEMACE_BASE 0xf0000000 | 1420 | #define CFG_SYSTEMACE_BASE 0xf0000000 |
1420 | 1421 | ||
1421 | When SystemACE support is added, the "ace" device type | 1422 | When SystemACE support is added, the "ace" device type |
1422 | becomes available to the fat commands, i.e. fatls. | 1423 | becomes available to the fat commands, i.e. fatls. |
1423 | 1424 | ||
1424 | - Show boot progress: | 1425 | - Show boot progress: |
1425 | CONFIG_SHOW_BOOT_PROGRESS | 1426 | CONFIG_SHOW_BOOT_PROGRESS |
1426 | 1427 | ||
1427 | Defining this option allows to add some board- | 1428 | Defining this option allows to add some board- |
1428 | specific code (calling a user-provided function | 1429 | specific code (calling a user-provided function |
1429 | "show_boot_progress(int)") that enables you to show | 1430 | "show_boot_progress(int)") that enables you to show |
1430 | the system's boot progress on some display (for | 1431 | the system's boot progress on some display (for |
1431 | example, some LED's) on your board. At the moment, | 1432 | example, some LED's) on your board. At the moment, |
1432 | the following checkpoints are implemented: | 1433 | the following checkpoints are implemented: |
1433 | 1434 | ||
1434 | Arg Where When | 1435 | Arg Where When |
1435 | 1 common/cmd_bootm.c before attempting to boot an image | 1436 | 1 common/cmd_bootm.c before attempting to boot an image |
1436 | -1 common/cmd_bootm.c Image header has bad magic number | 1437 | -1 common/cmd_bootm.c Image header has bad magic number |
1437 | 2 common/cmd_bootm.c Image header has correct magic number | 1438 | 2 common/cmd_bootm.c Image header has correct magic number |
1438 | -2 common/cmd_bootm.c Image header has bad checksum | 1439 | -2 common/cmd_bootm.c Image header has bad checksum |
1439 | 3 common/cmd_bootm.c Image header has correct checksum | 1440 | 3 common/cmd_bootm.c Image header has correct checksum |
1440 | -3 common/cmd_bootm.c Image data has bad checksum | 1441 | -3 common/cmd_bootm.c Image data has bad checksum |
1441 | 4 common/cmd_bootm.c Image data has correct checksum | 1442 | 4 common/cmd_bootm.c Image data has correct checksum |
1442 | -4 common/cmd_bootm.c Image is for unsupported architecture | 1443 | -4 common/cmd_bootm.c Image is for unsupported architecture |
1443 | 5 common/cmd_bootm.c Architecture check OK | 1444 | 5 common/cmd_bootm.c Architecture check OK |
1444 | -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi, standalone) | 1445 | -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi, standalone) |
1445 | 6 common/cmd_bootm.c Image Type check OK | 1446 | 6 common/cmd_bootm.c Image Type check OK |
1446 | -6 common/cmd_bootm.c gunzip uncompression error | 1447 | -6 common/cmd_bootm.c gunzip uncompression error |
1447 | -7 common/cmd_bootm.c Unimplemented compression type | 1448 | -7 common/cmd_bootm.c Unimplemented compression type |
1448 | 7 common/cmd_bootm.c Uncompression OK | 1449 | 7 common/cmd_bootm.c Uncompression OK |
1449 | -8 common/cmd_bootm.c Wrong Image Type (not kernel, multi, standalone) | 1450 | -8 common/cmd_bootm.c Wrong Image Type (not kernel, multi, standalone) |
1450 | 8 common/cmd_bootm.c Image Type check OK | 1451 | 8 common/cmd_bootm.c Image Type check OK |
1451 | -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX) | 1452 | -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX) |
1452 | 9 common/cmd_bootm.c Start initial ramdisk verification | 1453 | 9 common/cmd_bootm.c Start initial ramdisk verification |
1453 | -10 common/cmd_bootm.c Ramdisk header has bad magic number | 1454 | -10 common/cmd_bootm.c Ramdisk header has bad magic number |
1454 | -11 common/cmd_bootm.c Ramdisk header has bad checksum | 1455 | -11 common/cmd_bootm.c Ramdisk header has bad checksum |
1455 | 10 common/cmd_bootm.c Ramdisk header is OK | 1456 | 10 common/cmd_bootm.c Ramdisk header is OK |
1456 | -12 common/cmd_bootm.c Ramdisk data has bad checksum | 1457 | -12 common/cmd_bootm.c Ramdisk data has bad checksum |
1457 | 11 common/cmd_bootm.c Ramdisk data has correct checksum | 1458 | 11 common/cmd_bootm.c Ramdisk data has correct checksum |
1458 | 12 common/cmd_bootm.c Ramdisk verification complete, start loading | 1459 | 12 common/cmd_bootm.c Ramdisk verification complete, start loading |
1459 | -13 common/cmd_bootm.c Wrong Image Type (not PPC Linux Ramdisk) | 1460 | -13 common/cmd_bootm.c Wrong Image Type (not PPC Linux Ramdisk) |
1460 | 13 common/cmd_bootm.c Start multifile image verification | 1461 | 13 common/cmd_bootm.c Start multifile image verification |
1461 | 14 common/cmd_bootm.c No initial ramdisk, no multifile, continue. | 1462 | 14 common/cmd_bootm.c No initial ramdisk, no multifile, continue. |
1462 | 15 common/cmd_bootm.c All preparation done, transferring control to OS | 1463 | 15 common/cmd_bootm.c All preparation done, transferring control to OS |
1463 | 1464 | ||
1464 | -30 lib_ppc/board.c Fatal error, hang the system | 1465 | -30 lib_ppc/board.c Fatal error, hang the system |
1465 | -31 post/post.c POST test failed, detected by post_output_backlog() | 1466 | -31 post/post.c POST test failed, detected by post_output_backlog() |
1466 | -32 post/post.c POST test failed, detected by post_run_single() | 1467 | -32 post/post.c POST test failed, detected by post_run_single() |
1467 | 1468 | ||
1468 | -1 common/cmd_doc.c Bad usage of "doc" command | 1469 | -1 common/cmd_doc.c Bad usage of "doc" command |
1469 | -1 common/cmd_doc.c No boot device | 1470 | -1 common/cmd_doc.c No boot device |
1470 | -1 common/cmd_doc.c Unknown Chip ID on boot device | 1471 | -1 common/cmd_doc.c Unknown Chip ID on boot device |
1471 | -1 common/cmd_doc.c Read Error on boot device | 1472 | -1 common/cmd_doc.c Read Error on boot device |
1472 | -1 common/cmd_doc.c Image header has bad magic number | 1473 | -1 common/cmd_doc.c Image header has bad magic number |
1473 | 1474 | ||
1474 | -1 common/cmd_ide.c Bad usage of "ide" command | 1475 | -1 common/cmd_ide.c Bad usage of "ide" command |
1475 | -1 common/cmd_ide.c No boot device | 1476 | -1 common/cmd_ide.c No boot device |
1476 | -1 common/cmd_ide.c Unknown boot device | 1477 | -1 common/cmd_ide.c Unknown boot device |
1477 | -1 common/cmd_ide.c Unknown partition table | 1478 | -1 common/cmd_ide.c Unknown partition table |
1478 | -1 common/cmd_ide.c Invalid partition type | 1479 | -1 common/cmd_ide.c Invalid partition type |
1479 | -1 common/cmd_ide.c Read Error on boot device | 1480 | -1 common/cmd_ide.c Read Error on boot device |
1480 | -1 common/cmd_ide.c Image header has bad magic number | 1481 | -1 common/cmd_ide.c Image header has bad magic number |
1481 | 1482 | ||
1482 | -1 common/cmd_nand.c Bad usage of "nand" command | 1483 | -1 common/cmd_nand.c Bad usage of "nand" command |
1483 | -1 common/cmd_nand.c No boot device | 1484 | -1 common/cmd_nand.c No boot device |
1484 | -1 common/cmd_nand.c Unknown Chip ID on boot device | 1485 | -1 common/cmd_nand.c Unknown Chip ID on boot device |
1485 | -1 common/cmd_nand.c Read Error on boot device | 1486 | -1 common/cmd_nand.c Read Error on boot device |
1486 | -1 common/cmd_nand.c Image header has bad magic number | 1487 | -1 common/cmd_nand.c Image header has bad magic number |
1487 | 1488 | ||
1488 | -1 common/env_common.c Environment has a bad CRC, using default | 1489 | -1 common/env_common.c Environment has a bad CRC, using default |
1489 | 1490 | ||
1490 | 1491 | ||
1491 | Modem Support: | 1492 | Modem Support: |
1492 | -------------- | 1493 | -------------- |
1493 | 1494 | ||
1494 | [so far only for SMDK2400 and TRAB boards] | 1495 | [so far only for SMDK2400 and TRAB boards] |
1495 | 1496 | ||
1496 | - Modem support endable: | 1497 | - Modem support endable: |
1497 | CONFIG_MODEM_SUPPORT | 1498 | CONFIG_MODEM_SUPPORT |
1498 | 1499 | ||
1499 | - RTS/CTS Flow control enable: | 1500 | - RTS/CTS Flow control enable: |
1500 | CONFIG_HWFLOW | 1501 | CONFIG_HWFLOW |
1501 | 1502 | ||
1502 | - Modem debug support: | 1503 | - Modem debug support: |
1503 | CONFIG_MODEM_SUPPORT_DEBUG | 1504 | CONFIG_MODEM_SUPPORT_DEBUG |
1504 | 1505 | ||
1505 | Enables debugging stuff (char screen[1024], dbg()) | 1506 | Enables debugging stuff (char screen[1024], dbg()) |
1506 | for modem support. Useful only with BDI2000. | 1507 | for modem support. Useful only with BDI2000. |
1507 | 1508 | ||
1508 | - Interrupt support (PPC): | 1509 | - Interrupt support (PPC): |
1509 | 1510 | ||
1510 | There are common interrupt_init() and timer_interrupt() | 1511 | There are common interrupt_init() and timer_interrupt() |
1511 | for all PPC archs. interrupt_init() calls interrupt_init_cpu() | 1512 | for all PPC archs. interrupt_init() calls interrupt_init_cpu() |
1512 | for cpu specific initialization. interrupt_init_cpu() | 1513 | for cpu specific initialization. interrupt_init_cpu() |
1513 | should set decrementer_count to appropriate value. If | 1514 | should set decrementer_count to appropriate value. If |
1514 | cpu resets decrementer automatically after interrupt | 1515 | cpu resets decrementer automatically after interrupt |
1515 | (ppc4xx) it should set decrementer_count to zero. | 1516 | (ppc4xx) it should set decrementer_count to zero. |
1516 | timer_interrupt() calls timer_interrupt_cpu() for cpu | 1517 | timer_interrupt() calls timer_interrupt_cpu() for cpu |
1517 | specific handling. If board has watchdog / status_led | 1518 | specific handling. If board has watchdog / status_led |
1518 | / other_activity_monitor it works automatically from | 1519 | / other_activity_monitor it works automatically from |
1519 | general timer_interrupt(). | 1520 | general timer_interrupt(). |
1520 | 1521 | ||
1521 | - General: | 1522 | - General: |
1522 | 1523 | ||
1523 | In the target system modem support is enabled when a | 1524 | In the target system modem support is enabled when a |
1524 | specific key (key combination) is pressed during | 1525 | specific key (key combination) is pressed during |
1525 | power-on. Otherwise U-Boot will boot normally | 1526 | power-on. Otherwise U-Boot will boot normally |
1526 | (autoboot). The key_pressed() fuction is called from | 1527 | (autoboot). The key_pressed() fuction is called from |
1527 | board_init(). Currently key_pressed() is a dummy | 1528 | board_init(). Currently key_pressed() is a dummy |
1528 | function, returning 1 and thus enabling modem | 1529 | function, returning 1 and thus enabling modem |
1529 | initialization. | 1530 | initialization. |
1530 | 1531 | ||
1531 | If there are no modem init strings in the | 1532 | If there are no modem init strings in the |
1532 | environment, U-Boot proceed to autoboot; the | 1533 | environment, U-Boot proceed to autoboot; the |
1533 | previous output (banner, info printfs) will be | 1534 | previous output (banner, info printfs) will be |
1534 | supressed, though. | 1535 | supressed, though. |
1535 | 1536 | ||
1536 | See also: doc/README.Modem | 1537 | See also: doc/README.Modem |
1537 | 1538 | ||
1538 | 1539 | ||
1539 | Configuration Settings: | 1540 | Configuration Settings: |
1540 | ----------------------- | 1541 | ----------------------- |
1541 | 1542 | ||
1542 | - CFG_LONGHELP: Defined when you want long help messages included; | 1543 | - CFG_LONGHELP: Defined when you want long help messages included; |
1543 | undefine this when you're short of memory. | 1544 | undefine this when you're short of memory. |
1544 | 1545 | ||
1545 | - CFG_PROMPT: This is what U-Boot prints on the console to | 1546 | - CFG_PROMPT: This is what U-Boot prints on the console to |
1546 | prompt for user input. | 1547 | prompt for user input. |
1547 | 1548 | ||
1548 | - CFG_CBSIZE: Buffer size for input from the Console | 1549 | - CFG_CBSIZE: Buffer size for input from the Console |
1549 | 1550 | ||
1550 | - CFG_PBSIZE: Buffer size for Console output | 1551 | - CFG_PBSIZE: Buffer size for Console output |
1551 | 1552 | ||
1552 | - CFG_MAXARGS: max. Number of arguments accepted for monitor commands | 1553 | - CFG_MAXARGS: max. Number of arguments accepted for monitor commands |
1553 | 1554 | ||
1554 | - CFG_BARGSIZE: Buffer size for Boot Arguments which are passed to | 1555 | - CFG_BARGSIZE: Buffer size for Boot Arguments which are passed to |
1555 | the application (usually a Linux kernel) when it is | 1556 | the application (usually a Linux kernel) when it is |
1556 | booted | 1557 | booted |
1557 | 1558 | ||
1558 | - CFG_BAUDRATE_TABLE: | 1559 | - CFG_BAUDRATE_TABLE: |
1559 | List of legal baudrate settings for this board. | 1560 | List of legal baudrate settings for this board. |
1560 | 1561 | ||
1561 | - CFG_CONSOLE_INFO_QUIET | 1562 | - CFG_CONSOLE_INFO_QUIET |
1562 | Suppress display of console information at boot. | 1563 | Suppress display of console information at boot. |
1563 | 1564 | ||
1564 | - CFG_CONSOLE_IS_IN_ENV | 1565 | - CFG_CONSOLE_IS_IN_ENV |
1565 | If the board specific function | 1566 | If the board specific function |
1566 | extern int overwrite_console (void); | 1567 | extern int overwrite_console (void); |
1567 | returns 1, the stdin, stderr and stdout are switched to the | 1568 | returns 1, the stdin, stderr and stdout are switched to the |
1568 | serial port, else the settings in the environment are used. | 1569 | serial port, else the settings in the environment are used. |
1569 | 1570 | ||
1570 | - CFG_CONSOLE_OVERWRITE_ROUTINE | 1571 | - CFG_CONSOLE_OVERWRITE_ROUTINE |
1571 | Enable the call to overwrite_console(). | 1572 | Enable the call to overwrite_console(). |
1572 | 1573 | ||
1573 | - CFG_CONSOLE_ENV_OVERWRITE | 1574 | - CFG_CONSOLE_ENV_OVERWRITE |
1574 | Enable overwrite of previous console environment settings. | 1575 | Enable overwrite of previous console environment settings. |
1575 | 1576 | ||
1576 | - CFG_MEMTEST_START, CFG_MEMTEST_END: | 1577 | - CFG_MEMTEST_START, CFG_MEMTEST_END: |
1577 | Begin and End addresses of the area used by the | 1578 | Begin and End addresses of the area used by the |
1578 | simple memory test. | 1579 | simple memory test. |
1579 | 1580 | ||
1580 | - CFG_ALT_MEMTEST: | 1581 | - CFG_ALT_MEMTEST: |
1581 | Enable an alternate, more extensive memory test. | 1582 | Enable an alternate, more extensive memory test. |
1582 | 1583 | ||
1583 | - CFG_MEMTEST_SCRATCH: | 1584 | - CFG_MEMTEST_SCRATCH: |
1584 | Scratch address used by the alternate memory test | 1585 | Scratch address used by the alternate memory test |
1585 | You only need to set this if address zero isn't writeable | 1586 | You only need to set this if address zero isn't writeable |
1586 | 1587 | ||
1587 | - CFG_TFTP_LOADADDR: | 1588 | - CFG_TFTP_LOADADDR: |
1588 | Default load address for network file downloads | 1589 | Default load address for network file downloads |
1589 | 1590 | ||
1590 | - CFG_LOADS_BAUD_CHANGE: | 1591 | - CFG_LOADS_BAUD_CHANGE: |
1591 | Enable temporary baudrate change while serial download | 1592 | Enable temporary baudrate change while serial download |
1592 | 1593 | ||
1593 | - CFG_SDRAM_BASE: | 1594 | - CFG_SDRAM_BASE: |
1594 | Physical start address of SDRAM. _Must_ be 0 here. | 1595 | Physical start address of SDRAM. _Must_ be 0 here. |
1595 | 1596 | ||
1596 | - CFG_MBIO_BASE: | 1597 | - CFG_MBIO_BASE: |
1597 | Physical start address of Motherboard I/O (if using a | 1598 | Physical start address of Motherboard I/O (if using a |
1598 | Cogent motherboard) | 1599 | Cogent motherboard) |
1599 | 1600 | ||
1600 | - CFG_FLASH_BASE: | 1601 | - CFG_FLASH_BASE: |
1601 | Physical start address of Flash memory. | 1602 | Physical start address of Flash memory. |
1602 | 1603 | ||
1603 | - CFG_MONITOR_BASE: | 1604 | - CFG_MONITOR_BASE: |
1604 | Physical start address of boot monitor code (set by | 1605 | Physical start address of boot monitor code (set by |
1605 | make config files to be same as the text base address | 1606 | make config files to be same as the text base address |
1606 | (TEXT_BASE) used when linking) - same as | 1607 | (TEXT_BASE) used when linking) - same as |
1607 | CFG_FLASH_BASE when booting from flash. | 1608 | CFG_FLASH_BASE when booting from flash. |
1608 | 1609 | ||
1609 | - CFG_MONITOR_LEN: | 1610 | - CFG_MONITOR_LEN: |
1610 | Size of memory reserved for monitor code, used to | 1611 | Size of memory reserved for monitor code, used to |
1611 | determine _at_compile_time_ (!) if the environment is | 1612 | determine _at_compile_time_ (!) if the environment is |
1612 | embedded within the U-Boot image, or in a separate | 1613 | embedded within the U-Boot image, or in a separate |
1613 | flash sector. | 1614 | flash sector. |
1614 | 1615 | ||
1615 | - CFG_MALLOC_LEN: | 1616 | - CFG_MALLOC_LEN: |
1616 | Size of DRAM reserved for malloc() use. | 1617 | Size of DRAM reserved for malloc() use. |
1617 | 1618 | ||
1618 | - CFG_BOOTMAPSZ: | 1619 | - CFG_BOOTMAPSZ: |
1619 | Maximum size of memory mapped by the startup code of | 1620 | Maximum size of memory mapped by the startup code of |
1620 | the Linux kernel; all data that must be processed by | 1621 | the Linux kernel; all data that must be processed by |
1621 | the Linux kernel (bd_info, boot arguments, eventually | 1622 | the Linux kernel (bd_info, boot arguments, eventually |
1622 | initrd image) must be put below this limit. | 1623 | initrd image) must be put below this limit. |
1623 | 1624 | ||
1624 | - CFG_MAX_FLASH_BANKS: | 1625 | - CFG_MAX_FLASH_BANKS: |
1625 | Max number of Flash memory banks | 1626 | Max number of Flash memory banks |
1626 | 1627 | ||
1627 | - CFG_MAX_FLASH_SECT: | 1628 | - CFG_MAX_FLASH_SECT: |
1628 | Max number of sectors on a Flash chip | 1629 | Max number of sectors on a Flash chip |
1629 | 1630 | ||
1630 | - CFG_FLASH_ERASE_TOUT: | 1631 | - CFG_FLASH_ERASE_TOUT: |
1631 | Timeout for Flash erase operations (in ms) | 1632 | Timeout for Flash erase operations (in ms) |
1632 | 1633 | ||
1633 | - CFG_FLASH_WRITE_TOUT: | 1634 | - CFG_FLASH_WRITE_TOUT: |
1634 | Timeout for Flash write operations (in ms) | 1635 | Timeout for Flash write operations (in ms) |
1635 | 1636 | ||
1636 | - CFG_FLASH_LOCK_TOUT | 1637 | - CFG_FLASH_LOCK_TOUT |
1637 | Timeout for Flash set sector lock bit operation (in ms) | 1638 | Timeout for Flash set sector lock bit operation (in ms) |
1638 | 1639 | ||
1639 | - CFG_FLASH_UNLOCK_TOUT | 1640 | - CFG_FLASH_UNLOCK_TOUT |
1640 | Timeout for Flash clear lock bits operation (in ms) | 1641 | Timeout for Flash clear lock bits operation (in ms) |
1641 | 1642 | ||
1642 | - CFG_FLASH_PROTECTION | 1643 | - CFG_FLASH_PROTECTION |
1643 | If defined, hardware flash sectors protection is used | 1644 | If defined, hardware flash sectors protection is used |
1644 | instead of U-Boot software protection. | 1645 | instead of U-Boot software protection. |
1645 | 1646 | ||
1646 | - CFG_DIRECT_FLASH_TFTP: | 1647 | - CFG_DIRECT_FLASH_TFTP: |
1647 | 1648 | ||
1648 | Enable TFTP transfers directly to flash memory; | 1649 | Enable TFTP transfers directly to flash memory; |
1649 | without this option such a download has to be | 1650 | without this option such a download has to be |
1650 | performed in two steps: (1) download to RAM, and (2) | 1651 | performed in two steps: (1) download to RAM, and (2) |
1651 | copy from RAM to flash. | 1652 | copy from RAM to flash. |
1652 | 1653 | ||
1653 | The two-step approach is usually more reliable, since | 1654 | The two-step approach is usually more reliable, since |
1654 | you can check if the download worked before you erase | 1655 | you can check if the download worked before you erase |
1655 | the flash, but in some situations (when sytem RAM is | 1656 | the flash, but in some situations (when sytem RAM is |
1656 | too limited to allow for a tempory copy of the | 1657 | too limited to allow for a tempory copy of the |
1657 | downloaded image) this option may be very useful. | 1658 | downloaded image) this option may be very useful. |
1658 | 1659 | ||
1659 | - CFG_FLASH_CFI: | 1660 | - CFG_FLASH_CFI: |
1660 | Define if the flash driver uses extra elements in the | 1661 | Define if the flash driver uses extra elements in the |
1661 | common flash structure for storing flash geometry. | 1662 | common flash structure for storing flash geometry. |
1662 | 1663 | ||
1663 | - CFG_FLASH_CFI_DRIVER | 1664 | - CFG_FLASH_CFI_DRIVER |
1664 | This option also enables the building of the cfi_flash driver | 1665 | This option also enables the building of the cfi_flash driver |
1665 | in the drivers directory | 1666 | in the drivers directory |
1666 | 1667 | ||
1667 | - CFG_RX_ETH_BUFFER: | 1668 | - CFG_RX_ETH_BUFFER: |
1668 | Defines the number of ethernet receive buffers. On some | 1669 | Defines the number of ethernet receive buffers. On some |
1669 | ethernet controllers it is recommended to set this value | 1670 | ethernet controllers it is recommended to set this value |
1670 | to 8 or even higher (EEPRO100 or 405 EMAC), since all | 1671 | to 8 or even higher (EEPRO100 or 405 EMAC), since all |
1671 | buffers can be full shortly after enabling the interface | 1672 | buffers can be full shortly after enabling the interface |
1672 | on high ethernet traffic. | 1673 | on high ethernet traffic. |
1673 | Defaults to 4 if not defined. | 1674 | Defaults to 4 if not defined. |
1674 | 1675 | ||
1675 | The following definitions that deal with the placement and management | 1676 | The following definitions that deal with the placement and management |
1676 | of environment data (variable area); in general, we support the | 1677 | of environment data (variable area); in general, we support the |
1677 | following configurations: | 1678 | following configurations: |
1678 | 1679 | ||
1679 | - CFG_ENV_IS_IN_FLASH: | 1680 | - CFG_ENV_IS_IN_FLASH: |
1680 | 1681 | ||
1681 | Define this if the environment is in flash memory. | 1682 | Define this if the environment is in flash memory. |
1682 | 1683 | ||
1683 | a) The environment occupies one whole flash sector, which is | 1684 | a) The environment occupies one whole flash sector, which is |
1684 | "embedded" in the text segment with the U-Boot code. This | 1685 | "embedded" in the text segment with the U-Boot code. This |
1685 | happens usually with "bottom boot sector" or "top boot | 1686 | happens usually with "bottom boot sector" or "top boot |
1686 | sector" type flash chips, which have several smaller | 1687 | sector" type flash chips, which have several smaller |
1687 | sectors at the start or the end. For instance, such a | 1688 | sectors at the start or the end. For instance, such a |
1688 | layout can have sector sizes of 8, 2x4, 16, Nx32 kB. In | 1689 | layout can have sector sizes of 8, 2x4, 16, Nx32 kB. In |
1689 | such a case you would place the environment in one of the | 1690 | such a case you would place the environment in one of the |
1690 | 4 kB sectors - with U-Boot code before and after it. With | 1691 | 4 kB sectors - with U-Boot code before and after it. With |
1691 | "top boot sector" type flash chips, you would put the | 1692 | "top boot sector" type flash chips, you would put the |
1692 | environment in one of the last sectors, leaving a gap | 1693 | environment in one of the last sectors, leaving a gap |
1693 | between U-Boot and the environment. | 1694 | between U-Boot and the environment. |
1694 | 1695 | ||
1695 | - CFG_ENV_OFFSET: | 1696 | - CFG_ENV_OFFSET: |
1696 | 1697 | ||
1697 | Offset of environment data (variable area) to the | 1698 | Offset of environment data (variable area) to the |
1698 | beginning of flash memory; for instance, with bottom boot | 1699 | beginning of flash memory; for instance, with bottom boot |
1699 | type flash chips the second sector can be used: the offset | 1700 | type flash chips the second sector can be used: the offset |
1700 | for this sector is given here. | 1701 | for this sector is given here. |
1701 | 1702 | ||
1702 | CFG_ENV_OFFSET is used relative to CFG_FLASH_BASE. | 1703 | CFG_ENV_OFFSET is used relative to CFG_FLASH_BASE. |
1703 | 1704 | ||
1704 | - CFG_ENV_ADDR: | 1705 | - CFG_ENV_ADDR: |
1705 | 1706 | ||
1706 | This is just another way to specify the start address of | 1707 | This is just another way to specify the start address of |
1707 | the flash sector containing the environment (instead of | 1708 | the flash sector containing the environment (instead of |
1708 | CFG_ENV_OFFSET). | 1709 | CFG_ENV_OFFSET). |
1709 | 1710 | ||
1710 | - CFG_ENV_SECT_SIZE: | 1711 | - CFG_ENV_SECT_SIZE: |
1711 | 1712 | ||
1712 | Size of the sector containing the environment. | 1713 | Size of the sector containing the environment. |
1713 | 1714 | ||
1714 | 1715 | ||
1715 | b) Sometimes flash chips have few, equal sized, BIG sectors. | 1716 | b) Sometimes flash chips have few, equal sized, BIG sectors. |
1716 | In such a case you don't want to spend a whole sector for | 1717 | In such a case you don't want to spend a whole sector for |
1717 | the environment. | 1718 | the environment. |
1718 | 1719 | ||
1719 | - CFG_ENV_SIZE: | 1720 | - CFG_ENV_SIZE: |
1720 | 1721 | ||
1721 | If you use this in combination with CFG_ENV_IS_IN_FLASH | 1722 | If you use this in combination with CFG_ENV_IS_IN_FLASH |
1722 | and CFG_ENV_SECT_SIZE, you can specify to use only a part | 1723 | and CFG_ENV_SECT_SIZE, you can specify to use only a part |
1723 | of this flash sector for the environment. This saves | 1724 | of this flash sector for the environment. This saves |
1724 | memory for the RAM copy of the environment. | 1725 | memory for the RAM copy of the environment. |
1725 | 1726 | ||
1726 | It may also save flash memory if you decide to use this | 1727 | It may also save flash memory if you decide to use this |
1727 | when your environment is "embedded" within U-Boot code, | 1728 | when your environment is "embedded" within U-Boot code, |
1728 | since then the remainder of the flash sector could be used | 1729 | since then the remainder of the flash sector could be used |
1729 | for U-Boot code. It should be pointed out that this is | 1730 | for U-Boot code. It should be pointed out that this is |
1730 | STRONGLY DISCOURAGED from a robustness point of view: | 1731 | STRONGLY DISCOURAGED from a robustness point of view: |
1731 | updating the environment in flash makes it always | 1732 | updating the environment in flash makes it always |
1732 | necessary to erase the WHOLE sector. If something goes | 1733 | necessary to erase the WHOLE sector. If something goes |
1733 | wrong before the contents has been restored from a copy in | 1734 | wrong before the contents has been restored from a copy in |
1734 | RAM, your target system will be dead. | 1735 | RAM, your target system will be dead. |
1735 | 1736 | ||
1736 | - CFG_ENV_ADDR_REDUND | 1737 | - CFG_ENV_ADDR_REDUND |
1737 | CFG_ENV_SIZE_REDUND | 1738 | CFG_ENV_SIZE_REDUND |
1738 | 1739 | ||
1739 | These settings describe a second storage area used to hold | 1740 | These settings describe a second storage area used to hold |
1740 | a redundand copy of the environment data, so that there is | 1741 | a redundand copy of the environment data, so that there is |
1741 | a valid backup copy in case there is a power failure during | 1742 | a valid backup copy in case there is a power failure during |
1742 | a "saveenv" operation. | 1743 | a "saveenv" operation. |
1743 | 1744 | ||
1744 | BE CAREFUL! Any changes to the flash layout, and some changes to the | 1745 | BE CAREFUL! Any changes to the flash layout, and some changes to the |
1745 | source code will make it necessary to adapt <board>/u-boot.lds* | 1746 | source code will make it necessary to adapt <board>/u-boot.lds* |
1746 | accordingly! | 1747 | accordingly! |
1747 | 1748 | ||
1748 | 1749 | ||
1749 | - CFG_ENV_IS_IN_NVRAM: | 1750 | - CFG_ENV_IS_IN_NVRAM: |
1750 | 1751 | ||
1751 | Define this if you have some non-volatile memory device | 1752 | Define this if you have some non-volatile memory device |
1752 | (NVRAM, battery buffered SRAM) which you want to use for the | 1753 | (NVRAM, battery buffered SRAM) which you want to use for the |
1753 | environment. | 1754 | environment. |
1754 | 1755 | ||
1755 | - CFG_ENV_ADDR: | 1756 | - CFG_ENV_ADDR: |
1756 | - CFG_ENV_SIZE: | 1757 | - CFG_ENV_SIZE: |
1757 | 1758 | ||
1758 | These two #defines are used to determin the memory area you | 1759 | These two #defines are used to determin the memory area you |
1759 | want to use for environment. It is assumed that this memory | 1760 | want to use for environment. It is assumed that this memory |
1760 | can just be read and written to, without any special | 1761 | can just be read and written to, without any special |
1761 | provision. | 1762 | provision. |
1762 | 1763 | ||
1763 | BE CAREFUL! The first access to the environment happens quite early | 1764 | BE CAREFUL! The first access to the environment happens quite early |
1764 | in U-Boot initalization (when we try to get the setting of for the | 1765 | in U-Boot initalization (when we try to get the setting of for the |
1765 | console baudrate). You *MUST* have mappend your NVRAM area then, or | 1766 | console baudrate). You *MUST* have mappend your NVRAM area then, or |
1766 | U-Boot will hang. | 1767 | U-Boot will hang. |
1767 | 1768 | ||
1768 | Please note that even with NVRAM we still use a copy of the | 1769 | Please note that even with NVRAM we still use a copy of the |
1769 | environment in RAM: we could work on NVRAM directly, but we want to | 1770 | environment in RAM: we could work on NVRAM directly, but we want to |
1770 | keep settings there always unmodified except somebody uses "saveenv" | 1771 | keep settings there always unmodified except somebody uses "saveenv" |
1771 | to save the current settings. | 1772 | to save the current settings. |
1772 | 1773 | ||
1773 | 1774 | ||
1774 | - CFG_ENV_IS_IN_EEPROM: | 1775 | - CFG_ENV_IS_IN_EEPROM: |
1775 | 1776 | ||
1776 | Use this if you have an EEPROM or similar serial access | 1777 | Use this if you have an EEPROM or similar serial access |
1777 | device and a driver for it. | 1778 | device and a driver for it. |
1778 | 1779 | ||
1779 | - CFG_ENV_OFFSET: | 1780 | - CFG_ENV_OFFSET: |
1780 | - CFG_ENV_SIZE: | 1781 | - CFG_ENV_SIZE: |
1781 | 1782 | ||
1782 | These two #defines specify the offset and size of the | 1783 | These two #defines specify the offset and size of the |
1783 | environment area within the total memory of your EEPROM. | 1784 | environment area within the total memory of your EEPROM. |
1784 | 1785 | ||
1785 | - CFG_I2C_EEPROM_ADDR: | 1786 | - CFG_I2C_EEPROM_ADDR: |
1786 | If defined, specified the chip address of the EEPROM device. | 1787 | If defined, specified the chip address of the EEPROM device. |
1787 | The default address is zero. | 1788 | The default address is zero. |
1788 | 1789 | ||
1789 | - CFG_EEPROM_PAGE_WRITE_BITS: | 1790 | - CFG_EEPROM_PAGE_WRITE_BITS: |
1790 | If defined, the number of bits used to address bytes in a | 1791 | If defined, the number of bits used to address bytes in a |
1791 | single page in the EEPROM device. A 64 byte page, for example | 1792 | single page in the EEPROM device. A 64 byte page, for example |
1792 | would require six bits. | 1793 | would require six bits. |
1793 | 1794 | ||
1794 | - CFG_EEPROM_PAGE_WRITE_DELAY_MS: | 1795 | - CFG_EEPROM_PAGE_WRITE_DELAY_MS: |
1795 | If defined, the number of milliseconds to delay between | 1796 | If defined, the number of milliseconds to delay between |
1796 | page writes. The default is zero milliseconds. | 1797 | page writes. The default is zero milliseconds. |
1797 | 1798 | ||
1798 | - CFG_I2C_EEPROM_ADDR_LEN: | 1799 | - CFG_I2C_EEPROM_ADDR_LEN: |
1799 | The length in bytes of the EEPROM memory array address. Note | 1800 | The length in bytes of the EEPROM memory array address. Note |
1800 | that this is NOT the chip address length! | 1801 | that this is NOT the chip address length! |
1801 | 1802 | ||
1802 | - CFG_I2C_EEPROM_ADDR_OVERFLOW: | 1803 | - CFG_I2C_EEPROM_ADDR_OVERFLOW: |
1803 | EEPROM chips that implement "address overflow" are ones | 1804 | EEPROM chips that implement "address overflow" are ones |
1804 | like Catalyst 24WC04/08/16 which has 9/10/11 bits of | 1805 | like Catalyst 24WC04/08/16 which has 9/10/11 bits of |
1805 | address and the extra bits end up in the "chip address" bit | 1806 | address and the extra bits end up in the "chip address" bit |
1806 | slots. This makes a 24WC08 (1Kbyte) chip look like four 256 | 1807 | slots. This makes a 24WC08 (1Kbyte) chip look like four 256 |
1807 | byte chips. | 1808 | byte chips. |
1808 | 1809 | ||
1809 | Note that we consider the length of the address field to | 1810 | Note that we consider the length of the address field to |
1810 | still be one byte because the extra address bits are hidden | 1811 | still be one byte because the extra address bits are hidden |
1811 | in the chip address. | 1812 | in the chip address. |
1812 | 1813 | ||
1813 | - CFG_EEPROM_SIZE: | 1814 | - CFG_EEPROM_SIZE: |
1814 | The size in bytes of the EEPROM device. | 1815 | The size in bytes of the EEPROM device. |
1815 | 1816 | ||
1816 | 1817 | ||
1817 | - CFG_ENV_IS_IN_DATAFLASH: | 1818 | - CFG_ENV_IS_IN_DATAFLASH: |
1818 | 1819 | ||
1819 | Define this if you have a DataFlash memory device which you | 1820 | Define this if you have a DataFlash memory device which you |
1820 | want to use for the environment. | 1821 | want to use for the environment. |
1821 | 1822 | ||
1822 | - CFG_ENV_OFFSET: | 1823 | - CFG_ENV_OFFSET: |
1823 | - CFG_ENV_ADDR: | 1824 | - CFG_ENV_ADDR: |
1824 | - CFG_ENV_SIZE: | 1825 | - CFG_ENV_SIZE: |
1825 | 1826 | ||
1826 | These three #defines specify the offset and size of the | 1827 | These three #defines specify the offset and size of the |
1827 | environment area within the total memory of your DataFlash placed | 1828 | environment area within the total memory of your DataFlash placed |
1828 | at the specified address. | 1829 | at the specified address. |
1829 | 1830 | ||
1830 | - CFG_ENV_IS_IN_NAND: | 1831 | - CFG_ENV_IS_IN_NAND: |
1831 | 1832 | ||
1832 | Define this if you have a NAND device which you want to use | 1833 | Define this if you have a NAND device which you want to use |
1833 | for the environment. | 1834 | for the environment. |
1834 | 1835 | ||
1835 | - CFG_ENV_OFFSET: | 1836 | - CFG_ENV_OFFSET: |
1836 | - CFG_ENV_SIZE: | 1837 | - CFG_ENV_SIZE: |
1837 | 1838 | ||
1838 | These two #defines specify the offset and size of the environment | 1839 | These two #defines specify the offset and size of the environment |
1839 | area within the first NAND device. | 1840 | area within the first NAND device. |
1840 | 1841 | ||
1841 | - CFG_SPI_INIT_OFFSET | 1842 | - CFG_SPI_INIT_OFFSET |
1842 | 1843 | ||
1843 | Defines offset to the initial SPI buffer area in DPRAM. The | 1844 | Defines offset to the initial SPI buffer area in DPRAM. The |
1844 | area is used at an early stage (ROM part) if the environment | 1845 | area is used at an early stage (ROM part) if the environment |
1845 | is configured to reside in the SPI EEPROM: We need a 520 byte | 1846 | is configured to reside in the SPI EEPROM: We need a 520 byte |
1846 | scratch DPRAM area. It is used between the two initialization | 1847 | scratch DPRAM area. It is used between the two initialization |
1847 | calls (spi_init_f() and spi_init_r()). A value of 0xB00 seems | 1848 | calls (spi_init_f() and spi_init_r()). A value of 0xB00 seems |
1848 | to be a good choice since it makes it far enough from the | 1849 | to be a good choice since it makes it far enough from the |
1849 | start of the data area as well as from the stack pointer. | 1850 | start of the data area as well as from the stack pointer. |
1850 | 1851 | ||
1851 | Please note that the environment is read-only as long as the monitor | 1852 | Please note that the environment is read-only as long as the monitor |
1852 | has been relocated to RAM and a RAM copy of the environment has been | 1853 | has been relocated to RAM and a RAM copy of the environment has been |
1853 | created; also, when using EEPROM you will have to use getenv_r() | 1854 | created; also, when using EEPROM you will have to use getenv_r() |
1854 | until then to read environment variables. | 1855 | until then to read environment variables. |
1855 | 1856 | ||
1856 | The environment is protected by a CRC32 checksum. Before the monitor | 1857 | The environment is protected by a CRC32 checksum. Before the monitor |
1857 | is relocated into RAM, as a result of a bad CRC you will be working | 1858 | is relocated into RAM, as a result of a bad CRC you will be working |
1858 | with the compiled-in default environment - *silently*!!! [This is | 1859 | with the compiled-in default environment - *silently*!!! [This is |
1859 | necessary, because the first environment variable we need is the | 1860 | necessary, because the first environment variable we need is the |
1860 | "baudrate" setting for the console - if we have a bad CRC, we don't | 1861 | "baudrate" setting for the console - if we have a bad CRC, we don't |
1861 | have any device yet where we could complain.] | 1862 | have any device yet where we could complain.] |
1862 | 1863 | ||
1863 | Note: once the monitor has been relocated, then it will complain if | 1864 | Note: once the monitor has been relocated, then it will complain if |
1864 | the default environment is used; a new CRC is computed as soon as you | 1865 | the default environment is used; a new CRC is computed as soon as you |
1865 | use the "saveenv" command to store a valid environment. | 1866 | use the "saveenv" command to store a valid environment. |
1866 | 1867 | ||
1867 | - CFG_FAULT_ECHO_LINK_DOWN: | 1868 | - CFG_FAULT_ECHO_LINK_DOWN: |
1868 | Echo the inverted Ethernet link state to the fault LED. | 1869 | Echo the inverted Ethernet link state to the fault LED. |
1869 | 1870 | ||
1870 | Note: If this option is active, then CFG_FAULT_MII_ADDR | 1871 | Note: If this option is active, then CFG_FAULT_MII_ADDR |
1871 | also needs to be defined. | 1872 | also needs to be defined. |
1872 | 1873 | ||
1873 | - CFG_FAULT_MII_ADDR: | 1874 | - CFG_FAULT_MII_ADDR: |
1874 | MII address of the PHY to check for the Ethernet link state. | 1875 | MII address of the PHY to check for the Ethernet link state. |
1875 | 1876 | ||
1876 | - CFG_64BIT_VSPRINTF: | 1877 | - CFG_64BIT_VSPRINTF: |
1877 | Makes vsprintf (and all *printf functions) support printing | 1878 | Makes vsprintf (and all *printf functions) support printing |
1878 | of 64bit values by using the L quantifier | 1879 | of 64bit values by using the L quantifier |
1879 | 1880 | ||
1880 | - CFG_64BIT_STRTOUL: | 1881 | - CFG_64BIT_STRTOUL: |
1881 | Adds simple_strtoull that returns a 64bit value | 1882 | Adds simple_strtoull that returns a 64bit value |
1882 | 1883 | ||
1883 | Low Level (hardware related) configuration options: | 1884 | Low Level (hardware related) configuration options: |
1884 | --------------------------------------------------- | 1885 | --------------------------------------------------- |
1885 | 1886 | ||
1886 | - CFG_CACHELINE_SIZE: | 1887 | - CFG_CACHELINE_SIZE: |
1887 | Cache Line Size of the CPU. | 1888 | Cache Line Size of the CPU. |
1888 | 1889 | ||
1889 | - CFG_DEFAULT_IMMR: | 1890 | - CFG_DEFAULT_IMMR: |
1890 | Default address of the IMMR after system reset. | 1891 | Default address of the IMMR after system reset. |
1891 | 1892 | ||
1892 | Needed on some 8260 systems (MPC8260ADS, PQ2FADS-ZU, | 1893 | Needed on some 8260 systems (MPC8260ADS, PQ2FADS-ZU, |
1893 | and RPXsuper) to be able to adjust the position of | 1894 | and RPXsuper) to be able to adjust the position of |
1894 | the IMMR register after a reset. | 1895 | the IMMR register after a reset. |
1895 | 1896 | ||
1896 | - Floppy Disk Support: | 1897 | - Floppy Disk Support: |
1897 | CFG_FDC_DRIVE_NUMBER | 1898 | CFG_FDC_DRIVE_NUMBER |
1898 | 1899 | ||
1899 | the default drive number (default value 0) | 1900 | the default drive number (default value 0) |
1900 | 1901 | ||
1901 | CFG_ISA_IO_STRIDE | 1902 | CFG_ISA_IO_STRIDE |
1902 | 1903 | ||
1903 | defines the spacing between fdc chipset registers | 1904 | defines the spacing between fdc chipset registers |
1904 | (default value 1) | 1905 | (default value 1) |
1905 | 1906 | ||
1906 | CFG_ISA_IO_OFFSET | 1907 | CFG_ISA_IO_OFFSET |
1907 | 1908 | ||
1908 | defines the offset of register from address. It | 1909 | defines the offset of register from address. It |
1909 | depends on which part of the data bus is connected to | 1910 | depends on which part of the data bus is connected to |
1910 | the fdc chipset. (default value 0) | 1911 | the fdc chipset. (default value 0) |
1911 | 1912 | ||
1912 | If CFG_ISA_IO_STRIDE CFG_ISA_IO_OFFSET and | 1913 | If CFG_ISA_IO_STRIDE CFG_ISA_IO_OFFSET and |
1913 | CFG_FDC_DRIVE_NUMBER are undefined, they take their | 1914 | CFG_FDC_DRIVE_NUMBER are undefined, they take their |
1914 | default value. | 1915 | default value. |
1915 | 1916 | ||
1916 | if CFG_FDC_HW_INIT is defined, then the function | 1917 | if CFG_FDC_HW_INIT is defined, then the function |
1917 | fdc_hw_init() is called at the beginning of the FDC | 1918 | fdc_hw_init() is called at the beginning of the FDC |
1918 | setup. fdc_hw_init() must be provided by the board | 1919 | setup. fdc_hw_init() must be provided by the board |
1919 | source code. It is used to make hardware dependant | 1920 | source code. It is used to make hardware dependant |
1920 | initializations. | 1921 | initializations. |
1921 | 1922 | ||
1922 | - CFG_IMMR: Physical address of the Internal Memory Mapped | 1923 | - CFG_IMMR: Physical address of the Internal Memory Mapped |
1923 | Register; DO NOT CHANGE! (11-4) | 1924 | Register; DO NOT CHANGE! (11-4) |
1924 | [MPC8xx systems only] | 1925 | [MPC8xx systems only] |
1925 | 1926 | ||
1926 | - CFG_INIT_RAM_ADDR: | 1927 | - CFG_INIT_RAM_ADDR: |
1927 | 1928 | ||
1928 | Start address of memory area that can be used for | 1929 | Start address of memory area that can be used for |
1929 | initial data and stack; please note that this must be | 1930 | initial data and stack; please note that this must be |
1930 | writable memory that is working WITHOUT special | 1931 | writable memory that is working WITHOUT special |
1931 | initialization, i. e. you CANNOT use normal RAM which | 1932 | initialization, i. e. you CANNOT use normal RAM which |
1932 | will become available only after programming the | 1933 | will become available only after programming the |
1933 | memory controller and running certain initialization | 1934 | memory controller and running certain initialization |
1934 | sequences. | 1935 | sequences. |
1935 | 1936 | ||
1936 | U-Boot uses the following memory types: | 1937 | U-Boot uses the following memory types: |
1937 | - MPC8xx and MPC8260: IMMR (internal memory of the CPU) | 1938 | - MPC8xx and MPC8260: IMMR (internal memory of the CPU) |
1938 | - MPC824X: data cache | 1939 | - MPC824X: data cache |
1939 | - PPC4xx: data cache | 1940 | - PPC4xx: data cache |
1940 | 1941 | ||
1941 | - CFG_GBL_DATA_OFFSET: | 1942 | - CFG_GBL_DATA_OFFSET: |
1942 | 1943 | ||
1943 | Offset of the initial data structure in the memory | 1944 | Offset of the initial data structure in the memory |
1944 | area defined by CFG_INIT_RAM_ADDR. Usually | 1945 | area defined by CFG_INIT_RAM_ADDR. Usually |
1945 | CFG_GBL_DATA_OFFSET is chosen such that the initial | 1946 | CFG_GBL_DATA_OFFSET is chosen such that the initial |
1946 | data is located at the end of the available space | 1947 | data is located at the end of the available space |
1947 | (sometimes written as (CFG_INIT_RAM_END - | 1948 | (sometimes written as (CFG_INIT_RAM_END - |
1948 | CFG_INIT_DATA_SIZE), and the initial stack is just | 1949 | CFG_INIT_DATA_SIZE), and the initial stack is just |
1949 | below that area (growing from (CFG_INIT_RAM_ADDR + | 1950 | below that area (growing from (CFG_INIT_RAM_ADDR + |
1950 | CFG_GBL_DATA_OFFSET) downward. | 1951 | CFG_GBL_DATA_OFFSET) downward. |
1951 | 1952 | ||
1952 | Note: | 1953 | Note: |
1953 | On the MPC824X (or other systems that use the data | 1954 | On the MPC824X (or other systems that use the data |
1954 | cache for initial memory) the address chosen for | 1955 | cache for initial memory) the address chosen for |
1955 | CFG_INIT_RAM_ADDR is basically arbitrary - it must | 1956 | CFG_INIT_RAM_ADDR is basically arbitrary - it must |
1956 | point to an otherwise UNUSED address space between | 1957 | point to an otherwise UNUSED address space between |
1957 | the top of RAM and the start of the PCI space. | 1958 | the top of RAM and the start of the PCI space. |
1958 | 1959 | ||
1959 | - CFG_SIUMCR: SIU Module Configuration (11-6) | 1960 | - CFG_SIUMCR: SIU Module Configuration (11-6) |
1960 | 1961 | ||
1961 | - CFG_SYPCR: System Protection Control (11-9) | 1962 | - CFG_SYPCR: System Protection Control (11-9) |
1962 | 1963 | ||
1963 | - CFG_TBSCR: Time Base Status and Control (11-26) | 1964 | - CFG_TBSCR: Time Base Status and Control (11-26) |
1964 | 1965 | ||
1965 | - CFG_PISCR: Periodic Interrupt Status and Control (11-31) | 1966 | - CFG_PISCR: Periodic Interrupt Status and Control (11-31) |
1966 | 1967 | ||
1967 | - CFG_PLPRCR: PLL, Low-Power, and Reset Control Register (15-30) | 1968 | - CFG_PLPRCR: PLL, Low-Power, and Reset Control Register (15-30) |
1968 | 1969 | ||
1969 | - CFG_SCCR: System Clock and reset Control Register (15-27) | 1970 | - CFG_SCCR: System Clock and reset Control Register (15-27) |
1970 | 1971 | ||
1971 | - CFG_OR_TIMING_SDRAM: | 1972 | - CFG_OR_TIMING_SDRAM: |
1972 | SDRAM timing | 1973 | SDRAM timing |
1973 | 1974 | ||
1974 | - CFG_MAMR_PTA: | 1975 | - CFG_MAMR_PTA: |
1975 | periodic timer for refresh | 1976 | periodic timer for refresh |
1976 | 1977 | ||
1977 | - CFG_DER: Debug Event Register (37-47) | 1978 | - CFG_DER: Debug Event Register (37-47) |
1978 | 1979 | ||
1979 | - FLASH_BASE0_PRELIM, FLASH_BASE1_PRELIM, CFG_REMAP_OR_AM, | 1980 | - FLASH_BASE0_PRELIM, FLASH_BASE1_PRELIM, CFG_REMAP_OR_AM, |
1980 | CFG_PRELIM_OR_AM, CFG_OR_TIMING_FLASH, CFG_OR0_REMAP, | 1981 | CFG_PRELIM_OR_AM, CFG_OR_TIMING_FLASH, CFG_OR0_REMAP, |
1981 | CFG_OR0_PRELIM, CFG_BR0_PRELIM, CFG_OR1_REMAP, CFG_OR1_PRELIM, | 1982 | CFG_OR0_PRELIM, CFG_BR0_PRELIM, CFG_OR1_REMAP, CFG_OR1_PRELIM, |
1982 | CFG_BR1_PRELIM: | 1983 | CFG_BR1_PRELIM: |
1983 | Memory Controller Definitions: BR0/1 and OR0/1 (FLASH) | 1984 | Memory Controller Definitions: BR0/1 and OR0/1 (FLASH) |
1984 | 1985 | ||
1985 | - SDRAM_BASE2_PRELIM, SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE, | 1986 | - SDRAM_BASE2_PRELIM, SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE, |
1986 | CFG_OR_TIMING_SDRAM, CFG_OR2_PRELIM, CFG_BR2_PRELIM, | 1987 | CFG_OR_TIMING_SDRAM, CFG_OR2_PRELIM, CFG_BR2_PRELIM, |
1987 | CFG_OR3_PRELIM, CFG_BR3_PRELIM: | 1988 | CFG_OR3_PRELIM, CFG_BR3_PRELIM: |
1988 | Memory Controller Definitions: BR2/3 and OR2/3 (SDRAM) | 1989 | Memory Controller Definitions: BR2/3 and OR2/3 (SDRAM) |
1989 | 1990 | ||
1990 | - CFG_MAMR_PTA, CFG_MPTPR_2BK_4K, CFG_MPTPR_1BK_4K, CFG_MPTPR_2BK_8K, | 1991 | - CFG_MAMR_PTA, CFG_MPTPR_2BK_4K, CFG_MPTPR_1BK_4K, CFG_MPTPR_2BK_8K, |
1991 | CFG_MPTPR_1BK_8K, CFG_MAMR_8COL, CFG_MAMR_9COL: | 1992 | CFG_MPTPR_1BK_8K, CFG_MAMR_8COL, CFG_MAMR_9COL: |
1992 | Machine Mode Register and Memory Periodic Timer | 1993 | Machine Mode Register and Memory Periodic Timer |
1993 | Prescaler definitions (SDRAM timing) | 1994 | Prescaler definitions (SDRAM timing) |
1994 | 1995 | ||
1995 | - CFG_I2C_UCODE_PATCH, CFG_I2C_DPMEM_OFFSET [0x1FC0]: | 1996 | - CFG_I2C_UCODE_PATCH, CFG_I2C_DPMEM_OFFSET [0x1FC0]: |
1996 | enable I2C microcode relocation patch (MPC8xx); | 1997 | enable I2C microcode relocation patch (MPC8xx); |
1997 | define relocation offset in DPRAM [DSP2] | 1998 | define relocation offset in DPRAM [DSP2] |
1998 | 1999 | ||
1999 | - CFG_SPI_UCODE_PATCH, CFG_SPI_DPMEM_OFFSET [0x1FC0]: | 2000 | - CFG_SPI_UCODE_PATCH, CFG_SPI_DPMEM_OFFSET [0x1FC0]: |
2000 | enable SPI microcode relocation patch (MPC8xx); | 2001 | enable SPI microcode relocation patch (MPC8xx); |
2001 | define relocation offset in DPRAM [SCC4] | 2002 | define relocation offset in DPRAM [SCC4] |
2002 | 2003 | ||
2003 | - CFG_USE_OSCCLK: | 2004 | - CFG_USE_OSCCLK: |
2004 | Use OSCM clock mode on MBX8xx board. Be careful, | 2005 | Use OSCM clock mode on MBX8xx board. Be careful, |
2005 | wrong setting might damage your board. Read | 2006 | wrong setting might damage your board. Read |
2006 | doc/README.MBX before setting this variable! | 2007 | doc/README.MBX before setting this variable! |
2007 | 2008 | ||
2008 | - CFG_CPM_POST_WORD_ADDR: (MPC8xx, MPC8260 only) | 2009 | - CFG_CPM_POST_WORD_ADDR: (MPC8xx, MPC8260 only) |
2009 | Offset of the bootmode word in DPRAM used by post | 2010 | Offset of the bootmode word in DPRAM used by post |
2010 | (Power On Self Tests). This definition overrides | 2011 | (Power On Self Tests). This definition overrides |
2011 | #define'd default value in commproc.h resp. | 2012 | #define'd default value in commproc.h resp. |
2012 | cpm_8260.h. | 2013 | cpm_8260.h. |
2013 | 2014 | ||
2014 | - CFG_PCI_SLV_MEM_LOCAL, CFG_PCI_SLV_MEM_BUS, CFG_PICMR0_MASK_ATTRIB, | 2015 | - CFG_PCI_SLV_MEM_LOCAL, CFG_PCI_SLV_MEM_BUS, CFG_PICMR0_MASK_ATTRIB, |
2015 | CFG_PCI_MSTR0_LOCAL, CFG_PCIMSK0_MASK, CFG_PCI_MSTR1_LOCAL, | 2016 | CFG_PCI_MSTR0_LOCAL, CFG_PCIMSK0_MASK, CFG_PCI_MSTR1_LOCAL, |
2016 | CFG_PCIMSK1_MASK, CFG_PCI_MSTR_MEM_LOCAL, CFG_PCI_MSTR_MEM_BUS, | 2017 | CFG_PCIMSK1_MASK, CFG_PCI_MSTR_MEM_LOCAL, CFG_PCI_MSTR_MEM_BUS, |
2017 | CFG_CPU_PCI_MEM_START, CFG_PCI_MSTR_MEM_SIZE, CFG_POCMR0_MASK_ATTRIB, | 2018 | CFG_CPU_PCI_MEM_START, CFG_PCI_MSTR_MEM_SIZE, CFG_POCMR0_MASK_ATTRIB, |
2018 | CFG_PCI_MSTR_MEMIO_LOCAL, CFG_PCI_MSTR_MEMIO_BUS, CPU_PCI_MEMIO_START, | 2019 | CFG_PCI_MSTR_MEMIO_LOCAL, CFG_PCI_MSTR_MEMIO_BUS, CPU_PCI_MEMIO_START, |
2019 | CFG_PCI_MSTR_MEMIO_SIZE, CFG_POCMR1_MASK_ATTRIB, CFG_PCI_MSTR_IO_LOCAL, | 2020 | CFG_PCI_MSTR_MEMIO_SIZE, CFG_POCMR1_MASK_ATTRIB, CFG_PCI_MSTR_IO_LOCAL, |
2020 | CFG_PCI_MSTR_IO_BUS, CFG_CPU_PCI_IO_START, CFG_PCI_MSTR_IO_SIZE, | 2021 | CFG_PCI_MSTR_IO_BUS, CFG_CPU_PCI_IO_START, CFG_PCI_MSTR_IO_SIZE, |
2021 | CFG_POCMR2_MASK_ATTRIB: (MPC826x only) | 2022 | CFG_POCMR2_MASK_ATTRIB: (MPC826x only) |
2022 | Overrides the default PCI memory map in cpu/mpc8260/pci.c if set. | 2023 | Overrides the default PCI memory map in cpu/mpc8260/pci.c if set. |
2023 | 2024 | ||
2024 | - CONFIG_ETHER_ON_FEC[12] | 2025 | - CONFIG_ETHER_ON_FEC[12] |
2025 | Define to enable FEC[12] on a 8xx series processor. | 2026 | Define to enable FEC[12] on a 8xx series processor. |
2026 | 2027 | ||
2027 | - CONFIG_FEC[12]_PHY | 2028 | - CONFIG_FEC[12]_PHY |
2028 | Define to the hardcoded PHY address which corresponds | 2029 | Define to the hardcoded PHY address which corresponds |
2029 | to the given FEC; i. e. | 2030 | to the given FEC; i. e. |
2030 | #define CONFIG_FEC1_PHY 4 | 2031 | #define CONFIG_FEC1_PHY 4 |
2031 | means that the PHY with address 4 is connected to FEC1 | 2032 | means that the PHY with address 4 is connected to FEC1 |
2032 | 2033 | ||
2033 | When set to -1, means to probe for first available. | 2034 | When set to -1, means to probe for first available. |
2034 | 2035 | ||
2035 | - CONFIG_FEC[12]_PHY_NORXERR | 2036 | - CONFIG_FEC[12]_PHY_NORXERR |
2036 | The PHY does not have a RXERR line (RMII only). | 2037 | The PHY does not have a RXERR line (RMII only). |
2037 | (so program the FEC to ignore it). | 2038 | (so program the FEC to ignore it). |
2038 | 2039 | ||
2039 | - CONFIG_RMII | 2040 | - CONFIG_RMII |
2040 | Enable RMII mode for all FECs. | 2041 | Enable RMII mode for all FECs. |
2041 | Note that this is a global option, we can't | 2042 | Note that this is a global option, we can't |
2042 | have one FEC in standard MII mode and another in RMII mode. | 2043 | have one FEC in standard MII mode and another in RMII mode. |
2043 | 2044 | ||
2044 | - CONFIG_CRC32_VERIFY | 2045 | - CONFIG_CRC32_VERIFY |
2045 | Add a verify option to the crc32 command. | 2046 | Add a verify option to the crc32 command. |
2046 | The syntax is: | 2047 | The syntax is: |
2047 | 2048 | ||
2048 | => crc32 -v <address> <count> <crc32> | 2049 | => crc32 -v <address> <count> <crc32> |
2049 | 2050 | ||
2050 | Where address/count indicate a memory area | 2051 | Where address/count indicate a memory area |
2051 | and crc32 is the correct crc32 which the | 2052 | and crc32 is the correct crc32 which the |
2052 | area should have. | 2053 | area should have. |
2053 | 2054 | ||
2054 | Building the Software: | 2055 | Building the Software: |
2055 | ====================== | 2056 | ====================== |
2056 | 2057 | ||
2057 | Building U-Boot has been tested in native PPC environments (on a | 2058 | Building U-Boot has been tested in native PPC environments (on a |
2058 | PowerBook G3 running LinuxPPC 2000) and in cross environments | 2059 | PowerBook G3 running LinuxPPC 2000) and in cross environments |
2059 | (running RedHat 6.x and 7.x Linux on x86, Solaris 2.6 on a SPARC, and | 2060 | (running RedHat 6.x and 7.x Linux on x86, Solaris 2.6 on a SPARC, and |
2060 | NetBSD 1.5 on x86). | 2061 | NetBSD 1.5 on x86). |
2061 | 2062 | ||
2062 | If you are not using a native PPC environment, it is assumed that you | 2063 | If you are not using a native PPC environment, it is assumed that you |
2063 | have the GNU cross compiling tools available in your path and named | 2064 | have the GNU cross compiling tools available in your path and named |
2064 | with a prefix of "powerpc-linux-". If this is not the case, (e.g. if | 2065 | with a prefix of "powerpc-linux-". If this is not the case, (e.g. if |
2065 | you are using Monta Vista's Hard Hat Linux CDK 1.2) you must change | 2066 | you are using Monta Vista's Hard Hat Linux CDK 1.2) you must change |
2066 | the definition of CROSS_COMPILE in Makefile. For HHL on a 4xx CPU, | 2067 | the definition of CROSS_COMPILE in Makefile. For HHL on a 4xx CPU, |
2067 | change it to: | 2068 | change it to: |
2068 | 2069 | ||
2069 | CROSS_COMPILE = ppc_4xx- | 2070 | CROSS_COMPILE = ppc_4xx- |
2070 | 2071 | ||
2071 | 2072 | ||
2072 | U-Boot is intended to be simple to build. After installing the | 2073 | U-Boot is intended to be simple to build. After installing the |
2073 | sources you must configure U-Boot for one specific board type. This | 2074 | sources you must configure U-Boot for one specific board type. This |
2074 | is done by typing: | 2075 | is done by typing: |
2075 | 2076 | ||
2076 | make NAME_config | 2077 | make NAME_config |
2077 | 2078 | ||
2078 | where "NAME_config" is the name of one of the existing | 2079 | where "NAME_config" is the name of one of the existing |
2079 | configurations; the following names are supported: | 2080 | configurations; the following names are supported: |
2080 | 2081 | ||
2081 | ADCIOP_config FPS860L_config omap730p2_config | 2082 | ADCIOP_config FPS860L_config omap730p2_config |
2082 | ADS860_config GEN860T_config pcu_e_config | 2083 | ADS860_config GEN860T_config pcu_e_config |
2083 | AR405_config GENIETV_config PIP405_config | 2084 | AR405_config GENIETV_config PIP405_config |
2084 | at91rm9200dk_config GTH_config QS823_config | 2085 | at91rm9200dk_config GTH_config QS823_config |
2085 | CANBT_config hermes_config QS850_config | 2086 | CANBT_config hermes_config QS850_config |
2086 | cmi_mpc5xx_config hymod_config QS860T_config | 2087 | cmi_mpc5xx_config hymod_config QS860T_config |
2087 | cogent_common_config IP860_config RPXlite_config | 2088 | cogent_common_config IP860_config RPXlite_config |
2088 | cogent_mpc8260_config IVML24_config RPXsuper_config | 2089 | cogent_mpc8260_config IVML24_config RPXsuper_config |
2089 | cogent_mpc8xx_config IVMS8_config rsdproto_config | 2090 | cogent_mpc8xx_config IVMS8_config rsdproto_config |
2090 | CPCI405_config JSE_config Sandpoint8240_config | 2091 | CPCI405_config JSE_config Sandpoint8240_config |
2091 | CPCIISER4_config LANTEC_config sbc8260_config | 2092 | CPCIISER4_config LANTEC_config sbc8260_config |
2092 | csb272_config lwmon_config SM850_config | 2093 | csb272_config lwmon_config SM850_config |
2093 | CU824_config MBX860T_config SPD823TS_config | 2094 | CU824_config MBX860T_config SPD823TS_config |
2094 | DUET_ADS_config MBX_config stxgp3_config | 2095 | DUET_ADS_config MBX_config stxgp3_config |
2095 | EBONY_config MPC8260ADS_config SXNI855T_config | 2096 | EBONY_config MPC8260ADS_config SXNI855T_config |
2096 | ELPT860_config MPC8540ADS_config TQM823L_config | 2097 | ELPT860_config MPC8540ADS_config TQM823L_config |
2097 | ESTEEM192E_config MPC8560ADS_config TQM850L_config | 2098 | ESTEEM192E_config MPC8560ADS_config TQM850L_config |
2098 | ETX094_config NETVIA_config TQM855L_config | 2099 | ETX094_config NETVIA_config TQM855L_config |
2099 | FADS823_config omap1510inn_config TQM860L_config | 2100 | FADS823_config omap1510inn_config TQM860L_config |
2100 | FADS850SAR_config omap1610h2_config WALNUT405_config | 2101 | FADS850SAR_config omap1610h2_config WALNUT405_config |
2101 | FADS860T_config omap1610inn_config ZPC1900_config | 2102 | FADS860T_config omap1610inn_config ZPC1900_config |
2102 | FPS850L_config omap5912osk_config | 2103 | FPS850L_config omap5912osk_config |
2103 | 2104 | ||
2104 | Note: for some board special configuration names may exist; check if | 2105 | Note: for some board special configuration names may exist; check if |
2105 | additional information is available from the board vendor; for | 2106 | additional information is available from the board vendor; for |
2106 | instance, the TQM823L systems are available without (standard) | 2107 | instance, the TQM823L systems are available without (standard) |
2107 | or with LCD support. You can select such additional "features" | 2108 | or with LCD support. You can select such additional "features" |
2108 | when chosing the configuration, i. e. | 2109 | when chosing the configuration, i. e. |
2109 | 2110 | ||
2110 | make TQM823L_config | 2111 | make TQM823L_config |
2111 | - will configure for a plain TQM823L, i. e. no LCD support | 2112 | - will configure for a plain TQM823L, i. e. no LCD support |
2112 | 2113 | ||
2113 | make TQM823L_LCD_config | 2114 | make TQM823L_LCD_config |
2114 | - will configure for a TQM823L with U-Boot console on LCD | 2115 | - will configure for a TQM823L with U-Boot console on LCD |
2115 | 2116 | ||
2116 | etc. | 2117 | etc. |
2117 | 2118 | ||
2118 | 2119 | ||
2119 | Finally, type "make all", and you should get some working U-Boot | 2120 | Finally, type "make all", and you should get some working U-Boot |
2120 | images ready for download to / installation on your system: | 2121 | images ready for download to / installation on your system: |
2121 | 2122 | ||
2122 | - "u-boot.bin" is a raw binary image | 2123 | - "u-boot.bin" is a raw binary image |
2123 | - "u-boot" is an image in ELF binary format | 2124 | - "u-boot" is an image in ELF binary format |
2124 | - "u-boot.srec" is in Motorola S-Record format | 2125 | - "u-boot.srec" is in Motorola S-Record format |
2125 | 2126 | ||
2126 | 2127 | ||
2127 | Please be aware that the Makefiles assume you are using GNU make, so | 2128 | Please be aware that the Makefiles assume you are using GNU make, so |
2128 | for instance on NetBSD you might need to use "gmake" instead of | 2129 | for instance on NetBSD you might need to use "gmake" instead of |
2129 | native "make". | 2130 | native "make". |
2130 | 2131 | ||
2131 | 2132 | ||
2132 | If the system board that you have is not listed, then you will need | 2133 | If the system board that you have is not listed, then you will need |
2133 | to port U-Boot to your hardware platform. To do this, follow these | 2134 | to port U-Boot to your hardware platform. To do this, follow these |
2134 | steps: | 2135 | steps: |
2135 | 2136 | ||
2136 | 1. Add a new configuration option for your board to the toplevel | 2137 | 1. Add a new configuration option for your board to the toplevel |
2137 | "Makefile" and to the "MAKEALL" script, using the existing | 2138 | "Makefile" and to the "MAKEALL" script, using the existing |
2138 | entries as examples. Note that here and at many other places | 2139 | entries as examples. Note that here and at many other places |
2139 | boards and other names are listed in alphabetical sort order. Please | 2140 | boards and other names are listed in alphabetical sort order. Please |
2140 | keep this order. | 2141 | keep this order. |
2141 | 2. Create a new directory to hold your board specific code. Add any | 2142 | 2. Create a new directory to hold your board specific code. Add any |
2142 | files you need. In your board directory, you will need at least | 2143 | files you need. In your board directory, you will need at least |
2143 | the "Makefile", a "<board>.c", "flash.c" and "u-boot.lds". | 2144 | the "Makefile", a "<board>.c", "flash.c" and "u-boot.lds". |
2144 | 3. Create a new configuration file "include/configs/<board>.h" for | 2145 | 3. Create a new configuration file "include/configs/<board>.h" for |
2145 | your board | 2146 | your board |
2146 | 3. If you're porting U-Boot to a new CPU, then also create a new | 2147 | 3. If you're porting U-Boot to a new CPU, then also create a new |
2147 | directory to hold your CPU specific code. Add any files you need. | 2148 | directory to hold your CPU specific code. Add any files you need. |
2148 | 4. Run "make <board>_config" with your new name. | 2149 | 4. Run "make <board>_config" with your new name. |
2149 | 5. Type "make", and you should get a working "u-boot.srec" file | 2150 | 5. Type "make", and you should get a working "u-boot.srec" file |
2150 | to be installed on your target system. | 2151 | to be installed on your target system. |
2151 | 6. Debug and solve any problems that might arise. | 2152 | 6. Debug and solve any problems that might arise. |
2152 | [Of course, this last step is much harder than it sounds.] | 2153 | [Of course, this last step is much harder than it sounds.] |
2153 | 2154 | ||
2154 | 2155 | ||
2155 | Testing of U-Boot Modifications, Ports to New Hardware, etc.: | 2156 | Testing of U-Boot Modifications, Ports to New Hardware, etc.: |
2156 | ============================================================== | 2157 | ============================================================== |
2157 | 2158 | ||
2158 | If you have modified U-Boot sources (for instance added a new board | 2159 | If you have modified U-Boot sources (for instance added a new board |
2159 | or support for new devices, a new CPU, etc.) you are expected to | 2160 | or support for new devices, a new CPU, etc.) you are expected to |
2160 | provide feedback to the other developers. The feedback normally takes | 2161 | provide feedback to the other developers. The feedback normally takes |
2161 | the form of a "patch", i. e. a context diff against a certain (latest | 2162 | the form of a "patch", i. e. a context diff against a certain (latest |
2162 | official or latest in CVS) version of U-Boot sources. | 2163 | official or latest in CVS) version of U-Boot sources. |
2163 | 2164 | ||
2164 | But before you submit such a patch, please verify that your modifi- | 2165 | But before you submit such a patch, please verify that your modifi- |
2165 | cation did not break existing code. At least make sure that *ALL* of | 2166 | cation did not break existing code. At least make sure that *ALL* of |
2166 | the supported boards compile WITHOUT ANY compiler warnings. To do so, | 2167 | the supported boards compile WITHOUT ANY compiler warnings. To do so, |
2167 | just run the "MAKEALL" script, which will configure and build U-Boot | 2168 | just run the "MAKEALL" script, which will configure and build U-Boot |
2168 | for ALL supported system. Be warned, this will take a while. You can | 2169 | for ALL supported system. Be warned, this will take a while. You can |
2169 | select which (cross) compiler to use by passing a `CROSS_COMPILE' | 2170 | select which (cross) compiler to use by passing a `CROSS_COMPILE' |
2170 | environment variable to the script, i. e. to use the cross tools from | 2171 | environment variable to the script, i. e. to use the cross tools from |
2171 | MontaVista's Hard Hat Linux you can type | 2172 | MontaVista's Hard Hat Linux you can type |
2172 | 2173 | ||
2173 | CROSS_COMPILE=ppc_8xx- MAKEALL | 2174 | CROSS_COMPILE=ppc_8xx- MAKEALL |
2174 | 2175 | ||
2175 | or to build on a native PowerPC system you can type | 2176 | or to build on a native PowerPC system you can type |
2176 | 2177 | ||
2177 | CROSS_COMPILE=' ' MAKEALL | 2178 | CROSS_COMPILE=' ' MAKEALL |
2178 | 2179 | ||
2179 | See also "U-Boot Porting Guide" below. | 2180 | See also "U-Boot Porting Guide" below. |
2180 | 2181 | ||
2181 | 2182 | ||
2182 | Monitor Commands - Overview: | 2183 | Monitor Commands - Overview: |
2183 | ============================ | 2184 | ============================ |
2184 | 2185 | ||
2185 | go - start application at address 'addr' | 2186 | go - start application at address 'addr' |
2186 | run - run commands in an environment variable | 2187 | run - run commands in an environment variable |
2187 | bootm - boot application image from memory | 2188 | bootm - boot application image from memory |
2188 | bootp - boot image via network using BootP/TFTP protocol | 2189 | bootp - boot image via network using BootP/TFTP protocol |
2189 | tftpboot- boot image via network using TFTP protocol | 2190 | tftpboot- boot image via network using TFTP protocol |
2190 | and env variables "ipaddr" and "serverip" | 2191 | and env variables "ipaddr" and "serverip" |
2191 | (and eventually "gatewayip") | 2192 | (and eventually "gatewayip") |
2192 | rarpboot- boot image via network using RARP/TFTP protocol | 2193 | rarpboot- boot image via network using RARP/TFTP protocol |
2193 | diskboot- boot from IDE devicebootd - boot default, i.e., run 'bootcmd' | 2194 | diskboot- boot from IDE devicebootd - boot default, i.e., run 'bootcmd' |
2194 | loads - load S-Record file over serial line | 2195 | loads - load S-Record file over serial line |
2195 | loadb - load binary file over serial line (kermit mode) | 2196 | loadb - load binary file over serial line (kermit mode) |
2196 | md - memory display | 2197 | md - memory display |
2197 | mm - memory modify (auto-incrementing) | 2198 | mm - memory modify (auto-incrementing) |
2198 | nm - memory modify (constant address) | 2199 | nm - memory modify (constant address) |
2199 | mw - memory write (fill) | 2200 | mw - memory write (fill) |
2200 | cp - memory copy | 2201 | cp - memory copy |
2201 | cmp - memory compare | 2202 | cmp - memory compare |
2202 | crc32 - checksum calculation | 2203 | crc32 - checksum calculation |
2203 | imd - i2c memory display | 2204 | imd - i2c memory display |
2204 | imm - i2c memory modify (auto-incrementing) | 2205 | imm - i2c memory modify (auto-incrementing) |
2205 | inm - i2c memory modify (constant address) | 2206 | inm - i2c memory modify (constant address) |
2206 | imw - i2c memory write (fill) | 2207 | imw - i2c memory write (fill) |
2207 | icrc32 - i2c checksum calculation | 2208 | icrc32 - i2c checksum calculation |
2208 | iprobe - probe to discover valid I2C chip addresses | 2209 | iprobe - probe to discover valid I2C chip addresses |
2209 | iloop - infinite loop on address range | 2210 | iloop - infinite loop on address range |
2210 | isdram - print SDRAM configuration information | 2211 | isdram - print SDRAM configuration information |
2211 | sspi - SPI utility commands | 2212 | sspi - SPI utility commands |
2212 | base - print or set address offset | 2213 | base - print or set address offset |
2213 | printenv- print environment variables | 2214 | printenv- print environment variables |
2214 | setenv - set environment variables | 2215 | setenv - set environment variables |
2215 | saveenv - save environment variables to persistent storage | 2216 | saveenv - save environment variables to persistent storage |
2216 | protect - enable or disable FLASH write protection | 2217 | protect - enable or disable FLASH write protection |
2217 | erase - erase FLASH memory | 2218 | erase - erase FLASH memory |
2218 | flinfo - print FLASH memory information | 2219 | flinfo - print FLASH memory information |
2219 | bdinfo - print Board Info structure | 2220 | bdinfo - print Board Info structure |
2220 | iminfo - print header information for application image | 2221 | iminfo - print header information for application image |
2221 | coninfo - print console devices and informations | 2222 | coninfo - print console devices and informations |
2222 | ide - IDE sub-system | 2223 | ide - IDE sub-system |
2223 | loop - infinite loop on address range | 2224 | loop - infinite loop on address range |
2224 | mtest - simple RAM test | 2225 | mtest - simple RAM test |
2225 | icache - enable or disable instruction cache | 2226 | icache - enable or disable instruction cache |
2226 | dcache - enable or disable data cache | 2227 | dcache - enable or disable data cache |
2227 | reset - Perform RESET of the CPU | 2228 | reset - Perform RESET of the CPU |
2228 | echo - echo args to console | 2229 | echo - echo args to console |
2229 | version - print monitor version | 2230 | version - print monitor version |
2230 | help - print online help | 2231 | help - print online help |
2231 | ? - alias for 'help' | 2232 | ? - alias for 'help' |
2232 | 2233 | ||
2233 | 2234 | ||
2234 | Monitor Commands - Detailed Description: | 2235 | Monitor Commands - Detailed Description: |
2235 | ======================================== | 2236 | ======================================== |
2236 | 2237 | ||
2237 | TODO. | 2238 | TODO. |
2238 | 2239 | ||
2239 | For now: just type "help <command>". | 2240 | For now: just type "help <command>". |
2240 | 2241 | ||
2241 | 2242 | ||
2242 | Environment Variables: | 2243 | Environment Variables: |
2243 | ====================== | 2244 | ====================== |
2244 | 2245 | ||
2245 | U-Boot supports user configuration using Environment Variables which | 2246 | U-Boot supports user configuration using Environment Variables which |
2246 | can be made persistent by saving to Flash memory. | 2247 | can be made persistent by saving to Flash memory. |
2247 | 2248 | ||
2248 | Environment Variables are set using "setenv", printed using | 2249 | Environment Variables are set using "setenv", printed using |
2249 | "printenv", and saved to Flash using "saveenv". Using "setenv" | 2250 | "printenv", and saved to Flash using "saveenv". Using "setenv" |
2250 | without a value can be used to delete a variable from the | 2251 | without a value can be used to delete a variable from the |
2251 | environment. As long as you don't save the environment you are | 2252 | environment. As long as you don't save the environment you are |
2252 | working with an in-memory copy. In case the Flash area containing the | 2253 | working with an in-memory copy. In case the Flash area containing the |
2253 | environment is erased by accident, a default environment is provided. | 2254 | environment is erased by accident, a default environment is provided. |
2254 | 2255 | ||
2255 | Some configuration options can be set using Environment Variables: | 2256 | Some configuration options can be set using Environment Variables: |
2256 | 2257 | ||
2257 | baudrate - see CONFIG_BAUDRATE | 2258 | baudrate - see CONFIG_BAUDRATE |
2258 | 2259 | ||
2259 | bootdelay - see CONFIG_BOOTDELAY | 2260 | bootdelay - see CONFIG_BOOTDELAY |
2260 | 2261 | ||
2261 | bootcmd - see CONFIG_BOOTCOMMAND | 2262 | bootcmd - see CONFIG_BOOTCOMMAND |
2262 | 2263 | ||
2263 | bootargs - Boot arguments when booting an RTOS image | 2264 | bootargs - Boot arguments when booting an RTOS image |
2264 | 2265 | ||
2265 | bootfile - Name of the image to load with TFTP | 2266 | bootfile - Name of the image to load with TFTP |
2266 | 2267 | ||
2267 | autoload - if set to "no" (any string beginning with 'n'), | 2268 | autoload - if set to "no" (any string beginning with 'n'), |
2268 | "bootp" will just load perform a lookup of the | 2269 | "bootp" will just load perform a lookup of the |
2269 | configuration from the BOOTP server, but not try to | 2270 | configuration from the BOOTP server, but not try to |
2270 | load any image using TFTP | 2271 | load any image using TFTP |
2271 | 2272 | ||
2272 | autostart - if set to "yes", an image loaded using the "bootp", | 2273 | autostart - if set to "yes", an image loaded using the "bootp", |
2273 | "rarpboot", "tftpboot" or "diskboot" commands will | 2274 | "rarpboot", "tftpboot" or "diskboot" commands will |
2274 | be automatically started (by internally calling | 2275 | be automatically started (by internally calling |
2275 | "bootm") | 2276 | "bootm") |
2276 | 2277 | ||
2277 | If set to "no", a standalone image passed to the | 2278 | If set to "no", a standalone image passed to the |
2278 | "bootm" command will be copied to the load address | 2279 | "bootm" command will be copied to the load address |
2279 | (and eventually uncompressed), but NOT be started. | 2280 | (and eventually uncompressed), but NOT be started. |
2280 | This can be used to load and uncompress arbitrary | 2281 | This can be used to load and uncompress arbitrary |
2281 | data. | 2282 | data. |
2282 | 2283 | ||
2283 | i2cfast - (PPC405GP|PPC405EP only) | 2284 | i2cfast - (PPC405GP|PPC405EP only) |
2284 | if set to 'y' configures Linux I2C driver for fast | 2285 | if set to 'y' configures Linux I2C driver for fast |
2285 | mode (400kHZ). This environment variable is used in | 2286 | mode (400kHZ). This environment variable is used in |
2286 | initialization code. So, for changes to be effective | 2287 | initialization code. So, for changes to be effective |
2287 | it must be saved and board must be reset. | 2288 | it must be saved and board must be reset. |
2288 | 2289 | ||
2289 | initrd_high - restrict positioning of initrd images: | 2290 | initrd_high - restrict positioning of initrd images: |
2290 | If this variable is not set, initrd images will be | 2291 | If this variable is not set, initrd images will be |
2291 | copied to the highest possible address in RAM; this | 2292 | copied to the highest possible address in RAM; this |
2292 | is usually what you want since it allows for | 2293 | is usually what you want since it allows for |
2293 | maximum initrd size. If for some reason you want to | 2294 | maximum initrd size. If for some reason you want to |
2294 | make sure that the initrd image is loaded below the | 2295 | make sure that the initrd image is loaded below the |
2295 | CFG_BOOTMAPSZ limit, you can set this environment | 2296 | CFG_BOOTMAPSZ limit, you can set this environment |
2296 | variable to a value of "no" or "off" or "0". | 2297 | variable to a value of "no" or "off" or "0". |
2297 | Alternatively, you can set it to a maximum upper | 2298 | Alternatively, you can set it to a maximum upper |
2298 | address to use (U-Boot will still check that it | 2299 | address to use (U-Boot will still check that it |
2299 | does not overwrite the U-Boot stack and data). | 2300 | does not overwrite the U-Boot stack and data). |
2300 | 2301 | ||
2301 | For instance, when you have a system with 16 MB | 2302 | For instance, when you have a system with 16 MB |
2302 | RAM, and want to reserve 4 MB from use by Linux, | 2303 | RAM, and want to reserve 4 MB from use by Linux, |
2303 | you can do this by adding "mem=12M" to the value of | 2304 | you can do this by adding "mem=12M" to the value of |
2304 | the "bootargs" variable. However, now you must make | 2305 | the "bootargs" variable. However, now you must make |
2305 | sure that the initrd image is placed in the first | 2306 | sure that the initrd image is placed in the first |
2306 | 12 MB as well - this can be done with | 2307 | 12 MB as well - this can be done with |
2307 | 2308 | ||
2308 | setenv initrd_high 00c00000 | 2309 | setenv initrd_high 00c00000 |
2309 | 2310 | ||
2310 | If you set initrd_high to 0xFFFFFFFF, this is an | 2311 | If you set initrd_high to 0xFFFFFFFF, this is an |
2311 | indication to U-Boot that all addresses are legal | 2312 | indication to U-Boot that all addresses are legal |
2312 | for the Linux kernel, including addresses in flash | 2313 | for the Linux kernel, including addresses in flash |
2313 | memory. In this case U-Boot will NOT COPY the | 2314 | memory. In this case U-Boot will NOT COPY the |
2314 | ramdisk at all. This may be useful to reduce the | 2315 | ramdisk at all. This may be useful to reduce the |
2315 | boot time on your system, but requires that this | 2316 | boot time on your system, but requires that this |
2316 | feature is supported by your Linux kernel. | 2317 | feature is supported by your Linux kernel. |
2317 | 2318 | ||
2318 | ipaddr - IP address; needed for tftpboot command | 2319 | ipaddr - IP address; needed for tftpboot command |
2319 | 2320 | ||
2320 | loadaddr - Default load address for commands like "bootp", | 2321 | loadaddr - Default load address for commands like "bootp", |
2321 | "rarpboot", "tftpboot", "loadb" or "diskboot" | 2322 | "rarpboot", "tftpboot", "loadb" or "diskboot" |
2322 | 2323 | ||
2323 | loads_echo - see CONFIG_LOADS_ECHO | 2324 | loads_echo - see CONFIG_LOADS_ECHO |
2324 | 2325 | ||
2325 | serverip - TFTP server IP address; needed for tftpboot command | 2326 | serverip - TFTP server IP address; needed for tftpboot command |
2326 | 2327 | ||
2327 | bootretry - see CONFIG_BOOT_RETRY_TIME | 2328 | bootretry - see CONFIG_BOOT_RETRY_TIME |
2328 | 2329 | ||
2329 | bootdelaykey - see CONFIG_AUTOBOOT_DELAY_STR | 2330 | bootdelaykey - see CONFIG_AUTOBOOT_DELAY_STR |
2330 | 2331 | ||
2331 | bootstopkey - see CONFIG_AUTOBOOT_STOP_STR | 2332 | bootstopkey - see CONFIG_AUTOBOOT_STOP_STR |
2332 | 2333 | ||
2333 | ethprime - When CONFIG_NET_MULTI is enabled controls which | 2334 | ethprime - When CONFIG_NET_MULTI is enabled controls which |
2334 | interface is used first. | 2335 | interface is used first. |
2335 | 2336 | ||
2336 | ethact - When CONFIG_NET_MULTI is enabled controls which | 2337 | ethact - When CONFIG_NET_MULTI is enabled controls which |
2337 | interface is currently active. For example you | 2338 | interface is currently active. For example you |
2338 | can do the following | 2339 | can do the following |
2339 | 2340 | ||
2340 | => setenv ethact FEC ETHERNET | 2341 | => setenv ethact FEC ETHERNET |
2341 | => ping 192.168.0.1 # traffic sent on FEC ETHERNET | 2342 | => ping 192.168.0.1 # traffic sent on FEC ETHERNET |
2342 | => setenv ethact SCC ETHERNET | 2343 | => setenv ethact SCC ETHERNET |
2343 | => ping 10.0.0.1 # traffic sent on SCC ETHERNET | 2344 | => ping 10.0.0.1 # traffic sent on SCC ETHERNET |
2344 | 2345 | ||
2345 | netretry - When set to "no" each network operation will | 2346 | netretry - When set to "no" each network operation will |
2346 | either succeed or fail without retrying. | 2347 | either succeed or fail without retrying. |
2347 | When set to "once" the network operation will | 2348 | When set to "once" the network operation will |
2348 | fail when all the available network interfaces | 2349 | fail when all the available network interfaces |
2349 | are tried once without success. | 2350 | are tried once without success. |
2350 | Useful on scripts which control the retry operation | 2351 | Useful on scripts which control the retry operation |
2351 | themselves. | 2352 | themselves. |
2352 | 2353 | ||
2353 | vlan - When set to a value < 4095 the traffic over | 2354 | vlan - When set to a value < 4095 the traffic over |
2354 | ethernet is encapsulated/received over 802.1q | 2355 | ethernet is encapsulated/received over 802.1q |
2355 | VLAN tagged frames. | 2356 | VLAN tagged frames. |
2356 | 2357 | ||
2357 | The following environment variables may be used and automatically | 2358 | The following environment variables may be used and automatically |
2358 | updated by the network boot commands ("bootp" and "rarpboot"), | 2359 | updated by the network boot commands ("bootp" and "rarpboot"), |
2359 | depending the information provided by your boot server: | 2360 | depending the information provided by your boot server: |
2360 | 2361 | ||
2361 | bootfile - see above | 2362 | bootfile - see above |
2362 | dnsip - IP address of your Domain Name Server | 2363 | dnsip - IP address of your Domain Name Server |
2363 | dnsip2 - IP address of your secondary Domain Name Server | 2364 | dnsip2 - IP address of your secondary Domain Name Server |
2364 | gatewayip - IP address of the Gateway (Router) to use | 2365 | gatewayip - IP address of the Gateway (Router) to use |
2365 | hostname - Target hostname | 2366 | hostname - Target hostname |
2366 | ipaddr - see above | 2367 | ipaddr - see above |
2367 | netmask - Subnet Mask | 2368 | netmask - Subnet Mask |
2368 | rootpath - Pathname of the root filesystem on the NFS server | 2369 | rootpath - Pathname of the root filesystem on the NFS server |
2369 | serverip - see above | 2370 | serverip - see above |
2370 | 2371 | ||
2371 | 2372 | ||
2372 | There are two special Environment Variables: | 2373 | There are two special Environment Variables: |
2373 | 2374 | ||
2374 | serial# - contains hardware identification information such | 2375 | serial# - contains hardware identification information such |
2375 | as type string and/or serial number | 2376 | as type string and/or serial number |
2376 | ethaddr - Ethernet address | 2377 | ethaddr - Ethernet address |
2377 | 2378 | ||
2378 | These variables can be set only once (usually during manufacturing of | 2379 | These variables can be set only once (usually during manufacturing of |
2379 | the board). U-Boot refuses to delete or overwrite these variables | 2380 | the board). U-Boot refuses to delete or overwrite these variables |
2380 | once they have been set once. | 2381 | once they have been set once. |
2381 | 2382 | ||
2382 | 2383 | ||
2383 | Further special Environment Variables: | 2384 | Further special Environment Variables: |
2384 | 2385 | ||
2385 | ver - Contains the U-Boot version string as printed | 2386 | ver - Contains the U-Boot version string as printed |
2386 | with the "version" command. This variable is | 2387 | with the "version" command. This variable is |
2387 | readonly (see CONFIG_VERSION_VARIABLE). | 2388 | readonly (see CONFIG_VERSION_VARIABLE). |
2388 | 2389 | ||
2389 | 2390 | ||
2390 | Please note that changes to some configuration parameters may take | 2391 | Please note that changes to some configuration parameters may take |
2391 | only effect after the next boot (yes, that's just like Windoze :-). | 2392 | only effect after the next boot (yes, that's just like Windoze :-). |
2392 | 2393 | ||
2393 | 2394 | ||
2394 | Command Line Parsing: | 2395 | Command Line Parsing: |
2395 | ===================== | 2396 | ===================== |
2396 | 2397 | ||
2397 | There are two different command line parsers available with U-Boot: | 2398 | There are two different command line parsers available with U-Boot: |
2398 | the old "simple" one, and the much more powerful "hush" shell: | 2399 | the old "simple" one, and the much more powerful "hush" shell: |
2399 | 2400 | ||
2400 | Old, simple command line parser: | 2401 | Old, simple command line parser: |
2401 | -------------------------------- | 2402 | -------------------------------- |
2402 | 2403 | ||
2403 | - supports environment variables (through setenv / saveenv commands) | 2404 | - supports environment variables (through setenv / saveenv commands) |
2404 | - several commands on one line, separated by ';' | 2405 | - several commands on one line, separated by ';' |
2405 | - variable substitution using "... $(name) ..." syntax | 2406 | - variable substitution using "... $(name) ..." syntax |
2406 | - special characters ('$', ';') can be escaped by prefixing with '\', | 2407 | - special characters ('$', ';') can be escaped by prefixing with '\', |
2407 | for example: | 2408 | for example: |
2408 | setenv bootcmd bootm \$(address) | 2409 | setenv bootcmd bootm \$(address) |
2409 | - You can also escape text by enclosing in single apostrophes, for example: | 2410 | - You can also escape text by enclosing in single apostrophes, for example: |
2410 | setenv addip 'setenv bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname::off' | 2411 | setenv addip 'setenv bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname::off' |
2411 | 2412 | ||
2412 | Hush shell: | 2413 | Hush shell: |
2413 | ----------- | 2414 | ----------- |
2414 | 2415 | ||
2415 | - similar to Bourne shell, with control structures like | 2416 | - similar to Bourne shell, with control structures like |
2416 | if...then...else...fi, for...do...done; while...do...done, | 2417 | if...then...else...fi, for...do...done; while...do...done, |
2417 | until...do...done, ... | 2418 | until...do...done, ... |
2418 | - supports environment ("global") variables (through setenv / saveenv | 2419 | - supports environment ("global") variables (through setenv / saveenv |
2419 | commands) and local shell variables (through standard shell syntax | 2420 | commands) and local shell variables (through standard shell syntax |
2420 | "name=value"); only environment variables can be used with "run" | 2421 | "name=value"); only environment variables can be used with "run" |
2421 | command | 2422 | command |
2422 | 2423 | ||
2423 | General rules: | 2424 | General rules: |
2424 | -------------- | 2425 | -------------- |
2425 | 2426 | ||
2426 | (1) If a command line (or an environment variable executed by a "run" | 2427 | (1) If a command line (or an environment variable executed by a "run" |
2427 | command) contains several commands separated by semicolon, and | 2428 | command) contains several commands separated by semicolon, and |
2428 | one of these commands fails, then the remaining commands will be | 2429 | one of these commands fails, then the remaining commands will be |
2429 | executed anyway. | 2430 | executed anyway. |
2430 | 2431 | ||
2431 | (2) If you execute several variables with one call to run (i. e. | 2432 | (2) If you execute several variables with one call to run (i. e. |
2432 | calling run with a list af variables as arguments), any failing | 2433 | calling run with a list af variables as arguments), any failing |
2433 | command will cause "run" to terminate, i. e. the remaining | 2434 | command will cause "run" to terminate, i. e. the remaining |
2434 | variables are not executed. | 2435 | variables are not executed. |
2435 | 2436 | ||
2436 | Note for Redundant Ethernet Interfaces: | 2437 | Note for Redundant Ethernet Interfaces: |
2437 | ======================================= | 2438 | ======================================= |
2438 | 2439 | ||
2439 | Some boards come with redundant ethernet interfaces; U-Boot supports | 2440 | Some boards come with redundant ethernet interfaces; U-Boot supports |
2440 | such configurations and is capable of automatic selection of a | 2441 | such configurations and is capable of automatic selection of a |
2441 | "working" interface when needed. MAC assignment works as follows: | 2442 | "working" interface when needed. MAC assignment works as follows: |
2442 | 2443 | ||
2443 | Network interfaces are numbered eth0, eth1, eth2, ... Corresponding | 2444 | Network interfaces are numbered eth0, eth1, eth2, ... Corresponding |
2444 | MAC addresses can be stored in the environment as "ethaddr" (=>eth0), | 2445 | MAC addresses can be stored in the environment as "ethaddr" (=>eth0), |
2445 | "eth1addr" (=>eth1), "eth2addr", ... | 2446 | "eth1addr" (=>eth1), "eth2addr", ... |
2446 | 2447 | ||
2447 | If the network interface stores some valid MAC address (for instance | 2448 | If the network interface stores some valid MAC address (for instance |
2448 | in SROM), this is used as default address if there is NO correspon- | 2449 | in SROM), this is used as default address if there is NO correspon- |
2449 | ding setting in the environment; if the corresponding environment | 2450 | ding setting in the environment; if the corresponding environment |
2450 | variable is set, this overrides the settings in the card; that means: | 2451 | variable is set, this overrides the settings in the card; that means: |
2451 | 2452 | ||
2452 | o If the SROM has a valid MAC address, and there is no address in the | 2453 | o If the SROM has a valid MAC address, and there is no address in the |
2453 | environment, the SROM's address is used. | 2454 | environment, the SROM's address is used. |
2454 | 2455 | ||
2455 | o If there is no valid address in the SROM, and a definition in the | 2456 | o If there is no valid address in the SROM, and a definition in the |
2456 | environment exists, then the value from the environment variable is | 2457 | environment exists, then the value from the environment variable is |
2457 | used. | 2458 | used. |
2458 | 2459 | ||
2459 | o If both the SROM and the environment contain a MAC address, and | 2460 | o If both the SROM and the environment contain a MAC address, and |
2460 | both addresses are the same, this MAC address is used. | 2461 | both addresses are the same, this MAC address is used. |
2461 | 2462 | ||
2462 | o If both the SROM and the environment contain a MAC address, and the | 2463 | o If both the SROM and the environment contain a MAC address, and the |
2463 | addresses differ, the value from the environment is used and a | 2464 | addresses differ, the value from the environment is used and a |
2464 | warning is printed. | 2465 | warning is printed. |
2465 | 2466 | ||
2466 | o If neither SROM nor the environment contain a MAC address, an error | 2467 | o If neither SROM nor the environment contain a MAC address, an error |
2467 | is raised. | 2468 | is raised. |
2468 | 2469 | ||
2469 | 2470 | ||
2470 | Image Formats: | 2471 | Image Formats: |
2471 | ============== | 2472 | ============== |
2472 | 2473 | ||
2473 | The "boot" commands of this monitor operate on "image" files which | 2474 | The "boot" commands of this monitor operate on "image" files which |
2474 | can be basicly anything, preceeded by a special header; see the | 2475 | can be basicly anything, preceeded by a special header; see the |
2475 | definitions in include/image.h for details; basicly, the header | 2476 | definitions in include/image.h for details; basicly, the header |
2476 | defines the following image properties: | 2477 | defines the following image properties: |
2477 | 2478 | ||
2478 | * Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD, | 2479 | * Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD, |
2479 | 4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, | 2480 | 4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, |
2480 | LynxOS, pSOS, QNX, RTEMS, ARTOS; | 2481 | LynxOS, pSOS, QNX, RTEMS, ARTOS; |
2481 | Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS). | 2482 | Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS). |
2482 | * Target CPU Architecture (Provisions for Alpha, ARM, Intel x86, | 2483 | * Target CPU Architecture (Provisions for Alpha, ARM, Intel x86, |
2483 | IA64, MIPS, NIOS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit; | 2484 | IA64, MIPS, NIOS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit; |
2484 | Currently supported: ARM, Intel x86, MIPS, NIOS, PowerPC). | 2485 | Currently supported: ARM, Intel x86, MIPS, NIOS, PowerPC). |
2485 | * Compression Type (uncompressed, gzip, bzip2) | 2486 | * Compression Type (uncompressed, gzip, bzip2) |
2486 | * Load Address | 2487 | * Load Address |
2487 | * Entry Point | 2488 | * Entry Point |
2488 | * Image Name | 2489 | * Image Name |
2489 | * Image Timestamp | 2490 | * Image Timestamp |
2490 | 2491 | ||
2491 | The header is marked by a special Magic Number, and both the header | 2492 | The header is marked by a special Magic Number, and both the header |
2492 | and the data portions of the image are secured against corruption by | 2493 | and the data portions of the image are secured against corruption by |
2493 | CRC32 checksums. | 2494 | CRC32 checksums. |
2494 | 2495 | ||
2495 | 2496 | ||
2496 | Linux Support: | 2497 | Linux Support: |
2497 | ============== | 2498 | ============== |
2498 | 2499 | ||
2499 | Although U-Boot should support any OS or standalone application | 2500 | Although U-Boot should support any OS or standalone application |
2500 | easily, the main focus has always been on Linux during the design of | 2501 | easily, the main focus has always been on Linux during the design of |
2501 | U-Boot. | 2502 | U-Boot. |
2502 | 2503 | ||
2503 | U-Boot includes many features that so far have been part of some | 2504 | U-Boot includes many features that so far have been part of some |
2504 | special "boot loader" code within the Linux kernel. Also, any | 2505 | special "boot loader" code within the Linux kernel. Also, any |
2505 | "initrd" images to be used are no longer part of one big Linux image; | 2506 | "initrd" images to be used are no longer part of one big Linux image; |
2506 | instead, kernel and "initrd" are separate images. This implementation | 2507 | instead, kernel and "initrd" are separate images. This implementation |
2507 | serves several purposes: | 2508 | serves several purposes: |
2508 | 2509 | ||
2509 | - the same features can be used for other OS or standalone | 2510 | - the same features can be used for other OS or standalone |
2510 | applications (for instance: using compressed images to reduce the | 2511 | applications (for instance: using compressed images to reduce the |
2511 | Flash memory footprint) | 2512 | Flash memory footprint) |
2512 | 2513 | ||
2513 | - it becomes much easier to port new Linux kernel versions because | 2514 | - it becomes much easier to port new Linux kernel versions because |
2514 | lots of low-level, hardware dependent stuff are done by U-Boot | 2515 | lots of low-level, hardware dependent stuff are done by U-Boot |
2515 | 2516 | ||
2516 | - the same Linux kernel image can now be used with different "initrd" | 2517 | - the same Linux kernel image can now be used with different "initrd" |
2517 | images; of course this also means that different kernel images can | 2518 | images; of course this also means that different kernel images can |
2518 | be run with the same "initrd". This makes testing easier (you don't | 2519 | be run with the same "initrd". This makes testing easier (you don't |
2519 | have to build a new "zImage.initrd" Linux image when you just | 2520 | have to build a new "zImage.initrd" Linux image when you just |
2520 | change a file in your "initrd"). Also, a field-upgrade of the | 2521 | change a file in your "initrd"). Also, a field-upgrade of the |
2521 | software is easier now. | 2522 | software is easier now. |
2522 | 2523 | ||
2523 | 2524 | ||
2524 | Linux HOWTO: | 2525 | Linux HOWTO: |
2525 | ============ | 2526 | ============ |
2526 | 2527 | ||
2527 | Porting Linux to U-Boot based systems: | 2528 | Porting Linux to U-Boot based systems: |
2528 | --------------------------------------- | 2529 | --------------------------------------- |
2529 | 2530 | ||
2530 | U-Boot cannot save you from doing all the necessary modifications to | 2531 | U-Boot cannot save you from doing all the necessary modifications to |
2531 | configure the Linux device drivers for use with your target hardware | 2532 | configure the Linux device drivers for use with your target hardware |
2532 | (no, we don't intend to provide a full virtual machine interface to | 2533 | (no, we don't intend to provide a full virtual machine interface to |
2533 | Linux :-). | 2534 | Linux :-). |
2534 | 2535 | ||
2535 | But now you can ignore ALL boot loader code (in arch/ppc/mbxboot). | 2536 | But now you can ignore ALL boot loader code (in arch/ppc/mbxboot). |
2536 | 2537 | ||
2537 | Just make sure your machine specific header file (for instance | 2538 | Just make sure your machine specific header file (for instance |
2538 | include/asm-ppc/tqm8xx.h) includes the same definition of the Board | 2539 | include/asm-ppc/tqm8xx.h) includes the same definition of the Board |
2539 | Information structure as we define in include/u-boot.h, and make | 2540 | Information structure as we define in include/u-boot.h, and make |
2540 | sure that your definition of IMAP_ADDR uses the same value as your | 2541 | sure that your definition of IMAP_ADDR uses the same value as your |
2541 | U-Boot configuration in CFG_IMMR. | 2542 | U-Boot configuration in CFG_IMMR. |
2542 | 2543 | ||
2543 | 2544 | ||
2544 | Configuring the Linux kernel: | 2545 | Configuring the Linux kernel: |
2545 | ----------------------------- | 2546 | ----------------------------- |
2546 | 2547 | ||
2547 | No specific requirements for U-Boot. Make sure you have some root | 2548 | No specific requirements for U-Boot. Make sure you have some root |
2548 | device (initial ramdisk, NFS) for your target system. | 2549 | device (initial ramdisk, NFS) for your target system. |
2549 | 2550 | ||
2550 | 2551 | ||
2551 | Building a Linux Image: | 2552 | Building a Linux Image: |
2552 | ----------------------- | 2553 | ----------------------- |
2553 | 2554 | ||
2554 | With U-Boot, "normal" build targets like "zImage" or "bzImage" are | 2555 | With U-Boot, "normal" build targets like "zImage" or "bzImage" are |
2555 | not used. If you use recent kernel source, a new build target | 2556 | not used. If you use recent kernel source, a new build target |
2556 | "uImage" will exist which automatically builds an image usable by | 2557 | "uImage" will exist which automatically builds an image usable by |
2557 | U-Boot. Most older kernels also have support for a "pImage" target, | 2558 | U-Boot. Most older kernels also have support for a "pImage" target, |
2558 | which was introduced for our predecessor project PPCBoot and uses a | 2559 | which was introduced for our predecessor project PPCBoot and uses a |
2559 | 100% compatible format. | 2560 | 100% compatible format. |
2560 | 2561 | ||
2561 | Example: | 2562 | Example: |
2562 | 2563 | ||
2563 | make TQM850L_config | 2564 | make TQM850L_config |
2564 | make oldconfig | 2565 | make oldconfig |
2565 | make dep | 2566 | make dep |
2566 | make uImage | 2567 | make uImage |
2567 | 2568 | ||
2568 | The "uImage" build target uses a special tool (in 'tools/mkimage') to | 2569 | The "uImage" build target uses a special tool (in 'tools/mkimage') to |
2569 | encapsulate a compressed Linux kernel image with header information, | 2570 | encapsulate a compressed Linux kernel image with header information, |
2570 | CRC32 checksum etc. for use with U-Boot. This is what we are doing: | 2571 | CRC32 checksum etc. for use with U-Boot. This is what we are doing: |
2571 | 2572 | ||
2572 | * build a standard "vmlinux" kernel image (in ELF binary format): | 2573 | * build a standard "vmlinux" kernel image (in ELF binary format): |
2573 | 2574 | ||
2574 | * convert the kernel into a raw binary image: | 2575 | * convert the kernel into a raw binary image: |
2575 | 2576 | ||
2576 | ${CROSS_COMPILE}-objcopy -O binary \ | 2577 | ${CROSS_COMPILE}-objcopy -O binary \ |
2577 | -R .note -R .comment \ | 2578 | -R .note -R .comment \ |
2578 | -S vmlinux linux.bin | 2579 | -S vmlinux linux.bin |
2579 | 2580 | ||
2580 | * compress the binary image: | 2581 | * compress the binary image: |
2581 | 2582 | ||
2582 | gzip -9 linux.bin | 2583 | gzip -9 linux.bin |
2583 | 2584 | ||
2584 | * package compressed binary image for U-Boot: | 2585 | * package compressed binary image for U-Boot: |
2585 | 2586 | ||
2586 | mkimage -A ppc -O linux -T kernel -C gzip \ | 2587 | mkimage -A ppc -O linux -T kernel -C gzip \ |
2587 | -a 0 -e 0 -n "Linux Kernel Image" \ | 2588 | -a 0 -e 0 -n "Linux Kernel Image" \ |
2588 | -d linux.bin.gz uImage | 2589 | -d linux.bin.gz uImage |
2589 | 2590 | ||
2590 | 2591 | ||
2591 | The "mkimage" tool can also be used to create ramdisk images for use | 2592 | The "mkimage" tool can also be used to create ramdisk images for use |
2592 | with U-Boot, either separated from the Linux kernel image, or | 2593 | with U-Boot, either separated from the Linux kernel image, or |
2593 | combined into one file. "mkimage" encapsulates the images with a 64 | 2594 | combined into one file. "mkimage" encapsulates the images with a 64 |
2594 | byte header containing information about target architecture, | 2595 | byte header containing information about target architecture, |
2595 | operating system, image type, compression method, entry points, time | 2596 | operating system, image type, compression method, entry points, time |
2596 | stamp, CRC32 checksums, etc. | 2597 | stamp, CRC32 checksums, etc. |
2597 | 2598 | ||
2598 | "mkimage" can be called in two ways: to verify existing images and | 2599 | "mkimage" can be called in two ways: to verify existing images and |
2599 | print the header information, or to build new images. | 2600 | print the header information, or to build new images. |
2600 | 2601 | ||
2601 | In the first form (with "-l" option) mkimage lists the information | 2602 | In the first form (with "-l" option) mkimage lists the information |
2602 | contained in the header of an existing U-Boot image; this includes | 2603 | contained in the header of an existing U-Boot image; this includes |
2603 | checksum verification: | 2604 | checksum verification: |
2604 | 2605 | ||
2605 | tools/mkimage -l image | 2606 | tools/mkimage -l image |
2606 | -l ==> list image header information | 2607 | -l ==> list image header information |
2607 | 2608 | ||
2608 | The second form (with "-d" option) is used to build a U-Boot image | 2609 | The second form (with "-d" option) is used to build a U-Boot image |
2609 | from a "data file" which is used as image payload: | 2610 | from a "data file" which is used as image payload: |
2610 | 2611 | ||
2611 | tools/mkimage -A arch -O os -T type -C comp -a addr -e ep \ | 2612 | tools/mkimage -A arch -O os -T type -C comp -a addr -e ep \ |
2612 | -n name -d data_file image | 2613 | -n name -d data_file image |
2613 | -A ==> set architecture to 'arch' | 2614 | -A ==> set architecture to 'arch' |
2614 | -O ==> set operating system to 'os' | 2615 | -O ==> set operating system to 'os' |
2615 | -T ==> set image type to 'type' | 2616 | -T ==> set image type to 'type' |
2616 | -C ==> set compression type 'comp' | 2617 | -C ==> set compression type 'comp' |
2617 | -a ==> set load address to 'addr' (hex) | 2618 | -a ==> set load address to 'addr' (hex) |
2618 | -e ==> set entry point to 'ep' (hex) | 2619 | -e ==> set entry point to 'ep' (hex) |
2619 | -n ==> set image name to 'name' | 2620 | -n ==> set image name to 'name' |
2620 | -d ==> use image data from 'datafile' | 2621 | -d ==> use image data from 'datafile' |
2621 | 2622 | ||
2622 | Right now, all Linux kernels for PowerPC systems use the same load | 2623 | Right now, all Linux kernels for PowerPC systems use the same load |
2623 | address (0x00000000), but the entry point address depends on the | 2624 | address (0x00000000), but the entry point address depends on the |
2624 | kernel version: | 2625 | kernel version: |
2625 | 2626 | ||
2626 | - 2.2.x kernels have the entry point at 0x0000000C, | 2627 | - 2.2.x kernels have the entry point at 0x0000000C, |
2627 | - 2.3.x and later kernels have the entry point at 0x00000000. | 2628 | - 2.3.x and later kernels have the entry point at 0x00000000. |
2628 | 2629 | ||
2629 | So a typical call to build a U-Boot image would read: | 2630 | So a typical call to build a U-Boot image would read: |
2630 | 2631 | ||
2631 | -> tools/mkimage -n '2.4.4 kernel for TQM850L' \ | 2632 | -> tools/mkimage -n '2.4.4 kernel for TQM850L' \ |
2632 | > -A ppc -O linux -T kernel -C gzip -a 0 -e 0 \ | 2633 | > -A ppc -O linux -T kernel -C gzip -a 0 -e 0 \ |
2633 | > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz \ | 2634 | > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz \ |
2634 | > examples/uImage.TQM850L | 2635 | > examples/uImage.TQM850L |
2635 | Image Name: 2.4.4 kernel for TQM850L | 2636 | Image Name: 2.4.4 kernel for TQM850L |
2636 | Created: Wed Jul 19 02:34:59 2000 | 2637 | Created: Wed Jul 19 02:34:59 2000 |
2637 | Image Type: PowerPC Linux Kernel Image (gzip compressed) | 2638 | Image Type: PowerPC Linux Kernel Image (gzip compressed) |
2638 | Data Size: 335725 Bytes = 327.86 kB = 0.32 MB | 2639 | Data Size: 335725 Bytes = 327.86 kB = 0.32 MB |
2639 | Load Address: 0x00000000 | 2640 | Load Address: 0x00000000 |
2640 | Entry Point: 0x00000000 | 2641 | Entry Point: 0x00000000 |
2641 | 2642 | ||
2642 | To verify the contents of the image (or check for corruption): | 2643 | To verify the contents of the image (or check for corruption): |
2643 | 2644 | ||
2644 | -> tools/mkimage -l examples/uImage.TQM850L | 2645 | -> tools/mkimage -l examples/uImage.TQM850L |
2645 | Image Name: 2.4.4 kernel for TQM850L | 2646 | Image Name: 2.4.4 kernel for TQM850L |
2646 | Created: Wed Jul 19 02:34:59 2000 | 2647 | Created: Wed Jul 19 02:34:59 2000 |
2647 | Image Type: PowerPC Linux Kernel Image (gzip compressed) | 2648 | Image Type: PowerPC Linux Kernel Image (gzip compressed) |
2648 | Data Size: 335725 Bytes = 327.86 kB = 0.32 MB | 2649 | Data Size: 335725 Bytes = 327.86 kB = 0.32 MB |
2649 | Load Address: 0x00000000 | 2650 | Load Address: 0x00000000 |
2650 | Entry Point: 0x00000000 | 2651 | Entry Point: 0x00000000 |
2651 | 2652 | ||
2652 | NOTE: for embedded systems where boot time is critical you can trade | 2653 | NOTE: for embedded systems where boot time is critical you can trade |
2653 | speed for memory and install an UNCOMPRESSED image instead: this | 2654 | speed for memory and install an UNCOMPRESSED image instead: this |
2654 | needs more space in Flash, but boots much faster since it does not | 2655 | needs more space in Flash, but boots much faster since it does not |
2655 | need to be uncompressed: | 2656 | need to be uncompressed: |
2656 | 2657 | ||
2657 | -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz | 2658 | -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz |
2658 | -> tools/mkimage -n '2.4.4 kernel for TQM850L' \ | 2659 | -> tools/mkimage -n '2.4.4 kernel for TQM850L' \ |
2659 | > -A ppc -O linux -T kernel -C none -a 0 -e 0 \ | 2660 | > -A ppc -O linux -T kernel -C none -a 0 -e 0 \ |
2660 | > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux \ | 2661 | > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux \ |
2661 | > examples/uImage.TQM850L-uncompressed | 2662 | > examples/uImage.TQM850L-uncompressed |
2662 | Image Name: 2.4.4 kernel for TQM850L | 2663 | Image Name: 2.4.4 kernel for TQM850L |
2663 | Created: Wed Jul 19 02:34:59 2000 | 2664 | Created: Wed Jul 19 02:34:59 2000 |
2664 | Image Type: PowerPC Linux Kernel Image (uncompressed) | 2665 | Image Type: PowerPC Linux Kernel Image (uncompressed) |
2665 | Data Size: 792160 Bytes = 773.59 kB = 0.76 MB | 2666 | Data Size: 792160 Bytes = 773.59 kB = 0.76 MB |
2666 | Load Address: 0x00000000 | 2667 | Load Address: 0x00000000 |
2667 | Entry Point: 0x00000000 | 2668 | Entry Point: 0x00000000 |
2668 | 2669 | ||
2669 | 2670 | ||
2670 | Similar you can build U-Boot images from a 'ramdisk.image.gz' file | 2671 | Similar you can build U-Boot images from a 'ramdisk.image.gz' file |
2671 | when your kernel is intended to use an initial ramdisk: | 2672 | when your kernel is intended to use an initial ramdisk: |
2672 | 2673 | ||
2673 | -> tools/mkimage -n 'Simple Ramdisk Image' \ | 2674 | -> tools/mkimage -n 'Simple Ramdisk Image' \ |
2674 | > -A ppc -O linux -T ramdisk -C gzip \ | 2675 | > -A ppc -O linux -T ramdisk -C gzip \ |
2675 | > -d /LinuxPPC/images/SIMPLE-ramdisk.image.gz examples/simple-initrd | 2676 | > -d /LinuxPPC/images/SIMPLE-ramdisk.image.gz examples/simple-initrd |
2676 | Image Name: Simple Ramdisk Image | 2677 | Image Name: Simple Ramdisk Image |
2677 | Created: Wed Jan 12 14:01:50 2000 | 2678 | Created: Wed Jan 12 14:01:50 2000 |
2678 | Image Type: PowerPC Linux RAMDisk Image (gzip compressed) | 2679 | Image Type: PowerPC Linux RAMDisk Image (gzip compressed) |
2679 | Data Size: 566530 Bytes = 553.25 kB = 0.54 MB | 2680 | Data Size: 566530 Bytes = 553.25 kB = 0.54 MB |
2680 | Load Address: 0x00000000 | 2681 | Load Address: 0x00000000 |
2681 | Entry Point: 0x00000000 | 2682 | Entry Point: 0x00000000 |
2682 | 2683 | ||
2683 | 2684 | ||
2684 | Installing a Linux Image: | 2685 | Installing a Linux Image: |
2685 | ------------------------- | 2686 | ------------------------- |
2686 | 2687 | ||
2687 | To downloading a U-Boot image over the serial (console) interface, | 2688 | To downloading a U-Boot image over the serial (console) interface, |
2688 | you must convert the image to S-Record format: | 2689 | you must convert the image to S-Record format: |
2689 | 2690 | ||
2690 | objcopy -I binary -O srec examples/image examples/image.srec | 2691 | objcopy -I binary -O srec examples/image examples/image.srec |
2691 | 2692 | ||
2692 | The 'objcopy' does not understand the information in the U-Boot | 2693 | The 'objcopy' does not understand the information in the U-Boot |
2693 | image header, so the resulting S-Record file will be relative to | 2694 | image header, so the resulting S-Record file will be relative to |
2694 | address 0x00000000. To load it to a given address, you need to | 2695 | address 0x00000000. To load it to a given address, you need to |
2695 | specify the target address as 'offset' parameter with the 'loads' | 2696 | specify the target address as 'offset' parameter with the 'loads' |
2696 | command. | 2697 | command. |
2697 | 2698 | ||
2698 | Example: install the image to address 0x40100000 (which on the | 2699 | Example: install the image to address 0x40100000 (which on the |
2699 | TQM8xxL is in the first Flash bank): | 2700 | TQM8xxL is in the first Flash bank): |
2700 | 2701 | ||
2701 | => erase 40100000 401FFFFF | 2702 | => erase 40100000 401FFFFF |
2702 | 2703 | ||
2703 | .......... done | 2704 | .......... done |
2704 | Erased 8 sectors | 2705 | Erased 8 sectors |
2705 | 2706 | ||
2706 | => loads 40100000 | 2707 | => loads 40100000 |
2707 | ## Ready for S-Record download ... | 2708 | ## Ready for S-Record download ... |
2708 | ~>examples/image.srec | 2709 | ~>examples/image.srec |
2709 | 1 2 3 4 5 6 7 8 9 10 11 12 13 ... | 2710 | 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
2710 | ... | 2711 | ... |
2711 | 15989 15990 15991 15992 | 2712 | 15989 15990 15991 15992 |
2712 | [file transfer complete] | 2713 | [file transfer complete] |
2713 | [connected] | 2714 | [connected] |
2714 | ## Start Addr = 0x00000000 | 2715 | ## Start Addr = 0x00000000 |
2715 | 2716 | ||
2716 | 2717 | ||
2717 | You can check the success of the download using the 'iminfo' command; | 2718 | You can check the success of the download using the 'iminfo' command; |
2718 | this includes a checksum verification so you can be sure no data | 2719 | this includes a checksum verification so you can be sure no data |
2719 | corruption happened: | 2720 | corruption happened: |
2720 | 2721 | ||
2721 | => imi 40100000 | 2722 | => imi 40100000 |
2722 | 2723 | ||
2723 | ## Checking Image at 40100000 ... | 2724 | ## Checking Image at 40100000 ... |
2724 | Image Name: 2.2.13 for initrd on TQM850L | 2725 | Image Name: 2.2.13 for initrd on TQM850L |
2725 | Image Type: PowerPC Linux Kernel Image (gzip compressed) | 2726 | Image Type: PowerPC Linux Kernel Image (gzip compressed) |
2726 | Data Size: 335725 Bytes = 327 kB = 0 MB | 2727 | Data Size: 335725 Bytes = 327 kB = 0 MB |
2727 | Load Address: 00000000 | 2728 | Load Address: 00000000 |
2728 | Entry Point: 0000000c | 2729 | Entry Point: 0000000c |
2729 | Verifying Checksum ... OK | 2730 | Verifying Checksum ... OK |
2730 | 2731 | ||
2731 | 2732 | ||
2732 | Boot Linux: | 2733 | Boot Linux: |
2733 | ----------- | 2734 | ----------- |
2734 | 2735 | ||
2735 | The "bootm" command is used to boot an application that is stored in | 2736 | The "bootm" command is used to boot an application that is stored in |
2736 | memory (RAM or Flash). In case of a Linux kernel image, the contents | 2737 | memory (RAM or Flash). In case of a Linux kernel image, the contents |
2737 | of the "bootargs" environment variable is passed to the kernel as | 2738 | of the "bootargs" environment variable is passed to the kernel as |
2738 | parameters. You can check and modify this variable using the | 2739 | parameters. You can check and modify this variable using the |
2739 | "printenv" and "setenv" commands: | 2740 | "printenv" and "setenv" commands: |
2740 | 2741 | ||
2741 | 2742 | ||
2742 | => printenv bootargs | 2743 | => printenv bootargs |
2743 | bootargs=root=/dev/ram | 2744 | bootargs=root=/dev/ram |
2744 | 2745 | ||
2745 | => setenv bootargs root=/dev/nfs rw nfsroot=10.0.0.2:/LinuxPPC nfsaddrs=10.0.0.99:10.0.0.2 | 2746 | => setenv bootargs root=/dev/nfs rw nfsroot=10.0.0.2:/LinuxPPC nfsaddrs=10.0.0.99:10.0.0.2 |
2746 | 2747 | ||
2747 | => printenv bootargs | 2748 | => printenv bootargs |
2748 | bootargs=root=/dev/nfs rw nfsroot=10.0.0.2:/LinuxPPC nfsaddrs=10.0.0.99:10.0.0.2 | 2749 | bootargs=root=/dev/nfs rw nfsroot=10.0.0.2:/LinuxPPC nfsaddrs=10.0.0.99:10.0.0.2 |
2749 | 2750 | ||
2750 | => bootm 40020000 | 2751 | => bootm 40020000 |
2751 | ## Booting Linux kernel at 40020000 ... | 2752 | ## Booting Linux kernel at 40020000 ... |
2752 | Image Name: 2.2.13 for NFS on TQM850L | 2753 | Image Name: 2.2.13 for NFS on TQM850L |
2753 | Image Type: PowerPC Linux Kernel Image (gzip compressed) | 2754 | Image Type: PowerPC Linux Kernel Image (gzip compressed) |
2754 | Data Size: 381681 Bytes = 372 kB = 0 MB | 2755 | Data Size: 381681 Bytes = 372 kB = 0 MB |
2755 | Load Address: 00000000 | 2756 | Load Address: 00000000 |
2756 | Entry Point: 0000000c | 2757 | Entry Point: 0000000c |
2757 | Verifying Checksum ... OK | 2758 | Verifying Checksum ... OK |
2758 | Uncompressing Kernel Image ... OK | 2759 | Uncompressing Kernel Image ... OK |
2759 | Linux version 2.2.13 (wd@denx.local.net) (gcc version 2.95.2 19991024 (release)) #1 Wed Jul 19 02:35:17 MEST 2000 | 2760 | Linux version 2.2.13 (wd@denx.local.net) (gcc version 2.95.2 19991024 (release)) #1 Wed Jul 19 02:35:17 MEST 2000 |
2760 | Boot arguments: root=/dev/nfs rw nfsroot=10.0.0.2:/LinuxPPC nfsaddrs=10.0.0.99:10.0.0.2 | 2761 | Boot arguments: root=/dev/nfs rw nfsroot=10.0.0.2:/LinuxPPC nfsaddrs=10.0.0.99:10.0.0.2 |
2761 | time_init: decrementer frequency = 187500000/60 | 2762 | time_init: decrementer frequency = 187500000/60 |
2762 | Calibrating delay loop... 49.77 BogoMIPS | 2763 | Calibrating delay loop... 49.77 BogoMIPS |
2763 | Memory: 15208k available (700k kernel code, 444k data, 32k init) [c0000000,c1000000] | 2764 | Memory: 15208k available (700k kernel code, 444k data, 32k init) [c0000000,c1000000] |
2764 | ... | 2765 | ... |
2765 | 2766 | ||
2766 | If you want to boot a Linux kernel with initial ram disk, you pass | 2767 | If you want to boot a Linux kernel with initial ram disk, you pass |
2767 | the memory addresses of both the kernel and the initrd image (PPBCOOT | 2768 | the memory addresses of both the kernel and the initrd image (PPBCOOT |
2768 | format!) to the "bootm" command: | 2769 | format!) to the "bootm" command: |
2769 | 2770 | ||
2770 | => imi 40100000 40200000 | 2771 | => imi 40100000 40200000 |
2771 | 2772 | ||
2772 | ## Checking Image at 40100000 ... | 2773 | ## Checking Image at 40100000 ... |
2773 | Image Name: 2.2.13 for initrd on TQM850L | 2774 | Image Name: 2.2.13 for initrd on TQM850L |
2774 | Image Type: PowerPC Linux Kernel Image (gzip compressed) | 2775 | Image Type: PowerPC Linux Kernel Image (gzip compressed) |
2775 | Data Size: 335725 Bytes = 327 kB = 0 MB | 2776 | Data Size: 335725 Bytes = 327 kB = 0 MB |
2776 | Load Address: 00000000 | 2777 | Load Address: 00000000 |
2777 | Entry Point: 0000000c | 2778 | Entry Point: 0000000c |
2778 | Verifying Checksum ... OK | 2779 | Verifying Checksum ... OK |
2779 | 2780 | ||
2780 | ## Checking Image at 40200000 ... | 2781 | ## Checking Image at 40200000 ... |
2781 | Image Name: Simple Ramdisk Image | 2782 | Image Name: Simple Ramdisk Image |
2782 | Image Type: PowerPC Linux RAMDisk Image (gzip compressed) | 2783 | Image Type: PowerPC Linux RAMDisk Image (gzip compressed) |
2783 | Data Size: 566530 Bytes = 553 kB = 0 MB | 2784 | Data Size: 566530 Bytes = 553 kB = 0 MB |
2784 | Load Address: 00000000 | 2785 | Load Address: 00000000 |
2785 | Entry Point: 00000000 | 2786 | Entry Point: 00000000 |
2786 | Verifying Checksum ... OK | 2787 | Verifying Checksum ... OK |
2787 | 2788 | ||
2788 | => bootm 40100000 40200000 | 2789 | => bootm 40100000 40200000 |
2789 | ## Booting Linux kernel at 40100000 ... | 2790 | ## Booting Linux kernel at 40100000 ... |
2790 | Image Name: 2.2.13 for initrd on TQM850L | 2791 | Image Name: 2.2.13 for initrd on TQM850L |
2791 | Image Type: PowerPC Linux Kernel Image (gzip compressed) | 2792 | Image Type: PowerPC Linux Kernel Image (gzip compressed) |
2792 | Data Size: 335725 Bytes = 327 kB = 0 MB | 2793 | Data Size: 335725 Bytes = 327 kB = 0 MB |
2793 | Load Address: 00000000 | 2794 | Load Address: 00000000 |
2794 | Entry Point: 0000000c | 2795 | Entry Point: 0000000c |
2795 | Verifying Checksum ... OK | 2796 | Verifying Checksum ... OK |
2796 | Uncompressing Kernel Image ... OK | 2797 | Uncompressing Kernel Image ... OK |
2797 | ## Loading RAMDisk Image at 40200000 ... | 2798 | ## Loading RAMDisk Image at 40200000 ... |
2798 | Image Name: Simple Ramdisk Image | 2799 | Image Name: Simple Ramdisk Image |
2799 | Image Type: PowerPC Linux RAMDisk Image (gzip compressed) | 2800 | Image Type: PowerPC Linux RAMDisk Image (gzip compressed) |
2800 | Data Size: 566530 Bytes = 553 kB = 0 MB | 2801 | Data Size: 566530 Bytes = 553 kB = 0 MB |
2801 | Load Address: 00000000 | 2802 | Load Address: 00000000 |
2802 | Entry Point: 00000000 | 2803 | Entry Point: 00000000 |
2803 | Verifying Checksum ... OK | 2804 | Verifying Checksum ... OK |
2804 | Loading Ramdisk ... OK | 2805 | Loading Ramdisk ... OK |
2805 | Linux version 2.2.13 (wd@denx.local.net) (gcc version 2.95.2 19991024 (release)) #1 Wed Jul 19 02:32:08 MEST 2000 | 2806 | Linux version 2.2.13 (wd@denx.local.net) (gcc version 2.95.2 19991024 (release)) #1 Wed Jul 19 02:32:08 MEST 2000 |
2806 | Boot arguments: root=/dev/ram | 2807 | Boot arguments: root=/dev/ram |
2807 | time_init: decrementer frequency = 187500000/60 | 2808 | time_init: decrementer frequency = 187500000/60 |
2808 | Calibrating delay loop... 49.77 BogoMIPS | 2809 | Calibrating delay loop... 49.77 BogoMIPS |
2809 | ... | 2810 | ... |
2810 | RAMDISK: Compressed image found at block 0 | 2811 | RAMDISK: Compressed image found at block 0 |
2811 | VFS: Mounted root (ext2 filesystem). | 2812 | VFS: Mounted root (ext2 filesystem). |
2812 | 2813 | ||
2813 | bash# | 2814 | bash# |
2814 | 2815 | ||
2815 | More About U-Boot Image Types: | 2816 | More About U-Boot Image Types: |
2816 | ------------------------------ | 2817 | ------------------------------ |
2817 | 2818 | ||
2818 | U-Boot supports the following image types: | 2819 | U-Boot supports the following image types: |
2819 | 2820 | ||
2820 | "Standalone Programs" are directly runnable in the environment | 2821 | "Standalone Programs" are directly runnable in the environment |
2821 | provided by U-Boot; it is expected that (if they behave | 2822 | provided by U-Boot; it is expected that (if they behave |
2822 | well) you can continue to work in U-Boot after return from | 2823 | well) you can continue to work in U-Boot after return from |
2823 | the Standalone Program. | 2824 | the Standalone Program. |
2824 | "OS Kernel Images" are usually images of some Embedded OS which | 2825 | "OS Kernel Images" are usually images of some Embedded OS which |
2825 | will take over control completely. Usually these programs | 2826 | will take over control completely. Usually these programs |
2826 | will install their own set of exception handlers, device | 2827 | will install their own set of exception handlers, device |
2827 | drivers, set up the MMU, etc. - this means, that you cannot | 2828 | drivers, set up the MMU, etc. - this means, that you cannot |
2828 | expect to re-enter U-Boot except by resetting the CPU. | 2829 | expect to re-enter U-Boot except by resetting the CPU. |
2829 | "RAMDisk Images" are more or less just data blocks, and their | 2830 | "RAMDisk Images" are more or less just data blocks, and their |
2830 | parameters (address, size) are passed to an OS kernel that is | 2831 | parameters (address, size) are passed to an OS kernel that is |
2831 | being started. | 2832 | being started. |
2832 | "Multi-File Images" contain several images, typically an OS | 2833 | "Multi-File Images" contain several images, typically an OS |
2833 | (Linux) kernel image and one or more data images like | 2834 | (Linux) kernel image and one or more data images like |
2834 | RAMDisks. This construct is useful for instance when you want | 2835 | RAMDisks. This construct is useful for instance when you want |
2835 | to boot over the network using BOOTP etc., where the boot | 2836 | to boot over the network using BOOTP etc., where the boot |
2836 | server provides just a single image file, but you want to get | 2837 | server provides just a single image file, but you want to get |
2837 | for instance an OS kernel and a RAMDisk image. | 2838 | for instance an OS kernel and a RAMDisk image. |
2838 | 2839 | ||
2839 | "Multi-File Images" start with a list of image sizes, each | 2840 | "Multi-File Images" start with a list of image sizes, each |
2840 | image size (in bytes) specified by an "uint32_t" in network | 2841 | image size (in bytes) specified by an "uint32_t" in network |
2841 | byte order. This list is terminated by an "(uint32_t)0". | 2842 | byte order. This list is terminated by an "(uint32_t)0". |
2842 | Immediately after the terminating 0 follow the images, one by | 2843 | Immediately after the terminating 0 follow the images, one by |
2843 | one, all aligned on "uint32_t" boundaries (size rounded up to | 2844 | one, all aligned on "uint32_t" boundaries (size rounded up to |
2844 | a multiple of 4 bytes). | 2845 | a multiple of 4 bytes). |
2845 | 2846 | ||
2846 | "Firmware Images" are binary images containing firmware (like | 2847 | "Firmware Images" are binary images containing firmware (like |
2847 | U-Boot or FPGA images) which usually will be programmed to | 2848 | U-Boot or FPGA images) which usually will be programmed to |
2848 | flash memory. | 2849 | flash memory. |
2849 | 2850 | ||
2850 | "Script files" are command sequences that will be executed by | 2851 | "Script files" are command sequences that will be executed by |
2851 | U-Boot's command interpreter; this feature is especially | 2852 | U-Boot's command interpreter; this feature is especially |
2852 | useful when you configure U-Boot to use a real shell (hush) | 2853 | useful when you configure U-Boot to use a real shell (hush) |
2853 | as command interpreter. | 2854 | as command interpreter. |
2854 | 2855 | ||
2855 | 2856 | ||
2856 | Standalone HOWTO: | 2857 | Standalone HOWTO: |
2857 | ================= | 2858 | ================= |
2858 | 2859 | ||
2859 | One of the features of U-Boot is that you can dynamically load and | 2860 | One of the features of U-Boot is that you can dynamically load and |
2860 | run "standalone" applications, which can use some resources of | 2861 | run "standalone" applications, which can use some resources of |
2861 | U-Boot like console I/O functions or interrupt services. | 2862 | U-Boot like console I/O functions or interrupt services. |
2862 | 2863 | ||
2863 | Two simple examples are included with the sources: | 2864 | Two simple examples are included with the sources: |
2864 | 2865 | ||
2865 | "Hello World" Demo: | 2866 | "Hello World" Demo: |
2866 | ------------------- | 2867 | ------------------- |
2867 | 2868 | ||
2868 | 'examples/hello_world.c' contains a small "Hello World" Demo | 2869 | 'examples/hello_world.c' contains a small "Hello World" Demo |
2869 | application; it is automatically compiled when you build U-Boot. | 2870 | application; it is automatically compiled when you build U-Boot. |
2870 | It's configured to run at address 0x00040004, so you can play with it | 2871 | It's configured to run at address 0x00040004, so you can play with it |
2871 | like that: | 2872 | like that: |
2872 | 2873 | ||
2873 | => loads | 2874 | => loads |
2874 | ## Ready for S-Record download ... | 2875 | ## Ready for S-Record download ... |
2875 | ~>examples/hello_world.srec | 2876 | ~>examples/hello_world.srec |
2876 | 1 2 3 4 5 6 7 8 9 10 11 ... | 2877 | 1 2 3 4 5 6 7 8 9 10 11 ... |
2877 | [file transfer complete] | 2878 | [file transfer complete] |
2878 | [connected] | 2879 | [connected] |
2879 | ## Start Addr = 0x00040004 | 2880 | ## Start Addr = 0x00040004 |
2880 | 2881 | ||
2881 | => go 40004 Hello World! This is a test. | 2882 | => go 40004 Hello World! This is a test. |
2882 | ## Starting application at 0x00040004 ... | 2883 | ## Starting application at 0x00040004 ... |
2883 | Hello World | 2884 | Hello World |
2884 | argc = 7 | 2885 | argc = 7 |
2885 | argv[0] = "40004" | 2886 | argv[0] = "40004" |
2886 | argv[1] = "Hello" | 2887 | argv[1] = "Hello" |
2887 | argv[2] = "World!" | 2888 | argv[2] = "World!" |
2888 | argv[3] = "This" | 2889 | argv[3] = "This" |
2889 | argv[4] = "is" | 2890 | argv[4] = "is" |
2890 | argv[5] = "a" | 2891 | argv[5] = "a" |
2891 | argv[6] = "test." | 2892 | argv[6] = "test." |
2892 | argv[7] = "<NULL>" | 2893 | argv[7] = "<NULL>" |
2893 | Hit any key to exit ... | 2894 | Hit any key to exit ... |
2894 | 2895 | ||
2895 | ## Application terminated, rc = 0x0 | 2896 | ## Application terminated, rc = 0x0 |
2896 | 2897 | ||
2897 | Another example, which demonstrates how to register a CPM interrupt | 2898 | Another example, which demonstrates how to register a CPM interrupt |
2898 | handler with the U-Boot code, can be found in 'examples/timer.c'. | 2899 | handler with the U-Boot code, can be found in 'examples/timer.c'. |
2899 | Here, a CPM timer is set up to generate an interrupt every second. | 2900 | Here, a CPM timer is set up to generate an interrupt every second. |
2900 | The interrupt service routine is trivial, just printing a '.' | 2901 | The interrupt service routine is trivial, just printing a '.' |
2901 | character, but this is just a demo program. The application can be | 2902 | character, but this is just a demo program. The application can be |
2902 | controlled by the following keys: | 2903 | controlled by the following keys: |
2903 | 2904 | ||
2904 | ? - print current values og the CPM Timer registers | 2905 | ? - print current values og the CPM Timer registers |
2905 | b - enable interrupts and start timer | 2906 | b - enable interrupts and start timer |
2906 | e - stop timer and disable interrupts | 2907 | e - stop timer and disable interrupts |
2907 | q - quit application | 2908 | q - quit application |
2908 | 2909 | ||
2909 | => loads | 2910 | => loads |
2910 | ## Ready for S-Record download ... | 2911 | ## Ready for S-Record download ... |
2911 | ~>examples/timer.srec | 2912 | ~>examples/timer.srec |
2912 | 1 2 3 4 5 6 7 8 9 10 11 ... | 2913 | 1 2 3 4 5 6 7 8 9 10 11 ... |
2913 | [file transfer complete] | 2914 | [file transfer complete] |
2914 | [connected] | 2915 | [connected] |
2915 | ## Start Addr = 0x00040004 | 2916 | ## Start Addr = 0x00040004 |
2916 | 2917 | ||
2917 | => go 40004 | 2918 | => go 40004 |
2918 | ## Starting application at 0x00040004 ... | 2919 | ## Starting application at 0x00040004 ... |
2919 | TIMERS=0xfff00980 | 2920 | TIMERS=0xfff00980 |
2920 | Using timer 1 | 2921 | Using timer 1 |
2921 | tgcr @ 0xfff00980, tmr @ 0xfff00990, trr @ 0xfff00994, tcr @ 0xfff00998, tcn @ 0xfff0099c, ter @ 0xfff009b0 | 2922 | tgcr @ 0xfff00980, tmr @ 0xfff00990, trr @ 0xfff00994, tcr @ 0xfff00998, tcn @ 0xfff0099c, ter @ 0xfff009b0 |
2922 | 2923 | ||
2923 | Hit 'b': | 2924 | Hit 'b': |
2924 | [q, b, e, ?] Set interval 1000000 us | 2925 | [q, b, e, ?] Set interval 1000000 us |
2925 | Enabling timer | 2926 | Enabling timer |
2926 | Hit '?': | 2927 | Hit '?': |
2927 | [q, b, e, ?] ........ | 2928 | [q, b, e, ?] ........ |
2928 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0xef6, ter=0x0 | 2929 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0xef6, ter=0x0 |
2929 | Hit '?': | 2930 | Hit '?': |
2930 | [q, b, e, ?] . | 2931 | [q, b, e, ?] . |
2931 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0x2ad4, ter=0x0 | 2932 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0x2ad4, ter=0x0 |
2932 | Hit '?': | 2933 | Hit '?': |
2933 | [q, b, e, ?] . | 2934 | [q, b, e, ?] . |
2934 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0x1efc, ter=0x0 | 2935 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0x1efc, ter=0x0 |
2935 | Hit '?': | 2936 | Hit '?': |
2936 | [q, b, e, ?] . | 2937 | [q, b, e, ?] . |
2937 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0x169d, ter=0x0 | 2938 | tgcr=0x1, tmr=0xff1c, trr=0x3d09, tcr=0x0, tcn=0x169d, ter=0x0 |
2938 | Hit 'e': | 2939 | Hit 'e': |
2939 | [q, b, e, ?] ...Stopping timer | 2940 | [q, b, e, ?] ...Stopping timer |
2940 | Hit 'q': | 2941 | Hit 'q': |
2941 | [q, b, e, ?] ## Application terminated, rc = 0x0 | 2942 | [q, b, e, ?] ## Application terminated, rc = 0x0 |
2942 | 2943 | ||
2943 | 2944 | ||
2944 | Minicom warning: | 2945 | Minicom warning: |
2945 | ================ | 2946 | ================ |
2946 | 2947 | ||
2947 | Over time, many people have reported problems when trying to use the | 2948 | Over time, many people have reported problems when trying to use the |
2948 | "minicom" terminal emulation program for serial download. I (wd) | 2949 | "minicom" terminal emulation program for serial download. I (wd) |
2949 | consider minicom to be broken, and recommend not to use it. Under | 2950 | consider minicom to be broken, and recommend not to use it. Under |
2950 | Unix, I recommend to use C-Kermit for general purpose use (and | 2951 | Unix, I recommend to use C-Kermit for general purpose use (and |
2951 | especially for kermit binary protocol download ("loadb" command), and | 2952 | especially for kermit binary protocol download ("loadb" command), and |
2952 | use "cu" for S-Record download ("loads" command). | 2953 | use "cu" for S-Record download ("loads" command). |
2953 | 2954 | ||
2954 | Nevertheless, if you absolutely want to use it try adding this | 2955 | Nevertheless, if you absolutely want to use it try adding this |
2955 | configuration to your "File transfer protocols" section: | 2956 | configuration to your "File transfer protocols" section: |
2956 | 2957 | ||
2957 | Name Program Name U/D FullScr IO-Red. Multi | 2958 | Name Program Name U/D FullScr IO-Red. Multi |
2958 | X kermit /usr/bin/kermit -i -l %l -s Y U Y N N | 2959 | X kermit /usr/bin/kermit -i -l %l -s Y U Y N N |
2959 | Y kermit /usr/bin/kermit -i -l %l -r N D Y N N | 2960 | Y kermit /usr/bin/kermit -i -l %l -r N D Y N N |
2960 | 2961 | ||
2961 | 2962 | ||
2962 | NetBSD Notes: | 2963 | NetBSD Notes: |
2963 | ============= | 2964 | ============= |
2964 | 2965 | ||
2965 | Starting at version 0.9.2, U-Boot supports NetBSD both as host | 2966 | Starting at version 0.9.2, U-Boot supports NetBSD both as host |
2966 | (build U-Boot) and target system (boots NetBSD/mpc8xx). | 2967 | (build U-Boot) and target system (boots NetBSD/mpc8xx). |
2967 | 2968 | ||
2968 | Building requires a cross environment; it is known to work on | 2969 | Building requires a cross environment; it is known to work on |
2969 | NetBSD/i386 with the cross-powerpc-netbsd-1.3 package (you will also | 2970 | NetBSD/i386 with the cross-powerpc-netbsd-1.3 package (you will also |
2970 | need gmake since the Makefiles are not compatible with BSD make). | 2971 | need gmake since the Makefiles are not compatible with BSD make). |
2971 | Note that the cross-powerpc package does not install include files; | 2972 | Note that the cross-powerpc package does not install include files; |
2972 | attempting to build U-Boot will fail because <machine/ansi.h> is | 2973 | attempting to build U-Boot will fail because <machine/ansi.h> is |
2973 | missing. This file has to be installed and patched manually: | 2974 | missing. This file has to be installed and patched manually: |
2974 | 2975 | ||
2975 | # cd /usr/pkg/cross/powerpc-netbsd/include | 2976 | # cd /usr/pkg/cross/powerpc-netbsd/include |
2976 | # mkdir powerpc | 2977 | # mkdir powerpc |
2977 | # ln -s powerpc machine | 2978 | # ln -s powerpc machine |
2978 | # cp /usr/src/sys/arch/powerpc/include/ansi.h powerpc/ansi.h | 2979 | # cp /usr/src/sys/arch/powerpc/include/ansi.h powerpc/ansi.h |
2979 | # ${EDIT} powerpc/ansi.h ## must remove __va_list, _BSD_VA_LIST | 2980 | # ${EDIT} powerpc/ansi.h ## must remove __va_list, _BSD_VA_LIST |
2980 | 2981 | ||
2981 | Native builds *don't* work due to incompatibilities between native | 2982 | Native builds *don't* work due to incompatibilities between native |
2982 | and U-Boot include files. | 2983 | and U-Boot include files. |
2983 | 2984 | ||
2984 | Booting assumes that (the first part of) the image booted is a | 2985 | Booting assumes that (the first part of) the image booted is a |
2985 | stage-2 loader which in turn loads and then invokes the kernel | 2986 | stage-2 loader which in turn loads and then invokes the kernel |
2986 | proper. Loader sources will eventually appear in the NetBSD source | 2987 | proper. Loader sources will eventually appear in the NetBSD source |
2987 | tree (probably in sys/arc/mpc8xx/stand/u-boot_stage2/); in the | 2988 | tree (probably in sys/arc/mpc8xx/stand/u-boot_stage2/); in the |
2988 | meantime, send mail to bruno@exet-ag.de and/or wd@denx.de for | 2989 | meantime, send mail to bruno@exet-ag.de and/or wd@denx.de for |
2989 | details. | 2990 | details. |
2990 | 2991 | ||
2991 | 2992 | ||
2992 | Implementation Internals: | 2993 | Implementation Internals: |
2993 | ========================= | 2994 | ========================= |
2994 | 2995 | ||
2995 | The following is not intended to be a complete description of every | 2996 | The following is not intended to be a complete description of every |
2996 | implementation detail. However, it should help to understand the | 2997 | implementation detail. However, it should help to understand the |
2997 | inner workings of U-Boot and make it easier to port it to custom | 2998 | inner workings of U-Boot and make it easier to port it to custom |
2998 | hardware. | 2999 | hardware. |
2999 | 3000 | ||
3000 | 3001 | ||
3001 | Initial Stack, Global Data: | 3002 | Initial Stack, Global Data: |
3002 | --------------------------- | 3003 | --------------------------- |
3003 | 3004 | ||
3004 | The implementation of U-Boot is complicated by the fact that U-Boot | 3005 | The implementation of U-Boot is complicated by the fact that U-Boot |
3005 | starts running out of ROM (flash memory), usually without access to | 3006 | starts running out of ROM (flash memory), usually without access to |
3006 | system RAM (because the memory controller is not initialized yet). | 3007 | system RAM (because the memory controller is not initialized yet). |
3007 | This means that we don't have writable Data or BSS segments, and BSS | 3008 | This means that we don't have writable Data or BSS segments, and BSS |
3008 | is not initialized as zero. To be able to get a C environment working | 3009 | is not initialized as zero. To be able to get a C environment working |
3009 | at all, we have to allocate at least a minimal stack. Implementation | 3010 | at all, we have to allocate at least a minimal stack. Implementation |
3010 | options for this are defined and restricted by the CPU used: Some CPU | 3011 | options for this are defined and restricted by the CPU used: Some CPU |
3011 | models provide on-chip memory (like the IMMR area on MPC8xx and | 3012 | models provide on-chip memory (like the IMMR area on MPC8xx and |
3012 | MPC826x processors), on others (parts of) the data cache can be | 3013 | MPC826x processors), on others (parts of) the data cache can be |
3013 | locked as (mis-) used as memory, etc. | 3014 | locked as (mis-) used as memory, etc. |
3014 | 3015 | ||
3015 | Chris Hallinan posted a good summary of these issues to the | 3016 | Chris Hallinan posted a good summary of these issues to the |
3016 | u-boot-users mailing list: | 3017 | u-boot-users mailing list: |
3017 | 3018 | ||
3018 | Subject: RE: [U-Boot-Users] RE: More On Memory Bank x (nothingness)? | 3019 | Subject: RE: [U-Boot-Users] RE: More On Memory Bank x (nothingness)? |
3019 | From: "Chris Hallinan" <clh@net1plus.com> | 3020 | From: "Chris Hallinan" <clh@net1plus.com> |
3020 | Date: Mon, 10 Feb 2003 16:43:46 -0500 (22:43 MET) | 3021 | Date: Mon, 10 Feb 2003 16:43:46 -0500 (22:43 MET) |
3021 | ... | 3022 | ... |
3022 | 3023 | ||
3023 | Correct me if I'm wrong, folks, but the way I understand it | 3024 | Correct me if I'm wrong, folks, but the way I understand it |
3024 | is this: Using DCACHE as initial RAM for Stack, etc, does not | 3025 | is this: Using DCACHE as initial RAM for Stack, etc, does not |
3025 | require any physical RAM backing up the cache. The cleverness | 3026 | require any physical RAM backing up the cache. The cleverness |
3026 | is that the cache is being used as a temporary supply of | 3027 | is that the cache is being used as a temporary supply of |
3027 | necessary storage before the SDRAM controller is setup. It's | 3028 | necessary storage before the SDRAM controller is setup. It's |
3028 | beyond the scope of this list to expain the details, but you | 3029 | beyond the scope of this list to expain the details, but you |
3029 | can see how this works by studying the cache architecture and | 3030 | can see how this works by studying the cache architecture and |
3030 | operation in the architecture and processor-specific manuals. | 3031 | operation in the architecture and processor-specific manuals. |
3031 | 3032 | ||
3032 | OCM is On Chip Memory, which I believe the 405GP has 4K. It | 3033 | OCM is On Chip Memory, which I believe the 405GP has 4K. It |
3033 | is another option for the system designer to use as an | 3034 | is another option for the system designer to use as an |
3034 | initial stack/ram area prior to SDRAM being available. Either | 3035 | initial stack/ram area prior to SDRAM being available. Either |
3035 | option should work for you. Using CS 4 should be fine if your | 3036 | option should work for you. Using CS 4 should be fine if your |
3036 | board designers haven't used it for something that would | 3037 | board designers haven't used it for something that would |
3037 | cause you grief during the initial boot! It is frequently not | 3038 | cause you grief during the initial boot! It is frequently not |
3038 | used. | 3039 | used. |
3039 | 3040 | ||
3040 | CFG_INIT_RAM_ADDR should be somewhere that won't interfere | 3041 | CFG_INIT_RAM_ADDR should be somewhere that won't interfere |
3041 | with your processor/board/system design. The default value | 3042 | with your processor/board/system design. The default value |
3042 | you will find in any recent u-boot distribution in | 3043 | you will find in any recent u-boot distribution in |
3043 | Walnut405.h should work for you. I'd set it to a value larger | 3044 | Walnut405.h should work for you. I'd set it to a value larger |
3044 | than your SDRAM module. If you have a 64MB SDRAM module, set | 3045 | than your SDRAM module. If you have a 64MB SDRAM module, set |
3045 | it above 400_0000. Just make sure your board has no resources | 3046 | it above 400_0000. Just make sure your board has no resources |
3046 | that are supposed to respond to that address! That code in | 3047 | that are supposed to respond to that address! That code in |
3047 | start.S has been around a while and should work as is when | 3048 | start.S has been around a while and should work as is when |
3048 | you get the config right. | 3049 | you get the config right. |
3049 | 3050 | ||
3050 | -Chris Hallinan | 3051 | -Chris Hallinan |
3051 | DS4.COM, Inc. | 3052 | DS4.COM, Inc. |
3052 | 3053 | ||
3053 | It is essential to remember this, since it has some impact on the C | 3054 | It is essential to remember this, since it has some impact on the C |
3054 | code for the initialization procedures: | 3055 | code for the initialization procedures: |
3055 | 3056 | ||
3056 | * Initialized global data (data segment) is read-only. Do not attempt | 3057 | * Initialized global data (data segment) is read-only. Do not attempt |
3057 | to write it. | 3058 | to write it. |
3058 | 3059 | ||
3059 | * Do not use any unitialized global data (or implicitely initialized | 3060 | * Do not use any unitialized global data (or implicitely initialized |
3060 | as zero data - BSS segment) at all - this is undefined, initiali- | 3061 | as zero data - BSS segment) at all - this is undefined, initiali- |
3061 | zation is performed later (when relocating to RAM). | 3062 | zation is performed later (when relocating to RAM). |
3062 | 3063 | ||
3063 | * Stack space is very limited. Avoid big data buffers or things like | 3064 | * Stack space is very limited. Avoid big data buffers or things like |
3064 | that. | 3065 | that. |
3065 | 3066 | ||
3066 | Having only the stack as writable memory limits means we cannot use | 3067 | Having only the stack as writable memory limits means we cannot use |
3067 | normal global data to share information beween the code. But it | 3068 | normal global data to share information beween the code. But it |
3068 | turned out that the implementation of U-Boot can be greatly | 3069 | turned out that the implementation of U-Boot can be greatly |
3069 | simplified by making a global data structure (gd_t) available to all | 3070 | simplified by making a global data structure (gd_t) available to all |
3070 | functions. We could pass a pointer to this data as argument to _all_ | 3071 | functions. We could pass a pointer to this data as argument to _all_ |
3071 | functions, but this would bloat the code. Instead we use a feature of | 3072 | functions, but this would bloat the code. Instead we use a feature of |
3072 | the GCC compiler (Global Register Variables) to share the data: we | 3073 | the GCC compiler (Global Register Variables) to share the data: we |
3073 | place a pointer (gd) to the global data into a register which we | 3074 | place a pointer (gd) to the global data into a register which we |
3074 | reserve for this purpose. | 3075 | reserve for this purpose. |
3075 | 3076 | ||
3076 | When choosing a register for such a purpose we are restricted by the | 3077 | When choosing a register for such a purpose we are restricted by the |
3077 | relevant (E)ABI specifications for the current architecture, and by | 3078 | relevant (E)ABI specifications for the current architecture, and by |
3078 | GCC's implementation. | 3079 | GCC's implementation. |
3079 | 3080 | ||
3080 | For PowerPC, the following registers have specific use: | 3081 | For PowerPC, the following registers have specific use: |
3081 | R1: stack pointer | 3082 | R1: stack pointer |
3082 | R2: TOC pointer | 3083 | R2: TOC pointer |
3083 | R3-R4: parameter passing and return values | 3084 | R3-R4: parameter passing and return values |
3084 | R5-R10: parameter passing | 3085 | R5-R10: parameter passing |
3085 | R13: small data area pointer | 3086 | R13: small data area pointer |
3086 | R30: GOT pointer | 3087 | R30: GOT pointer |
3087 | R31: frame pointer | 3088 | R31: frame pointer |
3088 | 3089 | ||
3089 | (U-Boot also uses R14 as internal GOT pointer.) | 3090 | (U-Boot also uses R14 as internal GOT pointer.) |
3090 | 3091 | ||
3091 | ==> U-Boot will use R29 to hold a pointer to the global data | 3092 | ==> U-Boot will use R29 to hold a pointer to the global data |
3092 | 3093 | ||
3093 | Note: on PPC, we could use a static initializer (since the | 3094 | Note: on PPC, we could use a static initializer (since the |
3094 | address of the global data structure is known at compile time), | 3095 | address of the global data structure is known at compile time), |
3095 | but it turned out that reserving a register results in somewhat | 3096 | but it turned out that reserving a register results in somewhat |
3096 | smaller code - although the code savings are not that big (on | 3097 | smaller code - although the code savings are not that big (on |
3097 | average for all boards 752 bytes for the whole U-Boot image, | 3098 | average for all boards 752 bytes for the whole U-Boot image, |
3098 | 624 text + 127 data). | 3099 | 624 text + 127 data). |
3099 | 3100 | ||
3100 | On ARM, the following registers are used: | 3101 | On ARM, the following registers are used: |
3101 | 3102 | ||
3102 | R0: function argument word/integer result | 3103 | R0: function argument word/integer result |
3103 | R1-R3: function argument word | 3104 | R1-R3: function argument word |
3104 | R9: GOT pointer | 3105 | R9: GOT pointer |
3105 | R10: stack limit (used only if stack checking if enabled) | 3106 | R10: stack limit (used only if stack checking if enabled) |
3106 | R11: argument (frame) pointer | 3107 | R11: argument (frame) pointer |
3107 | R12: temporary workspace | 3108 | R12: temporary workspace |
3108 | R13: stack pointer | 3109 | R13: stack pointer |
3109 | R14: link register | 3110 | R14: link register |
3110 | R15: program counter | 3111 | R15: program counter |
3111 | 3112 | ||
3112 | ==> U-Boot will use R8 to hold a pointer to the global data | 3113 | ==> U-Boot will use R8 to hold a pointer to the global data |
3113 | 3114 | ||
3114 | 3115 | ||
3115 | Memory Management: | 3116 | Memory Management: |
3116 | ------------------ | 3117 | ------------------ |
3117 | 3118 | ||
3118 | U-Boot runs in system state and uses physical addresses, i.e. the | 3119 | U-Boot runs in system state and uses physical addresses, i.e. the |
3119 | MMU is not used either for address mapping nor for memory protection. | 3120 | MMU is not used either for address mapping nor for memory protection. |
3120 | 3121 | ||
3121 | The available memory is mapped to fixed addresses using the memory | 3122 | The available memory is mapped to fixed addresses using the memory |
3122 | controller. In this process, a contiguous block is formed for each | 3123 | controller. In this process, a contiguous block is formed for each |
3123 | memory type (Flash, SDRAM, SRAM), even when it consists of several | 3124 | memory type (Flash, SDRAM, SRAM), even when it consists of several |
3124 | physical memory banks. | 3125 | physical memory banks. |
3125 | 3126 | ||
3126 | U-Boot is installed in the first 128 kB of the first Flash bank (on | 3127 | U-Boot is installed in the first 128 kB of the first Flash bank (on |
3127 | TQM8xxL modules this is the range 0x40000000 ... 0x4001FFFF). After | 3128 | TQM8xxL modules this is the range 0x40000000 ... 0x4001FFFF). After |
3128 | booting and sizing and initializing DRAM, the code relocates itself | 3129 | booting and sizing and initializing DRAM, the code relocates itself |
3129 | to the upper end of DRAM. Immediately below the U-Boot code some | 3130 | to the upper end of DRAM. Immediately below the U-Boot code some |
3130 | memory is reserved for use by malloc() [see CFG_MALLOC_LEN | 3131 | memory is reserved for use by malloc() [see CFG_MALLOC_LEN |
3131 | configuration setting]. Below that, a structure with global Board | 3132 | configuration setting]. Below that, a structure with global Board |
3132 | Info data is placed, followed by the stack (growing downward). | 3133 | Info data is placed, followed by the stack (growing downward). |
3133 | 3134 | ||
3134 | Additionally, some exception handler code is copied to the low 8 kB | 3135 | Additionally, some exception handler code is copied to the low 8 kB |
3135 | of DRAM (0x00000000 ... 0x00001FFF). | 3136 | of DRAM (0x00000000 ... 0x00001FFF). |
3136 | 3137 | ||
3137 | So a typical memory configuration with 16 MB of DRAM could look like | 3138 | So a typical memory configuration with 16 MB of DRAM could look like |
3138 | this: | 3139 | this: |
3139 | 3140 | ||
3140 | 0x0000 0000 Exception Vector code | 3141 | 0x0000 0000 Exception Vector code |
3141 | : | 3142 | : |
3142 | 0x0000 1FFF | 3143 | 0x0000 1FFF |
3143 | 0x0000 2000 Free for Application Use | 3144 | 0x0000 2000 Free for Application Use |
3144 | : | 3145 | : |
3145 | : | 3146 | : |
3146 | 3147 | ||
3147 | : | 3148 | : |
3148 | : | 3149 | : |
3149 | 0x00FB FF20 Monitor Stack (Growing downward) | 3150 | 0x00FB FF20 Monitor Stack (Growing downward) |
3150 | 0x00FB FFAC Board Info Data and permanent copy of global data | 3151 | 0x00FB FFAC Board Info Data and permanent copy of global data |
3151 | 0x00FC 0000 Malloc Arena | 3152 | 0x00FC 0000 Malloc Arena |
3152 | : | 3153 | : |
3153 | 0x00FD FFFF | 3154 | 0x00FD FFFF |
3154 | 0x00FE 0000 RAM Copy of Monitor Code | 3155 | 0x00FE 0000 RAM Copy of Monitor Code |
3155 | ... eventually: LCD or video framebuffer | 3156 | ... eventually: LCD or video framebuffer |
3156 | ... eventually: pRAM (Protected RAM - unchanged by reset) | 3157 | ... eventually: pRAM (Protected RAM - unchanged by reset) |
3157 | 0x00FF FFFF [End of RAM] | 3158 | 0x00FF FFFF [End of RAM] |
3158 | 3159 | ||
3159 | 3160 | ||
3160 | System Initialization: | 3161 | System Initialization: |
3161 | ---------------------- | 3162 | ---------------------- |
3162 | 3163 | ||
3163 | In the reset configuration, U-Boot starts at the reset entry point | 3164 | In the reset configuration, U-Boot starts at the reset entry point |
3164 | (on most PowerPC systens at address 0x00000100). Because of the reset | 3165 | (on most PowerPC systens at address 0x00000100). Because of the reset |
3165 | configuration for CS0# this is a mirror of the onboard Flash memory. | 3166 | configuration for CS0# this is a mirror of the onboard Flash memory. |
3166 | To be able to re-map memory U-Boot then jumps to its link address. | 3167 | To be able to re-map memory U-Boot then jumps to its link address. |
3167 | To be able to implement the initialization code in C, a (small!) | 3168 | To be able to implement the initialization code in C, a (small!) |
3168 | initial stack is set up in the internal Dual Ported RAM (in case CPUs | 3169 | initial stack is set up in the internal Dual Ported RAM (in case CPUs |
3169 | which provide such a feature like MPC8xx or MPC8260), or in a locked | 3170 | which provide such a feature like MPC8xx or MPC8260), or in a locked |
3170 | part of the data cache. After that, U-Boot initializes the CPU core, | 3171 | part of the data cache. After that, U-Boot initializes the CPU core, |
3171 | the caches and the SIU. | 3172 | the caches and the SIU. |
3172 | 3173 | ||
3173 | Next, all (potentially) available memory banks are mapped using a | 3174 | Next, all (potentially) available memory banks are mapped using a |
3174 | preliminary mapping. For example, we put them on 512 MB boundaries | 3175 | preliminary mapping. For example, we put them on 512 MB boundaries |
3175 | (multiples of 0x20000000: SDRAM on 0x00000000 and 0x20000000, Flash | 3176 | (multiples of 0x20000000: SDRAM on 0x00000000 and 0x20000000, Flash |
3176 | on 0x40000000 and 0x60000000, SRAM on 0x80000000). Then UPM A is | 3177 | on 0x40000000 and 0x60000000, SRAM on 0x80000000). Then UPM A is |
3177 | programmed for SDRAM access. Using the temporary configuration, a | 3178 | programmed for SDRAM access. Using the temporary configuration, a |
3178 | simple memory test is run that determines the size of the SDRAM | 3179 | simple memory test is run that determines the size of the SDRAM |
3179 | banks. | 3180 | banks. |
3180 | 3181 | ||
3181 | When there is more than one SDRAM bank, and the banks are of | 3182 | When there is more than one SDRAM bank, and the banks are of |
3182 | different size, the largest is mapped first. For equal size, the first | 3183 | different size, the largest is mapped first. For equal size, the first |
3183 | bank (CS2#) is mapped first. The first mapping is always for address | 3184 | bank (CS2#) is mapped first. The first mapping is always for address |
3184 | 0x00000000, with any additional banks following immediately to create | 3185 | 0x00000000, with any additional banks following immediately to create |
3185 | contiguous memory starting from 0. | 3186 | contiguous memory starting from 0. |
3186 | 3187 | ||
3187 | Then, the monitor installs itself at the upper end of the SDRAM area | 3188 | Then, the monitor installs itself at the upper end of the SDRAM area |
3188 | and allocates memory for use by malloc() and for the global Board | 3189 | and allocates memory for use by malloc() and for the global Board |
3189 | Info data; also, the exception vector code is copied to the low RAM | 3190 | Info data; also, the exception vector code is copied to the low RAM |
3190 | pages, and the final stack is set up. | 3191 | pages, and the final stack is set up. |
3191 | 3192 | ||
3192 | Only after this relocation will you have a "normal" C environment; | 3193 | Only after this relocation will you have a "normal" C environment; |
3193 | until that you are restricted in several ways, mostly because you are | 3194 | until that you are restricted in several ways, mostly because you are |
3194 | running from ROM, and because the code will have to be relocated to a | 3195 | running from ROM, and because the code will have to be relocated to a |
3195 | new address in RAM. | 3196 | new address in RAM. |
3196 | 3197 | ||
3197 | 3198 | ||
3198 | U-Boot Porting Guide: | 3199 | U-Boot Porting Guide: |
3199 | ---------------------- | 3200 | ---------------------- |
3200 | 3201 | ||
3201 | [Based on messages by Jerry Van Baren in the U-Boot-Users mailing | 3202 | [Based on messages by Jerry Van Baren in the U-Boot-Users mailing |
3202 | list, October 2002] | 3203 | list, October 2002] |
3203 | 3204 | ||
3204 | 3205 | ||
3205 | int main (int argc, char *argv[]) | 3206 | int main (int argc, char *argv[]) |
3206 | { | 3207 | { |
3207 | sighandler_t no_more_time; | 3208 | sighandler_t no_more_time; |
3208 | 3209 | ||
3209 | signal (SIGALRM, no_more_time); | 3210 | signal (SIGALRM, no_more_time); |
3210 | alarm (PROJECT_DEADLINE - toSec (3 * WEEK)); | 3211 | alarm (PROJECT_DEADLINE - toSec (3 * WEEK)); |
3211 | 3212 | ||
3212 | if (available_money > available_manpower) { | 3213 | if (available_money > available_manpower) { |
3213 | pay consultant to port U-Boot; | 3214 | pay consultant to port U-Boot; |
3214 | return 0; | 3215 | return 0; |
3215 | } | 3216 | } |
3216 | 3217 | ||
3217 | Download latest U-Boot source; | 3218 | Download latest U-Boot source; |
3218 | 3219 | ||
3219 | Subscribe to u-boot-users mailing list; | 3220 | Subscribe to u-boot-users mailing list; |
3220 | 3221 | ||
3221 | if (clueless) { | 3222 | if (clueless) { |
3222 | email ("Hi, I am new to U-Boot, how do I get started?"); | 3223 | email ("Hi, I am new to U-Boot, how do I get started?"); |
3223 | } | 3224 | } |
3224 | 3225 | ||
3225 | while (learning) { | 3226 | while (learning) { |
3226 | Read the README file in the top level directory; | 3227 | Read the README file in the top level directory; |
3227 | Read http://www.denx.de/twiki/bin/view/DULG/Manual ; | 3228 | Read http://www.denx.de/twiki/bin/view/DULG/Manual ; |
3228 | Read the source, Luke; | 3229 | Read the source, Luke; |
3229 | } | 3230 | } |
3230 | 3231 | ||
3231 | if (available_money > toLocalCurrency ($2500)) { | 3232 | if (available_money > toLocalCurrency ($2500)) { |
3232 | Buy a BDI2000; | 3233 | Buy a BDI2000; |
3233 | } else { | 3234 | } else { |
3234 | Add a lot of aggravation and time; | 3235 | Add a lot of aggravation and time; |
3235 | } | 3236 | } |
3236 | 3237 | ||
3237 | Create your own board support subdirectory; | 3238 | Create your own board support subdirectory; |
3238 | 3239 | ||
3239 | Create your own board config file; | 3240 | Create your own board config file; |
3240 | 3241 | ||
3241 | while (!running) { | 3242 | while (!running) { |
3242 | do { | 3243 | do { |
3243 | Add / modify source code; | 3244 | Add / modify source code; |
3244 | } until (compiles); | 3245 | } until (compiles); |
3245 | Debug; | 3246 | Debug; |
3246 | if (clueless) | 3247 | if (clueless) |
3247 | email ("Hi, I am having problems..."); | 3248 | email ("Hi, I am having problems..."); |
3248 | } | 3249 | } |
3249 | Send patch file to Wolfgang; | 3250 | Send patch file to Wolfgang; |
3250 | 3251 | ||
3251 | return 0; | 3252 | return 0; |
3252 | } | 3253 | } |
3253 | 3254 | ||
3254 | void no_more_time (int sig) | 3255 | void no_more_time (int sig) |
3255 | { | 3256 | { |
3256 | hire_a_guru(); | 3257 | hire_a_guru(); |
3257 | } | 3258 | } |
3258 | 3259 | ||
3259 | 3260 | ||
3260 | Coding Standards: | 3261 | Coding Standards: |
3261 | ----------------- | 3262 | ----------------- |
3262 | 3263 | ||
3263 | All contributions to U-Boot should conform to the Linux kernel | 3264 | All contributions to U-Boot should conform to the Linux kernel |
3264 | coding style; see the file "Documentation/CodingStyle" in your Linux | 3265 | coding style; see the file "Documentation/CodingStyle" in your Linux |
3265 | kernel source directory. | 3266 | kernel source directory. |
3266 | 3267 | ||
3267 | Please note that U-Boot is implemented in C (and to some small parts | 3268 | Please note that U-Boot is implemented in C (and to some small parts |
3268 | in Assembler); no C++ is used, so please do not use C++ style | 3269 | in Assembler); no C++ is used, so please do not use C++ style |
3269 | comments (//) in your code. | 3270 | comments (//) in your code. |
3270 | 3271 | ||
3271 | Please also stick to the following formatting rules: | 3272 | Please also stick to the following formatting rules: |
3272 | - remove any trailing white space | 3273 | - remove any trailing white space |
3273 | - use TAB characters for indentation, not spaces | 3274 | - use TAB characters for indentation, not spaces |
3274 | - make sure NOT to use DOS '\r\n' line feeds | 3275 | - make sure NOT to use DOS '\r\n' line feeds |
3275 | - do not add more than 2 empty lines to source files | 3276 | - do not add more than 2 empty lines to source files |
3276 | - do not add trailing empty lines to source files | 3277 | - do not add trailing empty lines to source files |
3277 | 3278 | ||
3278 | Submissions which do not conform to the standards may be returned | 3279 | Submissions which do not conform to the standards may be returned |
3279 | with a request to reformat the changes. | 3280 | with a request to reformat the changes. |
3280 | 3281 | ||
3281 | 3282 | ||
3282 | Submitting Patches: | 3283 | Submitting Patches: |
3283 | ------------------- | 3284 | ------------------- |
3284 | 3285 | ||
3285 | Since the number of patches for U-Boot is growing, we need to | 3286 | Since the number of patches for U-Boot is growing, we need to |
3286 | establish some rules. Submissions which do not conform to these rules | 3287 | establish some rules. Submissions which do not conform to these rules |
3287 | may be rejected, even when they contain important and valuable stuff. | 3288 | may be rejected, even when they contain important and valuable stuff. |
3288 | 3289 | ||
3289 | 3290 | ||
3290 | When you send a patch, please include the following information with | 3291 | When you send a patch, please include the following information with |
3291 | it: | 3292 | it: |
3292 | 3293 | ||
3293 | * For bug fixes: a description of the bug and how your patch fixes | 3294 | * For bug fixes: a description of the bug and how your patch fixes |
3294 | this bug. Please try to include a way of demonstrating that the | 3295 | this bug. Please try to include a way of demonstrating that the |
3295 | patch actually fixes something. | 3296 | patch actually fixes something. |
3296 | 3297 | ||
3297 | * For new features: a description of the feature and your | 3298 | * For new features: a description of the feature and your |
3298 | implementation. | 3299 | implementation. |
3299 | 3300 | ||
3300 | * A CHANGELOG entry as plaintext (separate from the patch) | 3301 | * A CHANGELOG entry as plaintext (separate from the patch) |
3301 | 3302 | ||
3302 | * For major contributions, your entry to the CREDITS file | 3303 | * For major contributions, your entry to the CREDITS file |
3303 | 3304 | ||
3304 | * When you add support for a new board, don't forget to add this | 3305 | * When you add support for a new board, don't forget to add this |
3305 | board to the MAKEALL script, too. | 3306 | board to the MAKEALL script, too. |
3306 | 3307 | ||
3307 | * If your patch adds new configuration options, don't forget to | 3308 | * If your patch adds new configuration options, don't forget to |
3308 | document these in the README file. | 3309 | document these in the README file. |
3309 | 3310 | ||
3310 | * The patch itself. If you are accessing the CVS repository use "cvs | 3311 | * The patch itself. If you are accessing the CVS repository use "cvs |
3311 | update; cvs diff -puRN"; else, use "diff -purN OLD NEW". If your | 3312 | update; cvs diff -puRN"; else, use "diff -purN OLD NEW". If your |
3312 | version of diff does not support these options, then get the latest | 3313 | version of diff does not support these options, then get the latest |
3313 | version of GNU diff. | 3314 | version of GNU diff. |
3314 | 3315 | ||
3315 | The current directory when running this command shall be the top | 3316 | The current directory when running this command shall be the top |
3316 | level directory of the U-Boot source tree, or it's parent directory | 3317 | level directory of the U-Boot source tree, or it's parent directory |
3317 | (i. e. please make sure that your patch includes sufficient | 3318 | (i. e. please make sure that your patch includes sufficient |
3318 | directory information for the affected files). | 3319 | directory information for the affected files). |
3319 | 3320 | ||
3320 | We accept patches as plain text, MIME attachments or as uuencoded | 3321 | We accept patches as plain text, MIME attachments or as uuencoded |
3321 | gzipped text. | 3322 | gzipped text. |
3322 | 3323 | ||
3323 | * If one logical set of modifications affects or creates several | 3324 | * If one logical set of modifications affects or creates several |
3324 | files, all these changes shall be submitted in a SINGLE patch file. | 3325 | files, all these changes shall be submitted in a SINGLE patch file. |
3325 | 3326 | ||
3326 | * Changesets that contain different, unrelated modifications shall be | 3327 | * Changesets that contain different, unrelated modifications shall be |
3327 | submitted as SEPARATE patches, one patch per changeset. | 3328 | submitted as SEPARATE patches, one patch per changeset. |
3328 | 3329 | ||
3329 | 3330 | ||
3330 | Notes: | 3331 | Notes: |
3331 | 3332 | ||
3332 | * Before sending the patch, run the MAKEALL script on your patched | 3333 | * Before sending the patch, run the MAKEALL script on your patched |
3333 | source tree and make sure that no errors or warnings are reported | 3334 | source tree and make sure that no errors or warnings are reported |
3334 | for any of the boards. | 3335 | for any of the boards. |
3335 | 3336 | ||
3336 | * Keep your modifications to the necessary minimum: A patch | 3337 | * Keep your modifications to the necessary minimum: A patch |
3337 | containing several unrelated changes or arbitrary reformats will be | 3338 | containing several unrelated changes or arbitrary reformats will be |
3338 | returned with a request to re-formatting / split it. | 3339 | returned with a request to re-formatting / split it. |
3339 | 3340 | ||
3340 | * If you modify existing code, make sure that your new code does not | 3341 | * If you modify existing code, make sure that your new code does not |
3341 | add to the memory footprint of the code ;-) Small is beautiful! | 3342 | add to the memory footprint of the code ;-) Small is beautiful! |
3342 | When adding new features, these should compile conditionally only | 3343 | When adding new features, these should compile conditionally only |
3343 | (using #ifdef), and the resulting code with the new feature | 3344 | (using #ifdef), and the resulting code with the new feature |
3344 | disabled must not need more memory than the old code without your | 3345 | disabled must not need more memory than the old code without your |
3345 | modification. | 3346 | modification. |
3346 | 3347 |
drivers/cfi_flash.c
1 | /* | 1 | /* |
2 | * (C) Copyright 2002-2004 | 2 | * (C) Copyright 2002-2004 |
3 | * Brad Kemp, Seranoa Networks, Brad.Kemp@seranoa.com | 3 | * Brad Kemp, Seranoa Networks, Brad.Kemp@seranoa.com |
4 | * | 4 | * |
5 | * Copyright (C) 2003 Arabella Software Ltd. | 5 | * Copyright (C) 2003 Arabella Software Ltd. |
6 | * Yuli Barcohen <yuli@arabellasw.com> | 6 | * Yuli Barcohen <yuli@arabellasw.com> |
7 | * Modified to work with AMD flashes | 7 | * Modified to work with AMD flashes |
8 | * | 8 | * |
9 | * Copyright (C) 2004 | 9 | * Copyright (C) 2004 |
10 | * Ed Okerson | 10 | * Ed Okerson |
11 | * Modified to work with little-endian systems. | 11 | * Modified to work with little-endian systems. |
12 | * | 12 | * |
13 | * See file CREDITS for list of people who contributed to this | 13 | * See file CREDITS for list of people who contributed to this |
14 | * project. | 14 | * project. |
15 | * | 15 | * |
16 | * This program is free software; you can redistribute it and/or | 16 | * This program is free software; you can redistribute it and/or |
17 | * modify it under the terms of the GNU General Public License as | 17 | * modify it under the terms of the GNU General Public License as |
18 | * published by the Free Software Foundation; either version 2 of | 18 | * published by the Free Software Foundation; either version 2 of |
19 | * the License, or (at your option) any later version. | 19 | * the License, or (at your option) any later version. |
20 | * | 20 | * |
21 | * This program is distributed in the hope that it will be useful, | 21 | * This program is distributed in the hope that it will be useful, |
22 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 22 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
23 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 23 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
24 | * GNU General Public License for more details. | 24 | * GNU General Public License for more details. |
25 | * | 25 | * |
26 | * You should have received a copy of the GNU General Public License | 26 | * You should have received a copy of the GNU General Public License |
27 | * along with this program; if not, write to the Free Software | 27 | * along with this program; if not, write to the Free Software |
28 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 28 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
29 | * MA 02111-1307 USA | 29 | * MA 02111-1307 USA |
30 | * | 30 | * |
31 | * History | 31 | * History |
32 | * 01/20/2004 - combined variants of original driver. | 32 | * 01/20/2004 - combined variants of original driver. |
33 | * 01/22/2004 - Write performance enhancements for parallel chips (Tolunay) | 33 | * 01/22/2004 - Write performance enhancements for parallel chips (Tolunay) |
34 | * 01/23/2004 - Support for x8/x16 chips (Rune Raknerud) | 34 | * 01/23/2004 - Support for x8/x16 chips (Rune Raknerud) |
35 | * 01/27/2004 - Little endian support Ed Okerson | 35 | * 01/27/2004 - Little endian support Ed Okerson |
36 | * | 36 | * |
37 | * Tested Architectures | 37 | * Tested Architectures |
38 | * Port Width Chip Width # of banks Flash Chip Board | 38 | * Port Width Chip Width # of banks Flash Chip Board |
39 | * 32 16 1 28F128J3 seranoa/eagle | 39 | * 32 16 1 28F128J3 seranoa/eagle |
40 | * 64 16 1 28F128J3 seranoa/falcon | 40 | * 64 16 1 28F128J3 seranoa/falcon |
41 | * | 41 | * |
42 | */ | 42 | */ |
43 | 43 | ||
44 | /* The DEBUG define must be before common to enable debugging */ | 44 | /* The DEBUG define must be before common to enable debugging */ |
45 | /* #define DEBUG */ | 45 | /* #define DEBUG */ |
46 | 46 | ||
47 | #include <common.h> | 47 | #include <common.h> |
48 | #include <asm/processor.h> | 48 | #include <asm/processor.h> |
49 | #include <asm/byteorder.h> | ||
49 | #include <linux/byteorder/swab.h> | 50 | #include <linux/byteorder/swab.h> |
50 | #ifdef CFG_FLASH_CFI_DRIVER | 51 | #ifdef CFG_FLASH_CFI_DRIVER |
51 | 52 | ||
52 | /* | 53 | /* |
53 | * This file implements a Common Flash Interface (CFI) driver for U-Boot. | 54 | * This file implements a Common Flash Interface (CFI) driver for U-Boot. |
54 | * The width of the port and the width of the chips are determined at initialization. | 55 | * The width of the port and the width of the chips are determined at initialization. |
55 | * These widths are used to calculate the address for access CFI data structures. | 56 | * These widths are used to calculate the address for access CFI data structures. |
56 | * It has been tested on an Intel Strataflash implementation and AMD 29F016D. | 57 | * It has been tested on an Intel Strataflash implementation and AMD 29F016D. |
57 | * | 58 | * |
58 | * References | 59 | * References |
59 | * JEDEC Standard JESD68 - Common Flash Interface (CFI) | 60 | * JEDEC Standard JESD68 - Common Flash Interface (CFI) |
60 | * JEDEC Standard JEP137-A Common Flash Interface (CFI) ID Codes | 61 | * JEDEC Standard JEP137-A Common Flash Interface (CFI) ID Codes |
61 | * Intel Application Note 646 Common Flash Interface (CFI) and Command Sets | 62 | * Intel Application Note 646 Common Flash Interface (CFI) and Command Sets |
62 | * Intel 290667-008 3 Volt Intel StrataFlash Memory datasheet | 63 | * Intel 290667-008 3 Volt Intel StrataFlash Memory datasheet |
63 | * | 64 | * |
64 | * TODO | 65 | * TODO |
65 | * | 66 | * |
66 | * Use Primary Extended Query table (PRI) and Alternate Algorithm Query | 67 | * Use Primary Extended Query table (PRI) and Alternate Algorithm Query |
67 | * Table (ALT) to determine if protection is available | 68 | * Table (ALT) to determine if protection is available |
68 | * | 69 | * |
69 | * Add support for other command sets Use the PRI and ALT to determine command set | 70 | * Add support for other command sets Use the PRI and ALT to determine command set |
70 | * Verify erase and program timeouts. | 71 | * Verify erase and program timeouts. |
71 | */ | 72 | */ |
72 | 73 | ||
73 | #ifndef CFG_FLASH_BANKS_LIST | 74 | #ifndef CFG_FLASH_BANKS_LIST |
74 | #define CFG_FLASH_BANKS_LIST { CFG_FLASH_BASE } | 75 | #define CFG_FLASH_BANKS_LIST { CFG_FLASH_BASE } |
75 | #endif | 76 | #endif |
76 | 77 | ||
77 | #define FLASH_CMD_CFI 0x98 | 78 | #define FLASH_CMD_CFI 0x98 |
78 | #define FLASH_CMD_READ_ID 0x90 | 79 | #define FLASH_CMD_READ_ID 0x90 |
79 | #define FLASH_CMD_RESET 0xff | 80 | #define FLASH_CMD_RESET 0xff |
80 | #define FLASH_CMD_BLOCK_ERASE 0x20 | 81 | #define FLASH_CMD_BLOCK_ERASE 0x20 |
81 | #define FLASH_CMD_ERASE_CONFIRM 0xD0 | 82 | #define FLASH_CMD_ERASE_CONFIRM 0xD0 |
82 | #define FLASH_CMD_WRITE 0x40 | 83 | #define FLASH_CMD_WRITE 0x40 |
83 | #define FLASH_CMD_PROTECT 0x60 | 84 | #define FLASH_CMD_PROTECT 0x60 |
84 | #define FLASH_CMD_PROTECT_SET 0x01 | 85 | #define FLASH_CMD_PROTECT_SET 0x01 |
85 | #define FLASH_CMD_PROTECT_CLEAR 0xD0 | 86 | #define FLASH_CMD_PROTECT_CLEAR 0xD0 |
86 | #define FLASH_CMD_CLEAR_STATUS 0x50 | 87 | #define FLASH_CMD_CLEAR_STATUS 0x50 |
87 | #define FLASH_CMD_WRITE_TO_BUFFER 0xE8 | 88 | #define FLASH_CMD_WRITE_TO_BUFFER 0xE8 |
88 | #define FLASH_CMD_WRITE_BUFFER_CONFIRM 0xD0 | 89 | #define FLASH_CMD_WRITE_BUFFER_CONFIRM 0xD0 |
89 | 90 | ||
90 | #define FLASH_STATUS_DONE 0x80 | 91 | #define FLASH_STATUS_DONE 0x80 |
91 | #define FLASH_STATUS_ESS 0x40 | 92 | #define FLASH_STATUS_ESS 0x40 |
92 | #define FLASH_STATUS_ECLBS 0x20 | 93 | #define FLASH_STATUS_ECLBS 0x20 |
93 | #define FLASH_STATUS_PSLBS 0x10 | 94 | #define FLASH_STATUS_PSLBS 0x10 |
94 | #define FLASH_STATUS_VPENS 0x08 | 95 | #define FLASH_STATUS_VPENS 0x08 |
95 | #define FLASH_STATUS_PSS 0x04 | 96 | #define FLASH_STATUS_PSS 0x04 |
96 | #define FLASH_STATUS_DPS 0x02 | 97 | #define FLASH_STATUS_DPS 0x02 |
97 | #define FLASH_STATUS_R 0x01 | 98 | #define FLASH_STATUS_R 0x01 |
98 | #define FLASH_STATUS_PROTECT 0x01 | 99 | #define FLASH_STATUS_PROTECT 0x01 |
99 | 100 | ||
100 | #define AMD_CMD_RESET 0xF0 | 101 | #define AMD_CMD_RESET 0xF0 |
101 | #define AMD_CMD_WRITE 0xA0 | 102 | #define AMD_CMD_WRITE 0xA0 |
102 | #define AMD_CMD_ERASE_START 0x80 | 103 | #define AMD_CMD_ERASE_START 0x80 |
103 | #define AMD_CMD_ERASE_SECTOR 0x30 | 104 | #define AMD_CMD_ERASE_SECTOR 0x30 |
104 | #define AMD_CMD_UNLOCK_START 0xAA | 105 | #define AMD_CMD_UNLOCK_START 0xAA |
105 | #define AMD_CMD_UNLOCK_ACK 0x55 | 106 | #define AMD_CMD_UNLOCK_ACK 0x55 |
106 | 107 | ||
107 | #define AMD_STATUS_TOGGLE 0x40 | 108 | #define AMD_STATUS_TOGGLE 0x40 |
108 | #define AMD_STATUS_ERROR 0x20 | 109 | #define AMD_STATUS_ERROR 0x20 |
109 | #define AMD_ADDR_ERASE_START 0x555 | 110 | #define AMD_ADDR_ERASE_START 0x555 |
110 | #define AMD_ADDR_START 0x555 | 111 | #define AMD_ADDR_START 0x555 |
111 | #define AMD_ADDR_ACK 0x2AA | 112 | #define AMD_ADDR_ACK 0x2AA |
112 | 113 | ||
113 | #define FLASH_OFFSET_CFI 0x55 | 114 | #define FLASH_OFFSET_CFI 0x55 |
114 | #define FLASH_OFFSET_CFI_RESP 0x10 | 115 | #define FLASH_OFFSET_CFI_RESP 0x10 |
115 | #define FLASH_OFFSET_PRIMARY_VENDOR 0x13 | 116 | #define FLASH_OFFSET_PRIMARY_VENDOR 0x13 |
116 | #define FLASH_OFFSET_WTOUT 0x1F | 117 | #define FLASH_OFFSET_WTOUT 0x1F |
117 | #define FLASH_OFFSET_WBTOUT 0x20 | 118 | #define FLASH_OFFSET_WBTOUT 0x20 |
118 | #define FLASH_OFFSET_ETOUT 0x21 | 119 | #define FLASH_OFFSET_ETOUT 0x21 |
119 | #define FLASH_OFFSET_CETOUT 0x22 | 120 | #define FLASH_OFFSET_CETOUT 0x22 |
120 | #define FLASH_OFFSET_WMAX_TOUT 0x23 | 121 | #define FLASH_OFFSET_WMAX_TOUT 0x23 |
121 | #define FLASH_OFFSET_WBMAX_TOUT 0x24 | 122 | #define FLASH_OFFSET_WBMAX_TOUT 0x24 |
122 | #define FLASH_OFFSET_EMAX_TOUT 0x25 | 123 | #define FLASH_OFFSET_EMAX_TOUT 0x25 |
123 | #define FLASH_OFFSET_CEMAX_TOUT 0x26 | 124 | #define FLASH_OFFSET_CEMAX_TOUT 0x26 |
124 | #define FLASH_OFFSET_SIZE 0x27 | 125 | #define FLASH_OFFSET_SIZE 0x27 |
125 | #define FLASH_OFFSET_INTERFACE 0x28 | 126 | #define FLASH_OFFSET_INTERFACE 0x28 |
126 | #define FLASH_OFFSET_BUFFER_SIZE 0x2A | 127 | #define FLASH_OFFSET_BUFFER_SIZE 0x2A |
127 | #define FLASH_OFFSET_NUM_ERASE_REGIONS 0x2C | 128 | #define FLASH_OFFSET_NUM_ERASE_REGIONS 0x2C |
128 | #define FLASH_OFFSET_ERASE_REGIONS 0x2D | 129 | #define FLASH_OFFSET_ERASE_REGIONS 0x2D |
129 | #define FLASH_OFFSET_PROTECT 0x02 | 130 | #define FLASH_OFFSET_PROTECT 0x02 |
130 | #define FLASH_OFFSET_USER_PROTECTION 0x85 | 131 | #define FLASH_OFFSET_USER_PROTECTION 0x85 |
131 | #define FLASH_OFFSET_INTEL_PROTECTION 0x81 | 132 | #define FLASH_OFFSET_INTEL_PROTECTION 0x81 |
132 | 133 | ||
133 | 134 | ||
134 | #define FLASH_MAN_CFI 0x01000000 | 135 | #define FLASH_MAN_CFI 0x01000000 |
135 | 136 | ||
136 | #define CFI_CMDSET_NONE 0 | 137 | #define CFI_CMDSET_NONE 0 |
137 | #define CFI_CMDSET_INTEL_EXTENDED 1 | 138 | #define CFI_CMDSET_INTEL_EXTENDED 1 |
138 | #define CFI_CMDSET_AMD_STANDARD 2 | 139 | #define CFI_CMDSET_AMD_STANDARD 2 |
139 | #define CFI_CMDSET_INTEL_STANDARD 3 | 140 | #define CFI_CMDSET_INTEL_STANDARD 3 |
140 | #define CFI_CMDSET_AMD_EXTENDED 4 | 141 | #define CFI_CMDSET_AMD_EXTENDED 4 |
141 | #define CFI_CMDSET_MITSU_STANDARD 256 | 142 | #define CFI_CMDSET_MITSU_STANDARD 256 |
142 | #define CFI_CMDSET_MITSU_EXTENDED 257 | 143 | #define CFI_CMDSET_MITSU_EXTENDED 257 |
143 | #define CFI_CMDSET_SST 258 | 144 | #define CFI_CMDSET_SST 258 |
144 | 145 | ||
145 | 146 | ||
146 | typedef union { | 147 | typedef union { |
147 | unsigned char c; | 148 | unsigned char c; |
148 | unsigned short w; | 149 | unsigned short w; |
149 | unsigned long l; | 150 | unsigned long l; |
150 | unsigned long long ll; | 151 | unsigned long long ll; |
151 | } cfiword_t; | 152 | } cfiword_t; |
152 | 153 | ||
153 | typedef union { | 154 | typedef union { |
154 | volatile unsigned char *cp; | 155 | volatile unsigned char *cp; |
155 | volatile unsigned short *wp; | 156 | volatile unsigned short *wp; |
156 | volatile unsigned long *lp; | 157 | volatile unsigned long *lp; |
157 | volatile unsigned long long *llp; | 158 | volatile unsigned long long *llp; |
158 | } cfiptr_t; | 159 | } cfiptr_t; |
159 | 160 | ||
160 | #define NUM_ERASE_REGIONS 4 | 161 | #define NUM_ERASE_REGIONS 4 |
161 | 162 | ||
162 | static ulong bank_base[CFG_MAX_FLASH_BANKS] = CFG_FLASH_BANKS_LIST; | 163 | static ulong bank_base[CFG_MAX_FLASH_BANKS] = CFG_FLASH_BANKS_LIST; |
163 | 164 | ||
164 | flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */ | 165 | flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */ |
165 | 166 | ||
166 | /*----------------------------------------------------------------------- | 167 | /*----------------------------------------------------------------------- |
167 | * Functions | 168 | * Functions |
168 | */ | 169 | */ |
169 | 170 | ||
170 | typedef unsigned long flash_sect_t; | 171 | typedef unsigned long flash_sect_t; |
171 | 172 | ||
172 | static void flash_add_byte (flash_info_t * info, cfiword_t * cword, uchar c); | 173 | static void flash_add_byte (flash_info_t * info, cfiword_t * cword, uchar c); |
173 | static void flash_make_cmd (flash_info_t * info, uchar cmd, void *cmdbuf); | 174 | static void flash_make_cmd (flash_info_t * info, uchar cmd, void *cmdbuf); |
174 | static void flash_write_cmd (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); | 175 | static void flash_write_cmd (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); |
175 | static void flash_unlock_seq (flash_info_t * info, flash_sect_t sect); | 176 | static void flash_unlock_seq (flash_info_t * info, flash_sect_t sect); |
176 | static int flash_isequal (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); | 177 | static int flash_isequal (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); |
177 | static int flash_isset (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); | 178 | static int flash_isset (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); |
178 | static int flash_toggle (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); | 179 | static int flash_toggle (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd); |
179 | static int flash_detect_cfi (flash_info_t * info); | 180 | static int flash_detect_cfi (flash_info_t * info); |
180 | static ulong flash_get_size (ulong base, int banknum); | 181 | static ulong flash_get_size (ulong base, int banknum); |
181 | static int flash_write_cfiword (flash_info_t * info, ulong dest, cfiword_t cword); | 182 | static int flash_write_cfiword (flash_info_t * info, ulong dest, cfiword_t cword); |
182 | static int flash_full_status_check (flash_info_t * info, flash_sect_t sector, | 183 | static int flash_full_status_check (flash_info_t * info, flash_sect_t sector, |
183 | ulong tout, char *prompt); | 184 | ulong tout, char *prompt); |
184 | #ifdef CFG_FLASH_USE_BUFFER_WRITE | 185 | #ifdef CFG_FLASH_USE_BUFFER_WRITE |
185 | static int flash_write_cfibuffer (flash_info_t * info, ulong dest, uchar * cp, int len); | 186 | static int flash_write_cfibuffer (flash_info_t * info, ulong dest, uchar * cp, int len); |
186 | #endif | 187 | #endif |
187 | 188 | ||
188 | /*----------------------------------------------------------------------- | 189 | /*----------------------------------------------------------------------- |
189 | * create an address based on the offset and the port width | 190 | * create an address based on the offset and the port width |
190 | */ | 191 | */ |
191 | inline uchar *flash_make_addr (flash_info_t * info, flash_sect_t sect, uint offset) | 192 | inline uchar *flash_make_addr (flash_info_t * info, flash_sect_t sect, uint offset) |
192 | { | 193 | { |
193 | return ((uchar *) (info->start[sect] + (offset * info->portwidth))); | 194 | return ((uchar *) (info->start[sect] + (offset * info->portwidth))); |
194 | } | 195 | } |
195 | 196 | ||
196 | #ifdef DEBUG | 197 | #ifdef DEBUG |
197 | /*----------------------------------------------------------------------- | 198 | /*----------------------------------------------------------------------- |
198 | * Debug support | 199 | * Debug support |
199 | */ | 200 | */ |
200 | void print_longlong (char *str, unsigned long long data) | 201 | void print_longlong (char *str, unsigned long long data) |
201 | { | 202 | { |
202 | int i; | 203 | int i; |
203 | char *cp; | 204 | char *cp; |
204 | 205 | ||
205 | cp = (unsigned char *) &data; | 206 | cp = (unsigned char *) &data; |
206 | for (i = 0; i < 8; i++) | 207 | for (i = 0; i < 8; i++) |
207 | sprintf (&str[i * 2], "%2.2x", *cp++); | 208 | sprintf (&str[i * 2], "%2.2x", *cp++); |
208 | } | 209 | } |
209 | static void flash_printqry (flash_info_t * info, flash_sect_t sect) | 210 | static void flash_printqry (flash_info_t * info, flash_sect_t sect) |
210 | { | 211 | { |
211 | cfiptr_t cptr; | 212 | cfiptr_t cptr; |
212 | int x, y; | 213 | int x, y; |
213 | 214 | ||
214 | for (x = 0; x < 0x40; x += 16 / info->portwidth) { | 215 | for (x = 0; x < 0x40; x += 16 / info->portwidth) { |
215 | cptr.cp = | 216 | cptr.cp = |
216 | flash_make_addr (info, sect, | 217 | flash_make_addr (info, sect, |
217 | x + FLASH_OFFSET_CFI_RESP); | 218 | x + FLASH_OFFSET_CFI_RESP); |
218 | debug ("%p : ", cptr.cp); | 219 | debug ("%p : ", cptr.cp); |
219 | for (y = 0; y < 16; y++) { | 220 | for (y = 0; y < 16; y++) { |
220 | debug ("%2.2x ", cptr.cp[y]); | 221 | debug ("%2.2x ", cptr.cp[y]); |
221 | } | 222 | } |
222 | debug (" "); | 223 | debug (" "); |
223 | for (y = 0; y < 16; y++) { | 224 | for (y = 0; y < 16; y++) { |
224 | if (cptr.cp[y] >= 0x20 && cptr.cp[y] <= 0x7e) { | 225 | if (cptr.cp[y] >= 0x20 && cptr.cp[y] <= 0x7e) { |
225 | debug ("%c", cptr.cp[y]); | 226 | debug ("%c", cptr.cp[y]); |
226 | } else { | 227 | } else { |
227 | debug ("."); | 228 | debug ("."); |
228 | } | 229 | } |
229 | } | 230 | } |
230 | debug ("\n"); | 231 | debug ("\n"); |
231 | } | 232 | } |
232 | } | 233 | } |
233 | #endif | 234 | #endif |
234 | 235 | ||
235 | 236 | ||
236 | /*----------------------------------------------------------------------- | 237 | /*----------------------------------------------------------------------- |
237 | * read a character at a port width address | 238 | * read a character at a port width address |
238 | */ | 239 | */ |
239 | inline uchar flash_read_uchar (flash_info_t * info, uint offset) | 240 | inline uchar flash_read_uchar (flash_info_t * info, uint offset) |
240 | { | 241 | { |
241 | uchar *cp; | 242 | uchar *cp; |
242 | 243 | ||
243 | cp = flash_make_addr (info, 0, offset); | 244 | cp = flash_make_addr (info, 0, offset); |
244 | #if defined(__LITTLE_ENDIAN) | 245 | #if defined(__LITTLE_ENDIAN) |
245 | return (cp[0]); | 246 | return (cp[0]); |
246 | #else | 247 | #else |
247 | return (cp[info->portwidth - 1]); | 248 | return (cp[info->portwidth - 1]); |
248 | #endif | 249 | #endif |
249 | } | 250 | } |
250 | 251 | ||
251 | /*----------------------------------------------------------------------- | 252 | /*----------------------------------------------------------------------- |
252 | * read a short word by swapping for ppc format. | 253 | * read a short word by swapping for ppc format. |
253 | */ | 254 | */ |
254 | ushort flash_read_ushort (flash_info_t * info, flash_sect_t sect, uint offset) | 255 | ushort flash_read_ushort (flash_info_t * info, flash_sect_t sect, uint offset) |
255 | { | 256 | { |
256 | uchar *addr; | 257 | uchar *addr; |
257 | ushort retval; | 258 | ushort retval; |
258 | 259 | ||
259 | #ifdef DEBUG | 260 | #ifdef DEBUG |
260 | int x; | 261 | int x; |
261 | #endif | 262 | #endif |
262 | addr = flash_make_addr (info, sect, offset); | 263 | addr = flash_make_addr (info, sect, offset); |
263 | 264 | ||
264 | #ifdef DEBUG | 265 | #ifdef DEBUG |
265 | debug ("ushort addr is at %p info->portwidth = %d\n", addr, | 266 | debug ("ushort addr is at %p info->portwidth = %d\n", addr, |
266 | info->portwidth); | 267 | info->portwidth); |
267 | for (x = 0; x < 2 * info->portwidth; x++) { | 268 | for (x = 0; x < 2 * info->portwidth; x++) { |
268 | debug ("addr[%x] = 0x%x\n", x, addr[x]); | 269 | debug ("addr[%x] = 0x%x\n", x, addr[x]); |
269 | } | 270 | } |
270 | #endif | 271 | #endif |
271 | #if defined(__LITTLE_ENDIAN) | 272 | #if defined(__LITTLE_ENDIAN) |
272 | retval = ((addr[(info->portwidth)] << 8) | addr[0]); | 273 | retval = ((addr[(info->portwidth)] << 8) | addr[0]); |
273 | #else | 274 | #else |
274 | retval = ((addr[(2 * info->portwidth) - 1] << 8) | | 275 | retval = ((addr[(2 * info->portwidth) - 1] << 8) | |
275 | addr[info->portwidth - 1]); | 276 | addr[info->portwidth - 1]); |
276 | #endif | 277 | #endif |
277 | 278 | ||
278 | debug ("retval = 0x%x\n", retval); | 279 | debug ("retval = 0x%x\n", retval); |
279 | return retval; | 280 | return retval; |
280 | } | 281 | } |
281 | 282 | ||
282 | /*----------------------------------------------------------------------- | 283 | /*----------------------------------------------------------------------- |
283 | * read a long word by picking the least significant byte of each maiximum | 284 | * read a long word by picking the least significant byte of each maiximum |
284 | * port size word. Swap for ppc format. | 285 | * port size word. Swap for ppc format. |
285 | */ | 286 | */ |
286 | ulong flash_read_long (flash_info_t * info, flash_sect_t sect, uint offset) | 287 | ulong flash_read_long (flash_info_t * info, flash_sect_t sect, uint offset) |
287 | { | 288 | { |
288 | uchar *addr; | 289 | uchar *addr; |
289 | ulong retval; | 290 | ulong retval; |
290 | 291 | ||
291 | #ifdef DEBUG | 292 | #ifdef DEBUG |
292 | int x; | 293 | int x; |
293 | #endif | 294 | #endif |
294 | addr = flash_make_addr (info, sect, offset); | 295 | addr = flash_make_addr (info, sect, offset); |
295 | 296 | ||
296 | #ifdef DEBUG | 297 | #ifdef DEBUG |
297 | debug ("long addr is at %p info->portwidth = %d\n", addr, | 298 | debug ("long addr is at %p info->portwidth = %d\n", addr, |
298 | info->portwidth); | 299 | info->portwidth); |
299 | for (x = 0; x < 4 * info->portwidth; x++) { | 300 | for (x = 0; x < 4 * info->portwidth; x++) { |
300 | debug ("addr[%x] = 0x%x\n", x, addr[x]); | 301 | debug ("addr[%x] = 0x%x\n", x, addr[x]); |
301 | } | 302 | } |
302 | #endif | 303 | #endif |
303 | #if defined(__LITTLE_ENDIAN) | 304 | #if defined(__LITTLE_ENDIAN) |
304 | retval = (addr[0] << 16) | (addr[(info->portwidth)] << 24) | | 305 | retval = (addr[0] << 16) | (addr[(info->portwidth)] << 24) | |
305 | (addr[(2 * info->portwidth)]) | (addr[(3 * info->portwidth)] << 8); | 306 | (addr[(2 * info->portwidth)]) | (addr[(3 * info->portwidth)] << 8); |
306 | #else | 307 | #else |
307 | retval = (addr[(2 * info->portwidth) - 1] << 24) | | 308 | retval = (addr[(2 * info->portwidth) - 1] << 24) | |
308 | (addr[(info->portwidth) - 1] << 16) | | 309 | (addr[(info->portwidth) - 1] << 16) | |
309 | (addr[(4 * info->portwidth) - 1] << 8) | | 310 | (addr[(4 * info->portwidth) - 1] << 8) | |
310 | addr[(3 * info->portwidth) - 1]; | 311 | addr[(3 * info->portwidth) - 1]; |
311 | #endif | 312 | #endif |
312 | return retval; | 313 | return retval; |
313 | } | 314 | } |
314 | 315 | ||
315 | /*----------------------------------------------------------------------- | 316 | /*----------------------------------------------------------------------- |
316 | */ | 317 | */ |
317 | unsigned long flash_init (void) | 318 | unsigned long flash_init (void) |
318 | { | 319 | { |
319 | unsigned long size = 0; | 320 | unsigned long size = 0; |
320 | int i; | 321 | int i; |
321 | 322 | ||
322 | /* Init: no FLASHes known */ | 323 | /* Init: no FLASHes known */ |
323 | for (i = 0; i < CFG_MAX_FLASH_BANKS; ++i) { | 324 | for (i = 0; i < CFG_MAX_FLASH_BANKS; ++i) { |
324 | flash_info[i].flash_id = FLASH_UNKNOWN; | 325 | flash_info[i].flash_id = FLASH_UNKNOWN; |
325 | size += flash_info[i].size = flash_get_size (bank_base[i], i); | 326 | size += flash_info[i].size = flash_get_size (bank_base[i], i); |
326 | if (flash_info[i].flash_id == FLASH_UNKNOWN) { | 327 | if (flash_info[i].flash_id == FLASH_UNKNOWN) { |
327 | printf ("## Unknown FLASH on Bank %d - Size = 0x%08lx = %ld MB\n", | 328 | printf ("## Unknown FLASH on Bank %d - Size = 0x%08lx = %ld MB\n", |
328 | i, flash_info[i].size, flash_info[i].size << 20); | 329 | i, flash_info[i].size, flash_info[i].size << 20); |
329 | } | 330 | } |
330 | } | 331 | } |
331 | 332 | ||
332 | /* Monitor protection ON by default */ | 333 | /* Monitor protection ON by default */ |
333 | #if (CFG_MONITOR_BASE >= CFG_FLASH_BASE) | 334 | #if (CFG_MONITOR_BASE >= CFG_FLASH_BASE) |
334 | flash_protect (FLAG_PROTECT_SET, | 335 | flash_protect (FLAG_PROTECT_SET, |
335 | CFG_MONITOR_BASE, | 336 | CFG_MONITOR_BASE, |
336 | CFG_MONITOR_BASE + CFG_MONITOR_LEN - 1, | 337 | CFG_MONITOR_BASE + CFG_MONITOR_LEN - 1, |
337 | &flash_info[0]); | 338 | &flash_info[0]); |
338 | #endif | 339 | #endif |
339 | 340 | ||
340 | return (size); | 341 | return (size); |
341 | } | 342 | } |
342 | 343 | ||
343 | /*----------------------------------------------------------------------- | 344 | /*----------------------------------------------------------------------- |
344 | */ | 345 | */ |
345 | int flash_erase (flash_info_t * info, int s_first, int s_last) | 346 | int flash_erase (flash_info_t * info, int s_first, int s_last) |
346 | { | 347 | { |
347 | int rcode = 0; | 348 | int rcode = 0; |
348 | int prot; | 349 | int prot; |
349 | flash_sect_t sect; | 350 | flash_sect_t sect; |
350 | 351 | ||
351 | if (info->flash_id != FLASH_MAN_CFI) { | 352 | if (info->flash_id != FLASH_MAN_CFI) { |
352 | puts ("Can't erase unknown flash type - aborted\n"); | 353 | puts ("Can't erase unknown flash type - aborted\n"); |
353 | return 1; | 354 | return 1; |
354 | } | 355 | } |
355 | if ((s_first < 0) || (s_first > s_last)) { | 356 | if ((s_first < 0) || (s_first > s_last)) { |
356 | puts ("- no sectors to erase\n"); | 357 | puts ("- no sectors to erase\n"); |
357 | return 1; | 358 | return 1; |
358 | } | 359 | } |
359 | 360 | ||
360 | prot = 0; | 361 | prot = 0; |
361 | for (sect = s_first; sect <= s_last; ++sect) { | 362 | for (sect = s_first; sect <= s_last; ++sect) { |
362 | if (info->protect[sect]) { | 363 | if (info->protect[sect]) { |
363 | prot++; | 364 | prot++; |
364 | } | 365 | } |
365 | } | 366 | } |
366 | if (prot) { | 367 | if (prot) { |
367 | printf ("- Warning: %d protected sectors will not be erased!\n", prot); | 368 | printf ("- Warning: %d protected sectors will not be erased!\n", prot); |
368 | } else { | 369 | } else { |
369 | putc ('\n'); | 370 | putc ('\n'); |
370 | } | 371 | } |
371 | 372 | ||
372 | 373 | ||
373 | for (sect = s_first; sect <= s_last; sect++) { | 374 | for (sect = s_first; sect <= s_last; sect++) { |
374 | if (info->protect[sect] == 0) { /* not protected */ | 375 | if (info->protect[sect] == 0) { /* not protected */ |
375 | switch (info->vendor) { | 376 | switch (info->vendor) { |
376 | case CFI_CMDSET_INTEL_STANDARD: | 377 | case CFI_CMDSET_INTEL_STANDARD: |
377 | case CFI_CMDSET_INTEL_EXTENDED: | 378 | case CFI_CMDSET_INTEL_EXTENDED: |
378 | flash_write_cmd (info, sect, 0, FLASH_CMD_CLEAR_STATUS); | 379 | flash_write_cmd (info, sect, 0, FLASH_CMD_CLEAR_STATUS); |
379 | flash_write_cmd (info, sect, 0, FLASH_CMD_BLOCK_ERASE); | 380 | flash_write_cmd (info, sect, 0, FLASH_CMD_BLOCK_ERASE); |
380 | flash_write_cmd (info, sect, 0, FLASH_CMD_ERASE_CONFIRM); | 381 | flash_write_cmd (info, sect, 0, FLASH_CMD_ERASE_CONFIRM); |
381 | break; | 382 | break; |
382 | case CFI_CMDSET_AMD_STANDARD: | 383 | case CFI_CMDSET_AMD_STANDARD: |
383 | case CFI_CMDSET_AMD_EXTENDED: | 384 | case CFI_CMDSET_AMD_EXTENDED: |
384 | flash_unlock_seq (info, sect); | 385 | flash_unlock_seq (info, sect); |
385 | flash_write_cmd (info, sect, AMD_ADDR_ERASE_START, | 386 | flash_write_cmd (info, sect, AMD_ADDR_ERASE_START, |
386 | AMD_CMD_ERASE_START); | 387 | AMD_CMD_ERASE_START); |
387 | flash_unlock_seq (info, sect); | 388 | flash_unlock_seq (info, sect); |
388 | flash_write_cmd (info, sect, 0, AMD_CMD_ERASE_SECTOR); | 389 | flash_write_cmd (info, sect, 0, AMD_CMD_ERASE_SECTOR); |
389 | break; | 390 | break; |
390 | default: | 391 | default: |
391 | debug ("Unkown flash vendor %d\n", | 392 | debug ("Unkown flash vendor %d\n", |
392 | info->vendor); | 393 | info->vendor); |
393 | break; | 394 | break; |
394 | } | 395 | } |
395 | 396 | ||
396 | if (flash_full_status_check | 397 | if (flash_full_status_check |
397 | (info, sect, info->erase_blk_tout, "erase")) { | 398 | (info, sect, info->erase_blk_tout, "erase")) { |
398 | rcode = 1; | 399 | rcode = 1; |
399 | } else | 400 | } else |
400 | putc ('.'); | 401 | putc ('.'); |
401 | } | 402 | } |
402 | } | 403 | } |
403 | puts (" done\n"); | 404 | puts (" done\n"); |
404 | return rcode; | 405 | return rcode; |
405 | } | 406 | } |
406 | 407 | ||
407 | /*----------------------------------------------------------------------- | 408 | /*----------------------------------------------------------------------- |
408 | */ | 409 | */ |
409 | void flash_print_info (flash_info_t * info) | 410 | void flash_print_info (flash_info_t * info) |
410 | { | 411 | { |
411 | int i; | 412 | int i; |
412 | 413 | ||
413 | if (info->flash_id != FLASH_MAN_CFI) { | 414 | if (info->flash_id != FLASH_MAN_CFI) { |
414 | puts ("missing or unknown FLASH type\n"); | 415 | puts ("missing or unknown FLASH type\n"); |
415 | return; | 416 | return; |
416 | } | 417 | } |
417 | 418 | ||
418 | printf ("CFI conformant FLASH (%d x %d)", | 419 | printf ("CFI conformant FLASH (%d x %d)", |
419 | (info->portwidth << 3), (info->chipwidth << 3)); | 420 | (info->portwidth << 3), (info->chipwidth << 3)); |
420 | printf (" Size: %ld MB in %d Sectors\n", | 421 | printf (" Size: %ld MB in %d Sectors\n", |
421 | info->size >> 20, info->sector_count); | 422 | info->size >> 20, info->sector_count); |
422 | printf (" Erase timeout %ld ms, write timeout %ld ms, buffer write timeout %ld ms, buffer size %d\n", | 423 | printf (" Erase timeout %ld ms, write timeout %ld ms, buffer write timeout %ld ms, buffer size %d\n", |
423 | info->erase_blk_tout, | 424 | info->erase_blk_tout, |
424 | info->write_tout, | 425 | info->write_tout, |
425 | info->buffer_write_tout, | 426 | info->buffer_write_tout, |
426 | info->buffer_size); | 427 | info->buffer_size); |
427 | 428 | ||
428 | puts (" Sector Start Addresses:"); | 429 | puts (" Sector Start Addresses:"); |
429 | for (i = 0; i < info->sector_count; ++i) { | 430 | for (i = 0; i < info->sector_count; ++i) { |
430 | #ifdef CFG_FLASH_EMPTY_INFO | 431 | #ifdef CFG_FLASH_EMPTY_INFO |
431 | int k; | 432 | int k; |
432 | int size; | 433 | int size; |
433 | int erased; | 434 | int erased; |
434 | volatile unsigned long *flash; | 435 | volatile unsigned long *flash; |
435 | 436 | ||
436 | /* | 437 | /* |
437 | * Check if whole sector is erased | 438 | * Check if whole sector is erased |
438 | */ | 439 | */ |
439 | if (i != (info->sector_count - 1)) | 440 | if (i != (info->sector_count - 1)) |
440 | size = info->start[i + 1] - info->start[i]; | 441 | size = info->start[i + 1] - info->start[i]; |
441 | else | 442 | else |
442 | size = info->start[0] + info->size - info->start[i]; | 443 | size = info->start[0] + info->size - info->start[i]; |
443 | erased = 1; | 444 | erased = 1; |
444 | flash = (volatile unsigned long *) info->start[i]; | 445 | flash = (volatile unsigned long *) info->start[i]; |
445 | size = size >> 2; /* divide by 4 for longword access */ | 446 | size = size >> 2; /* divide by 4 for longword access */ |
446 | for (k = 0; k < size; k++) { | 447 | for (k = 0; k < size; k++) { |
447 | if (*flash++ != 0xffffffff) { | 448 | if (*flash++ != 0xffffffff) { |
448 | erased = 0; | 449 | erased = 0; |
449 | break; | 450 | break; |
450 | } | 451 | } |
451 | } | 452 | } |
452 | 453 | ||
453 | if ((i % 5) == 0) | 454 | if ((i % 5) == 0) |
454 | printf ("\n"); | 455 | printf ("\n"); |
455 | /* print empty and read-only info */ | 456 | /* print empty and read-only info */ |
456 | printf (" %08lX%s%s", | 457 | printf (" %08lX%s%s", |
457 | info->start[i], | 458 | info->start[i], |
458 | erased ? " E" : " ", | 459 | erased ? " E" : " ", |
459 | info->protect[i] ? "RO " : " "); | 460 | info->protect[i] ? "RO " : " "); |
460 | #else | 461 | #else |
461 | if ((i % 5) == 0) | 462 | if ((i % 5) == 0) |
462 | printf ("\n "); | 463 | printf ("\n "); |
463 | printf (" %08lX%s", | 464 | printf (" %08lX%s", |
464 | info->start[i], info->protect[i] ? " (RO)" : " "); | 465 | info->start[i], info->protect[i] ? " (RO)" : " "); |
465 | #endif | 466 | #endif |
466 | } | 467 | } |
467 | putc ('\n'); | 468 | putc ('\n'); |
468 | return; | 469 | return; |
469 | } | 470 | } |
470 | 471 | ||
471 | /*----------------------------------------------------------------------- | 472 | /*----------------------------------------------------------------------- |
472 | * Copy memory to flash, returns: | 473 | * Copy memory to flash, returns: |
473 | * 0 - OK | 474 | * 0 - OK |
474 | * 1 - write timeout | 475 | * 1 - write timeout |
475 | * 2 - Flash not erased | 476 | * 2 - Flash not erased |
476 | */ | 477 | */ |
477 | int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) | 478 | int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) |
478 | { | 479 | { |
479 | ulong wp; | 480 | ulong wp; |
480 | ulong cp; | 481 | ulong cp; |
481 | int aln; | 482 | int aln; |
482 | cfiword_t cword; | 483 | cfiword_t cword; |
483 | int i, rc; | 484 | int i, rc; |
484 | 485 | ||
485 | #ifdef CFG_FLASH_USE_BUFFER_WRITE | 486 | #ifdef CFG_FLASH_USE_BUFFER_WRITE |
486 | int buffered_size; | 487 | int buffered_size; |
487 | #endif | 488 | #endif |
488 | /* get lower aligned address */ | 489 | /* get lower aligned address */ |
489 | /* get lower aligned address */ | 490 | /* get lower aligned address */ |
490 | wp = (addr & ~(info->portwidth - 1)); | 491 | wp = (addr & ~(info->portwidth - 1)); |
491 | 492 | ||
492 | /* handle unaligned start */ | 493 | /* handle unaligned start */ |
493 | if ((aln = addr - wp) != 0) { | 494 | if ((aln = addr - wp) != 0) { |
494 | cword.l = 0; | 495 | cword.l = 0; |
495 | cp = wp; | 496 | cp = wp; |
496 | for (i = 0; i < aln; ++i, ++cp) | 497 | for (i = 0; i < aln; ++i, ++cp) |
497 | flash_add_byte (info, &cword, (*(uchar *) cp)); | 498 | flash_add_byte (info, &cword, (*(uchar *) cp)); |
498 | 499 | ||
499 | for (; (i < info->portwidth) && (cnt > 0); i++) { | 500 | for (; (i < info->portwidth) && (cnt > 0); i++) { |
500 | flash_add_byte (info, &cword, *src++); | 501 | flash_add_byte (info, &cword, *src++); |
501 | cnt--; | 502 | cnt--; |
502 | cp++; | 503 | cp++; |
503 | } | 504 | } |
504 | for (; (cnt == 0) && (i < info->portwidth); ++i, ++cp) | 505 | for (; (cnt == 0) && (i < info->portwidth); ++i, ++cp) |
505 | flash_add_byte (info, &cword, (*(uchar *) cp)); | 506 | flash_add_byte (info, &cword, (*(uchar *) cp)); |
506 | if ((rc = flash_write_cfiword (info, wp, cword)) != 0) | 507 | if ((rc = flash_write_cfiword (info, wp, cword)) != 0) |
507 | return rc; | 508 | return rc; |
508 | wp = cp; | 509 | wp = cp; |
509 | } | 510 | } |
510 | 511 | ||
511 | /* handle the aligned part */ | 512 | /* handle the aligned part */ |
512 | #ifdef CFG_FLASH_USE_BUFFER_WRITE | 513 | #ifdef CFG_FLASH_USE_BUFFER_WRITE |
513 | buffered_size = (info->portwidth / info->chipwidth); | 514 | buffered_size = (info->portwidth / info->chipwidth); |
514 | buffered_size *= info->buffer_size; | 515 | buffered_size *= info->buffer_size; |
515 | while (cnt >= info->portwidth) { | 516 | while (cnt >= info->portwidth) { |
516 | i = buffered_size > cnt ? cnt : buffered_size; | 517 | i = buffered_size > cnt ? cnt : buffered_size; |
517 | if ((rc = flash_write_cfibuffer (info, wp, src, i)) != ERR_OK) | 518 | if ((rc = flash_write_cfibuffer (info, wp, src, i)) != ERR_OK) |
518 | return rc; | 519 | return rc; |
519 | wp += i; | 520 | wp += i; |
520 | src += i; | 521 | src += i; |
521 | cnt -= i; | 522 | cnt -= i; |
522 | } | 523 | } |
523 | #else | 524 | #else |
524 | while (cnt >= info->portwidth) { | 525 | while (cnt >= info->portwidth) { |
525 | cword.l = 0; | 526 | cword.l = 0; |
526 | for (i = 0; i < info->portwidth; i++) { | 527 | for (i = 0; i < info->portwidth; i++) { |
527 | flash_add_byte (info, &cword, *src++); | 528 | flash_add_byte (info, &cword, *src++); |
528 | } | 529 | } |
529 | if ((rc = flash_write_cfiword (info, wp, cword)) != 0) | 530 | if ((rc = flash_write_cfiword (info, wp, cword)) != 0) |
530 | return rc; | 531 | return rc; |
531 | wp += info->portwidth; | 532 | wp += info->portwidth; |
532 | cnt -= info->portwidth; | 533 | cnt -= info->portwidth; |
533 | } | 534 | } |
534 | #endif /* CFG_FLASH_USE_BUFFER_WRITE */ | 535 | #endif /* CFG_FLASH_USE_BUFFER_WRITE */ |
535 | if (cnt == 0) { | 536 | if (cnt == 0) { |
536 | return (0); | 537 | return (0); |
537 | } | 538 | } |
538 | 539 | ||
539 | /* | 540 | /* |
540 | * handle unaligned tail bytes | 541 | * handle unaligned tail bytes |
541 | */ | 542 | */ |
542 | cword.l = 0; | 543 | cword.l = 0; |
543 | for (i = 0, cp = wp; (i < info->portwidth) && (cnt > 0); ++i, ++cp) { | 544 | for (i = 0, cp = wp; (i < info->portwidth) && (cnt > 0); ++i, ++cp) { |
544 | flash_add_byte (info, &cword, *src++); | 545 | flash_add_byte (info, &cword, *src++); |
545 | --cnt; | 546 | --cnt; |
546 | } | 547 | } |
547 | for (; i < info->portwidth; ++i, ++cp) { | 548 | for (; i < info->portwidth; ++i, ++cp) { |
548 | flash_add_byte (info, &cword, (*(uchar *) cp)); | 549 | flash_add_byte (info, &cword, (*(uchar *) cp)); |
549 | } | 550 | } |
550 | 551 | ||
551 | return flash_write_cfiword (info, wp, cword); | 552 | return flash_write_cfiword (info, wp, cword); |
552 | } | 553 | } |
553 | 554 | ||
554 | /*----------------------------------------------------------------------- | 555 | /*----------------------------------------------------------------------- |
555 | */ | 556 | */ |
556 | #ifdef CFG_FLASH_PROTECTION | 557 | #ifdef CFG_FLASH_PROTECTION |
557 | 558 | ||
558 | int flash_real_protect (flash_info_t * info, long sector, int prot) | 559 | int flash_real_protect (flash_info_t * info, long sector, int prot) |
559 | { | 560 | { |
560 | int retcode = 0; | 561 | int retcode = 0; |
561 | 562 | ||
562 | flash_write_cmd (info, sector, 0, FLASH_CMD_CLEAR_STATUS); | 563 | flash_write_cmd (info, sector, 0, FLASH_CMD_CLEAR_STATUS); |
563 | flash_write_cmd (info, sector, 0, FLASH_CMD_PROTECT); | 564 | flash_write_cmd (info, sector, 0, FLASH_CMD_PROTECT); |
564 | if (prot) | 565 | if (prot) |
565 | flash_write_cmd (info, sector, 0, FLASH_CMD_PROTECT_SET); | 566 | flash_write_cmd (info, sector, 0, FLASH_CMD_PROTECT_SET); |
566 | else | 567 | else |
567 | flash_write_cmd (info, sector, 0, FLASH_CMD_PROTECT_CLEAR); | 568 | flash_write_cmd (info, sector, 0, FLASH_CMD_PROTECT_CLEAR); |
568 | 569 | ||
569 | if ((retcode = | 570 | if ((retcode = |
570 | flash_full_status_check (info, sector, info->erase_blk_tout, | 571 | flash_full_status_check (info, sector, info->erase_blk_tout, |
571 | prot ? "protect" : "unprotect")) == 0) { | 572 | prot ? "protect" : "unprotect")) == 0) { |
572 | 573 | ||
573 | info->protect[sector] = prot; | 574 | info->protect[sector] = prot; |
574 | /* Intel's unprotect unprotects all locking */ | 575 | /* Intel's unprotect unprotects all locking */ |
575 | if (prot == 0) { | 576 | if (prot == 0) { |
576 | flash_sect_t i; | 577 | flash_sect_t i; |
577 | 578 | ||
578 | for (i = 0; i < info->sector_count; i++) { | 579 | for (i = 0; i < info->sector_count; i++) { |
579 | if (info->protect[i]) | 580 | if (info->protect[i]) |
580 | flash_real_protect (info, i, 1); | 581 | flash_real_protect (info, i, 1); |
581 | } | 582 | } |
582 | } | 583 | } |
583 | } | 584 | } |
584 | return retcode; | 585 | return retcode; |
585 | } | 586 | } |
586 | 587 | ||
587 | /*----------------------------------------------------------------------- | 588 | /*----------------------------------------------------------------------- |
588 | * flash_read_user_serial - read the OneTimeProgramming cells | 589 | * flash_read_user_serial - read the OneTimeProgramming cells |
589 | */ | 590 | */ |
590 | void flash_read_user_serial (flash_info_t * info, void *buffer, int offset, | 591 | void flash_read_user_serial (flash_info_t * info, void *buffer, int offset, |
591 | int len) | 592 | int len) |
592 | { | 593 | { |
593 | uchar *src; | 594 | uchar *src; |
594 | uchar *dst; | 595 | uchar *dst; |
595 | 596 | ||
596 | dst = buffer; | 597 | dst = buffer; |
597 | src = flash_make_addr (info, 0, FLASH_OFFSET_USER_PROTECTION); | 598 | src = flash_make_addr (info, 0, FLASH_OFFSET_USER_PROTECTION); |
598 | flash_write_cmd (info, 0, 0, FLASH_CMD_READ_ID); | 599 | flash_write_cmd (info, 0, 0, FLASH_CMD_READ_ID); |
599 | memcpy (dst, src + offset, len); | 600 | memcpy (dst, src + offset, len); |
600 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); | 601 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); |
601 | } | 602 | } |
602 | 603 | ||
603 | /* | 604 | /* |
604 | * flash_read_factory_serial - read the device Id from the protection area | 605 | * flash_read_factory_serial - read the device Id from the protection area |
605 | */ | 606 | */ |
606 | void flash_read_factory_serial (flash_info_t * info, void *buffer, int offset, | 607 | void flash_read_factory_serial (flash_info_t * info, void *buffer, int offset, |
607 | int len) | 608 | int len) |
608 | { | 609 | { |
609 | uchar *src; | 610 | uchar *src; |
610 | 611 | ||
611 | src = flash_make_addr (info, 0, FLASH_OFFSET_INTEL_PROTECTION); | 612 | src = flash_make_addr (info, 0, FLASH_OFFSET_INTEL_PROTECTION); |
612 | flash_write_cmd (info, 0, 0, FLASH_CMD_READ_ID); | 613 | flash_write_cmd (info, 0, 0, FLASH_CMD_READ_ID); |
613 | memcpy (buffer, src + offset, len); | 614 | memcpy (buffer, src + offset, len); |
614 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); | 615 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); |
615 | } | 616 | } |
616 | 617 | ||
617 | #endif /* CFG_FLASH_PROTECTION */ | 618 | #endif /* CFG_FLASH_PROTECTION */ |
618 | 619 | ||
619 | /* | 620 | /* |
620 | * flash_is_busy - check to see if the flash is busy | 621 | * flash_is_busy - check to see if the flash is busy |
621 | * This routine checks the status of the chip and returns true if the chip is busy | 622 | * This routine checks the status of the chip and returns true if the chip is busy |
622 | */ | 623 | */ |
623 | static int flash_is_busy (flash_info_t * info, flash_sect_t sect) | 624 | static int flash_is_busy (flash_info_t * info, flash_sect_t sect) |
624 | { | 625 | { |
625 | int retval; | 626 | int retval; |
626 | 627 | ||
627 | switch (info->vendor) { | 628 | switch (info->vendor) { |
628 | case CFI_CMDSET_INTEL_STANDARD: | 629 | case CFI_CMDSET_INTEL_STANDARD: |
629 | case CFI_CMDSET_INTEL_EXTENDED: | 630 | case CFI_CMDSET_INTEL_EXTENDED: |
630 | retval = !flash_isset (info, sect, 0, FLASH_STATUS_DONE); | 631 | retval = !flash_isset (info, sect, 0, FLASH_STATUS_DONE); |
631 | break; | 632 | break; |
632 | case CFI_CMDSET_AMD_STANDARD: | 633 | case CFI_CMDSET_AMD_STANDARD: |
633 | case CFI_CMDSET_AMD_EXTENDED: | 634 | case CFI_CMDSET_AMD_EXTENDED: |
634 | retval = flash_toggle (info, sect, 0, AMD_STATUS_TOGGLE); | 635 | retval = flash_toggle (info, sect, 0, AMD_STATUS_TOGGLE); |
635 | break; | 636 | break; |
636 | default: | 637 | default: |
637 | retval = 0; | 638 | retval = 0; |
638 | } | 639 | } |
639 | debug ("flash_is_busy: %d\n", retval); | 640 | debug ("flash_is_busy: %d\n", retval); |
640 | return retval; | 641 | return retval; |
641 | } | 642 | } |
642 | 643 | ||
643 | /*----------------------------------------------------------------------- | 644 | /*----------------------------------------------------------------------- |
644 | * wait for XSR.7 to be set. Time out with an error if it does not. | 645 | * wait for XSR.7 to be set. Time out with an error if it does not. |
645 | * This routine does not set the flash to read-array mode. | 646 | * This routine does not set the flash to read-array mode. |
646 | */ | 647 | */ |
647 | static int flash_status_check (flash_info_t * info, flash_sect_t sector, | 648 | static int flash_status_check (flash_info_t * info, flash_sect_t sector, |
648 | ulong tout, char *prompt) | 649 | ulong tout, char *prompt) |
649 | { | 650 | { |
650 | ulong start; | 651 | ulong start; |
651 | 652 | ||
652 | /* Wait for command completion */ | 653 | /* Wait for command completion */ |
653 | start = get_timer (0); | 654 | start = get_timer (0); |
654 | while (flash_is_busy (info, sector)) { | 655 | while (flash_is_busy (info, sector)) { |
655 | if (get_timer (start) > info->erase_blk_tout * CFG_HZ) { | 656 | if (get_timer (start) > info->erase_blk_tout * CFG_HZ) { |
656 | printf ("Flash %s timeout at address %lx data %lx\n", | 657 | printf ("Flash %s timeout at address %lx data %lx\n", |
657 | prompt, info->start[sector], | 658 | prompt, info->start[sector], |
658 | flash_read_long (info, sector, 0)); | 659 | flash_read_long (info, sector, 0)); |
659 | flash_write_cmd (info, sector, 0, info->cmd_reset); | 660 | flash_write_cmd (info, sector, 0, info->cmd_reset); |
660 | return ERR_TIMOUT; | 661 | return ERR_TIMOUT; |
661 | } | 662 | } |
662 | } | 663 | } |
663 | return ERR_OK; | 664 | return ERR_OK; |
664 | } | 665 | } |
665 | 666 | ||
666 | /*----------------------------------------------------------------------- | 667 | /*----------------------------------------------------------------------- |
667 | * Wait for XSR.7 to be set, if it times out print an error, otherwise do a full status check. | 668 | * Wait for XSR.7 to be set, if it times out print an error, otherwise do a full status check. |
668 | * This routine sets the flash to read-array mode. | 669 | * This routine sets the flash to read-array mode. |
669 | */ | 670 | */ |
670 | static int flash_full_status_check (flash_info_t * info, flash_sect_t sector, | 671 | static int flash_full_status_check (flash_info_t * info, flash_sect_t sector, |
671 | ulong tout, char *prompt) | 672 | ulong tout, char *prompt) |
672 | { | 673 | { |
673 | int retcode; | 674 | int retcode; |
674 | 675 | ||
675 | retcode = flash_status_check (info, sector, tout, prompt); | 676 | retcode = flash_status_check (info, sector, tout, prompt); |
676 | switch (info->vendor) { | 677 | switch (info->vendor) { |
677 | case CFI_CMDSET_INTEL_EXTENDED: | 678 | case CFI_CMDSET_INTEL_EXTENDED: |
678 | case CFI_CMDSET_INTEL_STANDARD: | 679 | case CFI_CMDSET_INTEL_STANDARD: |
679 | if ((retcode != ERR_OK) | 680 | if ((retcode != ERR_OK) |
680 | && !flash_isequal (info, sector, 0, FLASH_STATUS_DONE)) { | 681 | && !flash_isequal (info, sector, 0, FLASH_STATUS_DONE)) { |
681 | retcode = ERR_INVAL; | 682 | retcode = ERR_INVAL; |
682 | printf ("Flash %s error at address %lx\n", prompt, | 683 | printf ("Flash %s error at address %lx\n", prompt, |
683 | info->start[sector]); | 684 | info->start[sector]); |
684 | if (flash_isset (info, sector, 0, FLASH_STATUS_ECLBS | FLASH_STATUS_PSLBS)) { | 685 | if (flash_isset (info, sector, 0, FLASH_STATUS_ECLBS | FLASH_STATUS_PSLBS)) { |
685 | puts ("Command Sequence Error.\n"); | 686 | puts ("Command Sequence Error.\n"); |
686 | } else if (flash_isset (info, sector, 0, FLASH_STATUS_ECLBS)) { | 687 | } else if (flash_isset (info, sector, 0, FLASH_STATUS_ECLBS)) { |
687 | puts ("Block Erase Error.\n"); | 688 | puts ("Block Erase Error.\n"); |
688 | retcode = ERR_NOT_ERASED; | 689 | retcode = ERR_NOT_ERASED; |
689 | } else if (flash_isset (info, sector, 0, FLASH_STATUS_PSLBS)) { | 690 | } else if (flash_isset (info, sector, 0, FLASH_STATUS_PSLBS)) { |
690 | puts ("Locking Error\n"); | 691 | puts ("Locking Error\n"); |
691 | } | 692 | } |
692 | if (flash_isset (info, sector, 0, FLASH_STATUS_DPS)) { | 693 | if (flash_isset (info, sector, 0, FLASH_STATUS_DPS)) { |
693 | puts ("Block locked.\n"); | 694 | puts ("Block locked.\n"); |
694 | retcode = ERR_PROTECTED; | 695 | retcode = ERR_PROTECTED; |
695 | } | 696 | } |
696 | if (flash_isset (info, sector, 0, FLASH_STATUS_VPENS)) | 697 | if (flash_isset (info, sector, 0, FLASH_STATUS_VPENS)) |
697 | puts ("Vpp Low Error.\n"); | 698 | puts ("Vpp Low Error.\n"); |
698 | } | 699 | } |
699 | flash_write_cmd (info, sector, 0, FLASH_CMD_RESET); | 700 | flash_write_cmd (info, sector, 0, FLASH_CMD_RESET); |
700 | break; | 701 | break; |
701 | default: | 702 | default: |
702 | break; | 703 | break; |
703 | } | 704 | } |
704 | return retcode; | 705 | return retcode; |
705 | } | 706 | } |
706 | 707 | ||
707 | /*----------------------------------------------------------------------- | 708 | /*----------------------------------------------------------------------- |
708 | */ | 709 | */ |
709 | static void flash_add_byte (flash_info_t * info, cfiword_t * cword, uchar c) | 710 | static void flash_add_byte (flash_info_t * info, cfiword_t * cword, uchar c) |
710 | { | 711 | { |
711 | #if defined(__LITTLE_ENDIAN) | 712 | #if defined(__LITTLE_ENDIAN) |
712 | unsigned short w; | 713 | unsigned short w; |
713 | unsigned int l; | 714 | unsigned int l; |
714 | unsigned long long ll; | 715 | unsigned long long ll; |
715 | #endif | 716 | #endif |
716 | 717 | ||
717 | switch (info->portwidth) { | 718 | switch (info->portwidth) { |
718 | case FLASH_CFI_8BIT: | 719 | case FLASH_CFI_8BIT: |
719 | cword->c = c; | 720 | cword->c = c; |
720 | break; | 721 | break; |
721 | case FLASH_CFI_16BIT: | 722 | case FLASH_CFI_16BIT: |
722 | #if defined(__LITTLE_ENDIAN) | 723 | #if defined(__LITTLE_ENDIAN) |
723 | w = c; | 724 | w = c; |
724 | w <<= 8; | 725 | w <<= 8; |
725 | cword->w = (cword->w >> 8) | w; | 726 | cword->w = (cword->w >> 8) | w; |
726 | #else | 727 | #else |
727 | cword->w = (cword->w << 8) | c; | 728 | cword->w = (cword->w << 8) | c; |
728 | #endif | 729 | #endif |
729 | break; | 730 | break; |
730 | case FLASH_CFI_32BIT: | 731 | case FLASH_CFI_32BIT: |
731 | #if defined(__LITTLE_ENDIAN) | 732 | #if defined(__LITTLE_ENDIAN) |
732 | l = c; | 733 | l = c; |
733 | l <<= 24; | 734 | l <<= 24; |
734 | cword->l = (cword->l >> 8) | l; | 735 | cword->l = (cword->l >> 8) | l; |
735 | #else | 736 | #else |
736 | cword->l = (cword->l << 8) | c; | 737 | cword->l = (cword->l << 8) | c; |
737 | #endif | 738 | #endif |
738 | break; | 739 | break; |
739 | case FLASH_CFI_64BIT: | 740 | case FLASH_CFI_64BIT: |
740 | #if defined(__LITTLE_ENDIAN) | 741 | #if defined(__LITTLE_ENDIAN) |
741 | ll = c; | 742 | ll = c; |
742 | ll <<= 56; | 743 | ll <<= 56; |
743 | cword->ll = (cword->ll >> 8) | ll; | 744 | cword->ll = (cword->ll >> 8) | ll; |
744 | #else | 745 | #else |
745 | cword->ll = (cword->ll << 8) | c; | 746 | cword->ll = (cword->ll << 8) | c; |
746 | #endif | 747 | #endif |
747 | break; | 748 | break; |
748 | } | 749 | } |
749 | } | 750 | } |
750 | 751 | ||
751 | 752 | ||
752 | /*----------------------------------------------------------------------- | 753 | /*----------------------------------------------------------------------- |
753 | * make a proper sized command based on the port and chip widths | 754 | * make a proper sized command based on the port and chip widths |
754 | */ | 755 | */ |
755 | static void flash_make_cmd (flash_info_t * info, uchar cmd, void *cmdbuf) | 756 | static void flash_make_cmd (flash_info_t * info, uchar cmd, void *cmdbuf) |
756 | { | 757 | { |
757 | int i; | 758 | int i; |
758 | 759 | ||
759 | #if defined(__LITTLE_ENDIAN) | 760 | #if defined(__LITTLE_ENDIAN) |
760 | ushort stmpw; | 761 | ushort stmpw; |
761 | uint stmpi; | 762 | uint stmpi; |
762 | #endif | 763 | #endif |
763 | uchar *cp = (uchar *) cmdbuf; | 764 | uchar *cp = (uchar *) cmdbuf; |
764 | 765 | ||
765 | for (i = 0; i < info->portwidth; i++) | 766 | for (i = 0; i < info->portwidth; i++) |
766 | *cp++ = ((i + 1) % info->chipwidth) ? '\0' : cmd; | 767 | *cp++ = ((i + 1) % info->chipwidth) ? '\0' : cmd; |
767 | #if defined(__LITTLE_ENDIAN) | 768 | #if defined(__LITTLE_ENDIAN) |
768 | switch (info->portwidth) { | 769 | switch (info->portwidth) { |
769 | case FLASH_CFI_8BIT: | 770 | case FLASH_CFI_8BIT: |
770 | break; | 771 | break; |
771 | case FLASH_CFI_16BIT: | 772 | case FLASH_CFI_16BIT: |
772 | stmpw = *(ushort *) cmdbuf; | 773 | stmpw = *(ushort *) cmdbuf; |
773 | *(ushort *) cmdbuf = __swab16 (stmpw); | 774 | *(ushort *) cmdbuf = __swab16 (stmpw); |
774 | break; | 775 | break; |
775 | case FLASH_CFI_32BIT: | 776 | case FLASH_CFI_32BIT: |
776 | stmpi = *(uint *) cmdbuf; | 777 | stmpi = *(uint *) cmdbuf; |
777 | *(uint *) cmdbuf = __swab32 (stmpi); | 778 | *(uint *) cmdbuf = __swab32 (stmpi); |
778 | break; | 779 | break; |
779 | default: | 780 | default: |
780 | puts ("WARNING: flash_make_cmd: unsuppported LittleEndian mode\n"); | 781 | puts ("WARNING: flash_make_cmd: unsuppported LittleEndian mode\n"); |
781 | break; | 782 | break; |
782 | } | 783 | } |
783 | #endif | 784 | #endif |
784 | } | 785 | } |
785 | 786 | ||
786 | /* | 787 | /* |
787 | * Write a proper sized command to the correct address | 788 | * Write a proper sized command to the correct address |
788 | */ | 789 | */ |
789 | static void flash_write_cmd (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) | 790 | static void flash_write_cmd (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) |
790 | { | 791 | { |
791 | 792 | ||
792 | volatile cfiptr_t addr; | 793 | volatile cfiptr_t addr; |
793 | cfiword_t cword; | 794 | cfiword_t cword; |
794 | 795 | ||
795 | addr.cp = flash_make_addr (info, sect, offset); | 796 | addr.cp = flash_make_addr (info, sect, offset); |
796 | flash_make_cmd (info, cmd, &cword); | 797 | flash_make_cmd (info, cmd, &cword); |
797 | switch (info->portwidth) { | 798 | switch (info->portwidth) { |
798 | case FLASH_CFI_8BIT: | 799 | case FLASH_CFI_8BIT: |
799 | debug ("fwc addr %p cmd %x %x 8bit x %d bit\n", addr.cp, cmd, | 800 | debug ("fwc addr %p cmd %x %x 8bit x %d bit\n", addr.cp, cmd, |
800 | cword.c, info->chipwidth << CFI_FLASH_SHIFT_WIDTH); | 801 | cword.c, info->chipwidth << CFI_FLASH_SHIFT_WIDTH); |
801 | *addr.cp = cword.c; | 802 | *addr.cp = cword.c; |
802 | break; | 803 | break; |
803 | case FLASH_CFI_16BIT: | 804 | case FLASH_CFI_16BIT: |
804 | debug ("fwc addr %p cmd %x %4.4x 16bit x %d bit\n", addr.wp, | 805 | debug ("fwc addr %p cmd %x %4.4x 16bit x %d bit\n", addr.wp, |
805 | cmd, cword.w, | 806 | cmd, cword.w, |
806 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); | 807 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); |
807 | *addr.wp = cword.w; | 808 | *addr.wp = cword.w; |
808 | break; | 809 | break; |
809 | case FLASH_CFI_32BIT: | 810 | case FLASH_CFI_32BIT: |
810 | debug ("fwc addr %p cmd %x %8.8lx 32bit x %d bit\n", addr.lp, | 811 | debug ("fwc addr %p cmd %x %8.8lx 32bit x %d bit\n", addr.lp, |
811 | cmd, cword.l, | 812 | cmd, cword.l, |
812 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); | 813 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); |
813 | *addr.lp = cword.l; | 814 | *addr.lp = cword.l; |
814 | break; | 815 | break; |
815 | case FLASH_CFI_64BIT: | 816 | case FLASH_CFI_64BIT: |
816 | #ifdef DEBUG | 817 | #ifdef DEBUG |
817 | { | 818 | { |
818 | char str[20]; | 819 | char str[20]; |
819 | 820 | ||
820 | print_longlong (str, cword.ll); | 821 | print_longlong (str, cword.ll); |
821 | 822 | ||
822 | debug ("fwrite addr %p cmd %x %s 64 bit x %d bit\n", | 823 | debug ("fwrite addr %p cmd %x %s 64 bit x %d bit\n", |
823 | addr.llp, cmd, str, | 824 | addr.llp, cmd, str, |
824 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); | 825 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); |
825 | } | 826 | } |
826 | #endif | 827 | #endif |
827 | *addr.llp = cword.ll; | 828 | *addr.llp = cword.ll; |
828 | break; | 829 | break; |
829 | } | 830 | } |
830 | } | 831 | } |
831 | 832 | ||
832 | static void flash_unlock_seq (flash_info_t * info, flash_sect_t sect) | 833 | static void flash_unlock_seq (flash_info_t * info, flash_sect_t sect) |
833 | { | 834 | { |
834 | flash_write_cmd (info, sect, AMD_ADDR_START, AMD_CMD_UNLOCK_START); | 835 | flash_write_cmd (info, sect, AMD_ADDR_START, AMD_CMD_UNLOCK_START); |
835 | flash_write_cmd (info, sect, AMD_ADDR_ACK, AMD_CMD_UNLOCK_ACK); | 836 | flash_write_cmd (info, sect, AMD_ADDR_ACK, AMD_CMD_UNLOCK_ACK); |
836 | } | 837 | } |
837 | 838 | ||
838 | /*----------------------------------------------------------------------- | 839 | /*----------------------------------------------------------------------- |
839 | */ | 840 | */ |
840 | static int flash_isequal (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) | 841 | static int flash_isequal (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) |
841 | { | 842 | { |
842 | cfiptr_t cptr; | 843 | cfiptr_t cptr; |
843 | cfiword_t cword; | 844 | cfiword_t cword; |
844 | int retval; | 845 | int retval; |
845 | 846 | ||
846 | cptr.cp = flash_make_addr (info, sect, offset); | 847 | cptr.cp = flash_make_addr (info, sect, offset); |
847 | flash_make_cmd (info, cmd, &cword); | 848 | flash_make_cmd (info, cmd, &cword); |
848 | 849 | ||
849 | debug ("is= cmd %x(%c) addr %p ", cmd, cmd, cptr.cp); | 850 | debug ("is= cmd %x(%c) addr %p ", cmd, cmd, cptr.cp); |
850 | switch (info->portwidth) { | 851 | switch (info->portwidth) { |
851 | case FLASH_CFI_8BIT: | 852 | case FLASH_CFI_8BIT: |
852 | debug ("is= %x %x\n", cptr.cp[0], cword.c); | 853 | debug ("is= %x %x\n", cptr.cp[0], cword.c); |
853 | retval = (cptr.cp[0] == cword.c); | 854 | retval = (cptr.cp[0] == cword.c); |
854 | break; | 855 | break; |
855 | case FLASH_CFI_16BIT: | 856 | case FLASH_CFI_16BIT: |
856 | debug ("is= %4.4x %4.4x\n", cptr.wp[0], cword.w); | 857 | debug ("is= %4.4x %4.4x\n", cptr.wp[0], cword.w); |
857 | retval = (cptr.wp[0] == cword.w); | 858 | retval = (cptr.wp[0] == cword.w); |
858 | break; | 859 | break; |
859 | case FLASH_CFI_32BIT: | 860 | case FLASH_CFI_32BIT: |
860 | debug ("is= %8.8lx %8.8lx\n", cptr.lp[0], cword.l); | 861 | debug ("is= %8.8lx %8.8lx\n", cptr.lp[0], cword.l); |
861 | retval = (cptr.lp[0] == cword.l); | 862 | retval = (cptr.lp[0] == cword.l); |
862 | break; | 863 | break; |
863 | case FLASH_CFI_64BIT: | 864 | case FLASH_CFI_64BIT: |
864 | #ifdef DEBUG | 865 | #ifdef DEBUG |
865 | { | 866 | { |
866 | char str1[20]; | 867 | char str1[20]; |
867 | char str2[20]; | 868 | char str2[20]; |
868 | 869 | ||
869 | print_longlong (str1, cptr.llp[0]); | 870 | print_longlong (str1, cptr.llp[0]); |
870 | print_longlong (str2, cword.ll); | 871 | print_longlong (str2, cword.ll); |
871 | debug ("is= %s %s\n", str1, str2); | 872 | debug ("is= %s %s\n", str1, str2); |
872 | } | 873 | } |
873 | #endif | 874 | #endif |
874 | retval = (cptr.llp[0] == cword.ll); | 875 | retval = (cptr.llp[0] == cword.ll); |
875 | break; | 876 | break; |
876 | default: | 877 | default: |
877 | retval = 0; | 878 | retval = 0; |
878 | break; | 879 | break; |
879 | } | 880 | } |
880 | return retval; | 881 | return retval; |
881 | } | 882 | } |
882 | 883 | ||
883 | /*----------------------------------------------------------------------- | 884 | /*----------------------------------------------------------------------- |
884 | */ | 885 | */ |
885 | static int flash_isset (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) | 886 | static int flash_isset (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) |
886 | { | 887 | { |
887 | cfiptr_t cptr; | 888 | cfiptr_t cptr; |
888 | cfiword_t cword; | 889 | cfiword_t cword; |
889 | int retval; | 890 | int retval; |
890 | 891 | ||
891 | cptr.cp = flash_make_addr (info, sect, offset); | 892 | cptr.cp = flash_make_addr (info, sect, offset); |
892 | flash_make_cmd (info, cmd, &cword); | 893 | flash_make_cmd (info, cmd, &cword); |
893 | switch (info->portwidth) { | 894 | switch (info->portwidth) { |
894 | case FLASH_CFI_8BIT: | 895 | case FLASH_CFI_8BIT: |
895 | retval = ((cptr.cp[0] & cword.c) == cword.c); | 896 | retval = ((cptr.cp[0] & cword.c) == cword.c); |
896 | break; | 897 | break; |
897 | case FLASH_CFI_16BIT: | 898 | case FLASH_CFI_16BIT: |
898 | retval = ((cptr.wp[0] & cword.w) == cword.w); | 899 | retval = ((cptr.wp[0] & cword.w) == cword.w); |
899 | break; | 900 | break; |
900 | case FLASH_CFI_32BIT: | 901 | case FLASH_CFI_32BIT: |
901 | retval = ((cptr.lp[0] & cword.l) == cword.l); | 902 | retval = ((cptr.lp[0] & cword.l) == cword.l); |
902 | break; | 903 | break; |
903 | case FLASH_CFI_64BIT: | 904 | case FLASH_CFI_64BIT: |
904 | retval = ((cptr.llp[0] & cword.ll) == cword.ll); | 905 | retval = ((cptr.llp[0] & cword.ll) == cword.ll); |
905 | break; | 906 | break; |
906 | default: | 907 | default: |
907 | retval = 0; | 908 | retval = 0; |
908 | break; | 909 | break; |
909 | } | 910 | } |
910 | return retval; | 911 | return retval; |
911 | } | 912 | } |
912 | 913 | ||
913 | /*----------------------------------------------------------------------- | 914 | /*----------------------------------------------------------------------- |
914 | */ | 915 | */ |
915 | static int flash_toggle (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) | 916 | static int flash_toggle (flash_info_t * info, flash_sect_t sect, uint offset, uchar cmd) |
916 | { | 917 | { |
917 | cfiptr_t cptr; | 918 | cfiptr_t cptr; |
918 | cfiword_t cword; | 919 | cfiword_t cword; |
919 | int retval; | 920 | int retval; |
920 | 921 | ||
921 | cptr.cp = flash_make_addr (info, sect, offset); | 922 | cptr.cp = flash_make_addr (info, sect, offset); |
922 | flash_make_cmd (info, cmd, &cword); | 923 | flash_make_cmd (info, cmd, &cword); |
923 | switch (info->portwidth) { | 924 | switch (info->portwidth) { |
924 | case FLASH_CFI_8BIT: | 925 | case FLASH_CFI_8BIT: |
925 | retval = ((cptr.cp[0] & cword.c) != (cptr.cp[0] & cword.c)); | 926 | retval = ((cptr.cp[0] & cword.c) != (cptr.cp[0] & cword.c)); |
926 | break; | 927 | break; |
927 | case FLASH_CFI_16BIT: | 928 | case FLASH_CFI_16BIT: |
928 | retval = ((cptr.wp[0] & cword.w) != (cptr.wp[0] & cword.w)); | 929 | retval = ((cptr.wp[0] & cword.w) != (cptr.wp[0] & cword.w)); |
929 | break; | 930 | break; |
930 | case FLASH_CFI_32BIT: | 931 | case FLASH_CFI_32BIT: |
931 | retval = ((cptr.lp[0] & cword.l) != (cptr.lp[0] & cword.l)); | 932 | retval = ((cptr.lp[0] & cword.l) != (cptr.lp[0] & cword.l)); |
932 | break; | 933 | break; |
933 | case FLASH_CFI_64BIT: | 934 | case FLASH_CFI_64BIT: |
934 | retval = ((cptr.llp[0] & cword.ll) != | 935 | retval = ((cptr.llp[0] & cword.ll) != |
935 | (cptr.llp[0] & cword.ll)); | 936 | (cptr.llp[0] & cword.ll)); |
936 | break; | 937 | break; |
937 | default: | 938 | default: |
938 | retval = 0; | 939 | retval = 0; |
939 | break; | 940 | break; |
940 | } | 941 | } |
941 | return retval; | 942 | return retval; |
942 | } | 943 | } |
943 | 944 | ||
944 | /*----------------------------------------------------------------------- | 945 | /*----------------------------------------------------------------------- |
945 | * detect if flash is compatible with the Common Flash Interface (CFI) | 946 | * detect if flash is compatible with the Common Flash Interface (CFI) |
946 | * http://www.jedec.org/download/search/jesd68.pdf | 947 | * http://www.jedec.org/download/search/jesd68.pdf |
947 | * | 948 | * |
948 | */ | 949 | */ |
949 | static int flash_detect_cfi (flash_info_t * info) | 950 | static int flash_detect_cfi (flash_info_t * info) |
950 | { | 951 | { |
951 | debug ("flash detect cfi\n"); | 952 | debug ("flash detect cfi\n"); |
952 | 953 | ||
953 | for (info->portwidth = FLASH_CFI_8BIT; | 954 | for (info->portwidth = FLASH_CFI_8BIT; |
954 | info->portwidth <= FLASH_CFI_64BIT; info->portwidth <<= 1) { | 955 | info->portwidth <= FLASH_CFI_64BIT; info->portwidth <<= 1) { |
955 | for (info->chipwidth = FLASH_CFI_BY8; | 956 | for (info->chipwidth = FLASH_CFI_BY8; |
956 | info->chipwidth <= info->portwidth; | 957 | info->chipwidth <= info->portwidth; |
957 | info->chipwidth <<= 1) { | 958 | info->chipwidth <<= 1) { |
958 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); | 959 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); |
959 | flash_write_cmd (info, 0, FLASH_OFFSET_CFI, FLASH_CMD_CFI); | 960 | flash_write_cmd (info, 0, FLASH_OFFSET_CFI, FLASH_CMD_CFI); |
960 | if (flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP, 'Q') | 961 | if (flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP, 'Q') |
961 | && flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP + 1, 'R') | 962 | && flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP + 1, 'R') |
962 | && flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP + 2, 'Y')) { | 963 | && flash_isequal (info, 0, FLASH_OFFSET_CFI_RESP + 2, 'Y')) { |
963 | info->interface = flash_read_ushort (info, 0, FLASH_OFFSET_INTERFACE); | 964 | info->interface = flash_read_ushort (info, 0, FLASH_OFFSET_INTERFACE); |
964 | debug ("device interface is %d\n", | 965 | debug ("device interface is %d\n", |
965 | info->interface); | 966 | info->interface); |
966 | debug ("found port %d chip %d ", | 967 | debug ("found port %d chip %d ", |
967 | info->portwidth, info->chipwidth); | 968 | info->portwidth, info->chipwidth); |
968 | debug ("port %d bits chip %d bits\n", | 969 | debug ("port %d bits chip %d bits\n", |
969 | info->portwidth << CFI_FLASH_SHIFT_WIDTH, | 970 | info->portwidth << CFI_FLASH_SHIFT_WIDTH, |
970 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); | 971 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); |
971 | return 1; | 972 | return 1; |
972 | } | 973 | } |
973 | } | 974 | } |
974 | } | 975 | } |
975 | debug ("not found\n"); | 976 | debug ("not found\n"); |
976 | return 0; | 977 | return 0; |
977 | } | 978 | } |
978 | 979 | ||
979 | /* | 980 | /* |
980 | * The following code cannot be run from FLASH! | 981 | * The following code cannot be run from FLASH! |
981 | * | 982 | * |
982 | */ | 983 | */ |
983 | static ulong flash_get_size (ulong base, int banknum) | 984 | static ulong flash_get_size (ulong base, int banknum) |
984 | { | 985 | { |
985 | flash_info_t *info = &flash_info[banknum]; | 986 | flash_info_t *info = &flash_info[banknum]; |
986 | int i, j; | 987 | int i, j; |
987 | flash_sect_t sect_cnt; | 988 | flash_sect_t sect_cnt; |
988 | unsigned long sector; | 989 | unsigned long sector; |
989 | unsigned long tmp; | 990 | unsigned long tmp; |
990 | int size_ratio; | 991 | int size_ratio; |
991 | uchar num_erase_regions; | 992 | uchar num_erase_regions; |
992 | int erase_region_size; | 993 | int erase_region_size; |
993 | int erase_region_count; | 994 | int erase_region_count; |
994 | 995 | ||
995 | info->start[0] = base; | 996 | info->start[0] = base; |
996 | 997 | ||
997 | if (flash_detect_cfi (info)) { | 998 | if (flash_detect_cfi (info)) { |
998 | info->vendor = flash_read_ushort (info, 0, FLASH_OFFSET_PRIMARY_VENDOR); | 999 | info->vendor = flash_read_ushort (info, 0, FLASH_OFFSET_PRIMARY_VENDOR); |
999 | #ifdef DEBUG | 1000 | #ifdef DEBUG |
1000 | flash_printqry (info, 0); | 1001 | flash_printqry (info, 0); |
1001 | #endif | 1002 | #endif |
1002 | switch (info->vendor) { | 1003 | switch (info->vendor) { |
1003 | case CFI_CMDSET_INTEL_STANDARD: | 1004 | case CFI_CMDSET_INTEL_STANDARD: |
1004 | case CFI_CMDSET_INTEL_EXTENDED: | 1005 | case CFI_CMDSET_INTEL_EXTENDED: |
1005 | default: | 1006 | default: |
1006 | info->cmd_reset = FLASH_CMD_RESET; | 1007 | info->cmd_reset = FLASH_CMD_RESET; |
1007 | break; | 1008 | break; |
1008 | case CFI_CMDSET_AMD_STANDARD: | 1009 | case CFI_CMDSET_AMD_STANDARD: |
1009 | case CFI_CMDSET_AMD_EXTENDED: | 1010 | case CFI_CMDSET_AMD_EXTENDED: |
1010 | info->cmd_reset = AMD_CMD_RESET; | 1011 | info->cmd_reset = AMD_CMD_RESET; |
1011 | break; | 1012 | break; |
1012 | } | 1013 | } |
1013 | 1014 | ||
1014 | debug ("manufacturer is %d\n", info->vendor); | 1015 | debug ("manufacturer is %d\n", info->vendor); |
1015 | size_ratio = info->portwidth / info->chipwidth; | 1016 | size_ratio = info->portwidth / info->chipwidth; |
1016 | /* if the chip is x8/x16 reduce the ratio by half */ | 1017 | /* if the chip is x8/x16 reduce the ratio by half */ |
1017 | if ((info->interface == FLASH_CFI_X8X16) | 1018 | if ((info->interface == FLASH_CFI_X8X16) |
1018 | && (info->chipwidth == FLASH_CFI_BY8)) { | 1019 | && (info->chipwidth == FLASH_CFI_BY8)) { |
1019 | size_ratio >>= 1; | 1020 | size_ratio >>= 1; |
1020 | } | 1021 | } |
1021 | num_erase_regions = flash_read_uchar (info, FLASH_OFFSET_NUM_ERASE_REGIONS); | 1022 | num_erase_regions = flash_read_uchar (info, FLASH_OFFSET_NUM_ERASE_REGIONS); |
1022 | debug ("size_ratio %d port %d bits chip %d bits\n", | 1023 | debug ("size_ratio %d port %d bits chip %d bits\n", |
1023 | size_ratio, info->portwidth << CFI_FLASH_SHIFT_WIDTH, | 1024 | size_ratio, info->portwidth << CFI_FLASH_SHIFT_WIDTH, |
1024 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); | 1025 | info->chipwidth << CFI_FLASH_SHIFT_WIDTH); |
1025 | debug ("found %d erase regions\n", num_erase_regions); | 1026 | debug ("found %d erase regions\n", num_erase_regions); |
1026 | sect_cnt = 0; | 1027 | sect_cnt = 0; |
1027 | sector = base; | 1028 | sector = base; |
1028 | for (i = 0; i < num_erase_regions; i++) { | 1029 | for (i = 0; i < num_erase_regions; i++) { |
1029 | if (i > NUM_ERASE_REGIONS) { | 1030 | if (i > NUM_ERASE_REGIONS) { |
1030 | printf ("%d erase regions found, only %d used\n", | 1031 | printf ("%d erase regions found, only %d used\n", |
1031 | num_erase_regions, NUM_ERASE_REGIONS); | 1032 | num_erase_regions, NUM_ERASE_REGIONS); |
1032 | break; | 1033 | break; |
1033 | } | 1034 | } |
1034 | tmp = flash_read_long (info, 0, | 1035 | tmp = flash_read_long (info, 0, |
1035 | FLASH_OFFSET_ERASE_REGIONS + | 1036 | FLASH_OFFSET_ERASE_REGIONS + |
1036 | i * 4); | 1037 | i * 4); |
1037 | erase_region_size = | 1038 | erase_region_size = |
1038 | (tmp & 0xffff) ? ((tmp & 0xffff) * 256) : 128; | 1039 | (tmp & 0xffff) ? ((tmp & 0xffff) * 256) : 128; |
1039 | tmp >>= 16; | 1040 | tmp >>= 16; |
1040 | erase_region_count = (tmp & 0xffff) + 1; | 1041 | erase_region_count = (tmp & 0xffff) + 1; |
1041 | printf ("erase_region_count = %d erase_region_size = %d\n", | 1042 | debug ("erase_region_count = %d erase_region_size = %d\n", |
1042 | erase_region_count, erase_region_size); | 1043 | erase_region_count, erase_region_size); |
1043 | for (j = 0; j < erase_region_count; j++) { | 1044 | for (j = 0; j < erase_region_count; j++) { |
1044 | info->start[sect_cnt] = sector; | 1045 | info->start[sect_cnt] = sector; |
1045 | sector += (erase_region_size * size_ratio); | 1046 | sector += (erase_region_size * size_ratio); |
1046 | info->protect[sect_cnt] = | 1047 | info->protect[sect_cnt] = |
1047 | flash_isset (info, sect_cnt, | 1048 | flash_isset (info, sect_cnt, |
1048 | FLASH_OFFSET_PROTECT, | 1049 | FLASH_OFFSET_PROTECT, |
1049 | FLASH_STATUS_PROTECT); | 1050 | FLASH_STATUS_PROTECT); |
1050 | sect_cnt++; | 1051 | sect_cnt++; |
1051 | } | 1052 | } |
1052 | } | 1053 | } |
1053 | 1054 | ||
1054 | info->sector_count = sect_cnt; | 1055 | info->sector_count = sect_cnt; |
1055 | /* multiply the size by the number of chips */ | 1056 | /* multiply the size by the number of chips */ |
1056 | info->size = (1 << flash_read_uchar (info, FLASH_OFFSET_SIZE)) * size_ratio; | 1057 | info->size = (1 << flash_read_uchar (info, FLASH_OFFSET_SIZE)) * size_ratio; |
1057 | info->buffer_size = (1 << flash_read_ushort (info, 0, FLASH_OFFSET_BUFFER_SIZE)); | 1058 | info->buffer_size = (1 << flash_read_ushort (info, 0, FLASH_OFFSET_BUFFER_SIZE)); |
1058 | tmp = 1 << flash_read_uchar (info, FLASH_OFFSET_ETOUT); | 1059 | tmp = 1 << flash_read_uchar (info, FLASH_OFFSET_ETOUT); |
1059 | info->erase_blk_tout = (tmp * (1 << flash_read_uchar (info, FLASH_OFFSET_EMAX_TOUT))); | 1060 | info->erase_blk_tout = (tmp * (1 << flash_read_uchar (info, FLASH_OFFSET_EMAX_TOUT))); |
1060 | tmp = 1 << flash_read_uchar (info, FLASH_OFFSET_WBTOUT); | 1061 | tmp = 1 << flash_read_uchar (info, FLASH_OFFSET_WBTOUT); |
1061 | info->buffer_write_tout = (tmp * (1 << flash_read_uchar (info, FLASH_OFFSET_WBMAX_TOUT))); | 1062 | info->buffer_write_tout = (tmp * (1 << flash_read_uchar (info, FLASH_OFFSET_WBMAX_TOUT))); |
1062 | tmp = 1 << flash_read_uchar (info, FLASH_OFFSET_WTOUT); | 1063 | tmp = 1 << flash_read_uchar (info, FLASH_OFFSET_WTOUT); |
1063 | info->write_tout = (tmp * (1 << flash_read_uchar (info, FLASH_OFFSET_WMAX_TOUT))) / 1000; | 1064 | info->write_tout = (tmp * (1 << flash_read_uchar (info, FLASH_OFFSET_WMAX_TOUT))) / 1000; |
1064 | info->flash_id = FLASH_MAN_CFI; | 1065 | info->flash_id = FLASH_MAN_CFI; |
1065 | if ((info->interface == FLASH_CFI_X8X16) && (info->chipwidth == FLASH_CFI_BY8)) { | 1066 | if ((info->interface == FLASH_CFI_X8X16) && (info->chipwidth == FLASH_CFI_BY8)) { |
1066 | info->portwidth >>= 1; /* XXX - Need to test on x8/x16 in parallel. */ | 1067 | info->portwidth >>= 1; /* XXX - Need to test on x8/x16 in parallel. */ |
1067 | } | 1068 | } |
1068 | } | 1069 | } |
1069 | 1070 | ||
1070 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); | 1071 | flash_write_cmd (info, 0, 0, FLASH_CMD_RESET); |
1071 | return (info->size); | 1072 | return (info->size); |
1072 | } | 1073 | } |
1073 | 1074 | ||
1074 | 1075 | ||
1075 | /*----------------------------------------------------------------------- | 1076 | /*----------------------------------------------------------------------- |
1076 | */ | 1077 | */ |
1077 | static int flash_write_cfiword (flash_info_t * info, ulong dest, | 1078 | static int flash_write_cfiword (flash_info_t * info, ulong dest, |
1078 | cfiword_t cword) | 1079 | cfiword_t cword) |
1079 | { | 1080 | { |
1080 | 1081 | ||
1081 | cfiptr_t ctladdr; | 1082 | cfiptr_t ctladdr; |
1082 | cfiptr_t cptr; | 1083 | cfiptr_t cptr; |
1083 | int flag; | 1084 | int flag; |
1084 | 1085 | ||
1085 | ctladdr.cp = flash_make_addr (info, 0, 0); | 1086 | ctladdr.cp = flash_make_addr (info, 0, 0); |
1086 | cptr.cp = (uchar *) dest; | 1087 | cptr.cp = (uchar *) dest; |
1087 | 1088 | ||
1088 | 1089 | ||
1089 | /* Check if Flash is (sufficiently) erased */ | 1090 | /* Check if Flash is (sufficiently) erased */ |
1090 | switch (info->portwidth) { | 1091 | switch (info->portwidth) { |
1091 | case FLASH_CFI_8BIT: | 1092 | case FLASH_CFI_8BIT: |
1092 | flag = ((cptr.cp[0] & cword.c) == cword.c); | 1093 | flag = ((cptr.cp[0] & cword.c) == cword.c); |
1093 | break; | 1094 | break; |
1094 | case FLASH_CFI_16BIT: | 1095 | case FLASH_CFI_16BIT: |
1095 | flag = ((cptr.wp[0] & cword.w) == cword.w); | 1096 | flag = ((cptr.wp[0] & cword.w) == cword.w); |
1096 | break; | 1097 | break; |
1097 | case FLASH_CFI_32BIT: | 1098 | case FLASH_CFI_32BIT: |
1098 | flag = ((cptr.lp[0] & cword.l) == cword.l); | 1099 | flag = ((cptr.lp[0] & cword.l) == cword.l); |
1099 | break; | 1100 | break; |
1100 | case FLASH_CFI_64BIT: | 1101 | case FLASH_CFI_64BIT: |
1101 | flag = ((cptr.lp[0] & cword.ll) == cword.ll); | 1102 | flag = ((cptr.lp[0] & cword.ll) == cword.ll); |
1102 | break; | 1103 | break; |
1103 | default: | 1104 | default: |
1104 | return 2; | 1105 | return 2; |
1105 | } | 1106 | } |
1106 | if (!flag) | 1107 | if (!flag) |
1107 | return 2; | 1108 | return 2; |
1108 | 1109 | ||
1109 | /* Disable interrupts which might cause a timeout here */ | 1110 | /* Disable interrupts which might cause a timeout here */ |
1110 | flag = disable_interrupts (); | 1111 | flag = disable_interrupts (); |
1111 | 1112 | ||
1112 | switch (info->vendor) { | 1113 | switch (info->vendor) { |
1113 | case CFI_CMDSET_INTEL_EXTENDED: | 1114 | case CFI_CMDSET_INTEL_EXTENDED: |
1114 | case CFI_CMDSET_INTEL_STANDARD: | 1115 | case CFI_CMDSET_INTEL_STANDARD: |
1115 | flash_write_cmd (info, 0, 0, FLASH_CMD_CLEAR_STATUS); | 1116 | flash_write_cmd (info, 0, 0, FLASH_CMD_CLEAR_STATUS); |
1116 | flash_write_cmd (info, 0, 0, FLASH_CMD_WRITE); | 1117 | flash_write_cmd (info, 0, 0, FLASH_CMD_WRITE); |
1117 | break; | 1118 | break; |
1118 | case CFI_CMDSET_AMD_EXTENDED: | 1119 | case CFI_CMDSET_AMD_EXTENDED: |
1119 | case CFI_CMDSET_AMD_STANDARD: | 1120 | case CFI_CMDSET_AMD_STANDARD: |
1120 | flash_unlock_seq (info, 0); | 1121 | flash_unlock_seq (info, 0); |
1121 | flash_write_cmd (info, 0, AMD_ADDR_START, AMD_CMD_WRITE); | 1122 | flash_write_cmd (info, 0, AMD_ADDR_START, AMD_CMD_WRITE); |
1122 | break; | 1123 | break; |
1123 | } | 1124 | } |
1124 | 1125 | ||
1125 | switch (info->portwidth) { | 1126 | switch (info->portwidth) { |
1126 | case FLASH_CFI_8BIT: | 1127 | case FLASH_CFI_8BIT: |
1127 | cptr.cp[0] = cword.c; | 1128 | cptr.cp[0] = cword.c; |
1128 | break; | 1129 | break; |
1129 | case FLASH_CFI_16BIT: | 1130 | case FLASH_CFI_16BIT: |
1130 | cptr.wp[0] = cword.w; | 1131 | cptr.wp[0] = cword.w; |
1131 | break; | 1132 | break; |
1132 | case FLASH_CFI_32BIT: | 1133 | case FLASH_CFI_32BIT: |
1133 | cptr.lp[0] = cword.l; | 1134 | cptr.lp[0] = cword.l; |
1134 | break; | 1135 | break; |
1135 | case FLASH_CFI_64BIT: | 1136 | case FLASH_CFI_64BIT: |
1136 | cptr.llp[0] = cword.ll; | 1137 | cptr.llp[0] = cword.ll; |
1137 | break; | 1138 | break; |
1138 | } | 1139 | } |
1139 | 1140 | ||
1140 | /* re-enable interrupts if necessary */ | 1141 | /* re-enable interrupts if necessary */ |
1141 | if (flag) | 1142 | if (flag) |
1142 | enable_interrupts (); | 1143 | enable_interrupts (); |
1143 | 1144 | ||
1144 | return flash_full_status_check (info, 0, info->write_tout, "write"); | 1145 | return flash_full_status_check (info, 0, info->write_tout, "write"); |
1145 | } | 1146 | } |
1146 | 1147 | ||
1147 | #ifdef CFG_FLASH_USE_BUFFER_WRITE | 1148 | #ifdef CFG_FLASH_USE_BUFFER_WRITE |
1148 | 1149 | ||
1149 | /* loop through the sectors from the highest address | 1150 | /* loop through the sectors from the highest address |
1150 | * when the passed address is greater or equal to the sector address | 1151 | * when the passed address is greater or equal to the sector address |
1151 | * we have a match | 1152 | * we have a match |
1152 | */ | 1153 | */ |
1153 | static flash_sect_t find_sector (flash_info_t * info, ulong addr) | 1154 | static flash_sect_t find_sector (flash_info_t * info, ulong addr) |
1154 | { | 1155 | { |
1155 | flash_sect_t sector; | 1156 | flash_sect_t sector; |
1156 | 1157 | ||
1157 | for (sector = info->sector_count - 1; sector >= 0; sector--) { | 1158 | for (sector = info->sector_count - 1; sector >= 0; sector--) { |
1158 | if (addr >= info->start[sector]) | 1159 | if (addr >= info->start[sector]) |
1159 | break; | 1160 | break; |
1160 | } | 1161 | } |
1161 | return sector; | 1162 | return sector; |
1162 | } | 1163 | } |
1163 | 1164 | ||
1164 | static int flash_write_cfibuffer (flash_info_t * info, ulong dest, uchar * cp, | 1165 | static int flash_write_cfibuffer (flash_info_t * info, ulong dest, uchar * cp, |
1165 | int len) | 1166 | int len) |
1166 | { | 1167 | { |
1167 | flash_sect_t sector; | 1168 | flash_sect_t sector; |
1168 | int cnt; | 1169 | int cnt; |
1169 | int retcode; | 1170 | int retcode; |
1170 | volatile cfiptr_t src; | 1171 | volatile cfiptr_t src; |
1171 | volatile cfiptr_t dst; | 1172 | volatile cfiptr_t dst; |
1172 | /* buffered writes in the AMD chip set is not supported yet */ | 1173 | /* buffered writes in the AMD chip set is not supported yet */ |
1173 | if((info->vendor == CFI_CMDSET_AMD_STANDARD) || | 1174 | if((info->vendor == CFI_CMDSET_AMD_STANDARD) || |
1174 | (info->vendor == CFI_CMDSET_AMD_EXTENDED)) | 1175 | (info->vendor == CFI_CMDSET_AMD_EXTENDED)) |
1175 | return ERR_INVAL; | 1176 | return ERR_INVAL; |
1176 | 1177 | ||
1177 | src.cp = cp; | 1178 | src.cp = cp; |
1178 | dst.cp = (uchar *) dest; | 1179 | dst.cp = (uchar *) dest; |
1179 | sector = find_sector (info, dest); | 1180 | sector = find_sector (info, dest); |
1180 | flash_write_cmd (info, sector, 0, FLASH_CMD_CLEAR_STATUS); | 1181 | flash_write_cmd (info, sector, 0, FLASH_CMD_CLEAR_STATUS); |
1181 | flash_write_cmd (info, sector, 0, FLASH_CMD_WRITE_TO_BUFFER); | 1182 | flash_write_cmd (info, sector, 0, FLASH_CMD_WRITE_TO_BUFFER); |
1182 | if ((retcode = | 1183 | if ((retcode = |
1183 | flash_status_check (info, sector, info->buffer_write_tout, | 1184 | flash_status_check (info, sector, info->buffer_write_tout, |
1184 | "write to buffer")) == ERR_OK) { | 1185 | "write to buffer")) == ERR_OK) { |
1185 | /* reduce the number of loops by the width of the port */ | 1186 | /* reduce the number of loops by the width of the port */ |
1186 | switch (info->portwidth) { | 1187 | switch (info->portwidth) { |
1187 | case FLASH_CFI_8BIT: | 1188 | case FLASH_CFI_8BIT: |
1188 | cnt = len; | 1189 | cnt = len; |
1189 | break; | 1190 | break; |
1190 | case FLASH_CFI_16BIT: | 1191 | case FLASH_CFI_16BIT: |
1191 | cnt = len >> 1; | 1192 | cnt = len >> 1; |
1192 | break; | 1193 | break; |
1193 | case FLASH_CFI_32BIT: | 1194 | case FLASH_CFI_32BIT: |
1194 | cnt = len >> 2; | 1195 | cnt = len >> 2; |
1195 | break; | 1196 | break; |
1196 | case FLASH_CFI_64BIT: | 1197 | case FLASH_CFI_64BIT: |
1197 | cnt = len >> 3; | 1198 | cnt = len >> 3; |
1198 | break; | 1199 | break; |
1199 | default: | 1200 | default: |
1200 | return ERR_INVAL; | 1201 | return ERR_INVAL; |
1201 | break; | 1202 | break; |
1202 | } | 1203 | } |
1203 | flash_write_cmd (info, sector, 0, (uchar) cnt - 1); | 1204 | flash_write_cmd (info, sector, 0, (uchar) cnt - 1); |
1204 | while (cnt-- > 0) { | 1205 | while (cnt-- > 0) { |
1205 | switch (info->portwidth) { | 1206 | switch (info->portwidth) { |
1206 | case FLASH_CFI_8BIT: | 1207 | case FLASH_CFI_8BIT: |
1207 | *dst.cp++ = *src.cp++; | 1208 | *dst.cp++ = *src.cp++; |
1208 | break; | 1209 | break; |
1209 | case FLASH_CFI_16BIT: | 1210 | case FLASH_CFI_16BIT: |
1210 | *dst.wp++ = *src.wp++; | 1211 | *dst.wp++ = *src.wp++; |
1211 | break; | 1212 | break; |
1212 | case FLASH_CFI_32BIT: | 1213 | case FLASH_CFI_32BIT: |
1213 | *dst.lp++ = *src.lp++; | 1214 | *dst.lp++ = *src.lp++; |
1214 | break; | 1215 | break; |
1215 | case FLASH_CFI_64BIT: | 1216 | case FLASH_CFI_64BIT: |
1216 | *dst.llp++ = *src.llp++; | 1217 | *dst.llp++ = *src.llp++; |
1217 | break; | 1218 | break; |
1218 | default: | 1219 | default: |
1219 | return ERR_INVAL; | 1220 | return ERR_INVAL; |
1220 | break; | 1221 | break; |
1221 | } | 1222 | } |
1222 | } | 1223 | } |
1223 | flash_write_cmd (info, sector, 0, | 1224 | flash_write_cmd (info, sector, 0, |
1224 | FLASH_CMD_WRITE_BUFFER_CONFIRM); | 1225 | FLASH_CMD_WRITE_BUFFER_CONFIRM); |
1225 | retcode = | 1226 | retcode = |
1226 | flash_full_status_check (info, sector, | 1227 | flash_full_status_check (info, sector, |
1227 | info->buffer_write_tout, | 1228 | info->buffer_write_tout, |
1228 | "buffer write"); | 1229 | "buffer write"); |
1229 | } | 1230 | } |
1230 | flash_write_cmd (info, sector, 0, FLASH_CMD_CLEAR_STATUS); | 1231 | flash_write_cmd (info, sector, 0, FLASH_CMD_CLEAR_STATUS); |
1231 | return retcode; | 1232 | return retcode; |
1232 | } | 1233 | } |
1233 | #endif /* CFG_USE_FLASH_BUFFER_WRITE */ | 1234 | #endif /* CFG_USE_FLASH_BUFFER_WRITE */ |
1234 | #endif /* CFG_FLASH_CFI */ | 1235 | #endif /* CFG_FLASH_CFI */ |
1235 | 1236 |
rtc/Makefile
1 | # | 1 | # |
2 | # (C) Copyright 2001-2004 | 2 | # (C) Copyright 2001-2004 |
3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | 3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
4 | # | 4 | # |
5 | # See file CREDITS for list of people who contributed to this | 5 | # See file CREDITS for list of people who contributed to this |
6 | # project. | 6 | # project. |
7 | # | 7 | # |
8 | # This program is free software; you can redistribute it and/or | 8 | # This program is free software; you can redistribute it and/or |
9 | # modify it under the terms of the GNU General Public License as | 9 | # modify it under the terms of the GNU General Public License as |
10 | # published by the Free Software Foundation; either version 2 of | 10 | # published by the Free Software Foundation; either version 2 of |
11 | # the License, or (at your option) any later version. | 11 | # the License, or (at your option) any later version. |
12 | # | 12 | # |
13 | # This program is distributed in the hope that it will be useful, | 13 | # This program is distributed in the hope that it will be useful, |
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | # GNU General Public License for more details. | 16 | # GNU General Public License for more details. |
17 | # | 17 | # |
18 | # You should have received a copy of the GNU General Public License | 18 | # You should have received a copy of the GNU General Public License |
19 | # along with this program; if not, write to the Free Software | 19 | # along with this program; if not, write to the Free Software |
20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
21 | # MA 02111-1307 USA | 21 | # MA 02111-1307 USA |
22 | # | 22 | # |
23 | 23 | ||
24 | include $(TOPDIR)/config.mk | 24 | include $(TOPDIR)/config.mk |
25 | 25 | ||
26 | #CFLAGS += -DDEBUG | 26 | #CFLAGS += -DDEBUG |
27 | 27 | ||
28 | LIB = librtc.a | 28 | LIB = librtc.a |
29 | 29 | ||
30 | OBJS = date.o \ | 30 | OBJS = date.o \ |
31 | ds12887.o ds1302.o ds1306.o ds1307.o ds1337.o \ | 31 | ds12887.o ds1302.o ds1306.o ds1307.o ds1337.o \ |
32 | ds1556.o ds164x.o ds174x.o \ | 32 | ds1556.o ds164x.o ds174x.o \ |
33 | m41t11.o m48t35ax.o mc146818.o mk48t59.o \ | 33 | m41t11.o max6900.o m48t35ax.o mc146818.o mk48t59.o \ |
34 | mpc5xxx.o mpc8xx.o pcf8563.o s3c24x0_rtc.o | 34 | mpc5xxx.o mpc8xx.o pcf8563.o s3c24x0_rtc.o |
35 | 35 | ||
36 | all: $(LIB) | 36 | all: $(LIB) |
37 | 37 | ||
38 | $(LIB): $(START) $(OBJS) | 38 | $(LIB): $(START) $(OBJS) |
39 | $(AR) crv $@ $(OBJS) | 39 | $(AR) crv $@ $(OBJS) |
40 | 40 | ||
41 | ######################################################################### | 41 | ######################################################################### |
42 | 42 | ||
43 | .depend: Makefile $(OBJS:.o=.c) | 43 | .depend: Makefile $(OBJS:.o=.c) |
44 | $(CC) -M $(CFLAGS) $(OBJS:.o=.c) > $@ | 44 | $(CC) -M $(CFLAGS) $(OBJS:.o=.c) > $@ |
45 | 45 | ||
46 | sinclude .depend | 46 | sinclude .depend |
47 | 47 | ||
48 | ######################################################################### | 48 | ######################################################################### |
49 | 49 |
rtc/max6900.c
File was created | 1 | /* | |
2 | * (C) Copyright 2004 | ||
3 | * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | ||
4 | * | ||
5 | * See file CREDITS for list of people who contributed to this | ||
6 | * project. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License as | ||
10 | * published by the Free Software Foundation; either version 2 of | ||
11 | * the License, or (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | ||
21 | * MA 02111-1307 USA | ||
22 | */ | ||
23 | |||
24 | /* | ||
25 | * Date & Time support for MAXIM MAX6900 RTC | ||
26 | */ | ||
27 | |||
28 | /* #define DEBUG */ | ||
29 | |||
30 | #include <common.h> | ||
31 | #include <command.h> | ||
32 | #include <rtc.h> | ||
33 | #include <i2c.h> | ||
34 | |||
35 | #if defined(CONFIG_RTC_MAX6900) && (CONFIG_COMMANDS & CFG_CMD_DATE) | ||
36 | |||
37 | #ifndef CFG_I2C_RTC_ADDR | ||
38 | #define CFG_I2C_RTC_ADDR 0x50 | ||
39 | #endif | ||
40 | |||
41 | /* ------------------------------------------------------------------------- */ | ||
42 | |||
43 | static uchar rtc_read (uchar reg) | ||
44 | { | ||
45 | return (i2c_reg_read (CFG_I2C_RTC_ADDR, reg)); | ||
46 | } | ||
47 | |||
48 | static void rtc_write (uchar reg, uchar val) | ||
49 | { | ||
50 | i2c_reg_write (CFG_I2C_RTC_ADDR, reg, val); | ||
51 | udelay(2500); | ||
52 | } | ||
53 | |||
54 | static unsigned bcd2bin (uchar n) | ||
55 | { | ||
56 | return ((((n >> 4) & 0x0F) * 10) + (n & 0x0F)); | ||
57 | } | ||
58 | |||
59 | static unsigned char bin2bcd (unsigned int n) | ||
60 | { | ||
61 | return (((n / 10) << 4) | (n % 10)); | ||
62 | } | ||
63 | |||
64 | /* ------------------------------------------------------------------------- */ | ||
65 | |||
66 | void rtc_get (struct rtc_time *tmp) | ||
67 | { | ||
68 | uchar sec, min, hour, mday, wday, mon, cent, year; | ||
69 | int retry = 1; | ||
70 | |||
71 | do { | ||
72 | sec = rtc_read (0x80); | ||
73 | min = rtc_read (0x82); | ||
74 | hour = rtc_read (0x84); | ||
75 | mday = rtc_read (0x86); | ||
76 | mon = rtc_read (0x88); | ||
77 | wday = rtc_read (0x8a); | ||
78 | year = rtc_read (0x8c); | ||
79 | cent = rtc_read (0x92); | ||
80 | /* | ||
81 | * Check for seconds rollover | ||
82 | */ | ||
83 | if ((sec != 59) || (rtc_read(0x80) == sec)){ | ||
84 | retry = 0; | ||
85 | } | ||
86 | } while (retry); | ||
87 | |||
88 | debug ( "Get RTC year: %02x mon: %02x cent: %02x mday: %02x wday: %02x " | ||
89 | "hr: %02x min: %02x sec: %02x\n", | ||
90 | year, mon, cent, mday, wday, | ||
91 | hour, min, sec ); | ||
92 | |||
93 | tmp->tm_sec = bcd2bin (sec & 0x7F); | ||
94 | tmp->tm_min = bcd2bin (min & 0x7F); | ||
95 | tmp->tm_hour = bcd2bin (hour & 0x3F); | ||
96 | tmp->tm_mday = bcd2bin (mday & 0x3F); | ||
97 | tmp->tm_mon = bcd2bin (mon & 0x1F); | ||
98 | tmp->tm_year = bcd2bin (year) + bcd2bin(cent) * 100; | ||
99 | tmp->tm_wday = bcd2bin (wday & 0x07); | ||
100 | tmp->tm_yday = 0; | ||
101 | tmp->tm_isdst= 0; | ||
102 | |||
103 | debug ( "Get DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n", | ||
104 | tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday, | ||
105 | tmp->tm_hour, tmp->tm_min, tmp->tm_sec); | ||
106 | } | ||
107 | |||
108 | void rtc_set (struct rtc_time *tmp) | ||
109 | { | ||
110 | |||
111 | debug ( "Set DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n", | ||
112 | tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday, | ||
113 | tmp->tm_hour, tmp->tm_min, tmp->tm_sec); | ||
114 | |||
115 | rtc_write (0x9E, 0x00); | ||
116 | rtc_write (0x80, 0); /* Clear seconds to ensure no rollover */ | ||
117 | rtc_write (0x92, bin2bcd(tmp->tm_year / 100)); | ||
118 | rtc_write (0x8c, bin2bcd(tmp->tm_year % 100)); | ||
119 | rtc_write (0x8a, bin2bcd(tmp->tm_wday)); | ||
120 | rtc_write (0x88, bin2bcd(tmp->tm_mon)); | ||
121 | rtc_write (0x86, bin2bcd(tmp->tm_mday)); | ||
122 | rtc_write (0x84, bin2bcd(tmp->tm_hour)); | ||
123 | rtc_write (0x82, bin2bcd(tmp->tm_min )); | ||
124 | rtc_write (0x80, bin2bcd(tmp->tm_sec )); | ||
125 | } | ||
126 | |||
127 | void rtc_reset (void) | ||
128 | { | ||
129 | } | ||
130 | |||
131 | #endif /* CONFIG_RTC_MAX6900 && CFG_CMD_DATE */ | ||
132 |