Commit f901a83b70a586cef89682843e2d16d6c7b2288a

Authored by Wolfgang Denk
1 parent 5633796c09

Add support for ep8248 board

Patch by Yuli Barcohen, 12 Dec 2004

Minor code cleanup.

Showing 13 changed files with 1468 additions and 706 deletions Inline Diff

1 ====================================================================== 1 ======================================================================
2 Changes for U-Boot 1.1.3: 2 Changes for U-Boot 1.1.3:
3 ====================================================================== 3 ======================================================================
4 4
5 * Add support for ep8248 board
6 Patch by Yuli Barcohen, 12 Dec 2004
7
8 Minor code cleanup.
9
5 * Fix baudrate setting for KGDB on MPC8260 10 * Fix baudrate setting for KGDB on MPC8260
6 Patch by HoJin, 11 Dec 2004 11 Patch by HoJin, 11 Dec 2004
7 12
8 * Fix 'mii help' text formatting 13 * Fix 'mii help' text formatting
9 Patch by Cory Tusar, 10 Dec 2004 14 Patch by Cory Tusar, 10 Dec 2004
10 15
11 * Fix return code of NFS command 16 * Fix return code of NFS command
12 Patch by Hiroshi Ito, 11 Dec 2004 17 Patch by Hiroshi Ito, 11 Dec 2004
13 18
14 * Fix typo 19 * Fix typo
15 20
16 * Fix compiler warnings in cpu/ppc4xx/usbdev.c 21 * Fix compiler warnings in cpu/ppc4xx/usbdev.c
17 Patch by Steven Blakeslee, 04 Aug 2005 22 Patch by Steven Blakeslee, 04 Aug 2005
18 23
19 * Add support for AMCC Bamboo PPC440EP eval board 24 * Add support for AMCC Bamboo PPC440EP eval board
20 Patch by Stefan Roese, 04 Aug 2005 25 Patch by Stefan Roese, 04 Aug 2005
21 26
22 * Patch by Jon Loeliger 27 * Patch by Jon Loeliger
23 Fix style issues primarily in 85xx and 83xx boards. 28 Fix style issues primarily in 85xx and 83xx boards.
24 - C++ comments 29 - C++ comments
25 - Trailing white space 30 - Trailing white space
26 - Indentation not by TAB 31 - Indentation not by TAB
27 - Excessive amount of empty lines 32 - Excessive amount of empty lines
28 - Trailing empty lines 33 - Trailing empty lines
29 34
30 * Patch by Ron Alder, 11 Jul 2005 35 * Patch by Ron Alder, 11 Jul 2005
31 Add Xianghua Xiao and Lunsheng Wang's support for the 36 Add Xianghua Xiao and Lunsheng Wang's support for the
32 GDA MPC8540 EVAL board. 37 GDA MPC8540 EVAL board.
33 38
34 * Patch by Eran Liberty 39 * Patch by Eran Liberty
35 Add support for the Freescale MPC8349ADS board. 40 Add support for the Freescale MPC8349ADS board.
36 41
37 * Patch by Jon Loeliger, 25 Jul 2005 42 * Patch by Jon Loeliger, 25 Jul 2005
38 Move the TSEC driver out of cpu/mpc85xx as it will be shared 43 Move the TSEC driver out of cpu/mpc85xx as it will be shared
39 by the upcoming mpc83xx family as well. 44 by the upcoming mpc83xx family as well.
40 45
41 * Patch by Jon Loeliger, 05 May 2005 46 * Patch by Jon Loeliger, 05 May 2005
42 Implemented support for MPC8548CDS board. 47 Implemented support for MPC8548CDS board.
43 Added DDR II support based on SPD values for MPC85xx boards. 48 Added DDR II support based on SPD values for MPC85xx boards.
44 This roll-up patch also includes bugfies for the previously 49 This roll-up patch also includes bugfies for the previously
45 published patches: 50 published patches:
46 DDRII CPO, pre eTSEC, 8548 LBIU, Andy's TSEC, eTSEC 3&4 I/O 51 DDRII CPO, pre eTSEC, 8548 LBIU, Andy's TSEC, eTSEC 3&4 I/O
47 52
48 * Patch by Jon Loeliger, 10 Feb 2005 53 * Patch by Jon Loeliger, 10 Feb 2005
49 Add config option CONFIG_HAS_FEC calling out 8540 FEC features. 54 Add config option CONFIG_HAS_FEC calling out 8540 FEC features.
50 55
51 * Patch by Jon Loeliger, Kumar Gala, 08 Feb 2005 56 * Patch by Jon Loeliger, Kumar Gala, 08 Feb 2005
52 For MPC85xxCDS: 57 For MPC85xxCDS:
53 Adds Relaxed Timing TRLX bit to FLASH ORx regs to allow 58 Adds Relaxed Timing TRLX bit to FLASH ORx regs to allow
54 for faster flash parts. 59 for faster flash parts.
55 Add documentation for BR/OR for FLASH. 60 Add documentation for BR/OR for FLASH.
56 61
57 * Patch by Jon Loeliger 08 Feb 2005 62 * Patch by Jon Loeliger 08 Feb 2005
58 Determine L2 Cache size dynamically on 85XX boards. 63 Determine L2 Cache size dynamically on 85XX boards.
59 64
60 * Patch by Jon Loeliger, Kumar Gala 08 Feb 2005 65 * Patch by Jon Loeliger, Kumar Gala 08 Feb 2005
61 - Convert the CPM2 based functionality to use new CONFIG_CPM2 66 - Convert the CPM2 based functionality to use new CONFIG_CPM2
62 option rather than a myriad of CONFIG_MPC8560-like variants. 67 option rather than a myriad of CONFIG_MPC8560-like variants.
63 Applies to MPC85xx and MPC8260 boards, includes stxgp3 and sbc8560. 68 Applies to MPC85xx and MPC8260 boards, includes stxgp3 and sbc8560.
64 Eliminates the CONFIG_MPC8560 option entirely. Distributes the 69 Eliminates the CONFIG_MPC8560 option entirely. Distributes the
65 new CONFIG_CPM2 option to each 8260 board. 70 new CONFIG_CPM2 option to each 8260 board.
66 71
67 * Add support for MicroSys PM856 board 72 * Add support for MicroSys PM856 board
68 Patch by Josef Wagner, 03 Aug 2005 73 Patch by Josef Wagner, 03 Aug 2005
69 74
70 * Minor fixes to PM854 board 75 * Minor fixes to PM854 board
71 Patch by Josef Wagner, 03 Aug 2005 76 Patch by Josef Wagner, 03 Aug 2005
72 77
73 * Adjust configuration of XENIAX board 78 * Adjust configuration of XENIAX board
74 (chip select and GPIO required for USB operation) 79 (chip select and GPIO required for USB operation)
75 80
76 * Fix typos in cpu/85xx/start.S which caused DataTLB exception to be 81 * Fix typos in cpu/85xx/start.S which caused DataTLB exception to be
77 routed to the Watchdog handler 82 routed to the Watchdog handler
78 Patch by Eugene Surovegin, 18 Jun 2005 83 Patch by Eugene Surovegin, 18 Jun 2005
79 84
80 * (re)enabled scsi commands do_scsi() and do_scsiboot() 85 * (re)enabled scsi commands do_scsi() and do_scsiboot()
81 Patch by Denis Peter, 06 Dec 2004 86 Patch by Denis Peter, 06 Dec 2004
82 87
83 * Fix endianess problem in TFTP / NFS default filenames 88 * Fix endianess problem in TFTP / NFS default filenames
84 Patch by Hiroshi Ito, 06 Dec 2004 89 Patch by Hiroshi Ito, 06 Dec 2004
85 90
86 * Ignore broadcast status bit in received frames in 8260 FCC ethernet 91 * Ignore broadcast status bit in received frames in 8260 FCC ethernet
87 loopback test code 92 loopback test code
88 Patch by Murray Jensen, 18 Jul 2005 93 Patch by Murray Jensen, 18 Jul 2005
89 94
90 * Fix typo in mkconfig script (used == instead of =) 95 * Fix typo in mkconfig script (used == instead of =)
91 Patch by Murray Jensen, 18 Jul 2005 96 Patch by Murray Jensen, 18 Jul 2005
92 97
93 * Cleanup build problems on 64 bit build hosts 98 * Cleanup build problems on 64 bit build hosts
94 99
95 * Update MAINTAINERS file 100 * Update MAINTAINERS file
96 101
97 * Patch by Stefan Roese, 01 Aug 2005: 102 * Patch by Stefan Roese, 01 Aug 2005:
98 - Major cleanup for AMCC eval boards Walnut, Bubinga, Ebony, Ocotea 103 - Major cleanup for AMCC eval boards Walnut, Bubinga, Ebony, Ocotea
99 (former IBM eval board). Please see "doc/README.AMCC-eval-boards-cleanup" 104 (former IBM eval board). Please see "doc/README.AMCC-eval-boards-cleanup"
100 for details. 105 for details.
101 - Sycamore (PPC405GPr) eval board added (Walnut port is extended 106 - Sycamore (PPC405GPr) eval board added (Walnut port is extended
102 to run on both 405GP and 405GPr eval boards). 107 to run on both 405GP and 405GPr eval boards).
103 108
104 * Patch by Steven Blakeslee, 27 Jul 2005: 109 * Patch by Steven Blakeslee, 27 Jul 2005:
105 - Add support for AMCC PPC440EP/GR. 110 - Add support for AMCC PPC440EP/GR.
106 - Add support for AMCC Yosemite PPC440EP eval board. 111 - Add support for AMCC Yosemite PPC440EP eval board.
107 - Add support for AMCC Yellowstone PPC440GR eval board. 112 - Add support for AMCC Yellowstone PPC440GR eval board.
108 113
109 * Minor fixes for PPChameleon Board: 114 * Minor fixes for PPChameleon Board:
110 - fix alignment of NAND size 115 - fix alignment of NAND size
111 - make code do what the comment says 116 - make code do what the comment says
112 117
113 * Implement h/w sector protection status synchronization at boot. 118 * Implement h/w sector protection status synchronization at boot.
114 The code is provided for, and was tested on, the Yukon/Alaska 119 The code is provided for, and was tested on, the Yukon/Alaska
115 and PM520 boards only. 120 and PM520 boards only.
116 121
117 A bug in flash_real_protect() for the Yukon board was fixed by 122 A bug in flash_real_protect() for the Yukon board was fixed by
118 adding a function that tells if two banks are on one flash chip. 123 adding a function that tells if two banks are on one flash chip.
119 124
120 * Fix sysmon POST problem: check I2C error codes 125 * Fix sysmon POST problem: check I2C error codes
121 This fixes a problem of displaying bogus voltages when the voltages 126 This fixes a problem of displaying bogus voltages when the voltages
122 are so low that the I2C devices start failing while the rest of the 127 are so low that the I2C devices start failing while the rest of the
123 system keeps running. 128 system keeps running.
124 129
125 * Patch by Cedric Vincent, 6 Jul 2005: 130 * Patch by Cedric Vincent, 6 Jul 2005:
126 Fix CFG_CMD_SETGETDCR handling in "common/cmd_dcr.c" 131 Fix CFG_CMD_SETGETDCR handling in "common/cmd_dcr.c"
127 132
128 * Patch by Jon Loeliger, 20 Jul 2005: 133 * Patch by Jon Loeliger, 20 Jul 2005:
129 Add missing PCI IO port definitions. 134 Add missing PCI IO port definitions.
130 135
131 * Add CompactFlash support for HMI1001 board. 136 * Add CompactFlash support for HMI1001 board.
132 137
133 * Adjust printed board ID for LWMON board. 138 * Adjust printed board ID for LWMON board.
134 139
135 * Fix low-level OHCI transfers for ARM920t and MPC5xxx 140 * Fix low-level OHCI transfers for ARM920t and MPC5xxx
136 141
137 * Add new argument format for flash commands to allow for usage like 142 * Add new argument format for flash commands to allow for usage like
138 "erase $(addr) +$(filesize)", i. e. a size argument can be used and 143 "erase $(addr) +$(filesize)", i. e. a size argument can be used and
139 U-Boot will automaticially find the end of the corresponding sector. 144 U-Boot will automaticially find the end of the corresponding sector.
140 145
141 * Patch by Stefan Roese, 5 Jul 2005: 146 * Patch by Stefan Roese, 5 Jul 2005:
142 Update uc100 board PHY setup 147 Update uc100 board PHY setup
143 148
144 * Patch by Stefan Roese, 1 Jul 2005: 149 * Patch by Stefan Roese, 1 Jul 2005:
145 Fix PHY address for CATcenter board (now correct!) 150 Fix PHY address for CATcenter board (now correct!)
146 151
147 * Patch by Stefan Roese, 30 Jun 2005: 152 * Patch by Stefan Roese, 30 Jun 2005:
148 Fix PHY addresses for PPChameleon and CATcenter boards 153 Fix PHY addresses for PPChameleon and CATcenter boards
149 Change MAINTAINER for most esd boards 154 Change MAINTAINER for most esd boards
150 155
151 * Patch by Detlev Zundel, 30 Jun 2005: 156 * Patch by Detlev Zundel, 30 Jun 2005:
152 Fix LCD logo for lwmon board which got lost in the merge of 8xx and PXA LCD code 157 Fix LCD logo for lwmon board which got lost in the merge of 8xx and PXA LCD code
153 158
154 * Fix baudrate calculation problem on MPC5200 systems 159 * Fix baudrate calculation problem on MPC5200 systems
155 160
156 * Add EEPROM and RTC support for HMI1001 board 161 * Add EEPROM and RTC support for HMI1001 board
157 162
158 * Patch by Detlev Zundel, 20 Jun 2005: 163 * Patch by Detlev Zundel, 20 Jun 2005:
159 Fix initialization of low active GPIO pins on inka4x0 board 164 Fix initialization of low active GPIO pins on inka4x0 board
160 165
161 * Enable redundant environment, disable HW flash protection of 166 * Enable redundant environment, disable HW flash protection of
162 HMI1001 board 167 HMI1001 board
163 168
164 * Patch by Travis Sawyer, 10 Jun 2005: 169 * Patch by Travis Sawyer, 10 Jun 2005:
165 Initialize allocated dev and private hw structures 170 Initialize allocated dev and private hw structures
166 after their respective allocation in 440gx_enet.c 171 after their respective allocation in 440gx_enet.c
167 172
168 * Patch by Steven Scholz, 10 Jun 2005: 173 * Patch by Steven Scholz, 10 Jun 2005:
169 Fix byteorder problems with second argument of "bootm" with 174 Fix byteorder problems with second argument of "bootm" with
170 standalone images; 175 standalone images;
171 176
172 * Add support for HMI1001 board 177 * Add support for HMI1001 board
173 178
174 * Disable "date" and "sntp" commands on TQM866M 179 * Disable "date" and "sntp" commands on TQM866M
175 180
176 * Fix watchdog reset problems on LWMON board 181 * Fix watchdog reset problems on LWMON board
177 182
178 * Patch by Juergen Selent, 17 May 2005: 183 * Patch by Juergen Selent, 17 May 2005:
179 Add support for Funkwerk VoVPN gateway module. 184 Add support for Funkwerk VoVPN gateway module.
180 185
181 * Cleanup debug code for MPC8220 FEC driver 186 * Cleanup debug code for MPC8220 FEC driver
182 187
183 * Extend burst mode RAM test program to take a loop count 188 * Extend burst mode RAM test program to take a loop count
184 (0 = infinite) 189 (0 = infinite)
185 190
186 * Use CONFIG_DRIVER_KS8695ETH to enable KS8695 ethernet driver on 191 * Use CONFIG_DRIVER_KS8695ETH to enable KS8695 ethernet driver on
187 those boards that use it. 192 those boards that use it.
188 193
189 * Patches by Greg Ungerer, 19 May 2005: 194 * Patches by Greg Ungerer, 19 May 2005:
190 - add support for the KS8695P (ARM 922 based) CPU 195 - add support for the KS8695P (ARM 922 based) CPU
191 - add support for the OpenGear CM4008, CM4116 and CM4148 boards 196 - add support for the OpenGear CM4008, CM4116 and CM4148 boards
192 197
193 * Patch by Steven Scholz, 19 May 2005: 198 * Patch by Steven Scholz, 19 May 2005:
194 Add support for CONFIG_SERIAL_TAG on ARM boards 199 Add support for CONFIG_SERIAL_TAG on ARM boards
195 200
196 * Add PCI support for Sorcery board. 201 * Add PCI support for Sorcery board.
197 Code cleanup (especially Sorcery / Alaska / Yukon serial driver). 202 Code cleanup (especially Sorcery / Alaska / Yukon serial driver).
198 203
199 * Fix compile problems caused by new burst mode SDRAM test; 204 * Fix compile problems caused by new burst mode SDRAM test;
200 make port pins to trigger logic analyzer configurable 205 make port pins to trigger logic analyzer configurable
201 206
202 * Fix timer handling on MPC85xx systems 207 * Fix timer handling on MPC85xx systems
203 208
204 * Fix debug code in omap5912osk flash driver 209 * Fix debug code in omap5912osk flash driver
205 210
206 * Add support for MPC8247 based "IDS8247" board. 211 * Add support for MPC8247 based "IDS8247" board.
207 212
208 * Add support for 2 x TSEC interfaces on the TQM8540 board. 213 * Add support for 2 x TSEC interfaces on the TQM8540 board.
209 214
210 * On LWMON we must use the watchdog to reset the board as the CPU 215 * On LWMON we must use the watchdog to reset the board as the CPU
211 genereated HRESET pulse is too short to reset the external 216 genereated HRESET pulse is too short to reset the external
212 circuitry. 217 circuitry.
213 218
214 * Add test tool to exercise SDRAM accesses in burst mode 219 * Add test tool to exercise SDRAM accesses in burst mode
215 (as standalone program, MPC8xx/PowerPC only) 220 (as standalone program, MPC8xx/PowerPC only)
216 221
217 * Increase CFG_MONITOR_LEN for Rattler board to match actual code 222 * Increase CFG_MONITOR_LEN for Rattler board to match actual code
218 size. 223 size.
219 224
220 * Major upate of JFFS2 code; now in sync with snapshot of MTD CVS of 225 * Major upate of JFFS2 code; now in sync with snapshot of MTD CVS of
221 March 13, 2005); new configuration option CONFIG_JFFS2_LZO_LZARI 226 March 13, 2005); new configuration option CONFIG_JFFS2_LZO_LZARI
222 added to support LZO and LZARI compression modes (undefined by 227 added to support LZO and LZARI compression modes (undefined by
223 default). 228 default).
224 229
225 * Fix problem with symbolic links in JFFS2 code. 230 * Fix problem with symbolic links in JFFS2 code.
226 231
227 * Use linker ASSERT statement to prevent undetected overlapping of 232 * Use linker ASSERT statement to prevent undetected overlapping of
228 sections on PPChameleon board; other boards might use this, too. 233 sections on PPChameleon board; other boards might use this, too.
229 234
230 * Patch by Stefan Roese, 03 May 2005: 235 * Patch by Stefan Roese, 03 May 2005:
231 Update for P3G4 236 Update for P3G4
232 Fix problems in cmd_universe.c 237 Fix problems in cmd_universe.c
233 238
234 * Patch by Matthias Fuchs, 03 May 2005: 239 * Patch by Matthias Fuchs, 03 May 2005:
235 Added missing variable declaration in cmd_nand.c 240 Added missing variable declaration in cmd_nand.c
236 Modified CFG_PCI_PTM1MS in configs/PLU405.h to map 128MB ram 241 Modified CFG_PCI_PTM1MS in configs/PLU405.h to map 128MB ram
237 242
238 * Fix INKA4x0: use CS1 as gpio_wkup_6 output 243 * Fix INKA4x0: use CS1 as gpio_wkup_6 output
239 244
240 * Fix bug in the SDRAM initialization code for canmb, IceCube and 245 * Fix bug in the SDRAM initialization code for canmb, IceCube and
241 PM520 boards. 246 PM520 boards.
242 Fix PHY address for canmb board. 247 Fix PHY address for canmb board.
243 248
244 * Cleanup serial console baudrate calculation on AT91RM9200; 249 * Cleanup serial console baudrate calculation on AT91RM9200;
245 get rid of obsolete CFG_AT91C_BRGR_DIVISOR definition 250 get rid of obsolete CFG_AT91C_BRGR_DIVISOR definition
246 251
247 * Patch by Matthias Fuchs, 18 Apr 2005: 252 * Patch by Matthias Fuchs, 18 Apr 2005:
248 Make PCI target address spaces on PMC405 and CPCI405 boards 253 Make PCI target address spaces on PMC405 and CPCI405 boards
249 configurable via environment variables 254 configurable via environment variables
250 255
251 * Auto-size RAM on canmb board. 256 * Auto-size RAM on canmb board.
252 257
253 * Add support for canmb board 258 * Add support for canmb board
254 259
255 * Patch by Stefan Roese, 13 Apr 2005: 260 * Patch by Stefan Roese, 13 Apr 2005:
256 Update for esd apc405 261 Update for esd apc405
257 262
258 * Fixes for TQM8560 board: 263 * Fixes for TQM8560 board:
259 - fix clock rates 264 - fix clock rates
260 - remove debug messages 265 - remove debug messages
261 - fix flash sector protection 266 - fix flash sector protection
262 267
263 * Patch by Steven Scholz, 07 Apr 2005: 268 * Patch by Steven Scholz, 07 Apr 2005:
264 Add i2c_reg_write() and i2c_reg_write() for at91rm9200 I2C 269 Add i2c_reg_write() and i2c_reg_write() for at91rm9200 I2C
265 270
266 * Patches by Steven Scholz, 07 Apr 2005: 271 * Patches by Steven Scholz, 07 Apr 2005:
267 Fix compiler warning in altera.c 272 Fix compiler warning in altera.c
268 Fix warning in cpu/arm920t/at91rm9200/i2c.c 273 Fix warning in cpu/arm920t/at91rm9200/i2c.c
269 274
270 * Patch by Ladislav Michl, 06 Apr 2005: 275 * Patch by Ladislav Michl, 06 Apr 2005:
271 Fix voiceblue configuration. 276 Fix voiceblue configuration.
272 277
273 * Patch by Stefan Roese, 06 Apr 2005: 278 * Patch by Stefan Roese, 06 Apr 2005:
274 Updates for OCOTEA board: 279 Updates for OCOTEA board:
275 - Changed U-Boot size from 512kByte to 256kByte 280 - Changed U-Boot size from 512kByte to 256kByte
276 - Fixed flash driver to support boot from soldered user flash 281 - Fixed flash driver to support boot from soldered user flash
277 - Added README for switch from PIBS firmware to U-Boot 282 - Added README for switch from PIBS firmware to U-Boot
278 283
279 * Patch by Travis Sawyer, 05 Apr 2005: 284 * Patch by Travis Sawyer, 05 Apr 2005:
280 - Change timer frequency for ppc 440 from 10 ms to 1 ms. 285 - Change timer frequency for ppc 440 from 10 ms to 1 ms.
281 Problem found by Andrew Wozniak. 286 Problem found by Andrew Wozniak.
282 287
283 * Patch by Steven Scholz, 06 Apr 2005: 288 * Patch by Steven Scholz, 06 Apr 2005:
284 - creating SoC subdir for Atmel AT91RM9200 cpu/arm920t/at91rm9200 289 - creating SoC subdir for Atmel AT91RM9200 cpu/arm920t/at91rm9200
285 - moving code out of cpu/at91rm9200 into cpu/arm920t/at91rm9200 290 - moving code out of cpu/at91rm9200 into cpu/arm920t/at91rm9200
286 291
287 * Patches by Robert Whaley, 29 Nov 2004: 292 * Patches by Robert Whaley, 29 Nov 2004:
288 - update the pxa-regs.h file for PXA27x chips 293 - update the pxa-regs.h file for PXA27x chips
289 - add PXA27x based ADSVIX board 294 - add PXA27x based ADSVIX board
290 - add support for MMC on PXA27x processors 295 - add support for MMC on PXA27x processors
291 296
292 * Patch by Andrew E. Mileski, 28 Nov 2004: 297 * Patch by Andrew E. Mileski, 28 Nov 2004:
293 Fix PPC4xx SPD SDRAM detection bug 298 Fix PPC4xx SPD SDRAM detection bug
294 299
295 * Patch by Hiroshi Ito, 26 Nov 2004: 300 * Patch by Hiroshi Ito, 26 Nov 2004:
296 Fix logic of "test -z" and "test -n" commands 301 Fix logic of "test -z" and "test -n" commands
297 302
298 * Patch by Ladislav Michl, 05 Apr 2005: 303 * Patch by Ladislav Michl, 05 Apr 2005:
299 Add support for VoiceBlue board. 304 Add support for VoiceBlue board.
300 305
301 * Patch by Ladislav Michl, 05 Apr 2005: 306 * Patch by Ladislav Michl, 05 Apr 2005:
302 Fix netboot_common() prototypes. 307 Fix netboot_common() prototypes.
303 308
304 * Patch by Steven Scholz, 05 Apr 2005: 309 * Patch by Steven Scholz, 05 Apr 2005:
305 Use i.MX watchdog timer for reset_cpu() 310 Use i.MX watchdog timer for reset_cpu()
306 311
307 * Patch by Steven Scholz, 05 Apr 2005: 312 * Patch by Steven Scholz, 05 Apr 2005:
308 Move reset_cpu() out of cpu/arm920t/start.S into the SoC specific 313 Move reset_cpu() out of cpu/arm920t/start.S into the SoC specific
309 subdirectories cpu/arm920t/imx/ and cpu/arm920t/s3c24x0/ 314 subdirectories cpu/arm920t/imx/ and cpu/arm920t/s3c24x0/
310 (now in interupts.c) 315 (now in interupts.c)
311 316
312 * Add support for MPC8220 based "sorcery" board. 317 * Add support for MPC8220 based "sorcery" board.
313 318
314 * Add support for TQM8560 board. 319 * Add support for TQM8560 board.
315 320
316 * Add FEC support for TQM8540 board. 321 * Add FEC support for TQM8540 board.
317 Interfaces are named as follows: "ENET1" - TSEC2, "ENET2" - FEC 322 Interfaces are named as follows: "ENET1" - TSEC2, "ENET2" - FEC
318 323
319 * Patch by Martin Krause, 04 Apr 2005: 324 * Patch by Martin Krause, 04 Apr 2005:
320 Update default configuration for CMC_PU2 board. 325 Update default configuration for CMC_PU2 board.
321 326
322 * Patch by Steven Scholz, 04 Apr 2005: 327 * Patch by Steven Scholz, 04 Apr 2005:
323 - remove all references to CONFIG_INIT_CRITICAL for ARM based boards 328 - remove all references to CONFIG_INIT_CRITICAL for ARM based boards
324 - introduce two new configuration options instead: 329 - introduce two new configuration options instead:
325 CONFIG_SKIP_LOWLEVEL_INIT and CONFIG_SKIP_RELOCATE_UBOOT 330 CONFIG_SKIP_LOWLEVEL_INIT and CONFIG_SKIP_RELOCATE_UBOOT
326 331
327 * Patch by Steven Scholz, 04 Apr 2005: 332 * Patch by Steven Scholz, 04 Apr 2005:
328 Make sure that MDIO clock does not exceed 2.5 MHz on AT91 333 Make sure that MDIO clock does not exceed 2.5 MHz on AT91
329 334
330 * Fix timer code for ARM systems: make sure that udelay() does not 335 * Fix timer code for ARM systems: make sure that udelay() does not
331 reset timers so it's save to use udelay() in timeout code. 336 reset timers so it's save to use udelay() in timeout code.
332 337
333 * Patch by Mathias Kรผster, 23 Nov 2004: 338 * Patch by Mathias Kรผster, 23 Nov 2004:
334 add udelay support for the mcf5282 cpu 339 add udelay support for the mcf5282 cpu
335 340
336 * Patch by Tolunay Orkun, 16 November 2004: 341 * Patch by Tolunay Orkun, 16 November 2004:
337 fix incorrect onboard Xilinx CPLD base address 342 fix incorrect onboard Xilinx CPLD base address
338 343
339 * Patch by Jerry Van Baren, 08 Nov 2004: 344 * Patch by Jerry Van Baren, 08 Nov 2004:
340 - Add low-boot option for MPC8260ADS board (if lowboot is selected, 345 - Add low-boot option for MPC8260ADS board (if lowboot is selected,
341 the jumper for the HRCW source should select flash. If lowboot is 346 the jumper for the HRCW source should select flash. If lowboot is
342 not selected, the jumper for the HRCW source should select the 347 not selected, the jumper for the HRCW source should select the
343 BCSR. 348 BCSR.
344 - change default load base address to 0x00400000 349 - change default load base address to 0x00400000
345 350
346 * Patch by Yuli Barcohen, 08 Nov 2004: 351 * Patch by Yuli Barcohen, 08 Nov 2004:
347 Add support for Analogue & Micro Rattler boards. 352 Add support for Analogue & Micro Rattler boards.
348 Tested on Rattler8248. 353 Tested on Rattler8248.
349 354
350 * Patch by Andre Renaud, 08 Nov 2004: 355 * Patch by Andre Renaud, 08 Nov 2004:
351 Fix watchdog support in common/lcd.c 356 Fix watchdog support in common/lcd.c
352 357
353 * Patch by Marc Leeman, 05 Nov 2003: 358 * Patch by Marc Leeman, 05 Nov 2003:
354 Enable all 4 PCMBRW buffers for the MPC8245 processor since the CPU 359 Enable all 4 PCMBRW buffers for the MPC8245 processor since the CPU
355 bug only affects the XPC8245 processors 360 bug only affects the XPC8245 processors
356 361
357 * Patches by Josef Wagner, 29 Oct 2004: 362 * Patches by Josef Wagner, 29 Oct 2004:
358 - Add support for MicroSys CPU87 board 363 - Add support for MicroSys CPU87 board
359 - Add support for MicroSys PM854 board 364 - Add support for MicroSys PM854 board
360 365
361 * Patch by Jian Zhang, 02 Nov 2004: 366 * Patch by Jian Zhang, 02 Nov 2004:
362 Add 16-bit NAND support 367 Add 16-bit NAND support
363 368
364 * Patch by Scott McNutt, 01 Nov 2004: 369 * Patch by Scott McNutt, 01 Nov 2004:
365 Add missing NIOS/NIOS2 support for "iminfo" command 370 Add missing NIOS/NIOS2 support for "iminfo" command
366 371
367 * Patch by Detlev Zundel, 29 Oct 2004: 372 * Patch by Detlev Zundel, 29 Oct 2004:
368 Add missing NIOS/NIOS2 support for "mkimage" tool. 373 Add missing NIOS/NIOS2 support for "mkimage" tool.
369 374
370 * Patch by David Adair, 27 Oct 2004: 375 * Patch by David Adair, 27 Oct 2004:
371 Add missing 440GX SDRAM Controller reset 376 Add missing 440GX SDRAM Controller reset
372 377
373 * Patch by Steven Scholz, 25 Oct 2004: 378 * Patch by Steven Scholz, 25 Oct 2004:
374 Declare reset_cpu() in include/common.h instead locally 379 Declare reset_cpu() in include/common.h instead locally
375 380
376 * Patch by Yusdi Santoso, 22 Oct 2004: 381 * Patch by Yusdi Santoso, 22 Oct 2004:
377 - Add support for HIDDEN_DRAGON board 382 - Add support for HIDDEN_DRAGON board
378 - fix endianess problem in driver/rtl1839.c 383 - fix endianess problem in driver/rtl1839.c
379 384
380 * Patch by Allen Curtis, 21 Oct 2004: 385 * Patch by Allen Curtis, 21 Oct 2004:
381 support multiple serial ports 386 support multiple serial ports
382 387
383 * Patch by Richard Klingler, 03 Apr 2005: 388 * Patch by Richard Klingler, 03 Apr 2005:
384 Add call to eth_halt() in net/net.c when called functions fail 389 Add call to eth_halt() in net/net.c when called functions fail
385 after eth_init() has been called. 390 after eth_init() has been called.
386 391
387 * Patch by Sam Song, 3 April 2005: 392 * Patch by Sam Song, 3 April 2005:
388 - Update README.Netconsole 393 - Update README.Netconsole
389 - Update README 394 - Update README
390 395
391 * Prepare for SoC rework of ARM code: 396 * Prepare for SoC rework of ARM code:
392 - rename CONFIG_BOOTBINFUNC into CONFIG_INIT_CRITICAL 397 - rename CONFIG_BOOTBINFUNC into CONFIG_INIT_CRITICAL
393 - rename memsetup into lowlevel_init (function name and source files) 398 - rename memsetup into lowlevel_init (function name and source files)
394 Patch by Steven Scholz, 03 Apr 2005: 399 Patch by Steven Scholz, 03 Apr 2005:
395 - create SoC specific directories include/asm-arm/arch-imx and 400 - create SoC specific directories include/asm-arm/arch-imx and
396 include/asm-arm/arch-s3c24x0 401 include/asm-arm/arch-s3c24x0
397 402
398 * Fix problems with SNTP support; 403 * Fix problems with SNTP support;
399 enable SNTP support in some boards. 404 enable SNTP support in some boards.
400 405
401 * Patches by Martin Krause, 01 Apr 2005: 406 * Patches by Martin Krause, 01 Apr 2005:
402 - Fix flash erase timeout on CMC_PU2 407 - Fix flash erase timeout on CMC_PU2
403 - Add automatic HW detection for CMC_PU2 and CMC_BASIC 408 - Add automatic HW detection for CMC_PU2 and CMC_BASIC
404 409
405 * Patch by Steven Scholz, 13 March 2005: 410 * Patch by Steven Scholz, 13 March 2005:
406 fix cache enabling for AT91RM9200 411 fix cache enabling for AT91RM9200
407 412
408 * Patch by Masami Komiya, 30 Mar 2005: 413 * Patch by Masami Komiya, 30 Mar 2005:
409 add SNTP support and expand time server and time offset fields of 414 add SNTP support and expand time server and time offset fields of
410 DHCP support. See doc/README.SNTP 415 DHCP support. See doc/README.SNTP
411 416
412 * Patch by Steven Scholz, 13 Dec 2004: 417 * Patch by Steven Scholz, 13 Dec 2004:
413 Fix bug in at91rm920 ethernet driver 418 Fix bug in at91rm920 ethernet driver
414 419
415 * Patch by Steven Scholz, 13 Dec 2004: 420 * Patch by Steven Scholz, 13 Dec 2004:
416 Remove duplicated code by merging memsetup.S files for 421 Remove duplicated code by merging memsetup.S files for
417 at91rm9200 boards into one cpu/at91rm9200/lowlevel.S 422 at91rm9200 boards into one cpu/at91rm9200/lowlevel.S
418 423
419 * Patch by Detlev Zundel, 31 Mar 2005: 424 * Patch by Detlev Zundel, 31 Mar 2005:
420 Cleanup duplicate definition of overwrite_console() 425 Cleanup duplicate definition of overwrite_console()
421 426
422 * Update TQM5200 configuration; 427 * Update TQM5200 configuration;
423 prepare for Rev. 200 starter kit boards 428 prepare for Rev. 200 starter kit boards
424 429
425 * Patch by Scott McNutt, 21 Oct 2004: 430 * Patch by Scott McNutt, 21 Oct 2004:
426 Add support for Nios-II EPCS Controller core. 431 Add support for Nios-II EPCS Controller core.
427 432
428 * Patch by Scott McNutt, 20 Oct 2004: 433 * Patch by Scott McNutt, 20 Oct 2004:
429 Nios-II cleanups: 434 Nios-II cleanups:
430 - Add sysid command (Nios-II only). 435 - Add sysid command (Nios-II only).
431 - Locate default exception trampoline at proper offset. 436 - Locate default exception trampoline at proper offset.
432 - Implement I/O routines (readb, writeb, etc) 437 - Implement I/O routines (readb, writeb, etc)
433 - Implement do_bootm_linux 438 - Implement do_bootm_linux
434 439
435 * Patches by Martin Krause, 22 Mar 2005: 440 * Patches by Martin Krause, 22 Mar 2005:
436 - use TQM5200_auto as MAKEALL target for TQM5200 systems 441 - use TQM5200_auto as MAKEALL target for TQM5200 systems
437 - add support for SM501 graphics controller 442 - add support for SM501 graphics controller
438 - add support for graphic console on TQM5200 443 - add support for graphic console on TQM5200
439 - add support for TQM5200 Rev 200 444 - add support for TQM5200 Rev 200
440 - cleanup, fix typo in include/configs/TQM5200.h 445 - cleanup, fix typo in include/configs/TQM5200.h
441 446
442 * Patch by Manfred Baral, 17 Mar 2005: 447 * Patch by Manfred Baral, 17 Mar 2005:
443 Fix typo 448 Fix typo
444 449
445 * Fix RTC configuration for PPChameleon board 450 * Fix RTC configuration for PPChameleon board
446 451
447 * Cleanup, fix typo in include/configs/TQM5200.h 452 * Cleanup, fix typo in include/configs/TQM5200.h
448 453
449 * Patch by Stefan Roese, 16 Mar 2005: 454 * Patch by Stefan Roese, 16 Mar 2005:
450 Update for esd auto_update and hh405 board 455 Update for esd auto_update and hh405 board
451 456
452 * Adapt for U-Boot image size (new features enabled) on TQM5200 457 * Adapt for U-Boot image size (new features enabled) on TQM5200
453 458
454 * Update code for TQM8540 board (and 85xx in general): 459 * Update code for TQM8540 board (and 85xx in general):
455 - Change the name of the Ethernet driver: MOTO ENET -> ENET 460 - Change the name of the Ethernet driver: MOTO ENET -> ENET
456 - Reformat boot messages 461 - Reformat boot messages
457 - Enable redundant environment 462 - Enable redundant environment
458 - Replace the -O2 optimization flag with -mno-string 463 - Replace the -O2 optimization flag with -mno-string
459 464
460 * Patch by David Brownell, 10 Mar 2005: 465 * Patch by David Brownell, 10 Mar 2005:
461 Restore copyright statements in OHCI drivers. 466 Restore copyright statements in OHCI drivers.
462 467
463 * Add support for TQM8540 board 468 * Add support for TQM8540 board
464 469
465 * Patch by Detlev Zundel, 14 Mar 2005: 470 * Patch by Detlev Zundel, 14 Mar 2005:
466 NC650: changed NAND flash addressing to using UPMB 471 NC650: changed NAND flash addressing to using UPMB
467 472
468 * Patch by Stefan Roese, 14 Mar 2005: 473 * Patch by Stefan Roese, 14 Mar 2005:
469 Update for esd voh405 fpga image 474 Update for esd voh405 fpga image
470 475
471 * INKA4x0: Allow initialization of LCD backlight dimming from 476 * INKA4x0: Allow initialization of LCD backlight dimming from
472 "brightness" environment variable. 477 "brightness" environment variable.
473 478
474 * Add port initialization for digital I/O on INKA4x0 479 * Add port initialization for digital I/O on INKA4x0
475 480
476 * Patch by Stefan Roese, 01 Mar 2005: 481 * Patch by Stefan Roese, 01 Mar 2005:
477 Update for esd boards dp405 and hub405 482 Update for esd boards dp405 and hub405
478 483
479 * Fix get_partition_info() parameter error in all other calls 484 * Fix get_partition_info() parameter error in all other calls
480 (common/cmd_ide.c, common/cmd_reiser.c, common/cmd_scsi.c). 485 (common/cmd_ide.c, common/cmd_reiser.c, common/cmd_scsi.c).
481 486
482 * Enable USB and IDE support for INKA4x0 board 487 * Enable USB and IDE support for INKA4x0 board
483 488
484 * Patch by Andrew Dyer, 28 Feb 2005: 489 * Patch by Andrew Dyer, 28 Feb 2005:
485 fix ext2load passing an incorrect pointer to get_partition_info() 490 fix ext2load passing an incorrect pointer to get_partition_info()
486 resulting in load failure for devices other than 0 491 resulting in load failure for devices other than 0
487 492
488 * Add support for SRAM and 2 x Quad UARTs on INKA4x0 board 493 * Add support for SRAM and 2 x Quad UARTs on INKA4x0 board
489 494
490 * Cleanup USB and partition defines 495 * Cleanup USB and partition defines
491 496
492 * Add support for ext2 filesystems and image timestamps to TQM5200 board 497 * Add support for ext2 filesystems and image timestamps to TQM5200 board
493 498
494 * Add reset code for Coral-P on INKA4x0 board 499 * Add reset code for Coral-P on INKA4x0 board
495 500
496 * Patch by Martin Krause, 28 Jun 2004: 501 * Patch by Martin Krause, 28 Jun 2004:
497 Update for TRAB board. 502 Update for TRAB board.
498 503
499 * Fix some missing "volatile"s in MPC5xxx FEC driver 504 * Fix some missing "volatile"s in MPC5xxx FEC driver
500 505
501 * Fix cirrus voltage detection (for CPC45) 506 * Fix cirrus voltage detection (for CPC45)
502 507
503 * Fix byteorder problem in usbboot and scsiboot commands. 508 * Fix byteorder problem in usbboot and scsiboot commands.
504 509
505 * Patch by Cajus Hahn, 04 Feb 2005: 510 * Patch by Cajus Hahn, 04 Feb 2005:
506 - don't insist on leading '/' for filename in ext2load 511 - don't insist on leading '/' for filename in ext2load
507 - set default partition to useful value (1) in ext2load 512 - set default partition to useful value (1) in ext2load
508 513
509 * Patch by Andrew Dyer, 08 Jan 2005: 514 * Patch by Andrew Dyer, 08 Jan 2005:
510 fix wrong return codes in ext2 code 515 fix wrong return codes in ext2 code
511 516
512 * Removed '--no-warn-mismatch' option from Makefile. This option 517 * Removed '--no-warn-mismatch' option from Makefile. This option
513 makes 'ld' to overlook binary objects compatibility. 518 makes 'ld' to overlook binary objects compatibility.
514 519
515 * Moved $(PLATFORM_LIBS) from the library group (--start-group ... 520 * Moved $(PLATFORM_LIBS) from the library group (--start-group ...
516 --end-group) outside of the group. This will make 'ld' to do 521 --end-group) outside of the group. This will make 'ld' to do
517 _multiple_ search in the library group when resolving symbol 522 _multiple_ search in the library group when resolving symbol
518 references and do only a _single_ seach in libgcc.a after the group 523 references and do only a _single_ seach in libgcc.a after the group
519 search. 524 search.
520 525
521 * Fix stability problems on CPC45 board again. 526 * Fix stability problems on CPC45 board again.
522 527
523 * Make image detection for diskboot / usbboot / scsiboot more robust 528 * Make image detection for diskboot / usbboot / scsiboot more robust
524 (also check header checksum) 529 (also check header checksum)
525 530
526 * Update CPC45 board configuration. 531 * Update CPC45 board configuration.
527 532
528 * Add USB and PCI support for INKA4x0 board 533 * Add USB and PCI support for INKA4x0 board
529 534
530 * Fix IDE stability problems on CPC45 board (needs 2 x EIEIO). 535 * Fix IDE stability problems on CPC45 board (needs 2 x EIEIO).
531 536
532 * Code cleanup 537 * Code cleanup
533 538
534 * Patch by Robin Getz, 13 Oct 2004: 539 * Patch by Robin Getz, 13 Oct 2004:
535 Add standalone application to change SMC91C111 MAC addresses, 540 Add standalone application to change SMC91C111 MAC addresses,
536 see examples/README.smc91111_eeprom 541 see examples/README.smc91111_eeprom
537 542
538 * Patch by Xiaogeng (Shawn) Jin, 12 Oct 2004: 543 * Patch by Xiaogeng (Shawn) Jin, 12 Oct 2004:
539 Fix Flash support for ARM Integrator CP. 544 Fix Flash support for ARM Integrator CP.
540 545
541 * Patch by Richard Woodruff, 10 Jan 2005: 546 * Patch by Richard Woodruff, 10 Jan 2005:
542 Update support for OMAP2420 (ARM11) and H4 board: 547 Update support for OMAP2420 (ARM11) and H4 board:
543 o clean up and add new types to H4 memory probe code. 548 o clean up and add new types to H4 memory probe code.
544 o fix to work with internal boot. 549 o fix to work with internal boot.
545 o added PRCM config III operation. 550 o added PRCM config III operation.
546 o fix marginal flash timings. 551 o fix marginal flash timings.
547 o add revison ATAG usage. 552 o add revison ATAG usage.
548 o enable voltage scaling at power chip. 553 o enable voltage scaling at power chip.
549 o fix compile error for i2c. 554 o fix compile error for i2c.
550 555
551 * Fix network problem (error when receiving multiple ARP packets) 556 * Fix network problem (error when receiving multiple ARP packets)
552 557
553 * Patch by Daniel Poirot, 12 Oct 2004: 558 * Patch by Daniel Poirot, 12 Oct 2004:
554 Add support for Wind River sbc405 board 559 Add support for Wind River sbc405 board
555 560
556 * Patch by Rainer Brestan, 12 Oct 2004: 561 * Patch by Rainer Brestan, 12 Oct 2004:
557 Make examples/Makefile more robust 562 Make examples/Makefile more robust
558 563
559 * Patch by Sam Song, 11 October 2004: 564 * Patch by Sam Song, 11 October 2004:
560 - Add RESET/PREBOOT/AUTOBOOT support for RPXlite_DW board 565 - Add RESET/PREBOOT/AUTOBOOT support for RPXlite_DW board
561 - Adjust CPU:BUS frequency ratio 1:1 when core frequency 566 - Adjust CPU:BUS frequency ratio 1:1 when core frequency
562 less than 50MHz 567 less than 50MHz
563 568
564 * Patch by Sam Song, 10 Oct 2004: 569 * Patch by Sam Song, 10 Oct 2004:
565 Fix a parameter error in run_command() in main.c 570 Fix a parameter error in run_command() in main.c
566 571
567 * Patch by Richard Woodruff, 01 Oct 2004: 572 * Patch by Richard Woodruff, 01 Oct 2004:
568 add support for the TI OMAP2420 processor and its H4 reference 573 add support for the TI OMAP2420 processor and its H4 reference
569 board 574 board
570 575
571 * Patch by Christian Pellegrin, 24 Sep 2004: 576 * Patch by Christian Pellegrin, 24 Sep 2004:
572 Added support for NE2000 compatible (DP8390, DP83902) NICs. 577 Added support for NE2000 compatible (DP8390, DP83902) NICs.
573 578
574 * Patch by Leif Lindholm, 23 Sep 2004: 579 * Patch by Leif Lindholm, 23 Sep 2004:
575 add support for the AMD db1550 board 580 add support for the AMD db1550 board
576 581
577 * Patch by Travis Sawyer, 15 Sep 2004: 582 * Patch by Travis Sawyer, 15 Sep 2004:
578 Add CONFIG_SERIAL_MULTI support for ppc4xx, 583 Add CONFIG_SERIAL_MULTI support for ppc4xx,
579 update README.serial_multi 584 update README.serial_multi
580 585
581 * Patches by David Snowdon, 07 Sep 2004: 586 * Patches by David Snowdon, 07 Sep 2004:
582 - add u-boot.hex target in the top level Makefile 587 - add u-boot.hex target in the top level Makefile
583 - add support for the UNSW/NICTA PLEB 2 board (pleb2) 588 - add support for the UNSW/NICTA PLEB 2 board (pleb2)
584 - use -mtune=xscale and -march=armv5 options for PXA 589 - use -mtune=xscale and -march=armv5 options for PXA
585 590
586 * Patch by Florian Schlote, 08 Sep 2004: 591 * Patch by Florian Schlote, 08 Sep 2004:
587 Add support for SenTec-COBRA5272-board (Coldfire). 592 Add support for SenTec-COBRA5272-board (Coldfire).
588 593
589 * Patch by Gleb Natapov, 07 Sep 2004: 594 * Patch by Gleb Natapov, 07 Sep 2004:
590 mpc824x: set PCI latency timer to a sane value 595 mpc824x: set PCI latency timer to a sane value
591 (is 0 after reset). 596 (is 0 after reset).
592 597
593 * Patch by Kurt Stremerch, 03 Sep 2004: 598 * Patch by Kurt Stremerch, 03 Sep 2004:
594 Add bitstream configuration option for fpga command (Xilinx only). 599 Add bitstream configuration option for fpga command (Xilinx only).
595 600
596 * Patch by Kurt Stremerch, 03 Sep 2004: 601 * Patch by Kurt Stremerch, 03 Sep 2004:
597 Add Xilinx Spartan2E family FPGA support 602 Add Xilinx Spartan2E family FPGA support
598 603
599 * Patch by Jeff Angielski, 02 Sep 2004: 604 * Patch by Jeff Angielski, 02 Sep 2004:
600 Add Added support for H2 revision of the EP8260 board. 605 Add Added support for H2 revision of the EP8260 board.
601 Fixed formatting for some of the EP8260 related source files. 606 Fixed formatting for some of the EP8260 related source files.
602 607
603 * Patch by Jon Loeliger, 02 Sep 2004: 608 * Patch by Jon Loeliger, 02 Sep 2004:
604 Reset monitor size back to 256 so environment can be written 609 Reset monitor size back to 256 so environment can be written
605 to flash on MPC85xx ADS and CDS releases. 610 to flash on MPC85xx ADS and CDS releases.
606 611
607 * Patch by Paolo Broggini, 02 Sep 2004: 612 * Patch by Paolo Broggini, 02 Sep 2004:
608 Make BSS clearing on ARM systems more robust 613 Make BSS clearing on ARM systems more robust
609 614
610 * Patch by Yue Hu and Joe, 01 Sep 2004: 615 * Patch by Yue Hu and Joe, 01 Sep 2004:
611 - add PCI support for ixp425; 616 - add PCI support for ixp425;
612 - add EEPRO100 suppor tfor ixdp425 board. 617 - add EEPRO100 suppor tfor ixdp425 board.
613 618
614 * Fix problem with protected sector detection in driver/cfi_flash.c 619 * Fix problem with protected sector detection in driver/cfi_flash.c
615 620
616 ====================================================================== 621 ======================================================================
617 Changes for U-Boot 1.1.2: 622 Changes for U-Boot 1.1.2:
618 ====================================================================== 623 ======================================================================
619 624
620 * Code cleanup, mostly for GCC-3.3.x 625 * Code cleanup, mostly for GCC-3.3.x
621 626
622 * Cleanup confusing use of CONFIG_ETH*ADDR - ust his only to 627 * Cleanup confusing use of CONFIG_ETH*ADDR - ust his only to
623 pre-define a MAC address; use CONFIG_HAS_ETH* to enable support for 628 pre-define a MAC address; use CONFIG_HAS_ETH* to enable support for
624 additional ethernet addresses. 629 additional ethernet addresses.
625 630
626 * Cleanup drivers/i82365.c - avoid duplication of code 631 * Cleanup drivers/i82365.c - avoid duplication of code
627 632
628 * Fix bogus "cannot span across banks" flash error message 633 * Fix bogus "cannot span across banks" flash error message
629 634
630 * Code cleanup 635 * Code cleanup
631 636
632 * Add support for CompactFlash for the CPC45 Board. 637 * Add support for CompactFlash for the CPC45 Board.
633 638
634 * Fix problems with CMC_PU2 flash driver. 639 * Fix problems with CMC_PU2 flash driver.
635 640
636 * Cleanup: 641 * Cleanup:
637 - avoid trigraph warning in fs/ext2/ext2fs.c 642 - avoid trigraph warning in fs/ext2/ext2fs.c
638 - rename UC100 -> uc100 643 - rename UC100 -> uc100
639 644
640 * Add support for UC100 board 645 * Add support for UC100 board
641 646
642 * Patch by Stefan Roese, 16 Dez 2004: 647 * Patch by Stefan Roese, 16 Dez 2004:
643 - ext2fs support added 648 - ext2fs support added
644 - Tundra universe support added 649 - Tundra universe support added
645 - Coldfire MCF5249 support added (no preloader needed!) 650 - Coldfire MCF5249 support added (no preloader needed!)
646 - MCF5249 board TASREG added 651 - MCF5249 board TASREG added
647 - PPC boards added: APC405, CPCI405DT, CPCI750, G2000, HH405, 652 - PPC boards added: APC405, CPCI405DT, CPCI750, G2000, HH405,
648 VOM405, WUH405 653 VOM405, WUH405
649 - some esd boards updated 654 - some esd boards updated
650 - memory commands "mdc" and "mwc" added for cyclic read/write 655 - memory commands "mdc" and "mwc" added for cyclic read/write
651 (CONFIG_MX_CYCLIC, see README for further description) 656 (CONFIG_MX_CYCLIC, see README for further description)
652 657
653 * Add support for INKA4X0 board 658 * Add support for INKA4X0 board
654 659
655 * Patch by Steven Scholz, 12 Dec 2004: 660 * Patch by Steven Scholz, 12 Dec 2004:
656 Fix typo in AT91 memory setup. 661 Fix typo in AT91 memory setup.
657 662
658 * Patch by Martin Krause, 27 Oct 2004: 663 * Patch by Martin Krause, 27 Oct 2004:
659 - add support for "STK52xx" board (including PS/2 multiplexer) 664 - add support for "STK52xx" board (including PS/2 multiplexer)
660 - add hardware detection for TQM5200 665 - add hardware detection for TQM5200
661 666
662 * Clean up CMC PU2 flash driver 667 * Clean up CMC PU2 flash driver
663 668
664 * Update MAINTAINERS file 669 * Update MAINTAINERS file
665 670
666 * Fix bug in MPC823 LCD driver 671 * Fix bug in MPC823 LCD driver
667 672
668 * Fix udelay() on AT91RM9200 for delays < 1 ms. 673 * Fix udelay() on AT91RM9200 for delays < 1 ms.
669 674
670 * Enable long help on CMC PU2 board; 675 * Enable long help on CMC PU2 board;
671 fix reset issue; 676 fix reset issue;
672 increase CPU speed from 179 to 207 MHz. 677 increase CPU speed from 179 to 207 MHz.
673 678
674 * Fix smc91111 ethernet driver for Xaeniax board (need to handle 679 * Fix smc91111 ethernet driver for Xaeniax board (need to handle
675 unaligned tail part specially). 680 unaligned tail part specially).
676 681
677 * Update for AT91RM9200DK and CMC_PU2 boards: 682 * Update for AT91RM9200DK and CMC_PU2 boards:
678 - Enable booting directly from flash 683 - Enable booting directly from flash
679 - fix CMC_PU2 flash driver 684 - fix CMC_PU2 flash driver
680 685
681 * Fix mkimage usage message 686 * Fix mkimage usage message
682 687
683 * Map SRAM on NC650 board 688 * Map SRAM on NC650 board
684 689
685 * Work around for Ethernet problems on Xaeniax board 690 * Work around for Ethernet problems on Xaeniax board
686 691
687 * Patch by TsiChung Liew, 23 Sep 2004: 692 * Patch by TsiChung Liew, 23 Sep 2004:
688 - add support for MPC8220 CPU 693 - add support for MPC8220 CPU
689 - Add support for Alaska and Yukon boards 694 - Add support for Alaska and Yukon boards
690 695
691 * Fix configuration for ERIC board (needs more room) 696 * Fix configuration for ERIC board (needs more room)
692 697
693 * Adjust MIPS compiler options at run-time depending on tools version 698 * Adjust MIPS compiler options at run-time depending on tools version
694 ("-march=4kc -mtune=4kc -Wa,-mips_allow_branch_to_undefined" for new, 699 ("-march=4kc -mtune=4kc -Wa,-mips_allow_branch_to_undefined" for new,
695 "-mcpu=4kc" for old tools) 700 "-mcpu=4kc" for old tools)
696 701
697 * Add passing of the command line and memory size information to the 702 * Add passing of the command line and memory size information to the
698 kernel on xaeniax board. 703 kernel on xaeniax board.
699 704
700 * Enable NAND flash support for NC650 board. 705 * Enable NAND flash support for NC650 board.
701 706
702 * Patch by Thomas Lange 07 Oct 2004: 707 * Patch by Thomas Lange 07 Oct 2004:
703 Updated README for DBAu1x00 boards to match current status 708 Updated README for DBAu1x00 boards to match current status
704 709
705 * Patch by Philippe Robin, 28 Sept 2004: 710 * Patch by Philippe Robin, 28 Sept 2004:
706 Fix Flash support for Versatile. 711 Fix Flash support for Versatile.
707 712
708 * Patch by Roger Blofeld, 16 Sep 2004: 713 * Patch by Roger Blofeld, 16 Sep 2004:
709 Fix timeout for DHCP command retry 714 Fix timeout for DHCP command retry
710 715
711 * Patch by Pantelis Antoniou, 14 Sep 2004: 716 * Patch by Pantelis Antoniou, 14 Sep 2004:
712 Fix early serial hang when CONFIG_SERIAL_MULTI is defined. 717 Fix early serial hang when CONFIG_SERIAL_MULTI is defined.
713 718
714 * Patch by Pantelis Antoniou, 14 Sep 2004: 719 * Patch by Pantelis Antoniou, 14 Sep 2004:
715 Kick watchdog when bz-decompressing 720 Kick watchdog when bz-decompressing
716 721
717 * Fix CFG_HZ problems on AT91RM9200 systems 722 * Fix CFG_HZ problems on AT91RM9200 systems
718 [Remember: CFG_HZ should be 1000 on ALL systems!] 723 [Remember: CFG_HZ should be 1000 on ALL systems!]
719 724
720 * Patch by Gridish Shlomi, 30 Aug 2004: 725 * Patch by Gridish Shlomi, 30 Aug 2004:
721 - Add support to revA version of PQ27 and PQ27E. 726 - Add support to revA version of PQ27 and PQ27E.
722 - Reverted MPC8260ADS baudrate back to original 115200 727 - Reverted MPC8260ADS baudrate back to original 115200
723 728
724 * Patch by Hojin, 17 Sep 2004: 729 * Patch by Hojin, 17 Sep 2004:
725 Fix typo in cfi_flash.c 730 Fix typo in cfi_flash.c
726 731
727 * Patch by Mark Jonas, 09 September 2004: 732 * Patch by Mark Jonas, 09 September 2004:
728 mtest's data line test (with CFG_ALT_MEMTEST set) returned a wrong 733 mtest's data line test (with CFG_ALT_MEMTEST set) returned a wrong
729 error message 734 error message
730 735
731 * Patch by Mark Jonas, 31 August 2004: 736 * Patch by Mark Jonas, 31 August 2004:
732 Added option CFG_XLB_PIPELINING to enable XLB pipelining. This 737 Added option CFG_XLB_PIPELINING to enable XLB pipelining. This
733 improves FTP performance for MPC5200 systems. Enabled for IceCube 738 improves FTP performance for MPC5200 systems. Enabled for IceCube
734 by default. 739 by default.
735 740
736 * Patch by Michael Bendzick, 30 Aug 2004: 741 * Patch by Michael Bendzick, 30 Aug 2004:
737 - Improve platform.S code for omap1510inn that detects whether code 742 - Improve platform.S code for omap1510inn that detects whether code
738 is running from SDRAM or not. Patch allows SDRAM to be configured 743 is running from SDRAM or not. Patch allows SDRAM to be configured
739 if code is running out of SRAM at 0x20000000. 744 if code is running out of SRAM at 0x20000000.
740 745
741 * Patch by Frederick Klatt, 30 Aug 2004: 746 * Patch by Frederick Klatt, 30 Aug 2004:
742 Add support for the Wind River SBC8540/SBC8560 boards 747 Add support for the Wind River SBC8540/SBC8560 boards
743 748
744 * Configure SX1 board to use drivers/cfi_flash.c 749 * Configure SX1 board to use drivers/cfi_flash.c
745 750
746 * Patches by Michael Bendzick, 30 Aug 2004: 751 * Patches by Michael Bendzick, 30 Aug 2004:
747 - Configure omap1510inn board to use drivers/cfi_flash.c 752 - Configure omap1510inn board to use drivers/cfi_flash.c
748 - Make drivers/cfi_flash.c protect environment and redundant 753 - Make drivers/cfi_flash.c protect environment and redundant
749 environment. 754 environment.
750 755
751 * Patch by Steven Scholz, 23 Jun 2004: 756 * Patch by Steven Scholz, 23 Jun 2004:
752 - Add script (tools/img2brec.sh) to programm U-Boot into 757 - Add script (tools/img2brec.sh) to programm U-Boot into
753 (Synch)Flash using the Bootstrap Mode of the MC9328MX1/L 758 (Synch)Flash using the Bootstrap Mode of the MC9328MX1/L
754 759
755 * Patches by Scott McNutt, 24 Aug 2004: 760 * Patches by Scott McNutt, 24 Aug 2004:
756 - Add support for Altera Nios-II processors. 761 - Add support for Altera Nios-II processors.
757 - Add support for Psyent PCI-5441 board. 762 - Add support for Psyent PCI-5441 board.
758 - Add support for Psyent PK1C20 board. 763 - Add support for Psyent PK1C20 board.
759 764
760 * Patches by Jon Loeliger, 24 Aug 2004: 765 * Patches by Jon Loeliger, 24 Aug 2004:
761 - Add support for the MPC8541 and MPC8555 CDS boards 766 - Add support for the MPC8541 and MPC8555 CDS boards
762 - Cleanup eth?addr handling: make dependent on CONFIG_ETH?ADDR 767 - Cleanup eth?addr handling: make dependent on CONFIG_ETH?ADDR
763 - Convert MPC85xxADS to use common CFI flash driver 768 - Convert MPC85xxADS to use common CFI flash driver
764 - Fix PCI window on MPC85xx; remove unneeded PCI initialization 769 - Fix PCI window on MPC85xx; remove unneeded PCI initialization
765 from board_early_init_f() 770 from board_early_init_f()
766 - Provide SW workaround for PCI initialization on 85xx CDS 771 - Provide SW workaround for PCI initialization on 85xx CDS
767 772
768 * Patches by George G. Davis, 24 Aug 2004: 773 * Patches by George G. Davis, 24 Aug 2004:
769 - Enable ramdisk/initrd tagged param support for omap1610h2_config 774 - Enable ramdisk/initrd tagged param support for omap1610h2_config
770 - Remove static network setup defaults from mx1ads_config 775 - Remove static network setup defaults from mx1ads_config
771 - update ARM boards to use constants from mach-types.h 776 - update ARM boards to use constants from mach-types.h
772 777
773 * Patch by Gary Jennejohn, 04 Oct 2004: 778 * Patch by Gary Jennejohn, 04 Oct 2004:
774 - fix I2C on at91rm9200 779 - fix I2C on at91rm9200
775 - add support for Ricoh RS5C372A RTC 780 - add support for Ricoh RS5C372A RTC
776 781
777 * Patch by Gary Jennejohn, 01 Oct 2004: 782 * Patch by Gary Jennejohn, 01 Oct 2004:
778 - add support for CMC PU2 board 783 - add support for CMC PU2 board
779 - add support for I2C on at91rm9200 784 - add support for I2C on at91rm9200
780 785
781 * Patch by Gary Jennejohn, 28 Sep 2004: 786 * Patch by Gary Jennejohn, 28 Sep 2004:
782 fix baudrate handling on at91rm9200 787 fix baudrate handling on at91rm9200
783 788
784 * Patch by Yuli Barcohen, 22 Aug 2004: 789 * Patch by Yuli Barcohen, 22 Aug 2004:
785 - remove ZPC.1900 board-specific flash driver; 790 - remove ZPC.1900 board-specific flash driver;
786 switch the port to generic CFI driver; 791 switch the port to generic CFI driver;
787 - port clean-up 792 - port clean-up
788 793
789 * Patch by Hinko Kocevar, 21 Aug 2004: 794 * Patch by Hinko Kocevar, 21 Aug 2004:
790 Add calc_fbsize() function used with VIDEOLFB_TAG on TRAB 795 Add calc_fbsize() function used with VIDEOLFB_TAG on TRAB
791 796
792 * Clean up tools/bmp_logo.c to not add trailing white space 797 * Clean up tools/bmp_logo.c to not add trailing white space
793 798
794 * Patch by Hinko Kocevar, 21 Aug 2004: 799 * Patch by Hinko Kocevar, 21 Aug 2004:
795 - Group common framebuffer functions in common/lcd.c 800 - Group common framebuffer functions in common/lcd.c
796 - Group common framebuffer macros and #defines in include/lcd.h 801 - Group common framebuffer macros and #defines in include/lcd.h
797 - Provide calc_fbsize() for video ATAG 802 - Provide calc_fbsize() for video ATAG
798 803
799 * Patch by Sam Song, 21 August 2004: 804 * Patch by Sam Song, 21 August 2004:
800 - Fix a typo in README 805 - Fix a typo in README
801 - Align "(RO)" output for "flinfo" after "protect on" 806 - Align "(RO)" output for "flinfo" after "protect on"
802 - Add RESET support for RPXlite_DW board; adjust CPU:BUS frequency 807 - Add RESET support for RPXlite_DW board; adjust CPU:BUS frequency
803 ratio 1:1 when core frequency less than 50MHz 808 ratio 1:1 when core frequency less than 50MHz
804 809
805 * Patches by Hinko Kocevar, 21 Aug 2004: 810 * Patches by Hinko Kocevar, 21 Aug 2004:
806 - fix some "use of label at end of compound statement" warnings 811 - fix some "use of label at end of compound statement" warnings
807 - Define type of LCD panel on lubbock board if CONFIG_LCD is used 812 - Define type of LCD panel on lubbock board if CONFIG_LCD is used
808 813
809 * Patch by Steven Scholz, 16 Aug 2004: 814 * Patch by Steven Scholz, 16 Aug 2004:
810 - Introducing the concept of SoCs "./cpu/$(CPU)/$(SOC)" 815 - Introducing the concept of SoCs "./cpu/$(CPU)/$(SOC)"
811 - creating subdirs for SoCs ./cpu/arm920t/imx and ./cpu/arm920t/s3c24x0 816 - creating subdirs for SoCs ./cpu/arm920t/imx and ./cpu/arm920t/s3c24x0
812 - moving SoC specific code out of cpu/arm920t/ into cpu/arm920t/$(SOC)/ 817 - moving SoC specific code out of cpu/arm920t/ into cpu/arm920t/$(SOC)/
813 - moving drivers/s3c24x0_i2c.c and drivers/serial_imx.c out of drivers/ 818 - moving drivers/s3c24x0_i2c.c and drivers/serial_imx.c out of drivers/
814 into cpu/arm920t/$(SOC)/ 819 into cpu/arm920t/$(SOC)/
815 820
816 * Patches by Sean Chang, 09 Aug 2004: 821 * Patches by Sean Chang, 09 Aug 2004:
817 - Added support for both 8 and 16 bit mode access to System ACE CF 822 - Added support for both 8 and 16 bit mode access to System ACE CF
818 through MPU. 823 through MPU.
819 - Fixed missing System ACE CF device during get FAT partition info 824 - Fixed missing System ACE CF device during get FAT partition info
820 in fat_register_device function. 825 in fat_register_device function.
821 - Enabled System ACE CF support on ML300. 826 - Enabled System ACE CF support on ML300.
822 827
823 * Patch by Sean Chang, 09 Aug 2004: 828 * Patch by Sean Chang, 09 Aug 2004:
824 Synch defines for saveenv and do_saveenv functions so they get 829 Synch defines for saveenv and do_saveenv functions so they get
825 compiled under the same statement. 830 compiled under the same statement.
826 831
827 * Patch by Sean Chang, 09 Aug 2004: 832 * Patch by Sean Chang, 09 Aug 2004:
828 - Added I2C support for ML300. 833 - Added I2C support for ML300.
829 - Added support for ML300 to read out its environment information 834 - Added support for ML300 to read out its environment information
830 stored on the EEPROM. 835 stored on the EEPROM.
831 - Added support to use board specific parameters as part of 836 - Added support to use board specific parameters as part of
832 U-Boot's environment information. 837 U-Boot's environment information.
833 - Updated MLD files to support configuration for new features 838 - Updated MLD files to support configuration for new features
834 above. 839 above.
835 840
836 * Patches by Travis Sawyer, 05 Aug 2004: 841 * Patches by Travis Sawyer, 05 Aug 2004:
837 - Remove incorrect bridge settings for eth group 6 842 - Remove incorrect bridge settings for eth group 6
838 - Add call to setup bridge in ppc_440x_eth_initialize 843 - Add call to setup bridge in ppc_440x_eth_initialize
839 - Fix ppc_440x_eth_init to reset the phy only if its the 844 - Fix ppc_440x_eth_init to reset the phy only if its the
840 first time through, otherwise, just check the phy for the 845 first time through, otherwise, just check the phy for the
841 autonegotiated speed/duplex. This allows the use of netconsole 846 autonegotiated speed/duplex. This allows the use of netconsole
842 - only print the speed/duplex the first time the phy is reset. 847 - only print the speed/duplex the first time the phy is reset.
843 848
844 * Patch by Shlomo Kut, 29 Mar 2004: 849 * Patch by Shlomo Kut, 29 Mar 2004:
845 Add support for MKS Instruments "Quantum" board 850 Add support for MKS Instruments "Quantum" board
846 851
847 * Fix build problem with Cogent boards; 852 * Fix build problem with Cogent boards;
848 avoid using <asm/byteorder.h> when using the host compiler 853 avoid using <asm/byteorder.h> when using the host compiler
849 854
850 * Patch by Ganapathi C, 04 Aug 2004: 855 * Patch by Ganapathi C, 04 Aug 2004:
851 Fix NFS timeout issue 856 Fix NFS timeout issue
852 857
853 * Patch by Yuli Barcohen, 19 Jul 2004: 858 * Patch by Yuli Barcohen, 19 Jul 2004:
854 - Fix host tools building in Cygwin environment 859 - Fix host tools building in Cygwin environment
855 - Fix header files search order for host tools 860 - Fix header files search order for host tools
856 861
857 * Patch by Tom Armistead, 19 Jul 2004: 862 * Patch by Tom Armistead, 19 Jul 2004:
858 Fix kgdb.S support for 74xx_75x cpu 863 Fix kgdb.S support for 74xx_75x cpu
859 864
860 * Patch by Jon Loeliger, 15 Jul 2004: 865 * Patch by Jon Loeliger, 15 Jul 2004:
861 Fix MPC85xx I2C driver 866 Fix MPC85xx I2C driver
862 867
863 * Fix problems with CDROM drive as slave device on Lite5200 IDE bus. 868 * Fix problems with CDROM drive as slave device on Lite5200 IDE bus.
864 869
865 * Patch by Stephen Williams, 15 July 2004 870 * Patch by Stephen Williams, 15 July 2004
866 Set the PCI class code for JSE board as part of PCI interface setup 871 Set the PCI class code for JSE board as part of PCI interface setup
867 872
868 * Patch by Michael Bendzick, 15 Jul 2004: 873 * Patch by Michael Bendzick, 15 Jul 2004:
869 Fix problem with writes with odd sizes in drivers/cfi_flash.c when 874 Fix problem with writes with odd sizes in drivers/cfi_flash.c when
870 CFG_FLASH_USE_BUFFER_WRITE is set 875 CFG_FLASH_USE_BUFFER_WRITE is set
871 876
872 * Patch by Yuli Barcohen, 13 Jul 2004: 877 * Patch by Yuli Barcohen, 13 Jul 2004:
873 Allow clock setting on MPC866/MPC885 series chips according to 878 Allow clock setting on MPC866/MPC885 series chips according to
874 environment variable `cpuclk' 879 environment variable `cpuclk'
875 880
876 * Patch by Yuli Barcohen, 20 Apr 2004: 881 * Patch by Yuli Barcohen, 20 Apr 2004:
877 Remove unnecessary redefine of CPM_DATAONLY_SIZE for MPC826x 882 Remove unnecessary redefine of CPM_DATAONLY_SIZE for MPC826x
878 883
879 * Patch by Vincent Dubey, 24 Sep 2004: 884 * Patch by Vincent Dubey, 24 Sep 2004:
880 Add support for xaeniax board 885 Add support for xaeniax board
881 886
882 * Add comment about non-GPL character of standalone applications to 887 * Add comment about non-GPL character of standalone applications to
883 COPYING file 888 COPYING file
884 889
885 * Fix FEC ethernet problem on NSCU board. 890 * Fix FEC ethernet problem on NSCU board.
886 891
887 * Patch by Gary Jennejohn, 09 Sep 2004: 892 * Patch by Gary Jennejohn, 09 Sep 2004:
888 allow to use USART1 as console port on at91rm9200dk boards 893 allow to use USART1 as console port on at91rm9200dk boards
889 894
890 * Patch by Stefan Roese, 16 Sep 2004: 895 * Patch by Stefan Roese, 16 Sep 2004:
891 Update AR405 board. 896 Update AR405 board.
892 897
893 * Fix SysClk handling for PPChameleon and CATcenter boards 898 * Fix SysClk handling for PPChameleon and CATcenter boards
894 899
895 * Patch by Detlev Zundel, 08 Sep 2004: 900 * Patch by Detlev Zundel, 08 Sep 2004:
896 Update etags build target 901 Update etags build target
897 902
898 * Improve NetConsole support: add support for broadcast destination 903 * Improve NetConsole support: add support for broadcast destination
899 address and buffered input. 904 address and buffered input.
900 905
901 * Cleanup compiler warnings for GCC 3.3.x and later 906 * Cleanup compiler warnings for GCC 3.3.x and later
902 907
903 * Fix problem in cmd_jffs2.c introduced by CFG_JFFS_SINGLE_PART patch 908 * Fix problem in cmd_jffs2.c introduced by CFG_JFFS_SINGLE_PART patch
904 909
905 * Add support for IDS "NC650" board 910 * Add support for IDS "NC650" board
906 911
907 * Add automatic update support for LWMON board 912 * Add automatic update support for LWMON board
908 913
909 * Clear Block Lock-Bits when erasing flash on LWMON board. 914 * Clear Block Lock-Bits when erasing flash on LWMON board.
910 915
911 * Fix return code of "fatload" command 916 * Fix return code of "fatload" command
912 917
913 * Enable MSDOS/VFAT filesystem support for LWMON board 918 * Enable MSDOS/VFAT filesystem support for LWMON board
914 919
915 * Patch by Martin Krause, 03 Aug 2004: 920 * Patch by Martin Krause, 03 Aug 2004:
916 change timing for SM501 graphics controller on TQM5200 module 921 change timing for SM501 graphics controller on TQM5200 module
917 922
918 * Patch by Mark Jonas, 13 July 2004: 923 * Patch by Mark Jonas, 13 July 2004:
919 - Total5200 LCD now run in little endian mode. Endianess conversion 924 - Total5200 LCD now run in little endian mode. Endianess conversion
920 is done in hardware. 925 is done in hardware.
921 - Removed last reference to "console" environment variable. 926 - Removed last reference to "console" environment variable.
922 927
923 * Patches by Lars Munch, 12 Jul 2004: 928 * Patches by Lars Munch, 12 Jul 2004:
924 - move at45.c to board/at91rm9200dk/ since this is at91rm9200dk 929 - move at45.c to board/at91rm9200dk/ since this is at91rm9200dk
925 board specific 930 board specific
926 - split out the LXT971A PHY from ns_9750_eth.h 931 - split out the LXT971A PHY from ns_9750_eth.h
927 - split the dm9161 phy part out of at91rm9200_ether.c 932 - split the dm9161 phy part out of at91rm9200_ether.c
928 933
929 * Patch by Andreas Engel, 12 Jul 2004: 934 * Patch by Andreas Engel, 12 Jul 2004:
930 Replaced hardcoded PL011 clock frequency with config variable. 935 Replaced hardcoded PL011 clock frequency with config variable.
931 Fixed wrong CONFIG_CMD_DFL doc. 936 Fixed wrong CONFIG_CMD_DFL doc.
932 937
933 * Patch by Thomas Viehweger, 09 Jun 2004: 938 * Patch by Thomas Viehweger, 09 Jun 2004:
934 make it possible to remove chpart when there is only one partition 939 make it possible to remove chpart when there is only one partition
935 940
936 * Add support for console over UDP (compatible to Ingo Molnar's 941 * Add support for console over UDP (compatible to Ingo Molnar's
937 netconsole patch under Linux) 942 netconsole patch under Linux)
938 943
939 * Patch by Jon Loeliger, 16 Jul 2004: 944 * Patch by Jon Loeliger, 16 Jul 2004:
940 - support larger DDR memories up to 2G on the PC8540/8560ADS and 945 - support larger DDR memories up to 2G on the PC8540/8560ADS and
941 STXGP3 boards 946 STXGP3 boards
942 - Made MPC8540/8560ADS be 33Mhz PCI by default. 947 - Made MPC8540/8560ADS be 33Mhz PCI by default.
943 - Removed moldy CONFIG_RAM_AS_FLASH, CFG_FLASH_PORT_WIDTH_16 948 - Removed moldy CONFIG_RAM_AS_FLASH, CFG_FLASH_PORT_WIDTH_16
944 and CONFIG_L2_INIT_RAM options. 949 and CONFIG_L2_INIT_RAM options.
945 - Refactor Local Bus initialization out of SDRAM setup. 950 - Refactor Local Bus initialization out of SDRAM setup.
946 - Re-implement new version of LBC11/DDR11 errata workarounds. 951 - Re-implement new version of LBC11/DDR11 errata workarounds.
947 - Moved board specific PCI init parts out of CPU directory. 952 - Moved board specific PCI init parts out of CPU directory.
948 - Added TLB entry for PCI-1 IO Memory 953 - Added TLB entry for PCI-1 IO Memory
949 - Updated README.mpc85xxads 954 - Updated README.mpc85xxads
950 955
951 * Patch by Sascha Hauer, 28 Jun: 956 * Patch by Sascha Hauer, 28 Jun:
952 - add generic support for Motorola i.MX architecture 957 - add generic support for Motorola i.MX architecture
953 - add support for mx1ads, mx1fs2 and scb9328 boards 958 - add support for mx1ads, mx1fs2 and scb9328 boards
954 959
955 * Patches by Marc Leeman, 23 Jul 2004: 960 * Patches by Marc Leeman, 23 Jul 2004:
956 - Add define for the PCI/Memory Buffer Configuration Register 961 - Add define for the PCI/Memory Buffer Configuration Register
957 - corrected comments in cpu/mpc824x/cpu_init.c 962 - corrected comments in cpu/mpc824x/cpu_init.c
958 963
959 * Add support for multiple serial interfaces 964 * Add support for multiple serial interfaces
960 (for example to allow modem dial-in / dial-out) 965 (for example to allow modem dial-in / dial-out)
961 966
962 * Patch by Stefan Roese, 15 Jul 2004: 967 * Patch by Stefan Roese, 15 Jul 2004:
963 cpu/ppc4xx/sdram.c rewritten now using get_ram_size() 968 cpu/ppc4xx/sdram.c rewritten now using get_ram_size()
964 969
965 * Fix NSCU config; add ethernet wakeup code. 970 * Fix NSCU config; add ethernet wakeup code.
966 971
967 * Add link for preloader for Motorola Coldfire to README.m68k 972 * Add link for preloader for Motorola Coldfire to README.m68k
968 973
969 * Patch by Michael Bendzick, 12 Jul 2004: 974 * Patch by Michael Bendzick, 12 Jul 2004:
970 fix output formatting in drivers/cfi_flash.c 975 fix output formatting in drivers/cfi_flash.c
971 976
972 * Patch by Mark Jonas, 02 Jul 2004: 977 * Patch by Mark Jonas, 02 Jul 2004:
973 Fix lowboot (again) on MPC5xxx 978 Fix lowboot (again) on MPC5xxx
974 979
975 * Patch by Curt Brune, 07 Jul 2004: 980 * Patch by Curt Brune, 07 Jul 2004:
976 relocate exception vectors on arm720t if needed 981 relocate exception vectors on arm720t if needed
977 982
978 * Patch by George G. Davis, 06 Jul 2004: 983 * Patch by George G. Davis, 06 Jul 2004:
979 - update mach-types.h to latest arm.linux.org.uk master list 984 - update mach-types.h to latest arm.linux.org.uk master list
980 - Set correct OMAP1610 bi_arch_number for build target 985 - Set correct OMAP1610 bi_arch_number for build target
981 986
982 * Patch by Curt Brune, 06 Jul 2004: 987 * Patch by Curt Brune, 06 Jul 2004:
983 evb4510: add support for timer interrupt; cleanup 988 evb4510: add support for timer interrupt; cleanup
984 989
985 * Patch by Dan Poirot, 06 Jul 2004: 990 * Patch by Dan Poirot, 06 Jul 2004:
986 Fix sbc8260 environment variables 991 Fix sbc8260 environment variables
987 992
988 * Cleanup redundand "console" environment variable 993 * Cleanup redundand "console" environment variable
989 994
990 * Patch by Mark Jonas, 05 Jul 2004: 995 * Patch by Mark Jonas, 05 Jul 2004:
991 add support for the Total5100's and Total5200's LCD screen 996 add support for the Total5100's and Total5200's LCD screen
992 997
993 * Patches by Dan Eisenhut, 01 Jul 2004: 998 * Patches by Dan Eisenhut, 01 Jul 2004:
994 - README fixes. 999 - README fixes.
995 - Move doc2000.h include to prevent compiler warning on some boards 1000 - Move doc2000.h include to prevent compiler warning on some boards
996 1001
997 * Patch by Mark Jonas, 01 Jul 2004: 1002 * Patch by Mark Jonas, 01 Jul 2004:
998 Added support for Total5100 and Total5200 (Rev.1 and Rev.2) 1003 Added support for Total5100 and Total5200 (Rev.1 and Rev.2)
999 MGT5100 and MPC5200 based Freescale platforms. 1004 MGT5100 and MPC5200 based Freescale platforms.
1000 1005
1001 * Patch by Philippe Robin, 01 Jul 2004: 1006 * Patch by Philippe Robin, 01 Jul 2004:
1002 Add initialization for Integrator and versatile board files. 1007 Add initialization for Integrator and versatile board files.
1003 1008
1004 * Patch by Hinko Kocevar, 01 Jun 2004: 1009 * Patch by Hinko Kocevar, 01 Jun 2004:
1005 Fix VFD FB allocation, add LCD FB allocation on ARM 1010 Fix VFD FB allocation, add LCD FB allocation on ARM
1006 1011
1007 * Patch by Martin Krause, 30 Jun 2004: 1012 * Patch by Martin Krause, 30 Jun 2004:
1008 Add support for TQM5200 board 1013 Add support for TQM5200 board
1009 1014
1010 * Patch by Martin Krause, 29 Jun 2004: 1015 * Patch by Martin Krause, 29 Jun 2004:
1011 Add loopw command: infinite write loop on address range 1016 Add loopw command: infinite write loop on address range
1012 1017
1013 * Patches by Yasushi Shoji, 29 Jun 2004: 1018 * Patches by Yasushi Shoji, 29 Jun 2004:
1014 - add empty include/asm-microblaze/processor.h 1019 - add empty include/asm-microblaze/processor.h
1015 - add to CREDITS and MAINTAINERS 1020 - add to CREDITS and MAINTAINERS
1016 - add gd initialization 1021 - add gd initialization
1017 - add MicroBlaze and SUZAKU board to MAKEALL script 1022 - add MicroBlaze and SUZAKU board to MAKEALL script
1018 - add reset support for SUZAKU 1023 - add reset support for SUZAKU
1019 - add flush_cache() for MicroBlaze 1024 - add flush_cache() for MicroBlaze
1020 - add CFG_FLASH_SIZE to include/configs/suzaku.h since we have fixed 1025 - add CFG_FLASH_SIZE to include/configs/suzaku.h since we have fixed
1021 size flash memory on SUZAKU 1026 size flash memory on SUZAKU
1022 1027
1023 * Patch by Prakash Kumar, 27 Jun 2004: 1028 * Patch by Prakash Kumar, 27 Jun 2004:
1024 Add support for the PXA250 based Intrinsyc Cerf board. 1029 Add support for the PXA250 based Intrinsyc Cerf board.
1025 1030
1026 * Patch by Yasushi Shoji, 27 Jun 2004: 1031 * Patch by Yasushi Shoji, 27 Jun 2004:
1027 fix comment in include/common.h 1032 fix comment in include/common.h
1028 1033
1029 * Rename SBC8560 into sbc8560 for consistency 1034 * Rename SBC8560 into sbc8560 for consistency
1030 1035
1031 * Patch by Daniel Poirot, 24 Jun 2004: 1036 * Patch by Daniel Poirot, 24 Jun 2004:
1032 Add support for Wind River's sbc8240 board 1037 Add support for Wind River's sbc8240 board
1033 1038
1034 * Patches by Yasushi Shoji, 26 Jun 2004: 1039 * Patches by Yasushi Shoji, 26 Jun 2004:
1035 - drivers/serial_xuartlite.c: fix "return 0" in void function 1040 - drivers/serial_xuartlite.c: fix "return 0" in void function
1036 - add microblaze support to mkimage tool 1041 - add microblaze support to mkimage tool
1037 1042
1038 * Patch by Fred Klatt, 25 Jun 2004: 1043 * Patch by Fred Klatt, 25 Jun 2004:
1039 Add support for WindRiver's sbc8560 board 1044 Add support for WindRiver's sbc8560 board
1040 1045
1041 * Patch by Nicolas Lacressonniere, 24 Jun 2004 1046 * Patch by Nicolas Lacressonniere, 24 Jun 2004
1042 Small Bugs fixes for "at91rm9200dk" board: 1047 Small Bugs fixes for "at91rm9200dk" board:
1043 - Timing modifications for SPI DataFlash access 1048 - Timing modifications for SPI DataFlash access
1044 - Fix NAND flash detection bug 1049 - Fix NAND flash detection bug
1045 1050
1046 * Patch by Nicolas Lacressonniere, 24 Jun 2004: 1051 * Patch by Nicolas Lacressonniere, 24 Jun 2004:
1047 Add Support for Flash AT49BV6416 for AT91RM9200DK board 1052 Add Support for Flash AT49BV6416 for AT91RM9200DK board
1048 1053
1049 * Patch by Jon Loeliger, 17 June 2004: 1054 * Patch by Jon Loeliger, 17 June 2004:
1050 Completion of the 8540ADS/8560ADS updates: 1055 Completion of the 8540ADS/8560ADS updates:
1051 Fix some PCI and Rapid I/O memory maps, 1056 Fix some PCI and Rapid I/O memory maps,
1052 Initialize both TSEC 1 and 2, 1057 Initialize both TSEC 1 and 2,
1053 Initialize SDRAM 1058 Initialize SDRAM
1054 Update MAINTAINER for 85xx boards and README.mpc85xxads 1059 Update MAINTAINER for 85xx boards and README.mpc85xxads
1055 1060
1056 * Patch by Yuli Barcohen, 16 Jun 2004: 1061 * Patch by Yuli Barcohen, 16 Jun 2004:
1057 Remove obsolete AdderII port which was superseded by unified 1062 Remove obsolete AdderII port which was superseded by unified
1058 AdderII/Adder87x port 1063 AdderII/Adder87x port
1059 1064
1060 * Patch by Ladislav Michl, 16 Jun 2004: 1065 * Patch by Ladislav Michl, 16 Jun 2004:
1061 Fix gcc-3.3.3 warnings for smc91111.c 1066 Fix gcc-3.3.3 warnings for smc91111.c
1062 1067
1063 * Patch by Stefan Roese, 02 Jul 2004: 1068 * Patch by Stefan Roese, 02 Jul 2004:
1064 - Fix bug in 405 ethernet driver; allocated data not cleared! 1069 - Fix bug in 405 ethernet driver; allocated data not cleared!
1065 - Fix problem in 405 i2c driver; don't try to print without console! 1070 - Fix problem in 405 i2c driver; don't try to print without console!
1066 1071
1067 * Patch by Paul Ruhland, 11 Jun 2004: 1072 * Patch by Paul Ruhland, 11 Jun 2004:
1068 Remove debug code from 'board/lpd7a40x/flash.c' 1073 Remove debug code from 'board/lpd7a40x/flash.c'
1069 1074
1070 * Patch by Andrea Marson, 11 Jun 2004: 1075 * Patch by Andrea Marson, 11 Jun 2004:
1071 Update for PPChameleon board: 1076 Update for PPChameleon board:
1072 - support for SysClk @ 25MHz 1077 - support for SysClk @ 25MHz
1073 - support for Silicon Motion SM712 VGA controller 1078 - support for Silicon Motion SM712 VGA controller
1074 - some clean ups 1079 - some clean ups
1075 1080
1076 * Patches by Richard Woodruff, 10 Jun 2004: 1081 * Patches by Richard Woodruff, 10 Jun 2004:
1077 - fix problems with examples/stubs.c for GCC >= 3.4 1082 - fix problems with examples/stubs.c for GCC >= 3.4
1078 - fix problems with gd initialization 1083 - fix problems with gd initialization
1079 1084
1080 * Patch by Curt Brune, 17 May 2004: 1085 * Patch by Curt Brune, 17 May 2004:
1081 - Add support for Samsung S3C4510B CPU (ARM7tdmi based SoC) 1086 - Add support for Samsung S3C4510B CPU (ARM7tdmi based SoC)
1082 - Add support for ESPD-Inc. EVB4510 Board 1087 - Add support for ESPD-Inc. EVB4510 Board
1083 1088
1084 * Patch by Marc Leeman, 11 May 2004: 1089 * Patch by Marc Leeman, 11 May 2004:
1085 Fix for MPC8245 - reading PPC Memory from another device with the 1090 Fix for MPC8245 - reading PPC Memory from another device with the
1086 PPC as PCI target device corrupts data due to interenal hardware 1091 PPC as PCI target device corrupts data due to interenal hardware
1087 buffering. 1092 buffering.
1088 1093
1089 * Fix "cls" command when used with splash screen 1094 * Fix "cls" command when used with splash screen
1090 1095
1091 * Increase NFS download timeout (now 1 min - 10 sec is to short for a 1096 * Increase NFS download timeout (now 1 min - 10 sec is to short for a
1092 slow download of a big image) 1097 slow download of a big image)
1093 1098
1094 * Add "cls" function to MPC823 LCD driver so we can reinitialize the 1099 * Add "cls" function to MPC823 LCD driver so we can reinitialize the
1095 display even after showing a bitmap 1100 display even after showing a bitmap
1096 1101
1097 * Patch by Josef Wagner, 04 Jun 2004: 1102 * Patch by Josef Wagner, 04 Jun 2004:
1098 - DDR Ram support for PM520 (MPC5200) 1103 - DDR Ram support for PM520 (MPC5200)
1099 - support for different flash types (PM520) 1104 - support for different flash types (PM520)
1100 - USB / IDE / CF-Card / DiskOnChip support for PM520 1105 - USB / IDE / CF-Card / DiskOnChip support for PM520
1101 - 8 bit boot rom support for PM520/CE520 1106 - 8 bit boot rom support for PM520/CE520
1102 - Add auto SDRAM module detection for MicroSys CPC45 board (MPC8245) 1107 - Add auto SDRAM module detection for MicroSys CPC45 board (MPC8245)
1103 - I2C and RTC support for CPC45 1108 - I2C and RTC support for CPC45
1104 - support of new flash type (28F160C3T) for CPC45 1109 - support of new flash type (28F160C3T) for CPC45
1105 1110
1106 * Fix flash parameters passed to Linux for PPChameleon board 1111 * Fix flash parameters passed to Linux for PPChameleon board
1107 1112
1108 * Remove eth_init() from lib_arm/board.c; it's done in net.net.c. 1113 * Remove eth_init() from lib_arm/board.c; it's done in net.net.c.
1109 1114
1110 * Patch by Paul Ruhland, 10 Jun 2004: 1115 * Patch by Paul Ruhland, 10 Jun 2004:
1111 fix support for Logic SDK-LH7A404 board and clean up the 1116 fix support for Logic SDK-LH7A404 board and clean up the
1112 LH7A404 register macros. 1117 LH7A404 register macros.
1113 1118
1114 * Patch by Matthew McClintock, 10 Jun 2004: 1119 * Patch by Matthew McClintock, 10 Jun 2004:
1115 Modify code to select correct serial clock on Sandpoint8245 1120 Modify code to select correct serial clock on Sandpoint8245
1116 1121
1117 * Patch by Robert Schwebel, 10 Jun 2004: 1122 * Patch by Robert Schwebel, 10 Jun 2004:
1118 Add support for Intel K3 strata flash. 1123 Add support for Intel K3 strata flash.
1119 1124
1120 * Patch by Thomas Brand, 10 Jun 2004: 1125 * Patch by Thomas Brand, 10 Jun 2004:
1121 Fix "loads" command on DK1S10 board 1126 Fix "loads" command on DK1S10 board
1122 1127
1123 * Patch by Yuli Barcohen, 09 Jun 2004: 1128 * Patch by Yuli Barcohen, 09 Jun 2004:
1124 Add support for 8MB flash SIMM and JFFS2 file system on 1129 Add support for 8MB flash SIMM and JFFS2 file system on
1125 Motorola FADS board and its derivatives (MPC86xADS, MPC885ADS). 1130 Motorola FADS board and its derivatives (MPC86xADS, MPC885ADS).
1126 1131
1127 * Patch by Yuli Barcohen, 09 Jun 2004: 1132 * Patch by Yuli Barcohen, 09 Jun 2004:
1128 Add support for Analogue&Micro Adder87x and the older AdderII board. 1133 Add support for Analogue&Micro Adder87x and the older AdderII board.
1129 1134
1130 * Patch by Ming-Len Wu, 09 Jun 2004: 1135 * Patch by Ming-Len Wu, 09 Jun 2004:
1131 Add suppport for MC9328 (Dargonball) CPU and Motorola MX1ADS board 1136 Add suppport for MC9328 (Dargonball) CPU and Motorola MX1ADS board
1132 1137
1133 * Patch by Sam Song, 09 Jun 2004: 1138 * Patch by Sam Song, 09 Jun 2004:
1134 - Add support for RPXlite_DW board 1139 - Add support for RPXlite_DW board
1135 - Update FLASH driver for 4*AM29DL323DB90VI 1140 - Update FLASH driver for 4*AM29DL323DB90VI
1136 - Add option configuration of CFG_ENV_IS_IN_NVRAM on RPXlite_DW board 1141 - Add option configuration of CFG_ENV_IS_IN_NVRAM on RPXlite_DW board
1137 1142
1138 * Patch by Mark Jonas, 08 June 2004: 1143 * Patch by Mark Jonas, 08 June 2004:
1139 - Make MPC5200 boards evaluate the SVR to print processor name and 1144 - Make MPC5200 boards evaluate the SVR to print processor name and
1140 version in checkcpu() (cpu/mpc5xxx/cpu.c). 1145 version in checkcpu() (cpu/mpc5xxx/cpu.c).
1141 1146
1142 * Patch by Kai-Uwe Bloem, 06 May 2004: 1147 * Patch by Kai-Uwe Bloem, 06 May 2004:
1143 Fix endianess problem in cramfs code 1148 Fix endianess problem in cramfs code
1144 1149
1145 * Patch by Tom Armistead, 04 Jun 2004: 1150 * Patch by Tom Armistead, 04 Jun 2004:
1146 Add support for MAX6900 RTC 1151 Add support for MAX6900 RTC
1147 1152
1148 * Patches by Ladislav Michl, 03 Jun 2004: 1153 * Patches by Ladislav Michl, 03 Jun 2004:
1149 - fix cfi_flash.c on LE systems 1154 - fix cfi_flash.c on LE systems
1150 - let 'make mrproper' delete u-boot.img as well 1155 - let 'make mrproper' delete u-boot.img as well
1151 - turn printf into debug in cfi_flash.c 1156 - turn printf into debug in cfi_flash.c
1152 1157
1153 * Patch by Kurt Stremerch, 28 May 2004: 1158 * Patch by Kurt Stremerch, 28 May 2004:
1154 Add support for Exys XSEngine board 1159 Add support for Exys XSEngine board
1155 1160
1156 * Patch by Martin Krause, 27 May 2004: 1161 * Patch by Martin Krause, 27 May 2004:
1157 Fix a MPC5xxx I2C timing issue in i2c_probe(). 1162 Fix a MPC5xxx I2C timing issue in i2c_probe().
1158 1163
1159 * Patch by Leif Lindholm, 27 May 2004: 1164 * Patch by Leif Lindholm, 27 May 2004:
1160 Fix board_init_f() for dbau1x00 board. 1165 Fix board_init_f() for dbau1x00 board.
1161 1166
1162 * Patch by Imre Deak, 26 May 2004: 1167 * Patch by Imre Deak, 26 May 2004:
1163 On OMAP1610 platforms check if booting from RAM(CS0) or flash(CS3). 1168 On OMAP1610 platforms check if booting from RAM(CS0) or flash(CS3).
1164 Set flash base accordingly, and decide whether to do or skip board 1169 Set flash base accordingly, and decide whether to do or skip board
1165 specific setup steps. 1170 specific setup steps.
1166 1171
1167 * Patch by Josef Baumgartner, 26 May 2004: 1172 * Patch by Josef Baumgartner, 26 May 2004:
1168 Add missing define in include/asm-m68k/global_data.h 1173 Add missing define in include/asm-m68k/global_data.h
1169 1174
1170 * Patch by Josef Baumgartner, 25 May 2004: 1175 * Patch by Josef Baumgartner, 25 May 2004:
1171 Add missing functions get_ticks() and get_tbclk() in lib_m68k/time.c 1176 Add missing functions get_ticks() and get_tbclk() in lib_m68k/time.c
1172 1177
1173 * Patch by Paul Ruhland, 24 May 2004: 1178 * Patch by Paul Ruhland, 24 May 2004:
1174 fix SDRAM initialization for LPD7A400 board. 1179 fix SDRAM initialization for LPD7A400 board.
1175 1180
1176 * Patch by Jian Zhang, 20 May 2004: 1181 * Patch by Jian Zhang, 20 May 2004:
1177 add support for environment in NAND flash 1182 add support for environment in NAND flash
1178 1183
1179 * Patch by Yuli Barcohen, 20 May 2004: 1184 * Patch by Yuli Barcohen, 20 May 2004:
1180 Add support for Interphase iSPAN boards. 1185 Add support for Interphase iSPAN boards.
1181 1186
1182 * Patches by Paul Ruhland, 17 May 2004: 1187 * Patches by Paul Ruhland, 17 May 2004:
1183 - Add I/O functions to the smc91111 ethernet driver to support the 1188 - Add I/O functions to the smc91111 ethernet driver to support the
1184 Logic LPD7A40x boards. 1189 Logic LPD7A40x boards.
1185 - Add support for the Logic Zoom LH7A40x based SDK board(s), 1190 - Add support for the Logic Zoom LH7A40x based SDK board(s),
1186 specifically the LPD7A400. 1191 specifically the LPD7A400.
1187 1192
1188 * Patches by Robert Schwebel, 15 May 2004: 1193 * Patches by Robert Schwebel, 15 May 2004:
1189 - call MAC address reading code also for SMSC91C111; 1194 - call MAC address reading code also for SMSC91C111;
1190 - make SMSC91C111 timeout configurable, remove duplicate code 1195 - make SMSC91C111 timeout configurable, remove duplicate code
1191 - fix get_timer() for PXA 1196 - fix get_timer() for PXA
1192 - update doc/README.JFFS2 1197 - update doc/README.JFFS2
1193 - use "bootfile" env variable also for jffs2 1198 - use "bootfile" env variable also for jffs2
1194 1199
1195 * Patch by Tolunay Orkun, 14 May 2004: 1200 * Patch by Tolunay Orkun, 14 May 2004:
1196 Add support for Cogent CSB472 board (8MB Flash Rev) 1201 Add support for Cogent CSB472 board (8MB Flash Rev)
1197 1202
1198 * Patch by Thomas Viehweger, 14 May 2004: 1203 * Patch by Thomas Viehweger, 14 May 2004:
1199 - flash.h: more flash types added 1204 - flash.h: more flash types added
1200 - immap_8260.h: some bits added (useful for RMII) 1205 - immap_8260.h: some bits added (useful for RMII)
1201 - cmd_coninfo.c: typo corrected, printf -> puts 1206 - cmd_coninfo.c: typo corrected, printf -> puts
1202 - reduced size by replacing spaces with tab 1207 - reduced size by replacing spaces with tab
1203 1208
1204 * Patch by Robert Schwebel, 13 May 2004: 1209 * Patch by Robert Schwebel, 13 May 2004:
1205 Add 'imgextract' command: extract one part of a multi file image. 1210 Add 'imgextract' command: extract one part of a multi file image.
1206 1211
1207 * Patches by Jon Loeliger, 11 May 2004: 1212 * Patches by Jon Loeliger, 11 May 2004:
1208 Dynamically handle REV1 and REV2 MPC85xx parts. 1213 Dynamically handle REV1 and REV2 MPC85xx parts.
1209 (Jon Loeliger, 10-May-2004). 1214 (Jon Loeliger, 10-May-2004).
1210 New consistent memory map and Local Access Window across MPC85xx line. 1215 New consistent memory map and Local Access Window across MPC85xx line.
1211 New CCSRBAR at 0xE000_0000 now. 1216 New CCSRBAR at 0xE000_0000 now.
1212 Add RAPID I/O memory map. 1217 Add RAPID I/O memory map.
1213 New memory map in README.MPC85xxads 1218 New memory map in README.MPC85xxads
1214 (Kumar Gala, 10-May-2004) 1219 (Kumar Gala, 10-May-2004)
1215 Better board and CPU identification on MPC85xx boards at boot. 1220 Better board and CPU identification on MPC85xx boards at boot.
1216 (Jon Loeliger, 10-May-2004) 1221 (Jon Loeliger, 10-May-2004)
1217 SDRAM clock control fixes on MPC8540ADS & MPC8560 boards. 1222 SDRAM clock control fixes on MPC8540ADS & MPC8560 boards.
1218 Some configuration options for MPC8540ADS & MPC8560ADS cleaned up. 1223 Some configuration options for MPC8540ADS & MPC8560ADS cleaned up.
1219 (Jim Robertson, 10-May-2004) 1224 (Jim Robertson, 10-May-2004)
1220 Rewrite of the MPC85xx Three Speed Ethernet Controller (TSEC) driver. 1225 Rewrite of the MPC85xx Three Speed Ethernet Controller (TSEC) driver.
1221 Supports multiple PHYs. 1226 Supports multiple PHYs.
1222 (Andy Fleming, 10-May-2004) 1227 (Andy Fleming, 10-May-2004)
1223 Some README.MPC85xxads updates. 1228 Some README.MPC85xxads updates.
1224 (Kumar Gala, 10-May-2004) 1229 (Kumar Gala, 10-May-2004)
1225 Copyright updates for "Freescale" 1230 Copyright updates for "Freescale"
1226 (Andy Fleming, 10-May-2004) 1231 (Andy Fleming, 10-May-2004)
1227 1232
1228 * Patch by Stephen Williams, 11 May 2004: 1233 * Patch by Stephen Williams, 11 May 2004:
1229 Add flash support for ST M29W040B 1234 Add flash support for ST M29W040B
1230 Reduce JSE specific flash.c to remove dead code. 1235 Reduce JSE specific flash.c to remove dead code.
1231 1236
1232 * Patch by Markus Pietrek, 04 May 2004: 1237 * Patch by Markus Pietrek, 04 May 2004:
1233 Fix clear_bss code for ARM systems (all except s3c44b0 which 1238 Fix clear_bss code for ARM systems (all except s3c44b0 which
1234 doesn't clear BSS at all?) 1239 doesn't clear BSS at all?)
1235 1240
1236 * Fix "ping" problem on INC-IP board. Strange problem: 1241 * Fix "ping" problem on INC-IP board. Strange problem:
1237 Sometimes the store word instruction hangs while writing to one of 1242 Sometimes the store word instruction hangs while writing to one of
1238 the Switch registers, but only if the next instruction is 16-byte 1243 the Switch registers, but only if the next instruction is 16-byte
1239 aligned. Moving the instruction into a separate function somehow 1244 aligned. Moving the instruction into a separate function somehow
1240 makes the problem go away. 1245 makes the problem go away.
1241 1246
1242 * Patch by Rishi Bhattacharya, 08 May 2004: 1247 * Patch by Rishi Bhattacharya, 08 May 2004:
1243 Add support for TI OMAP5912 OSK Board 1248 Add support for TI OMAP5912 OSK Board
1244 1249
1245 * Patch by Sam Song May, 07 May 2004: 1250 * Patch by Sam Song May, 07 May 2004:
1246 Fix typo of UPM table for rmu board 1251 Fix typo of UPM table for rmu board
1247 1252
1248 * Patch by Pantelis Antoniou, 05 May 2004: 1253 * Patch by Pantelis Antoniou, 05 May 2004:
1249 - Intracom board update. 1254 - Intracom board update.
1250 - Add Codec POST. 1255 - Add Codec POST.
1251 1256
1252 * Add support for the second Ethernet interface for the 'PPChameleon' 1257 * Add support for the second Ethernet interface for the 'PPChameleon'
1253 board. 1258 board.
1254 1259
1255 * Patch by Dave Peverley, 30 Apr 2004: 1260 * Patch by Dave Peverley, 30 Apr 2004:
1256 Add support for OMAP730 Perseus2 Development board 1261 Add support for OMAP730 Perseus2 Development board
1257 1262
1258 * Patch by Alan J. Luse, 29 Apr 2004: 1263 * Patch by Alan J. Luse, 29 Apr 2004:
1259 Fix flash chip-select (OR0) option register setting on FADS boards. 1264 Fix flash chip-select (OR0) option register setting on FADS boards.
1260 1265
1261 * Patch by Alan J. Luse, 29 Apr 2004: 1266 * Patch by Alan J. Luse, 29 Apr 2004:
1262 Report MII network speed and duplex setting properly when 1267 Report MII network speed and duplex setting properly when
1263 auto-negotiate is not enabled. 1268 auto-negotiate is not enabled.
1264 1269
1265 * Patch by Jarrett Redd, 29 Apr 2004: 1270 * Patch by Jarrett Redd, 29 Apr 2004:
1266 Fix hang on reset on Ocotea board due to flash in wrong mode. 1271 Fix hang on reset on Ocotea board due to flash in wrong mode.
1267 1272
1268 * Patch by Dave Peverley, 29 Apr 2004: 1273 * Patch by Dave Peverley, 29 Apr 2004:
1269 add MAC address detection to smc91111 driver 1274 add MAC address detection to smc91111 driver
1270 1275
1271 * Patch by David Mรผller, 28 Apr 2004: 1276 * Patch by David Mรผller, 28 Apr 2004:
1272 fix typo in lib_arm/board.c 1277 fix typo in lib_arm/board.c
1273 1278
1274 * Patch by Tolunay Orkun, 20 Apr 2004: 1279 * Patch by Tolunay Orkun, 20 Apr 2004:
1275 - README update: add CONFIG_CSB272 and csb272_config 1280 - README update: add CONFIG_CSB272 and csb272_config
1276 - add descriptions for some MII/PHY options, CONFIG_I2CFAST, and 1281 - add descriptions for some MII/PHY options, CONFIG_I2CFAST, and
1277 i2cfast environment variable 1282 i2cfast environment variable
1278 1283
1279 * Patch by Yuli Barcohen, 19 Apr 2004: 1284 * Patch by Yuli Barcohen, 19 Apr 2004:
1280 - Rename DUET_ADS to MPC885ADS 1285 - Rename DUET_ADS to MPC885ADS
1281 - Rename CONFIG_DUET to CONFIG_MPC885_FAMILY 1286 - Rename CONFIG_DUET to CONFIG_MPC885_FAMILY
1282 - Rename CONFIG_866_et_al to CONFIG_MPC866_FAMILY 1287 - Rename CONFIG_866_et_al to CONFIG_MPC866_FAMILY
1283 - Clean up FADS family port to use the new defines 1288 - Clean up FADS family port to use the new defines
1284 1289
1285 * Fix PCI support on CPC45 board 1290 * Fix PCI support on CPC45 board
1286 1291
1287 * Patch by Scott McNutt, 25 Apr 2004: 1292 * Patch by Scott McNutt, 25 Apr 2004:
1288 Add Nios GDB/JTAG Console support: 1293 Add Nios GDB/JTAG Console support:
1289 - Add stubs to support gdb via JTAG. 1294 - Add stubs to support gdb via JTAG.
1290 - Add support for console over JTAG. 1295 - Add support for console over JTAG.
1291 - Minor cleanup. 1296 - Minor cleanup.
1292 1297
1293 * Add support for CATcenter board (based on PPChameleon ME module) 1298 * Add support for CATcenter board (based on PPChameleon ME module)
1294 1299
1295 * Patch by Klaus Heydeck, 12 May 2004: 1300 * Patch by Klaus Heydeck, 12 May 2004:
1296 Using external watchdog for KUP4 boards in mpc8xx/cpu.c; 1301 Using external watchdog for KUP4 boards in mpc8xx/cpu.c;
1297 load_sernum_ethaddr() for KUP4 boards in lib_ppc/board.c; 1302 load_sernum_ethaddr() for KUP4 boards in lib_ppc/board.c;
1298 various changes to KUP4 board specific files 1303 various changes to KUP4 board specific files
1299 1304
1300 * Fix minor network problem on MPC5200: need some delay between 1305 * Fix minor network problem on MPC5200: need some delay between
1301 resetting the PHY and sending the first packet. Implemented in a 1306 resetting the PHY and sending the first packet. Implemented in a
1302 "natural" way by invoking the PHY reset and initialization code 1307 "natural" way by invoking the PHY reset and initialization code
1303 only once after power on vs. each time the interface is brought up. 1308 only once after power on vs. each time the interface is brought up.
1304 1309
1305 * Add some limited support for low-speed devices to SL811 USB controller 1310 * Add some limited support for low-speed devices to SL811 USB controller
1306 (at least "usb reset" now passes successfully and "usb info" displays 1311 (at least "usb reset" now passes successfully and "usb info" displays
1307 correct information) 1312 correct information)
1308 1313
1309 * Change init sequence for multiple network interfaces: initialize 1314 * Change init sequence for multiple network interfaces: initialize
1310 on-chip interfaces before external cards. 1315 on-chip interfaces before external cards.
1311 1316
1312 * Fix memory leak in the NAND-specific JFFS2 code 1317 * Fix memory leak in the NAND-specific JFFS2 code
1313 1318
1314 * Fix SL811 USB controller when attached to a USB hub 1319 * Fix SL811 USB controller when attached to a USB hub
1315 1320
1316 * Fix config option spelling in PM520 config file 1321 * Fix config option spelling in PM520 config file
1317 1322
1318 * Fix PHY discovery problem in cpu/mpc8xx/fec.c (introduced by 1323 * Fix PHY discovery problem in cpu/mpc8xx/fec.c (introduced by
1319 patches by Pantelis Antoniou, 30 Mar 2004) 1324 patches by Pantelis Antoniou, 30 Mar 2004)
1320 1325
1321 * Fix minor NAND JFFS2 related issue 1326 * Fix minor NAND JFFS2 related issue
1322 1327
1323 * Fixes for SL811 USB controller: 1328 * Fixes for SL811 USB controller:
1324 - implement workaround for broken memory stick 1329 - implement workaround for broken memory stick
1325 - improve error handling 1330 - improve error handling
1326 1331
1327 * Increase packet send timeout to 1 ms in cpu/mpc8xx/scc.c to better 1332 * Increase packet send timeout to 1 ms in cpu/mpc8xx/scc.c to better
1328 cope with congested networks. 1333 cope with congested networks.
1329 1334
1330 ====================================================================== 1335 ======================================================================
1331 Changes for U-Boot 1.1.1: 1336 Changes for U-Boot 1.1.1:
1332 ====================================================================== 1337 ======================================================================
1333 1338
1334 * Patch by Travis Sawyer, 23 Apr 2004: 1339 * Patch by Travis Sawyer, 23 Apr 2004:
1335 Fix VSC/CIS 8201 phy descrambler interoperability timing due to 1340 Fix VSC/CIS 8201 phy descrambler interoperability timing due to
1336 errata from Vitesse Semiconductor. 1341 errata from Vitesse Semiconductor.
1337 1342
1338 * Patch by Philippe Robin, 22 Apr 2004: 1343 * Patch by Philippe Robin, 22 Apr 2004:
1339 Fix ethernet configuration for "versatile" board 1344 Fix ethernet configuration for "versatile" board
1340 1345
1341 * Patch by Kshitij Gupta, 21 Apr 2004: 1346 * Patch by Kshitij Gupta, 21 Apr 2004:
1342 Remove busy loop and use MPU timer fr usleep() on OMAP1510/1610 boards 1347 Remove busy loop and use MPU timer fr usleep() on OMAP1510/1610 boards
1343 1348
1344 * Patch by Steven Scholz, 24 Feb 2004: 1349 * Patch by Steven Scholz, 24 Feb 2004:
1345 Fix a bug in AT91RM9200 ethernet driver: 1350 Fix a bug in AT91RM9200 ethernet driver:
1346 The MII interface is now initialized before accessing the PHY. 1351 The MII interface is now initialized before accessing the PHY.
1347 1352
1348 * Patch by John Kerl, 19 Apr 2004: 1353 * Patch by John Kerl, 19 Apr 2004:
1349 Use U-boot's miiphy.h for PHY register names, rather than 1354 Use U-boot's miiphy.h for PHY register names, rather than
1350 introducing a new header file. 1355 introducing a new header file.
1351 1356
1352 * Update pci_ids.h from linux-2.4.26 1357 * Update pci_ids.h from linux-2.4.26
1353 1358
1354 * Patch by Masami Komiya, 19 Apr 2004: 1359 * Patch by Masami Komiya, 19 Apr 2004:
1355 Fix problem cause by VLAN function on little endian architecture 1360 Fix problem cause by VLAN function on little endian architecture
1356 without VLAN environment 1361 without VLAN environment
1357 1362
1358 * Clean up the TQM8xx_YYMHz configurations; allow to use the same 1363 * Clean up the TQM8xx_YYMHz configurations; allow to use the same
1359 binary image for all clock frequencies. Implement run-time 1364 binary image for all clock frequencies. Implement run-time
1360 optimization of flash access timing based on the actual bus 1365 optimization of flash access timing based on the actual bus
1361 frequency. 1366 frequency.
1362 1367
1363 * Modify KUP4X board configuration to use SL811 driver for USB memory 1368 * Modify KUP4X board configuration to use SL811 driver for USB memory
1364 sticks (including FAT / VFAT filesystem support) 1369 sticks (including FAT / VFAT filesystem support)
1365 1370
1366 * Add SL811 Host Controller Interface driver for USB 1371 * Add SL811 Host Controller Interface driver for USB
1367 1372
1368 * Add CFG_I2C_EEPROM_ADDR_OVERFLOW desription to README 1373 * Add CFG_I2C_EEPROM_ADDR_OVERFLOW desription to README
1369 1374
1370 * Patch by Pantelis Antoniou, 19 Apr 2004: 1375 * Patch by Pantelis Antoniou, 19 Apr 2004:
1371 Allow to use shell style syntax (i. e. ${var} ) with standard parser. 1376 Allow to use shell style syntax (i. e. ${var} ) with standard parser.
1372 Minor patches for Intracom boards. 1377 Minor patches for Intracom boards.
1373 1378
1374 * Patch by Christian Pell, 19 Apr 2004: 1379 * Patch by Christian Pell, 19 Apr 2004:
1375 cleanup support for CF/IDE on PCMCIA for PXA25X 1380 cleanup support for CF/IDE on PCMCIA for PXA25X
1376 1381
1377 * Temporarily disabled John Kerl's extended MII command code because 1382 * Temporarily disabled John Kerl's extended MII command code because
1378 "miivals.h" is missing 1383 "miivals.h" is missing
1379 1384
1380 * Patches by Mark Jonas, 13 Apr 2004: 1385 * Patches by Mark Jonas, 13 Apr 2004:
1381 - Remove CS0 chip select timing setting from cpu/mpc5xxx/start.S 1386 - Remove CS0 chip select timing setting from cpu/mpc5xxx/start.S
1382 - Add sync instructions to IceCube SDRAM init code 1387 - Add sync instructions to IceCube SDRAM init code
1383 - Move SDRAM chip constants into seperate include files 1388 - Move SDRAM chip constants into seperate include files
1384 - Unify DDR and SDR initialization code 1389 - Unify DDR and SDR initialization code
1385 - Unify all IceCube (Lite5xxx) target names 1390 - Unify all IceCube (Lite5xxx) target names
1386 1391
1387 * Patch by John Kerl, 16 Apr 2004: 1392 * Patch by John Kerl, 16 Apr 2004:
1388 Enable ranges in mii command, e.g. mii read 0-1f 0 or 1393 Enable ranges in mii command, e.g. mii read 0-1f 0 or
1389 mii read 4-7 18-1a. Also add mii dump subcommand for 1394 mii read 4-7 18-1a. Also add mii dump subcommand for
1390 pretty-printing standard regs 0-5. 1395 pretty-printing standard regs 0-5.
1391 1396
1392 * Patch by Stephen Williams, 16 April 2004: 1397 * Patch by Stephen Williams, 16 April 2004:
1393 fix typo in JSE.h; update MAINTAINERS 1398 fix typo in JSE.h; update MAINTAINERS
1394 1399
1395 * Patch by Matthew S. McClintock, 14 Apr 2004: 1400 * Patch by Matthew S. McClintock, 14 Apr 2004:
1396 fix initdram function for utx8245 board 1401 fix initdram function for utx8245 board
1397 1402
1398 * Patch by Markus Pietrek, 14 Apr 2004: 1403 * Patch by Markus Pietrek, 14 Apr 2004:
1399 use ATAG_INITRD2 instead of deprecated ATAG_INITRD tag 1404 use ATAG_INITRD2 instead of deprecated ATAG_INITRD tag
1400 1405
1401 * Patch by Reinhard Meyer, 18 Apr 2004: 1406 * Patch by Reinhard Meyer, 18 Apr 2004:
1402 provide the IDE Reset Function for EMK 5200 boards 1407 provide the IDE Reset Function for EMK 5200 boards
1403 1408
1404 * Patch by Masami Komiya, 12 Apr 2004: 1409 * Patch by Masami Komiya, 12 Apr 2004:
1405 fix pci_hose_write_config_{byte,word}_via_dword problems 1410 fix pci_hose_write_config_{byte,word}_via_dword problems
1406 1411
1407 * Patch by Sangmoon Kim, 12 Apr 2004: 1412 * Patch by Sangmoon Kim, 12 Apr 2004:
1408 Update max RAM size for debris board 1413 Update max RAM size for debris board
1409 1414
1410 * Patch by Travis Sawyer, 08 Apr 2004: 1415 * Patch by Travis Sawyer, 08 Apr 2004:
1411 Add TLB entry for second DIMM slot on ocotea 1416 Add TLB entry for second DIMM slot on ocotea
1412 1417
1413 * Patch by Masami Komiya, 08 Apr 2004: 1418 * Patch by Masami Komiya, 08 Apr 2004:
1414 add RTL8169 network driver 1419 add RTL8169 network driver
1415 1420
1416 * Patch by Dan Malek, 07 Apr 2004: 1421 * Patch by Dan Malek, 07 Apr 2004:
1417 - Add support for RPC/STx GP3, Motorola 8560 board 1422 - Add support for RPC/STx GP3, Motorola 8560 board
1418 - Update 85xx TSEC driver so it searches MII for first available PHY 1423 - Update 85xx TSEC driver so it searches MII for first available PHY
1419 and uses that one. 1424 and uses that one.
1420 - Add functions to support console MII commands. 1425 - Add functions to support console MII commands.
1421 1426
1422 * Patch by Tolunay Orkun, 07 Apr 2004: 1427 * Patch by Tolunay Orkun, 07 Apr 2004:
1423 Move initialization of bi_iic_fast[] 1428 Move initialization of bi_iic_fast[]
1424 from board_init_f() to board_init_r() 1429 from board_init_f() to board_init_r()
1425 1430
1426 * Patch by Yasushi Shoji, 07 Apr 2004: 1431 * Patch by Yasushi Shoji, 07 Apr 2004:
1427 Cleanup microblaze port 1432 Cleanup microblaze port
1428 1433
1429 * Patch by Sangmoon Kim, 07 Apr 2004: 1434 * Patch by Sangmoon Kim, 07 Apr 2004:
1430 Add auto SDRAM module detection for Debris board 1435 Add auto SDRAM module detection for Debris board
1431 1436
1432 * Patch by Rune Torgersen, 06 Apr 2004: 1437 * Patch by Rune Torgersen, 06 Apr 2004:
1433 - Fix some PCI problems on the MPC8266ADS board 1438 - Fix some PCI problems on the MPC8266ADS board
1434 - Fix the location of some PCI entries in the immap structure 1439 - Fix the location of some PCI entries in the immap structure
1435 1440
1436 * Patch by Yasushi Shoji, 07 Apr 2004: 1441 * Patch by Yasushi Shoji, 07 Apr 2004:
1437 - add support for microblaze processors 1442 - add support for microblaze processors
1438 - add support for AtmarkTechno "suzaku" board 1443 - add support for AtmarkTechno "suzaku" board
1439 1444
1440 * Configure PPChameleon board to use redundand environment in flash 1445 * Configure PPChameleon board to use redundand environment in flash
1441 1446
1442 * Configure PPChameleon board to use JFFS2 NAND support. 1447 * Configure PPChameleon board to use JFFS2 NAND support.
1443 1448
1444 * Added support for JFFS2 filesystem (read-only) on top of NAND flash 1449 * Added support for JFFS2 filesystem (read-only) on top of NAND flash
1445 1450
1446 * Patch by Rune Torgersen, 16 Apr 2004: 1451 * Patch by Rune Torgersen, 16 Apr 2004:
1447 LBA48 fixes 1452 LBA48 fixes
1448 1453
1449 * Patches by Pantelis Antoniou, 16 Apr 2004: 1454 * Patches by Pantelis Antoniou, 16 Apr 2004:
1450 - add support for a new version of an Intracom board and fix 1455 - add support for a new version of an Intracom board and fix
1451 various other things on others. 1456 various other things on others.
1452 - add verify support to the crc32 command (define 1457 - add verify support to the crc32 command (define
1453 CONFIG_CRC32_VERIFY to enable it) 1458 CONFIG_CRC32_VERIFY to enable it)
1454 - fix FEC driver for MPC8xx systems: 1459 - fix FEC driver for MPC8xx systems:
1455 1. fix compilation problems for boards that use dynamic 1460 1. fix compilation problems for boards that use dynamic
1456 allocation of DPRAM 1461 allocation of DPRAM
1457 2. shut down FEC after network transfers 1462 2. shut down FEC after network transfers
1458 - HUSH parser fixes: 1463 - HUSH parser fixes:
1459 1. A new test command was added. This is a simplified version of 1464 1. A new test command was added. This is a simplified version of
1460 the one in the bourne shell. 1465 the one in the bourne shell.
1461 2. A new exit command was added which terminates the current 1466 2. A new exit command was added which terminates the current
1462 executing script. 1467 executing script.
1463 3. Fixed handing of $? (exit code of last executed command) 1468 3. Fixed handing of $? (exit code of last executed command)
1464 - Fix some compile problems; 1469 - Fix some compile problems;
1465 add "once" functionality for the netretry variable 1470 add "once" functionality for the netretry variable
1466 1471
1467 * Patch by George G. Davis, 02 Apr 2004: 1472 * Patch by George G. Davis, 02 Apr 2004:
1468 add support for Intel Assabet board 1473 add support for Intel Assabet board
1469 1474
1470 * Patch by Stephen Williams, 01 Apr 2004: 1475 * Patch by Stephen Williams, 01 Apr 2004:
1471 Add support for Picture Elements JSE board 1476 Add support for Picture Elements JSE board
1472 1477
1473 * Patch by Christian Pell, 01 Apr 2004: 1478 * Patch by Christian Pell, 01 Apr 2004:
1474 Add CompactFlash support for PXA systems. 1479 Add CompactFlash support for PXA systems.
1475 1480
1476 * Patches by Pantelis Antoniou, 30 Mar 2004: 1481 * Patches by Pantelis Antoniou, 30 Mar 2004:
1477 - add auto-complete support to the U-Boot CLI 1482 - add auto-complete support to the U-Boot CLI
1478 - add support for NETTA and NETPHONE boards; fix NETVIA board 1483 - add support for NETTA and NETPHONE boards; fix NETVIA board
1479 - add support for the Epson 156x series of graphical displays 1484 - add support for the Epson 156x series of graphical displays
1480 (These displays are serial and not suitable for using a normal 1485 (These displays are serial and not suitable for using a normal
1481 framebuffer console on them) 1486 framebuffer console on them)
1482 - add infrastructure needed in order to POST any DSPs in a board 1487 - add infrastructure needed in order to POST any DSPs in a board
1483 - improve and fix various things in the MPC8xx FEC driver: 1488 - improve and fix various things in the MPC8xx FEC driver:
1484 1. The new 87x and 88x series of processors have two FECs, 1489 1. The new 87x and 88x series of processors have two FECs,
1485 and the new driver supports them both. 1490 and the new driver supports them both.
1486 2. Another change in the 87x/88x series is support for 1491 2. Another change in the 87x/88x series is support for
1487 the RMII (Reduced MII) interface. However numerous 1492 the RMII (Reduced MII) interface. However numerous
1488 changes are needed to make it work since the PHYs 1493 changes are needed to make it work since the PHYs
1489 are connected to the same lines. That means that 1494 are connected to the same lines. That means that
1490 you have to address them correctly over the MII 1495 you have to address them correctly over the MII
1491 interface. 1496 interface.
1492 3. We now correctly match the MII/RMII interface 1497 3. We now correctly match the MII/RMII interface
1493 configuration to what the PHY reports. 1498 configuration to what the PHY reports.
1494 - Fix problem when readingthe MII status register. Due to the 1499 - Fix problem when readingthe MII status register. Due to the
1495 internal design of many PHYs you have to read the register 1500 internal design of many PHYs you have to read the register
1496 twice. The problem is more apparent in 10Mbit mode. 1501 twice. The problem is more apparent in 10Mbit mode.
1497 - add new mode ".jffs2s" for reading from a NAND device: it just 1502 - add new mode ".jffs2s" for reading from a NAND device: it just
1498 skips over bad blocks. 1503 skips over bad blocks.
1499 - add networking support for VLANs (802.1q), and CDP (Cisco 1504 - add networking support for VLANs (802.1q), and CDP (Cisco
1500 Discovery Protocol) 1505 Discovery Protocol)
1501 - some minor patches / cleanup 1506 - some minor patches / cleanup
1502 1507
1503 * Patch by Yuli Barcohen, 28 Mar 2004: 1508 * Patch by Yuli Barcohen, 28 Mar 2004:
1504 - Add support for MPC8272 family including MPC8247/8248/8271/8272 1509 - Add support for MPC8272 family including MPC8247/8248/8271/8272
1505 - Add support for MPC8272ADS evaluation board (another flavour of MPC8260ADS) 1510 - Add support for MPC8272ADS evaluation board (another flavour of MPC8260ADS)
1506 - Change configuration method for MPC8260ADS family 1511 - Change configuration method for MPC8260ADS family
1507 1512
1508 * add startup code to clear the BSS of standalone applications 1513 * add startup code to clear the BSS of standalone applications
1509 1514
1510 * Fix if / elif handling bug in HUSH shell 1515 * Fix if / elif handling bug in HUSH shell
1511 1516
1512 ====================================================================== 1517 ======================================================================
1513 Changes for U-Boot 1.1.0: 1518 Changes for U-Boot 1.1.0:
1514 ====================================================================== 1519 ======================================================================
1515 1520
1516 * Patch by Mark Jonas: Remove config.tmp files only when 1521 * Patch by Mark Jonas: Remove config.tmp files only when
1517 unconfiguring the board 1522 unconfiguring the board
1518 1523
1519 * Adapt RMU board for bigger flash memory 1524 * Adapt RMU board for bigger flash memory
1520 1525
1521 * Patch by Klaus Heydeck, 13 Mar 2003: 1526 * Patch by Klaus Heydeck, 13 Mar 2003:
1522 Add support for KUP4X Board 1527 Add support for KUP4X Board
1523 1528
1524 * Patch by Pavel Bartusek, 21 Mar 2004 1529 * Patch by Pavel Bartusek, 21 Mar 2004
1525 Add Reiserfs support 1530 Add Reiserfs support
1526 1531
1527 * Patch by Hinko Kocevar, 20 Mar 2004 1532 * Patch by Hinko Kocevar, 20 Mar 2004
1528 - Add auto-release for SMSC LAN91c111 driver 1533 - Add auto-release for SMSC LAN91c111 driver
1529 - Add save/restore of PTR and PNR regs as suggested in datasheet 1534 - Add save/restore of PTR and PNR regs as suggested in datasheet
1530 1535
1531 * Patch by Stephen Williams, 19 March 2004 1536 * Patch by Stephen Williams, 19 March 2004
1532 Increase speed of sector reads from SystemACE, 1537 Increase speed of sector reads from SystemACE,
1533 shorten poll timeout and remove a useless reset 1538 shorten poll timeout and remove a useless reset
1534 1539
1535 * Patch by Tolunay Orkun, 19 Mar 2004: 1540 * Patch by Tolunay Orkun, 19 Mar 2004:
1536 Make GigE PHY 1000Mbps Speed/Duplex detection conditional 1541 Make GigE PHY 1000Mbps Speed/Duplex detection conditional
1537 (CONFIG_PHY_GIGE) 1542 (CONFIG_PHY_GIGE)
1538 1543
1539 * Patch by Brad Kemp, 18 Mar 2004: 1544 * Patch by Brad Kemp, 18 Mar 2004:
1540 prevent machine checks during a PCI scan 1545 prevent machine checks during a PCI scan
1541 1546
1542 * Patch by Pierre Aubert, 18 Mar 2004: 1547 * Patch by Pierre Aubert, 18 Mar 2004:
1543 Fix string cleaning in IDE identification 1548 Fix string cleaning in IDE identification
1544 1549
1545 * Patch by Pierre Aubert, 18 Mar 2004: 1550 * Patch by Pierre Aubert, 18 Mar 2004:
1546 - Unify video mode handling for Chips & Technologies 69000 Video 1551 - Unify video mode handling for Chips & Technologies 69000 Video
1547 chip and Silicon Motion SMI 712/710/810 Video chip 1552 chip and Silicon Motion SMI 712/710/810 Video chip
1548 - Add selection of the video output (CRT or LCD) via 'videoout' 1553 - Add selection of the video output (CRT or LCD) via 'videoout'
1549 environment variable for the Silicon Motion 1554 environment variable for the Silicon Motion
1550 - README update 1555 - README update
1551 1556
1552 * Patch by Pierre Aubert, 18 Mar 2004: 1557 * Patch by Pierre Aubert, 18 Mar 2004:
1553 include/common.h typo fix 1558 include/common.h typo fix
1554 1559
1555 * Patches by Tolunay Orkun, 17 Mar 2004: 1560 * Patches by Tolunay Orkun, 17 Mar 2004:
1556 - Add support for bd->bi_iic_fast[] initialization via environment 1561 - Add support for bd->bi_iic_fast[] initialization via environment
1557 variable "i2cfast" (CONFIG_I2CFAST) 1562 variable "i2cfast" (CONFIG_I2CFAST)
1558 - Add "i2cfast" u-boot environment variable support for csb272 1563 - Add "i2cfast" u-boot environment variable support for csb272
1559 1564
1560 * Patch by Carl Riechers, 17 Mar 2004: 1565 * Patch by Carl Riechers, 17 Mar 2004:
1561 Ignore '\0' characters in console input for use with telnet and 1566 Ignore '\0' characters in console input for use with telnet and
1562 telco pads. 1567 telco pads.
1563 1568
1564 * Patch by Leon Kukovec, 17 Mar 2004: 1569 * Patch by Leon Kukovec, 17 Mar 2004:
1565 typo fix for strswab prototype #ifdef 1570 typo fix for strswab prototype #ifdef
1566 1571
1567 * Patches by Thomas Viehweger, 16 Mar 2004: 1572 * Patches by Thomas Viehweger, 16 Mar 2004:
1568 - show PCI clock frequency on MPC8260 systems 1573 - show PCI clock frequency on MPC8260 systems
1569 - add FCC_PSMR_RMII flag for HiP7 processors 1574 - add FCC_PSMR_RMII flag for HiP7 processors
1570 - in do_jffs2_fsload(), take load address from load_addr if not set 1575 - in do_jffs2_fsload(), take load address from load_addr if not set
1571 explicit, update load_addr otherwise 1576 explicit, update load_addr otherwise
1572 - replaced printf by putc/puts when no formatting is needed 1577 - replaced printf by putc/puts when no formatting is needed
1573 (smaller code size, faster execution) 1578 (smaller code size, faster execution)
1574 1579
1575 * Patch by Phillippe Robin, 16 Mar 2004: 1580 * Patch by Phillippe Robin, 16 Mar 2004:
1576 avoid dereferencing NULL pointer in lib_arm/armlinux.c 1581 avoid dereferencing NULL pointer in lib_arm/armlinux.c
1577 1582
1578 * Patch by Stephen Williams, 15 Mar 2004: 1583 * Patch by Stephen Williams, 15 Mar 2004:
1579 Fix CONFIG_SERIAL_SOFTWARE_FIFO documentation 1584 Fix CONFIG_SERIAL_SOFTWARE_FIFO documentation
1580 1585
1581 * Patch by Tolunay Orkun, 15 Mar 2004: 1586 * Patch by Tolunay Orkun, 15 Mar 2004:
1582 Initialize bi_opbfreq to real OPB frequency via get_OPB_freq() 1587 Initialize bi_opbfreq to real OPB frequency via get_OPB_freq()
1583 1588
1584 * Patch by Travis Sawyer, 15 Mar 2004: 1589 * Patch by Travis Sawyer, 15 Mar 2004:
1585 Update CREDITS & MAINTAINERS files for PPC440GX & Ocotea port 1590 Update CREDITS & MAINTAINERS files for PPC440GX & Ocotea port
1586 1591
1587 * Add start-up delay to make sure power has stabilized before 1592 * Add start-up delay to make sure power has stabilized before
1588 attempting to switch on USB on SX1 board. 1593 attempting to switch on USB on SX1 board.
1589 1594
1590 * Patch by Josef Wagner, 18 Mar 2004: 1595 * Patch by Josef Wagner, 18 Mar 2004:
1591 - Add support for MicroSys XM250 board (PXA255) 1596 - Add support for MicroSys XM250 board (PXA255)
1592 - Add support for MicroSys PM828 board (MPC8280) 1597 - Add support for MicroSys PM828 board (MPC8280)
1593 - Add support for 32 MB Flash on PM825/826 1598 - Add support for 32 MB Flash on PM825/826
1594 - new SDRAM refresh rate for PM825/PM826 1599 - new SDRAM refresh rate for PM825/PM826
1595 - added support for MicroSys PM520 (MPC5200) 1600 - added support for MicroSys PM520 (MPC5200)
1596 - replaced Query by Identify command in CPU86/flash.c 1601 - replaced Query by Identify command in CPU86/flash.c
1597 to support 28F160F3B 1602 to support 28F160F3B
1598 1603
1599 * Fix wrap around problem with udelay() on ARM920T 1604 * Fix wrap around problem with udelay() on ARM920T
1600 1605
1601 * Add support for Macronix flash on TRAB board 1606 * Add support for Macronix flash on TRAB board
1602 1607
1603 * Patch by Pierre Aubert, 15 Mar 2004: 1608 * Patch by Pierre Aubert, 15 Mar 2004:
1604 Fix buffer overflow in IDE identification 1609 Fix buffer overflow in IDE identification
1605 1610
1606 * Fix power-off of LCD for out-of-band temperatures on LWMON board 1611 * Fix power-off of LCD for out-of-band temperatures on LWMON board
1607 1612
1608 * Remove redundand #define in IceCube.h 1613 * Remove redundand #define in IceCube.h
1609 1614
1610 * Patch by Steven Scholz, 27 Feb 2004: 1615 * Patch by Steven Scholz, 27 Feb 2004:
1611 - Adding get_ticks() and get_tbclk() for AT91RM9200 1616 - Adding get_ticks() and get_tbclk() for AT91RM9200
1612 - Many white space fixes in cpu/at91rm9200/interrupts.c 1617 - Many white space fixes in cpu/at91rm9200/interrupts.c
1613 1618
1614 * Patches by Steven Scholz, 20 Feb 2004: 1619 * Patches by Steven Scholz, 20 Feb 2004:
1615 some cleanup in AT91RM9200 related code 1620 some cleanup in AT91RM9200 related code
1616 1621
1617 * Patches by Travis Sawyer, 12 Mar 2004: 1622 * Patches by Travis Sawyer, 12 Mar 2004:
1618 - Fix Gigabit Ethernet support for 440GX 1623 - Fix Gigabit Ethernet support for 440GX
1619 - Add Gigabit Ethernet Support to MII PHY utilities 1624 - Add Gigabit Ethernet Support to MII PHY utilities
1620 1625
1621 * Patch by Brad Kemp, 12 Mar 2004: 1626 * Patch by Brad Kemp, 12 Mar 2004:
1622 Fixes for drivers/cfi_flash.c: 1627 Fixes for drivers/cfi_flash.c:
1623 - Better support for x8/x16 implementations 1628 - Better support for x8/x16 implementations
1624 - Added failure for AMD chips attempting to use CFG_FLASH_USE_BUFFER_WRITE 1629 - Added failure for AMD chips attempting to use CFG_FLASH_USE_BUFFER_WRITE
1625 - Added defines for AMD command and address constants 1630 - Added defines for AMD command and address constants
1626 1631
1627 * Patch by Leon Kukovec, 12 Mar 2004: 1632 * Patch by Leon Kukovec, 12 Mar 2004:
1628 Fix get_dentfromdir() to correctly handle deleted dentries 1633 Fix get_dentfromdir() to correctly handle deleted dentries
1629 1634
1630 * Patch by George G. Davis, 11 Mar 2004: 1635 * Patch by George G. Davis, 11 Mar 2004:
1631 Remove hard coded network settings in TI OMAP1610 H2 1636 Remove hard coded network settings in TI OMAP1610 H2
1632 default board config 1637 default board config
1633 1638
1634 * Patch by George G. Davis, 11 Mar 2004: 1639 * Patch by George G. Davis, 11 Mar 2004:
1635 add support for ADS GraphicsClient+ board. 1640 add support for ADS GraphicsClient+ board.
1636 1641
1637 * Patch by Pierre Aubert, 11 Mar 2004: 1642 * Patch by Pierre Aubert, 11 Mar 2004:
1638 - add bitmap command and splash screen support in cfb console 1643 - add bitmap command and splash screen support in cfb console
1639 - add [optional] origin in the bitmap display command 1644 - add [optional] origin in the bitmap display command
1640 1645
1641 * Patch by Travis Sawyer, 11 Mar 2004: 1646 * Patch by Travis Sawyer, 11 Mar 2004:
1642 Fix ocotea board early init interrupt setup. 1647 Fix ocotea board early init interrupt setup.
1643 1648
1644 * Patch by Thomas Viehweger, 11 Mar 2004: 1649 * Patch by Thomas Viehweger, 11 Mar 2004:
1645 Remove redundand code; add PCI-specific bits to include/mpc8260.h 1650 Remove redundand code; add PCI-specific bits to include/mpc8260.h
1646 1651
1647 * Patch by Stephan Linz, 09 Mar 2004 1652 * Patch by Stephan Linz, 09 Mar 2004
1648 - Add support for the SSV ADNP/ESC1 (Nios Softcore) 1653 - Add support for the SSV ADNP/ESC1 (Nios Softcore)
1649 1654
1650 * Patch by George G. Davis, 9 Mar 2004: 1655 * Patch by George G. Davis, 9 Mar 2004:
1651 fix recent build failure for SA1100 target 1656 fix recent build failure for SA1100 target
1652 1657
1653 * Patch by Travis Sawyer, 09 Mar 2004: 1658 * Patch by Travis Sawyer, 09 Mar 2004:
1654 Support native interrupt mode for the IBM440GX. 1659 Support native interrupt mode for the IBM440GX.
1655 Previously it was running in 440GP compatibility mode. 1660 Previously it was running in 440GP compatibility mode.
1656 1661
1657 * Patch by Philippe Robin, 09 Mar 2004: 1662 * Patch by Philippe Robin, 09 Mar 2004:
1658 Added ARM Integrator AP, CP and Versatile PB926EJ-S Reference 1663 Added ARM Integrator AP, CP and Versatile PB926EJ-S Reference
1659 Platform support. 1664 Platform support.
1660 1665
1661 * Patch by Masami Komiya, 08 Mar 2004: 1666 * Patch by Masami Komiya, 08 Mar 2004:
1662 Don't overwrite server IP address or boot file name 1667 Don't overwrite server IP address or boot file name
1663 when the boot server does not return values 1668 when the boot server does not return values
1664 1669
1665 * Patch by Tolunay Orkun, 5 Mar 2004: 1670 * Patch by Tolunay Orkun, 5 Mar 2004:
1666 Removed compile time restriction on CFG_I2C_SPEED for DS1338 RTC 1671 Removed compile time restriction on CFG_I2C_SPEED for DS1338 RTC
1667 1672
1668 * Patch by Tolunay Orkun, 5 Mar 2004: 1673 * Patch by Tolunay Orkun, 5 Mar 2004:
1669 Fix early board initialization for Cogent CSB272 board 1674 Fix early board initialization for Cogent CSB272 board
1670 1675
1671 * Patch by Ed Okerson, 3 Mar 2004: 1676 * Patch by Ed Okerson, 3 Mar 2004:
1672 fix CFI flash writes for little endian systems 1677 fix CFI flash writes for little endian systems
1673 1678
1674 * Patch by Reinhard Meyer, 01 Mar 2004: 1679 * Patch by Reinhard Meyer, 01 Mar 2004:
1675 generalize USB and IDE support for MPC5200 with according 1680 generalize USB and IDE support for MPC5200 with according
1676 changes to IceCube.h and TOP5200.h 1681 changes to IceCube.h and TOP5200.h
1677 add Am29LV256 256 MBit FLASH support for TOP5200 boards 1682 add Am29LV256 256 MBit FLASH support for TOP5200 boards
1678 add info about USB and IDE to README 1683 add info about USB and IDE to README
1679 1684
1680 * Patch by Yuli Barcohen, 4 Mar 2004: 1685 * Patch by Yuli Barcohen, 4 Mar 2004:
1681 Fix problems with GCC 3.3.x which changed handling of global 1686 Fix problems with GCC 3.3.x which changed handling of global
1682 variables explicitly initialized to zero (now in .bss instead of 1687 variables explicitly initialized to zero (now in .bss instead of
1683 .data as before). 1688 .data as before).
1684 1689
1685 * Patch by Leon Kukovec, 02 Mar 2004: 1690 * Patch by Leon Kukovec, 02 Mar 2004:
1686 add strswab() to fix IDE LBA capacity, firmware and model numbers 1691 add strswab() to fix IDE LBA capacity, firmware and model numbers
1687 on little endian machines 1692 on little endian machines
1688 1693
1689 * Patch by Masami Komiya, 02 Mar 2004: 1694 * Patch by Masami Komiya, 02 Mar 2004:
1690 - Remove get_ticks() from NFS code 1695 - Remove get_ticks() from NFS code
1691 - Add verification of RPC transaction ID 1696 - Add verification of RPC transaction ID
1692 1697
1693 * Patch by Pierre Aubert, 02 Mar 2004: 1698 * Patch by Pierre Aubert, 02 Mar 2004:
1694 cleanup for IDE and USB drivers for MPC5200 1699 cleanup for IDE and USB drivers for MPC5200
1695 1700
1696 * Patch by Travis Sawyer, 01 Mar 2004: 1701 * Patch by Travis Sawyer, 01 Mar 2004:
1697 Ocotea: 1702 Ocotea:
1698 - Add IBM PPC440GX Ref Platform support (Ocotea) 1703 - Add IBM PPC440GX Ref Platform support (Ocotea)
1699 Original code by Paul Reynolds <PaulReynolds@lhsolutions.com> 1704 Original code by Paul Reynolds <PaulReynolds@lhsolutions.com>
1700 Adapted to U-Boot and 440GX port 1705 Adapted to U-Boot and 440GX port
1701 440gx_enet.c: 1706 440gx_enet.c:
1702 - Add gracious handling of all Ethernet Pin Selections for 440GX 1707 - Add gracious handling of all Ethernet Pin Selections for 440GX
1703 - Add RGMII selection for Cicada CIS8201 Gigabit PHY 1708 - Add RGMII selection for Cicada CIS8201 Gigabit PHY
1704 ppc440.h: 1709 ppc440.h:
1705 - Add needed bit definitions 1710 - Add needed bit definitions
1706 - Fix formatting 1711 - Fix formatting
1707 1712
1708 * Patch by Carl Riechers, 1 Mar 2004: 1713 * Patch by Carl Riechers, 1 Mar 2004:
1709 Add PPC440GX prbdv0 divider to fix memory clock calculation. 1714 Add PPC440GX prbdv0 divider to fix memory clock calculation.
1710 1715
1711 * Patch by Stephan Linz, 27 Feb 2004 1716 * Patch by Stephan Linz, 27 Feb 2004
1712 - avoid problems for targets without NFS download support 1717 - avoid problems for targets without NFS download support
1713 1718
1714 * Patch by Rune Torgersen, 27 Feb 2004: 1719 * Patch by Rune Torgersen, 27 Feb 2004:
1715 - Added LBA48 support (CONFIG_LBA48 & CFG_64BIT_LBA) 1720 - Added LBA48 support (CONFIG_LBA48 & CFG_64BIT_LBA)
1716 - Added support for 64bit printing in vsprintf (CFG_64BIT_VSPRINTF) 1721 - Added support for 64bit printing in vsprintf (CFG_64BIT_VSPRINTF)
1717 - Added support for 64bit strtoul (CFG_64BIT_STRTOUL) 1722 - Added support for 64bit strtoul (CFG_64BIT_STRTOUL)
1718 1723
1719 * Patch by Masami Komiya, 27 Feb 2004: 1724 * Patch by Masami Komiya, 27 Feb 2004:
1720 Fix rarpboot: add autoload by NFS 1725 Fix rarpboot: add autoload by NFS
1721 1726
1722 * Patch by Dan Eisenhut, 26 Feb 2004: 1727 * Patch by Dan Eisenhut, 26 Feb 2004:
1723 fix flash_write return value in saveenv 1728 fix flash_write return value in saveenv
1724 1729
1725 * Patch by Stephan Linz, 11 Dec 2003 1730 * Patch by Stephan Linz, 11 Dec 2003
1726 expand config.mk to avoid trigraph warnings on NIOS 1731 expand config.mk to avoid trigraph warnings on NIOS
1727 1732
1728 * Rename "BMS2003" board into "HMI10" 1733 * Rename "BMS2003" board into "HMI10"
1729 1734
1730 * SX1 patches: use "serial#" for USB serial #; use redundand environment 1735 * SX1 patches: use "serial#" for USB serial #; use redundand environment
1731 storage; auto-set console on USB port (using preboot command) 1736 storage; auto-set console on USB port (using preboot command)
1732 1737
1733 * Add support for SX1 mobile phone; add support for USB-based console 1738 * Add support for SX1 mobile phone; add support for USB-based console
1734 (enable with "setenv stdout usbtty; setenv stdin usbtty") 1739 (enable with "setenv stdout usbtty; setenv stdin usbtty")
1735 1740
1736 * Fix LOWBOOT configuration for MPC5200 with DDR memory 1741 * Fix LOWBOOT configuration for MPC5200 with DDR memory
1737 1742
1738 * Fix SDRAM timings for LITE5200 / IceCube board 1743 * Fix SDRAM timings for LITE5200 / IceCube board
1739 1744
1740 * Handle Auti-MDIX / connection status for INCA-IP 1745 * Handle Auti-MDIX / connection status for INCA-IP
1741 1746
1742 * Fix USB problems when attempting to read 0 bytes 1747 * Fix USB problems when attempting to read 0 bytes
1743 1748
1744 * Patch by Travis Sawyer, 26 Feb 2004: 1749 * Patch by Travis Sawyer, 26 Feb 2004:
1745 Fix broken compile for XPEDITE1K target. 1750 Fix broken compile for XPEDITE1K target.
1746 1751
1747 * Patch by Stephan Linz, 26 Feb 2004: 1752 * Patch by Stephan Linz, 26 Feb 2004:
1748 Bug fix for NFS code on NIOS targets 1753 Bug fix for NFS code on NIOS targets
1749 1754
1750 * Patch by Stephen Williams, 26 Feb 2004: 1755 * Patch by Stephen Williams, 26 Feb 2004:
1751 Break up SystemACE reads of large block counts 1756 Break up SystemACE reads of large block counts
1752 1757
1753 * Patch by Pierre Aubert, 26 Feb 2004 1758 * Patch by Pierre Aubert, 26 Feb 2004
1754 add IDE support for MPC5200 1759 add IDE support for MPC5200
1755 1760
1756 * Patch by Masami Komiya, 26 Feb 2004: 1761 * Patch by Masami Komiya, 26 Feb 2004:
1757 add autoload via NFS 1762 add autoload via NFS
1758 1763
1759 * Patch by Stephen Williams 1764 * Patch by Stephen Williams
1760 Use of CONFIG_SERIAL_SOFTWARE_FIFO in board.c consistent with uses 1765 Use of CONFIG_SERIAL_SOFTWARE_FIFO in board.c consistent with uses
1761 elsewhere in the source. 1766 elsewhere in the source.
1762 1767
1763 * Patch by Steven Scholz, 25 Feb 2004: 1768 * Patch by Steven Scholz, 25 Feb 2004:
1764 - Timeouts in FPGA code should be based on CFG_HZ 1769 - Timeouts in FPGA code should be based on CFG_HZ
1765 - Minor cleanup in code for Altera FPGA ACEX1K 1770 - Minor cleanup in code for Altera FPGA ACEX1K
1766 1771
1767 * Patch by Steven Scholz, 25 Feb 2004: 1772 * Patch by Steven Scholz, 25 Feb 2004:
1768 Changed "Directory Hierarchy" section in README 1773 Changed "Directory Hierarchy" section in README
1769 1774
1770 * Patch by Masami Komiya, 25 Feb 2004: 1775 * Patch by Masami Komiya, 25 Feb 2004:
1771 Reduce copy count in nfs_read_reply() of NFS code 1776 Reduce copy count in nfs_read_reply() of NFS code
1772 1777
1773 * Patch by Markus Pietrek, 24 Feb 2004: 1778 * Patch by Markus Pietrek, 24 Feb 2004:
1774 NS9750 DevBoard added 1779 NS9750 DevBoard added
1775 1780
1776 * Patch by Pierre Aubert, 24 Feb 2004 1781 * Patch by Pierre Aubert, 24 Feb 2004
1777 add USB support for MPC5200 1782 add USB support for MPC5200
1778 1783
1779 * Patch by Steven Scholz, 24 Feb 2004: 1784 * Patch by Steven Scholz, 24 Feb 2004:
1780 - fix MII commands to use values from last command 1785 - fix MII commands to use values from last command
1781 1786
1782 * Patch by Torsten Demke, 24 Feb 2004: 1787 * Patch by Torsten Demke, 24 Feb 2004:
1783 Add support for the eXalion platform (SPSW-8240, F-30, F-300) 1788 Add support for the eXalion platform (SPSW-8240, F-30, F-300)
1784 1789
1785 * Patch by Rahul Shanbhag, 19 Feb 2004: 1790 * Patch by Rahul Shanbhag, 19 Feb 2004:
1786 Fixes for for OMAP1610 board: 1791 Fixes for for OMAP1610 board:
1787 - shift some IRQ specific code to platform.S file 1792 - shift some IRQ specific code to platform.S file
1788 - remove duplicatewatchdog reset code from start.S 1793 - remove duplicatewatchdog reset code from start.S
1789 1794
1790 * Make Auto-MDIX Support configurable on INCA-IP board 1795 * Make Auto-MDIX Support configurable on INCA-IP board
1791 1796
1792 * Fix license for mkimage tool 1797 * Fix license for mkimage tool
1793 1798
1794 * Patch by Masami Komiya, 24 Feb 2004: 1799 * Patch by Masami Komiya, 24 Feb 2004:
1795 Update NetBootFileXferSize in NFS code 1800 Update NetBootFileXferSize in NFS code
1796 1801
1797 * Patch by Scott McNutt, 24 Feb 2004: 1802 * Patch by Scott McNutt, 24 Feb 2004:
1798 fix packet length in NFS code 1803 fix packet length in NFS code
1799 1804
1800 * Patch by Masami Komiy, 22 Feb 2004: 1805 * Patch by Masami Komiy, 22 Feb 2004:
1801 Add support for NFS for file download 1806 Add support for NFS for file download
1802 1807
1803 * Patch by Andrea Scian, 17 Feb 2004: 1808 * Patch by Andrea Scian, 17 Feb 2004:
1804 Add support for S3C44B0 processor and DAVE B2 board 1809 Add support for S3C44B0 processor and DAVE B2 board
1805 1810
1806 * Patch by Steven Scholz, 20 Feb 2004: 1811 * Patch by Steven Scholz, 20 Feb 2004:
1807 - Add support for MII commands on AT91RM9200 boards 1812 - Add support for MII commands on AT91RM9200 boards
1808 - some cleanup in AT91RM9200 ethernet code 1813 - some cleanup in AT91RM9200 ethernet code
1809 1814
1810 * Patch by Peter Ryser, 20 Feb 2004: 1815 * Patch by Peter Ryser, 20 Feb 2004:
1811 Add support for the Xilinx ML300 platform 1816 Add support for the Xilinx ML300 platform
1812 1817
1813 * Patch by Stephan Linz, 17 Feb 2004: 1818 * Patch by Stephan Linz, 17 Feb 2004:
1814 Fix watchdog support for NIOS 1819 Fix watchdog support for NIOS
1815 1820
1816 * Patch by Josh Fryman, 16 Feb 2004: 1821 * Patch by Josh Fryman, 16 Feb 2004:
1817 Fix byte-swapping for cfi_flash.c for different bus widths 1822 Fix byte-swapping for cfi_flash.c for different bus widths
1818 1823
1819 * Patch by Jon Diekema, 14 Jeb 2004: 1824 * Patch by Jon Diekema, 14 Jeb 2004:
1820 Remove duplicate "FPGA Support" notes from the README file 1825 Remove duplicate "FPGA Support" notes from the README file
1821 1826
1822 * Patches by Reinhard Meyer, 14 Feb 2004: 1827 * Patches by Reinhard Meyer, 14 Feb 2004:
1823 - update board/emk tree; use common flash driver 1828 - update board/emk tree; use common flash driver
1824 - Corrected tested bits in machine check exception in cpu/mpc5xxx/traps.c 1829 - Corrected tested bits in machine check exception in cpu/mpc5xxx/traps.c
1825 [adapted for other PPC CPUs -- wd] 1830 [adapted for other PPC CPUs -- wd]
1826 - Added support for the M48T08 on the EVAL5200 board in rtc/mk48t59.c 1831 - Added support for the M48T08 on the EVAL5200 board in rtc/mk48t59.c
1827 1832
1828 * Patch by Jon Diekema, 13 Feb 2004: 1833 * Patch by Jon Diekema, 13 Feb 2004:
1829 Call show_boot_progress() whenever POST "FAILED" is printed. 1834 Call show_boot_progress() whenever POST "FAILED" is printed.
1830 1835
1831 * Patch by Nishant Kamat, 13 Feb 2004: 1836 * Patch by Nishant Kamat, 13 Feb 2004:
1832 Add support for TI OMAP1610 H2 Board 1837 Add support for TI OMAP1610 H2 Board
1833 Fixes for cpu/arm926ejs/interrupt.c 1838 Fixes for cpu/arm926ejs/interrupt.c
1834 (based on Richard Woodruff's patch for arm925, 16 Oct 03) 1839 (based on Richard Woodruff's patch for arm925, 16 Oct 03)
1835 Fix for a timer bug in OMAP1610 Innovator 1840 Fix for a timer bug in OMAP1610 Innovator
1836 Add support for CS0 (ROM)/CS3 (Flash) boot in OMAP1610 Innovator and H2 1841 Add support for CS0 (ROM)/CS3 (Flash) boot in OMAP1610 Innovator and H2
1837 1842
1838 * Patches by Stephan Linz, 12 Feb 2004: 1843 * Patches by Stephan Linz, 12 Feb 2004:
1839 - add support for NIOS timer with variable period preload counter value 1844 - add support for NIOS timer with variable period preload counter value
1840 - prepare POST framework support for NIOS targets 1845 - prepare POST framework support for NIOS targets
1841 1846
1842 * Patch by Denis Peter, 11 Feb 2004: 1847 * Patch by Denis Peter, 11 Feb 2004:
1843 add POST support for the MIP405 board 1848 add POST support for the MIP405 board
1844 1849
1845 * Patch by Laurent Mohin, 10 Feb 2004: 1850 * Patch by Laurent Mohin, 10 Feb 2004:
1846 Fix buffer overflow in common/usb.c 1851 Fix buffer overflow in common/usb.c
1847 1852
1848 * Patch by Tolunay Orkun, 10 Feb 2004: 1853 * Patch by Tolunay Orkun, 10 Feb 2004:
1849 Add support for Cogent CSB272 board 1854 Add support for Cogent CSB272 board
1850 1855
1851 * Patch by Thomas Elste, 10 Feb 2004: 1856 * Patch by Thomas Elste, 10 Feb 2004:
1852 Add support for NET+50 CPU and ModNET50 board 1857 Add support for NET+50 CPU and ModNET50 board
1853 1858
1854 * Patch by Sam Song, 10 Feb 2004: 1859 * Patch by Sam Song, 10 Feb 2004:
1855 Fix typos in cfi_flash.c 1860 Fix typos in cfi_flash.c
1856 1861
1857 * Patch by Leon Kukovec, 10 Feb 2004 1862 * Patch by Leon Kukovec, 10 Feb 2004
1858 Fixed long dir entry slot id calculation in get_vfatname 1863 Fixed long dir entry slot id calculation in get_vfatname
1859 1864
1860 * Patch by Robin Gilks, 10 Feb 2004: 1865 * Patch by Robin Gilks, 10 Feb 2004:
1861 add "itest" command (operators: -eq, -ne, -lt, -gt, -le, -ge, ==, 1866 add "itest" command (operators: -eq, -ne, -lt, -gt, -le, -ge, ==,
1862 !=, <>, <, >, <=, >=) 1867 !=, <>, <, >, <=, >=)
1863 1868
1864 * Fix problem with side effects in macros in include/usb.h 1869 * Fix problem with side effects in macros in include/usb.h
1865 1870
1866 * Patch by David Benson, 13 Nov 2003: 1871 * Patch by David Benson, 13 Nov 2003:
1867 bug 841358 - fix TFTP download size limit 1872 bug 841358 - fix TFTP download size limit
1868 1873
1869 * Fixing bug 850768: 1874 * Fixing bug 850768:
1870 improper flush_cache() in load_serial() 1875 improper flush_cache() in load_serial()
1871 1876
1872 * Fixing bug 834943: 1877 * Fixing bug 834943:
1873 MPC8540 - missing volatile declarations 1878 MPC8540 - missing volatile declarations
1874 1879
1875 * Patch by Stephen Williams, 09 Feb 2004: 1880 * Patch by Stephen Williams, 09 Feb 2004:
1876 Add support for Xilinx SystemACE chip: 1881 Add support for Xilinx SystemACE chip:
1877 - New files common/cmd_ace.c and include/systemace.h 1882 - New files common/cmd_ace.c and include/systemace.h
1878 - Hook systemace support into cmd_fat and the partition manager 1883 - Hook systemace support into cmd_fat and the partition manager
1879 1884
1880 * Patch by Travis Sawyer, 09 Feb 2004: 1885 * Patch by Travis Sawyer, 09 Feb 2004:
1881 Add bi_opbfreq & bi_iic_fast to 440GX bd_info as needed for Linux 1886 Add bi_opbfreq & bi_iic_fast to 440GX bd_info as needed for Linux
1882 1887
1883 * Patch by Travis Sawyer, 09 Feb 2004: 1888 * Patch by Travis Sawyer, 09 Feb 2004:
1884 o 440GX: 1889 o 440GX:
1885 - Fix PCI Indirect access for type 1 config cycles with ppc440. 1890 - Fix PCI Indirect access for type 1 config cycles with ppc440.
1886 - Add phymode for 440 enet 1891 - Add phymode for 440 enet
1887 - fix pci pre init 1892 - fix pci pre init
1888 o XPedite1K: 1893 o XPedite1K:
1889 - Change board_pre_init to board_early_init_f 1894 - Change board_pre_init to board_early_init_f
1890 - Add user flash to bus controller setup 1895 - Add user flash to bus controller setup
1891 - Fix pci pre init 1896 - Fix pci pre init
1892 - Fix is_pci_host to check GPIO for monarch bit 1897 - Fix is_pci_host to check GPIO for monarch bit
1893 - Force xpedite1k to pci conventional mode (via #define option) 1898 - Force xpedite1k to pci conventional mode (via #define option)
1894 1899
1895 * Patch by Brad Kemp, 4 Feb 2004: 1900 * Patch by Brad Kemp, 4 Feb 2004:
1896 - handle the machine check that is generated during the PCI scans 1901 - handle the machine check that is generated during the PCI scans
1897 on 82xx processors. 1902 on 82xx processors.
1898 - define the registers used in the IMMR by the PCI subsystem. 1903 - define the registers used in the IMMR by the PCI subsystem.
1899 1904
1900 * Patch by Pierre Aubert, 03 Feb 2004: 1905 * Patch by Pierre Aubert, 03 Feb 2004:
1901 cpu/mpc5xxx/start.S: copy MBAR into SPR311 1906 cpu/mpc5xxx/start.S: copy MBAR into SPR311
1902 1907
1903 * Patch by Jeff Angielski, 03 Feb 2004: 1908 * Patch by Jeff Angielski, 03 Feb 2004:
1904 Fix copy & paste error in cpu/mpc8260/pci.c 1909 Fix copy & paste error in cpu/mpc8260/pci.c
1905 1910
1906 * Patch by Reinhard Meyer, 24 Jan 2004: 1911 * Patch by Reinhard Meyer, 24 Jan 2004:
1907 Fix typo in cpu/mpc5xxx/pci_mpc5200.c 1912 Fix typo in cpu/mpc5xxx/pci_mpc5200.c
1908 1913
1909 * Add Auto-MDIX support for INCA-IP 1914 * Add Auto-MDIX support for INCA-IP
1910 1915
1911 * Some code cleanup 1916 * Some code cleanup
1912 1917
1913 * Patch by Josef Baumgartner, 10 Feb 2004: 1918 * Patch by Josef Baumgartner, 10 Feb 2004:
1914 Fixes for Coldfire port 1919 Fixes for Coldfire port
1915 1920
1916 * Patch by Brad Kemp, 11 Feb 2004: 1921 * Patch by Brad Kemp, 11 Feb 2004:
1917 Fix CFI flash driver problems 1922 Fix CFI flash driver problems
1918 1923
1919 * Make sure to use a bus clock divider of 2 only when running TQM8xxM 1924 * Make sure to use a bus clock divider of 2 only when running TQM8xxM
1920 modules at CPU clock frequencies above 66 MHz. 1925 modules at CPU clock frequencies above 66 MHz.
1921 1926
1922 * Optimize flash programming speed for LWMON (by another 100% :-) 1927 * Optimize flash programming speed for LWMON (by another 100% :-)
1923 1928
1924 * Patch by Jian Zhang, 3 Feb 2004: 1929 * Patch by Jian Zhang, 3 Feb 2004:
1925 - Changed the incorrect FAT12BUFSIZE 1930 - Changed the incorrect FAT12BUFSIZE
1926 - data_begin in fsdata can be negative. Changed it to be short. 1931 - data_begin in fsdata can be negative. Changed it to be short.
1927 1932
1928 * Patches by Stephan Linz, 30 Jan 2004: 1933 * Patches by Stephan Linz, 30 Jan 2004:
1929 1: - board/altera/common/flash.c:flash_erase(): 1934 1: - board/altera/common/flash.c:flash_erase():
1930 o allow interrupts befor get_timer() call 1935 o allow interrupts befor get_timer() call
1931 o check-up each erased sector and avoid unexpected timeouts 1936 o check-up each erased sector and avoid unexpected timeouts
1932 - board/altera/dk1c20/dk1s10.c:board_early_init_f(): 1937 - board/altera/dk1c20/dk1s10.c:board_early_init_f():
1933 o enclose sevenseg_set() in cpp condition 1938 o enclose sevenseg_set() in cpp condition
1934 - remove the ASMI configuration for DK1S10_standard_32 (never present) 1939 - remove the ASMI configuration for DK1S10_standard_32 (never present)
1935 - fix some typed in mistakes in the NIOS documentation 1940 - fix some typed in mistakes in the NIOS documentation
1936 2: - split DK1C20 configuration into several header files: 1941 2: - split DK1C20 configuration into several header files:
1937 o two new files for each NIOS CPU description 1942 o two new files for each NIOS CPU description
1938 o U-Boot related part is remaining in DK1C20.h 1943 o U-Boot related part is remaining in DK1C20.h
1939 3: - split DK1S10 configuration into several header files: 1944 3: - split DK1S10 configuration into several header files:
1940 o two new files for each NIOS CPU description 1945 o two new files for each NIOS CPU description
1941 o U-Boot related part is remaining in DK1S10.h 1946 o U-Boot related part is remaining in DK1S10.h
1942 4: - Add support for the Microtronix Linux Development Kit 1947 4: - Add support for the Microtronix Linux Development Kit
1943 NIOS CPU configuration at the Altera Nios Development Kit, 1948 NIOS CPU configuration at the Altera Nios Development Kit,
1944 Stratix Edition (DK-1S10) 1949 Stratix Edition (DK-1S10)
1945 5: - Add documentation for the Altera Nios Development Kit, 1950 5: - Add documentation for the Altera Nios Development Kit,
1946 Stratix Edition (DK-1S10) 1951 Stratix Edition (DK-1S10)
1947 6: - Add support for the Nios Serial Peripharel Interface (SPI) 1952 6: - Add support for the Nios Serial Peripharel Interface (SPI)
1948 (master only) 1953 (master only)
1949 7: - Add support for the common U-Boot SPI framework at 1954 7: - Add support for the common U-Boot SPI framework at
1950 RTC driver DS1306 1955 RTC driver DS1306
1951 1956
1952 * Patch by Rahul Shanbhag, 28 Jan 2004: 1957 * Patch by Rahul Shanbhag, 28 Jan 2004:
1953 Fix flash protection/locking handling for OMAP1610 innovator board. 1958 Fix flash protection/locking handling for OMAP1610 innovator board.
1954 1959
1955 * Patch by Rolf Peukert, 28 Jan 2004: 1960 * Patch by Rolf Peukert, 28 Jan 2004:
1956 fix flash write problems on CSB226 board (write with 32 bit bus width) 1961 fix flash write problems on CSB226 board (write with 32 bit bus width)
1957 1962
1958 * Patches by Mark Jonas, 16 Jan 2004: 1963 * Patches by Mark Jonas, 16 Jan 2004:
1959 - fix rounding error when calculating baudrates for MPC5200 PSCs 1964 - fix rounding error when calculating baudrates for MPC5200 PSCs
1960 - make sure CFG_RAMBOOT and CFG_LOWBOOT are not enabled at the same 1965 - make sure CFG_RAMBOOT and CFG_LOWBOOT are not enabled at the same
1961 time which is not supported 1966 time which is not supported
1962 1967
1963 * Patch by Yuli Barcohen, 26 Jan 2004: 1968 * Patch by Yuli Barcohen, 26 Jan 2004:
1964 Allow bzip2 compression for small memory footprint boards 1969 Allow bzip2 compression for small memory footprint boards
1965 1970
1966 * Patch by Brad Kemp, 21 Jan 2004: 1971 * Patch by Brad Kemp, 21 Jan 2004:
1967 Add support for CFI flash driver for both the Intel and the AMD 1972 Add support for CFI flash driver for both the Intel and the AMD
1968 command sets. 1973 command sets.
1969 1974
1970 * Patch by Travis Sawyer, 20 Jan 2004: 1975 * Patch by Travis Sawyer, 20 Jan 2004:
1971 Fix pci bridge auto enumeration of sibling p2p bridges. 1976 Fix pci bridge auto enumeration of sibling p2p bridges.
1972 1977
1973 * Patch by Tolunay Orkun, 12 Jan 2004: 1978 * Patch by Tolunay Orkun, 12 Jan 2004:
1974 Add some delays as needed for Intel LXT971A PHY support 1979 Add some delays as needed for Intel LXT971A PHY support
1975 1980
1976 * Patches by Stephan Linz, 09 Jan 2004: 1981 * Patches by Stephan Linz, 09 Jan 2004:
1977 - avoid warning: unused variable `piop' in board/altera/common/sevenseg.c 1982 - avoid warning: unused variable `piop' in board/altera/common/sevenseg.c
1978 - make DK1C20 board configuration related to ASMI conform to 1983 - make DK1C20 board configuration related to ASMI conform to
1979 documentation 1984 documentation
1980 1985
1981 * Patch by Anders Larsen, 09 Jan 2004: 1986 * Patch by Anders Larsen, 09 Jan 2004:
1982 1987
1983 ARM memory layout fixes: the abort-stack is now set up in the 1988 ARM memory layout fixes: the abort-stack is now set up in the
1984 correct RAM area, and the BSS is zeroed out as it should be. 1989 correct RAM area, and the BSS is zeroed out as it should be.
1985 1990
1986 Furthermore, the magic variables 'armboot_end' and 'armboot_end_data' 1991 Furthermore, the magic variables 'armboot_end' and 'armboot_end_data'
1987 of the linker scripts are replaced by '__bss_start' and '_end', 1992 of the linker scripts are replaced by '__bss_start' and '_end',
1988 resp., which is a further step to eliminate unnecessary differences 1993 resp., which is a further step to eliminate unnecessary differences
1989 between the implementation of the CPU architectures. 1994 between the implementation of the CPU architectures.
1990 1995
1991 * Patch by liang a lei, 9 Jan 2004: 1996 * Patch by liang a lei, 9 Jan 2004:
1992 Fix Intel 28F128J3 ID in include/flash.h 1997 Fix Intel 28F128J3 ID in include/flash.h
1993 1998
1994 * Patch by Masami Komiya, 09 Jan 2004: 1999 * Patch by Masami Komiya, 09 Jan 2004:
1995 add support for TB0229 board (NEC VR4131 MIPS processor) 2000 add support for TB0229 board (NEC VR4131 MIPS processor)
1996 2001
1997 * Patch by Leon Kukovec, 12 Dec 2003: 2002 * Patch by Leon Kukovec, 12 Dec 2003:
1998 changed extern __inline__ into static __inline__ in 2003 changed extern __inline__ into static __inline__ in
1999 include/linux/byteorder/swab.h 2004 include/linux/byteorder/swab.h
2000 2005
2001 * Patch by Travis Sawyer, 30 Dec 2003: 2006 * Patch by Travis Sawyer, 30 Dec 2003:
2002 Add support for IBM PPC440GX. Multiple EMAC Ethernet devices, 2007 Add support for IBM PPC440GX. Multiple EMAC Ethernet devices,
2003 select MDI port based on enabled EMAC device. 2008 select MDI port based on enabled EMAC device.
2004 Add support for XES Inc <http://www.xes-inc.com> XPedite1000 440GX 2009 Add support for XES Inc <http://www.xes-inc.com> XPedite1000 440GX
2005 base PrPMC board. 2010 base PrPMC board.
2006 2011
2007 * Patch by Wolter Kamphuis, 15 Dec 2003: 2012 * Patch by Wolter Kamphuis, 15 Dec 2003:
2008 made CONFIG_SILENT_CONSOLE usable on all architectures 2013 made CONFIG_SILENT_CONSOLE usable on all architectures
2009 2014
2010 * Disable date command on TQM866M - there is no RTC on MPC866 2015 * Disable date command on TQM866M - there is no RTC on MPC866
2011 2016
2012 * Fix variable CPU clock for MPC859/866 systems for low CPU clocks 2017 * Fix variable CPU clock for MPC859/866 systems for low CPU clocks
2013 2018
2014 * Implement adaptive SDRAM timing configuration based on actual CPU 2019 * Implement adaptive SDRAM timing configuration based on actual CPU
2015 clock frequency for INCA-IP; fix problem with board hanging when 2020 clock frequency for INCA-IP; fix problem with board hanging when
2016 switching from 150MHz to 100MHz 2021 switching from 150MHz to 100MHz
2017 2022
2018 * Add PCMCIA CS support for BMS2003 board 2023 * Add PCMCIA CS support for BMS2003 board
2019 2024
2020 * Add variable CPU clock for MPC859/866 systems (so far only TQM866M): 2025 * Add variable CPU clock for MPC859/866 systems (so far only TQM866M):
2021 see doc/README.MPC866 for details; 2026 see doc/README.MPC866 for details;
2022 implement workaround for "SIU4" and "SIU9" silicon bugs on MPC866; 2027 implement workaround for "SIU4" and "SIU9" silicon bugs on MPC866;
2023 calculate CPU clock frequency from PLL register values. 2028 calculate CPU clock frequency from PLL register values.
2024 2029
2025 * Add support for 128 MB RAM on TQM8xxL/M modules 2030 * Add support for 128 MB RAM on TQM8xxL/M modules
2026 2031
2027 * Fix PS/2 keyboard problem caused by statically initialized variable 2032 * Fix PS/2 keyboard problem caused by statically initialized variable
2028 pointing to a location in flash 2033 pointing to a location in flash
2029 2034
2030 * Fix INCA-IP clock calculation: 400/3 = 133.3 MHz, not 130. 2035 * Fix INCA-IP clock calculation: 400/3 = 133.3 MHz, not 130.
2031 2036
2032 * The PS/2 mux on the BMS2003 board needs 450 ms after power on 2037 * The PS/2 mux on the BMS2003 board needs 450 ms after power on
2033 before we can access it; add delay in case we are faster (with no 2038 before we can access it; add delay in case we are faster (with no
2034 CF card inserted) 2039 CF card inserted)
2035 2040
2036 * Cleanup of some init functions 2041 * Cleanup of some init functions
2037 2042
2038 * Make sure SCC Ethernet is always stopped by the time we boot Linux 2043 * Make sure SCC Ethernet is always stopped by the time we boot Linux
2039 to avoid Linux crashes by early packets coming in. 2044 to avoid Linux crashes by early packets coming in.
2040 2045
2041 * Accelerate flash accesses on LWMON board by using buffered writes 2046 * Accelerate flash accesses on LWMON board by using buffered writes
2042 2047
2043 * Fix typo in Makefile; 2048 * Fix typo in Makefile;
2044 fix problem with PARTNUM detection 2049 fix problem with PARTNUM detection
2045 2050
2046 * Patch by Reinhard Meyer, 09 Jan 2004: 2051 * Patch by Reinhard Meyer, 09 Jan 2004:
2047 - add RTC support for MPC5200 based boards (requires RTC_XTAL) 2052 - add RTC support for MPC5200 based boards (requires RTC_XTAL)
2048 2053
2049 * Add support for IDE LED on BMS2003 board 2054 * Add support for IDE LED on BMS2003 board
2050 (exclusive with status LED!) 2055 (exclusive with status LED!)
2051 2056
2052 * Add support for PS/2 keyboard (used with PS/2 multiplexor on 2057 * Add support for PS/2 keyboard (used with PS/2 multiplexor on
2053 BMS2003 board) 2058 BMS2003 board)
2054 2059
2055 * Patches by Reinhard Meyer, 4 Jan 2004 + 7 Jan 2004: 2060 * Patches by Reinhard Meyer, 4 Jan 2004 + 7 Jan 2004:
2056 Add common files for "emk" boards 2061 Add common files for "emk" boards
2057 2062
2058 * Add a common get_ram_size() function and modify the the 2063 * Add a common get_ram_size() function and modify the the
2059 board-specific files to invoke that common implementation. 2064 board-specific files to invoke that common implementation.
2060 2065
2061 ====================================================================== 2066 ======================================================================
2062 Changes for U-Boot 1.0.1: 2067 Changes for U-Boot 1.0.1:
2063 ====================================================================== 2068 ======================================================================
2064 2069
2065 * Set default clock for INCA-IP to 150 MHz 2070 * Set default clock for INCA-IP to 150 MHz
2066 2071
2067 * Make BMS2003 use a separate config file to avoid #ifdef mess; 2072 * Make BMS2003 use a separate config file to avoid #ifdef mess;
2068 add I2C support; add support for DS1337 RTC 2073 add I2C support; add support for DS1337 RTC
2069 2074
2070 * Add CompactFlash support for BMS2003 board 2075 * Add CompactFlash support for BMS2003 board
2071 2076
2072 * Add support for status LED on BMS2003 board 2077 * Add support for status LED on BMS2003 board
2073 2078
2074 * Patch by Scott McNutt, 02 Jan 2004: 2079 * Patch by Scott McNutt, 02 Jan 2004:
2075 Add support for the Nios Active Serial Memory Interface (ASMI) 2080 Add support for the Nios Active Serial Memory Interface (ASMI)
2076 on Cyclone devices 2081 on Cyclone devices
2077 2082
2078 * Patch by Andrea Marson, 16 Dec 2003: 2083 * Patch by Andrea Marson, 16 Dec 2003:
2079 Add support for the PPChameleon ME and HI modules 2084 Add support for the PPChameleon ME and HI modules
2080 2085
2081 * Patch by Yuli Barcohen, 22 Dec 2003: 2086 * Patch by Yuli Barcohen, 22 Dec 2003:
2082 Add support for Motorola DUET ADS board (MPC87x/88x) 2087 Add support for Motorola DUET ADS board (MPC87x/88x)
2083 2088
2084 * Patch by Robert Schwebel, 15 Dec 2003: 2089 * Patch by Robert Schwebel, 15 Dec 2003:
2085 add support for cramfs (uses JFFS2 command interface) 2090 add support for cramfs (uses JFFS2 command interface)
2086 2091
2087 * Patches by Stephan Linz, 11 Dec 2003: 2092 * Patches by Stephan Linz, 11 Dec 2003:
2088 - more documentation for NIOS port 2093 - more documentation for NIOS port
2089 - new struct nios_pio_t, struct nios_spi_t 2094 - new struct nios_pio_t, struct nios_spi_t
2090 - Reconfiguration for NIOS Development Kit DK1C20: 2095 - Reconfiguration for NIOS Development Kit DK1C20:
2091 o move board related code from board/dk1c20 2096 o move board related code from board/dk1c20
2092 to board/altera/dk1c20 2097 to board/altera/dk1c20
2093 o create a new common source path board/altera/common 2098 o create a new common source path board/altera/common
2094 and move generic flash access stuff into it 2099 and move generic flash access stuff into it
2095 o change/expand configuration file DK1C20.h 2100 o change/expand configuration file DK1C20.h
2096 - Add support for NIOS Development Kit DK1S10 2101 - Add support for NIOS Development Kit DK1S10
2097 - Add status LED support for NIOS systems 2102 - Add status LED support for NIOS systems
2098 - Add dual 7-segment LED support for Altera NIOS DevKits 2103 - Add dual 7-segment LED support for Altera NIOS DevKits
2099 2104
2100 * Patch by Ronen Shitrit, 10 Dec 2003: 2105 * Patch by Ronen Shitrit, 10 Dec 2003:
2101 Add support for the Marvell DB64360 / DB64460 development boards 2106 Add support for the Marvell DB64360 / DB64460 development boards
2102 2107
2103 * Patch by Detlev Zundel, 10 Dec 2003: 2108 * Patch by Detlev Zundel, 10 Dec 2003:
2104 fix dependency problem in examples/Makefile 2109 fix dependency problem in examples/Makefile
2105 2110
2106 * Patch by Denis Peter, 8 Dec 2003 2111 * Patch by Denis Peter, 8 Dec 2003
2107 - add support for the PATI board (MPC555) 2112 - add support for the PATI board (MPC555)
2108 - add SPI support for the MPC5xx 2113 - add SPI support for the MPC5xx
2109 2114
2110 * Patch by Anders Larsen, 08 Dec 2003: 2115 * Patch by Anders Larsen, 08 Dec 2003:
2111 add configuration options CONFIG_SERIAL_TAG and CONFIG_REVISION_TAG 2116 add configuration options CONFIG_SERIAL_TAG and CONFIG_REVISION_TAG
2112 to pass ATAG_SERIAL and ATAG_REVISION, resp., to the ARM target; 2117 to pass ATAG_SERIAL and ATAG_REVISION, resp., to the ARM target;
2113 cleanup some redundand #defines 2118 cleanup some redundand #defines
2114 2119
2115 * Patch by Andrรฉ Schwarz, 8 Dec 2003: 2120 * Patch by Andrรฉ Schwarz, 8 Dec 2003:
2116 fixes for Davicom DM9102A Ethernet Chip (#define CONFIG_TULIP_FIX_DAVICOM): 2121 fixes for Davicom DM9102A Ethernet Chip (#define CONFIG_TULIP_FIX_DAVICOM):
2117 - TX and RX deskriptors must be quad-word aligned 2122 - TX and RX deskriptors must be quad-word aligned
2118 - does not work with only one TX deskriptor 2123 - does not work with only one TX deskriptor
2119 - standard reset method does not work 2124 - standard reset method does not work
2120 2125
2121 * Patch by Masami Komiya, 08 Dec 2003: 2126 * Patch by Masami Komiya, 08 Dec 2003:
2122 add RTL8139 ethernet driver 2127 add RTL8139 ethernet driver
2123 2128
2124 * Patches by Ed Okerson, 07 Dec 2003: 2129 * Patches by Ed Okerson, 07 Dec 2003:
2125 - fix ethernet for the AU1x00 processors in little-endian mode. 2130 - fix ethernet for the AU1x00 processors in little-endian mode.
2126 - extend memsetup.S for the AU1x00 processors in BE and LE modes 2131 - extend memsetup.S for the AU1x00 processors in BE and LE modes
2127 2132
2128 * Minor code cleanup (coding style) 2133 * Minor code cleanup (coding style)
2129 2134
2130 * Patch by Reinhard Meyer, 30 Dec 2003: 2135 * Patch by Reinhard Meyer, 30 Dec 2003:
2131 - cpu/mpc5xxx/fec.c: added CONFIG_PHY_ADDR, added CONFIG_PHY_TYPE, 2136 - cpu/mpc5xxx/fec.c: added CONFIG_PHY_ADDR, added CONFIG_PHY_TYPE,
2132 - added CONFIG_PHY_ADDR to include/configs/IceCube.h, 2137 - added CONFIG_PHY_ADDR to include/configs/IceCube.h,
2133 - turned debug print of PHY registers into a function (called in two places) 2138 - turned debug print of PHY registers into a function (called in two places)
2134 - added support for EMK MPC5200 based modules 2139 - added support for EMK MPC5200 based modules
2135 2140
2136 * Fix MPC8xx PLPRCR_MFD_SHIFT typo 2141 * Fix MPC8xx PLPRCR_MFD_SHIFT typo
2137 2142
2138 * Add support for TQM866M modules 2143 * Add support for TQM866M modules
2139 2144
2140 * Fixes for TQM855M with 4 MB flash (Am29DL163 = _no_ mirror bit flash) 2145 * Fixes for TQM855M with 4 MB flash (Am29DL163 = _no_ mirror bit flash)
2141 2146
2142 * Fix a few compiler warnings 2147 * Fix a few compiler warnings
2143 2148
2144 * Patch by Reinhard Meyer, 28 Dec 2003: 2149 * Patch by Reinhard Meyer, 28 Dec 2003:
2145 Add initial support for TOP5200 board 2150 Add initial support for TOP5200 board
2146 2151
2147 * Make CPU clock on ICA-IP board controllable by a "cpuclk" 2152 * Make CPU clock on ICA-IP board controllable by a "cpuclk"
2148 environment variable which can set to "100", "133", or "150". The 2153 environment variable which can set to "100", "133", or "150". The
2149 CPU clock will be configured accordingly upon next reboot. Other 2154 CPU clock will be configured accordingly upon next reboot. Other
2150 values are ignored. In case of an invalid or undefined "cpuclk" 2155 values are ignored. In case of an invalid or undefined "cpuclk"
2151 value, the compile-time default CPU clock speed will be used. 2156 value, the compile-time default CPU clock speed will be used.
2152 2157
2153 * Enable Quad-UART on BMS2003 board (initialize the PCMCIA memory 2158 * Enable Quad-UART on BMS2003 board (initialize the PCMCIA memory
2154 window that is used to access the UART registers by the Linux driver) 2159 window that is used to access the UART registers by the Linux driver)
2155 2160
2156 * Patch by Reinhard Meyer, 20 Dec 2003: 2161 * Patch by Reinhard Meyer, 20 Dec 2003:
2157 Fix clock calculation for the MPC5200 for higher clock frequencies 2162 Fix clock calculation for the MPC5200 for higher clock frequencies
2158 (above 2**32 / 10 = 429.5 MHz). 2163 (above 2**32 / 10 = 429.5 MHz).
2159 2164
2160 * Fix CONFIG_PLL_PCI_TO_MEM_MULTIPLIER divider error in SP8240 configuration 2165 * Fix CONFIG_PLL_PCI_TO_MEM_MULTIPLIER divider error in SP8240 configuration
2161 2166
2162 * Fix IceCube CLKIN configuration (it's 33.000000MHz) 2167 * Fix IceCube CLKIN configuration (it's 33.000000MHz)
2163 2168
2164 * Add new configuration for IceCube board with DDR memory 2169 * Add new configuration for IceCube board with DDR memory
2165 2170
2166 * Update TRAB memory configurations 2171 * Update TRAB memory configurations
2167 2172
2168 * Add JFFS2 support for INCA-IP board 2173 * Add JFFS2 support for INCA-IP board
2169 2174
2170 * Patch by Bill Hargen, 09 Dec 2003: 2175 * Patch by Bill Hargen, 09 Dec 2003:
2171 - BUBINGA405EP: changed flash driver to protect top sector containing 2176 - BUBINGA405EP: changed flash driver to protect top sector containing
2172 first instruction. 2177 first instruction.
2173 - BUBINGA405EP: configured "eeprom" command to access boot config EEPROM. 2178 - BUBINGA405EP: configured "eeprom" command to access boot config EEPROM.
2174 - BUBINGA405EP: fixed PLL init (init chip selects before FPGA/NVRAM access). 2179 - BUBINGA405EP: fixed PLL init (init chip selects before FPGA/NVRAM access).
2175 - 405EP: fixed SPD-based SDRAM init (only use banks 0 and 1). 2180 - 405EP: fixed SPD-based SDRAM init (only use banks 0 and 1).
2176 - 405EP: added/fixed support for "reginfo" command. 2181 - 405EP: added/fixed support for "reginfo" command.
2177 - 4xx: removed spurious MII error messages on "mii info" command. 2182 - 4xx: removed spurious MII error messages on "mii info" command.
2178 2183
2179 * Patch by Bernhard Kuhn, 28 Nov 2003: 2184 * Patch by Bernhard Kuhn, 28 Nov 2003:
2180 add support for Coldfire CPU 2185 add support for Coldfire CPU
2181 add support for Motorola M5272C3 and M5282EVB boards 2186 add support for Motorola M5272C3 and M5282EVB boards
2182 2187
2183 * Patch by Pierre Aubert, 24 Nov 2003: 2188 * Patch by Pierre Aubert, 24 Nov 2003:
2184 - add a return value for the fpga command 2189 - add a return value for the fpga command
2185 - add ide_preinit() function called in ide_init if CONFIG_IDE_PREINIT 2190 - add ide_preinit() function called in ide_init if CONFIG_IDE_PREINIT
2186 is defined. If ide_preinit fails, ide_init is aborted. 2191 is defined. If ide_preinit fails, ide_init is aborted.
2187 - fix an endianess problem in fat.h 2192 - fix an endianess problem in fat.h
2188 2193
2189 * Patch by Wolter Kamphuis, 05 Dec 2003: 2194 * Patch by Wolter Kamphuis, 05 Dec 2003:
2190 Add support for SNMC's QS850/QS823/QS860T boards 2195 Add support for SNMC's QS850/QS823/QS860T boards
2191 2196
2192 * Patch by Yuli Barcohen, 3 Dec 2003: 2197 * Patch by Yuli Barcohen, 3 Dec 2003:
2193 "revive" U-Boot support for old Motorola MPC860ADS board 2198 "revive" U-Boot support for old Motorola MPC860ADS board
2194 2199
2195 * Patch by Cam(ilo?), 03 Dec 2003: 2200 * Patch by Cam(ilo?), 03 Dec 2003:
2196 make examples build even with broken Montavista objcopy 2201 make examples build even with broken Montavista objcopy
2197 2202
2198 * Patch by Pavel Bartusek, 27 Nov 2003: 2203 * Patch by Pavel Bartusek, 27 Nov 2003:
2199 fix conversion problem with "bootretry" evironment variable 2204 fix conversion problem with "bootretry" evironment variable
2200 2205
2201 * Patch by Andre Schwarz, 24 Nov 2003: 2206 * Patch by Andre Schwarz, 24 Nov 2003:
2202 add support for mvblue (mvBlueLYNX and mvBlueBOX) boards 2207 add support for mvblue (mvBlueLYNX and mvBlueBOX) boards
2203 2208
2204 * Patch by Pavel Bartusek, 21 Nov 2003: 2209 * Patch by Pavel Bartusek, 21 Nov 2003:
2205 set ZMII bridge speed on 440 2210 set ZMII bridge speed on 440
2206 2211
2207 * Patch by Anders Larsen, 17 Nov 2003: 2212 * Patch by Anders Larsen, 17 Nov 2003:
2208 Fix mismatched #ifdef / #endif in include/asm-arm/arch-pxa/hardware.h 2213 Fix mismatched #ifdef / #endif in include/asm-arm/arch-pxa/hardware.h
2209 2214
2210 * Patches by David Mรผller, 14 Nov 2003: 2215 * Patches by David Mรผller, 14 Nov 2003:
2211 - board/mpl/common/common_util.c 2216 - board/mpl/common/common_util.c
2212 * implement support for BZIP2 compressed images 2217 * implement support for BZIP2 compressed images
2213 * various cleanups (printf -> puts, ...) 2218 * various cleanups (printf -> puts, ...)
2214 - board/mpl/common/flash.c 2219 - board/mpl/common/flash.c
2215 * report correct errors to upper layers 2220 * report correct errors to upper layers
2216 * check the erase fail and VPP low bits in status reg 2221 * check the erase fail and VPP low bits in status reg
2217 - board/mpl/vcma9/cmd_vcma9.c 2222 - board/mpl/vcma9/cmd_vcma9.c
2218 - board/mpl/vcma9/flash.c 2223 - board/mpl/vcma9/flash.c
2219 * various cleanups (printf -> puts, ...) 2224 * various cleanups (printf -> puts, ...)
2220 - common/cmd_usb.c 2225 - common/cmd_usb.c
2221 * fix typo in comment 2226 * fix typo in comment
2222 - cpu/arm920t/usb_ohci.c 2227 - cpu/arm920t/usb_ohci.c
2223 * support for S3C2410 is missing in #if line 2228 * support for S3C2410 is missing in #if line
2224 - drivers/cs8900.c 2229 - drivers/cs8900.c
2225 * reinit some registers in case of error (cable missing, ...) 2230 * reinit some registers in case of error (cable missing, ...)
2226 - fs/fat/fat.c 2231 - fs/fat/fat.c
2227 * support for USB/MMC devices is missing in #if line 2232 * support for USB/MMC devices is missing in #if line
2228 - include/configs/MIP405.h 2233 - include/configs/MIP405.h
2229 - include/configs/PIP405.h 2234 - include/configs/PIP405.h
2230 * enable BZIP2 support 2235 * enable BZIP2 support
2231 * enlarge malloc space to 1MiB because of BZIP2 support 2236 * enlarge malloc space to 1MiB because of BZIP2 support
2232 - include/configs/VCMA9.h 2237 - include/configs/VCMA9.h
2233 * enable BZIP2 support 2238 * enable BZIP2 support
2234 * enlarge malloc space to 1MiB because of BZIP2 support 2239 * enlarge malloc space to 1MiB because of BZIP2 support
2235 * enable USB support 2240 * enable USB support
2236 - lib_arm/armlinux.c 2241 - lib_arm/armlinux.c
2237 * change calling convention of ARM Linux kernel as 2242 * change calling convention of ARM Linux kernel as
2238 described on http://www.arm.linux.org.uk/developer/booting.php 2243 described on http://www.arm.linux.org.uk/developer/booting.php
2239 2244
2240 * Patch by Thomas Lange, 14 Nov 2003: 2245 * Patch by Thomas Lange, 14 Nov 2003:
2241 Split dbau1x00 into dbau1000, dbau1100 and dbau1500 configs to 2246 Split dbau1x00 into dbau1000, dbau1100 and dbau1500 configs to
2242 support all these AMD boards. 2247 support all these AMD boards.
2243 2248
2244 * Patch by Thomas Lange, 14 Nov 2003: 2249 * Patch by Thomas Lange, 14 Nov 2003:
2245 Workaround for mips au1x00 physical memory accesses (the au1x00 2250 Workaround for mips au1x00 physical memory accesses (the au1x00
2246 uses a 36 bit bus internally and cannot access physical memory 2251 uses a 36 bit bus internally and cannot access physical memory
2247 directly. Use the uncached SDRAM address instead of the physical 2252 directly. Use the uncached SDRAM address instead of the physical
2248 one.) 2253 one.)
2249 2254
2250 * Patch by Xue Ligong (Joe), 13 Nov 2003: 2255 * Patch by Xue Ligong (Joe), 13 Nov 2003:
2251 add Realtek 8019 ethernet driver 2256 add Realtek 8019 ethernet driver
2252 2257
2253 * Patch by Yuli Barcohen, 13 Nov 2003: 2258 * Patch by Yuli Barcohen, 13 Nov 2003:
2254 MPC826xADS/PQ2FADS cleanup 2259 MPC826xADS/PQ2FADS cleanup
2255 2260
2256 * Patch by Anders Larsen, 12 Nov 2003: 2261 * Patch by Anders Larsen, 12 Nov 2003:
2257 Update README to mark the PORTIO commands non-standard 2262 Update README to mark the PORTIO commands non-standard
2258 2263
2259 * Patch by Nicolas Lacressonniรจre, 12 Nov 2003: 2264 * Patch by Nicolas Lacressonniรจre, 12 Nov 2003:
2260 update for for Atmel AT91RM9200DK development kit: 2265 update for for Atmel AT91RM9200DK development kit:
2261 - support for environment variables in DataFlash 2266 - support for environment variables in DataFlash
2262 - Atmel DataFlash AT45DB1282 support 2267 - Atmel DataFlash AT45DB1282 support
2263 2268
2264 * Patch by Jeff Carr, 11 Nov 2003: 2269 * Patch by Jeff Carr, 11 Nov 2003:
2265 add support for new version of 8270 processors 2270 add support for new version of 8270 processors
2266 2271
2267 * Patches by George G. Davis, 05 Nov 2003: 2272 * Patches by George G. Davis, 05 Nov 2003:
2268 - only pass the ARM linux initrd tag to the kernel when an initrd 2273 - only pass the ARM linux initrd tag to the kernel when an initrd
2269 is actually present 2274 is actually present
2270 - update omap1510inn configuration file 2275 - update omap1510inn configuration file
2271 2276
2272 * Patches by Stephan Linz, 3 Nov 2003: 2277 * Patches by Stephan Linz, 3 Nov 2003:
2273 - more endianess fixes for LAN91C111 driver 2278 - more endianess fixes for LAN91C111 driver
2274 - CFG_HZ configuration patch for NIOS Cyclone board 2279 - CFG_HZ configuration patch for NIOS Cyclone board
2275 2280
2276 * Patch by Stephan Linz, 28 Oct 2003: 2281 * Patch by Stephan Linz, 28 Oct 2003:
2277 fix PHY_INT_REG vs. PHY_MASK_REG bug in drivers/smc91111.c 2282 fix PHY_INT_REG vs. PHY_MASK_REG bug in drivers/smc91111.c
2278 2283
2279 * Patch by Steven Scholz, 20 Oct 2003: 2284 * Patch by Steven Scholz, 20 Oct 2003:
2280 - make "mii info <addr>" show infor for PHY at "addr" only 2285 - make "mii info <addr>" show infor for PHY at "addr" only
2281 - Endian fix for miiphy_info() 2286 - Endian fix for miiphy_info()
2282 2287
2283 * Patch by Gleb Natapov, 19 Sep 2003: 2288 * Patch by Gleb Natapov, 19 Sep 2003:
2284 Move most of the timer interrupt related PPC code to ppc_lib/interrupts.c 2289 Move most of the timer interrupt related PPC code to ppc_lib/interrupts.c
2285 2290
2286 * Patch by Anders Larsen, 17 Sep 2003: 2291 * Patch by Anders Larsen, 17 Sep 2003:
2287 Bring ARM memory layout in sync with the documentation: 2292 Bring ARM memory layout in sync with the documentation:
2288 stack and malloc-heap are now located _below_ the U-Boot code 2293 stack and malloc-heap are now located _below_ the U-Boot code
2289 2294
2290 * Accelerate booting on TRAB board: read and check autoupdate image 2295 * Accelerate booting on TRAB board: read and check autoupdate image
2291 headers first instead of always reading the whole images. 2296 headers first instead of always reading the whole images.
2292 2297
2293 * Fix type in MPC5XXX code (pointed out by Victor Wren) 2298 * Fix type in MPC5XXX code (pointed out by Victor Wren)
2294 2299
2295 * Enabled password check on RMU board 2300 * Enabled password check on RMU board
2296 2301
2297 * Fix configuration problem with IceCube in LOWBOOT configuration: 2302 * Fix configuration problem with IceCube in LOWBOOT configuration:
2298 envrionment got embedded, corrupting the image layout. 2303 envrionment got embedded, corrupting the image layout.
2299 2304
2300 * Fix NEC display names (it's 6440 [for 640x480], not 6640). 2305 * Fix NEC display names (it's 6440 [for 640x480], not 6640).
2301 2306
2302 * Added BMS2003 board 2307 * Added BMS2003 board
2303 add support for NEC NL6448BC33-54. 10.4", 640x480 TFT display 2308 add support for NEC NL6448BC33-54. 10.4", 640x480 TFT display
2304 2309
2305 * Fix flash driver for TRAB board (must use Unlock Bypass Reset 2310 * Fix flash driver for TRAB board (must use Unlock Bypass Reset
2306 command to exit Unlock Bypass Mode); adjust timings for flash, SRAM 2311 command to exit Unlock Bypass Mode); adjust timings for flash, SRAM
2307 and CPLD 2312 and CPLD
2308 2313
2309 * Use "-fPIC" instead of "-mrelocatable" to prevent problems with 2314 * Use "-fPIC" instead of "-mrelocatable" to prevent problems with
2310 recent tools 2315 recent tools
2311 2316
2312 * Add checksum verification to 'imls' command 2317 * Add checksum verification to 'imls' command
2313 2318
2314 * Add bd_info fields needed for 4xx Linux I2C driver 2319 * Add bd_info fields needed for 4xx Linux I2C driver
2315 2320
2316 * Patch by Martin Krause, 4 Nov. 2003: 2321 * Patch by Martin Krause, 4 Nov. 2003:
2317 Fix error in cmd_vfd.c (TRAB board: "vfd /1" shows now only one Bitmap) 2322 Fix error in cmd_vfd.c (TRAB board: "vfd /1" shows now only one Bitmap)
2318 2323
2319 * Print used network interface when CONFIG_NET_MULTI is set 2324 * Print used network interface when CONFIG_NET_MULTI is set
2320 2325
2321 * Patch by Bernhard Kuhn, 28 Oct 2003: 2326 * Patch by Bernhard Kuhn, 28 Oct 2003:
2322 Add low boot support for MPC5200 2327 Add low boot support for MPC5200
2323 2328
2324 * Fix problem with dual PCMCIA support (NSCU) 2329 * Fix problem with dual PCMCIA support (NSCU)
2325 2330
2326 * Fix MPC5200 I2C initialization function 2331 * Fix MPC5200 I2C initialization function
2327 2332
2328 ====================================================================== 2333 ======================================================================
2329 Changes for U-Boot 1.0.0: 2334 Changes for U-Boot 1.0.0:
2330 ====================================================================== 2335 ======================================================================
2331 2336
2332 * Fix parameter passing to standalone images with bootm command 2337 * Fix parameter passing to standalone images with bootm command
2333 2338
2334 * Patch by Kyle Harris, 30 Oct 2003: 2339 * Patch by Kyle Harris, 30 Oct 2003:
2335 Fix build errors for ixdp425 board 2340 Fix build errors for ixdp425 board
2336 2341
2337 * Patch by David M. Horn, 29 Oct 2003: 2342 * Patch by David M. Horn, 29 Oct 2003:
2338 Fixes to build under CYGWIN 2343 Fixes to build under CYGWIN
2339 2344
2340 * Get IceCube MGT5100 working (again) 2345 * Get IceCube MGT5100 working (again)
2341 2346
2342 * Fix problems in memory test on some boards (which was not 2347 * Fix problems in memory test on some boards (which was not
2343 non-destructive as intended) 2348 non-destructive as intended)
2344 2349
2345 * Patch by Gary Jennejohn, 28 Oct 2003: 2350 * Patch by Gary Jennejohn, 28 Oct 2003:
2346 Change fs/fat/fat.c to put I/O buffers in BSS instead on the stack 2351 Change fs/fat/fat.c to put I/O buffers in BSS instead on the stack
2347 to prevent stack overflow on ARM systems 2352 to prevent stack overflow on ARM systems
2348 2353
2349 * Patch by Stephan Linz, 28 Oct 2003: 2354 * Patch by Stephan Linz, 28 Oct 2003:
2350 fix init sequence error for NIOS port 2355 fix init sequence error for NIOS port
2351 2356
2352 * Allow lowercase spelling for IceCube_5200; support MPC5200LITE name 2357 * Allow lowercase spelling for IceCube_5200; support MPC5200LITE name
2353 2358
2354 * Add CONFIG_VERSION_VARIABLE to TRAB configuration 2359 * Add CONFIG_VERSION_VARIABLE to TRAB configuration
2355 2360
2356 * Patch by Xiao Xianghua, 23 Oct 2003: 2361 * Patch by Xiao Xianghua, 23 Oct 2003:
2357 small patch for mpc85xx 2362 small patch for mpc85xx
2358 2363
2359 * Fix small problem in MPC5200 I2C driver 2364 * Fix small problem in MPC5200 I2C driver
2360 2365
2361 * Fix FCC3 support on ATC board 2366 * Fix FCC3 support on ATC board
2362 2367
2363 * Correct header printing for multi-image files in do_bootm() 2368 * Correct header printing for multi-image files in do_bootm()
2364 2369
2365 * Make CONFIG_SILENT_CONSOLE work with CONFIG_AUTOBOOT_KEYED 2370 * Make CONFIG_SILENT_CONSOLE work with CONFIG_AUTOBOOT_KEYED
2366 2371
2367 * Fix PCI problems on PPChameleon board 2372 * Fix PCI problems on PPChameleon board
2368 2373
2369 * Patch by Steven Scholz, 18 Oct 2003: 2374 * Patch by Steven Scholz, 18 Oct 2003:
2370 Fix AT91RM9200 ethernet driver 2375 Fix AT91RM9200 ethernet driver
2371 2376
2372 * Patch by Nye Liu, 17 Oct 2003: 2377 * Patch by Nye Liu, 17 Oct 2003:
2373 Fix typo in include/mpc8xx.h 2378 Fix typo in include/mpc8xx.h
2374 2379
2375 * Patch by Richard Woodruff, 16 Oct 03: 2380 * Patch by Richard Woodruff, 16 Oct 03:
2376 Fixes for cpu/arm925/interrupt.c 2381 Fixes for cpu/arm925/interrupt.c
2377 - Initialize timestamp & lastdec vars. 2382 - Initialize timestamp & lastdec vars.
2378 - fix timestamp overflows. 2383 - fix timestamp overflows.
2379 - fix lastdec overflow. 2384 - fix lastdec overflow.
2380 - smarter normalization to allow udelay() below 1ms to work. 2385 - smarter normalization to allow udelay() below 1ms to work.
2381 2386
2382 * Patch by Scott McNutt, 16 Oct 2387 * Patch by Scott McNutt, 16 Oct
2383 add networking support for the Altera Nios Development Kit, 2388 add networking support for the Altera Nios Development Kit,
2384 Cyclone Edition (DK-1C20) 2389 Cyclone Edition (DK-1C20)
2385 2390
2386 * Patch by Jon Diekema, 14 Oct 2003: 2391 * Patch by Jon Diekema, 14 Oct 2003:
2387 add hint about doc/README.silent to README file 2392 add hint about doc/README.silent to README file
2388 2393
2389 * Add CompactFlash support for NSCU 2394 * Add CompactFlash support for NSCU
2390 2395
2391 * Fix PCI problems on PPChameleonEVB 2396 * Fix PCI problems on PPChameleonEVB
2392 2397
2393 * TRAB auto-update: Base decision if we have to strip the image 2398 * TRAB auto-update: Base decision if we have to strip the image
2394 header on image type as encoded in the header 2399 header on image type as encoded in the header
2395 (include image type patch by Martin Krause, 17 Oct 2003) 2400 (include image type patch by Martin Krause, 17 Oct 2003)
2396 2401
2397 * Patches by Xianghua Xiao, 15 Oct 2003: 2402 * Patches by Xianghua Xiao, 15 Oct 2003:
2398 2403
2399 - Added Motorola CPU 8540/8560 support (cpu/85xx) 2404 - Added Motorola CPU 8540/8560 support (cpu/85xx)
2400 - Added Motorola MPC8540ADS board support (board/mpc8540ads) 2405 - Added Motorola MPC8540ADS board support (board/mpc8540ads)
2401 - Added Motorola MPC8560ADS board support (board/mpc8560ads) 2406 - Added Motorola MPC8560ADS board support (board/mpc8560ads)
2402 2407
2403 * Fix flash timings on TRAB board 2408 * Fix flash timings on TRAB board
2404 2409
2405 * Make sure HUSH is initialized for running auto-update scripts 2410 * Make sure HUSH is initialized for running auto-update scripts
2406 2411
2407 * Make 5200 reset command _really_ reset the board, without running 2412 * Make 5200 reset command _really_ reset the board, without running
2408 any other code after it 2413 any other code after it
2409 2414
2410 * Fix errors with flash erase when range spans across banks 2415 * Fix errors with flash erase when range spans across banks
2411 that are mapped in reverse order 2416 that are mapped in reverse order
2412 2417
2413 * Fix flash mapping and display on P3G4 board 2418 * Fix flash mapping and display on P3G4 board
2414 2419
2415 * Patch by Kyle Harris, 15 Jul 2003: 2420 * Patch by Kyle Harris, 15 Jul 2003:
2416 - add support for Intel IXP425 CPU 2421 - add support for Intel IXP425 CPU
2417 - add support for IXDP425 eval board 2422 - add support for IXDP425 eval board
2418 2423
2419 * Added config option CONFIG_SILENT_CONSOLE. See doc/README.silent 2424 * Added config option CONFIG_SILENT_CONSOLE. See doc/README.silent
2420 for more information 2425 for more information
2421 2426
2422 * Patch by Steven Scholz, 10 Oct 2003 2427 * Patch by Steven Scholz, 10 Oct 2003
2423 - Add support for Altera FPGA ACEX1K 2428 - Add support for Altera FPGA ACEX1K
2424 2429
2425 * Patches by Thomas Lange, 09 Oct 2003: 2430 * Patches by Thomas Lange, 09 Oct 2003:
2426 - fix cmd_ide.c for non ppc boards (read/write functions did not 2431 - fix cmd_ide.c for non ppc boards (read/write functions did not
2427 add ATA base address) 2432 add ATA base address)
2428 - fix for shannon board 2433 - fix for shannon board
2429 - #ifdef CONFIG_IDE_8xx_DIRECT some otherwise unused code 2434 - #ifdef CONFIG_IDE_8xx_DIRECT some otherwise unused code
2430 - Endian swap ATA identity for all big endian CPUs, not just PPC 2435 - Endian swap ATA identity for all big endian CPUs, not just PPC
2431 - MIPS only: New option CONFIG_MEMSIZE_IN_BYTES for passing memsize 2436 - MIPS only: New option CONFIG_MEMSIZE_IN_BYTES for passing memsize
2432 args to linux 2437 args to linux
2433 - add support for dbau1x00 board (MIPS32) 2438 - add support for dbau1x00 board (MIPS32)
2434 2439
2435 * Patch by Sangmoon Kim, 07 Oct 2003: 2440 * Patch by Sangmoon Kim, 07 Oct 2003:
2436 add support for debris board 2441 add support for debris board
2437 2442
2438 * Patch by Martin Krause, 09 Oct 2003: 2443 * Patch by Martin Krause, 09 Oct 2003:
2439 Fixes for TRAB board 2444 Fixes for TRAB board
2440 - /board/trab/rs485.c: correct baudrate 2445 - /board/trab/rs485.c: correct baudrate
2441 - /board/trab/cmd_trab.c: bug fix for problem with timer overflow in 2446 - /board/trab/cmd_trab.c: bug fix for problem with timer overflow in
2442 udelay(); fix some timing problems with adc controller 2447 udelay(); fix some timing problems with adc controller
2443 - /board/trab/trab_fkt.c: add new commands: gain, eeprom and power; 2448 - /board/trab/trab_fkt.c: add new commands: gain, eeprom and power;
2444 modify commands: touch and buzzer 2449 modify commands: touch and buzzer
2445 2450
2446 * Disable CONFIG_SUPPORT_VFAT when used with CONFIG_AUTO_UPDATE 2451 * Disable CONFIG_SUPPORT_VFAT when used with CONFIG_AUTO_UPDATE
2447 (quick & dirty workaround for rogue pointer problem in get_vfatname()); 2452 (quick & dirty workaround for rogue pointer problem in get_vfatname());
2448 Use direct function calls for auto_update instead of hush commands 2453 Use direct function calls for auto_update instead of hush commands
2449 2454
2450 * Patch by Scott McNutt, 04 Oct 2003: 2455 * Patch by Scott McNutt, 04 Oct 2003:
2451 - add support for Altera Nios-32 CPU 2456 - add support for Altera Nios-32 CPU
2452 - add support for Nios Cyclone Development Kit (DK-1C20) 2457 - add support for Nios Cyclone Development Kit (DK-1C20)
2453 2458
2454 * Patch by Steven Scholz, 29 Sep 2003: 2459 * Patch by Steven Scholz, 29 Sep 2003:
2455 - A second parameter for bootm overwrites the load address for 2460 - A second parameter for bootm overwrites the load address for
2456 "Standalone Application" images. 2461 "Standalone Application" images.
2457 - bootm sets environment variable "filesize" to the resulting 2462 - bootm sets environment variable "filesize" to the resulting
2458 (uncompressed) data length for "Standalone Application" images 2463 (uncompressed) data length for "Standalone Application" images
2459 when autostart is set to "no". Now you can do something like 2464 when autostart is set to "no". Now you can do something like
2460 if bootm $fpgadata $some_free_ram ; then 2465 if bootm $fpgadata $some_free_ram ; then
2461 fpga load 0 $some_free_ram $filesize 2466 fpga load 0 $some_free_ram $filesize
2462 fi 2467 fi
2463 2468
2464 * Patch by Denis Peter, 25 Sept 2003: 2469 * Patch by Denis Peter, 25 Sept 2003:
2465 add support for the MIP405 Rev. C board 2470 add support for the MIP405 Rev. C board
2466 2471
2467 * Patch by Yuli Barcohen, 25 Sep 2003: 2472 * Patch by Yuli Barcohen, 25 Sep 2003:
2468 add support for Zephyr Engineering ZPC.1900 board 2473 add support for Zephyr Engineering ZPC.1900 board
2469 2474
2470 * Patch by Anders Larsen, 23 Sep 2003: 2475 * Patch by Anders Larsen, 23 Sep 2003:
2471 add CMD_PORTIO to CFG_CMD_NONSTD (commands in question are only 2476 add CMD_PORTIO to CFG_CMD_NONSTD (commands in question are only
2472 implemented for the x86 architecture) 2477 implemented for the x86 architecture)
2473 2478
2474 * Patch by Sangmoon Kim, 23 Sep 2003: 2479 * Patch by Sangmoon Kim, 23 Sep 2003:
2475 fix pll_pci_to_mem_multiplier table for MPC8245 2480 fix pll_pci_to_mem_multiplier table for MPC8245
2476 2481
2477 * Patch by Anders Larsen, 22 Sep 2003: 2482 * Patch by Anders Larsen, 22 Sep 2003:
2478 enable timed autoboot on PXA 2483 enable timed autoboot on PXA
2479 2484
2480 * Patch by David Mรผller, 22 Sep 2003: 2485 * Patch by David Mรผller, 22 Sep 2003:
2481 - add $(CFLAGS) to "-print-libgcc-filename" so compiler driver 2486 - add $(CFLAGS) to "-print-libgcc-filename" so compiler driver
2482 returns correct libgcc file path 2487 returns correct libgcc file path
2483 - "latency" reduction of busy-loop waiting to improve "U-Boot" boot 2488 - "latency" reduction of busy-loop waiting to improve "U-Boot" boot
2484 time on s3c24x0 systems 2489 time on s3c24x0 systems
2485 2490
2486 * Patch by Jon Diekema, 19 Sep 2003: 2491 * Patch by Jon Diekema, 19 Sep 2003:
2487 - Add CFG_FAULT_ECHO_LINK_DOWN option to echo the inverted Ethernet 2492 - Add CFG_FAULT_ECHO_LINK_DOWN option to echo the inverted Ethernet
2488 link state to the fault LED. 2493 link state to the fault LED.
2489 - In NetLoop, make the Fault LED reflect the link status. The link 2494 - In NetLoop, make the Fault LED reflect the link status. The link
2490 status gets updated on entry, and on timeouts. 2495 status gets updated on entry, and on timeouts.
2491 2496
2492 * Patch by Anders Larsen, 18 Sep 2003: 2497 * Patch by Anders Larsen, 18 Sep 2003:
2493 allow mkimage to build and run on Cygwin-hosted systems 2498 allow mkimage to build and run on Cygwin-hosted systems
2494 2499
2495 * Patch by Frank Mรผller, 18 Sep 2003: 2500 * Patch by Frank Mรผller, 18 Sep 2003:
2496 use bi_intfreq instead of bi_busfreq to compute fec_mii_speed in 2501 use bi_intfreq instead of bi_busfreq to compute fec_mii_speed in
2497 cpu/mpc8xx/fec.c 2502 cpu/mpc8xx/fec.c
2498 2503
2499 * Patch by Pantelis Antoniou, 16 Sep 2003: 2504 * Patch by Pantelis Antoniou, 16 Sep 2003:
2500 add tool to compute fileds in the PLPRCR register for MPC86x 2505 add tool to compute fileds in the PLPRCR register for MPC86x
2501 2506
2502 * Use IH_TYPE_FILESYSTEM for TRAB "disk" images. 2507 * Use IH_TYPE_FILESYSTEM for TRAB "disk" images.
2503 2508
2504 * Fix build problems under FreeBSD 2509 * Fix build problems under FreeBSD
2505 2510
2506 * Add generic filesystem image type 2511 * Add generic filesystem image type
2507 2512
2508 * Make fatload set filesize environment variable 2513 * Make fatload set filesize environment variable
2509 2514
2510 * enable basic / medium / high-end configurations for PPChameleonEVB 2515 * enable basic / medium / high-end configurations for PPChameleonEVB
2511 board; fix NAND code 2516 board; fix NAND code
2512 2517
2513 * enable TFTP client code to specify to the server the desired 2518 * enable TFTP client code to specify to the server the desired
2514 timeout value (see RFC-2349) 2519 timeout value (see RFC-2349)
2515 2520
2516 * Improve SDRAM setup for TRAB board 2521 * Improve SDRAM setup for TRAB board
2517 2522
2518 * Suppress all output with splashscreen configured only if "splashimage" 2523 * Suppress all output with splashscreen configured only if "splashimage"
2519 is set 2524 is set
2520 2525
2521 * Fix problems with I2C support for mpc5200 2526 * Fix problems with I2C support for mpc5200
2522 2527
2523 * Adapt TRAB configuration and auto_update to new memory layout 2528 * Adapt TRAB configuration and auto_update to new memory layout
2524 2529
2525 * Add configuration for wtk board 2530 * Add configuration for wtk board
2526 2531
2527 * Add support for the Sharp LQ065T9DR51U LCD display 2532 * Add support for the Sharp LQ065T9DR51U LCD display
2528 2533
2529 * Patch by Rune Torgersen, 17 Sep 2003: 2534 * Patch by Rune Torgersen, 17 Sep 2003:
2530 - Fixes for MPC8266 default config 2535 - Fixes for MPC8266 default config
2531 - Allow eth_loopback_test() on 8260 to use a subset of the FCC's 2536 - Allow eth_loopback_test() on 8260 to use a subset of the FCC's
2532 2537
2533 * Patches by Jon Diekema, 17 Sep 2003: 2538 * Patches by Jon Diekema, 17 Sep 2003:
2534 - update README (SHOW_BOOT_PROGRESS values for cmd_nand.c and 2539 - update README (SHOW_BOOT_PROGRESS values for cmd_nand.c and
2535 env_common.c) 2540 env_common.c)
2536 - sbc8260 tweaks 2541 - sbc8260 tweaks
2537 - adjust "help" output 2542 - adjust "help" output
2538 2543
2539 * Patches by Anders Larsen, 17 Sep 2003: 2544 * Patches by Anders Larsen, 17 Sep 2003:
2540 - fix spelling errors 2545 - fix spelling errors
2541 - set GD_FLG_DEVINIT flag only after device function pointers 2546 - set GD_FLG_DEVINIT flag only after device function pointers
2542 are valid 2547 are valid
2543 - Allow CFG_ALT_MEMTEST on systems where address zero isn't 2548 - Allow CFG_ALT_MEMTEST on systems where address zero isn't
2544 writeable 2549 writeable
2545 - enable 3.rd UART (ST-UART) on PXA(XScale) CPUs 2550 - enable 3.rd UART (ST-UART) on PXA(XScale) CPUs
2546 - trigger watchdog while waiting in serial driver 2551 - trigger watchdog while waiting in serial driver
2547 2552
2548 * Add auto-update code for TRAB board using USB memory sticks, 2553 * Add auto-update code for TRAB board using USB memory sticks,
2549 support new configuration with more memory 2554 support new configuration with more memory
2550 2555
2551 * disable MPC5200 bus pipelining as workaround for bus contention 2556 * disable MPC5200 bus pipelining as workaround for bus contention
2552 2557
2553 * Modify XLB arbiter priorities on MPC5200 so all devices use same 2558 * Modify XLB arbiter priorities on MPC5200 so all devices use same
2554 priority; configure critical interrupts to be handled like external 2559 priority; configure critical interrupts to be handled like external
2555 interrupts 2560 interrupts
2556 2561
2557 * Make IPB clock on MGT5100/MPC5200 configurable in board config file; 2562 * Make IPB clock on MGT5100/MPC5200 configurable in board config file;
2558 go back to 66 MHz for stability 2563 go back to 66 MHz for stability
2559 2564
2560 * Patches by Jon Diekema, 15 Sep 2003: 2565 * Patches by Jon Diekema, 15 Sep 2003:
2561 - add description for missing CFG_CMD_* entries in the README file 2566 - add description for missing CFG_CMD_* entries in the README file
2562 - sacsng tweaks 2567 - sacsng tweaks
2563 2568
2564 * Patch by Gleb Natapov, 14 Sep 2003: 2569 * Patch by Gleb Natapov, 14 Sep 2003:
2565 enable watchdog support for all MPC824x boards that have a watchdog 2570 enable watchdog support for all MPC824x boards that have a watchdog
2566 2571
2567 * On MPC5200, restrict FEC to a maximum of 10 Mbps to work around the 2572 * On MPC5200, restrict FEC to a maximum of 10 Mbps to work around the
2568 "Non-octet Aligned Frame" errors we see at 100 Mbps 2573 "Non-octet Aligned Frame" errors we see at 100 Mbps
2569 2574
2570 * Patch by Sharad Gupta, 14 Sep 2003: 2575 * Patch by Sharad Gupta, 14 Sep 2003:
2571 fix SPR numbers for upper BAT register ([ID]BAT[4-7][UL]) 2576 fix SPR numbers for upper BAT register ([ID]BAT[4-7][UL])
2572 2577
2573 * Patch by llandre, 11 Sep 2003: 2578 * Patch by llandre, 11 Sep 2003:
2574 update configuration for PPChameleonEVB board 2579 update configuration for PPChameleonEVB board
2575 2580
2576 * Patch by David Mรผller, 13 Sep 2003: 2581 * Patch by David Mรผller, 13 Sep 2003:
2577 various changes to VCMA9 board specific files 2582 various changes to VCMA9 board specific files
2578 2583
2579 * Add I2C support for MGT5100 / MPC5200 2584 * Add I2C support for MGT5100 / MPC5200
2580 2585
2581 * Patch by Rune Torgersen, 11 Sep 2003: 2586 * Patch by Rune Torgersen, 11 Sep 2003:
2582 Changed default memory option on MPC8266ADS to NOT be Page Based 2587 Changed default memory option on MPC8266ADS to NOT be Page Based
2583 Interleave, since this doesn't work very well with the standard 2588 Interleave, since this doesn't work very well with the standard
2584 16MB DIMM 2589 16MB DIMM
2585 2590
2586 * Patch by George G. Davis, 12 Sep 2003: 2591 * Patch by George G. Davis, 12 Sep 2003:
2587 fix Makefile settings for sk98 driver 2592 fix Makefile settings for sk98 driver
2588 2593
2589 * Patch by Stefan Roese, 12 Sep 2003: 2594 * Patch by Stefan Roese, 12 Sep 2003:
2590 - new boards added: DP405, HUB405, PLU405, VOH405 2595 - new boards added: DP405, HUB405, PLU405, VOH405
2591 - some esd boards updated 2596 - some esd boards updated
2592 - cpu/ppc4xx/sdram.c: disable memory controller before setting 2597 - cpu/ppc4xx/sdram.c: disable memory controller before setting
2593 first values 2598 first values
2594 - cpu/ppc4xx/405_pci.c: set vendor id on PPC405EP systems 2599 - cpu/ppc4xx/405_pci.c: set vendor id on PPC405EP systems
2595 2600
2596 * Patch by Martin Krause, 11 Sep 2003: 2601 * Patch by Martin Krause, 11 Sep 2003:
2597 add burn-in tests for TRAB board 2602 add burn-in tests for TRAB board
2598 2603
2599 * Enable instruction cache on MPC5200 board 2604 * Enable instruction cache on MPC5200 board
2600 2605
2601 * Patch by Denis Peter, 11 Sep 2003: 2606 * Patch by Denis Peter, 11 Sep 2003:
2602 - fix USB data pointer assignment for bulk only transfer. 2607 - fix USB data pointer assignment for bulk only transfer.
2603 - prevent to display erased directories in FAT filesystem. 2608 - prevent to display erased directories in FAT filesystem.
2604 2609
2605 * Change output format for NAND flash - make it look like for other 2610 * Change output format for NAND flash - make it look like for other
2606 memory, too 2611 memory, too
2607 2612
2608 ====================================================================== 2613 ======================================================================
2609 Changes for U-Boot 0.4.8: 2614 Changes for U-Boot 0.4.8:
2610 ====================================================================== 2615 ======================================================================
2611 2616
2612 * Add I2C and RTC support for RMU board 2617 * Add I2C and RTC support for RMU board
2613 2618
2614 * Patches by Denis Peter, 9 Sep 2003: 2619 * Patches by Denis Peter, 9 Sep 2003:
2615 add FAT support for IDE, SCSI and USB 2620 add FAT support for IDE, SCSI and USB
2616 2621
2617 * Patches by Gleb Natapov, 2 Sep 2003: 2622 * Patches by Gleb Natapov, 2 Sep 2003:
2618 - cleanup of POST code for unsupported architectures 2623 - cleanup of POST code for unsupported architectures
2619 - MPC824x locks way0 of data cache for use as initial RAM; 2624 - MPC824x locks way0 of data cache for use as initial RAM;
2620 this patch unlocks it after relocation to RAM and invalidates 2625 this patch unlocks it after relocation to RAM and invalidates
2621 the locked entries. 2626 the locked entries.
2622 2627
2623 * Patch by Gleb Natapov, 30 Aug 2003: 2628 * Patch by Gleb Natapov, 30 Aug 2003:
2624 new I2C driver for mpc107 bridge. Now works from flash. 2629 new I2C driver for mpc107 bridge. Now works from flash.
2625 2630
2626 * Patch by Dave Ellis, 11 Aug 2003: 2631 * Patch by Dave Ellis, 11 Aug 2003:
2627 - JFFS2: fix typo in common/cmd_jffs2.c 2632 - JFFS2: fix typo in common/cmd_jffs2.c
2628 - JFFS2: fix CFG_JFFS2_SORT_FRAGMENTS option 2633 - JFFS2: fix CFG_JFFS2_SORT_FRAGMENTS option
2629 - JFFS2: remove node version 0 warning 2634 - JFFS2: remove node version 0 warning
2630 - JFFS2: accept JFFS2 PADDING nodes 2635 - JFFS2: accept JFFS2 PADDING nodes
2631 - SXNI855T: add AM29LV800 support 2636 - SXNI855T: add AM29LV800 support
2632 - SXNI855T: move environment from EEPROM to flash 2637 - SXNI855T: move environment from EEPROM to flash
2633 - SXNI855T: boot from JFFS2 in NOR or NAND flash 2638 - SXNI855T: boot from JFFS2 in NOR or NAND flash
2634 2639
2635 * Patch by Bill Hargen, 11 Aug 2003: 2640 * Patch by Bill Hargen, 11 Aug 2003:
2636 fixes for I2C on MPC8240 2641 fixes for I2C on MPC8240
2637 - fix i2c_write routine 2642 - fix i2c_write routine
2638 - fix iprobe command 2643 - fix iprobe command
2639 - eliminates use of global variables, plus dead code, cleanup. 2644 - eliminates use of global variables, plus dead code, cleanup.
2640 2645
2641 * Add support for USB Mass Storage Devices (BBB) 2646 * Add support for USB Mass Storage Devices (BBB)
2642 (tested with USB memory sticks only) 2647 (tested with USB memory sticks only)
2643 2648
2644 * Avoid flicker on TRAB's VFD 2649 * Avoid flicker on TRAB's VFD
2645 2650
2646 * Add support for SK98xx driver 2651 * Add support for SK98xx driver
2647 2652
2648 * Add PCI support for SL8245 board 2653 * Add PCI support for SL8245 board
2649 2654
2650 * Support IceCube board configurations with 1 x AMD AM29LV065 (8 MB) 2655 * Support IceCube board configurations with 1 x AMD AM29LV065 (8 MB)
2651 or 1 x AM29LV652 (two LV065 in one chip = 16 MB); 2656 or 1 x AM29LV652 (two LV065 in one chip = 16 MB);
2652 Run IPB at 133 Mhz; adjust the MII clock frequency accordingly 2657 Run IPB at 133 Mhz; adjust the MII clock frequency accordingly
2653 2658
2654 * Set BRG_CLK on PM825/826 to 64MHz (VCO_OUT / 4, instead of 16 MHz) 2659 * Set BRG_CLK on PM825/826 to 64MHz (VCO_OUT / 4, instead of 16 MHz)
2655 to allow for more accurate baudrate settings 2660 to allow for more accurate baudrate settings
2656 (error now 0.7% at 115 kbps, instead of 3.5% before) 2661 (error now 0.7% at 115 kbps, instead of 3.5% before)
2657 2662
2658 * Patch by Andreas Mohr, 4 Sep 2003: 2663 * Patch by Andreas Mohr, 4 Sep 2003:
2659 Fix a lot of spelling errors 2664 Fix a lot of spelling errors
2660 2665
2661 * Add support for PPChameleon Eval Board 2666 * Add support for PPChameleon Eval Board
2662 2667
2663 * Add support for P3G4 board 2668 * Add support for P3G4 board
2664 2669
2665 * Fix problem with MGT5100 FEC driver: add "early" MAC address 2670 * Fix problem with MGT5100 FEC driver: add "early" MAC address
2666 initialization 2671 initialization
2667 2672
2668 * Patch by Yuli Barcohen, 7 Aug 2003: 2673 * Patch by Yuli Barcohen, 7 Aug 2003:
2669 check BCSR to detect if the board is configured in PCI mode 2674 check BCSR to detect if the board is configured in PCI mode
2670 2675
2671 ====================================================================== 2676 ======================================================================
2672 Changes for U-Boot 0.4.7: 2677 Changes for U-Boot 0.4.7:
2673 ====================================================================== 2678 ======================================================================
2674 2679
2675 * Patch by Raghu Krishnaprasad, 7 Aug 2003: 2680 * Patch by Raghu Krishnaprasad, 7 Aug 2003:
2676 add support for Adder II MPC852T module 2681 add support for Adder II MPC852T module
2677 2682
2678 * Patch by George G. Davis, 19 Aug 2003: 2683 * Patch by George G. Davis, 19 Aug 2003:
2679 fix TI Innovator/OMAP1510 pin configs 2684 fix TI Innovator/OMAP1510 pin configs
2680 2685
2681 * Patches by Kshitij, 18 Aug 2003 2686 * Patches by Kshitij, 18 Aug 2003
2682 - add support for arm926ejs cpu core 2687 - add support for arm926ejs cpu core
2683 - add support for TI OMAP 1610 Innovator Board 2688 - add support for TI OMAP 1610 Innovator Board
2684 2689
2685 * Patch by Yuli Barcohen, 14 Aug 2003: 2690 * Patch by Yuli Barcohen, 14 Aug 2003:
2686 add support for bzip2 uncompression 2691 add support for bzip2 uncompression
2687 2692
2688 * Add GCC library to examples/Makefile so GCC utility functions will 2693 * Add GCC library to examples/Makefile so GCC utility functions will
2689 be resolved, too 2694 be resolved, too
2690 2695
2691 * Add I2C and RTC support for RMU board using software I2C driver 2696 * Add I2C and RTC support for RMU board using software I2C driver
2692 (because of better response to iprobe command); fix problem with 2697 (because of better response to iprobe command); fix problem with
2693 "reset" command 2698 "reset" command
2694 2699
2695 * Patch by Matthias Fuchs, 28 Aug 2003: 2700 * Patch by Matthias Fuchs, 28 Aug 2003:
2696 Added CONFIG_BOOTP_DNS2 and CONFIG_BOOTP_SEND_HOSTNAME to 2701 Added CONFIG_BOOTP_DNS2 and CONFIG_BOOTP_SEND_HOSTNAME to
2697 CONFIG_BOOTP_MAKS (see README). 2702 CONFIG_BOOTP_MAKS (see README).
2698 2703
2699 * Fix ICU862 environment problem 2704 * Fix ICU862 environment problem
2700 2705
2701 * Fix RAM size detection for RMU board 2706 * Fix RAM size detection for RMU board
2702 2707
2703 * Implement "reset" for MGT5100/MPC5200 systems 2708 * Implement "reset" for MGT5100/MPC5200 systems
2704 2709
2705 ====================================================================== 2710 ======================================================================
2706 Changes for U-Boot 0.4.6: 2711 Changes for U-Boot 0.4.6:
2707 ====================================================================== 2712 ======================================================================
2708 2713
2709 * Make Ethernet autonegotiation on INCA-IP work for all clock rates; 2714 * Make Ethernet autonegotiation on INCA-IP work for all clock rates;
2710 allow selection of clock frequency as "make" target 2715 allow selection of clock frequency as "make" target
2711 2716
2712 * Implement memory autosizing code for IceCube boards 2717 * Implement memory autosizing code for IceCube boards
2713 2718
2714 * Configure network port on INCA-IP for autonegotiation 2719 * Configure network port on INCA-IP for autonegotiation
2715 2720
2716 * Fix overflow problem in network timeout code 2721 * Fix overflow problem in network timeout code
2717 2722
2718 * Patch by Richard Woodruff, 8 Aug 2003: 2723 * Patch by Richard Woodruff, 8 Aug 2003:
2719 Allow crc32 to be used at address 0x000 (crc32_no_comp, too). 2724 Allow crc32 to be used at address 0x000 (crc32_no_comp, too).
2720 2725
2721 ====================================================================== 2726 ======================================================================
2722 Changes for U-Boot 0.4.5: 2727 Changes for U-Boot 0.4.5:
2723 ====================================================================== 2728 ======================================================================
2724 2729
2725 * Update for TQM board defaults: 2730 * Update for TQM board defaults:
2726 disable clocks_in_mhz, enable boot count limit 2731 disable clocks_in_mhz, enable boot count limit
2727 2732
2728 * Removed tools/gdb from "make all" target. Added make target "gdbtools" 2733 * Removed tools/gdb from "make all" target. Added make target "gdbtools"
2729 in toplevel directory instead. Removed astest.c from tools/gdb because 2734 in toplevel directory instead. Removed astest.c from tools/gdb because
2730 it is no longer relevant. 2735 it is no longer relevant.
2731 2736
2732 * Fix PCI support for MPC5200 / IceCube Board 2737 * Fix PCI support for MPC5200 / IceCube Board
2733 2738
2734 * Map ISP1362 USB OTG controller for NSCU board 2739 * Map ISP1362 USB OTG controller for NSCU board
2735 2740
2736 * Patch by Brad Parker, 02 Aug 2003: 2741 * Patch by Brad Parker, 02 Aug 2003:
2737 fix sc520_cdp problems 2742 fix sc520_cdp problems
2738 2743
2739 * Implement Boot Cycle Detection (Req. 2.3 of OSDL CGL Reqirements) 2744 * Implement Boot Cycle Detection (Req. 2.3 of OSDL CGL Reqirements)
2740 2745
2741 * Allow erase command to cross flash bank boundaries 2746 * Allow erase command to cross flash bank boundaries
2742 2747
2743 * Patch by Scott McNutt, 21 Jul 2003: 2748 * Patch by Scott McNutt, 21 Jul 2003:
2744 Add support for LynuxWorks Kernel Downloadable Images (KDIs). 2749 Add support for LynuxWorks Kernel Downloadable Images (KDIs).
2745 Both LynxOS and BlueCat linux KDIs are supported. 2750 Both LynxOS and BlueCat linux KDIs are supported.
2746 2751
2747 * Patch by Richard Woodruff, 25 Jul 2003: 2752 * Patch by Richard Woodruff, 25 Jul 2003:
2748 use more reliable reset for OMAP/925T 2753 use more reliable reset for OMAP/925T
2749 2754
2750 * Patch by Nye Liu, 25 Jul 2003: 2755 * Patch by Nye Liu, 25 Jul 2003:
2751 fix typo in mpc8xx.h 2756 fix typo in mpc8xx.h
2752 2757
2753 * Patch by Richard Woodruff, 24 Jul 2003: 2758 * Patch by Richard Woodruff, 24 Jul 2003:
2754 Fixes for cmd_nand.c: 2759 Fixes for cmd_nand.c:
2755 - Fixed null dereferece which could result in incorrect ECC values. 2760 - Fixed null dereferece which could result in incorrect ECC values.
2756 - Added support for devices with no Ready/Busy signal hooked up. 2761 - Added support for devices with no Ready/Busy signal hooked up.
2757 - Added OMAP1510 read/write protect handling. 2762 - Added OMAP1510 read/write protect handling.
2758 - Fixed nand.h's ECCPOS. A conflict existed with POS5 and badblock 2763 - Fixed nand.h's ECCPOS. A conflict existed with POS5 and badblock
2759 for non-JFFS2. 2764 for non-JFFS2.
2760 - Switched default ECC to be JFFS2. 2765 - Switched default ECC to be JFFS2.
2761 2766
2762 * Allow crc32 to be used at address 0x000 2767 * Allow crc32 to be used at address 0x000
2763 2768
2764 * Provide consistent interface to standalone applications to access 2769 * Provide consistent interface to standalone applications to access
2765 the 'global_data' structure 2770 the 'global_data' structure
2766 Provide a doc/README.standalone more useful to users/developers. 2771 Provide a doc/README.standalone more useful to users/developers.
2767 2772
2768 * Make IceCube MGT5100 FEC driver work 2773 * Make IceCube MGT5100 FEC driver work
2769 2774
2770 * Implement new mechanism to export U-Boot's functions to standalone 2775 * Implement new mechanism to export U-Boot's functions to standalone
2771 applications: instead of using (PPC-specific) system calls we now 2776 applications: instead of using (PPC-specific) system calls we now
2772 use a jump table; please see doc/README.standalone for details 2777 use a jump table; please see doc/README.standalone for details
2773 2778
2774 * Patch by Dave Westwood, 24 Jul 2003: 2779 * Patch by Dave Westwood, 24 Jul 2003:
2775 added support for Unity OS (a proprietary OS) 2780 added support for Unity OS (a proprietary OS)
2776 2781
2777 * Patch by Detlev Zundel, 23 Jul 2003: 2782 * Patch by Detlev Zundel, 23 Jul 2003:
2778 add "imls" command to print flash table of contents 2783 add "imls" command to print flash table of contents
2779 2784
2780 * Fix cold boot detection for log buffer reset 2785 * Fix cold boot detection for log buffer reset
2781 2786
2782 * Return error for invalid length specifiers with "cp.X" etc. 2787 * Return error for invalid length specifiers with "cp.X" etc.
2783 2788
2784 * Fix startup problem on MIPS 2789 * Fix startup problem on MIPS
2785 2790
2786 * Allow for CONFIG_SPLASH_SCREEN even when no explicit 2791 * Allow for CONFIG_SPLASH_SCREEN even when no explicit
2787 bitmap support is configured 2792 bitmap support is configured
2788 2793
2789 * Patch by Bill Hargen, 18 Jul 2003: 2794 * Patch by Bill Hargen, 18 Jul 2003:
2790 - fix endinaness problem in cpu/mpc824x/drivers/i2c/i2c1.c 2795 - fix endinaness problem in cpu/mpc824x/drivers/i2c/i2c1.c
2791 2796
2792 * Patch by Denis Peter, 18 Jul 2003: 2797 * Patch by Denis Peter, 18 Jul 2003:
2793 - fix memory configuration for MIP405T 2798 - fix memory configuration for MIP405T
2794 - fix printout of baudrate for "loadb <loadaddr> <baudrate>" 2799 - fix printout of baudrate for "loadb <loadaddr> <baudrate>"
2795 2800
2796 * Cleanup of TQM82xx configurations; use "official" board types 2801 * Cleanup of TQM82xx configurations; use "official" board types
2797 to make selection easier. 2802 to make selection easier.
2798 2803
2799 * Patch by Martin Krause, 17 Jul 2003: 2804 * Patch by Martin Krause, 17 Jul 2003:
2800 add delay to get I2C working with "imm" command and s3c24x0_i2c.c 2805 add delay to get I2C working with "imm" command and s3c24x0_i2c.c
2801 2806
2802 * Patch by Richard Woodruff, 17 July 03: 2807 * Patch by Richard Woodruff, 17 July 03:
2803 - Fixed bug in OMAP1510 baud rate divisor settings. 2808 - Fixed bug in OMAP1510 baud rate divisor settings.
2804 2809
2805 * Patch by Nye Liu, 16 July 2003: 2810 * Patch by Nye Liu, 16 July 2003:
2806 MPC860FADS fixes: 2811 MPC860FADS fixes:
2807 - add MPC86xADS support (uses MPC86xADS.h) 2812 - add MPC86xADS support (uses MPC86xADS.h)
2808 - add 866P/T core support (also MPC859T/MPC859DSL/MPC852T) 2813 - add 866P/T core support (also MPC859T/MPC859DSL/MPC852T)
2809 o PLPRCR changes 2814 o PLPRCR changes
2810 o BRG changes (EXTAL/XTAL restricted to 10MHz) 2815 o BRG changes (EXTAL/XTAL restricted to 10MHz)
2811 o don't trust gclk() software measurement by default, depend on 2816 o don't trust gclk() software measurement by default, depend on
2812 CONFIG_8xx_GCLK_FREQ 2817 CONFIG_8xx_GCLK_FREQ
2813 - add DRAM SIMM not installed detection 2818 - add DRAM SIMM not installed detection
2814 - use more "correct" SDRAM initialization sequence 2819 - use more "correct" SDRAM initialization sequence
2815 - allow different SDRAM sizes (8xxADS has 8M) 2820 - allow different SDRAM sizes (8xxADS has 8M)
2816 - default DER is 0 2821 - default DER is 0
2817 - remove unused MAMR defines from FADS860T.h (all done in fads.c) 2822 - remove unused MAMR defines from FADS860T.h (all done in fads.c)
2818 - rename MAMR/MBMR defines to be more consistent. Should eventually 2823 - rename MAMR/MBMR defines to be more consistent. Should eventually
2819 be merged into MxMR to better reflect the PowerQUICC datasheet. 2824 be merged into MxMR to better reflect the PowerQUICC datasheet.
2820 2825
2821 * Patch by Yuli Barcohen, 16 Jul 2003: 2826 * Patch by Yuli Barcohen, 16 Jul 2003:
2822 support new Motorola PQ2FADS-ZU evaluation board which replaced 2827 support new Motorola PQ2FADS-ZU evaluation board which replaced
2823 MPC8260ADS and MPC8266ADS 2828 MPC8260ADS and MPC8266ADS
2824 2829
2825 ====================================================================== 2830 ======================================================================
2826 Changes for U-Boot 0.4.4: 2831 Changes for U-Boot 0.4.4:
2827 ====================================================================== 2832 ======================================================================
2828 2833
2829 * Add support for IceCube board (with MGT5100 and MPC5200 CPUs) 2834 * Add support for IceCube board (with MGT5100 and MPC5200 CPUs)
2830 2835
2831 * Add support for MGT5100 and MPC5200 processors 2836 * Add support for MGT5100 and MPC5200 processors
2832 2837
2833 * Patch by Lutz Dennig, 15 Jul 2003: 2838 * Patch by Lutz Dennig, 15 Jul 2003:
2834 update for R360MPI board 2839 update for R360MPI board
2835 2840
2836 ====================================================================== 2841 ======================================================================
2837 Changes for U-Boot 0.4.3: 2842 Changes for U-Boot 0.4.3:
2838 ====================================================================== 2843 ======================================================================
2839 2844
2840 * Patches by Kshitij, 04 Jul 2003 2845 * Patches by Kshitij, 04 Jul 2003
2841 - added support for arm925t cpu core 2846 - added support for arm925t cpu core
2842 - added support for TI OMAP 1510 Innovator Board 2847 - added support for TI OMAP 1510 Innovator Board
2843 2848
2844 * Patches by Martin Krause, 14 Jul 2003: 2849 * Patches by Martin Krause, 14 Jul 2003:
2845 - add I2C support for s3c2400 systems (trab board) 2850 - add I2C support for s3c2400 systems (trab board)
2846 - (re-) add "ping" to command table 2851 - (re-) add "ping" to command table
2847 2852
2848 * Fix handling of "slow" POST routines 2853 * Fix handling of "slow" POST routines
2849 2854
2850 * Patches by Yuli Barcohen, 13 Jul 2003: 2855 * Patches by Yuli Barcohen, 13 Jul 2003:
2851 - Correct flash and JFFS2 support for MPC8260ADS 2856 - Correct flash and JFFS2 support for MPC8260ADS
2852 - fix PVR values and clock generation for PowerQUICC II family 2857 - fix PVR values and clock generation for PowerQUICC II family
2853 (8270/8275/8280) 2858 (8270/8275/8280)
2854 2859
2855 * Patch by Bernhard Kuhn, 08 Jul 2003: 2860 * Patch by Bernhard Kuhn, 08 Jul 2003:
2856 - add support for M68K targets 2861 - add support for M68K targets
2857 2862
2858 * Patch by Ken Chou, 3 Jul: 2863 * Patch by Ken Chou, 3 Jul:
2859 - Fix PCI config table for A3000 2864 - Fix PCI config table for A3000
2860 - Fix iobase for natsemi.c 2865 - Fix iobase for natsemi.c
2861 (PCI_BASE_ADDRESS_0 is the IO base register for DP83815) 2866 (PCI_BASE_ADDRESS_0 is the IO base register for DP83815)
2862 2867
2863 * Allow to enable "slow" POST routines by key press on power-on 2868 * Allow to enable "slow" POST routines by key press on power-on
2864 * Fix temperature dependend switching of LCD backlight on LWMON 2869 * Fix temperature dependend switching of LCD backlight on LWMON
2865 * Tweak output format for LWMON 2870 * Tweak output format for LWMON
2866 2871
2867 * Patch by Stefan Roese, 11 Jul 2003: 2872 * Patch by Stefan Roese, 11 Jul 2003:
2868 - Fix bug in CONFIG_VERSION_VARIABLE. 2873 - Fix bug in CONFIG_VERSION_VARIABLE.
2869 - AR405 config updated. 2874 - AR405 config updated.
2870 - OCRTC/ORSG: bsp command added. 2875 - OCRTC/ORSG: bsp command added.
2871 - ASH405 bsp update. 2876 - ASH405 bsp update.
2872 2877
2873 ====================================================================== 2878 ======================================================================
2874 Changes for U-Boot 0.4.2: 2879 Changes for U-Boot 0.4.2:
2875 ====================================================================== 2880 ======================================================================
2876 2881
2877 * Add support for NSCU board 2882 * Add support for NSCU board
2878 2883
2879 * Add support for TQM823M, TQM850M, TQM855M and TQM860M modules 2884 * Add support for TQM823M, TQM850M, TQM855M and TQM860M modules
2880 2885
2881 * Add support for Am29LV160ML, Am29LV320ML, and Am29LV640ML 2886 * Add support for Am29LV160ML, Am29LV320ML, and Am29LV640ML
2882 mirror bit flash on TQM8xxM modules 2887 mirror bit flash on TQM8xxM modules
2883 2888
2884 * Patch by Kenneth Johansson, 30 Jun 2003: 2889 * Patch by Kenneth Johansson, 30 Jun 2003:
2885 get rid of MK_CMD_ENTRY macro; update doc/README.command 2890 get rid of MK_CMD_ENTRY macro; update doc/README.command
2886 2891
2887 * Patch by Seb James, 30 Jun 2003: 2892 * Patch by Seb James, 30 Jun 2003:
2888 Improve documentation of I2C configuration in README 2893 Improve documentation of I2C configuration in README
2889 2894
2890 * Fix problems with previous log buffer "fixes" 2895 * Fix problems with previous log buffer "fixes"
2891 2896
2892 * Fix minor help text issues 2897 * Fix minor help text issues
2893 2898
2894 * "log append" did not append a newline 2899 * "log append" did not append a newline
2895 2900
2896 ====================================================================== 2901 ======================================================================
2897 Changes for U-Boot 0.4.1: 2902 Changes for U-Boot 0.4.1:
2898 ====================================================================== 2903 ======================================================================
2899 2904
2900 * Fix some missing commands, cleanup header files 2905 * Fix some missing commands, cleanup header files
2901 (autoscript, bmp, bsp, fat, mmc, nand, portio, ...) 2906 (autoscript, bmp, bsp, fat, mmc, nand, portio, ...)
2902 2907
2903 * Rewrite command lookup and help command (fix problems with bubble 2908 * Rewrite command lookup and help command (fix problems with bubble
2904 sort when sorting command name list). Minor cleanup here and there. 2909 sort when sorting command name list). Minor cleanup here and there.
2905 2910
2906 * Merge from "stable branch", tag LABEL_2003_06_28_1800-stable: 2911 * Merge from "stable branch", tag LABEL_2003_06_28_1800-stable:
2907 - Allow to call sysmon function interactively 2912 - Allow to call sysmon function interactively
2908 - PIC on LWMON board needs delay after power-on 2913 - PIC on LWMON board needs delay after power-on
2909 - Add missing RSR definitions for MPC8xx 2914 - Add missing RSR definitions for MPC8xx
2910 - Improve log buffer handling: guarantee clean reset after power-on 2915 - Improve log buffer handling: guarantee clean reset after power-on
2911 - Add support for EXBITGEN board (aka "genie") 2916 - Add support for EXBITGEN board (aka "genie")
2912 - Add support for SL8245 board 2917 - Add support for SL8245 board
2913 2918
2914 * Code cleanup: 2919 * Code cleanup:
2915 - remove trailing white space, trailing empty lines, C++ comments, etc. 2920 - remove trailing white space, trailing empty lines, C++ comments, etc.
2916 - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c) 2921 - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c)
2917 2922
2918 * Patches by Kenneth Johansson, 25 Jun 2003: 2923 * Patches by Kenneth Johansson, 25 Jun 2003:
2919 - major rework of command structure 2924 - major rework of command structure
2920 (work done mostly by Michal Cendrowski and Joakim Kristiansen) 2925 (work done mostly by Michal Cendrowski and Joakim Kristiansen)
2921 2926
2922 ====================================================================== 2927 ======================================================================
2923 Changes for U-Boot 0.4.0: 2928 Changes for U-Boot 0.4.0:
2924 ====================================================================== 2929 ======================================================================
2925 2930
2926 * Patches by Robert Schwebel, 26 Jun 2003: 2931 * Patches by Robert Schwebel, 26 Jun 2003:
2927 - csb226 configuration updated 2932 - csb226 configuration updated
2928 - credits for logodl port updated 2933 - credits for logodl port updated
2929 - innokom configuration updated 2934 - innokom configuration updated
2930 - logodl tree update, still with coding style inconsistencies 2935 - logodl tree update, still with coding style inconsistencies
2931 - added OCM for ppc405 warning to README 2936 - added OCM for ppc405 warning to README
2932 2937
2933 * Patch by Pantelis Antoniou, 25 Jun 2003: 2938 * Patch by Pantelis Antoniou, 25 Jun 2003:
2934 update NetVia with V2 board support 2939 update NetVia with V2 board support
2935 2940
2936 * Header file cleanup for ARM 2941 * Header file cleanup for ARM
2937 2942
2938 * Patch by Murray Jensen, 24 Jun 2003: 2943 * Patch by Murray Jensen, 24 Jun 2003:
2939 - make sure to use only U-boot provided header files 2944 - make sure to use only U-boot provided header files
2940 - fix problems with ".rodata.str1.4" section as used by GCC-3.x 2945 - fix problems with ".rodata.str1.4" section as used by GCC-3.x
2941 2946
2942 * Patch by Stefan Roese, 24 Jun 2003: 2947 * Patch by Stefan Roese, 24 Jun 2003:
2943 - Update esd ASH405 board files. 2948 - Update esd ASH405 board files.
2944 - Update esd DASA_SIM config file. 2949 - Update esd DASA_SIM config file.
2945 - Add ping command to some esd boards. 2950 - Add ping command to some esd boards.
2946 2951
2947 * Patch by Yuli Barcohen, 23 Jun 2003: 2952 * Patch by Yuli Barcohen, 23 Jun 2003:
2948 Update for MPC8260ADS board 2953 Update for MPC8260ADS board
2949 2954
2950 * Patch by Murray Jensen, 23 Jun 2003: 2955 * Patch by Murray Jensen, 23 Jun 2003:
2951 - cleanup of GCC 3.x compiler warnings 2956 - cleanup of GCC 3.x compiler warnings
2952 2957
2953 * Patch by Rune Torgersen, 4 Jun 2003: 2958 * Patch by Rune Torgersen, 4 Jun 2003:
2954 add large memory support for MPC8266ADS board 2959 add large memory support for MPC8266ADS board
2955 2960
2956 * Patch by Richard Woodruff, 19 June 03: 2961 * Patch by Richard Woodruff, 19 June 03:
2957 - Enabled standard u-boot device abstraction for ARM 2962 - Enabled standard u-boot device abstraction for ARM
2958 - Enabled console device for ARM 2963 - Enabled console device for ARM
2959 - Initilized bi_baudrate for ARM 2964 - Initilized bi_baudrate for ARM
2960 2965
2961 * Patch by Bill Hargen, 23 Apr 2003: 2966 * Patch by Bill Hargen, 23 Apr 2003:
2962 fix byte order for 824x I2C addresses (write op) 2967 fix byte order for 824x I2C addresses (write op)
2963 2968
2964 * Patch by Murray Jensen, 20 Jun 2003: 2969 * Patch by Murray Jensen, 20 Jun 2003:
2965 - hymod update 2970 - hymod update
2966 - cleanup (especially for gcc-3.x compilers) 2971 - cleanup (especially for gcc-3.x compilers)
2967 2972
2968 * Patch by Tom Guilliams, 20 Jun 2003: 2973 * Patch by Tom Guilliams, 20 Jun 2003:
2969 added CONFIG_750FX support for IBM 750FX processors 2974 added CONFIG_750FX support for IBM 750FX processors
2970 2975
2971 * Patch by Devin Crumb, 02 Apr 2003: 2976 * Patch by Devin Crumb, 02 Apr 2003:
2972 Fix clock divider rounding problem in drivers/serial.c 2977 Fix clock divider rounding problem in drivers/serial.c
2973 2978
2974 * Patch by Richard Woodruff, 19 June 03: 2979 * Patch by Richard Woodruff, 19 June 03:
2975 - Fixed smc91c111 driver to sync with the u-boot environment 2980 - Fixed smc91c111 driver to sync with the u-boot environment
2976 (driver/smc91c111.c). 2981 (driver/smc91c111.c).
2977 - Added eth_init error return check in NetLoop (net/net.c). 2982 - Added eth_init error return check in NetLoop (net/net.c).
2978 2983
2979 * Patch by Ken Chou, 19 June 2003: 2984 * Patch by Ken Chou, 19 June 2003:
2980 Added support for A3000 SBC board (Artis Microsystems Inc.) 2985 Added support for A3000 SBC board (Artis Microsystems Inc.)
2981 2986
2982 * Patches by Murray Jensen, 17 Jun 2003: 2987 * Patches by Murray Jensen, 17 Jun 2003:
2983 - Hymod board database mods: add "who" field and new xilinx chip types 2988 - Hymod board database mods: add "who" field and new xilinx chip types
2984 - provide new "init_cmd_timeout()" function so code external to 2989 - provide new "init_cmd_timeout()" function so code external to
2985 "common/main.c" can use the "reset_cmd_timeout()" function before 2990 "common/main.c" can use the "reset_cmd_timeout()" function before
2986 entering the main loop 2991 entering the main loop
2987 - add DTT support for adm1021 (new file dtt/adm1021.c; config 2992 - add DTT support for adm1021 (new file dtt/adm1021.c; config
2988 slightly different. see include/configs/hymod.h for an example 2993 slightly different. see include/configs/hymod.h for an example
2989 (requires CONFIG_DTT_ADM1021, CONFIG_DTT_SENSORS, and 2994 (requires CONFIG_DTT_ADM1021, CONFIG_DTT_SENSORS, and
2990 CFG_DTT_ADM1021 defined) 2995 CFG_DTT_ADM1021 defined)
2991 - add new "eeprom_probe()" function which has similar args and 2996 - add new "eeprom_probe()" function which has similar args and
2992 behaves in a similar way to "eeprom_read()" etc. 2997 behaves in a similar way to "eeprom_read()" etc.
2993 - add 8260 FCC ethernet loopback code (new "eth_loopback_test()" 2998 - add 8260 FCC ethernet loopback code (new "eth_loopback_test()"
2994 function which is enabled by defining CONFIG_ETHER_LOOPBACK_TEST) 2999 function which is enabled by defining CONFIG_ETHER_LOOPBACK_TEST)
2995 - gdbtools copyright update 3000 - gdbtools copyright update
2996 - ensure that set_msr() executes the "sync" and "isync" instructions 3001 - ensure that set_msr() executes the "sync" and "isync" instructions
2997 after the "mtmsr" instruction in cpu/mpc8260/interrupts.c 3002 after the "mtmsr" instruction in cpu/mpc8260/interrupts.c
2998 - 8260 I/O ports fix: Open Drain should be set last when configuring 3003 - 8260 I/O ports fix: Open Drain should be set last when configuring
2999 - add SIU IRQ defines for 8260 3004 - add SIU IRQ defines for 8260
3000 - allow LDSCRIPT override and OBJCFLAGS initialization: change to 3005 - allow LDSCRIPT override and OBJCFLAGS initialization: change to
3001 config.mk to allow board configurations to override the GNU 3006 config.mk to allow board configurations to override the GNU
3002 linker script, selected via the LDSCRIPT, make variable, and to 3007 linker script, selected via the LDSCRIPT, make variable, and to
3003 give an initial value to the OBJCFLAGS make variable 3008 give an initial value to the OBJCFLAGS make variable
3004 - 8260 i2c enhancement: 3009 - 8260 i2c enhancement:
3005 o correctly extends the timeout depending on the size of all 3010 o correctly extends the timeout depending on the size of all
3006 queued messages for both transmit and receive 3011 queued messages for both transmit and receive
3007 o will not continue with receive if transmit times out 3012 o will not continue with receive if transmit times out
3008 o ensures that the error callback is done for all queued tx 3013 o ensures that the error callback is done for all queued tx
3009 and rx messages 3014 and rx messages
3010 o correctly detects both tx and rx timeouts, only delivers one to 3015 o correctly detects both tx and rx timeouts, only delivers one to
3011 the callback, and does not overwrite an earlier error 3016 the callback, and does not overwrite an earlier error
3012 o logic in i2c_probe now correct 3017 o logic in i2c_probe now correct
3013 - add "vprintf()" function so that "panic()" function can be 3018 - add "vprintf()" function so that "panic()" function can be
3014 technically correct 3019 technically correct
3015 - many Hymod board changes 3020 - many Hymod board changes
3016 3021
3017 * Patches by Robert Schwebel, 14 Jun 2003: 3022 * Patches by Robert Schwebel, 14 Jun 2003:
3018 - add support for Logotronic DL datalogger board 3023 - add support for Logotronic DL datalogger board
3019 - cleanup serial line after kermit binary download 3024 - cleanup serial line after kermit binary download
3020 - add debugX macro (debug level support) 3025 - add debugX macro (debug level support)
3021 - update mach-types.h to latest arm.linux.org.uk master list. 3026 - update mach-types.h to latest arm.linux.org.uk master list.
3022 3027
3023 * Patches by David Mรผller, 12 Jun 2003: 3028 * Patches by David Mรผller, 12 Jun 2003:
3024 - rewrite of the S3C24X0 register definitions stuff 3029 - rewrite of the S3C24X0 register definitions stuff
3025 - "driver" for the built-in S3C24X0 RTC 3030 - "driver" for the built-in S3C24X0 RTC
3026 3031
3027 * Patches by Yuli Barcohen, 12 Jun 2003: 3032 * Patches by Yuli Barcohen, 12 Jun 2003:
3028 - Add MII support and Ethernet PHY initialization for MPC8260ADS board 3033 - Add MII support and Ethernet PHY initialization for MPC8260ADS board
3029 - Fix incorrect SIUMCR initialisation caused by wrong Hard Reset 3034 - Fix incorrect SIUMCR initialisation caused by wrong Hard Reset
3030 configuration word supplied by FPGA on some MPC8260ADS boards 3035 configuration word supplied by FPGA on some MPC8260ADS boards
3031 3036
3032 * Patch by Pantelis Antoniou, 10 Jun 2003: 3037 * Patch by Pantelis Antoniou, 10 Jun 2003:
3033 Unify status LED interface 3038 Unify status LED interface
3034 3039
3035 * Add support for DS12887 RTC; add RTC support for ATC board 3040 * Add support for DS12887 RTC; add RTC support for ATC board
3036 3041
3037 * Patch by Nicolas Lacressonniere, 11 Jun 2003: 3042 * Patch by Nicolas Lacressonniere, 11 Jun 2003:
3038 Modifications for Atmel AT91RM9200DK ARM920T based development kit 3043 Modifications for Atmel AT91RM9200DK ARM920T based development kit
3039 - Add Atmel DataFlash support for reading and writing. 3044 - Add Atmel DataFlash support for reading and writing.
3040 - Add possibility to boot a Linux from DataFlash with BOOTM command. 3045 - Add possibility to boot a Linux from DataFlash with BOOTM command.
3041 - Add Flash detection on Atmel AT91RM9200DK 3046 - Add Flash detection on Atmel AT91RM9200DK
3042 (between Atmel AT49BV1614 and AT49BV1614A flashes) 3047 (between Atmel AT49BV1614 and AT49BV1614A flashes)
3043 - Replace old Ethernet PHY layer functions 3048 - Replace old Ethernet PHY layer functions
3044 - Change link address 3049 - Change link address
3045 3050
3046 * Patch by Frank Smith, 9 Jun 2003: 3051 * Patch by Frank Smith, 9 Jun 2003:
3047 use CRIT_EXCEPTION for machine check on 4xx 3052 use CRIT_EXCEPTION for machine check on 4xx
3048 3053
3049 * Patch by Detlev Zundel, 13 Jun 2003: 3054 * Patch by Detlev Zundel, 13 Jun 2003:
3050 added implementation of the "carinfo" command in cmd_immap.c 3055 added implementation of the "carinfo" command in cmd_immap.c
3051 3056
3052 * Fix CONFIG_NET_MULTI support in include/net.h 3057 * Fix CONFIG_NET_MULTI support in include/net.h
3053 3058
3054 * Patches by Kyle Harris, 13 Mar 2003: 3059 * Patches by Kyle Harris, 13 Mar 2003:
3055 - Add FAT partition support 3060 - Add FAT partition support
3056 - Add command support for FAT 3061 - Add command support for FAT
3057 - Add command support for MMC 3062 - Add command support for MMC
3058 ---- 3063 ----
3059 - Add Intel PXA support for video 3064 - Add Intel PXA support for video
3060 - Add Intel PXA support for MMC 3065 - Add Intel PXA support for MMC
3061 ---- 3066 ----
3062 - Enable MMC and FAT for lubbock board 3067 - Enable MMC and FAT for lubbock board
3063 - Other misc changes for lubbock board 3068 - Other misc changes for lubbock board
3064 3069
3065 * Patch by Robert Schwebel, April 02, 2003: 3070 * Patch by Robert Schwebel, April 02, 2003:
3066 fix for SMSC91111 driver 3071 fix for SMSC91111 driver
3067 3072
3068 * Patch by Vladimir Gurevich, 04 Jun 2003: 3073 * Patch by Vladimir Gurevich, 04 Jun 2003:
3069 make ppc405 ethernet driver compatible with CONFIG_NET_MULTI option 3074 make ppc405 ethernet driver compatible with CONFIG_NET_MULTI option
3070 3075
3071 * Patch by Stefan Roese, 05 Jun 2003: 3076 * Patch by Stefan Roese, 05 Jun 2003:
3072 - PPC4xx: Fix bug for initial stack in data cache as pointed out by 3077 - PPC4xx: Fix bug for initial stack in data cache as pointed out by
3073 Thomas Schaefer (tschaefer@giga-stream.de). Now inital stack in 3078 Thomas Schaefer (tschaefer@giga-stream.de). Now inital stack in
3074 data cache can be used even if the chip select is in use. 3079 data cache can be used even if the chip select is in use.
3075 - CFG_RX_ETH_BUFFER added to set the ethernet receive buffer count 3080 - CFG_RX_ETH_BUFFER added to set the ethernet receive buffer count
3076 (see README for further description). 3081 (see README for further description).
3077 - Changed config files of CONFIG_EEPRO100 boards to use the 3082 - Changed config files of CONFIG_EEPRO100 boards to use the
3078 CFG_RX_ETH_BUFFER define. 3083 CFG_RX_ETH_BUFFER define.
3079 3084
3080 * Add support for RMU board 3085 * Add support for RMU board
3081 3086
3082 * Add support for TQM862L at 100/50 MHz 3087 * Add support for TQM862L at 100/50 MHz
3083 3088
3084 * Patch by Pantelis Antoniou, 02 Jun 2003: 3089 * Patch by Pantelis Antoniou, 02 Jun 2003:
3085 major reconstruction of networking code; 3090 major reconstruction of networking code;
3086 add "ping" support (outgoing only!) 3091 add "ping" support (outgoing only!)
3087 3092
3088 * Patch by Denis Peter, 04 June 2003: 3093 * Patch by Denis Peter, 04 June 2003:
3089 add support for the MIP405T board 3094 add support for the MIP405T board
3090 3095
3091 * Patches by Udi Finkelstein, 2 June 2003: 3096 * Patches by Udi Finkelstein, 2 June 2003:
3092 - Added support for custom keyboards, initialized by defining a 3097 - Added support for custom keyboards, initialized by defining a
3093 board-specific drv_keyboard_init as well as defining CONFIG_KEYBOARD . 3098 board-specific drv_keyboard_init as well as defining CONFIG_KEYBOARD .
3094 - Added support for the RBC823 board. 3099 - Added support for the RBC823 board.
3095 - cpu/mpc8xx/lcd.c now automatically calculates the 3100 - cpu/mpc8xx/lcd.c now automatically calculates the
3096 Horizontal Pixel Count field. 3101 Horizontal Pixel Count field.
3097 3102
3098 * Fix alignment problem in BOOTP (dhcp_leasetime option) 3103 * Fix alignment problem in BOOTP (dhcp_leasetime option)
3099 [pointed out by Nicolas Lacressonniรจre, 2 Jun 2003] 3104 [pointed out by Nicolas Lacressonniรจre, 2 Jun 2003]
3100 3105
3101 * Patch by Mark Rakes, 14 May 2003: 3106 * Patch by Mark Rakes, 14 May 2003:
3102 add support for Intel e1000 gig cards. 3107 add support for Intel e1000 gig cards.
3103 3108
3104 * Patch by Nye Liu, 3 Jun 2003: 3109 * Patch by Nye Liu, 3 Jun 2003:
3105 fix critical typo in MAMR definition (include/mpc8xx.h) 3110 fix critical typo in MAMR definition (include/mpc8xx.h)
3106 3111
3107 * Fix requirement to align U-Boot image on 16 kB boundaries on PPC. 3112 * Fix requirement to align U-Boot image on 16 kB boundaries on PPC.
3108 3113
3109 * Patch by Klaus Heydeck, 2 Jun 2003 3114 * Patch by Klaus Heydeck, 2 Jun 2003
3110 Minor changes for KUP4K configuration 3115 Minor changes for KUP4K configuration
3111 3116
3112 * Patch by Marc Singer, 29 May 2003: 3117 * Patch by Marc Singer, 29 May 2003:
3113 Fixed rarp boot method for IA32 and other little-endian CPUs. 3118 Fixed rarp boot method for IA32 and other little-endian CPUs.
3114 3119
3115 * Patch by Marc Singer, 28 May 2003: 3120 * Patch by Marc Singer, 28 May 2003:
3116 Added port I/O commands. 3121 Added port I/O commands.
3117 3122
3118 * Patch by Matthew McClintock, 28 May 2003 3123 * Patch by Matthew McClintock, 28 May 2003
3119 - cpu/mpc824x/start.S: fix relocation code when booting from RAM 3124 - cpu/mpc824x/start.S: fix relocation code when booting from RAM
3120 - minor patches for utx8245 3125 - minor patches for utx8245
3121 3126
3122 * Patch by Daniel Engstrรถm, 28 May 2003: 3127 * Patch by Daniel Engstrรถm, 28 May 2003:
3123 x86 update 3128 x86 update
3124 3129
3125 * Patch by Dave Ellis, 9 May 2003 + 27 May 2003: 3130 * Patch by Dave Ellis, 9 May 2003 + 27 May 2003:
3126 add nand flash support to SXNI855T configuration 3131 add nand flash support to SXNI855T configuration
3127 fix/extend nand flash support: 3132 fix/extend nand flash support:
3128 - fix 'nand erase' command so does not erase bad blocks 3133 - fix 'nand erase' command so does not erase bad blocks
3129 - fix 'nand write' command so does not write to bad blocks 3134 - fix 'nand write' command so does not write to bad blocks
3130 - fix nand_probe() so handles no flash detected properly 3135 - fix nand_probe() so handles no flash detected properly
3131 - add doc/README.nand 3136 - add doc/README.nand
3132 - add .jffs2 and .oob options to nand read/write 3137 - add .jffs2 and .oob options to nand read/write
3133 - add 'nand bad' command to list bad blocks 3138 - add 'nand bad' command to list bad blocks
3134 - add 'clean' option to 'nand erase' to write JFFS2 clean markers 3139 - add 'clean' option to 'nand erase' to write JFFS2 clean markers
3135 - make NAND read/write faster 3140 - make NAND read/write faster
3136 3141
3137 * Patch by Rune Torgersen, 23 May 2003: 3142 * Patch by Rune Torgersen, 23 May 2003:
3138 Update for MPC8266ADS board 3143 Update for MPC8266ADS board
3139 3144
3140 * Get (mostly) rid of CFG_MONITOR_LEN definition; compute real length 3145 * Get (mostly) rid of CFG_MONITOR_LEN definition; compute real length
3141 instead CFG_MONITOR_LEN is now only used to determine _at_compile_ 3146 instead CFG_MONITOR_LEN is now only used to determine _at_compile_
3142 _time_ (!) if the environment is embedded within the U-Boot image, 3147 _time_ (!) if the environment is embedded within the U-Boot image,
3143 or in a separate flash sector. 3148 or in a separate flash sector.
3144 3149
3145 * Cleanup CFG_DER #defines in config files (wd maintained only) 3150 * Cleanup CFG_DER #defines in config files (wd maintained only)
3146 3151
3147 * Fix data abort exception handling for arm920t CPU 3152 * Fix data abort exception handling for arm920t CPU
3148 3153
3149 * Fix alignment problems with flash driver for TRAB board 3154 * Fix alignment problems with flash driver for TRAB board
3150 3155
3151 * Patch by Donald White, 21 May 2003: 3156 * Patch by Donald White, 21 May 2003:
3152 fix calculation of base address in pci_hose_config_device() 3157 fix calculation of base address in pci_hose_config_device()
3153 3158
3154 * Fix bug in command line parsing: "cmd1;cmd2" is supposed to always 3159 * Fix bug in command line parsing: "cmd1;cmd2" is supposed to always
3155 execute "cmd2", even if "cmd1" fails. Note that this is different 3160 execute "cmd2", even if "cmd1" fails. Note that this is different
3156 to "run var1 var2" where the contents of "var2" will NOT be 3161 to "run var1 var2" where the contents of "var2" will NOT be
3157 executed when a command in "var1" fails. 3162 executed when a command in "var1" fails.
3158 3163
3159 * Add zero-copy ramdisk support (requires corresponding kernel support!) 3164 * Add zero-copy ramdisk support (requires corresponding kernel support!)
3160 3165
3161 * Patch by Kyle Harris, 20 May 2003: 3166 * Patch by Kyle Harris, 20 May 2003:
3162 In preparation for an ixp port, rename cpu/xscale and arch-xscale 3167 In preparation for an ixp port, rename cpu/xscale and arch-xscale
3163 into cpu/pxa and arch-pxa. 3168 into cpu/pxa and arch-pxa.
3164 3169
3165 * Patch by Stefan Roese, 23 May 2003: 3170 * Patch by Stefan Roese, 23 May 2003:
3166 - IBM PPC405EP port added. 3171 - IBM PPC405EP port added.
3167 - CONFIG_UART1_CONSOLE added. If defined internal UART1 (and not 3172 - CONFIG_UART1_CONSOLE added. If defined internal UART1 (and not
3168 UART0) is used as default U-Boot console. PPC4xx only! 3173 UART0) is used as default U-Boot console. PPC4xx only!
3169 - esd ASH405 board added (PPC405EP based). 3174 - esd ASH405 board added (PPC405EP based).
3170 - BUBINGA405EP board added (PPC405EP based - IBM Eval Board). 3175 - BUBINGA405EP board added (PPC405EP based - IBM Eval Board).
3171 - esd CPCI405AB board added. 3176 - esd CPCI405AB board added.
3172 - esd PMC405 board added. 3177 - esd PMC405 board added.
3173 - Update of some esd boards. 3178 - Update of some esd boards.
3174 3179
3175 * Patch by Denis Peter, 19 Mai 2003: 3180 * Patch by Denis Peter, 19 Mai 2003:
3176 add support for the MIP405-3 board 3181 add support for the MIP405-3 board
3177 3182
3178 * Patch by Dave Ellis, 22 May 2003: 3183 * Patch by Dave Ellis, 22 May 2003:
3179 Fix problem with only partially cleared .bss segment 3184 Fix problem with only partially cleared .bss segment
3180 3185
3181 * Patch by Rune Torgersen, 12 May 2003: 3186 * Patch by Rune Torgersen, 12 May 2003:
3182 get PCI to work on a MPC8266ADS board; incorporate change to 3187 get PCI to work on a MPC8266ADS board; incorporate change to
3183 cpu/mpc8260/pci.c to enable overrides of PCI memory parameters 3188 cpu/mpc8260/pci.c to enable overrides of PCI memory parameters
3184 3189
3185 * Patch by Nye Liu, 1 May 2003: 3190 * Patch by Nye Liu, 1 May 2003:
3186 minor patches for the FADS8xx 3191 minor patches for the FADS8xx
3187 3192
3188 * Patch by Thomas Schรคfer, 28 Apr 2003: 3193 * Patch by Thomas Schรคfer, 28 Apr 2003:
3189 Fix SPD handling for 256 ECC DIMM on Walnut 3194 Fix SPD handling for 256 ECC DIMM on Walnut
3190 3195
3191 * Add support for arbitrary bitmaps for TRAB's VFD command; 3196 * Add support for arbitrary bitmaps for TRAB's VFD command;
3192 allow to pass boot bitmap addresses in environment variables; 3197 allow to pass boot bitmap addresses in environment variables;
3193 allow for zero boot delay 3198 allow for zero boot delay
3194 3199
3195 * Patch by Christian GeiรŸinger, 19 May 2002: 3200 * Patch by Christian GeiรŸinger, 19 May 2002:
3196 On TRAB: wait until the dummy byte has been completely sent 3201 On TRAB: wait until the dummy byte has been completely sent
3197 3202
3198 * Patch by David Updegraff, 22 Apr 2003: 3203 * Patch by David Updegraff, 22 Apr 2003:
3199 update for CrayL1 board 3204 update for CrayL1 board
3200 3205
3201 * Patch by Pantelis Antoniou, 21 Apr 2003: 3206 * Patch by Pantelis Antoniou, 21 Apr 2003:
3202 add boot support for ARTOS (a proprietary OS) 3207 add boot support for ARTOS (a proprietary OS)
3203 3208
3204 * Patch by Steven Scholz, 11 Apr 2003: 3209 * Patch by Steven Scholz, 11 Apr 2003:
3205 Add support for RTC DS1338 3210 Add support for RTC DS1338
3206 3211
3207 * Patch by Rod Boyce, 24 Jan 2003: 3212 * Patch by Rod Boyce, 24 Jan 2003:
3208 Fix counting of extended partitions in diskboot command 3213 Fix counting of extended partitions in diskboot command
3209 3214
3210 * Patch by Christophe Lindheimer, 20 May 2003: 3215 * Patch by Christophe Lindheimer, 20 May 2003:
3211 allow the use of CFG_LOADS when CFG_NO_FLASH is set 3216 allow the use of CFG_LOADS when CFG_NO_FLASH is set
3212 3217
3213 * Fix SDRAM timing on Purple board 3218 * Fix SDRAM timing on Purple board
3214 3219
3215 * Add support for CompactFlash on ATC board 3220 * Add support for CompactFlash on ATC board
3216 (includes support for Intel 82365 and compatible PC Card controllers, 3221 (includes support for Intel 82365 and compatible PC Card controllers,
3217 and Yenta-compatible PCI-to-CardBus controllers) 3222 and Yenta-compatible PCI-to-CardBus controllers)
3218 3223
3219 * Patch by Mathijs Haarman, 08 May 2003: 3224 * Patch by Mathijs Haarman, 08 May 2003:
3220 Add lan91c96 driver (tested on Lubbock and custom PXA250 board only) 3225 Add lan91c96 driver (tested on Lubbock and custom PXA250 board only)
3221 3226
3222 * Fix problem with usage of "true" (undefined in current versions of bfd.h) 3227 * Fix problem with usage of "true" (undefined in current versions of bfd.h)
3223 3228
3224 * Add support for Promess ATC board 3229 * Add support for Promess ATC board
3225 3230
3226 * Patch by Keith Outwater, 28 Apr 2003: 3231 * Patch by Keith Outwater, 28 Apr 2003:
3227 - Miscellaneous corrections and additions to GEN860T board specific code. 3232 - Miscellaneous corrections and additions to GEN860T board specific code.
3228 - Added GEN860_SC variant to GEN860T. 3233 - Added GEN860_SC variant to GEN860T.
3229 - Miscellaneous corrections to GEN860T documentation. 3234 - Miscellaneous corrections to GEN860T documentation.
3230 - Correct duplicate entry in U-Boot CREDITS file. 3235 - Correct duplicate entry in U-Boot CREDITS file.
3231 - Add GEN860T_SC entry in MAINTAINERS file. 3236 - Add GEN860T_SC entry in MAINTAINERS file.
3232 - Update CREDITS file with GEN860T_SC info. 3237 - Update CREDITS file with GEN860T_SC info.
3233 3238
3234 * Update Smiths Aerospace addresses in MAINTAINERS file 3239 * Update Smiths Aerospace addresses in MAINTAINERS file
3235 3240
3236 * Fix error handling in hush's version of "run" command 3241 * Fix error handling in hush's version of "run" command
3237 3242
3238 * LWMON extensions: 3243 * LWMON extensions:
3239 - Splashscreen support 3244 - Splashscreen support
3240 - modem support 3245 - modem support
3241 - sysmon support 3246 - sysmon support
3242 - temperature dependend enabling of LCD 3247 - temperature dependend enabling of LCD
3243 3248
3244 * Allow booting from old "PPCBoot" disk partitions 3249 * Allow booting from old "PPCBoot" disk partitions
3245 3250
3246 * Add support for TQM8255 Board / MPC8255 CPU 3251 * Add support for TQM8255 Board / MPC8255 CPU
3247 3252
3248 ====================================================================== 3253 ======================================================================
3249 Changes for U-Boot 0.3.1: 3254 Changes for U-Boot 0.3.1:
3250 ====================================================================== 3255 ======================================================================
3251 3256
3252 * Make sure Block Lock Bits get cleared in R360MPI flash driver 3257 * Make sure Block Lock Bits get cleared in R360MPI flash driver
3253 3258
3254 * MPC823 LCD driver: Fill color map backwards, to allow for steady 3259 * MPC823 LCD driver: Fill color map backwards, to allow for steady
3255 display when Linux takes over 3260 display when Linux takes over
3256 3261
3257 * Patch by Erwin Rol, 27 Feb 2003: 3262 * Patch by Erwin Rol, 27 Feb 2003:
3258 Add support for RTEMS (this time for real). 3263 Add support for RTEMS (this time for real).
3259 3264
3260 * Add support for "bmp info" and "bmp display" commands to load 3265 * Add support for "bmp info" and "bmp display" commands to load
3261 bitmap images; this can be used (for example in a "preboot" 3266 bitmap images; this can be used (for example in a "preboot"
3262 command) to display a splash screen very quickly after poweron. 3267 command) to display a splash screen very quickly after poweron.
3263 3268
3264 * Add support for 133 MHz clock on INCA-IP board 3269 * Add support for 133 MHz clock on INCA-IP board
3265 3270
3266 * Patch by Lutz Dennig, 10 Apr 2003: 3271 * Patch by Lutz Dennig, 10 Apr 2003:
3267 Update for R360MPI board 3272 Update for R360MPI board
3268 3273
3269 * Add new meaning to "autostart" environment variable: 3274 * Add new meaning to "autostart" environment variable:
3270 If set to "no", a standalone image passed to the 3275 If set to "no", a standalone image passed to the
3271 "bootm" command will be copied to the load address 3276 "bootm" command will be copied to the load address
3272 (and eventually uncompressed), but NOT be started. 3277 (and eventually uncompressed), but NOT be started.
3273 This can be used to load and uncompress arbitrary 3278 This can be used to load and uncompress arbitrary
3274 data. 3279 data.
3275 3280
3276 * Patch by Stefan Roese, 10 Apr 2003: 3281 * Patch by Stefan Roese, 10 Apr 2003:
3277 Changed DHCP client to use IP address from server option field #54 3282 Changed DHCP client to use IP address from server option field #54
3278 from the OFFER packet in the server option field #54 in the REQUEST 3283 from the OFFER packet in the server option field #54 in the REQUEST
3279 packet. This fixes a problem using a Windows 2000 DHCP server, 3284 packet. This fixes a problem using a Windows 2000 DHCP server,
3280 where the DHCP-server is not the TFTP-server. 3285 where the DHCP-server is not the TFTP-server.
3281 3286
3282 * Set max brightness for MN11236 displays on TRAB board 3287 * Set max brightness for MN11236 displays on TRAB board
3283 3288
3284 * Add support for TQM862L modules 3289 * Add support for TQM862L modules
3285 3290
3286 ====================================================================== 3291 ======================================================================
3287 Changes for U-Boot 0.3.0: 3292 Changes for U-Boot 0.3.0:
3288 ====================================================================== 3293 ======================================================================
3289 3294
3290 * Patch by Arun Dharankar, 4 Apr 2003: 3295 * Patch by Arun Dharankar, 4 Apr 2003:
3291 Add IDMA example code (tested on 8260 only) 3296 Add IDMA example code (tested on 8260 only)
3292 3297
3293 * Add support for Purple Board (MIPS64 5Kc) 3298 * Add support for Purple Board (MIPS64 5Kc)
3294 3299
3295 * Add support for MIPS64 5Kc CPUs 3300 * Add support for MIPS64 5Kc CPUs
3296 3301
3297 * Fix missing setting of "loadaddr" and "bootfile" on ARM and MIPS 3302 * Fix missing setting of "loadaddr" and "bootfile" on ARM and MIPS
3298 3303
3299 * Patch by Denis Peter, 04 Apr 2003: 3304 * Patch by Denis Peter, 04 Apr 2003:
3300 - update MIP405-4 board 3305 - update MIP405-4 board
3301 3306
3302 * Patch by Stefan Roese, 4 Apr 2003: 3307 * Patch by Stefan Roese, 4 Apr 2003:
3303 - U-Boot version environment variable "ver" added 3308 - U-Boot version environment variable "ver" added
3304 (CONFIG_VERSION_VARIABLE). 3309 (CONFIG_VERSION_VARIABLE).
3305 - Changed PPC405GPr version from A to B. 3310 - Changed PPC405GPr version from A to B.
3306 - Changed CPCI405 to use CTS instead of DSR on PPC405 UART1. 3311 - Changed CPCI405 to use CTS instead of DSR on PPC405 UART1.
3307 3312
3308 * Patches by Denis Peter, 03 April 2003: 3313 * Patches by Denis Peter, 03 April 2003:
3309 - fix PCI IRQs on MPL boards 3314 - fix PCI IRQs on MPL boards
3310 - fix two more un-relocated pointer problems 3315 - fix two more un-relocated pointer problems
3311 3316
3312 * Fix behaviour of "run" command: 3317 * Fix behaviour of "run" command:
3313 - print error message iv variable does not exist 3318 - print error message iv variable does not exist
3314 - terminate processing of arguments in case of error 3319 - terminate processing of arguments in case of error
3315 3320
3316 * Patches by Peter Figuli, 10 Mar 2003 3321 * Patches by Peter Figuli, 10 Mar 2003
3317 - Add support for BTUART on PXA platform 3322 - Add support for BTUART on PXA platform
3318 - Add support for WEP EP250 (PXA) board 3323 - Add support for WEP EP250 (PXA) board
3319 3324
3320 * Fix flash problems on INCA-IP; add tool to allow bruning images to 3325 * Fix flash problems on INCA-IP; add tool to allow bruning images to
3321 flash using a BDI2000 3326 flash using a BDI2000
3322 3327
3323 * Implement fix for I2C Edge Conditions problem for all boards that 3328 * Implement fix for I2C Edge Conditions problem for all boards that
3324 use the bit-banging driver (common/soft_i2c.c) 3329 use the bit-banging driver (common/soft_i2c.c)
3325 3330
3326 * Patch by Martin Winistoerfer, 23 Mar 2003 3331 * Patch by Martin Winistoerfer, 23 Mar 2003
3327 - Add port to MPC555/556 microcontrollers 3332 - Add port to MPC555/556 microcontrollers
3328 - Add support for cmi customer board with 3333 - Add support for cmi customer board with
3329 Intel 28F128J3A, 28F320J3A or 28F640J3A flash. 3334 Intel 28F128J3A, 28F320J3A or 28F640J3A flash.
3330 3335
3331 * Patch by Rick Bronson, 28 Mar 2003: 3336 * Patch by Rick Bronson, 28 Mar 2003:
3332 - fix common/cmd_nand.c 3337 - fix common/cmd_nand.c
3333 3338
3334 * Patch by Arun Dharankar, 24 Mar 2003: 3339 * Patch by Arun Dharankar, 24 Mar 2003:
3335 - add threads / scheduler example code 3340 - add threads / scheduler example code
3336 3341
3337 * Add patches by Robert Schwebel, 31 Mar 2003: 3342 * Add patches by Robert Schwebel, 31 Mar 2003:
3338 - add ctrl-c support for kermit download 3343 - add ctrl-c support for kermit download
3339 - align bdinfo output on ARM 3344 - align bdinfo output on ARM
3340 - csb226 board: bring in sync with innokom/memsetup.S 3345 - csb226 board: bring in sync with innokom/memsetup.S
3341 - csb226 board: fix MDREFR handling 3346 - csb226 board: fix MDREFR handling
3342 - misc doc fixes / extensions 3347 - misc doc fixes / extensions
3343 - innokom board: cleanup, MDREFR fix in memsetup.S, config update 3348 - innokom board: cleanup, MDREFR fix in memsetup.S, config update
3344 - add BOOT_PROGRESS to armlinux.c 3349 - add BOOT_PROGRESS to armlinux.c
3345 3350
3346 * Add CPU ID, version, and clock speed for INCA-IP 3351 * Add CPU ID, version, and clock speed for INCA-IP
3347 3352
3348 * Patches by Dave Ellis, 18 Mar 2003 for SXNI855T board: 3353 * Patches by Dave Ellis, 18 Mar 2003 for SXNI855T board:
3349 - fix SRAM and SDRAM memory sizing 3354 - fix SRAM and SDRAM memory sizing
3350 - add status LED support 3355 - add status LED support
3351 - add MAC address for second (SCC1) ethernet port 3356 - add MAC address for second (SCC1) ethernet port
3352 3357
3353 * Update default environment for TQM8260 board 3358 * Update default environment for TQM8260 board
3354 3359
3355 * Patch by Rick Bronson, 16 Mar 2003: 3360 * Patch by Rick Bronson, 16 Mar 2003:
3356 - Add NAND flash support for reading, writing, and erasing NAND 3361 - Add NAND flash support for reading, writing, and erasing NAND
3357 flash (certain forms of which are called SmartMedia). 3362 flash (certain forms of which are called SmartMedia).
3358 - Add support for Atmel AT91RM9200DK ARM920T based development kit. 3363 - Add support for Atmel AT91RM9200DK ARM920T based development kit.
3359 3364
3360 * Patches by Robert Schwebel, 19 Mar 2003: 3365 * Patches by Robert Schwebel, 19 Mar 2003:
3361 - use arm-linux-gcc as default compiler for ARM 3366 - use arm-linux-gcc as default compiler for ARM
3362 - fix i2c fixup code 3367 - fix i2c fixup code
3363 - fix missing baudrate setting 3368 - fix missing baudrate setting
3364 - added $loadaddr / CFG_LOAD_ADDR support to loadb 3369 - added $loadaddr / CFG_LOAD_ADDR support to loadb
3365 - moved "ignoring trailing characters" _before_ u-boot wants to 3370 - moved "ignoring trailing characters" _before_ u-boot wants to
3366 print out diagnostics messages; removes bogus characters at the 3371 print out diagnostics messages; removes bogus characters at the
3367 end of transmission 3372 end of transmission
3368 3373
3369 * Patch by John Zhan, 18 Mar 2003: 3374 * Patch by John Zhan, 18 Mar 2003:
3370 Add support for SinoVee Microsystems SC8xx boards 3375 Add support for SinoVee Microsystems SC8xx boards
3371 3376
3372 * Patch by Rolf Offermanns, 21 Mar 2003: 3377 * Patch by Rolf Offermanns, 21 Mar 2003:
3373 ported the dnp1110 related changes from the current armboot cvs to 3378 ported the dnp1110 related changes from the current armboot cvs to
3374 current u-boot cvs. smc91111 does not work. problem marked in 3379 current u-boot cvs. smc91111 does not work. problem marked in
3375 smc91111.c, grep for "FIXME". 3380 smc91111.c, grep for "FIXME".
3376 3381
3377 * Patch by Brian Auld, 25 Mar 2003: 3382 * Patch by Brian Auld, 25 Mar 2003:
3378 Add support for STM flash chips on ebony board 3383 Add support for STM flash chips on ebony board
3379 3384
3380 * Add PCI support for MPC8250 Boards (PM825 module) 3385 * Add PCI support for MPC8250 Boards (PM825 module)
3381 3386
3382 * Patch by Stefan Roese, 25 Mar 2003: 3387 * Patch by Stefan Roese, 25 Mar 2003:
3383 - PCI405 update. 3388 - PCI405 update.
3384 3389
3385 * Patch by Stefan Roese, 20 Mar 2003: 3390 * Patch by Stefan Roese, 20 Mar 2003:
3386 - CPCI4052 update (support for revision 3). 3391 - CPCI4052 update (support for revision 3).
3387 - Set edge conditioning circuitry on PPC405GPr for compatibility 3392 - Set edge conditioning circuitry on PPC405GPr for compatibility
3388 to existing PPC405GP designs. 3393 to existing PPC405GP designs.
3389 - Clip udiv to 5 bits on PPC405 (serial.c). 3394 - Clip udiv to 5 bits on PPC405 (serial.c).
3390 3395
3391 * Extend INCAIP board support: 3396 * Extend INCAIP board support:
3392 - add automatic RAM size detection 3397 - add automatic RAM size detection
3393 - add "bdinfo" command 3398 - add "bdinfo" command
3394 - pass flash address and size to Linux kernel 3399 - pass flash address and size to Linux kernel
3395 - switch to 150 MHz clock 3400 - switch to 150 MHz clock
3396 3401
3397 * Avoid flicker on the TRAB's VFD by synchronizing the enable with 3402 * Avoid flicker on the TRAB's VFD by synchronizing the enable with
3398 the HSYNC/VSYNC. Requires new CPLD code (Version 101 for Rev. 100 3403 the HSYNC/VSYNC. Requires new CPLD code (Version 101 for Rev. 100
3399 boards, version 153 for Rev. 200 boards). 3404 boards, version 153 for Rev. 200 boards).
3400 3405
3401 * Patch by Vladimir Gurevich, 12 Mar 2003: 3406 * Patch by Vladimir Gurevich, 12 Mar 2003:
3402 Fix relocation problem of statically initialized string pointers 3407 Fix relocation problem of statically initialized string pointers
3403 in common/cmd_pci.c 3408 in common/cmd_pci.c
3404 3409
3405 * Patch by Kai-Uwe Blรถm, 12 Mar 2003: 3410 * Patch by Kai-Uwe Blรถm, 12 Mar 2003:
3406 Cleanup & bug fixes for JFFS2 code: 3411 Cleanup & bug fixes for JFFS2 code:
3407 - the memory mangement was broken. It caused havoc on malloc by 3412 - the memory mangement was broken. It caused havoc on malloc by
3408 writing beyond the block boundaries. 3413 writing beyond the block boundaries.
3409 - the length calculation for files was wrong, sometimes resulting 3414 - the length calculation for files was wrong, sometimes resulting
3410 in short file reads. 3415 in short file reads.
3411 - data copying now optionally takes fragment version numbers into 3416 - data copying now optionally takes fragment version numbers into
3412 account, to avoid copying from older data. 3417 account, to avoid copying from older data.
3413 See doc/README.JFFS2 for details. 3418 See doc/README.JFFS2 for details.
3414 3419
3415 * Patch by Josef Wagner, 12 Mar 2003: 3420 * Patch by Josef Wagner, 12 Mar 2003:
3416 - 16/32 MB and 50/80 MHz support with auto-detection for IP860 3421 - 16/32 MB and 50/80 MHz support with auto-detection for IP860
3417 - ETH05 and BEDBUG support for CU824 3422 - ETH05 and BEDBUG support for CU824
3418 - added support for MicroSys CPC45 3423 - added support for MicroSys CPC45
3419 - new BOOTROM/FLASH0 and DOC base for PM826 3424 - new BOOTROM/FLASH0 and DOC base for PM826
3420 3425
3421 * Patch by Robert Schwebel, 12 Mar 2003: 3426 * Patch by Robert Schwebel, 12 Mar 2003:
3422 Fix the chpart command on innokom board 3427 Fix the chpart command on innokom board
3423 3428
3424 * Name cleanup: 3429 * Name cleanup:
3425 mv include/asm-i386/ppcboot-i386.h include/asm-i386/u-boot-i386.h 3430 mv include/asm-i386/ppcboot-i386.h include/asm-i386/u-boot-i386.h
3426 s/PPCBoot/U-Boot/ in some files 3431 s/PPCBoot/U-Boot/ in some files
3427 s/pImage/uImage/ in some files 3432 s/pImage/uImage/ in some files
3428 3433
3429 * Patch by Detlev Zundel, 15 Jan 2003: 3434 * Patch by Detlev Zundel, 15 Jan 2003:
3430 Fix '' command line quoting 3435 Fix '' command line quoting
3431 3436
3432 * Patch by The LEOX team, 19 Jan 2003: 3437 * Patch by The LEOX team, 19 Jan 2003:
3433 - add support for the ELPT860 board 3438 - add support for the ELPT860 board
3434 - add support for Dallas ds164x RTC 3439 - add support for Dallas ds164x RTC
3435 3440
3436 * Patches by David Mรผller, 31 Jan 2003: 3441 * Patches by David Mรผller, 31 Jan 2003:
3437 - minimal setup for CardBus bridges 3442 - minimal setup for CardBus bridges
3438 - add EEPROM read/write support in the CS8900 driver 3443 - add EEPROM read/write support in the CS8900 driver
3439 - add support for the builtin I2C controller in the Samsung s3c24x0 chips 3444 - add support for the builtin I2C controller in the Samsung s3c24x0 chips
3440 - add support for MPL's VCMA9 (Samsung s3c2410 based) board 3445 - add support for MPL's VCMA9 (Samsung s3c2410 based) board
3441 3446
3442 * Patch by Steven Scholz, 04 Feb 2003: 3447 * Patch by Steven Scholz, 04 Feb 2003:
3443 add support for RTC DS1307 3448 add support for RTC DS1307
3444 3449
3445 * Patch by Reinhard Meyer, 5 Feb 2003: 3450 * Patch by Reinhard Meyer, 5 Feb 2003:
3446 fix PLPRCR/SCCR init sequence on 8xx to allow for 3451 fix PLPRCR/SCCR init sequence on 8xx to allow for
3447 changes of EBDF by software 3452 changes of EBDF by software
3448 3453
3449 * Patch by Vladimir Gurevich, 07 Feb 2003: 3454 * Patch by Vladimir Gurevich, 07 Feb 2003:
3450 "API-compatibility patch" for 4xx I2C driver 3455 "API-compatibility patch" for 4xx I2C driver
3451 3456
3452 * TRAB fixes / extensions: 3457 * TRAB fixes / extensions:
3453 - Restore VFD brightness as saved in environment 3458 - Restore VFD brightness as saved in environment
3454 - add support for Fujitsu flashes 3459 - add support for Fujitsu flashes
3455 - make sure both buzzers are turned off (drive low level) 3460 - make sure both buzzers are turned off (drive low level)
3456 3461
3457 * Patches by Robert Schwebel, 06 Mar 2003: 3462 * Patches by Robert Schwebel, 06 Mar 2003:
3458 - fix bug in BOOTP code (must use NetCopyIP) 3463 - fix bug in BOOTP code (must use NetCopyIP)
3459 - update of CSB226 port 3464 - update of CSB226 port
3460 - clear BSS segment on XScale 3465 - clear BSS segment on XScale
3461 - added support for i2c_init_board() function 3466 - added support for i2c_init_board() function
3462 - update to the Innokom plattform 3467 - update to the Innokom plattform
3463 3468
3464 * Extend support for redundand environments for configurations where 3469 * Extend support for redundand environments for configurations where
3465 environment size < sector size 3470 environment size < sector size
3466 3471
3467 * Patch by Rune Torgersen, 13 Feb 2003: 3472 * Patch by Rune Torgersen, 13 Feb 2003:
3468 Add support for Motorola MPC8266ADS board 3473 Add support for Motorola MPC8266ADS board
3469 3474
3470 * Patch by Kyle Harris, 19 Feb 2003: 3475 * Patch by Kyle Harris, 19 Feb 2003:
3471 patches for the Intel lubbock board: 3476 patches for the Intel lubbock board:
3472 memsetup.S - general cleanup (based on Robert's csb226 code) 3477 memsetup.S - general cleanup (based on Robert's csb226 code)
3473 flash.c - overhaul, actually works now 3478 flash.c - overhaul, actually works now
3474 lubbock.c - fix init funcs to return proper value 3479 lubbock.c - fix init funcs to return proper value
3475 3480
3476 * Patch by Kenneth Johansson, 26 Feb 2003: 3481 * Patch by Kenneth Johansson, 26 Feb 2003:
3477 - Fixed off by one in RFTA calculation. 3482 - Fixed off by one in RFTA calculation.
3478 - No need to abort when LDF is lower than we can program it's only 3483 - No need to abort when LDF is lower than we can program it's only
3479 minimum timing so clamp it to what we can do. 3484 minimum timing so clamp it to what we can do.
3480 - Takes function pointer to function for reading the spd_nvram. Usefull 3485 - Takes function pointer to function for reading the spd_nvram. Usefull
3481 for faking data or hardcode a module without the nvram. 3486 for faking data or hardcode a module without the nvram.
3482 - fix other user for above change 3487 - fix other user for above change
3483 - fix some comments. 3488 - fix some comments.
3484 3489
3485 * Patches by Brian Waite, 26 Feb 2003: 3490 * Patches by Brian Waite, 26 Feb 2003:
3486 - fix port for evb64260 board 3491 - fix port for evb64260 board
3487 - fix PCI for evb64260 board 3492 - fix PCI for evb64260 board
3488 - fix PCI scan 3493 - fix PCI scan
3489 3494
3490 * Patch by Reinhard Meyer, 1 Mar 2003: 3495 * Patch by Reinhard Meyer, 1 Mar 2003:
3491 Add support for EMK TOP860 Module 3496 Add support for EMK TOP860 Module
3492 3497
3493 * Patch by Yuli Barcohen, 02 Mar 2003: 3498 * Patch by Yuli Barcohen, 02 Mar 2003:
3494 Add SPD EEPROM support for MPC8260ADS board 3499 Add SPD EEPROM support for MPC8260ADS board
3495 3500
3496 * Patch by Robert Schwebel, 21 Jan 2003: 3501 * Patch by Robert Schwebel, 21 Jan 2003:
3497 - Add support for Innokom board 3502 - Add support for Innokom board
3498 - Don't complain if "install" fails 3503 - Don't complain if "install" fails
3499 - README cleanup (remove duplicated lines) 3504 - README cleanup (remove duplicated lines)
3500 - Update PXA header files 3505 - Update PXA header files
3501 3506
3502 * Add documentation for existing POST code (doc/README.POST) 3507 * Add documentation for existing POST code (doc/README.POST)
3503 3508
3504 * Patch by Laudney Ren, 15 Jan 2003: 3509 * Patch by Laudney Ren, 15 Jan 2003:
3505 Fix handling of redundand environment in "tools/envcrc.c" 3510 Fix handling of redundand environment in "tools/envcrc.c"
3506 3511
3507 * Patch by Detlev Zundel, 28 Feb 2003: 3512 * Patch by Detlev Zundel, 28 Feb 2003:
3508 Add bedbug support for 824x systems 3513 Add bedbug support for 824x systems
3509 3514
3510 * Add support for 16 MB flash configuration of TRAB board 3515 * Add support for 16 MB flash configuration of TRAB board
3511 3516
3512 * Patch by Erwin Rol, 27 Feb 2003: 3517 * Patch by Erwin Rol, 27 Feb 2003:
3513 Add support for RTEMS 3518 Add support for RTEMS
3514 3519
3515 * Add image information to README 3520 * Add image information to README
3516 3521
3517 * Patch by Stefan Roese, 18 Feb 2003: 3522 * Patch by Stefan Roese, 18 Feb 2003:
3518 CPCIISER4 configuration updated. 3523 CPCIISER4 configuration updated.
3519 3524
3520 * Patch by Stefan Roese, 17 Feb 2003: 3525 * Patch by Stefan Roese, 17 Feb 2003:
3521 Fixed bug in ext. serial clock setup on PPC405 (since PPC440 port). 3526 Fixed bug in ext. serial clock setup on PPC405 (since PPC440 port).
3522 3527
3523 * Patch by Stefan Roese, 13 Feb 2003: 3528 * Patch by Stefan Roese, 13 Feb 2003:
3524 Add "pcidelay" environment variable (in ms, enabled via 3529 Add "pcidelay" environment variable (in ms, enabled via
3525 CONFIG_PCI_BOOTDELAY). 3530 CONFIG_PCI_BOOTDELAY).
3526 PCI spec 2.2 defines, that a pci target has 2^25 pci clocks after 3531 PCI spec 2.2 defines, that a pci target has 2^25 pci clocks after
3527 RST# to respond to configuration cycles (33MHz -> 1s). 3532 RST# to respond to configuration cycles (33MHz -> 1s).
3528 3533
3529 * Fix dual PCMCIA slot support (when running with just one 3534 * Fix dual PCMCIA slot support (when running with just one
3530 slot populated) 3535 slot populated)
3531 3536
3532 * Add VFD type detection to trab board 3537 * Add VFD type detection to trab board
3533 3538
3534 * extend drivers/cs8900.c driver to synchronize ethaddr environment 3539 * extend drivers/cs8900.c driver to synchronize ethaddr environment
3535 variable with value in the EEPROM 3540 variable with value in the EEPROM
3536 3541
3537 * Patch by Stefan Roese, 10 Feb 2003: 3542 * Patch by Stefan Roese, 10 Feb 2003:
3538 Add support for 4MB and 128MB onboard SDRAM (cpu/ppc4xx/sdram.c) 3543 Add support for 4MB and 128MB onboard SDRAM (cpu/ppc4xx/sdram.c)
3539 3544
3540 * Add support for MIPS32 4Kc CPUs 3545 * Add support for MIPS32 4Kc CPUs
3541 3546
3542 * Add support for INCA-IP Board 3547 * Add support for INCA-IP Board
3543 3548
3544 ====================================================================== 3549 ======================================================================
3545 Changes for U-Boot 0.2.2: 3550 Changes for U-Boot 0.2.2:
3546 ====================================================================== 3551 ======================================================================
3547 3552
3548 * Add dual ethernet support on PM826 3553 * Add dual ethernet support on PM826
3549 3554
3550 * Add support for LXT971 PHY on PM826 3555 * Add support for LXT971 PHY on PM826
3551 3556
3552 * Patch by Tord Andersson, 16 Jan 2003: 3557 * Patch by Tord Andersson, 16 Jan 2003:
3553 Fix flash sector count for TQM8xxL 3558 Fix flash sector count for TQM8xxL
3554 3559
3555 * Fix I2C EEPROM problem on ICU862 board (would only write the first 3560 * Fix I2C EEPROM problem on ICU862 board (would only write the first
3556 16 bytes out of each 32 byte block) 3561 16 bytes out of each 32 byte block)
3557 3562
3558 ====================================================================== 3563 ======================================================================
3559 Changes for U-Boot 0.2.1: 3564 Changes for U-Boot 0.2.1:
3560 ====================================================================== 3565 ======================================================================
3561 3566
3562 * Add support for V37 board 3567 * Add support for V37 board
3563 (patch by Jรณn Benediktsson, 11 Dec 2002) 3568 (patch by Jรณn Benediktsson, 11 Dec 2002)
3564 3569
3565 * Update baudrate in bd_info when it gets changed 3570 * Update baudrate in bd_info when it gets changed
3566 3571
3567 * Add watchdog trigger points while waiting for serial port 3572 * Add watchdog trigger points while waiting for serial port
3568 (so far only 8xx -- needed on LWMON with 100ms watchdog) 3573 (so far only 8xx -- needed on LWMON with 100ms watchdog)
3569 3574
3570 * Improve command line tool to access the U-Boot's environment 3575 * Improve command line tool to access the U-Boot's environment
3571 (figuration of the utility, using a config file) 3576 (figuration of the utility, using a config file)
3572 3577
3573 * Add single quote support for (old) command line parser 3578 * Add single quote support for (old) command line parser
3574 3579
3575 * Switch LWMON board default config from FRAM to EEPROM; 3580 * Switch LWMON board default config from FRAM to EEPROM;
3576 in POST, EEPROM shows up on 8 addresses 3581 in POST, EEPROM shows up on 8 addresses
3577 3582
3578 ====================================================================== 3583 ======================================================================
3579 Changes for U-Boot 0.2.0: 3584 Changes for U-Boot 0.2.0:
3580 ====================================================================== 3585 ======================================================================
3581 3586
3582 * Use 1-byte-read instead of -write for iprobe() function 3587 * Use 1-byte-read instead of -write for iprobe() function
3583 Add i2c commands to PM826 config 3588 Add i2c commands to PM826 config
3584 3589
3585 * extend I2C POST code: check for list on known addresses 3590 * extend I2C POST code: check for list on known addresses
3586 3591
3587 * Improve log buffer code; use "loglevel" to decide which messages 3592 * Improve log buffer code; use "loglevel" to decide which messages
3588 to log on the console, too (like in Linux); get rid of "logstart" 3593 to log on the console, too (like in Linux); get rid of "logstart"
3589 3594
3590 * Add command line tool to access the U-Boot's environment 3595 * Add command line tool to access the U-Boot's environment
3591 (board-specific for TRAB now, to be fixed later) 3596 (board-specific for TRAB now, to be fixed later)
3592 3597
3593 * Patch by Hans-Joerg Frieden, 06 Dec 2002 3598 * Patch by Hans-Joerg Frieden, 06 Dec 2002
3594 Fix misc problems with AmigaOne support 3599 Fix misc problems with AmigaOne support
3595 3600
3596 * Patch by Chris Hallinan, 3 Dec 2002: 3601 * Patch by Chris Hallinan, 3 Dec 2002:
3597 minor cleanup to the MPC8245 EPIC driver 3602 minor cleanup to the MPC8245 EPIC driver
3598 3603
3599 * Patch by Pierre Aubert , 28 Nov 2002 3604 * Patch by Pierre Aubert , 28 Nov 2002
3600 Add support for external (SIU) interrupts on MPC8xx 3605 Add support for external (SIU) interrupts on MPC8xx
3601 3606
3602 * Patch by Pierre Aubert , 28 Nov 2002 3607 * Patch by Pierre Aubert , 28 Nov 2002
3603 Fix nested syscalls bug in standalone applications 3608 Fix nested syscalls bug in standalone applications
3604 3609
3605 * Patch by David Mรผller, 27 Nov 2002: 3610 * Patch by David Mรผller, 27 Nov 2002:
3606 fix output of "pciinfo" command for CardBus bridge devices. 3611 fix output of "pciinfo" command for CardBus bridge devices.
3607 3612
3608 * Fix bug in TQM8260 board detection - boards got stuck when board ID 3613 * Fix bug in TQM8260 board detection - boards got stuck when board ID
3609 was not readable 3614 was not readable
3610 3615
3611 * Add LED indication for IDE activity on KUP4K board 3616 * Add LED indication for IDE activity on KUP4K board
3612 3617
3613 * Fix startup problems with VFD display on TRAB 3618 * Fix startup problems with VFD display on TRAB
3614 3619
3615 * Patch by Pierre Aubert, 20 Nov 2002 3620 * Patch by Pierre Aubert, 20 Nov 2002
3616 Add driver for Epson SED13806 graphic controller. 3621 Add driver for Epson SED13806 graphic controller.
3617 Add support for BMP logos in cfb_console driver. 3622 Add support for BMP logos in cfb_console driver.
3618 3623
3619 * Added support for both PCMCIA slots (at the same time!) on MPC8xx 3624 * Added support for both PCMCIA slots (at the same time!) on MPC8xx
3620 3625
3621 * Patch by Rod Boyce, 21 Nov 2002: 3626 * Patch by Rod Boyce, 21 Nov 2002:
3622 fix PCMCIA on MBX8xx board 3627 fix PCMCIA on MBX8xx board
3623 3628
3624 * Patch by Pierre Aubert , 21 Nov 2002 3629 * Patch by Pierre Aubert , 21 Nov 2002
3625 Add CFG_CPM_POST_WORD_ADDR to make the offset of the 3630 Add CFG_CPM_POST_WORD_ADDR to make the offset of the
3626 bootmode word in DPRAM configurable 3631 bootmode word in DPRAM configurable
3627 3632
3628 * Patch by Daniel Engstrรถm, 18 Nov 2002: 3633 * Patch by Daniel Engstrรถm, 18 Nov 2002:
3629 Fixes for x86 port (mostly strings issues) 3634 Fixes for x86 port (mostly strings issues)
3630 3635
3631 * Patch by Ken Chou, 18 Nov 2002: 3636 * Patch by Ken Chou, 18 Nov 2002:
3632 Fix for natsemi NIC cards (DP83815) 3637 Fix for natsemi NIC cards (DP83815)
3633 3638
3634 * Patch by Pierre Aubert, 19 Nov 2002: 3639 * Patch by Pierre Aubert, 19 Nov 2002:
3635 fix a bug for the MII configuration, and some warnings 3640 fix a bug for the MII configuration, and some warnings
3636 3641
3637 * Patch by Thomas Frieden, 13 Nov 2002: 3642 * Patch by Thomas Frieden, 13 Nov 2002:
3638 Add code for AmigaOne board 3643 Add code for AmigaOne board
3639 (preliminary merge to U-Boot, still WIP) 3644 (preliminary merge to U-Boot, still WIP)
3640 3645
3641 * Patch by Jon Diekema, 12 Nov 2002: 3646 * Patch by Jon Diekema, 12 Nov 2002:
3642 - Adding URL for IEEE OUI lookup 3647 - Adding URL for IEEE OUI lookup
3643 - Making the autoboot #defines dependent on CONFIG_AUTOBOOT_KEYED 3648 - Making the autoboot #defines dependent on CONFIG_AUTOBOOT_KEYED
3644 being defined. 3649 being defined.
3645 - In the CONFIG_EXTRA_ENV_SETTINGS #define, the root-on-initrd and 3650 - In the CONFIG_EXTRA_ENV_SETTINGS #define, the root-on-initrd and
3646 root-on-nfs macros are designed to switch how the default boot 3651 root-on-nfs macros are designed to switch how the default boot
3647 method gets defined. 3652 method gets defined.
3648 3653
3649 * Patch by Daniel Engstrรถm, 13 Nov 2002: 3654 * Patch by Daniel Engstrรถm, 13 Nov 2002:
3650 Add support for i386 architecture and AMD SC520 board 3655 Add support for i386 architecture and AMD SC520 board
3651 3656
3652 * Patch by Pierre Aubert, 12 Nov 2002: 3657 * Patch by Pierre Aubert, 12 Nov 2002:
3653 Add support for DOS filesystem and booting from DOS floppy disk 3658 Add support for DOS filesystem and booting from DOS floppy disk
3654 3659
3655 * Patch by Jim Sandoz, 07 Nov 2002: 3660 * Patch by Jim Sandoz, 07 Nov 2002:
3656 Increase number of network RX buffers (PKTBUFSRX in 3661 Increase number of network RX buffers (PKTBUFSRX in
3657 "include/net.h") for EEPRO100 based boards (especially SP8240) 3662 "include/net.h") for EEPRO100 based boards (especially SP8240)
3658 which showed "Receiver is not ready" errors when U-Boot was 3663 which showed "Receiver is not ready" errors when U-Boot was
3659 processing the receive buffers slower than the network controller 3664 processing the receive buffers slower than the network controller
3660 was filling them. 3665 was filling them.
3661 3666
3662 * Patch by Andreas Oberritter, 09 Nov 2002: 3667 * Patch by Andreas Oberritter, 09 Nov 2002:
3663 Change behaviour of NetLoop(): return -1 for errors, filesize 3668 Change behaviour of NetLoop(): return -1 for errors, filesize
3664 otherwise; return code 0 is valid an means no file loaded - in this 3669 otherwise; return code 0 is valid an means no file loaded - in this
3665 case the environment still gets updated! 3670 case the environment still gets updated!
3666 3671
3667 * Patches by Jon Diekema, 9 Nov 2002: 3672 * Patches by Jon Diekema, 9 Nov 2002:
3668 - improve ADC/DAC clocking on the SACSng board to align 3673 - improve ADC/DAC clocking on the SACSng board to align
3669 the failing edges of LRCLK and SCLK 3674 the failing edges of LRCLK and SCLK
3670 - sbc8260 configuration tweaks 3675 - sbc8260 configuration tweaks
3671 - add status LED support for 82xx systems 3676 - add status LED support for 82xx systems
3672 - wire sspi/sspo commands into command handler; improved error 3677 - wire sspi/sspo commands into command handler; improved error
3673 handlering 3678 handlering
3674 - add timestamp support and alternate memory test to the 3679 - add timestamp support and alternate memory test to the
3675 SACSng configuration 3680 SACSng configuration
3676 3681
3677 * Patch by Vince Husovsky, 7 Nov 2002: 3682 * Patch by Vince Husovsky, 7 Nov 2002:
3678 Add "-n" to linker options to get rid of "Not enough room for 3683 Add "-n" to linker options to get rid of "Not enough room for
3679 program headers" problem 3684 program headers" problem
3680 3685
3681 * Patch by David Mรผller, 05 Nov 2002 3686 * Patch by David Mรผller, 05 Nov 2002
3682 Rename CONFIG_PLL_INPUT_FREQ to CONFIG_SYS_CLK_FREQ 3687 Rename CONFIG_PLL_INPUT_FREQ to CONFIG_SYS_CLK_FREQ
3683 so we can use an already existing name 3688 so we can use an already existing name
3684 3689
3685 * Patch by Pierre Aubert, 05 Nov 2002 3690 * Patch by Pierre Aubert, 05 Nov 2002
3686 Hardware relatied improvments in FDC boot code 3691 Hardware relatied improvments in FDC boot code
3687 3692
3688 * Patch by Holger Schurig, 5 Nov 2002: 3693 * Patch by Holger Schurig, 5 Nov 2002:
3689 Make the PXA really change it's frequency 3694 Make the PXA really change it's frequency
3690 3695
3691 * Patch by Pierre Aubert, 05 Nov 2002 3696 * Patch by Pierre Aubert, 05 Nov 2002
3692 Add support for slave serial Spartan 2 FPGAs 3697 Add support for slave serial Spartan 2 FPGAs
3693 3698
3694 * Fix uninitialized memory (MAC address) in 8xx SCC/FEC ethernet 3699 * Fix uninitialized memory (MAC address) in 8xx SCC/FEC ethernet
3695 drivers 3700 drivers
3696 3701
3697 * Add support for log buffer which can be passed to Linux kernel's 3702 * Add support for log buffer which can be passed to Linux kernel's
3698 syslog mechanism; used especially for POST results. 3703 syslog mechanism; used especially for POST results.
3699 3704
3700 * Patch by Klaus Heydeck, 31 Oct 2002: 3705 * Patch by Klaus Heydeck, 31 Oct 2002:
3701 Add initial support for kup4k board 3706 Add initial support for kup4k board
3702 3707
3703 * Patch by Robert Schwebel, 04 Nov 2002: 3708 * Patch by Robert Schwebel, 04 Nov 2002:
3704 - use watchdog to reset PXA250 systems 3709 - use watchdog to reset PXA250 systems
3705 - added progress callbacks to (some of the) ARM code 3710 - added progress callbacks to (some of the) ARM code
3706 - update for Cogent CSB226 board 3711 - update for Cogent CSB226 board
3707 3712
3708 * Add support for FPS860 board 3713 * Add support for FPS860 board
3709 3714
3710 * Patch by Guillaume Alexandre,, 04 Nov 2002: 3715 * Patch by Guillaume Alexandre,, 04 Nov 2002:
3711 Improve PCI access on 32-bits Compact PCI bus 3716 Improve PCI access on 32-bits Compact PCI bus
3712 3717
3713 * Fix mdelay() on TRAB - this was still the debugging version with 3718 * Fix mdelay() on TRAB - this was still the debugging version with
3714 seconds instead of ms. 3719 seconds instead of ms.
3715 3720
3716 * Patch by Robert Schwebel, 1 Nov 2002: 3721 * Patch by Robert Schwebel, 1 Nov 2002:
3717 XScale related cleanup (affects all ARM boards) 3722 XScale related cleanup (affects all ARM boards)
3718 3723
3719 * Cleanup of names and README. 3724 * Cleanup of names and README.
3720 3725
3721 ====================================================================== 3726 ======================================================================
3722 Notes for U-Boot 0.1.0: 3727 Notes for U-Boot 0.1.0:
3723 ====================================================================== 3728 ======================================================================
3724 3729
3725 This is the initial version of "Das U-Boot", the Universal Boot Loader. 3730 This is the initial version of "Das U-Boot", the Universal Boot Loader.
3726 3731
3727 It is based on version 2.0.0 (the "Halloween Release") of PPCBoot. 3732 It is based on version 2.0.0 (the "Halloween Release") of PPCBoot.
3728 For information about the history of the project please see the 3733 For information about the history of the project please see the
3729 PPCBoot project page at http://sourceforge.net/projects/ppcboot 3734 PPCBoot project page at http://sourceforge.net/projects/ppcboot
3730 3735
3731 ====================================================================== 3736 ======================================================================
3732 3737
1 ######################################################################### 1 #########################################################################
2 # # 2 # #
3 # Regular Maintainers for U-Boot board support: # 3 # Regular Maintainers for U-Boot board support: #
4 # # 4 # #
5 # For any board without permanent maintainer, please contact # 5 # For any board without permanent maintainer, please contact #
6 # Wolfgang Denk <wd@denx.de> # 6 # Wolfgang Denk <wd@denx.de> #
7 # and Cc: the <U-Boot-Users@lists.sourceforge.net> mailing lists. # 7 # and Cc: the <U-Boot-Users@lists.sourceforge.net> mailing lists. #
8 # # 8 # #
9 # Note: lists sorted by Maintainer Name # 9 # Note: lists sorted by Maintainer Name #
10 ######################################################################### 10 #########################################################################
11 11
12 12
13 ######################################################################### 13 #########################################################################
14 # PowerPC Systems: # 14 # PowerPC Systems: #
15 # # 15 # #
16 # Maintainer Name, Email Address # 16 # Maintainer Name, Email Address #
17 # Board CPU # 17 # Board CPU #
18 ######################################################################### 18 #########################################################################
19 19
20 Greg Allen <gallen@arlut.utexas.edu> 20 Greg Allen <gallen@arlut.utexas.edu>
21 21
22 UTX8245 MPC8245 22 UTX8245 MPC8245
23 23
24 Pantelis Antoniou <panto@intracom.gr> 24 Pantelis Antoniou <panto@intracom.gr>
25 25
26 NETVIA MPC8xx 26 NETVIA MPC8xx
27 27
28 Reinhard Arlt <reinhard.arlt@esd-electronics.com> 28 Reinhard Arlt <reinhard.arlt@esd-electronics.com>
29 29
30 CPCI750 PPC750FX/GX 30 CPCI750 PPC750FX/GX
31 31
32 Yuli Barcohen <yuli@arabellasw.com> 32 Yuli Barcohen <yuli@arabellasw.com>
33 33
34 Adder MPC87x/MPC852T 34 Adder MPC87x/MPC852T
35 ep8248 MPC8248
35 ISPAN MPC8260 36 ISPAN MPC8260
36 MPC8260ADS MPC826x/MPC827x/MPC8280 37 MPC8260ADS MPC826x/MPC827x/MPC8280
37 Rattler MPC8248 38 Rattler MPC8248
38 ZPC1900 MPC8265 39 ZPC1900 MPC8265
39 40
40 Jerry Van Baren <gerald.vanbaren@smiths-aerospace.com> 41 Jerry Van Baren <gerald.vanbaren@smiths-aerospace.com>
41 42
42 sacsng MPC8260 43 sacsng MPC8260
43 44
44 Rick Bronson <rick@efn.org> 45 Rick Bronson <rick@efn.org>
45 46
46 AT91RM9200DK at91rm9200 47 AT91RM9200DK at91rm9200
47 48
48 Oliver Brown <obrown@adventnetworks.com> 49 Oliver Brown <obrown@adventnetworks.com>
49 50
50 gw8260 MPC8260 51 gw8260 MPC8260
51 52
52 Conn Clark <clark@esteem.com> 53 Conn Clark <clark@esteem.com>
53 54
54 ESTEEM192E MPC8xx 55 ESTEEM192E MPC8xx
55 56
56 Kรกri Davรญรฐsson <kd@flaga.is> 57 Kรกri Davรญรฐsson <kd@flaga.is>
57 58
58 FLAGADM MPC823 59 FLAGADM MPC823
59 60
60 Torsten Demke <torsten.demke@fci.com> 61 Torsten Demke <torsten.demke@fci.com>
61 62
62 eXalion MPC824x 63 eXalion MPC824x
63 64
64 Wolfgang Denk <wd@denx.de> 65 Wolfgang Denk <wd@denx.de>
65 66
66 IceCube_5100 MGT5100 67 IceCube_5100 MGT5100
67 IceCube_5200 MPC5200 68 IceCube_5200 MPC5200
68 69
69 AMX860 MPC860 70 AMX860 MPC860
70 ETX094 MPC850 71 ETX094 MPC850
71 FPS850L MPC850 72 FPS850L MPC850
72 FPS860L MPC860 73 FPS860L MPC860
73 ICU862 MPC862 74 ICU862 MPC862
74 IP860 MPC860 75 IP860 MPC860
75 IVML24 MPC860 76 IVML24 MPC860
76 IVML24_128 MPC860 77 IVML24_128 MPC860
77 IVML24_256 MPC860 78 IVML24_256 MPC860
78 IVMS8 MPC860 79 IVMS8 MPC860
79 IVMS8_128 MPC860 80 IVMS8_128 MPC860
80 IVMS8_256 MPC860 81 IVMS8_256 MPC860
81 LANTEC MPC850 82 LANTEC MPC850
82 LWMON MPC823 83 LWMON MPC823
83 NC650 MPC852 84 NC650 MPC852
84 R360MPI MPC823 85 R360MPI MPC823
85 RMU MPC850 86 RMU MPC850
86 RRvision MPC823 87 RRvision MPC823
87 SM850 MPC850 88 SM850 MPC850
88 SPD823TS MPC823 89 SPD823TS MPC823
89 TQM823L MPC823 90 TQM823L MPC823
90 TQM823L_LCD MPC823 91 TQM823L_LCD MPC823
91 TQM850L MPC850 92 TQM850L MPC850
92 TQM855L MPC855 93 TQM855L MPC855
93 TQM860L MPC860 94 TQM860L MPC860
94 TQM860L_FEC MPC860 95 TQM860L_FEC MPC860
95 c2mon MPC855 96 c2mon MPC855
96 hermes MPC860 97 hermes MPC860
97 lwmon MPC823 98 lwmon MPC823
98 pcu_e MPC855 99 pcu_e MPC855
99 100
100 CU824 MPC8240 101 CU824 MPC8240
101 Sandpoint8240 MPC8240 102 Sandpoint8240 MPC8240
102 SL8245 MPC8245 103 SL8245 MPC8245
103 104
104 ATC MPC8250 105 ATC MPC8250
105 PM825 MPC8250 106 PM825 MPC8250
106 107
107 TQM8255 MPC8255 108 TQM8255 MPC8255
108 109
109 CPU86 MPC8260 110 CPU86 MPC8260
110 PM826 MPC8260 111 PM826 MPC8260
111 TQM8260 MPC8260 112 TQM8260 MPC8260
112 113
113 P3G4 MPC7410 114 P3G4 MPC7410
114 115
115 PCIPPC2 MPC750 116 PCIPPC2 MPC750
116 PCIPPC6 MPC750 117 PCIPPC6 MPC750
117 118
118 EXBITGEN PPC405GP 119 EXBITGEN PPC405GP
119 120
120 Jon Diekema <jon.diekema@smiths-aerospace.com> 121 Jon Diekema <jon.diekema@smiths-aerospace.com>
121 122
122 sbc8260 MPC8260 123 sbc8260 MPC8260
123 124
124 Dave Ellis <DGE@sixnetio.com> 125 Dave Ellis <DGE@sixnetio.com>
125 126
126 SXNI855T MPC8xx 127 SXNI855T MPC8xx
127 128
128 Thomas Frieden <ThomasF@hyperion-entertainment.com> 129 Thomas Frieden <ThomasF@hyperion-entertainment.com>
129 130
130 AmigaOneG3SE MPC7xx 131 AmigaOneG3SE MPC7xx
131 132
132 Matthias Fuchs <matthias.fuchs@esd-electronics.com> 133 Matthias Fuchs <matthias.fuchs@esd-electronics.com>
133 134
134 ADCIOP IOP480 (PPC401) 135 ADCIOP IOP480 (PPC401)
135 APC405 PPC405GP 136 APC405 PPC405GP
136 AR405 PPC405GP 137 AR405 PPC405GP
137 ASH405 PPC405EP 138 ASH405 PPC405EP
138 CANBT PPC405CR 139 CANBT PPC405CR
139 CPCI405 PPC405GP 140 CPCI405 PPC405GP
140 CPCI4052 PPC405GP 141 CPCI4052 PPC405GP
141 CPCI405AB PPC405GP 142 CPCI405AB PPC405GP
142 CPCI405DT PPC405GP 143 CPCI405DT PPC405GP
143 CPCI440 PPC440GP 144 CPCI440 PPC440GP
144 CPCIISER4 PPC405GP 145 CPCIISER4 PPC405GP
145 DASA_SIM IOP480 (PPC401) 146 DASA_SIM IOP480 (PPC401)
146 DP405 PPC405EP 147 DP405 PPC405EP
147 DU405 PPC405GP 148 DU405 PPC405GP
148 G2000 PPC405EP 149 G2000 PPC405EP
149 HH405 PPC405EP 150 HH405 PPC405EP
150 HUB405 PPC405EP 151 HUB405 PPC405EP
151 OCRTC PPC405GP 152 OCRTC PPC405GP
152 ORSG PPC405GP 153 ORSG PPC405GP
153 PCI405 PPC405GP 154 PCI405 PPC405GP
154 PLU405 PPC405EP 155 PLU405 PPC405EP
155 PMC405 PPC405GP 156 PMC405 PPC405GP
156 VOH405 PPC405EP 157 VOH405 PPC405EP
157 VOM405 PPC405EP 158 VOM405 PPC405EP
158 WUH405 PPC405EP 159 WUH405 PPC405EP
159 160
160 Frank Gottschling <fgottschling@eltec.de> 161 Frank Gottschling <fgottschling@eltec.de>
161 162
162 MHPC MPC8xx 163 MHPC MPC8xx
163 164
164 BAB7xx MPC740/MPC750 165 BAB7xx MPC740/MPC750
165 166
166 Wolfgang Grandegger <wg@denx.de> 167 Wolfgang Grandegger <wg@denx.de>
167 168
168 CCM MPC855 169 CCM MPC855
169 170
170 PN62 MPC8240 171 PN62 MPC8240
171 172
172 IPHASE4539 MPC8260 173 IPHASE4539 MPC8260
173 SCM MPC8260 174 SCM MPC8260
174 175
175 Howard Gray <mvsensor@matrix-vision.de> 176 Howard Gray <mvsensor@matrix-vision.de>
176 177
177 MVS1 MPC823 178 MVS1 MPC823
178 179
179 Klaus Heydeck <heydeck@kieback-peter.de> 180 Klaus Heydeck <heydeck@kieback-peter.de>
180 181
181 KUP4K MPC855 182 KUP4K MPC855
182 KUP4X MPC859 183 KUP4X MPC859
183 184
184 Murray Jensen <Murray.Jensen@cmst.csiro.au> 185 Murray Jensen <Murray.Jensen@cmst.csiro.au>
185 186
186 cogent_mpc8xx MPC8xx 187 cogent_mpc8xx MPC8xx
187 188
188 cogent_mpc8260 MPC8260 189 cogent_mpc8260 MPC8260
189 hymod MPC8260 190 hymod MPC8260
190 191
191 Brad Kemp <Brad.Kemp@seranoa.com> 192 Brad Kemp <Brad.Kemp@seranoa.com>
192 193
193 ppmc8260 MPC8260 194 ppmc8260 MPC8260
194 195
195 Sangmoon Kim <dogoil@etinsys.com> 196 Sangmoon Kim <dogoil@etinsys.com>
196 197
197 debris MPC8245 198 debris MPC8245
198 199
199 Thomas Lange <thomas@corelatus.se> 200 Thomas Lange <thomas@corelatus.se>
200 201
201 GTH MPC860 202 GTH MPC860
202 203
203 The LEOX team <team@leox.org> 204 The LEOX team <team@leox.org>
204 205
205 ELPT860 MPC860T 206 ELPT860 MPC860T
206 207
207 Nye Liu <nyet@zumanetworks.com> 208 Nye Liu <nyet@zumanetworks.com>
208 209
209 ZUMA MPC7xx_74xx 210 ZUMA MPC7xx_74xx
210 211
211 Jon Loeliger <jdl@freescale.com> 212 Jon Loeliger <jdl@freescale.com>
212 213
213 MPC8540ADS MPC8540 214 MPC8540ADS MPC8540
214 MPC8560ADS MPC8560 215 MPC8560ADS MPC8560
215 MPC8541CDS MPC8541 216 MPC8541CDS MPC8541
216 MPC8555CDS MPC8555 217 MPC8555CDS MPC8555
217 218
218 Dan Malek <dan@embeddededge.com> 219 Dan Malek <dan@embeddededge.com>
219 220
220 STxGP3 MPC85xx 221 STxGP3 MPC85xx
221 222
222 Eran Man <eran@nbase.co.il> 223 Eran Man <eran@nbase.co.il>
223 224
224 EVB64260_750CX MPC750CX 225 EVB64260_750CX MPC750CX
225 226
226 Andrea "llandre" Marson <andrea.marson@dave-tech.it> 227 Andrea "llandre" Marson <andrea.marson@dave-tech.it>
227 228
228 PPChameleonEVB PPC405EP 229 PPChameleonEVB PPC405EP
229 230
230 Reinhard Meyer <r.meyer@emk-elektronik.de> 231 Reinhard Meyer <r.meyer@emk-elektronik.de>
231 232
232 TOP860 MPC860T 233 TOP860 MPC860T
233 TOP5200 MPC5200 234 TOP5200 MPC5200
234 235
235 Tolunay Orkun <torkun@nextio.com> 236 Tolunay Orkun <torkun@nextio.com>
236 237
237 csb272 PPC405GP 238 csb272 PPC405GP
238 csb472 PPC405GP 239 csb472 PPC405GP
239 240
240 Keith Outwater <Keith_Outwater@mvis.com> 241 Keith Outwater <Keith_Outwater@mvis.com>
241 242
242 GEN860T MPC860T 243 GEN860T MPC860T
243 GEN860T_SC MPC860T 244 GEN860T_SC MPC860T
244 245
245 Frank Panno <fpanno@delphintech.com> 246 Frank Panno <fpanno@delphintech.com>
246 247
247 ep8260 MPC8260 248 ep8260 MPC8260
248 249
249 Peter Pearse <peter.pearse@arm.com> 250 Peter Pearse <peter.pearse@arm.com>
250 251
251 Integrator/AP CM 926EJ-S, CM7x0T, CM9x0T 252 Integrator/AP CM 926EJ-S, CM7x0T, CM9x0T
252 Integrator/CP CM 926EJ-S CM920T, CM940T, CM922T-XA10 253 Integrator/CP CM 926EJ-S CM920T, CM940T, CM922T-XA10
253 Versatile/AB ARM926EJ-S 254 Versatile/AB ARM926EJ-S
254 Versatile/PB ARM926EJ-S 255 Versatile/PB ARM926EJ-S
255 256
256 Denis Peter <d.peter@mpl.ch> 257 Denis Peter <d.peter@mpl.ch>
257 258
258 MIP405 PPC4xx 259 MIP405 PPC4xx
259 PIP405 PPC4xx 260 PIP405 PPC4xx
260 261
261 Daniel Poirot <dan.poirot@windriver.com> 262 Daniel Poirot <dan.poirot@windriver.com>
262 263
263 sbc8240 MPC8240 264 sbc8240 MPC8240
264 sbc405 PPC405GP 265 sbc405 PPC405GP
265 266
266 Stefan Roese <sr@denx.de> 267 Stefan Roese <sr@denx.de>
267 268
268 bamboo PPC440EP 269 bamboo PPC440EP
269 bunbinga PPC405EP 270 bunbinga PPC405EP
270 ebony PPC440GP 271 ebony PPC440GP
271 ocotea PPC440GX 272 ocotea PPC440GX
272 sycamore PPC405GPr 273 sycamore PPC405GPr
273 walnut PPC405GP 274 walnut PPC405GP
274 yellowstone PPC440GR 275 yellowstone PPC440GR
275 yosemite PPC440EP 276 yosemite PPC440EP
276 277
277 Yusdi Santoso <yusdi_santoso@adaptec.com> 278 Yusdi Santoso <yusdi_santoso@adaptec.com>
278 279
279 HIDDEN_DRAGON MPC8241/MPC8245 280 HIDDEN_DRAGON MPC8241/MPC8245
280 281
281 Travis Sawyer (travis.sawyer@sandburst.com> 282 Travis Sawyer (travis.sawyer@sandburst.com>
282 283
283 XPEDITE1K PPC440GX 284 XPEDITE1K PPC440GX
284 285
285 Peter De Schrijver <p2@mind.be> 286 Peter De Schrijver <p2@mind.be>
286 287
287 ML2 PPC4xx 288 ML2 PPC4xx
288 289
289 Erik Theisen <etheisen@mindspring.com> 290 Erik Theisen <etheisen@mindspring.com>
290 291
291 W7OLMC PPC4xx 292 W7OLMC PPC4xx
292 W7OLMG PPC4xx 293 W7OLMG PPC4xx
293 294
294 Jim Thompson <jim@musenki.com> 295 Jim Thompson <jim@musenki.com>
295 296
296 MUSENKI MPC8245/8241 297 MUSENKI MPC8245/8241
297 Sandpoint8245 MPC8245 298 Sandpoint8245 MPC8245
298 299
299 Rune Torgersen <runet@innovsys.com> 300 Rune Torgersen <runet@innovsys.com>
300 301
301 MPC8266ADS MPC8266 302 MPC8266ADS MPC8266
302 303
303 Josef Wagner <Wagner@Microsys.de> 304 Josef Wagner <Wagner@Microsys.de>
304 305
305 CPC45 MPC8245 306 CPC45 MPC8245
306 PM520 MPC5200 307 PM520 MPC5200
307 308
308 Stephen Williams <steve@icarus.com> 309 Stephen Williams <steve@icarus.com>
309 310
310 JSE PPC405GPr 311 JSE PPC405GPr
311 312
312 John Zhan <zhanz@sinovee.com> 313 John Zhan <zhanz@sinovee.com>
313 314
314 svm_sc8xx MPC8xx 315 svm_sc8xx MPC8xx
315 316
316 ------------------------------------------------------------------------- 317 -------------------------------------------------------------------------
317 318
318 Unknown / orphaned boards: 319 Unknown / orphaned boards:
319 320
320 ADS860 MPC8xx 321 ADS860 MPC8xx
321 FADS823 MPC8xx 322 FADS823 MPC8xx
322 FADS850SAR MPC8xx 323 FADS850SAR MPC8xx
323 FADS860T MPC8xx 324 FADS860T MPC8xx
324 GENIETV MPC8xx 325 GENIETV MPC8xx
325 IAD210 MPC8xx 326 IAD210 MPC8xx
326 MBX MPC8xx 327 MBX MPC8xx
327 MBX860T MPC8xx 328 MBX860T MPC8xx
328 NX823 MPC8xx 329 NX823 MPC8xx
329 RPXClassic MPC8xx 330 RPXClassic MPC8xx
330 RPXlite MPC8xx 331 RPXlite MPC8xx
331 332
332 CRAYL1 PPC4xx 333 CRAYL1 PPC4xx
333 ERIC PPC4xx 334 ERIC PPC4xx
334 335
335 MOUSSE MPC824x 336 MOUSSE MPC824x
336 337
337 RPXsuper MPC8260 338 RPXsuper MPC8260
338 rsdproto MPC8260 339 rsdproto MPC8260
339 340
340 EVB64260 MPC7xx_74xx 341 EVB64260 MPC7xx_74xx
341 342
342 343
343 ######################################################################### 344 #########################################################################
344 # ARM Systems: # 345 # ARM Systems: #
345 # # 346 # #
346 # Maintainer Name, Email Address # 347 # Maintainer Name, Email Address #
347 # Board CPU # 348 # Board CPU #
348 ######################################################################### 349 #########################################################################
349 350
350 Rishi Bhattacharya <rishi@ti.com> 351 Rishi Bhattacharya <rishi@ti.com>
351 352
352 omap5912osk ARM926EJS 353 omap5912osk ARM926EJS
353 354
354 George G. Davis <gdavis@mvista.com> 355 George G. Davis <gdavis@mvista.com>
355 356
356 assabet SA1100 357 assabet SA1100
357 gcplus SA1100 358 gcplus SA1100
358 359
359 Thomas Elste <info@elste.org> 360 Thomas Elste <info@elste.org>
360 361
361 modnet50 ARM720T (NET+50) 362 modnet50 ARM720T (NET+50)
362 363
363 Peter Figuli <peposh@etc.sk> 364 Peter Figuli <peposh@etc.sk>
364 365
365 wepep250 xscale 366 wepep250 xscale
366 367
367 Marius Grรถger <mag@sysgo.de> 368 Marius Grรถger <mag@sysgo.de>
368 369
369 impa7 ARM720T (EP7211) 370 impa7 ARM720T (EP7211)
370 ep7312 ARM720T (EP7312) 371 ep7312 ARM720T (EP7312)
371 372
372 Kshitij Gupta <kshitij@ti.com> 373 Kshitij Gupta <kshitij@ti.com>
373 374
374 omap1510inn ARM925T 375 omap1510inn ARM925T
375 omap1610inn ARM926EJS 376 omap1610inn ARM926EJS
376 377
377 Kyle Harris <kharris@nexus-tech.net> 378 Kyle Harris <kharris@nexus-tech.net>
378 379
379 lubbock xscale 380 lubbock xscale
380 cradle xscale 381 cradle xscale
381 ixdp425 xscale 382 ixdp425 xscale
382 383
383 Gary Jennejohn <gj@denx.de> 384 Gary Jennejohn <gj@denx.de>
384 385
385 smdk2400 ARM920T 386 smdk2400 ARM920T
386 trab ARM920T 387 trab ARM920T
387 388
388 Nishant Kamat <nskamat@ti.com> 389 Nishant Kamat <nskamat@ti.com>
389 390
390 omap1610h2 ARM926EJS 391 omap1610h2 ARM926EJS
391 392
392 Prakash Kumar <prakash@embedx.com> 393 Prakash Kumar <prakash@embedx.com>
393 394
394 cerf250 xscale 395 cerf250 xscale
395 396
396 David Mรผller <d.mueller@elsoft.ch> 397 David Mรผller <d.mueller@elsoft.ch>
397 398
398 smdk2410 ARM920T 399 smdk2410 ARM920T
399 VCMA9 ARM920T 400 VCMA9 ARM920T
400 401
401 Rolf Offermanns <rof@sysgo.de> 402 Rolf Offermanns <rof@sysgo.de>
402 403
403 shannon SA1100 404 shannon SA1100
404 405
405 Dave Peverley <dpeverley@mpc-data.co.uk> 406 Dave Peverley <dpeverley@mpc-data.co.uk>
406 407
407 omap730p2 ARM926EJS 408 omap730p2 ARM926EJS
408 409
409 Robert Schwebel <r.schwebel@pengutronix.de> 410 Robert Schwebel <r.schwebel@pengutronix.de>
410 411
411 csb226 xscale 412 csb226 xscale
412 innokom xscale 413 innokom xscale
413 414
414 Andrea Scian <andrea.scian@dave-tech.it> 415 Andrea Scian <andrea.scian@dave-tech.it>
415 416
416 B2 ARM7TDMI (S3C44B0X) 417 B2 ARM7TDMI (S3C44B0X)
417 418
418 Greg Ungerer <greg.ungerer@opengear.com> 419 Greg Ungerer <greg.ungerer@opengear.com>
419 420
420 cm4008 ks8695p 421 cm4008 ks8695p
421 cm4116 ks8695p 422 cm4116 ks8695p
422 cm4148 ks8695p 423 cm4148 ks8695p
423 424
424 Richard Woodruff <r-woodruff2@ti.com> 425 Richard Woodruff <r-woodruff2@ti.com>
425 426
426 omap2420h4 ARM1136EJS 427 omap2420h4 ARM1136EJS
427 428
428 Alex Zรผpke <azu@sysgo.de> 429 Alex Zรผpke <azu@sysgo.de>
429 430
430 lart SA1100 431 lart SA1100
431 dnp1110 SA1110 432 dnp1110 SA1110
432 433
433 ######################################################################### 434 #########################################################################
434 # x86 Systems: # 435 # x86 Systems: #
435 # # 436 # #
436 # Maintainer Name, Email Address # 437 # Maintainer Name, Email Address #
437 # Board CPU # 438 # Board CPU #
438 ######################################################################### 439 #########################################################################
439 440
440 Daniel Engstrรถm <daniel@omicron.se> 441 Daniel Engstrรถm <daniel@omicron.se>
441 442
442 sc520_cdp x86 443 sc520_cdp x86
443 444
444 ######################################################################### 445 #########################################################################
445 # MIPS Systems: # 446 # MIPS Systems: #
446 # # 447 # #
447 # Maintainer Name, Email Address # 448 # Maintainer Name, Email Address #
448 # Board CPU # 449 # Board CPU #
449 ######################################################################### 450 #########################################################################
450 451
451 Wolfgang Denk <wd@denx.de> 452 Wolfgang Denk <wd@denx.de>
452 453
453 incaip MIPS32 4Kc 454 incaip MIPS32 4Kc
454 purple MIPS64 5Kc 455 purple MIPS64 5Kc
455 456
456 Thomas Lange <thomas@corelatus.se> 457 Thomas Lange <thomas@corelatus.se>
457 dbau1x00 MIPS32 Au1000 458 dbau1x00 MIPS32 Au1000
458 459
459 ######################################################################### 460 #########################################################################
460 # Nios-32 Systems: # 461 # Nios-32 Systems: #
461 # # 462 # #
462 # Maintainer Name, Email Address # 463 # Maintainer Name, Email Address #
463 # Board CPU # 464 # Board CPU #
464 ######################################################################### 465 #########################################################################
465 466
466 Stephan Linz <linz@li-pro.net> 467 Stephan Linz <linz@li-pro.net>
467 468
468 DK1S10 Nios-32 469 DK1S10 Nios-32
469 ADNPESC1 Nios-32 470 ADNPESC1 Nios-32
470 471
471 Scott McNutt <smcnutt@psyent.com> 472 Scott McNutt <smcnutt@psyent.com>
472 473
473 DK1C20 Nios-32 474 DK1C20 Nios-32
474 475
475 ######################################################################### 476 #########################################################################
476 # Nios-II Systems: # 477 # Nios-II Systems: #
477 # # 478 # #
478 # Maintainer Name, Email Address # 479 # Maintainer Name, Email Address #
479 # Board CPU # 480 # Board CPU #
480 ######################################################################### 481 #########################################################################
481 482
482 Scott McNutt <smcnutt@psyent.com> 483 Scott McNutt <smcnutt@psyent.com>
483 484
484 PCI5441 Nios-II 485 PCI5441 Nios-II
485 PK1C20 Nios-II 486 PK1C20 Nios-II
486 487
487 ######################################################################### 488 #########################################################################
488 # MicroBlaze Systems: # 489 # MicroBlaze Systems: #
489 # # 490 # #
490 # Maintainer Name, Email Address # 491 # Maintainer Name, Email Address #
491 # Board CPU # 492 # Board CPU #
492 ######################################################################### 493 #########################################################################
493 494
494 Yasushi Shoji <yashi@atmark-techno.com> 495 Yasushi Shoji <yashi@atmark-techno.com>
495 496
496 SUZAKU MicroBlaze 497 SUZAKU MicroBlaze
497 498
498 ######################################################################### 499 #########################################################################
499 # Coldfire Systems: # 500 # Coldfire Systems: #
500 # # 501 # #
501 # Maintainer Name, Email Address # 502 # Maintainer Name, Email Address #
502 # Board CPU # 503 # Board CPU #
503 ######################################################################### 504 #########################################################################
504 505
505 Matthias Fuchs <matthias.fuchs@esd-electronics.com> 506 Matthias Fuchs <matthias.fuchs@esd-electronics.com>
506 507
507 TASREG MCF5249 508 TASREG MCF5249
508 509
509 ######################################################################### 510 #########################################################################
510 # End of MAINTAINERS list # 511 # End of MAINTAINERS list #
511 ######################################################################### 512 #########################################################################
512 513
1 #!/bin/sh 1 #!/bin/sh
2 2
3 : ${JOBS:=} 3 : ${JOBS:=}
4 4
5 if [ "${CROSS_COMPILE}" ] ; then 5 if [ "${CROSS_COMPILE}" ] ; then
6 MAKE="make CROSS_COMPILE=${CROSS_COMPILE}" 6 MAKE="make CROSS_COMPILE=${CROSS_COMPILE}"
7 else 7 else
8 MAKE=make 8 MAKE=make
9 fi 9 fi
10 10
11 [ -d LOG ] || mkdir LOG || exit 1 11 [ -d LOG ] || mkdir LOG || exit 1
12 12
13 LIST="" 13 LIST=""
14 14
15 ######################################################################### 15 #########################################################################
16 ## MPC5xx Systems 16 ## MPC5xx Systems
17 ######################################################################### 17 #########################################################################
18 18
19 LIST_5xx=" \ 19 LIST_5xx=" \
20 cmi_mpc5xx \ 20 cmi_mpc5xx \
21 " 21 "
22 22
23 ######################################################################### 23 #########################################################################
24 ## MPC5xxx Systems 24 ## MPC5xxx Systems
25 ######################################################################### 25 #########################################################################
26 26
27 LIST_5xxx=" \ 27 LIST_5xxx=" \
28 icecube_5100 icecube_5200 EVAL5200 PM520 \ 28 icecube_5100 icecube_5200 EVAL5200 PM520 \
29 Total5100 Total5200 Total5200_Rev2 TQM5200_auto \ 29 Total5100 Total5200 Total5200_Rev2 TQM5200_auto \
30 " 30 "
31 31
32 ######################################################################### 32 #########################################################################
33 ## MPC8xx Systems 33 ## MPC8xx Systems
34 ######################################################################### 34 #########################################################################
35 35
36 LIST_8xx=" \ 36 LIST_8xx=" \
37 Adder87x GENIETV MBX860T R360MPI \ 37 Adder87x GENIETV MBX860T R360MPI \
38 AdderII GTH MHPC RBC823 \ 38 AdderII GTH MHPC RBC823 \
39 ADS860 hermes MPC86xADS rmu \ 39 ADS860 hermes MPC86xADS rmu \
40 AMX860 IAD210 MPC885ADS RPXClassic \ 40 AMX860 IAD210 MPC885ADS RPXClassic \
41 c2mon ICU862_100MHz MVS1 RPXlite \ 41 c2mon ICU862_100MHz MVS1 RPXlite \
42 CCM IP860 NETPHONE RPXlite_DW \ 42 CCM IP860 NETPHONE RPXlite_DW \
43 cogent_mpc8xx IVML24 NETTA RRvision \ 43 cogent_mpc8xx IVML24 NETTA RRvision \
44 ELPT860 IVML24_128 NETTA2 SM850 \ 44 ELPT860 IVML24_128 NETTA2 SM850 \
45 ESTEEM192E IVML24_256 NETTA_ISDN SPD823TS \ 45 ESTEEM192E IVML24_256 NETTA_ISDN SPD823TS \
46 ETX094 IVMS8 NETVIA svm_sc8xx \ 46 ETX094 IVMS8 NETVIA svm_sc8xx \
47 FADS823 IVMS8_128 NETVIA_V2 SXNI855T \ 47 FADS823 IVMS8_128 NETVIA_V2 SXNI855T \
48 FADS850SAR IVMS8_256 NX823 TOP860 \ 48 FADS850SAR IVMS8_256 NX823 TOP860 \
49 FADS860T KUP4K pcu_e TQM823L \ 49 FADS860T KUP4K pcu_e TQM823L \
50 FLAGADM KUP4X QS823 TQM823L_LCD \ 50 FLAGADM KUP4X QS823 TQM823L_LCD \
51 FPS850L LANTEC QS850 TQM850L \ 51 FPS850L LANTEC QS850 TQM850L \
52 GEN860T lwmon QS860T TQM855L \ 52 GEN860T lwmon QS860T TQM855L \
53 GEN860T_SC MBX quantum TQM860L \ 53 GEN860T_SC MBX quantum TQM860L \
54 uc100 \ 54 uc100 \
55 v37 \ 55 v37 \
56 " 56 "
57 57
58 ######################################################################### 58 #########################################################################
59 ## PPC4xx Systems 59 ## PPC4xx Systems
60 ######################################################################### 60 #########################################################################
61 61
62 LIST_4xx=" \ 62 LIST_4xx=" \
63 ADCIOP AR405 ASH405 bubinga \ 63 ADCIOP AR405 ASH405 bubinga \
64 CANBT CPCI405 CPCI4052 CPCI405AB \ 64 CANBT CPCI405 CPCI4052 CPCI405AB \
65 CPCI440 CPCIISER4 CRAYL1 csb272 \ 65 CPCI440 CPCIISER4 CRAYL1 csb272 \
66 csb472 DASA_SIM DP405 DU405 \ 66 csb472 DASA_SIM DP405 DU405 \
67 ebony ERIC EXBITGEN HUB405 \ 67 ebony ERIC EXBITGEN HUB405 \
68 JSE MIP405 MIP405T ML2 \ 68 JSE MIP405 MIP405T ML2 \
69 ml300 ocotea OCRTC ORSG \ 69 ml300 ocotea OCRTC ORSG \
70 PCI405 PIP405 PLU405 PMC405 \ 70 PCI405 PIP405 PLU405 PMC405 \
71 PPChameleonEVB VOH405 W7OLMC W7OLMG \ 71 PPChameleonEVB VOH405 W7OLMC W7OLMG \
72 walnut WUH405 XPEDITE1K yellowstone \ 72 walnut WUH405 XPEDITE1K yellowstone \
73 yosemite \ 73 yosemite \
74 " 74 "
75 75
76 ######################################################################### 76 #########################################################################
77 ## MPC8220 Systems 77 ## MPC8220 Systems
78 ######################################################################### 78 #########################################################################
79 79
80 LIST_8220=" \ 80 LIST_8220=" \
81 Alaska8220 Yukon8220 \ 81 Alaska8220 Yukon8220 \
82 " 82 "
83 83
84 ######################################################################### 84 #########################################################################
85 ## MPC824x Systems 85 ## MPC824x Systems
86 ######################################################################### 86 #########################################################################
87 87
88 LIST_824x=" \ 88 LIST_824x=" \
89 A3000 BMW CPC45 CU824 \ 89 A3000 BMW CPC45 CU824 \
90 debris eXalion HIDDEN_DRAGON MOUSSE \ 90 debris eXalion HIDDEN_DRAGON MOUSSE \
91 MUSENKI MVBLUE OXC PN62 \ 91 MUSENKI MVBLUE OXC PN62 \
92 Sandpoint8240 Sandpoint8245 SL8245 utx8245 \ 92 Sandpoint8240 Sandpoint8245 SL8245 utx8245 \
93 sbc8240 \ 93 sbc8240 \
94 " 94 "
95 95
96 ######################################################################### 96 #########################################################################
97 ## MPC8260 Systems (includes 8250, 8255 etc.) 97 ## MPC8260 Systems (includes 8250, 8255 etc.)
98 ######################################################################### 98 #########################################################################
99 99
100 LIST_8260=" \ 100 LIST_8260=" \
101 atc cogent_mpc8260 CPU86 CPU87 \ 101 atc cogent_mpc8260 CPU86 CPU87 \
102 ep8260 gw8260 hymod IPHASE4539 \ 102 ep8248 ep8260 gw8260 hymod \
103 ISPAN MPC8260ADS MPC8266ADS MPC8272ADS \ 103 IPHASE4539 ISPAN MPC8260ADS MPC8266ADS \
104 PM826 PM828 ppmc8260 Rattler8248 \ 104 MPC8272ADS PM826 PM828 ppmc8260 \
105 RPXsuper rsdproto sacsng sbc8260 \ 105 Rattler8248 RPXsuper rsdproto sacsng \
106 SCM TQM8260_AC TQM8260_AD TQM8260_AE \ 106 sbc8260 SCM TQM8260_AC TQM8260_AD \
107 ZPC1900 \ 107 TQM8260_AE ZPC1900 \
108 " 108 "
109 109
110 ######################################################################### 110 #########################################################################
111 ## MPC83xx Systems (includes 8349, etc.) 111 ## MPC83xx Systems (includes 8349, etc.)
112 ######################################################################### 112 #########################################################################
113 113
114 LIST_83xx=" \ 114 LIST_83xx=" \
115 MPC8349ADS \ 115 MPC8349ADS \
116 " 116 "
117 117
118 118
119 ######################################################################### 119 #########################################################################
120 ## MPC85xx Systems (includes 8540, 8560 etc.) 120 ## MPC85xx Systems (includes 8540, 8560 etc.)
121 ######################################################################### 121 #########################################################################
122 122
123 LIST_85xx=" \ 123 LIST_85xx=" \
124 MPC8540ADS MPC8540EVAL MPC8541CDS MPC8548CDS \ 124 MPC8540ADS MPC8540EVAL MPC8541CDS MPC8548CDS \
125 MPC8555CDS MPC8560ADS PM854 PM856 \ 125 MPC8555CDS MPC8560ADS PM854 PM856 \
126 sbc8540 sbc8560 stxgp3 TQM8540 \ 126 sbc8540 sbc8560 stxgp3 TQM8540 \
127 " 127 "
128 128
129 ######################################################################### 129 #########################################################################
130 ## 74xx/7xx Systems 130 ## 74xx/7xx Systems
131 ######################################################################### 131 #########################################################################
132 132
133 LIST_74xx=" \ 133 LIST_74xx=" \
134 DB64360 DB64460 EVB64260 P3G4 \ 134 DB64360 DB64460 EVB64260 P3G4 \
135 PCIPPC2 PCIPPC6 ZUMA \ 135 PCIPPC2 PCIPPC6 ZUMA \
136 " 136 "
137 137
138 LIST_7xx=" \ 138 LIST_7xx=" \
139 BAB7xx CPCI750 ELPPC \ 139 BAB7xx CPCI750 ELPPC \
140 " 140 "
141 141
142 LIST_ppc="${LIST_5xx} ${LIST_5xxx} \ 142 LIST_ppc="${LIST_5xx} ${LIST_5xxx} \
143 ${LIST_8xx} \ 143 ${LIST_8xx} \
144 ${LIST_8220} ${LIST_824x} ${LIST_8260} \ 144 ${LIST_8220} ${LIST_824x} ${LIST_8260} \
145 ${LIST_83xx} \ 145 ${LIST_83xx} \
146 ${LIST_85xx} \ 146 ${LIST_85xx} \
147 ${LIST_4xx} \ 147 ${LIST_4xx} \
148 ${LIST_74xx} ${LIST_7xx}" 148 ${LIST_74xx} ${LIST_7xx}"
149 149
150 ######################################################################### 150 #########################################################################
151 ## StrongARM Systems 151 ## StrongARM Systems
152 ######################################################################### 152 #########################################################################
153 153
154 LIST_SA="assabet dnp1110 gcplus lart shannon" 154 LIST_SA="assabet dnp1110 gcplus lart shannon"
155 155
156 ######################################################################### 156 #########################################################################
157 ## ARM7 Systems 157 ## ARM7 Systems
158 ######################################################################### 158 #########################################################################
159 159
160 LIST_ARM7="B2 ep7312 evb4510 impa7 modnet50" 160 LIST_ARM7="B2 ep7312 evb4510 impa7 modnet50"
161 161
162 ######################################################################### 162 #########################################################################
163 ## ARM9 Systems 163 ## ARM9 Systems
164 ######################################################################### 164 #########################################################################
165 165
166 LIST_ARM9=" \ 166 LIST_ARM9=" \
167 at91rm9200dk cmc_pu2 integratorcp integratorap \ 167 at91rm9200dk cmc_pu2 integratorcp integratorap \
168 lpd7a400 mx1ads mx1fs2 omap1510inn \ 168 lpd7a400 mx1ads mx1fs2 omap1510inn \
169 omap1610h2 omap1610inn omap730p2 scb9328 \ 169 omap1610h2 omap1610inn omap730p2 scb9328 \
170 smdk2400 smdk2410 trab VCMA9 \ 170 smdk2400 smdk2410 trab VCMA9 \
171 versatile voiceblue \ 171 versatile voiceblue \
172 " 172 "
173 173
174 ######################################################################### 174 #########################################################################
175 ## ARM11 Systems 175 ## ARM11 Systems
176 ######################################################################### 176 #########################################################################
177 LIST_ARM11="omap2420h4" 177 LIST_ARM11="omap2420h4"
178 178
179 ######################################################################### 179 #########################################################################
180 ## Xscale Systems 180 ## Xscale Systems
181 ######################################################################### 181 #########################################################################
182 182
183 LIST_pxa=" \ 183 LIST_pxa=" \
184 adsvix cerf250 cradle csb226 \ 184 adsvix cerf250 cradle csb226 \
185 innokom lubbock wepep250 xaeniax \ 185 innokom lubbock wepep250 xaeniax \
186 xm250 xsengine \ 186 xm250 xsengine \
187 " 187 "
188 188
189 LIST_ixp="ixdp425" 189 LIST_ixp="ixdp425"
190 190
191 191
192 LIST_arm=" \ 192 LIST_arm=" \
193 ${LIST_SA} \ 193 ${LIST_SA} \
194 ${LIST_ARM7} ${LIST_ARM9} ${LIST_ARM11} \ 194 ${LIST_ARM7} ${LIST_ARM9} ${LIST_ARM11} \
195 ${LIST_pxa} ${LIST_ixp} \ 195 ${LIST_pxa} ${LIST_ixp} \
196 " 196 "
197 197
198 ######################################################################### 198 #########################################################################
199 ## MIPS Systems 199 ## MIPS Systems
200 ######################################################################### 200 #########################################################################
201 201
202 LIST_mips4kc="incaip" 202 LIST_mips4kc="incaip"
203 203
204 LIST_mips5kc="purple" 204 LIST_mips5kc="purple"
205 205
206 LIST_au1xx0="dbau1000 dbau1100 dbau1500 dbau1550 dbau1550_el" 206 LIST_au1xx0="dbau1000 dbau1100 dbau1500 dbau1550 dbau1550_el"
207 207
208 LIST_mips="${LIST_mips4kc} ${LIST_mips5kc} ${LIST_au1xx0}" 208 LIST_mips="${LIST_mips4kc} ${LIST_mips5kc} ${LIST_au1xx0}"
209 209
210 ######################################################################### 210 #########################################################################
211 ## i386 Systems 211 ## i386 Systems
212 ######################################################################### 212 #########################################################################
213 213
214 LIST_I486="sc520_cdp sc520_spunk sc520_spunk_rel" 214 LIST_I486="sc520_cdp sc520_spunk sc520_spunk_rel"
215 215
216 LIST_x86="${LIST_I486}" 216 LIST_x86="${LIST_I486}"
217 217
218 ######################################################################### 218 #########################################################################
219 ## NIOS Systems 219 ## NIOS Systems
220 ######################################################################### 220 #########################################################################
221 221
222 LIST_nios=" \ 222 LIST_nios=" \
223 ADNPESC1 ADNPESC1_base_32 \ 223 ADNPESC1 ADNPESC1_base_32 \
224 ADNPESC1_DNPEVA2_base_32 \ 224 ADNPESC1_DNPEVA2_base_32 \
225 DK1C20 DK1C20_standard_32 \ 225 DK1C20 DK1C20_standard_32 \
226 DK1S10 DK1S10_standard_32 DK1S10_mtx_ldk_20 \ 226 DK1S10 DK1S10_standard_32 DK1S10_mtx_ldk_20 \
227 " 227 "
228 228
229 ######################################################################### 229 #########################################################################
230 ## Nios-II Systems 230 ## Nios-II Systems
231 ######################################################################### 231 #########################################################################
232 232
233 LIST_nios2="PCI5441 PK1C20" 233 LIST_nios2="PCI5441 PK1C20"
234 234
235 ######################################################################### 235 #########################################################################
236 ## MicroBlaze Systems 236 ## MicroBlaze Systems
237 ######################################################################### 237 #########################################################################
238 238
239 LIST_microblaze="suzaku" 239 LIST_microblaze="suzaku"
240 240
241 #----------------------------------------------------------------------- 241 #-----------------------------------------------------------------------
242 242
243 #----- for now, just run PPC by default ----- 243 #----- for now, just run PPC by default -----
244 [ $# = 0 ] && set $LIST_ppc 244 [ $# = 0 ] && set $LIST_ppc
245 245
246 #----------------------------------------------------------------------- 246 #-----------------------------------------------------------------------
247 247
248 build_target() { 248 build_target() {
249 target=$1 249 target=$1
250 250
251 ${MAKE} distclean >/dev/null 251 ${MAKE} distclean >/dev/null
252 ${MAKE} ${target}_config 252 ${MAKE} ${target}_config
253 ${MAKE} ${JOBS} all 2>&1 >LOG/$target.MAKELOG | tee LOG/$target.ERR 253 ${MAKE} ${JOBS} all 2>&1 >LOG/$target.MAKELOG | tee LOG/$target.ERR
254 ${CROSS_COMPILE:-ppc_8xx-}size u-boot | tee -a LOG/$target.MAKELOG 254 ${CROSS_COMPILE:-ppc_8xx-}size u-boot | tee -a LOG/$target.MAKELOG
255 } 255 }
256 256
257 #----------------------------------------------------------------------- 257 #-----------------------------------------------------------------------
258 258
259 259
260 for arg in $@ 260 for arg in $@
261 do 261 do
262 case "$arg" in 262 case "$arg" in
263 ppc|5xx|5xxx|8xx|8220|824x|8260|83xx|85xx|4xx|7xx|74xx| \ 263 ppc|5xx|5xxx|8xx|8220|824x|8260|83xx|85xx|4xx|7xx|74xx| \
264 arm|SA|ARM7|ARM9|ARM11|pxa|ixp| \ 264 arm|SA|ARM7|ARM9|ARM11|pxa|ixp| \
265 microblaze| \ 265 microblaze| \
266 mips| \ 266 mips| \
267 nios|nios2| \ 267 nios|nios2| \
268 x86|I486) 268 x86|I486)
269 for target in `eval echo '$LIST_'${arg}` 269 for target in `eval echo '$LIST_'${arg}`
270 do 270 do
271 build_target ${target} 271 build_target ${target}
272 done 272 done
273 ;; 273 ;;
274 *) build_target ${arg} 274 *) build_target ${arg}
275 ;; 275 ;;
276 esac 276 esac
277 done 277 done
278 278
1 # 1 #
2 # (C) Copyright 2000-2005 2 # (C) Copyright 2000-2005
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 SOC 48 export ARCH CPU BOARD VENDOR SOC
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 = powerpc-linux- 57 CROSS_COMPILE = powerpc-linux-
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),nios2) 75 ifeq ($(ARCH),nios2)
76 CROSS_COMPILE = nios2-elf- 76 CROSS_COMPILE = nios2-elf-
77 endif 77 endif
78 ifeq ($(ARCH),m68k) 78 ifeq ($(ARCH),m68k)
79 CROSS_COMPILE = m68k-elf- 79 CROSS_COMPILE = m68k-elf-
80 endif 80 endif
81 ifeq ($(ARCH),microblaze) 81 ifeq ($(ARCH),microblaze)
82 CROSS_COMPILE = mb- 82 CROSS_COMPILE = mb-
83 endif 83 endif
84 endif 84 endif
85 endif 85 endif
86 86
87 export CROSS_COMPILE 87 export CROSS_COMPILE
88 88
89 ######################################################################### 89 #########################################################################
90 # U-Boot objects....order is important (i.e. start must be first) 90 # U-Boot objects....order is important (i.e. start must be first)
91 91
92 OBJS = cpu/$(CPU)/start.o 92 OBJS = cpu/$(CPU)/start.o
93 ifeq ($(CPU),i386) 93 ifeq ($(CPU),i386)
94 OBJS += cpu/$(CPU)/start16.o 94 OBJS += cpu/$(CPU)/start16.o
95 OBJS += cpu/$(CPU)/reset.o 95 OBJS += cpu/$(CPU)/reset.o
96 endif 96 endif
97 ifeq ($(CPU),ppc4xx) 97 ifeq ($(CPU),ppc4xx)
98 OBJS += cpu/$(CPU)/resetvec.o 98 OBJS += cpu/$(CPU)/resetvec.o
99 endif 99 endif
100 ifeq ($(CPU),mpc83xx) 100 ifeq ($(CPU),mpc83xx)
101 OBJS += cpu/$(CPU)/resetvec.o 101 OBJS += cpu/$(CPU)/resetvec.o
102 endif 102 endif
103 ifeq ($(CPU),mpc85xx) 103 ifeq ($(CPU),mpc85xx)
104 OBJS += cpu/$(CPU)/resetvec.o 104 OBJS += cpu/$(CPU)/resetvec.o
105 endif 105 endif
106 106
107 LIBS = lib_generic/libgeneric.a 107 LIBS = lib_generic/libgeneric.a
108 LIBS += board/$(BOARDDIR)/lib$(BOARD).a 108 LIBS += board/$(BOARDDIR)/lib$(BOARD).a
109 LIBS += cpu/$(CPU)/lib$(CPU).a 109 LIBS += cpu/$(CPU)/lib$(CPU).a
110 ifdef SOC 110 ifdef SOC
111 LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a 111 LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
112 endif 112 endif
113 LIBS += lib_$(ARCH)/lib$(ARCH).a 113 LIBS += lib_$(ARCH)/lib$(ARCH).a
114 LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \ 114 LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
115 fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a 115 fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
116 LIBS += net/libnet.a 116 LIBS += net/libnet.a
117 LIBS += disk/libdisk.a 117 LIBS += disk/libdisk.a
118 LIBS += rtc/librtc.a 118 LIBS += rtc/librtc.a
119 LIBS += dtt/libdtt.a 119 LIBS += dtt/libdtt.a
120 LIBS += drivers/libdrivers.a 120 LIBS += drivers/libdrivers.a
121 LIBS += drivers/sk98lin/libsk98lin.a 121 LIBS += drivers/sk98lin/libsk98lin.a
122 LIBS += post/libpost.a post/cpu/libcpu.a 122 LIBS += post/libpost.a post/cpu/libcpu.a
123 LIBS += common/libcommon.a 123 LIBS += common/libcommon.a
124 .PHONY : $(LIBS) 124 .PHONY : $(LIBS)
125 125
126 # Add GCC lib 126 # Add GCC lib
127 PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc 127 PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
128 128
129 129
130 # The "tools" are needed early, so put this first 130 # The "tools" are needed early, so put this first
131 # Don't include stuff already done in $(LIBS) 131 # Don't include stuff already done in $(LIBS)
132 SUBDIRS = tools \ 132 SUBDIRS = tools \
133 examples \ 133 examples \
134 post \ 134 post \
135 post/cpu 135 post/cpu
136 .PHONY : $(SUBDIRS) 136 .PHONY : $(SUBDIRS)
137 137
138 ######################################################################### 138 #########################################################################
139 ######################################################################### 139 #########################################################################
140 140
141 ALL = u-boot.srec u-boot.bin System.map 141 ALL = u-boot.srec u-boot.bin System.map
142 142
143 all: $(ALL) 143 all: $(ALL)
144 144
145 u-boot.hex: u-boot 145 u-boot.hex: u-boot
146 $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ 146 $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
147 147
148 u-boot.srec: u-boot 148 u-boot.srec: u-boot
149 $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ 149 $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@
150 150
151 u-boot.bin: u-boot 151 u-boot.bin: u-boot
152 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ 152 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
153 153
154 u-boot.img: u-boot.bin 154 u-boot.img: u-boot.bin
155 ./tools/mkimage -A $(ARCH) -T firmware -C none \ 155 ./tools/mkimage -A $(ARCH) -T firmware -C none \
156 -a $(TEXT_BASE) -e 0 \ 156 -a $(TEXT_BASE) -e 0 \
157 -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' include/version.h | \ 157 -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' include/version.h | \
158 sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \ 158 sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \
159 -d $< $@ 159 -d $< $@
160 160
161 u-boot.dis: u-boot 161 u-boot.dis: u-boot
162 $(OBJDUMP) -d $< > $@ 162 $(OBJDUMP) -d $< > $@
163 163
164 u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT) 164 u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
165 UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ 165 UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
166 $(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \ 166 $(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \
167 --start-group $(LIBS) --end-group $(PLATFORM_LIBS) \ 167 --start-group $(LIBS) --end-group $(PLATFORM_LIBS) \
168 -Map u-boot.map -o u-boot 168 -Map u-boot.map -o u-boot
169 169
170 $(LIBS): 170 $(LIBS):
171 $(MAKE) -C `dirname $@` 171 $(MAKE) -C `dirname $@`
172 172
173 $(SUBDIRS): 173 $(SUBDIRS):
174 $(MAKE) -C $@ all 174 $(MAKE) -C $@ all
175 175
176 gdbtools: 176 gdbtools:
177 $(MAKE) -C tools/gdb || exit 1 177 $(MAKE) -C tools/gdb || exit 1
178 178
179 depend dep: 179 depend dep:
180 @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done 180 @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done
181 181
182 tags: 182 tags:
183 ctags -w `find $(SUBDIRS) include \ 183 ctags -w `find $(SUBDIRS) include \
184 lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \ 184 lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
185 fs/cramfs fs/fat fs/fdos fs/jffs2 \ 185 fs/cramfs fs/fat fs/fdos fs/jffs2 \
186 net disk rtc dtt drivers drivers/sk98lin common \ 186 net disk rtc dtt drivers drivers/sk98lin common \
187 \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)` 187 \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
188 188
189 etags: 189 etags:
190 etags -a `find $(SUBDIRS) include \ 190 etags -a `find $(SUBDIRS) include \
191 lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \ 191 lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
192 fs/cramfs fs/fat fs/fdos fs/jffs2 \ 192 fs/cramfs fs/fat fs/fdos fs/jffs2 \
193 net disk rtc dtt drivers drivers/sk98lin common \ 193 net disk rtc dtt drivers drivers/sk98lin common \
194 \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)` 194 \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
195 195
196 System.map: u-boot 196 System.map: u-boot
197 @$(NM) $< | \ 197 @$(NM) $< | \
198 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ 198 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
199 sort > System.map 199 sort > System.map
200 200
201 ######################################################################### 201 #########################################################################
202 else 202 else
203 all install u-boot u-boot.srec depend dep: 203 all install u-boot u-boot.srec depend dep:
204 @echo "System not configured - see README" >&2 204 @echo "System not configured - see README" >&2
205 @ exit 1 205 @ exit 1
206 endif 206 endif
207 207
208 ######################################################################### 208 #########################################################################
209 209
210 unconfig: 210 unconfig:
211 @rm -f include/config.h include/config.mk board/*/config.tmp 211 @rm -f include/config.h include/config.mk board/*/config.tmp
212 212
213 #======================================================================== 213 #========================================================================
214 # PowerPC 214 # PowerPC
215 #======================================================================== 215 #========================================================================
216 216
217 ######################################################################### 217 #########################################################################
218 ## MPC5xx Systems 218 ## MPC5xx Systems
219 ######################################################################### 219 #########################################################################
220 220
221 canmb_config: unconfig 221 canmb_config: unconfig
222 @./mkconfig -a canmb ppc mpc5xxx canmb 222 @./mkconfig -a canmb ppc mpc5xxx canmb
223 223
224 cmi_mpc5xx_config: unconfig 224 cmi_mpc5xx_config: unconfig
225 @./mkconfig $(@:_config=) ppc mpc5xx cmi 225 @./mkconfig $(@:_config=) ppc mpc5xx cmi
226 226
227 PATI_config: unconfig 227 PATI_config: unconfig
228 @./mkconfig $(@:_config=) ppc mpc5xx pati mpl 228 @./mkconfig $(@:_config=) ppc mpc5xx pati mpl
229 229
230 ######################################################################### 230 #########################################################################
231 ## MPC5xxx Systems 231 ## MPC5xxx Systems
232 ######################################################################### 232 #########################################################################
233 233
234 hmi1001_config: unconfig 234 hmi1001_config: unconfig
235 @./mkconfig hmi1001 ppc mpc5xxx hmi1001 235 @./mkconfig hmi1001 ppc mpc5xxx hmi1001
236 236
237 Lite5200_config \ 237 Lite5200_config \
238 Lite5200_LOWBOOT_config \ 238 Lite5200_LOWBOOT_config \
239 Lite5200_LOWBOOT08_config \ 239 Lite5200_LOWBOOT08_config \
240 icecube_5200_config \ 240 icecube_5200_config \
241 icecube_5200_LOWBOOT_config \ 241 icecube_5200_LOWBOOT_config \
242 icecube_5200_LOWBOOT08_config \ 242 icecube_5200_LOWBOOT08_config \
243 icecube_5200_DDR_config \ 243 icecube_5200_DDR_config \
244 icecube_5200_DDR_LOWBOOT_config \ 244 icecube_5200_DDR_LOWBOOT_config \
245 icecube_5200_DDR_LOWBOOT08_config \ 245 icecube_5200_DDR_LOWBOOT08_config \
246 icecube_5100_config: unconfig 246 icecube_5100_config: unconfig
247 @ >include/config.h 247 @ >include/config.h
248 @[ -z "$(findstring LOWBOOT_,$@)" ] || \ 248 @[ -z "$(findstring LOWBOOT_,$@)" ] || \
249 { if [ "$(findstring DDR,$@)" ] ; \ 249 { if [ "$(findstring DDR,$@)" ] ; \
250 then echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \ 250 then echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \
251 else echo "TEXT_BASE = 0xFF000000" >board/icecube/config.tmp ; \ 251 else echo "TEXT_BASE = 0xFF000000" >board/icecube/config.tmp ; \
252 fi ; \ 252 fi ; \
253 echo "... with LOWBOOT configuration" ; \ 253 echo "... with LOWBOOT configuration" ; \
254 } 254 }
255 @[ -z "$(findstring LOWBOOT08,$@)" ] || \ 255 @[ -z "$(findstring LOWBOOT08,$@)" ] || \
256 { echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \ 256 { echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \
257 echo "... with 8 MB flash only" ; \ 257 echo "... with 8 MB flash only" ; \
258 echo "... with LOWBOOT configuration" ; \ 258 echo "... with LOWBOOT configuration" ; \
259 } 259 }
260 @[ -z "$(findstring DDR,$@)" ] || \ 260 @[ -z "$(findstring DDR,$@)" ] || \
261 { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \ 261 { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \
262 echo "... DDR memory revision" ; \ 262 echo "... DDR memory revision" ; \
263 } 263 }
264 @[ -z "$(findstring 5200,$@)" ] || \ 264 @[ -z "$(findstring 5200,$@)" ] || \
265 { echo "#define CONFIG_MPC5200" >>include/config.h ; \ 265 { echo "#define CONFIG_MPC5200" >>include/config.h ; \
266 echo "... with MPC5200 processor" ; \ 266 echo "... with MPC5200 processor" ; \
267 } 267 }
268 @[ -z "$(findstring 5100,$@)" ] || \ 268 @[ -z "$(findstring 5100,$@)" ] || \
269 { echo "#define CONFIG_MGT5100" >>include/config.h ; \ 269 { echo "#define CONFIG_MGT5100" >>include/config.h ; \
270 echo "... with MGT5100 processor" ; \ 270 echo "... with MGT5100 processor" ; \
271 } 271 }
272 @./mkconfig -a IceCube ppc mpc5xxx icecube 272 @./mkconfig -a IceCube ppc mpc5xxx icecube
273 273
274 inka4x0_config: unconfig 274 inka4x0_config: unconfig
275 @./mkconfig inka4x0 ppc mpc5xxx inka4x0 275 @./mkconfig inka4x0 ppc mpc5xxx inka4x0
276 276
277 PM520_config \ 277 PM520_config \
278 PM520_DDR_config \ 278 PM520_DDR_config \
279 PM520_ROMBOOT_config \ 279 PM520_ROMBOOT_config \
280 PM520_ROMBOOT_DDR_config: unconfig 280 PM520_ROMBOOT_DDR_config: unconfig
281 @ >include/config.h 281 @ >include/config.h
282 @[ -z "$(findstring DDR,$@)" ] || \ 282 @[ -z "$(findstring DDR,$@)" ] || \
283 { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \ 283 { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \
284 echo "... DDR memory revision" ; \ 284 echo "... DDR memory revision" ; \
285 } 285 }
286 @[ -z "$(findstring ROMBOOT,$@)" ] || \ 286 @[ -z "$(findstring ROMBOOT,$@)" ] || \
287 { echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \ 287 { echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \
288 echo "... booting from 8-bit flash" ; \ 288 echo "... booting from 8-bit flash" ; \
289 } 289 }
290 @./mkconfig -a PM520 ppc mpc5xxx pm520 290 @./mkconfig -a PM520 ppc mpc5xxx pm520
291 291
292 MINI5200_config \ 292 MINI5200_config \
293 EVAL5200_config \ 293 EVAL5200_config \
294 TOP5200_config: unconfig 294 TOP5200_config: unconfig
295 @ echo "#define CONFIG_$(@:_config=) 1" >include/config.h 295 @ echo "#define CONFIG_$(@:_config=) 1" >include/config.h
296 @./mkconfig -a TOP5200 ppc mpc5xxx top5200 emk 296 @./mkconfig -a TOP5200 ppc mpc5xxx top5200 emk
297 297
298 Total5100_config \ 298 Total5100_config \
299 Total5200_config \ 299 Total5200_config \
300 Total5200_lowboot_config \ 300 Total5200_lowboot_config \
301 Total5200_Rev2_config \ 301 Total5200_Rev2_config \
302 Total5200_Rev2_lowboot_config: unconfig 302 Total5200_Rev2_lowboot_config: unconfig
303 @ >include/config.h 303 @ >include/config.h
304 @[ -z "$(findstring 5100,$@)" ] || \ 304 @[ -z "$(findstring 5100,$@)" ] || \
305 { echo "#define CONFIG_MGT5100" >>include/config.h ; \ 305 { echo "#define CONFIG_MGT5100" >>include/config.h ; \
306 echo "... with MGT5100 processor" ; \ 306 echo "... with MGT5100 processor" ; \
307 } 307 }
308 @[ -z "$(findstring 5200,$@)" ] || \ 308 @[ -z "$(findstring 5200,$@)" ] || \
309 { echo "#define CONFIG_MPC5200" >>include/config.h ; \ 309 { echo "#define CONFIG_MPC5200" >>include/config.h ; \
310 echo "... with MPC5200 processor" ; \ 310 echo "... with MPC5200 processor" ; \
311 } 311 }
312 @[ -n "$(findstring Rev,$@)" ] || \ 312 @[ -n "$(findstring Rev,$@)" ] || \
313 { echo "#define CONFIG_TOTAL5200_REV 1" >>include/config.h ; \ 313 { echo "#define CONFIG_TOTAL5200_REV 1" >>include/config.h ; \
314 echo "... revision 1 board" ; \ 314 echo "... revision 1 board" ; \
315 } 315 }
316 @[ -z "$(findstring Rev2_,$@)" ] || \ 316 @[ -z "$(findstring Rev2_,$@)" ] || \
317 { echo "#define CONFIG_TOTAL5200_REV 2" >>include/config.h ; \ 317 { echo "#define CONFIG_TOTAL5200_REV 2" >>include/config.h ; \
318 echo "... revision 2 board" ; \ 318 echo "... revision 2 board" ; \
319 } 319 }
320 @[ -z "$(findstring lowboot_,$@)" ] || \ 320 @[ -z "$(findstring lowboot_,$@)" ] || \
321 { echo "TEXT_BASE = 0xFE000000" >board/total5200/config.tmp ; \ 321 { echo "TEXT_BASE = 0xFE000000" >board/total5200/config.tmp ; \
322 echo "... with lowboot configuration" ; \ 322 echo "... with lowboot configuration" ; \
323 } 323 }
324 @./mkconfig -a Total5200 ppc mpc5xxx total5200 324 @./mkconfig -a Total5200 ppc mpc5xxx total5200
325 325
326 TQM5200_auto_config \ 326 TQM5200_auto_config \
327 TQM5200_AA_config \ 327 TQM5200_AA_config \
328 TQM5200_AB_config \ 328 TQM5200_AB_config \
329 TQM5200_AC_config \ 329 TQM5200_AC_config \
330 MiniFAP_config: unconfig 330 MiniFAP_config: unconfig
331 @ >include/config.h 331 @ >include/config.h
332 @[ -z "$(findstring MiniFAP,$@)" ] || \ 332 @[ -z "$(findstring MiniFAP,$@)" ] || \
333 { echo "#define CONFIG_MINIFAP" >>include/config.h ; \ 333 { echo "#define CONFIG_MINIFAP" >>include/config.h ; \
334 echo "#define CONFIG_TQM5200_AC" >>include/config.h ; \ 334 echo "#define CONFIG_TQM5200_AC" >>include/config.h ; \
335 echo "... TQM5200_AC on MiniFAP" ; \ 335 echo "... TQM5200_AC on MiniFAP" ; \
336 } 336 }
337 @[ -z "$(findstring AA,$@)" ] || \ 337 @[ -z "$(findstring AA,$@)" ] || \
338 { echo "#define CONFIG_TQM5200_AA" >>include/config.h ; \ 338 { echo "#define CONFIG_TQM5200_AA" >>include/config.h ; \
339 echo "... with 4 MB Flash, 16 MB SDRAM, 32 kB EEPROM" ; \ 339 echo "... with 4 MB Flash, 16 MB SDRAM, 32 kB EEPROM" ; \
340 } 340 }
341 @[ -z "$(findstring AB,$@)" ] || \ 341 @[ -z "$(findstring AB,$@)" ] || \
342 { echo "#define CONFIG_TQM5200_AB" >>include/config.h ; \ 342 { echo "#define CONFIG_TQM5200_AB" >>include/config.h ; \
343 echo "... with 64 MB Flash, 64 MB SDRAM, 32 kB EEPROM, 512 kB SRAM" ; \ 343 echo "... with 64 MB Flash, 64 MB SDRAM, 32 kB EEPROM, 512 kB SRAM" ; \
344 echo "... with Graphics Controller"; \ 344 echo "... with Graphics Controller"; \
345 } 345 }
346 @[ -z "$(findstring AC,$@)" ] || \ 346 @[ -z "$(findstring AC,$@)" ] || \
347 { echo "#define CONFIG_TQM5200_AC" >>include/config.h ; \ 347 { echo "#define CONFIG_TQM5200_AC" >>include/config.h ; \
348 echo "... with 4 MB Flash, 128 MB SDRAM" ; \ 348 echo "... with 4 MB Flash, 128 MB SDRAM" ; \
349 echo "... with Graphics Controller"; \ 349 echo "... with Graphics Controller"; \
350 } 350 }
351 @[ -z "$(findstring auto,$@)" ] || \ 351 @[ -z "$(findstring auto,$@)" ] || \
352 { echo "#define CONFIG_CS_AUTOCONF" >>include/config.h ; \ 352 { echo "#define CONFIG_CS_AUTOCONF" >>include/config.h ; \
353 echo "... with automatic CS configuration" ; \ 353 echo "... with automatic CS configuration" ; \
354 } 354 }
355 @./mkconfig -a TQM5200 ppc mpc5xxx tqm5200 355 @./mkconfig -a TQM5200 ppc mpc5xxx tqm5200
356 356
357 ######################################################################### 357 #########################################################################
358 ## MPC8xx Systems 358 ## MPC8xx Systems
359 ######################################################################### 359 #########################################################################
360 360
361 Adder_config \ 361 Adder_config \
362 Adder87x_config \ 362 Adder87x_config \
363 AdderII_config \ 363 AdderII_config \
364 : unconfig 364 : unconfig
365 $(if $(findstring AdderII,$@), \ 365 $(if $(findstring AdderII,$@), \
366 @echo "#define CONFIG_MPC852T" > include/config.h) 366 @echo "#define CONFIG_MPC852T" > include/config.h)
367 @./mkconfig -a Adder ppc mpc8xx adder 367 @./mkconfig -a Adder ppc mpc8xx adder
368 368
369 ADS860_config \ 369 ADS860_config \
370 FADS823_config \ 370 FADS823_config \
371 FADS850SAR_config \ 371 FADS850SAR_config \
372 MPC86xADS_config \ 372 MPC86xADS_config \
373 MPC885ADS_config \ 373 MPC885ADS_config \
374 FADS860T_config: unconfig 374 FADS860T_config: unconfig
375 @./mkconfig $(@:_config=) ppc mpc8xx fads 375 @./mkconfig $(@:_config=) ppc mpc8xx fads
376 376
377 AMX860_config : unconfig 377 AMX860_config : unconfig
378 @./mkconfig $(@:_config=) ppc mpc8xx amx860 westel 378 @./mkconfig $(@:_config=) ppc mpc8xx amx860 westel
379 379
380 c2mon_config: unconfig 380 c2mon_config: unconfig
381 @./mkconfig $(@:_config=) ppc mpc8xx c2mon 381 @./mkconfig $(@:_config=) ppc mpc8xx c2mon
382 382
383 CCM_config: unconfig 383 CCM_config: unconfig
384 @./mkconfig $(@:_config=) ppc mpc8xx CCM siemens 384 @./mkconfig $(@:_config=) ppc mpc8xx CCM siemens
385 385
386 cogent_mpc8xx_config: unconfig 386 cogent_mpc8xx_config: unconfig
387 @./mkconfig $(@:_config=) ppc mpc8xx cogent 387 @./mkconfig $(@:_config=) ppc mpc8xx cogent
388 388
389 ELPT860_config: unconfig 389 ELPT860_config: unconfig
390 @./mkconfig $(@:_config=) ppc mpc8xx elpt860 LEOX 390 @./mkconfig $(@:_config=) ppc mpc8xx elpt860 LEOX
391 391
392 ESTEEM192E_config: unconfig 392 ESTEEM192E_config: unconfig
393 @./mkconfig $(@:_config=) ppc mpc8xx esteem192e 393 @./mkconfig $(@:_config=) ppc mpc8xx esteem192e
394 394
395 ETX094_config : unconfig 395 ETX094_config : unconfig
396 @./mkconfig $(@:_config=) ppc mpc8xx etx094 396 @./mkconfig $(@:_config=) ppc mpc8xx etx094
397 397
398 FLAGADM_config: unconfig 398 FLAGADM_config: unconfig
399 @./mkconfig $(@:_config=) ppc mpc8xx flagadm 399 @./mkconfig $(@:_config=) ppc mpc8xx flagadm
400 400
401 xtract_GEN860T = $(subst _SC,,$(subst _config,,$1)) 401 xtract_GEN860T = $(subst _SC,,$(subst _config,,$1))
402 402
403 GEN860T_SC_config \ 403 GEN860T_SC_config \
404 GEN860T_config: unconfig 404 GEN860T_config: unconfig
405 @ >include/config.h 405 @ >include/config.h
406 @[ -z "$(findstring _SC,$@)" ] || \ 406 @[ -z "$(findstring _SC,$@)" ] || \
407 { echo "#define CONFIG_SC" >>include/config.h ; \ 407 { echo "#define CONFIG_SC" >>include/config.h ; \
408 echo "With reduced H/W feature set (SC)..." ; \ 408 echo "With reduced H/W feature set (SC)..." ; \
409 } 409 }
410 @./mkconfig -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t 410 @./mkconfig -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t
411 411
412 GENIETV_config: unconfig 412 GENIETV_config: unconfig
413 @./mkconfig $(@:_config=) ppc mpc8xx genietv 413 @./mkconfig $(@:_config=) ppc mpc8xx genietv
414 414
415 GTH_config: unconfig 415 GTH_config: unconfig
416 @./mkconfig $(@:_config=) ppc mpc8xx gth 416 @./mkconfig $(@:_config=) ppc mpc8xx gth
417 417
418 hermes_config : unconfig 418 hermes_config : unconfig
419 @./mkconfig $(@:_config=) ppc mpc8xx hermes 419 @./mkconfig $(@:_config=) ppc mpc8xx hermes
420 420
421 HMI10_config : unconfig 421 HMI10_config : unconfig
422 @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx 422 @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx
423 423
424 IAD210_config: unconfig 424 IAD210_config: unconfig
425 @./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens 425 @./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens
426 426
427 xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1)) 427 xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1))
428 428
429 ICU862_100MHz_config \ 429 ICU862_100MHz_config \
430 ICU862_config: unconfig 430 ICU862_config: unconfig
431 @ >include/config.h 431 @ >include/config.h
432 @[ -z "$(findstring _100MHz,$@)" ] || \ 432 @[ -z "$(findstring _100MHz,$@)" ] || \
433 { echo "#define CONFIG_100MHz" >>include/config.h ; \ 433 { echo "#define CONFIG_100MHz" >>include/config.h ; \
434 echo "... with 100MHz system clock" ; \ 434 echo "... with 100MHz system clock" ; \
435 } 435 }
436 @./mkconfig -a $(call xtract_ICU862,$@) ppc mpc8xx icu862 436 @./mkconfig -a $(call xtract_ICU862,$@) ppc mpc8xx icu862
437 437
438 IP860_config : unconfig 438 IP860_config : unconfig
439 @./mkconfig $(@:_config=) ppc mpc8xx ip860 439 @./mkconfig $(@:_config=) ppc mpc8xx ip860
440 440
441 IVML24_256_config \ 441 IVML24_256_config \
442 IVML24_128_config \ 442 IVML24_128_config \
443 IVML24_config: unconfig 443 IVML24_config: unconfig
444 @ >include/config.h 444 @ >include/config.h
445 @[ -z "$(findstring IVML24_config,$@)" ] || \ 445 @[ -z "$(findstring IVML24_config,$@)" ] || \
446 { echo "#define CONFIG_IVML24_16M" >>include/config.h ; \ 446 { echo "#define CONFIG_IVML24_16M" >>include/config.h ; \
447 } 447 }
448 @[ -z "$(findstring IVML24_128_config,$@)" ] || \ 448 @[ -z "$(findstring IVML24_128_config,$@)" ] || \
449 { echo "#define CONFIG_IVML24_32M" >>include/config.h ; \ 449 { echo "#define CONFIG_IVML24_32M" >>include/config.h ; \
450 } 450 }
451 @[ -z "$(findstring IVML24_256_config,$@)" ] || \ 451 @[ -z "$(findstring IVML24_256_config,$@)" ] || \
452 { echo "#define CONFIG_IVML24_64M" >>include/config.h ; \ 452 { echo "#define CONFIG_IVML24_64M" >>include/config.h ; \
453 } 453 }
454 @./mkconfig -a IVML24 ppc mpc8xx ivm 454 @./mkconfig -a IVML24 ppc mpc8xx ivm
455 455
456 IVMS8_256_config \ 456 IVMS8_256_config \
457 IVMS8_128_config \ 457 IVMS8_128_config \
458 IVMS8_config: unconfig 458 IVMS8_config: unconfig
459 @ >include/config.h 459 @ >include/config.h
460 @[ -z "$(findstring IVMS8_config,$@)" ] || \ 460 @[ -z "$(findstring IVMS8_config,$@)" ] || \
461 { echo "#define CONFIG_IVMS8_16M" >>include/config.h ; \ 461 { echo "#define CONFIG_IVMS8_16M" >>include/config.h ; \
462 } 462 }
463 @[ -z "$(findstring IVMS8_128_config,$@)" ] || \ 463 @[ -z "$(findstring IVMS8_128_config,$@)" ] || \
464 { echo "#define CONFIG_IVMS8_32M" >>include/config.h ; \ 464 { echo "#define CONFIG_IVMS8_32M" >>include/config.h ; \
465 } 465 }
466 @[ -z "$(findstring IVMS8_256_config,$@)" ] || \ 466 @[ -z "$(findstring IVMS8_256_config,$@)" ] || \
467 { echo "#define CONFIG_IVMS8_64M" >>include/config.h ; \ 467 { echo "#define CONFIG_IVMS8_64M" >>include/config.h ; \
468 } 468 }
469 @./mkconfig -a IVMS8 ppc mpc8xx ivm 469 @./mkconfig -a IVMS8 ppc mpc8xx ivm
470 470
471 KUP4K_config : unconfig 471 KUP4K_config : unconfig
472 @./mkconfig $(@:_config=) ppc mpc8xx kup4k kup 472 @./mkconfig $(@:_config=) ppc mpc8xx kup4k kup
473 473
474 KUP4X_config : unconfig 474 KUP4X_config : unconfig
475 @./mkconfig $(@:_config=) ppc mpc8xx kup4x kup 475 @./mkconfig $(@:_config=) ppc mpc8xx kup4x kup
476 476
477 LANTEC_config : unconfig 477 LANTEC_config : unconfig
478 @./mkconfig $(@:_config=) ppc mpc8xx lantec 478 @./mkconfig $(@:_config=) ppc mpc8xx lantec
479 479
480 lwmon_config: unconfig 480 lwmon_config: unconfig
481 @./mkconfig $(@:_config=) ppc mpc8xx lwmon 481 @./mkconfig $(@:_config=) ppc mpc8xx lwmon
482 482
483 MBX_config \ 483 MBX_config \
484 MBX860T_config: unconfig 484 MBX860T_config: unconfig
485 @./mkconfig $(@:_config=) ppc mpc8xx mbx8xx 485 @./mkconfig $(@:_config=) ppc mpc8xx mbx8xx
486 486
487 MHPC_config: unconfig 487 MHPC_config: unconfig
488 @./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec 488 @./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec
489 489
490 MVS1_config : unconfig 490 MVS1_config : unconfig
491 @./mkconfig $(@:_config=) ppc mpc8xx mvs1 491 @./mkconfig $(@:_config=) ppc mpc8xx mvs1
492 492
493 xtract_NETVIA = $(subst _V2,,$(subst _config,,$1)) 493 xtract_NETVIA = $(subst _V2,,$(subst _config,,$1))
494 494
495 NETVIA_V2_config \ 495 NETVIA_V2_config \
496 NETVIA_config: unconfig 496 NETVIA_config: unconfig
497 @ >include/config.h 497 @ >include/config.h
498 @[ -z "$(findstring NETVIA_config,$@)" ] || \ 498 @[ -z "$(findstring NETVIA_config,$@)" ] || \
499 { echo "#define CONFIG_NETVIA_VERSION 1" >>include/config.h ; \ 499 { echo "#define CONFIG_NETVIA_VERSION 1" >>include/config.h ; \
500 echo "... Version 1" ; \ 500 echo "... Version 1" ; \
501 } 501 }
502 @[ -z "$(findstring NETVIA_V2_config,$@)" ] || \ 502 @[ -z "$(findstring NETVIA_V2_config,$@)" ] || \
503 { echo "#define CONFIG_NETVIA_VERSION 2" >>include/config.h ; \ 503 { echo "#define CONFIG_NETVIA_VERSION 2" >>include/config.h ; \
504 echo "... Version 2" ; \ 504 echo "... Version 2" ; \
505 } 505 }
506 @./mkconfig -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia 506 @./mkconfig -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia
507 507
508 xtract_NETPHONE = $(subst _V2,,$(subst _config,,$1)) 508 xtract_NETPHONE = $(subst _V2,,$(subst _config,,$1))
509 509
510 NETPHONE_V2_config \ 510 NETPHONE_V2_config \
511 NETPHONE_config: unconfig 511 NETPHONE_config: unconfig
512 @ >include/config.h 512 @ >include/config.h
513 @[ -z "$(findstring NETPHONE_config,$@)" ] || \ 513 @[ -z "$(findstring NETPHONE_config,$@)" ] || \
514 { echo "#define CONFIG_NETPHONE_VERSION 1" >>include/config.h ; \ 514 { echo "#define CONFIG_NETPHONE_VERSION 1" >>include/config.h ; \
515 } 515 }
516 @[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \ 516 @[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \
517 { echo "#define CONFIG_NETPHONE_VERSION 2" >>include/config.h ; \ 517 { echo "#define CONFIG_NETPHONE_VERSION 2" >>include/config.h ; \
518 } 518 }
519 @./mkconfig -a $(call xtract_NETPHONE,$@) ppc mpc8xx netphone 519 @./mkconfig -a $(call xtract_NETPHONE,$@) ppc mpc8xx netphone
520 520
521 xtract_NETTA = $(subst _SWAPHOOK,,$(subst _6412,,$(subst _ISDN,,$(subst _config,,$1)))) 521 xtract_NETTA = $(subst _SWAPHOOK,,$(subst _6412,,$(subst _ISDN,,$(subst _config,,$1))))
522 522
523 NETTA_ISDN_6412_SWAPHOOK_config \ 523 NETTA_ISDN_6412_SWAPHOOK_config \
524 NETTA_ISDN_SWAPHOOK_config \ 524 NETTA_ISDN_SWAPHOOK_config \
525 NETTA_6412_SWAPHOOK_config \ 525 NETTA_6412_SWAPHOOK_config \
526 NETTA_SWAPHOOK_config \ 526 NETTA_SWAPHOOK_config \
527 NETTA_ISDN_6412_config \ 527 NETTA_ISDN_6412_config \
528 NETTA_ISDN_config \ 528 NETTA_ISDN_config \
529 NETTA_6412_config \ 529 NETTA_6412_config \
530 NETTA_config: unconfig 530 NETTA_config: unconfig
531 @ >include/config.h 531 @ >include/config.h
532 @[ -z "$(findstring ISDN_,$@)" ] || \ 532 @[ -z "$(findstring ISDN_,$@)" ] || \
533 { echo "#define CONFIG_NETTA_ISDN 1" >>include/config.h ; \ 533 { echo "#define CONFIG_NETTA_ISDN 1" >>include/config.h ; \
534 } 534 }
535 @[ -n "$(findstring ISDN_,$@)" ] || \ 535 @[ -n "$(findstring ISDN_,$@)" ] || \
536 { echo "#undef CONFIG_NETTA_ISDN" >>include/config.h ; \ 536 { echo "#undef CONFIG_NETTA_ISDN" >>include/config.h ; \
537 } 537 }
538 @[ -z "$(findstring 6412_,$@)" ] || \ 538 @[ -z "$(findstring 6412_,$@)" ] || \
539 { echo "#define CONFIG_NETTA_6412 1" >>include/config.h ; \ 539 { echo "#define CONFIG_NETTA_6412 1" >>include/config.h ; \
540 } 540 }
541 @[ -n "$(findstring 6412_,$@)" ] || \ 541 @[ -n "$(findstring 6412_,$@)" ] || \
542 { echo "#undef CONFIG_NETTA_6412" >>include/config.h ; \ 542 { echo "#undef CONFIG_NETTA_6412" >>include/config.h ; \
543 } 543 }
544 @[ -z "$(findstring SWAPHOOK_,$@)" ] || \ 544 @[ -z "$(findstring SWAPHOOK_,$@)" ] || \
545 { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>include/config.h ; \ 545 { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>include/config.h ; \
546 } 546 }
547 @[ -n "$(findstring SWAPHOOK_,$@)" ] || \ 547 @[ -n "$(findstring SWAPHOOK_,$@)" ] || \
548 { echo "#undef CONFIG_NETTA_SWAPHOOK" >>include/config.h ; \ 548 { echo "#undef CONFIG_NETTA_SWAPHOOK" >>include/config.h ; \
549 } 549 }
550 @./mkconfig -a $(call xtract_NETTA,$@) ppc mpc8xx netta 550 @./mkconfig -a $(call xtract_NETTA,$@) ppc mpc8xx netta
551 551
552 xtract_NETTA2 = $(subst _V2,,$(subst _config,,$1)) 552 xtract_NETTA2 = $(subst _V2,,$(subst _config,,$1))
553 553
554 NETTA2_V2_config \ 554 NETTA2_V2_config \
555 NETTA2_config: unconfig 555 NETTA2_config: unconfig
556 @ >include/config.h 556 @ >include/config.h
557 @[ -z "$(findstring NETTA2_config,$@)" ] || \ 557 @[ -z "$(findstring NETTA2_config,$@)" ] || \
558 { echo "#define CONFIG_NETTA2_VERSION 1" >>include/config.h ; \ 558 { echo "#define CONFIG_NETTA2_VERSION 1" >>include/config.h ; \
559 } 559 }
560 @[ -z "$(findstring NETTA2_V2_config,$@)" ] || \ 560 @[ -z "$(findstring NETTA2_V2_config,$@)" ] || \
561 { echo "#define CONFIG_NETTA2_VERSION 2" >>include/config.h ; \ 561 { echo "#define CONFIG_NETTA2_VERSION 2" >>include/config.h ; \
562 } 562 }
563 @./mkconfig -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2 563 @./mkconfig -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2
564 564
565 NC650_config: unconfig 565 NC650_config: unconfig
566 @./mkconfig $(@:_config=) ppc mpc8xx nc650 566 @./mkconfig $(@:_config=) ppc mpc8xx nc650
567 567
568 NX823_config: unconfig 568 NX823_config: unconfig
569 @./mkconfig $(@:_config=) ppc mpc8xx nx823 569 @./mkconfig $(@:_config=) ppc mpc8xx nx823
570 570
571 pcu_e_config: unconfig 571 pcu_e_config: unconfig
572 @./mkconfig $(@:_config=) ppc mpc8xx pcu_e siemens 572 @./mkconfig $(@:_config=) ppc mpc8xx pcu_e siemens
573 573
574 QS850_config: unconfig 574 QS850_config: unconfig
575 @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc 575 @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc
576 576
577 QS823_config: unconfig 577 QS823_config: unconfig
578 @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc 578 @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc
579 579
580 QS860T_config: unconfig 580 QS860T_config: unconfig
581 @./mkconfig $(@:_config=) ppc mpc8xx qs860t snmc 581 @./mkconfig $(@:_config=) ppc mpc8xx qs860t snmc
582 582
583 quantum_config: unconfig 583 quantum_config: unconfig
584 @./mkconfig $(@:_config=) ppc mpc8xx quantum 584 @./mkconfig $(@:_config=) ppc mpc8xx quantum
585 585
586 R360MPI_config: unconfig 586 R360MPI_config: unconfig
587 @./mkconfig $(@:_config=) ppc mpc8xx r360mpi 587 @./mkconfig $(@:_config=) ppc mpc8xx r360mpi
588 588
589 RBC823_config: unconfig 589 RBC823_config: unconfig
590 @./mkconfig $(@:_config=) ppc mpc8xx rbc823 590 @./mkconfig $(@:_config=) ppc mpc8xx rbc823
591 591
592 RPXClassic_config: unconfig 592 RPXClassic_config: unconfig
593 @./mkconfig $(@:_config=) ppc mpc8xx RPXClassic 593 @./mkconfig $(@:_config=) ppc mpc8xx RPXClassic
594 594
595 RPXlite_config: unconfig 595 RPXlite_config: unconfig
596 @./mkconfig $(@:_config=) ppc mpc8xx RPXlite 596 @./mkconfig $(@:_config=) ppc mpc8xx RPXlite
597 597
598 RPXlite_DW_64_config \ 598 RPXlite_DW_64_config \
599 RPXlite_DW_LCD_config \ 599 RPXlite_DW_LCD_config \
600 RPXlite_DW_64_LCD_config \ 600 RPXlite_DW_64_LCD_config \
601 RPXlite_DW_NVRAM_config \ 601 RPXlite_DW_NVRAM_config \
602 RPXlite_DW_NVRAM_64_config \ 602 RPXlite_DW_NVRAM_64_config \
603 RPXlite_DW_NVRAM_LCD_config \ 603 RPXlite_DW_NVRAM_LCD_config \
604 RPXlite_DW_NVRAM_64_LCD_config \ 604 RPXlite_DW_NVRAM_64_LCD_config \
605 RPXlite_DW_config: unconfig 605 RPXlite_DW_config: unconfig
606 @ >include/config.h 606 @ >include/config.h
607 @[ -z "$(findstring _64,$@)" ] || \ 607 @[ -z "$(findstring _64,$@)" ] || \
608 { echo "#define RPXlite_64MHz" >>include/config.h ; \ 608 { echo "#define RPXlite_64MHz" >>include/config.h ; \
609 echo "... with 64MHz system clock ..."; \ 609 echo "... with 64MHz system clock ..."; \
610 } 610 }
611 @[ -z "$(findstring _LCD,$@)" ] || \ 611 @[ -z "$(findstring _LCD,$@)" ] || \
612 { echo "#define CONFIG_LCD" >>include/config.h ; \ 612 { echo "#define CONFIG_LCD" >>include/config.h ; \
613 echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \ 613 echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \
614 echo "... with LCD display ..."; \ 614 echo "... with LCD display ..."; \
615 } 615 }
616 @[ -z "$(findstring _NVRAM,$@)" ] || \ 616 @[ -z "$(findstring _NVRAM,$@)" ] || \
617 { echo "#define CFG_ENV_IS_IN_NVRAM" >>include/config.h ; \ 617 { echo "#define CFG_ENV_IS_IN_NVRAM" >>include/config.h ; \
618 echo "... with ENV in NVRAM ..."; \ 618 echo "... with ENV in NVRAM ..."; \
619 } 619 }
620 @./mkconfig -a RPXlite_DW ppc mpc8xx RPXlite_dw 620 @./mkconfig -a RPXlite_DW ppc mpc8xx RPXlite_dw
621 621
622 rmu_config: unconfig 622 rmu_config: unconfig
623 @./mkconfig $(@:_config=) ppc mpc8xx rmu 623 @./mkconfig $(@:_config=) ppc mpc8xx rmu
624 624
625 RRvision_config: unconfig 625 RRvision_config: unconfig
626 @./mkconfig $(@:_config=) ppc mpc8xx RRvision 626 @./mkconfig $(@:_config=) ppc mpc8xx RRvision
627 627
628 RRvision_LCD_config: unconfig 628 RRvision_LCD_config: unconfig
629 @echo "#define CONFIG_LCD" >include/config.h 629 @echo "#define CONFIG_LCD" >include/config.h
630 @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h 630 @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
631 @./mkconfig -a RRvision ppc mpc8xx RRvision 631 @./mkconfig -a RRvision ppc mpc8xx RRvision
632 632
633 SM850_config : unconfig 633 SM850_config : unconfig
634 @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx 634 @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx
635 635
636 SPD823TS_config: unconfig 636 SPD823TS_config: unconfig
637 @./mkconfig $(@:_config=) ppc mpc8xx spd8xx 637 @./mkconfig $(@:_config=) ppc mpc8xx spd8xx
638 638
639 svm_sc8xx_config: unconfig 639 svm_sc8xx_config: unconfig
640 @ >include/config.h 640 @ >include/config.h
641 @./mkconfig $(@:_config=) ppc mpc8xx svm_sc8xx 641 @./mkconfig $(@:_config=) ppc mpc8xx svm_sc8xx
642 642
643 SXNI855T_config: unconfig 643 SXNI855T_config: unconfig
644 @./mkconfig $(@:_config=) ppc mpc8xx sixnet 644 @./mkconfig $(@:_config=) ppc mpc8xx sixnet
645 645
646 # EMK MPC8xx based modules 646 # EMK MPC8xx based modules
647 TOP860_config: unconfig 647 TOP860_config: unconfig
648 @./mkconfig $(@:_config=) ppc mpc8xx top860 emk 648 @./mkconfig $(@:_config=) ppc mpc8xx top860 emk
649 649
650 # Play some tricks for configuration selection 650 # Play some tricks for configuration selection
651 # Only 855 and 860 boards may come with FEC 651 # Only 855 and 860 boards may come with FEC
652 # and only 823 boards may have LCD support 652 # and only 823 boards may have LCD support
653 xtract_8xx = $(subst _LCD,,$(subst _config,,$1)) 653 xtract_8xx = $(subst _LCD,,$(subst _config,,$1))
654 654
655 FPS850L_config \ 655 FPS850L_config \
656 FPS860L_config \ 656 FPS860L_config \
657 NSCU_config \ 657 NSCU_config \
658 TQM823L_config \ 658 TQM823L_config \
659 TQM823L_LCD_config \ 659 TQM823L_LCD_config \
660 TQM850L_config \ 660 TQM850L_config \
661 TQM855L_config \ 661 TQM855L_config \
662 TQM860L_config \ 662 TQM860L_config \
663 TQM862L_config \ 663 TQM862L_config \
664 TQM823M_config \ 664 TQM823M_config \
665 TQM850M_config \ 665 TQM850M_config \
666 TQM855M_config \ 666 TQM855M_config \
667 TQM860M_config \ 667 TQM860M_config \
668 TQM862M_config \ 668 TQM862M_config \
669 TQM866M_config: unconfig 669 TQM866M_config: unconfig
670 @ >include/config.h 670 @ >include/config.h
671 @[ -z "$(findstring _LCD,$@)" ] || \ 671 @[ -z "$(findstring _LCD,$@)" ] || \
672 { echo "#define CONFIG_LCD" >>include/config.h ; \ 672 { echo "#define CONFIG_LCD" >>include/config.h ; \
673 echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \ 673 echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \
674 echo "... with LCD display" ; \ 674 echo "... with LCD display" ; \
675 } 675 }
676 @./mkconfig -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx 676 @./mkconfig -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx
677 677
678 TTTech_config: unconfig 678 TTTech_config: unconfig
679 @echo "#define CONFIG_LCD" >include/config.h 679 @echo "#define CONFIG_LCD" >include/config.h
680 @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h 680 @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
681 @./mkconfig -a TQM823L ppc mpc8xx tqm8xx 681 @./mkconfig -a TQM823L ppc mpc8xx tqm8xx
682 682
683 uc100_config : unconfig 683 uc100_config : unconfig
684 @./mkconfig $(@:_config=) ppc mpc8xx uc100 684 @./mkconfig $(@:_config=) ppc mpc8xx uc100
685 685
686 v37_config: unconfig 686 v37_config: unconfig
687 @echo "#define CONFIG_LCD" >include/config.h 687 @echo "#define CONFIG_LCD" >include/config.h
688 @echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h 688 @echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h
689 @./mkconfig $(@:_config=) ppc mpc8xx v37 689 @./mkconfig $(@:_config=) ppc mpc8xx v37
690 690
691 wtk_config: unconfig 691 wtk_config: unconfig
692 @echo "#define CONFIG_LCD" >include/config.h 692 @echo "#define CONFIG_LCD" >include/config.h
693 @echo "#define CONFIG_SHARP_LQ065T9DR51U" >>include/config.h 693 @echo "#define CONFIG_SHARP_LQ065T9DR51U" >>include/config.h
694 @./mkconfig -a TQM823L ppc mpc8xx tqm8xx 694 @./mkconfig -a TQM823L ppc mpc8xx tqm8xx
695 695
696 ######################################################################### 696 #########################################################################
697 ## PPC4xx Systems 697 ## PPC4xx Systems
698 ######################################################################### 698 #########################################################################
699 xtract_4xx = $(subst _25,,$(subst _33,,$(subst _BA,,$(subst _ME,,$(subst _HI,,$(subst _config,,$1)))))) 699 xtract_4xx = $(subst _25,,$(subst _33,,$(subst _BA,,$(subst _ME,,$(subst _HI,,$(subst _config,,$1))))))
700 700
701 ADCIOP_config: unconfig 701 ADCIOP_config: unconfig
702 @./mkconfig $(@:_config=) ppc ppc4xx adciop esd 702 @./mkconfig $(@:_config=) ppc ppc4xx adciop esd
703 703
704 APC405_config: unconfig 704 APC405_config: unconfig
705 @./mkconfig $(@:_config=) ppc ppc4xx apc405 esd 705 @./mkconfig $(@:_config=) ppc ppc4xx apc405 esd
706 706
707 AR405_config: unconfig 707 AR405_config: unconfig
708 @./mkconfig $(@:_config=) ppc ppc4xx ar405 esd 708 @./mkconfig $(@:_config=) ppc ppc4xx ar405 esd
709 709
710 ASH405_config: unconfig 710 ASH405_config: unconfig
711 @./mkconfig $(@:_config=) ppc ppc4xx ash405 esd 711 @./mkconfig $(@:_config=) ppc ppc4xx ash405 esd
712 712
713 bamboo_config: unconfig 713 bamboo_config: unconfig
714 @./mkconfig $(@:_config=) ppc ppc4xx bamboo amcc 714 @./mkconfig $(@:_config=) ppc ppc4xx bamboo amcc
715 715
716 bubinga_config: unconfig 716 bubinga_config: unconfig
717 @./mkconfig $(@:_config=) ppc ppc4xx bubinga amcc 717 @./mkconfig $(@:_config=) ppc ppc4xx bubinga amcc
718 718
719 CANBT_config: unconfig 719 CANBT_config: unconfig
720 @./mkconfig $(@:_config=) ppc ppc4xx canbt esd 720 @./mkconfig $(@:_config=) ppc ppc4xx canbt esd
721 721
722 CATcenter_config \ 722 CATcenter_config \
723 CATcenter_25_config \ 723 CATcenter_25_config \
724 CATcenter_33_config: unconfig 724 CATcenter_33_config: unconfig
725 @ echo "/* CATcenter uses PPChameleon Model ME */" > include/config.h 725 @ echo "/* CATcenter uses PPChameleon Model ME */" > include/config.h
726 @ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >> include/config.h 726 @ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >> include/config.h
727 @[ -z "$(findstring _25,$@)" ] || \ 727 @[ -z "$(findstring _25,$@)" ] || \
728 { echo "#define CONFIG_PPCHAMELEON_CLK_25" >>include/config.h ; \ 728 { echo "#define CONFIG_PPCHAMELEON_CLK_25" >>include/config.h ; \
729 echo "SysClk = 25MHz" ; \ 729 echo "SysClk = 25MHz" ; \
730 } 730 }
731 @[ -z "$(findstring _33,$@)" ] || \ 731 @[ -z "$(findstring _33,$@)" ] || \
732 { echo "#define CONFIG_PPCHAMELEON_CLK_33" >>include/config.h ; \ 732 { echo "#define CONFIG_PPCHAMELEON_CLK_33" >>include/config.h ; \
733 echo "SysClk = 33MHz" ; \ 733 echo "SysClk = 33MHz" ; \
734 } 734 }
735 @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave 735 @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave
736 736
737 CPCI405_config \ 737 CPCI405_config \
738 CPCI4052_config \ 738 CPCI4052_config \
739 CPCI405DT_config \ 739 CPCI405DT_config \
740 CPCI405AB_config: unconfig 740 CPCI405AB_config: unconfig
741 @./mkconfig $(@:_config=) ppc ppc4xx cpci405 esd 741 @./mkconfig $(@:_config=) ppc ppc4xx cpci405 esd
742 @echo "BOARD_REVISION = $(@:_config=)" >>include/config.mk 742 @echo "BOARD_REVISION = $(@:_config=)" >>include/config.mk
743 743
744 CPCI440_config: unconfig 744 CPCI440_config: unconfig
745 @./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd 745 @./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd
746 746
747 CPCIISER4_config: unconfig 747 CPCIISER4_config: unconfig
748 @./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd 748 @./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd
749 749
750 CRAYL1_config: unconfig 750 CRAYL1_config: unconfig
751 @./mkconfig $(@:_config=) ppc ppc4xx L1 cray 751 @./mkconfig $(@:_config=) ppc ppc4xx L1 cray
752 752
753 csb272_config: unconfig 753 csb272_config: unconfig
754 @./mkconfig $(@:_config=) ppc ppc4xx csb272 754 @./mkconfig $(@:_config=) ppc ppc4xx csb272
755 755
756 csb472_config: unconfig 756 csb472_config: unconfig
757 @./mkconfig $(@:_config=) ppc ppc4xx csb472 757 @./mkconfig $(@:_config=) ppc ppc4xx csb472
758 758
759 DASA_SIM_config: unconfig 759 DASA_SIM_config: unconfig
760 @./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd 760 @./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd
761 761
762 DP405_config: unconfig 762 DP405_config: unconfig
763 @./mkconfig $(@:_config=) ppc ppc4xx dp405 esd 763 @./mkconfig $(@:_config=) ppc ppc4xx dp405 esd
764 764
765 DU405_config: unconfig 765 DU405_config: unconfig
766 @./mkconfig $(@:_config=) ppc ppc4xx du405 esd 766 @./mkconfig $(@:_config=) ppc ppc4xx du405 esd
767 767
768 ebony_config: unconfig 768 ebony_config: unconfig
769 @./mkconfig $(@:_config=) ppc ppc4xx ebony amcc 769 @./mkconfig $(@:_config=) ppc ppc4xx ebony amcc
770 770
771 ERIC_config: unconfig 771 ERIC_config: unconfig
772 @./mkconfig $(@:_config=) ppc ppc4xx eric 772 @./mkconfig $(@:_config=) ppc ppc4xx eric
773 773
774 EXBITGEN_config: unconfig 774 EXBITGEN_config: unconfig
775 @./mkconfig $(@:_config=) ppc ppc4xx exbitgen 775 @./mkconfig $(@:_config=) ppc ppc4xx exbitgen
776 776
777 G2000_config: unconfig 777 G2000_config: unconfig
778 @./mkconfig $(@:_config=) ppc ppc4xx g2000 778 @./mkconfig $(@:_config=) ppc ppc4xx g2000
779 779
780 HH405_config: unconfig 780 HH405_config: unconfig
781 @./mkconfig $(@:_config=) ppc ppc4xx hh405 esd 781 @./mkconfig $(@:_config=) ppc ppc4xx hh405 esd
782 782
783 HUB405_config: unconfig 783 HUB405_config: unconfig
784 @./mkconfig $(@:_config=) ppc ppc4xx hub405 esd 784 @./mkconfig $(@:_config=) ppc ppc4xx hub405 esd
785 785
786 JSE_config: unconfig 786 JSE_config: unconfig
787 @./mkconfig $(@:_config=) ppc ppc4xx jse 787 @./mkconfig $(@:_config=) ppc ppc4xx jse
788 788
789 MIP405_config: unconfig 789 MIP405_config: unconfig
790 @./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl 790 @./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl
791 791
792 MIP405T_config: unconfig 792 MIP405T_config: unconfig
793 @echo "#define CONFIG_MIP405T" >include/config.h 793 @echo "#define CONFIG_MIP405T" >include/config.h
794 @echo "Enable subset config for MIP405T" 794 @echo "Enable subset config for MIP405T"
795 @./mkconfig -a MIP405 ppc ppc4xx mip405 mpl 795 @./mkconfig -a MIP405 ppc ppc4xx mip405 mpl
796 796
797 ML2_config: unconfig 797 ML2_config: unconfig
798 @./mkconfig $(@:_config=) ppc ppc4xx ml2 798 @./mkconfig $(@:_config=) ppc ppc4xx ml2
799 799
800 ml300_config: unconfig 800 ml300_config: unconfig
801 @./mkconfig $(@:_config=) ppc ppc4xx ml300 xilinx 801 @./mkconfig $(@:_config=) ppc ppc4xx ml300 xilinx
802 802
803 ocotea_config: unconfig 803 ocotea_config: unconfig
804 @./mkconfig $(@:_config=) ppc ppc4xx ocotea amcc 804 @./mkconfig $(@:_config=) ppc ppc4xx ocotea amcc
805 805
806 OCRTC_config \ 806 OCRTC_config \
807 ORSG_config: unconfig 807 ORSG_config: unconfig
808 @./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd 808 @./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd
809 809
810 PCI405_config: unconfig 810 PCI405_config: unconfig
811 @./mkconfig $(@:_config=) ppc ppc4xx pci405 esd 811 @./mkconfig $(@:_config=) ppc ppc4xx pci405 esd
812 812
813 PIP405_config: unconfig 813 PIP405_config: unconfig
814 @./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl 814 @./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl
815 815
816 PLU405_config: unconfig 816 PLU405_config: unconfig
817 @./mkconfig $(@:_config=) ppc ppc4xx plu405 esd 817 @./mkconfig $(@:_config=) ppc ppc4xx plu405 esd
818 818
819 PMC405_config: unconfig 819 PMC405_config: unconfig
820 @./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd 820 @./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd
821 821
822 PPChameleonEVB_config \ 822 PPChameleonEVB_config \
823 PPChameleonEVB_BA_25_config \ 823 PPChameleonEVB_BA_25_config \
824 PPChameleonEVB_ME_25_config \ 824 PPChameleonEVB_ME_25_config \
825 PPChameleonEVB_HI_25_config \ 825 PPChameleonEVB_HI_25_config \
826 PPChameleonEVB_BA_33_config \ 826 PPChameleonEVB_BA_33_config \
827 PPChameleonEVB_ME_33_config \ 827 PPChameleonEVB_ME_33_config \
828 PPChameleonEVB_HI_33_config: unconfig 828 PPChameleonEVB_HI_33_config: unconfig
829 @ >include/config.h 829 @ >include/config.h
830 @[ -z "$(findstring EVB_BA,$@)" ] || \ 830 @[ -z "$(findstring EVB_BA,$@)" ] || \
831 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>include/config.h ; \ 831 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>include/config.h ; \
832 echo "... BASIC model" ; \ 832 echo "... BASIC model" ; \
833 } 833 }
834 @[ -z "$(findstring EVB_ME,$@)" ] || \ 834 @[ -z "$(findstring EVB_ME,$@)" ] || \
835 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>include/config.h ; \ 835 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>include/config.h ; \
836 echo "... MEDIUM model" ; \ 836 echo "... MEDIUM model" ; \
837 } 837 }
838 @[ -z "$(findstring EVB_HI,$@)" ] || \ 838 @[ -z "$(findstring EVB_HI,$@)" ] || \
839 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>include/config.h ; \ 839 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>include/config.h ; \
840 echo "... HIGH-END model" ; \ 840 echo "... HIGH-END model" ; \
841 } 841 }
842 @[ -z "$(findstring _25,$@)" ] || \ 842 @[ -z "$(findstring _25,$@)" ] || \
843 { echo "#define CONFIG_PPCHAMELEON_CLK_25" >>include/config.h ; \ 843 { echo "#define CONFIG_PPCHAMELEON_CLK_25" >>include/config.h ; \
844 echo "SysClk = 25MHz" ; \ 844 echo "SysClk = 25MHz" ; \
845 } 845 }
846 @[ -z "$(findstring _33,$@)" ] || \ 846 @[ -z "$(findstring _33,$@)" ] || \
847 { echo "#define CONFIG_PPCHAMELEON_CLK_33" >>include/config.h ; \ 847 { echo "#define CONFIG_PPCHAMELEON_CLK_33" >>include/config.h ; \
848 echo "SysClk = 33MHz" ; \ 848 echo "SysClk = 33MHz" ; \
849 } 849 }
850 @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave 850 @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave
851 851
852 sbc405_config: unconfig 852 sbc405_config: unconfig
853 @./mkconfig $(@:_config=) ppc ppc4xx sbc405 853 @./mkconfig $(@:_config=) ppc ppc4xx sbc405
854 854
855 sycamore_config: unconfig 855 sycamore_config: unconfig
856 @echo "Configuring for sycamore board as subset of walnut..." 856 @echo "Configuring for sycamore board as subset of walnut..."
857 @./mkconfig -a walnut ppc ppc4xx walnut amcc 857 @./mkconfig -a walnut ppc ppc4xx walnut amcc
858 858
859 VOH405_config: unconfig 859 VOH405_config: unconfig
860 @./mkconfig $(@:_config=) ppc ppc4xx voh405 esd 860 @./mkconfig $(@:_config=) ppc ppc4xx voh405 esd
861 861
862 VOM405_config: unconfig 862 VOM405_config: unconfig
863 @./mkconfig $(@:_config=) ppc ppc4xx vom405 esd 863 @./mkconfig $(@:_config=) ppc ppc4xx vom405 esd
864 864
865 W7OLMC_config \ 865 W7OLMC_config \
866 W7OLMG_config: unconfig 866 W7OLMG_config: unconfig
867 @./mkconfig $(@:_config=) ppc ppc4xx w7o 867 @./mkconfig $(@:_config=) ppc ppc4xx w7o
868 868
869 walnut_config: unconfig 869 walnut_config: unconfig
870 @./mkconfig $(@:_config=) ppc ppc4xx walnut amcc 870 @./mkconfig $(@:_config=) ppc ppc4xx walnut amcc
871 871
872 WUH405_config: unconfig 872 WUH405_config: unconfig
873 @./mkconfig $(@:_config=) ppc ppc4xx wuh405 esd 873 @./mkconfig $(@:_config=) ppc ppc4xx wuh405 esd
874 874
875 XPEDITE1K_config: unconfig 875 XPEDITE1K_config: unconfig
876 @./mkconfig $(@:_config=) ppc ppc4xx xpedite1k 876 @./mkconfig $(@:_config=) ppc ppc4xx xpedite1k
877 877
878 yosemite_config: unconfig 878 yosemite_config: unconfig
879 @./mkconfig $(@:_config=) ppc ppc4xx yosemite amcc 879 @./mkconfig $(@:_config=) ppc ppc4xx yosemite amcc
880 880
881 yellowstone_config: unconfig 881 yellowstone_config: unconfig
882 @./mkconfig $(@:_config=) ppc ppc4xx yellowstone amcc 882 @./mkconfig $(@:_config=) ppc ppc4xx yellowstone amcc
883 883
884 ######################################################################### 884 #########################################################################
885 ## MPC8220 Systems 885 ## MPC8220 Systems
886 ######################################################################### 886 #########################################################################
887 887
888 Alaska8220_config \ 888 Alaska8220_config \
889 Yukon8220_config: unconfig 889 Yukon8220_config: unconfig
890 @./mkconfig $(@:_config=) ppc mpc8220 alaska 890 @./mkconfig $(@:_config=) ppc mpc8220 alaska
891 891
892 sorcery_config: unconfig 892 sorcery_config: unconfig
893 @./mkconfig $(@:_config=) ppc mpc8220 sorcery 893 @./mkconfig $(@:_config=) ppc mpc8220 sorcery
894 894
895 ######################################################################### 895 #########################################################################
896 ## MPC824x Systems 896 ## MPC824x Systems
897 ######################################################################### 897 #########################################################################
898 xtract_82xx = $(subst _BIGFLASH,,$(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1)))))) 898 xtract_82xx = $(subst _BIGFLASH,,$(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1))))))
899 899
900 A3000_config: unconfig 900 A3000_config: unconfig
901 @./mkconfig $(@:_config=) ppc mpc824x a3000 901 @./mkconfig $(@:_config=) ppc mpc824x a3000
902 902
903 BMW_config: unconfig 903 BMW_config: unconfig
904 @./mkconfig $(@:_config=) ppc mpc824x bmw 904 @./mkconfig $(@:_config=) ppc mpc824x bmw
905 905
906 CPC45_config \ 906 CPC45_config \
907 CPC45_ROMBOOT_config: unconfig 907 CPC45_ROMBOOT_config: unconfig
908 @./mkconfig $(call xtract_82xx,$@) ppc mpc824x cpc45 908 @./mkconfig $(call xtract_82xx,$@) ppc mpc824x cpc45
909 @cd ./include ; \ 909 @cd ./include ; \
910 if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ 910 if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
911 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ 911 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
912 echo "... booting from 8-bit flash" ; \ 912 echo "... booting from 8-bit flash" ; \
913 else \ 913 else \
914 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ 914 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
915 echo "... booting from 64-bit flash" ; \ 915 echo "... booting from 64-bit flash" ; \
916 fi; \ 916 fi; \
917 echo "export CONFIG_BOOT_ROM" >> config.mk; 917 echo "export CONFIG_BOOT_ROM" >> config.mk;
918 918
919 CU824_config: unconfig 919 CU824_config: unconfig
920 @./mkconfig $(@:_config=) ppc mpc824x cu824 920 @./mkconfig $(@:_config=) ppc mpc824x cu824
921 921
922 debris_config: unconfig 922 debris_config: unconfig
923 @./mkconfig $(@:_config=) ppc mpc824x debris etin 923 @./mkconfig $(@:_config=) ppc mpc824x debris etin
924 924
925 eXalion_config: unconfig 925 eXalion_config: unconfig
926 @./mkconfig $(@:_config=) ppc mpc824x eXalion 926 @./mkconfig $(@:_config=) ppc mpc824x eXalion
927 927
928 HIDDEN_DRAGON_config: unconfig 928 HIDDEN_DRAGON_config: unconfig
929 @./mkconfig $(@:_config=) ppc mpc824x hidden_dragon 929 @./mkconfig $(@:_config=) ppc mpc824x hidden_dragon
930 930
931 MOUSSE_config: unconfig 931 MOUSSE_config: unconfig
932 @./mkconfig $(@:_config=) ppc mpc824x mousse 932 @./mkconfig $(@:_config=) ppc mpc824x mousse
933 933
934 MUSENKI_config: unconfig 934 MUSENKI_config: unconfig
935 @./mkconfig $(@:_config=) ppc mpc824x musenki 935 @./mkconfig $(@:_config=) ppc mpc824x musenki
936 936
937 MVBLUE_config: unconfig 937 MVBLUE_config: unconfig
938 @./mkconfig $(@:_config=) ppc mpc824x mvblue 938 @./mkconfig $(@:_config=) ppc mpc824x mvblue
939 939
940 OXC_config: unconfig 940 OXC_config: unconfig
941 @./mkconfig $(@:_config=) ppc mpc824x oxc 941 @./mkconfig $(@:_config=) ppc mpc824x oxc
942 942
943 PN62_config: unconfig 943 PN62_config: unconfig
944 @./mkconfig $(@:_config=) ppc mpc824x pn62 944 @./mkconfig $(@:_config=) ppc mpc824x pn62
945 945
946 Sandpoint8240_config: unconfig 946 Sandpoint8240_config: unconfig
947 @./mkconfig $(@:_config=) ppc mpc824x sandpoint 947 @./mkconfig $(@:_config=) ppc mpc824x sandpoint
948 948
949 Sandpoint8245_config: unconfig 949 Sandpoint8245_config: unconfig
950 @./mkconfig $(@:_config=) ppc mpc824x sandpoint 950 @./mkconfig $(@:_config=) ppc mpc824x sandpoint
951 951
952 sbc8240_config: unconfig 952 sbc8240_config: unconfig
953 @./mkconfig $(@:_config=) ppc mpc824x sbc8240 953 @./mkconfig $(@:_config=) ppc mpc824x sbc8240
954 954
955 SL8245_config: unconfig 955 SL8245_config: unconfig
956 @./mkconfig $(@:_config=) ppc mpc824x sl8245 956 @./mkconfig $(@:_config=) ppc mpc824x sl8245
957 957
958 utx8245_config: unconfig 958 utx8245_config: unconfig
959 @./mkconfig $(@:_config=) ppc mpc824x utx8245 959 @./mkconfig $(@:_config=) ppc mpc824x utx8245
960 960
961 cobra5272_config : unconfig 961 cobra5272_config : unconfig
962 @./mkconfig $(@:_config=) m68k mcf52x2 cobra5272 962 @./mkconfig $(@:_config=) m68k mcf52x2 cobra5272
963 963
964 ######################################################################### 964 #########################################################################
965 ## MPC8260 Systems 965 ## MPC8260 Systems
966 ######################################################################### 966 #########################################################################
967 967
968 atc_config: unconfig 968 atc_config: unconfig
969 @./mkconfig $(@:_config=) ppc mpc8260 atc 969 @./mkconfig $(@:_config=) ppc mpc8260 atc
970 970
971 cogent_mpc8260_config: unconfig 971 cogent_mpc8260_config: unconfig
972 @./mkconfig $(@:_config=) ppc mpc8260 cogent 972 @./mkconfig $(@:_config=) ppc mpc8260 cogent
973 973
974 CPU86_config \ 974 CPU86_config \
975 CPU86_ROMBOOT_config: unconfig 975 CPU86_ROMBOOT_config: unconfig
976 @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu86 976 @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu86
977 @cd ./include ; \ 977 @cd ./include ; \
978 if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ 978 if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
979 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ 979 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
980 echo "... booting from 8-bit flash" ; \ 980 echo "... booting from 8-bit flash" ; \
981 else \ 981 else \
982 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ 982 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
983 echo "... booting from 64-bit flash" ; \ 983 echo "... booting from 64-bit flash" ; \
984 fi; \ 984 fi; \
985 echo "export CONFIG_BOOT_ROM" >> config.mk; 985 echo "export CONFIG_BOOT_ROM" >> config.mk;
986 986
987 CPU87_config \ 987 CPU87_config \
988 CPU87_ROMBOOT_config: unconfig 988 CPU87_ROMBOOT_config: unconfig
989 @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu87 989 @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu87
990 @cd ./include ; \ 990 @cd ./include ; \
991 if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ 991 if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
992 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \ 992 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
993 echo "... booting from 8-bit flash" ; \ 993 echo "... booting from 8-bit flash" ; \
994 else \ 994 else \
995 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \ 995 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
996 echo "... booting from 64-bit flash" ; \ 996 echo "... booting from 64-bit flash" ; \
997 fi; \ 997 fi; \
998 echo "export CONFIG_BOOT_ROM" >> config.mk; 998 echo "export CONFIG_BOOT_ROM" >> config.mk;
999 999
1000 ep8248_config \
1001 ep8248E_config : unconfig
1002 @./mkconfig ep8248 ppc mpc8260 ep8248
1003
1000 ep8260_config: unconfig 1004 ep8260_config: unconfig
1001 @./mkconfig $(@:_config=) ppc mpc8260 ep8260 1005 @./mkconfig $(@:_config=) ppc mpc8260 ep8260
1002 1006
1003 gw8260_config: unconfig 1007 gw8260_config: unconfig
1004 @./mkconfig $(@:_config=) ppc mpc8260 gw8260 1008 @./mkconfig $(@:_config=) ppc mpc8260 gw8260
1005 1009
1006 hymod_config: unconfig 1010 hymod_config: unconfig
1007 @./mkconfig $(@:_config=) ppc mpc8260 hymod 1011 @./mkconfig $(@:_config=) ppc mpc8260 hymod
1008 1012
1009 IDS8247_config: unconfig 1013 IDS8247_config: unconfig
1010 @./mkconfig $(@:_config=) ppc mpc8260 ids8247 1014 @./mkconfig $(@:_config=) ppc mpc8260 ids8247
1011 1015
1012 IPHASE4539_config: unconfig 1016 IPHASE4539_config: unconfig
1013 @./mkconfig $(@:_config=) ppc mpc8260 iphase4539 1017 @./mkconfig $(@:_config=) ppc mpc8260 iphase4539
1014 1018
1015 ISPAN_config \ 1019 ISPAN_config \
1016 ISPAN_REVB_config: unconfig 1020 ISPAN_REVB_config: unconfig
1017 @if [ "$(findstring _REVB_,$@)" ] ; then \ 1021 @if [ "$(findstring _REVB_,$@)" ] ; then \
1018 echo "#define CFG_REV_B" > include/config.h ; \ 1022 echo "#define CFG_REV_B" > include/config.h ; \
1019 fi 1023 fi
1020 @./mkconfig -a ISPAN ppc mpc8260 ispan 1024 @./mkconfig -a ISPAN ppc mpc8260 ispan
1021 1025
1022 MPC8260ADS_config \ 1026 MPC8260ADS_config \
1023 MPC8260ADS_lowboot_config \ 1027 MPC8260ADS_lowboot_config \
1024 MPC8260ADS_33MHz_config \ 1028 MPC8260ADS_33MHz_config \
1025 MPC8260ADS_33MHz_lowboot_config \ 1029 MPC8260ADS_33MHz_lowboot_config \
1026 MPC8260ADS_40MHz_config \ 1030 MPC8260ADS_40MHz_config \
1027 MPC8260ADS_40MHz_lowboot_config \ 1031 MPC8260ADS_40MHz_lowboot_config \
1028 MPC8272ADS_config \ 1032 MPC8272ADS_config \
1029 MPC8272ADS_lowboot_config \ 1033 MPC8272ADS_lowboot_config \
1030 PQ2FADS_config \ 1034 PQ2FADS_config \
1031 PQ2FADS_lowboot_config \ 1035 PQ2FADS_lowboot_config \
1032 PQ2FADS-VR_config \ 1036 PQ2FADS-VR_config \
1033 PQ2FADS-VR_lowboot_config \ 1037 PQ2FADS-VR_lowboot_config \
1034 PQ2FADS-ZU_config \ 1038 PQ2FADS-ZU_config \
1035 PQ2FADS-ZU_lowboot_config \ 1039 PQ2FADS-ZU_lowboot_config \
1036 PQ2FADS-ZU_66MHz_config \ 1040 PQ2FADS-ZU_66MHz_config \
1037 PQ2FADS-ZU_66MHz_lowboot_config \ 1041 PQ2FADS-ZU_66MHz_lowboot_config \
1038 : unconfig 1042 : unconfig
1039 $(if $(findstring PQ2FADS,$@), \ 1043 $(if $(findstring PQ2FADS,$@), \
1040 @echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > include/config.h, \ 1044 @echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > include/config.h, \
1041 @echo "#define CONFIG_ADSTYPE CFG_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > include/config.h) 1045 @echo "#define CONFIG_ADSTYPE CFG_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > include/config.h)
1042 $(if $(findstring MHz,$@), \ 1046 $(if $(findstring MHz,$@), \
1043 @echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> include/config.h, \ 1047 @echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> include/config.h, \
1044 $(if $(findstring VR,$@), \ 1048 $(if $(findstring VR,$@), \
1045 @echo "#define CONFIG_8260_CLKIN 66000000" >> include/config.h)) 1049 @echo "#define CONFIG_8260_CLKIN 66000000" >> include/config.h))
1046 @[ -z "$(findstring lowboot_,$@)" ] || \ 1050 @[ -z "$(findstring lowboot_,$@)" ] || \
1047 { echo "TEXT_BASE = 0xFF800000" >board/mpc8260ads/config.tmp ; \ 1051 { echo "TEXT_BASE = 0xFF800000" >board/mpc8260ads/config.tmp ; \
1048 echo "... with lowboot configuration" ; \ 1052 echo "... with lowboot configuration" ; \
1049 } 1053 }
1050 @./mkconfig -a MPC8260ADS ppc mpc8260 mpc8260ads 1054 @./mkconfig -a MPC8260ADS ppc mpc8260 mpc8260ads
1051 1055
1052 MPC8266ADS_config: unconfig 1056 MPC8266ADS_config: unconfig
1053 @./mkconfig $(@:_config=) ppc mpc8260 mpc8266ads 1057 @./mkconfig $(@:_config=) ppc mpc8260 mpc8266ads
1054 1058
1055 # PM825/PM826 default configuration: small (= 8 MB) Flash / boot from 64-bit flash 1059 # PM825/PM826 default configuration: small (= 8 MB) Flash / boot from 64-bit flash
1056 PM825_config \ 1060 PM825_config \
1057 PM825_ROMBOOT_config \ 1061 PM825_ROMBOOT_config \
1058 PM825_BIGFLASH_config \ 1062 PM825_BIGFLASH_config \
1059 PM825_ROMBOOT_BIGFLASH_config \ 1063 PM825_ROMBOOT_BIGFLASH_config \
1060 PM826_config \ 1064 PM826_config \
1061 PM826_ROMBOOT_config \ 1065 PM826_ROMBOOT_config \
1062 PM826_BIGFLASH_config \ 1066 PM826_BIGFLASH_config \
1063 PM826_ROMBOOT_BIGFLASH_config: unconfig 1067 PM826_ROMBOOT_BIGFLASH_config: unconfig
1064 @if [ "$(findstring PM825_,$@)" ] ; then \ 1068 @if [ "$(findstring PM825_,$@)" ] ; then \
1065 echo "#define CONFIG_PCI" >include/config.h ; \ 1069 echo "#define CONFIG_PCI" >include/config.h ; \
1066 else \ 1070 else \
1067 >include/config.h ; \ 1071 >include/config.h ; \
1068 fi 1072 fi
1069 @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ 1073 @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
1070 echo "... booting from 8-bit flash" ; \ 1074 echo "... booting from 8-bit flash" ; \
1071 echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \ 1075 echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \
1072 echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \ 1076 echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \
1073 if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ 1077 if [ "$(findstring _BIGFLASH_,$@)" ] ; then \
1074 echo "... with 32 MB Flash" ; \ 1078 echo "... with 32 MB Flash" ; \
1075 echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \ 1079 echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \
1076 fi; \ 1080 fi; \
1077 else \ 1081 else \
1078 echo "... booting from 64-bit flash" ; \ 1082 echo "... booting from 64-bit flash" ; \
1079 if [ "$(findstring _BIGFLASH_,$@)" ] ; then \ 1083 if [ "$(findstring _BIGFLASH_,$@)" ] ; then \
1080 echo "... with 32 MB Flash" ; \ 1084 echo "... with 32 MB Flash" ; \
1081 echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \ 1085 echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \
1082 echo "TEXT_BASE = 0x40000000" >board/pm826/config.tmp ; \ 1086 echo "TEXT_BASE = 0x40000000" >board/pm826/config.tmp ; \
1083 else \ 1087 else \
1084 echo "TEXT_BASE = 0xFF000000" >board/pm826/config.tmp ; \ 1088 echo "TEXT_BASE = 0xFF000000" >board/pm826/config.tmp ; \
1085 fi; \ 1089 fi; \
1086 fi 1090 fi
1087 @./mkconfig -a PM826 ppc mpc8260 pm826 1091 @./mkconfig -a PM826 ppc mpc8260 pm826
1088 1092
1089 PM828_config \ 1093 PM828_config \
1090 PM828_PCI_config \ 1094 PM828_PCI_config \
1091 PM828_ROMBOOT_config \ 1095 PM828_ROMBOOT_config \
1092 PM828_ROMBOOT_PCI_config: unconfig 1096 PM828_ROMBOOT_PCI_config: unconfig
1093 @if [ -z "$(findstring _PCI_,$@)" ] ; then \ 1097 @if [ -z "$(findstring _PCI_,$@)" ] ; then \
1094 echo "#define CONFIG_PCI" >>include/config.h ; \ 1098 echo "#define CONFIG_PCI" >>include/config.h ; \
1095 echo "... with PCI enabled" ; \ 1099 echo "... with PCI enabled" ; \
1096 else \ 1100 else \
1097 >include/config.h ; \ 1101 >include/config.h ; \
1098 fi 1102 fi
1099 @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \ 1103 @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
1100 echo "... booting from 8-bit flash" ; \ 1104 echo "... booting from 8-bit flash" ; \
1101 echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \ 1105 echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \
1102 echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \ 1106 echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \
1103 fi 1107 fi
1104 @./mkconfig -a PM828 ppc mpc8260 pm828 1108 @./mkconfig -a PM828 ppc mpc8260 pm828
1105 1109
1106 ppmc8260_config: unconfig 1110 ppmc8260_config: unconfig
1107 @./mkconfig $(@:_config=) ppc mpc8260 ppmc8260 1111 @./mkconfig $(@:_config=) ppc mpc8260 ppmc8260
1108 1112
1109 Rattler8248_config \ 1113 Rattler8248_config \
1110 Rattler_config: unconfig 1114 Rattler_config: unconfig
1111 $(if $(findstring 8248,$@), \ 1115 $(if $(findstring 8248,$@), \
1112 @echo "#define CONFIG_MPC8248" > include/config.h) 1116 @echo "#define CONFIG_MPC8248" > include/config.h)
1113 @./mkconfig -a Rattler ppc mpc8260 rattler 1117 @./mkconfig -a Rattler ppc mpc8260 rattler
1114 1118
1115 RPXsuper_config: unconfig 1119 RPXsuper_config: unconfig
1116 @./mkconfig $(@:_config=) ppc mpc8260 rpxsuper 1120 @./mkconfig $(@:_config=) ppc mpc8260 rpxsuper
1117 1121
1118 rsdproto_config: unconfig 1122 rsdproto_config: unconfig
1119 @./mkconfig $(@:_config=) ppc mpc8260 rsdproto 1123 @./mkconfig $(@:_config=) ppc mpc8260 rsdproto
1120 1124
1121 sacsng_config: unconfig 1125 sacsng_config: unconfig
1122 @./mkconfig $(@:_config=) ppc mpc8260 sacsng 1126 @./mkconfig $(@:_config=) ppc mpc8260 sacsng
1123 1127
1124 sbc8260_config: unconfig 1128 sbc8260_config: unconfig
1125 @./mkconfig $(@:_config=) ppc mpc8260 sbc8260 1129 @./mkconfig $(@:_config=) ppc mpc8260 sbc8260
1126 1130
1127 SCM_config: unconfig 1131 SCM_config: unconfig
1128 @./mkconfig $(@:_config=) ppc mpc8260 SCM siemens 1132 @./mkconfig $(@:_config=) ppc mpc8260 SCM siemens
1129 1133
1130 TQM8255_AA_config \ 1134 TQM8255_AA_config \
1131 TQM8260_AA_config \ 1135 TQM8260_AA_config \
1132 TQM8260_AB_config \ 1136 TQM8260_AB_config \
1133 TQM8260_AC_config \ 1137 TQM8260_AC_config \
1134 TQM8260_AD_config \ 1138 TQM8260_AD_config \
1135 TQM8260_AE_config \ 1139 TQM8260_AE_config \
1136 TQM8260_AF_config \ 1140 TQM8260_AF_config \
1137 TQM8260_AG_config \ 1141 TQM8260_AG_config \
1138 TQM8260_AH_config \ 1142 TQM8260_AH_config \
1139 TQM8265_AA_config: unconfig 1143 TQM8265_AA_config: unconfig
1140 @case "$@" in \ 1144 @case "$@" in \
1141 TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no; BMODE=8260;; \ 1145 TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no; BMODE=8260;; \
1142 TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no; BMODE=8260;; \ 1146 TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no; BMODE=8260;; \
1143 TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ 1147 TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \
1144 TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \ 1148 TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \
1145 TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ 1149 TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \
1146 TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no; BMODE=8260;; \ 1150 TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no; BMODE=8260;; \
1147 TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \ 1151 TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \
1148 TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=8260;; \ 1152 TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=8260;; \
1149 TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes; BMODE=60x;; \ 1153 TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes; BMODE=60x;; \
1150 TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no; BMODE=60x;; \ 1154 TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no; BMODE=60x;; \
1151 esac; \ 1155 esac; \
1152 >include/config.h ; \ 1156 >include/config.h ; \
1153 if [ "$${CTYPE}" != "MPC8260" ] ; then \ 1157 if [ "$${CTYPE}" != "MPC8260" ] ; then \
1154 echo "#define CONFIG_$${CTYPE}" >>include/config.h ; \ 1158 echo "#define CONFIG_$${CTYPE}" >>include/config.h ; \
1155 fi; \ 1159 fi; \
1156 echo "#define CONFIG_$${CFREQ}MHz" >>include/config.h ; \ 1160 echo "#define CONFIG_$${CFREQ}MHz" >>include/config.h ; \
1157 echo "... with $${CFREQ}MHz system clock" ; \ 1161 echo "... with $${CFREQ}MHz system clock" ; \
1158 if [ "$${CACHE}" == "yes" ] ; then \ 1162 if [ "$${CACHE}" == "yes" ] ; then \
1159 echo "#define CONFIG_L2_CACHE" >>include/config.h ; \ 1163 echo "#define CONFIG_L2_CACHE" >>include/config.h ; \
1160 echo "... with L2 Cache support" ; \ 1164 echo "... with L2 Cache support" ; \
1161 else \ 1165 else \
1162 echo "#undef CONFIG_L2_CACHE" >>include/config.h ; \ 1166 echo "#undef CONFIG_L2_CACHE" >>include/config.h ; \
1163 echo "... without L2 Cache support" ; \ 1167 echo "... without L2 Cache support" ; \
1164 fi; \ 1168 fi; \
1165 if [ "$${BMODE}" == "60x" ] ; then \ 1169 if [ "$${BMODE}" == "60x" ] ; then \
1166 echo "#define CONFIG_BUSMODE_60x" >>include/config.h ; \ 1170 echo "#define CONFIG_BUSMODE_60x" >>include/config.h ; \
1167 echo "... with 60x Bus Mode" ; \ 1171 echo "... with 60x Bus Mode" ; \
1168 else \ 1172 else \
1169 echo "#undef CONFIG_BUSMODE_60x" >>include/config.h ; \ 1173 echo "#undef CONFIG_BUSMODE_60x" >>include/config.h ; \
1170 echo "... without 60x Bus Mode" ; \ 1174 echo "... without 60x Bus Mode" ; \
1171 fi 1175 fi
1172 @./mkconfig -a TQM8260 ppc mpc8260 tqm8260 1176 @./mkconfig -a TQM8260 ppc mpc8260 tqm8260
1173 1177
1174 VoVPN-GW_66MHz_config \ 1178 VoVPN-GW_66MHz_config \
1175 VoVPN-GW_100MHz_config: unconfig 1179 VoVPN-GW_100MHz_config: unconfig
1176 @echo "#define CONFIG_CLKIN_$(word 2,$(subst _, ,$@))" > include/config.h 1180 @echo "#define CONFIG_CLKIN_$(word 2,$(subst _, ,$@))" > include/config.h
1177 @./mkconfig -a VoVPN-GW ppc mpc8260 vovpn-gw funkwerk 1181 @./mkconfig -a VoVPN-GW ppc mpc8260 vovpn-gw funkwerk
1178 1182
1179 ZPC1900_config: unconfig 1183 ZPC1900_config: unconfig
1180 @./mkconfig $(@:_config=) ppc mpc8260 zpc1900 1184 @./mkconfig $(@:_config=) ppc mpc8260 zpc1900
1181 1185
1182 #======================================================================== 1186 #========================================================================
1183 # M68K 1187 # M68K
1184 #======================================================================== 1188 #========================================================================
1185 ######################################################################### 1189 #########################################################################
1186 ## Coldfire 1190 ## Coldfire
1187 ######################################################################### 1191 #########################################################################
1188 1192
1189 M5272C3_config : unconfig 1193 M5272C3_config : unconfig
1190 @./mkconfig $(@:_config=) m68k mcf52x2 m5272c3 1194 @./mkconfig $(@:_config=) m68k mcf52x2 m5272c3
1191 1195
1192 M5282EVB_config : unconfig 1196 M5282EVB_config : unconfig
1193 @./mkconfig $(@:_config=) m68k mcf52x2 m5282evb 1197 @./mkconfig $(@:_config=) m68k mcf52x2 m5282evb
1194 1198
1195 TASREG_config : unconfig 1199 TASREG_config : unconfig
1196 @./mkconfig $(@:_config=) m68k mcf52x2 tasreg esd 1200 @./mkconfig $(@:_config=) m68k mcf52x2 tasreg esd
1197 1201
1198 ######################################################################### 1202 #########################################################################
1199 ## MPC83xx Systems 1203 ## MPC83xx Systems
1200 ######################################################################### 1204 #########################################################################
1201 1205
1202 MPC8349ADS_config: unconfig 1206 MPC8349ADS_config: unconfig
1203 @./mkconfig $(@:_config=) ppc mpc83xx mpc8349ads 1207 @./mkconfig $(@:_config=) ppc mpc83xx mpc8349ads
1204 1208
1205 ######################################################################### 1209 #########################################################################
1206 ## MPC85xx Systems 1210 ## MPC85xx Systems
1207 ######################################################################### 1211 #########################################################################
1208 1212
1209 MPC8540ADS_config: unconfig 1213 MPC8540ADS_config: unconfig
1210 @./mkconfig $(@:_config=) ppc mpc85xx mpc8540ads 1214 @./mkconfig $(@:_config=) ppc mpc85xx mpc8540ads
1211 1215
1212 MPC8540EVAL_config \ 1216 MPC8540EVAL_config \
1213 MPC8540EVAL_33_config \ 1217 MPC8540EVAL_33_config \
1214 MPC8540EVAL_66_config \ 1218 MPC8540EVAL_66_config \
1215 MPC8540EVAL_33_slave_config \ 1219 MPC8540EVAL_33_slave_config \
1216 MPC8540EVAL_66_slave_config: unconfig 1220 MPC8540EVAL_66_slave_config: unconfig
1217 @echo "" >include/config.h ; \ 1221 @echo "" >include/config.h ; \
1218 if [ "$(findstring _33_,$@)" ] ; then \ 1222 if [ "$(findstring _33_,$@)" ] ; then \
1219 echo -n "... 33 MHz PCI" ; \ 1223 echo -n "... 33 MHz PCI" ; \
1220 else \ 1224 else \
1221 echo "#define CONFIG_SYSCLK_66M" >>include/config.h ; \ 1225 echo "#define CONFIG_SYSCLK_66M" >>include/config.h ; \
1222 echo -n "... 66 MHz PCI" ; \ 1226 echo -n "... 66 MHz PCI" ; \
1223 fi ; \ 1227 fi ; \
1224 if [ "$(findstring _slave_,$@)" ] ; then \ 1228 if [ "$(findstring _slave_,$@)" ] ; then \
1225 echo "#define CONFIG_PCI_SLAVE" >>include/config.h ; \ 1229 echo "#define CONFIG_PCI_SLAVE" >>include/config.h ; \
1226 echo " slave" ; \ 1230 echo " slave" ; \
1227 else \ 1231 else \
1228 echo " host" ; \ 1232 echo " host" ; \
1229 fi 1233 fi
1230 @./mkconfig -a MPC8540EVAL ppc mpc85xx mpc8540eval 1234 @./mkconfig -a MPC8540EVAL ppc mpc85xx mpc8540eval
1231 1235
1232 MPC8560ADS_config: unconfig 1236 MPC8560ADS_config: unconfig
1233 @./mkconfig $(@:_config=) ppc mpc85xx mpc8560ads 1237 @./mkconfig $(@:_config=) ppc mpc85xx mpc8560ads
1234 1238
1235 MPC8541CDS_config: unconfig 1239 MPC8541CDS_config: unconfig
1236 @./mkconfig $(@:_config=) ppc mpc85xx mpc8541cds cds 1240 @./mkconfig $(@:_config=) ppc mpc85xx mpc8541cds cds
1237 1241
1238 MPC8548CDS_config: unconfig 1242 MPC8548CDS_config: unconfig
1239 @./mkconfig $(@:_config=) ppc mpc85xx mpc8548cds cds 1243 @./mkconfig $(@:_config=) ppc mpc85xx mpc8548cds cds
1240 1244
1241 MPC8555CDS_config: unconfig 1245 MPC8555CDS_config: unconfig
1242 @./mkconfig $(@:_config=) ppc mpc85xx mpc8555cds cds 1246 @./mkconfig $(@:_config=) ppc mpc85xx mpc8555cds cds
1243 1247
1244 PM854_config: unconfig 1248 PM854_config: unconfig
1245 @./mkconfig $(@:_config=) ppc mpc85xx pm854 1249 @./mkconfig $(@:_config=) ppc mpc85xx pm854
1246 1250
1247 PM856_config: unconfig 1251 PM856_config: unconfig
1248 @./mkconfig $(@:_config=) ppc mpc85xx pm856 1252 @./mkconfig $(@:_config=) ppc mpc85xx pm856
1249 1253
1250 sbc8540_config \ 1254 sbc8540_config \
1251 sbc8540_33_config \ 1255 sbc8540_33_config \
1252 sbc8540_66_config: unconfig 1256 sbc8540_66_config: unconfig
1253 @if [ "$(findstring _66_,$@)" ] ; then \ 1257 @if [ "$(findstring _66_,$@)" ] ; then \
1254 echo "#define CONFIG_PCI_66" >>include/config.h ; \ 1258 echo "#define CONFIG_PCI_66" >>include/config.h ; \
1255 echo "... 66 MHz PCI" ; \ 1259 echo "... 66 MHz PCI" ; \
1256 else \ 1260 else \
1257 >include/config.h ; \ 1261 >include/config.h ; \
1258 echo "... 33 MHz PCI" ; \ 1262 echo "... 33 MHz PCI" ; \
1259 fi 1263 fi
1260 @./mkconfig -a SBC8540 ppc mpc85xx sbc8560 1264 @./mkconfig -a SBC8540 ppc mpc85xx sbc8560
1261 1265
1262 sbc8560_config \ 1266 sbc8560_config \
1263 sbc8560_33_config \ 1267 sbc8560_33_config \
1264 sbc8560_66_config: unconfig 1268 sbc8560_66_config: unconfig
1265 @if [ "$(findstring _66_,$@)" ] ; then \ 1269 @if [ "$(findstring _66_,$@)" ] ; then \
1266 echo "#define CONFIG_PCI_66" >>include/config.h ; \ 1270 echo "#define CONFIG_PCI_66" >>include/config.h ; \
1267 echo "... 66 MHz PCI" ; \ 1271 echo "... 66 MHz PCI" ; \
1268 else \ 1272 else \
1269 >include/config.h ; \ 1273 >include/config.h ; \
1270 echo "... 33 MHz PCI" ; \ 1274 echo "... 33 MHz PCI" ; \
1271 fi 1275 fi
1272 @./mkconfig -a sbc8560 ppc mpc85xx sbc8560 1276 @./mkconfig -a sbc8560 ppc mpc85xx sbc8560
1273 1277
1274 stxgp3_config: unconfig 1278 stxgp3_config: unconfig
1275 @./mkconfig $(@:_config=) ppc mpc85xx stxgp3 1279 @./mkconfig $(@:_config=) ppc mpc85xx stxgp3
1276 1280
1277 TQM8540_config: unconfig 1281 TQM8540_config: unconfig
1278 @./mkconfig $(@:_config=) ppc mpc85xx tqm8540 1282 @./mkconfig $(@:_config=) ppc mpc85xx tqm8540
1279 1283
1280 TQM8560_config: unconfig 1284 TQM8560_config: unconfig
1281 @./mkconfig $(@:_config=) ppc mpc85xx tqm8560 1285 @./mkconfig $(@:_config=) ppc mpc85xx tqm8560
1282 1286
1283 ######################################################################### 1287 #########################################################################
1284 ## 74xx/7xx Systems 1288 ## 74xx/7xx Systems
1285 ######################################################################### 1289 #########################################################################
1286 1290
1287 AmigaOneG3SE_config: unconfig 1291 AmigaOneG3SE_config: unconfig
1288 @./mkconfig $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI 1292 @./mkconfig $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI
1289 1293
1290 BAB7xx_config: unconfig 1294 BAB7xx_config: unconfig
1291 @./mkconfig $(@:_config=) ppc 74xx_7xx bab7xx eltec 1295 @./mkconfig $(@:_config=) ppc 74xx_7xx bab7xx eltec
1292 1296
1293 CPCI750_config: unconfig 1297 CPCI750_config: unconfig
1294 @./mkconfig CPCI750 ppc 74xx_7xx cpci750 esd 1298 @./mkconfig CPCI750 ppc 74xx_7xx cpci750 esd
1295 1299
1296 DB64360_config: unconfig 1300 DB64360_config: unconfig
1297 @./mkconfig DB64360 ppc 74xx_7xx db64360 Marvell 1301 @./mkconfig DB64360 ppc 74xx_7xx db64360 Marvell
1298 1302
1299 DB64460_config: unconfig 1303 DB64460_config: unconfig
1300 @./mkconfig DB64460 ppc 74xx_7xx db64460 Marvell 1304 @./mkconfig DB64460 ppc 74xx_7xx db64460 Marvell
1301 1305
1302 ELPPC_config: unconfig 1306 ELPPC_config: unconfig
1303 @./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec 1307 @./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec
1304 1308
1305 EVB64260_config \ 1309 EVB64260_config \
1306 EVB64260_750CX_config: unconfig 1310 EVB64260_750CX_config: unconfig
1307 @./mkconfig EVB64260 ppc 74xx_7xx evb64260 1311 @./mkconfig EVB64260 ppc 74xx_7xx evb64260
1308 1312
1309 P3G4_config: unconfig 1313 P3G4_config: unconfig
1310 @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260 1314 @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
1311 1315
1312 PCIPPC2_config \ 1316 PCIPPC2_config \
1313 PCIPPC6_config: unconfig 1317 PCIPPC6_config: unconfig
1314 @./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2 1318 @./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2
1315 1319
1316 ZUMA_config: unconfig 1320 ZUMA_config: unconfig
1317 @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260 1321 @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
1318 1322
1319 #======================================================================== 1323 #========================================================================
1320 # ARM 1324 # ARM
1321 #======================================================================== 1325 #========================================================================
1322 ######################################################################### 1326 #########################################################################
1323 ## StrongARM Systems 1327 ## StrongARM Systems
1324 ######################################################################### 1328 #########################################################################
1325 1329
1326 assabet_config : unconfig 1330 assabet_config : unconfig
1327 @./mkconfig $(@:_config=) arm sa1100 assabet 1331 @./mkconfig $(@:_config=) arm sa1100 assabet
1328 1332
1329 dnp1110_config : unconfig 1333 dnp1110_config : unconfig
1330 @./mkconfig $(@:_config=) arm sa1100 dnp1110 1334 @./mkconfig $(@:_config=) arm sa1100 dnp1110
1331 1335
1332 gcplus_config : unconfig 1336 gcplus_config : unconfig
1333 @./mkconfig $(@:_config=) arm sa1100 gcplus 1337 @./mkconfig $(@:_config=) arm sa1100 gcplus
1334 1338
1335 lart_config : unconfig 1339 lart_config : unconfig
1336 @./mkconfig $(@:_config=) arm sa1100 lart 1340 @./mkconfig $(@:_config=) arm sa1100 lart
1337 1341
1338 shannon_config : unconfig 1342 shannon_config : unconfig
1339 @./mkconfig $(@:_config=) arm sa1100 shannon 1343 @./mkconfig $(@:_config=) arm sa1100 shannon
1340 1344
1341 ######################################################################### 1345 #########################################################################
1342 ## ARM92xT Systems 1346 ## ARM92xT Systems
1343 ######################################################################### 1347 #########################################################################
1344 1348
1345 xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1)))) 1349 xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1))))
1346 1350
1347 xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1)))) 1351 xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1))))
1348 1352
1349 xtract_omap730p2 = $(subst _cs0boot,,$(subst _cs3boot,, $(subst _config,,$1))) 1353 xtract_omap730p2 = $(subst _cs0boot,,$(subst _cs3boot,, $(subst _config,,$1)))
1350 1354
1351 at91rm9200dk_config : unconfig 1355 at91rm9200dk_config : unconfig
1352 @./mkconfig $(@:_config=) arm arm920t at91rm9200dk NULL at91rm9200 1356 @./mkconfig $(@:_config=) arm arm920t at91rm9200dk NULL at91rm9200
1353 1357
1354 cmc_pu2_config : unconfig 1358 cmc_pu2_config : unconfig
1355 @./mkconfig $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200 1359 @./mkconfig $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200
1356 1360
1357 integratorap_config : unconfig 1361 integratorap_config : unconfig
1358 @./mkconfig $(@:_config=) arm arm926ejs integratorap 1362 @./mkconfig $(@:_config=) arm arm926ejs integratorap
1359 1363
1360 integratorcp_config : unconfig 1364 integratorcp_config : unconfig
1361 @./mkconfig $(@:_config=) arm arm926ejs integratorcp 1365 @./mkconfig $(@:_config=) arm arm926ejs integratorcp
1362 1366
1363 lpd7a400_config \ 1367 lpd7a400_config \
1364 lpd7a404_config: unconfig 1368 lpd7a404_config: unconfig
1365 @./mkconfig $(@:_config=) arm lh7a40x lpd7a40x 1369 @./mkconfig $(@:_config=) arm lh7a40x lpd7a40x
1366 1370
1367 mx1ads_config : unconfig 1371 mx1ads_config : unconfig
1368 @./mkconfig $(@:_config=) arm arm920t mx1ads NULL imx 1372 @./mkconfig $(@:_config=) arm arm920t mx1ads NULL imx
1369 1373
1370 mx1fs2_config : unconfig 1374 mx1fs2_config : unconfig
1371 @./mkconfig $(@:_config=) arm arm920t mx1fs2 NULL imx 1375 @./mkconfig $(@:_config=) arm arm920t mx1fs2 NULL imx
1372 1376
1373 omap1510inn_config : unconfig 1377 omap1510inn_config : unconfig
1374 @./mkconfig $(@:_config=) arm arm925t omap1510inn 1378 @./mkconfig $(@:_config=) arm arm925t omap1510inn
1375 1379
1376 omap5912osk_config : unconfig 1380 omap5912osk_config : unconfig
1377 @./mkconfig $(@:_config=) arm arm926ejs omap5912osk 1381 @./mkconfig $(@:_config=) arm arm926ejs omap5912osk
1378 1382
1379 omap1610inn_config \ 1383 omap1610inn_config \
1380 omap1610inn_cs0boot_config \ 1384 omap1610inn_cs0boot_config \
1381 omap1610inn_cs3boot_config \ 1385 omap1610inn_cs3boot_config \
1382 omap1610inn_cs_autoboot_config \ 1386 omap1610inn_cs_autoboot_config \
1383 omap1610h2_config \ 1387 omap1610h2_config \
1384 omap1610h2_cs0boot_config \ 1388 omap1610h2_cs0boot_config \
1385 omap1610h2_cs3boot_config \ 1389 omap1610h2_cs3boot_config \
1386 omap1610h2_cs_autoboot_config: unconfig 1390 omap1610h2_cs_autoboot_config: unconfig
1387 @if [ "$(findstring _cs0boot_, $@)" ] ; then \ 1391 @if [ "$(findstring _cs0boot_, $@)" ] ; then \
1388 echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \ 1392 echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \
1389 echo "... configured for CS0 boot"; \ 1393 echo "... configured for CS0 boot"; \
1390 elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \ 1394 elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \
1391 echo "#define CONFIG_CS_AUTOBOOT" >> ./include/config.h ; \ 1395 echo "#define CONFIG_CS_AUTOBOOT" >> ./include/config.h ; \
1392 echo "... configured for CS_AUTO boot"; \ 1396 echo "... configured for CS_AUTO boot"; \
1393 else \ 1397 else \
1394 echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \ 1398 echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \
1395 echo "... configured for CS3 boot"; \ 1399 echo "... configured for CS3 boot"; \
1396 fi; 1400 fi;
1397 @./mkconfig -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn 1401 @./mkconfig -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn
1398 1402
1399 omap730p2_config \ 1403 omap730p2_config \
1400 omap730p2_cs0boot_config \ 1404 omap730p2_cs0boot_config \
1401 omap730p2_cs3boot_config : unconfig 1405 omap730p2_cs3boot_config : unconfig
1402 @if [ "$(findstring _cs0boot_, $@)" ] ; then \ 1406 @if [ "$(findstring _cs0boot_, $@)" ] ; then \
1403 echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \ 1407 echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \
1404 echo "... configured for CS0 boot"; \ 1408 echo "... configured for CS0 boot"; \
1405 else \ 1409 else \
1406 echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \ 1410 echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \
1407 echo "... configured for CS3 boot"; \ 1411 echo "... configured for CS3 boot"; \
1408 fi; 1412 fi;
1409 @./mkconfig -a $(call xtract_omap730p2,$@) arm arm926ejs omap730p2 1413 @./mkconfig -a $(call xtract_omap730p2,$@) arm arm926ejs omap730p2
1410 1414
1411 scb9328_config : unconfig 1415 scb9328_config : unconfig
1412 @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx 1416 @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx
1413 1417
1414 smdk2400_config : unconfig 1418 smdk2400_config : unconfig
1415 @./mkconfig $(@:_config=) arm arm920t smdk2400 NULL s3c24x0 1419 @./mkconfig $(@:_config=) arm arm920t smdk2400 NULL s3c24x0
1416 1420
1417 smdk2410_config : unconfig 1421 smdk2410_config : unconfig
1418 @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0 1422 @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
1419 1423
1420 SX1_config : unconfig 1424 SX1_config : unconfig
1421 @./mkconfig $(@:_config=) arm arm925t sx1 1425 @./mkconfig $(@:_config=) arm arm925t sx1
1422 1426
1423 # TRAB default configuration: 8 MB Flash, 32 MB RAM 1427 # TRAB default configuration: 8 MB Flash, 32 MB RAM
1424 trab_config \ 1428 trab_config \
1425 trab_bigram_config \ 1429 trab_bigram_config \
1426 trab_bigflash_config \ 1430 trab_bigflash_config \
1427 trab_old_config: unconfig 1431 trab_old_config: unconfig
1428 @ >include/config.h 1432 @ >include/config.h
1429 @[ -z "$(findstring _bigram,$@)" ] || \ 1433 @[ -z "$(findstring _bigram,$@)" ] || \
1430 { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \ 1434 { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \
1431 echo "#define CONFIG_RAM_32MB" >>include/config.h ; \ 1435 echo "#define CONFIG_RAM_32MB" >>include/config.h ; \
1432 echo "... with 8 MB Flash, 32 MB RAM" ; \ 1436 echo "... with 8 MB Flash, 32 MB RAM" ; \
1433 } 1437 }
1434 @[ -z "$(findstring _bigflash,$@)" ] || \ 1438 @[ -z "$(findstring _bigflash,$@)" ] || \
1435 { echo "#define CONFIG_FLASH_16MB" >>include/config.h ; \ 1439 { echo "#define CONFIG_FLASH_16MB" >>include/config.h ; \
1436 echo "#define CONFIG_RAM_16MB" >>include/config.h ; \ 1440 echo "#define CONFIG_RAM_16MB" >>include/config.h ; \
1437 echo "... with 16 MB Flash, 16 MB RAM" ; \ 1441 echo "... with 16 MB Flash, 16 MB RAM" ; \
1438 echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \ 1442 echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \
1439 } 1443 }
1440 @[ -z "$(findstring _old,$@)" ] || \ 1444 @[ -z "$(findstring _old,$@)" ] || \
1441 { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \ 1445 { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \
1442 echo "#define CONFIG_RAM_16MB" >>include/config.h ; \ 1446 echo "#define CONFIG_RAM_16MB" >>include/config.h ; \
1443 echo "... with 8 MB Flash, 16 MB RAM" ; \ 1447 echo "... with 8 MB Flash, 16 MB RAM" ; \
1444 echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \ 1448 echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \
1445 } 1449 }
1446 @./mkconfig -a $(call xtract_trab,$@) arm arm920t trab NULL s3c24x0 1450 @./mkconfig -a $(call xtract_trab,$@) arm arm920t trab NULL s3c24x0
1447 1451
1448 VCMA9_config : unconfig 1452 VCMA9_config : unconfig
1449 @./mkconfig $(@:_config=) arm arm920t vcma9 mpl s3c24x0 1453 @./mkconfig $(@:_config=) arm arm920t vcma9 mpl s3c24x0
1450 1454
1451 versatile_config : unconfig 1455 versatile_config : unconfig
1452 @./mkconfig $(@:_config=) arm arm926ejs versatile 1456 @./mkconfig $(@:_config=) arm arm926ejs versatile
1453 1457
1454 voiceblue_smallflash_config \ 1458 voiceblue_smallflash_config \
1455 voiceblue_config: unconfig 1459 voiceblue_config: unconfig
1456 @if [ "$(findstring _smallflash_,$@)" ] ; then \ 1460 @if [ "$(findstring _smallflash_,$@)" ] ; then \
1457 echo "... boot from lower flash bank" ; \ 1461 echo "... boot from lower flash bank" ; \
1458 echo "#define VOICEBLUE_SMALL_FLASH" >>include/config.h ; \ 1462 echo "#define VOICEBLUE_SMALL_FLASH" >>include/config.h ; \
1459 echo "VOICEBLUE_SMALL_FLASH=y" >board/voiceblue/config.tmp ; \ 1463 echo "VOICEBLUE_SMALL_FLASH=y" >board/voiceblue/config.tmp ; \
1460 else \ 1464 else \
1461 echo "... boot from upper flash bank" ; \ 1465 echo "... boot from upper flash bank" ; \
1462 >include/config.h ; \ 1466 >include/config.h ; \
1463 echo "VOICEBLUE_SMALL_FLASH=n" >board/voiceblue/config.tmp ; \ 1467 echo "VOICEBLUE_SMALL_FLASH=n" >board/voiceblue/config.tmp ; \
1464 fi 1468 fi
1465 @./mkconfig -a voiceblue arm arm925t voiceblue 1469 @./mkconfig -a voiceblue arm arm925t voiceblue
1466 1470
1467 cm4008_config : unconfig 1471 cm4008_config : unconfig
1468 @./mkconfig $(@:_config=) arm arm920t cm4008 NULL ks8695 1472 @./mkconfig $(@:_config=) arm arm920t cm4008 NULL ks8695
1469 1473
1470 cm41xx_config : unconfig 1474 cm41xx_config : unconfig
1471 @./mkconfig $(@:_config=) arm arm920t cm41xx NULL ks8695 1475 @./mkconfig $(@:_config=) arm arm920t cm41xx NULL ks8695
1472 1476
1473 ######################################################################### 1477 #########################################################################
1474 ## S3C44B0 Systems 1478 ## S3C44B0 Systems
1475 ######################################################################### 1479 #########################################################################
1476 1480
1477 B2_config : unconfig 1481 B2_config : unconfig
1478 @./mkconfig $(@:_config=) arm s3c44b0 B2 dave 1482 @./mkconfig $(@:_config=) arm s3c44b0 B2 dave
1479 1483
1480 ######################################################################### 1484 #########################################################################
1481 ## ARM720T Systems 1485 ## ARM720T Systems
1482 ######################################################################### 1486 #########################################################################
1483 1487
1484 ep7312_config : unconfig 1488 ep7312_config : unconfig
1485 @./mkconfig $(@:_config=) arm arm720t ep7312 1489 @./mkconfig $(@:_config=) arm arm720t ep7312
1486 1490
1487 impa7_config : unconfig 1491 impa7_config : unconfig
1488 @./mkconfig $(@:_config=) arm arm720t impa7 1492 @./mkconfig $(@:_config=) arm arm720t impa7
1489 1493
1490 modnet50_config : unconfig 1494 modnet50_config : unconfig
1491 @./mkconfig $(@:_config=) arm arm720t modnet50 1495 @./mkconfig $(@:_config=) arm arm720t modnet50
1492 1496
1493 evb4510_config : unconfig 1497 evb4510_config : unconfig
1494 @./mkconfig $(@:_config=) arm arm720t evb4510 1498 @./mkconfig $(@:_config=) arm arm720t evb4510
1495 1499
1496 ######################################################################### 1500 #########################################################################
1497 ## XScale Systems 1501 ## XScale Systems
1498 ######################################################################### 1502 #########################################################################
1499 1503
1500 adsvix_config : unconfig 1504 adsvix_config : unconfig
1501 @./mkconfig $(@:_config=) arm pxa adsvix 1505 @./mkconfig $(@:_config=) arm pxa adsvix
1502 1506
1503 cerf250_config : unconfig 1507 cerf250_config : unconfig
1504 @./mkconfig $(@:_config=) arm pxa cerf250 1508 @./mkconfig $(@:_config=) arm pxa cerf250
1505 1509
1506 cradle_config : unconfig 1510 cradle_config : unconfig
1507 @./mkconfig $(@:_config=) arm pxa cradle 1511 @./mkconfig $(@:_config=) arm pxa cradle
1508 1512
1509 csb226_config : unconfig 1513 csb226_config : unconfig
1510 @./mkconfig $(@:_config=) arm pxa csb226 1514 @./mkconfig $(@:_config=) arm pxa csb226
1511 1515
1512 innokom_config : unconfig 1516 innokom_config : unconfig
1513 @./mkconfig $(@:_config=) arm pxa innokom 1517 @./mkconfig $(@:_config=) arm pxa innokom
1514 1518
1515 ixdp425_config : unconfig 1519 ixdp425_config : unconfig
1516 @./mkconfig $(@:_config=) arm ixp ixdp425 1520 @./mkconfig $(@:_config=) arm ixp ixdp425
1517 1521
1518 lubbock_config : unconfig 1522 lubbock_config : unconfig
1519 @./mkconfig $(@:_config=) arm pxa lubbock 1523 @./mkconfig $(@:_config=) arm pxa lubbock
1520 1524
1521 logodl_config : unconfig 1525 logodl_config : unconfig
1522 @./mkconfig $(@:_config=) arm pxa logodl 1526 @./mkconfig $(@:_config=) arm pxa logodl
1523 1527
1524 wepep250_config : unconfig 1528 wepep250_config : unconfig
1525 @./mkconfig $(@:_config=) arm pxa wepep250 1529 @./mkconfig $(@:_config=) arm pxa wepep250
1526 1530
1527 xaeniax_config : unconfig 1531 xaeniax_config : unconfig
1528 @./mkconfig $(@:_config=) arm pxa xaeniax 1532 @./mkconfig $(@:_config=) arm pxa xaeniax
1529 1533
1530 xm250_config : unconfig 1534 xm250_config : unconfig
1531 @./mkconfig $(@:_config=) arm pxa xm250 1535 @./mkconfig $(@:_config=) arm pxa xm250
1532 1536
1533 xsengine_config : unconfig 1537 xsengine_config : unconfig
1534 @./mkconfig $(@:_config=) arm pxa xsengine 1538 @./mkconfig $(@:_config=) arm pxa xsengine
1535 1539
1536 ######################################################################### 1540 #########################################################################
1537 ## ARM1136 Systems 1541 ## ARM1136 Systems
1538 ######################################################################### 1542 #########################################################################
1539 omap2420h4_config : unconfig 1543 omap2420h4_config : unconfig
1540 @./mkconfig $(@:_config=) arm arm1136 omap2420h4 1544 @./mkconfig $(@:_config=) arm arm1136 omap2420h4
1541 1545
1542 #======================================================================== 1546 #========================================================================
1543 # i386 1547 # i386
1544 #======================================================================== 1548 #========================================================================
1545 ######################################################################### 1549 #########################################################################
1546 ## AMD SC520 CDP 1550 ## AMD SC520 CDP
1547 ######################################################################### 1551 #########################################################################
1548 sc520_cdp_config : unconfig 1552 sc520_cdp_config : unconfig
1549 @./mkconfig $(@:_config=) i386 i386 sc520_cdp 1553 @./mkconfig $(@:_config=) i386 i386 sc520_cdp
1550 1554
1551 sc520_spunk_config : unconfig 1555 sc520_spunk_config : unconfig
1552 @./mkconfig $(@:_config=) i386 i386 sc520_spunk 1556 @./mkconfig $(@:_config=) i386 i386 sc520_spunk
1553 1557
1554 sc520_spunk_rel_config : unconfig 1558 sc520_spunk_rel_config : unconfig
1555 @./mkconfig $(@:_config=) i386 i386 sc520_spunk 1559 @./mkconfig $(@:_config=) i386 i386 sc520_spunk
1556 1560
1557 #======================================================================== 1561 #========================================================================
1558 # MIPS 1562 # MIPS
1559 #======================================================================== 1563 #========================================================================
1560 ######################################################################### 1564 #########################################################################
1561 ## MIPS32 4Kc 1565 ## MIPS32 4Kc
1562 ######################################################################### 1566 #########################################################################
1563 1567
1564 xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1)))) 1568 xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1))))
1565 1569
1566 incaip_100MHz_config \ 1570 incaip_100MHz_config \
1567 incaip_133MHz_config \ 1571 incaip_133MHz_config \
1568 incaip_150MHz_config \ 1572 incaip_150MHz_config \
1569 incaip_config: unconfig 1573 incaip_config: unconfig
1570 @ >include/config.h 1574 @ >include/config.h
1571 @[ -z "$(findstring _100MHz,$@)" ] || \ 1575 @[ -z "$(findstring _100MHz,$@)" ] || \
1572 { echo "#define CPU_CLOCK_RATE 100000000" >>include/config.h ; \ 1576 { echo "#define CPU_CLOCK_RATE 100000000" >>include/config.h ; \
1573 echo "... with 100MHz system clock" ; \ 1577 echo "... with 100MHz system clock" ; \
1574 } 1578 }
1575 @[ -z "$(findstring _133MHz,$@)" ] || \ 1579 @[ -z "$(findstring _133MHz,$@)" ] || \
1576 { echo "#define CPU_CLOCK_RATE 133000000" >>include/config.h ; \ 1580 { echo "#define CPU_CLOCK_RATE 133000000" >>include/config.h ; \
1577 echo "... with 133MHz system clock" ; \ 1581 echo "... with 133MHz system clock" ; \
1578 } 1582 }
1579 @[ -z "$(findstring _150MHz,$@)" ] || \ 1583 @[ -z "$(findstring _150MHz,$@)" ] || \
1580 { echo "#define CPU_CLOCK_RATE 150000000" >>include/config.h ; \ 1584 { echo "#define CPU_CLOCK_RATE 150000000" >>include/config.h ; \
1581 echo "... with 150MHz system clock" ; \ 1585 echo "... with 150MHz system clock" ; \
1582 } 1586 }
1583 @./mkconfig -a $(call xtract_incaip,$@) mips mips incaip 1587 @./mkconfig -a $(call xtract_incaip,$@) mips mips incaip
1584 1588
1585 tb0229_config: unconfig 1589 tb0229_config: unconfig
1586 @./mkconfig $(@:_config=) mips mips tb0229 1590 @./mkconfig $(@:_config=) mips mips tb0229
1587 1591
1588 ######################################################################### 1592 #########################################################################
1589 ## MIPS32 AU1X00 1593 ## MIPS32 AU1X00
1590 ######################################################################### 1594 #########################################################################
1591 dbau1000_config : unconfig 1595 dbau1000_config : unconfig
1592 @ >include/config.h 1596 @ >include/config.h
1593 @echo "#define CONFIG_DBAU1000 1" >>include/config.h 1597 @echo "#define CONFIG_DBAU1000 1" >>include/config.h
1594 @./mkconfig -a dbau1x00 mips mips dbau1x00 1598 @./mkconfig -a dbau1x00 mips mips dbau1x00
1595 1599
1596 dbau1100_config : unconfig 1600 dbau1100_config : unconfig
1597 @ >include/config.h 1601 @ >include/config.h
1598 @echo "#define CONFIG_DBAU1100 1" >>include/config.h 1602 @echo "#define CONFIG_DBAU1100 1" >>include/config.h
1599 @./mkconfig -a dbau1x00 mips mips dbau1x00 1603 @./mkconfig -a dbau1x00 mips mips dbau1x00
1600 1604
1601 dbau1500_config : unconfig 1605 dbau1500_config : unconfig
1602 @ >include/config.h 1606 @ >include/config.h
1603 @echo "#define CONFIG_DBAU1500 1" >>include/config.h 1607 @echo "#define CONFIG_DBAU1500 1" >>include/config.h
1604 @./mkconfig -a dbau1x00 mips mips dbau1x00 1608 @./mkconfig -a dbau1x00 mips mips dbau1x00
1605 1609
1606 dbau1550_config : unconfig 1610 dbau1550_config : unconfig
1607 @ >include/config.h 1611 @ >include/config.h
1608 @echo "#define CONFIG_DBAU1550 1" >>include/config.h 1612 @echo "#define CONFIG_DBAU1550 1" >>include/config.h
1609 @./mkconfig -a dbau1x00 mips mips dbau1x00 1613 @./mkconfig -a dbau1x00 mips mips dbau1x00
1610 1614
1611 dbau1550_el_config : unconfig 1615 dbau1550_el_config : unconfig
1612 @ >include/config.h 1616 @ >include/config.h
1613 @echo "#define CONFIG_DBAU1550 1" >>include/config.h 1617 @echo "#define CONFIG_DBAU1550 1" >>include/config.h
1614 @./mkconfig -a dbau1x00 mips mips dbau1x00 "" little 1618 @./mkconfig -a dbau1x00 mips mips dbau1x00 "" little
1615 1619
1616 ######################################################################### 1620 #########################################################################
1617 ## MIPS64 5Kc 1621 ## MIPS64 5Kc
1618 ######################################################################### 1622 #########################################################################
1619 1623
1620 purple_config : unconfig 1624 purple_config : unconfig
1621 @./mkconfig $(@:_config=) mips mips purple 1625 @./mkconfig $(@:_config=) mips mips purple
1622 1626
1623 #======================================================================== 1627 #========================================================================
1624 # Nios 1628 # Nios
1625 #======================================================================== 1629 #========================================================================
1626 ######################################################################### 1630 #########################################################################
1627 ## Nios32 1631 ## Nios32
1628 ######################################################################### 1632 #########################################################################
1629 1633
1630 DK1C20_safe_32_config \ 1634 DK1C20_safe_32_config \
1631 DK1C20_standard_32_config \ 1635 DK1C20_standard_32_config \
1632 DK1C20_config: unconfig 1636 DK1C20_config: unconfig
1633 @ >include/config.h 1637 @ >include/config.h
1634 @[ -z "$(findstring _safe_32,$@)" ] || \ 1638 @[ -z "$(findstring _safe_32,$@)" ] || \
1635 { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \ 1639 { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \
1636 echo "... NIOS 'safe_32' configuration" ; \ 1640 echo "... NIOS 'safe_32' configuration" ; \
1637 } 1641 }
1638 @[ -z "$(findstring _standard_32,$@)" ] || \ 1642 @[ -z "$(findstring _standard_32,$@)" ] || \
1639 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ 1643 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
1640 echo "... NIOS 'standard_32' configuration" ; \ 1644 echo "... NIOS 'standard_32' configuration" ; \
1641 } 1645 }
1642 @[ -z "$(findstring DK1C20_config,$@)" ] || \ 1646 @[ -z "$(findstring DK1C20_config,$@)" ] || \
1643 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ 1647 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
1644 echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \ 1648 echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \
1645 } 1649 }
1646 @./mkconfig -a DK1C20 nios nios dk1c20 altera 1650 @./mkconfig -a DK1C20 nios nios dk1c20 altera
1647 1651
1648 DK1S10_safe_32_config \ 1652 DK1S10_safe_32_config \
1649 DK1S10_standard_32_config \ 1653 DK1S10_standard_32_config \
1650 DK1S10_mtx_ldk_20_config \ 1654 DK1S10_mtx_ldk_20_config \
1651 DK1S10_config: unconfig 1655 DK1S10_config: unconfig
1652 @ >include/config.h 1656 @ >include/config.h
1653 @[ -z "$(findstring _safe_32,$@)" ] || \ 1657 @[ -z "$(findstring _safe_32,$@)" ] || \
1654 { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \ 1658 { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \
1655 echo "... NIOS 'safe_32' configuration" ; \ 1659 echo "... NIOS 'safe_32' configuration" ; \
1656 } 1660 }
1657 @[ -z "$(findstring _standard_32,$@)" ] || \ 1661 @[ -z "$(findstring _standard_32,$@)" ] || \
1658 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ 1662 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
1659 echo "... NIOS 'standard_32' configuration" ; \ 1663 echo "... NIOS 'standard_32' configuration" ; \
1660 } 1664 }
1661 @[ -z "$(findstring _mtx_ldk_20,$@)" ] || \ 1665 @[ -z "$(findstring _mtx_ldk_20,$@)" ] || \
1662 { echo "#define CONFIG_NIOS_MTX_LDK_20 1" >>include/config.h ; \ 1666 { echo "#define CONFIG_NIOS_MTX_LDK_20 1" >>include/config.h ; \
1663 echo "... NIOS 'mtx_ldk_20' configuration" ; \ 1667 echo "... NIOS 'mtx_ldk_20' configuration" ; \
1664 } 1668 }
1665 @[ -z "$(findstring DK1S10_config,$@)" ] || \ 1669 @[ -z "$(findstring DK1S10_config,$@)" ] || \
1666 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \ 1670 { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
1667 echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \ 1671 echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \
1668 } 1672 }
1669 @./mkconfig -a DK1S10 nios nios dk1s10 altera 1673 @./mkconfig -a DK1S10 nios nios dk1s10 altera
1670 1674
1671 ADNPESC1_DNPEVA2_base_32_config \ 1675 ADNPESC1_DNPEVA2_base_32_config \
1672 ADNPESC1_base_32_config \ 1676 ADNPESC1_base_32_config \
1673 ADNPESC1_config: unconfig 1677 ADNPESC1_config: unconfig
1674 @ >include/config.h 1678 @ >include/config.h
1675 @[ -z "$(findstring _DNPEVA2,$@)" ] || \ 1679 @[ -z "$(findstring _DNPEVA2,$@)" ] || \
1676 { echo "#define CONFIG_DNPEVA2 1" >>include/config.h ; \ 1680 { echo "#define CONFIG_DNPEVA2 1" >>include/config.h ; \
1677 echo "... DNP/EVA2 configuration" ; \ 1681 echo "... DNP/EVA2 configuration" ; \
1678 } 1682 }
1679 @[ -z "$(findstring _base_32,$@)" ] || \ 1683 @[ -z "$(findstring _base_32,$@)" ] || \
1680 { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \ 1684 { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \
1681 echo "... NIOS 'base_32' configuration" ; \ 1685 echo "... NIOS 'base_32' configuration" ; \
1682 } 1686 }
1683 @[ -z "$(findstring ADNPESC1_config,$@)" ] || \ 1687 @[ -z "$(findstring ADNPESC1_config,$@)" ] || \
1684 { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \ 1688 { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \
1685 echo "... NIOS 'base_32' configuration (DEFAULT)" ; \ 1689 echo "... NIOS 'base_32' configuration (DEFAULT)" ; \
1686 } 1690 }
1687 @./mkconfig -a ADNPESC1 nios nios adnpesc1 ssv 1691 @./mkconfig -a ADNPESC1 nios nios adnpesc1 ssv
1688 1692
1689 ######################################################################### 1693 #########################################################################
1690 ## Nios-II 1694 ## Nios-II
1691 ######################################################################### 1695 #########################################################################
1692 1696
1693 PK1C20_config : unconfig 1697 PK1C20_config : unconfig
1694 @./mkconfig PK1C20 nios2 nios2 pk1c20 psyent 1698 @./mkconfig PK1C20 nios2 nios2 pk1c20 psyent
1695 1699
1696 PCI5441_config : unconfig 1700 PCI5441_config : unconfig
1697 @./mkconfig PCI5441 nios2 nios2 pci5441 psyent 1701 @./mkconfig PCI5441 nios2 nios2 pci5441 psyent
1698 1702
1699 #======================================================================== 1703 #========================================================================
1700 # MicroBlaze 1704 # MicroBlaze
1701 #======================================================================== 1705 #========================================================================
1702 ######################################################################### 1706 #########################################################################
1703 ## Microblaze 1707 ## Microblaze
1704 ######################################################################### 1708 #########################################################################
1705 suzaku_config: unconfig 1709 suzaku_config: unconfig
1706 @ >include/config.h 1710 @ >include/config.h
1707 @echo "#define CONFIG_SUZAKU 1" >> include/config.h 1711 @echo "#define CONFIG_SUZAKU 1" >> include/config.h
1708 @./mkconfig -a $(@:_config=) microblaze microblaze suzaku AtmarkTechno 1712 @./mkconfig -a $(@:_config=) microblaze microblaze suzaku AtmarkTechno
1709 1713
1710 ######################################################################### 1714 #########################################################################
1711 ######################################################################### 1715 #########################################################################
1712 1716
1713 clean: 1717 clean:
1714 find . -type f \ 1718 find . -type f \
1715 \( -name 'core' -o -name '*.bak' -o -name '*~' \ 1719 \( -name 'core' -o -name '*.bak' -o -name '*~' \
1716 -o -name '*.o' -o -name '*.a' \) -print \ 1720 -o -name '*.o' -o -name '*.a' \) -print \
1717 | xargs rm -f 1721 | xargs rm -f
1718 rm -f examples/hello_world examples/timer \ 1722 rm -f examples/hello_world examples/timer \
1719 examples/eepro100_eeprom examples/sched \ 1723 examples/eepro100_eeprom examples/sched \
1720 examples/mem_to_mem_idma2intr examples/82559_eeprom \ 1724 examples/mem_to_mem_idma2intr examples/82559_eeprom \
1721 examples/test_burst 1725 examples/test_burst
1722 rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr 1726 rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
1723 rm -f tools/mpc86x_clk tools/ncb 1727 rm -f tools/mpc86x_clk tools/ncb
1724 rm -f tools/easylogo/easylogo tools/bmp_logo 1728 rm -f tools/easylogo/easylogo tools/bmp_logo
1725 rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend 1729 rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend
1726 rm -f tools/env/fw_printenv tools/env/fw_setenv 1730 rm -f tools/env/fw_printenv tools/env/fw_setenv
1727 rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image 1731 rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image
1728 rm -f board/trab/trab_fkt 1732 rm -f board/trab/trab_fkt
1729 1733
1730 clobber: clean 1734 clobber: clean
1731 find . -type f \( -name .depend \ 1735 find . -type f \( -name .depend \
1732 -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \ 1736 -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
1733 -print0 \ 1737 -print0 \
1734 | xargs -0 rm -f 1738 | xargs -0 rm -f
1735 rm -f $(OBJS) *.bak tags TAGS 1739 rm -f $(OBJS) *.bak tags TAGS
1736 rm -fr *.*~ 1740 rm -fr *.*~
1737 rm -f u-boot u-boot.map u-boot.hex $(ALL) 1741 rm -f u-boot u-boot.map u-boot.hex $(ALL)
1738 rm -f tools/crc32.c tools/environment.c tools/env/crc32.c 1742 rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
1739 rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c 1743 rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
1740 rm -f include/asm/proc include/asm/arch include/asm 1744 rm -f include/asm/proc include/asm/arch include/asm
1741 1745
1742 mrproper \ 1746 mrproper \
1743 distclean: clobber unconfig 1747 distclean: clobber unconfig
1744 1748
1745 backup: 1749 backup:
1746 F=`basename $(TOPDIR)` ; cd .. ; \ 1750 F=`basename $(TOPDIR)` ; cd .. ; \
1747 gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F 1751 gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
1748 1752
1749 ######################################################################### 1753 #########################################################################
1750 1754
board/amcc/bamboo/bamboo.c
1 /* 1 /*
2 * (C) Copyright 2005 2 * (C) Copyright 2005
3 * Stefan Roese, DENX Software Engineering, sr@denx.de. 3 * Stefan Roese, DENX Software Engineering, sr@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 <common.h> 24 #include <common.h>
25 #include <asm/processor.h> 25 #include <asm/processor.h>
26 #include <spd_sdram.h> 26 #include <spd_sdram.h>
27 #include <ppc440.h> 27 #include <ppc440.h>
28 #include "bamboo.h" 28 #include "bamboo.h"
29 29
30 void ext_bus_cntlr_init(void); 30 void ext_bus_cntlr_init(void);
31 void configure_ppc440ep_pins(void); 31 void configure_ppc440ep_pins(void);
32 32
33 gpio_param_s gpio_tab[GPIO_GROUP_MAX][GPIO_MAX]; 33 gpio_param_s gpio_tab[GPIO_GROUP_MAX][GPIO_MAX];
34 #if 0 34 #if 0
35 { /* GPIO Alternate1 Alternate2 Alternate3 */ 35 { /* GPIO Alternate1 Alternate2 Alternate3 */
36 { 36 {
37 /* GPIO Core 0 */ 37 /* GPIO Core 0 */
38 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_0 -> EBC_ADDR(7) DMA_REQ(2) */ 38 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_0 -> EBC_ADDR(7) DMA_REQ(2) */
39 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_1 -> EBC_ADDR(6) DMA_ACK(2) */ 39 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_1 -> EBC_ADDR(6) DMA_ACK(2) */
40 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_2 -> EBC_ADDR(5) DMA_EOT/TC(2) */ 40 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_2 -> EBC_ADDR(5) DMA_EOT/TC(2) */
41 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_3 -> EBC_ADDR(4) DMA_REQ(3) */ 41 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_3 -> EBC_ADDR(4) DMA_REQ(3) */
42 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_4 -> EBC_ADDR(3) DMA_ACK(3) */ 42 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_4 -> EBC_ADDR(3) DMA_ACK(3) */
43 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_5 ................. */ 43 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_5 ................. */
44 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_6 -> EBC_CS_N(1) */ 44 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_6 -> EBC_CS_N(1) */
45 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_7 -> EBC_CS_N(2) */ 45 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_7 -> EBC_CS_N(2) */
46 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_8 -> EBC_CS_N(3) */ 46 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_8 -> EBC_CS_N(3) */
47 { GPIO0_BASE, GPIO_DIS, GPIO_ALT1 }, /* GPIO0_9 -> EBC_CS_N(4) */ 47 { GPIO0_BASE, GPIO_DIS, GPIO_ALT1 }, /* GPIO0_9 -> EBC_CS_N(4) */
48 { GPIO0_BASE, GPIO_OUT, GPIO_ALT1 }, /* GPIO0_10 -> EBC_CS_N(5) */ 48 { GPIO0_BASE, GPIO_OUT, GPIO_ALT1 }, /* GPIO0_10 -> EBC_CS_N(5) */
49 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_11 -> EBC_BUS_ERR */ 49 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_11 -> EBC_BUS_ERR */
50 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_12 -> ZII_p0Rxd(0) */ 50 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_12 -> ZII_p0Rxd(0) */
51 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_13 -> ZII_p0Rxd(1) */ 51 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_13 -> ZII_p0Rxd(1) */
52 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_14 -> ZII_p0Rxd(2) */ 52 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_14 -> ZII_p0Rxd(2) */
53 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_15 -> ZII_p0Rxd(3) */ 53 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_15 -> ZII_p0Rxd(3) */
54 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_16 -> ZII_p0Txd(0) */ 54 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_16 -> ZII_p0Txd(0) */
55 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_17 -> ZII_p0Txd(1) */ 55 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_17 -> ZII_p0Txd(1) */
56 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_18 -> ZII_p0Txd(2) */ 56 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_18 -> ZII_p0Txd(2) */
57 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_19 -> ZII_p0Txd(3) */ 57 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_19 -> ZII_p0Txd(3) */
58 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_20 -> ZII_p0Rx_er */ 58 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_20 -> ZII_p0Rx_er */
59 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_21 -> ZII_p0Rx_dv */ 59 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_21 -> ZII_p0Rx_dv */
60 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_22 -> ZII_p0RxCrs */ 60 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_22 -> ZII_p0RxCrs */
61 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_23 -> ZII_p0Tx_er */ 61 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_23 -> ZII_p0Tx_er */
62 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_24 -> ZII_p0Tx_en */ 62 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_24 -> ZII_p0Tx_en */
63 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_25 -> ZII_p0Col */ 63 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_25 -> ZII_p0Col */
64 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_26 -> USB2D_RXVALID */ 64 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_26 -> USB2D_RXVALID */
65 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_27 -> EXT_EBC_REQ USB2D_RXERROR */ 65 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_27 -> EXT_EBC_REQ USB2D_RXERROR */
66 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_28 -> USB2D_TXVALID */ 66 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_28 -> USB2D_TXVALID */
67 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_29 -> EBC_EXT_HDLA USB2D_PAD_SUSPNDM */ 67 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_29 -> EBC_EXT_HDLA USB2D_PAD_SUSPNDM */
68 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_30 -> EBC_EXT_ACK USB2D_XCVRSELECT */ 68 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_30 -> EBC_EXT_ACK USB2D_XCVRSELECT */
69 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_31 -> EBC_EXR_BUSREQ USB2D_TERMSELECT */ 69 { GPIO0_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO0_31 -> EBC_EXR_BUSREQ USB2D_TERMSELECT */
70 }, 70 },
71 { 71 {
72 /* GPIO Core 1 */ 72 /* GPIO Core 1 */
73 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_0 -> USB2D_OPMODE0 */ 73 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_0 -> USB2D_OPMODE0 */
74 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_1 -> USB2D_OPMODE1 */ 74 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_1 -> USB2D_OPMODE1 */
75 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_2 -> UART0_DCD_N UART1_DSR_CTS_N UART2_SOUT */ 75 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_2 -> UART0_DCD_N UART1_DSR_CTS_N UART2_SOUT */
76 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_3 -> UART0_8PIN_DSR_N UART1_RTS_DTR_N UART2_SIN */ 76 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_3 -> UART0_8PIN_DSR_N UART1_RTS_DTR_N UART2_SIN */
77 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_4 -> UART0_8PIN_CTS_N UART3_SIN */ 77 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_4 -> UART0_8PIN_CTS_N UART3_SIN */
78 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_5 -> UART0_RTS_N */ 78 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_5 -> UART0_RTS_N */
79 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_6 -> UART0_DTR_N UART1_SOUT */ 79 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_6 -> UART0_DTR_N UART1_SOUT */
80 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_7 -> UART0_RI_N UART1_SIN */ 80 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_7 -> UART0_RI_N UART1_SIN */
81 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_8 -> UIC_IRQ(0) */ 81 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_8 -> UIC_IRQ(0) */
82 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_9 -> UIC_IRQ(1) */ 82 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_9 -> UIC_IRQ(1) */
83 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_10 -> UIC_IRQ(2) */ 83 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_10 -> UIC_IRQ(2) */
84 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_11 -> UIC_IRQ(3) */ 84 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_11 -> UIC_IRQ(3) */
85 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_12 -> UIC_IRQ(4) DMA_ACK(1) */ 85 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_12 -> UIC_IRQ(4) DMA_ACK(1) */
86 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_13 -> UIC_IRQ(6) DMA_EOT/TC(1) */ 86 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_13 -> UIC_IRQ(6) DMA_EOT/TC(1) */
87 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_14 -> UIC_IRQ(7) DMA_REQ(0) */ 87 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_14 -> UIC_IRQ(7) DMA_REQ(0) */
88 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_15 -> UIC_IRQ(8) DMA_ACK(0) */ 88 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_15 -> UIC_IRQ(8) DMA_ACK(0) */
89 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_16 -> UIC_IRQ(9) DMA_EOT/TC(0) */ 89 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_16 -> UIC_IRQ(9) DMA_EOT/TC(0) */
90 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_17 -> - */ 90 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_17 -> - */
91 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_18 -> | */ 91 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_18 -> | */
92 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_19 -> | */ 92 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_19 -> | */
93 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_20 -> | */ 93 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_20 -> | */
94 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_21 -> | */ 94 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_21 -> | */
95 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_22 -> | */ 95 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_22 -> | */
96 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_23 -> \ Can be unselected thru TraceSelect Bit */ 96 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_23 -> \ Can be unselected thru TraceSelect Bit */
97 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_24 -> / in PowerPC440EP Chip */ 97 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_24 -> / in PowerPC440EP Chip */
98 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_25 -> | */ 98 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_25 -> | */
99 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_26 -> | */ 99 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_26 -> | */
100 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_27 -> | */ 100 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_27 -> | */
101 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_28 -> | */ 101 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_28 -> | */
102 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_29 -> | */ 102 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_29 -> | */
103 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_30 -> | */ 103 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_30 -> | */
104 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_31 -> - */ 104 { GPIO1_BASE, GPIO_DIS, GPIO_SEL }, /* GPIO1_31 -> - */
105 } 105 }
106 }; 106 };
107 #endif 107 #endif
108 108
109 /*----------------------------------------------------------------------------+ 109 /*----------------------------------------------------------------------------+
110 | EBC Devices Characteristics 110 | EBC Devices Characteristics
111 | Peripheral Bank Access Parameters - EBC0_BnAP 111 | Peripheral Bank Access Parameters - EBC0_BnAP
112 | Peripheral Bank Configuration Register - EBC0_BnCR 112 | Peripheral Bank Configuration Register - EBC0_BnCR
113 +----------------------------------------------------------------------------*/ 113 +----------------------------------------------------------------------------*/
114 /* Small Flash */ 114 /* Small Flash */
115 #define EBC0_BNAP_SMALL_FLASH EBC0_BNAP_BME_DISABLED | \ 115 #define EBC0_BNAP_SMALL_FLASH \
116 EBC0_BNAP_TWT_ENCODE(6) | \ 116 EBC0_BNAP_BME_DISABLED | \
117 EBC0_BNAP_CSN_ENCODE(0) | \ 117 EBC0_BNAP_TWT_ENCODE(6) | \
118 EBC0_BNAP_OEN_ENCODE(1) | \ 118 EBC0_BNAP_CSN_ENCODE(0) | \
119 EBC0_BNAP_WBN_ENCODE(1) | \ 119 EBC0_BNAP_OEN_ENCODE(1) | \
120 EBC0_BNAP_WBF_ENCODE(3) | \ 120 EBC0_BNAP_WBN_ENCODE(1) | \
121 EBC0_BNAP_TH_ENCODE(1) | \ 121 EBC0_BNAP_WBF_ENCODE(3) | \
122 EBC0_BNAP_RE_ENABLED | \ 122 EBC0_BNAP_TH_ENCODE(1) | \
123 EBC0_BNAP_SOR_DELAYED | \ 123 EBC0_BNAP_RE_ENABLED | \
124 EBC0_BNAP_BEM_WRITEONLY | \ 124 EBC0_BNAP_SOR_DELAYED | \
125 EBC0_BNAP_BEM_WRITEONLY | \
125 EBC0_BNAP_PEN_DISABLED 126 EBC0_BNAP_PEN_DISABLED
126 127
127 #define EBC0_BNCR_SMALL_FLASH_CS0 EBC0_BNCR_BAS_ENCODE(0xFFF00000) | \ 128 #define EBC0_BNCR_SMALL_FLASH_CS0 \
128 EBC0_BNCR_BS_1MB | \ 129 EBC0_BNCR_BAS_ENCODE(0xFFF00000) | \
129 EBC0_BNCR_BU_RW | \ 130 EBC0_BNCR_BS_1MB | \
131 EBC0_BNCR_BU_RW | \
130 EBC0_BNCR_BW_8BIT 132 EBC0_BNCR_BW_8BIT
131 133
132 #define EBC0_BNCR_SMALL_FLASH_CS4 EBC0_BNCR_BAS_ENCODE(0x87800000) | \ 134 #define EBC0_BNCR_SMALL_FLASH_CS4 \
133 EBC0_BNCR_BS_8MB | \ 135 EBC0_BNCR_BAS_ENCODE(0x87800000) | \
134 EBC0_BNCR_BU_RW | \ 136 EBC0_BNCR_BS_8MB | \
137 EBC0_BNCR_BU_RW | \
135 EBC0_BNCR_BW_16BIT 138 EBC0_BNCR_BW_16BIT
136 139
137 /* Large Flash or SRAM */ 140 /* Large Flash or SRAM */
138 #define EBC0_BNAP_LARGE_FLASH_OR_SRAM EBC0_BNAP_BME_DISABLED | \ 141 #define EBC0_BNAP_LARGE_FLASH_OR_SRAM \
139 EBC0_BNAP_TWT_ENCODE(8) | \ 142 EBC0_BNAP_BME_DISABLED | \
140 EBC0_BNAP_CSN_ENCODE(0) | \ 143 EBC0_BNAP_TWT_ENCODE(8) | \
141 EBC0_BNAP_OEN_ENCODE(1) | \ 144 EBC0_BNAP_CSN_ENCODE(0) | \
142 EBC0_BNAP_WBN_ENCODE(1) | \ 145 EBC0_BNAP_OEN_ENCODE(1) | \
143 EBC0_BNAP_WBF_ENCODE(1) | \ 146 EBC0_BNAP_WBN_ENCODE(1) | \
144 EBC0_BNAP_TH_ENCODE(2) | \ 147 EBC0_BNAP_WBF_ENCODE(1) | \
145 EBC0_BNAP_SOR_DELAYED | \ 148 EBC0_BNAP_TH_ENCODE(2) | \
146 EBC0_BNAP_BEM_RW | \ 149 EBC0_BNAP_SOR_DELAYED | \
150 EBC0_BNAP_BEM_RW | \
147 EBC0_BNAP_PEN_DISABLED 151 EBC0_BNAP_PEN_DISABLED
148 152
149 #define EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS0 EBC0_BNCR_BAS_ENCODE(0xFF800000) | \ 153 #define EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS0 \
150 EBC0_BNCR_BS_8MB | \ 154 EBC0_BNCR_BAS_ENCODE(0xFF800000) | \
151 EBC0_BNCR_BU_RW | \ 155 EBC0_BNCR_BS_8MB | \
156 EBC0_BNCR_BU_RW | \
152 EBC0_BNCR_BW_16BIT 157 EBC0_BNCR_BW_16BIT
153 158
154 159
155 #define EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4 EBC0_BNCR_BAS_ENCODE(0x87800000) | \ 160 #define EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4 \
156 EBC0_BNCR_BS_8MB | \ 161 EBC0_BNCR_BAS_ENCODE(0x87800000) | \
157 EBC0_BNCR_BU_RW | \ 162 EBC0_BNCR_BS_8MB | \
163 EBC0_BNCR_BU_RW | \
158 EBC0_BNCR_BW_16BIT 164 EBC0_BNCR_BW_16BIT
159 165
160 /* NVRAM - FPGA */ 166 /* NVRAM - FPGA */
161 #define EBC0_BNAP_NVRAM_FPGA EBC0_BNAP_BME_DISABLED | \ 167 #define EBC0_BNAP_NVRAM_FPGA \
162 EBC0_BNAP_TWT_ENCODE(9) | \ 168 EBC0_BNAP_BME_DISABLED | \
163 EBC0_BNAP_CSN_ENCODE(0) | \ 169 EBC0_BNAP_TWT_ENCODE(9) | \
164 EBC0_BNAP_OEN_ENCODE(1) | \ 170 EBC0_BNAP_CSN_ENCODE(0) | \
165 EBC0_BNAP_WBN_ENCODE(1) | \ 171 EBC0_BNAP_OEN_ENCODE(1) | \
166 EBC0_BNAP_WBF_ENCODE(0) | \ 172 EBC0_BNAP_WBN_ENCODE(1) | \
167 EBC0_BNAP_TH_ENCODE(2) | \ 173 EBC0_BNAP_WBF_ENCODE(0) | \
168 EBC0_BNAP_RE_ENABLED | \ 174 EBC0_BNAP_TH_ENCODE(2) | \
169 EBC0_BNAP_SOR_DELAYED | \ 175 EBC0_BNAP_RE_ENABLED | \
170 EBC0_BNAP_BEM_WRITEONLY | \ 176 EBC0_BNAP_SOR_DELAYED | \
177 EBC0_BNAP_BEM_WRITEONLY | \
171 EBC0_BNAP_PEN_DISABLED 178 EBC0_BNAP_PEN_DISABLED
172 179
173 #define EBC0_BNCR_NVRAM_FPGA_CS5 EBC0_BNCR_BAS_ENCODE(0x80000000) | \ 180 #define EBC0_BNCR_NVRAM_FPGA_CS5 \
174 EBC0_BNCR_BS_1MB | \ 181 EBC0_BNCR_BAS_ENCODE(0x80000000) | \
175 EBC0_BNCR_BU_RW | \ 182 EBC0_BNCR_BS_1MB | \
183 EBC0_BNCR_BU_RW | \
176 EBC0_BNCR_BW_8BIT 184 EBC0_BNCR_BW_8BIT
177 185
178 /* Nand Flash */ 186 /* Nand Flash */
179 #define EBC0_BNAP_NAND_FLASH EBC0_BNAP_BME_DISABLED | \ 187 #define EBC0_BNAP_NAND_FLASH \
180 EBC0_BNAP_TWT_ENCODE(3) | \ 188 EBC0_BNAP_BME_DISABLED | \
181 EBC0_BNAP_CSN_ENCODE(0) | \ 189 EBC0_BNAP_TWT_ENCODE(3) | \
182 EBC0_BNAP_OEN_ENCODE(0) | \ 190 EBC0_BNAP_CSN_ENCODE(0) | \
183 EBC0_BNAP_WBN_ENCODE(0) | \ 191 EBC0_BNAP_OEN_ENCODE(0) | \
184 EBC0_BNAP_WBF_ENCODE(0) | \ 192 EBC0_BNAP_WBN_ENCODE(0) | \
185 EBC0_BNAP_TH_ENCODE(1) | \ 193 EBC0_BNAP_WBF_ENCODE(0) | \
186 EBC0_BNAP_RE_ENABLED | \ 194 EBC0_BNAP_TH_ENCODE(1) | \
187 EBC0_BNAP_SOR_NOT_DELAYED | \ 195 EBC0_BNAP_RE_ENABLED | \
188 EBC0_BNAP_BEM_RW | \ 196 EBC0_BNAP_SOR_NOT_DELAYED | \
197 EBC0_BNAP_BEM_RW | \
189 EBC0_BNAP_PEN_DISABLED 198 EBC0_BNAP_PEN_DISABLED
190 199
191 200
192 #define EBC0_BNCR_NAND_FLASH_CS0 0xB8400000 201 #define EBC0_BNCR_NAND_FLASH_CS0 0xB8400000
193 202
194 /* NAND0 */ 203 /* NAND0 */
195 #define EBC0_BNCR_NAND_FLASH_CS1 EBC0_BNCR_BAS_ENCODE(0x90000000) | \ 204 #define EBC0_BNCR_NAND_FLASH_CS1 \
196 EBC0_BNCR_BS_1MB | \ 205 EBC0_BNCR_BAS_ENCODE(0x90000000) | \
197 EBC0_BNCR_BU_RW | \ 206 EBC0_BNCR_BS_1MB | \
207 EBC0_BNCR_BU_RW | \
198 EBC0_BNCR_BW_32BIT 208 EBC0_BNCR_BW_32BIT
199 /* NAND1 - Bank2 */ 209 /* NAND1 - Bank2 */
200 #define EBC0_BNCR_NAND_FLASH_CS2 EBC0_BNCR_BAS_ENCODE(0x94000000) | \ 210 #define EBC0_BNCR_NAND_FLASH_CS2 \
201 EBC0_BNCR_BS_1MB | \ 211 EBC0_BNCR_BAS_ENCODE(0x94000000) | \
202 EBC0_BNCR_BU_RW | \ 212 EBC0_BNCR_BS_1MB | \
213 EBC0_BNCR_BU_RW | \
203 EBC0_BNCR_BW_32BIT 214 EBC0_BNCR_BW_32BIT
204 215
205 /* NAND1 - Bank3 */ 216 /* NAND1 - Bank3 */
206 #define EBC0_BNCR_NAND_FLASH_CS3 EBC0_BNCR_BAS_ENCODE(0x94000000) | \ 217 #define EBC0_BNCR_NAND_FLASH_CS3 \
207 EBC0_BNCR_BS_1MB | \ 218 EBC0_BNCR_BAS_ENCODE(0x94000000) | \
208 EBC0_BNCR_BU_RW | \ 219 EBC0_BNCR_BS_1MB | \
220 EBC0_BNCR_BU_RW | \
209 EBC0_BNCR_BW_32BIT 221 EBC0_BNCR_BW_32BIT
210 222
211 int board_early_init_f(void) 223 int board_early_init_f(void)
212 { 224 {
213 ext_bus_cntlr_init(); 225 ext_bus_cntlr_init();
214 226
215 /*-------------------------------------------------------------------- 227 /*--------------------------------------------------------------------
216 * Setup the interrupt controller polarities, triggers, etc. 228 * Setup the interrupt controller polarities, triggers, etc.
217 *-------------------------------------------------------------------*/ 229 *-------------------------------------------------------------------*/
218 mtdcr(uic0sr, 0xffffffff); /* clear all */ 230 mtdcr(uic0sr, 0xffffffff); /* clear all */
219 mtdcr(uic0er, 0x00000000); /* disable all */ 231 mtdcr(uic0er, 0x00000000); /* disable all */
220 mtdcr(uic0cr, 0x00000009); /* ATI & UIC1 crit are critical */ 232 mtdcr(uic0cr, 0x00000009); /* ATI & UIC1 crit are critical */
221 mtdcr(uic0pr, 0xfffffe13); /* per ref-board manual */ 233 mtdcr(uic0pr, 0xfffffe13); /* per ref-board manual */
222 mtdcr(uic0tr, 0x01c00008); /* per ref-board manual */ 234 mtdcr(uic0tr, 0x01c00008); /* per ref-board manual */
223 mtdcr(uic0vr, 0x00000001); /* int31 highest, base=0x000 */ 235 mtdcr(uic0vr, 0x00000001); /* int31 highest, base=0x000 */
224 mtdcr(uic0sr, 0xffffffff); /* clear all */ 236 mtdcr(uic0sr, 0xffffffff); /* clear all */
225 237
226 mtdcr(uic1sr, 0xffffffff); /* clear all */ 238 mtdcr(uic1sr, 0xffffffff); /* clear all */
227 mtdcr(uic1er, 0x00000000); /* disable all */ 239 mtdcr(uic1er, 0x00000000); /* disable all */
228 mtdcr(uic1cr, 0x00000000); /* all non-critical */ 240 mtdcr(uic1cr, 0x00000000); /* all non-critical */
229 mtdcr(uic1pr, 0xffffe0ff); /* per ref-board manual */ 241 mtdcr(uic1pr, 0xffffe0ff); /* per ref-board manual */
230 mtdcr(uic1tr, 0x00ffc000); /* per ref-board manual */ 242 mtdcr(uic1tr, 0x00ffc000); /* per ref-board manual */
231 mtdcr(uic1vr, 0x00000001); /* int31 highest, base=0x000 */ 243 mtdcr(uic1vr, 0x00000001); /* int31 highest, base=0x000 */
232 mtdcr(uic1sr, 0xffffffff); /* clear all */ 244 mtdcr(uic1sr, 0xffffffff); /* clear all */
233 245
234 /*-------------------------------------------------------------------- 246 /*--------------------------------------------------------------------
235 * Setup the GPIO pins 247 * Setup the GPIO pins
236 *-------------------------------------------------------------------*/ 248 *-------------------------------------------------------------------*/
237 out32(GPIO0_OSRL, 0x00000400); 249 out32(GPIO0_OSRL, 0x00000400);
238 out32(GPIO0_OSRH, 0x00000000); 250 out32(GPIO0_OSRH, 0x00000000);
239 out32(GPIO0_TSRL, 0x00000400); 251 out32(GPIO0_TSRL, 0x00000400);
240 out32(GPIO0_TSRH, 0x00000000); 252 out32(GPIO0_TSRH, 0x00000000);
241 out32(GPIO0_ISR1L, 0x00000000); 253 out32(GPIO0_ISR1L, 0x00000000);
242 out32(GPIO0_ISR1H, 0x00000000); 254 out32(GPIO0_ISR1H, 0x00000000);
243 out32(GPIO0_ISR2L, 0x00000000); 255 out32(GPIO0_ISR2L, 0x00000000);
244 out32(GPIO0_ISR2H, 0x00000000); 256 out32(GPIO0_ISR2H, 0x00000000);
245 out32(GPIO0_ISR3L, 0x00000000); 257 out32(GPIO0_ISR3L, 0x00000000);
246 out32(GPIO0_ISR3H, 0x00000000); 258 out32(GPIO0_ISR3H, 0x00000000);
247 259
248 out32(GPIO1_OSRL, 0x0C380000); 260 out32(GPIO1_OSRL, 0x0C380000);
249 out32(GPIO1_OSRH, 0x00000000); 261 out32(GPIO1_OSRH, 0x00000000);
250 out32(GPIO1_TSRL, 0x0C380000); 262 out32(GPIO1_TSRL, 0x0C380000);
251 out32(GPIO1_TSRH, 0x00000000); 263 out32(GPIO1_TSRH, 0x00000000);
252 out32(GPIO1_ISR1L, 0x0FC30000); 264 out32(GPIO1_ISR1L, 0x0FC30000);
253 out32(GPIO1_ISR1H, 0x00000000); 265 out32(GPIO1_ISR1H, 0x00000000);
254 out32(GPIO1_ISR2L, 0x0C010000); 266 out32(GPIO1_ISR2L, 0x0C010000);
255 out32(GPIO1_ISR2H, 0x00000000); 267 out32(GPIO1_ISR2H, 0x00000000);
256 out32(GPIO1_ISR3L, 0x01400000); 268 out32(GPIO1_ISR3L, 0x01400000);
257 out32(GPIO1_ISR3H, 0x00000000); 269 out32(GPIO1_ISR3H, 0x00000000);
258 270
259 configure_ppc440ep_pins(); 271 configure_ppc440ep_pins();
260 272
261 return 0; 273 return 0;
262 } 274 }
263 275
264 int checkboard(void) 276 int checkboard(void)
265 { 277 {
266 sys_info_t sysinfo; 278 sys_info_t sysinfo;
267 unsigned char *s = getenv("serial#"); 279 unsigned char *s = getenv("serial#");
268 280
269 get_sys_info(&sysinfo); 281 get_sys_info(&sysinfo);
270 282
271 printf("Board: Bamboo - AMCC PPC440EP Evaluation Board"); 283 printf("Board: Bamboo - AMCC PPC440EP Evaluation Board");
272 if (s != NULL) { 284 if (s != NULL) {
273 puts(", serial# "); 285 puts(", serial# ");
274 puts(s); 286 puts(s);
275 } 287 }
276 putc('\n'); 288 putc('\n');
277 289
278 printf("\tVCO: %lu MHz\n", sysinfo.freqVCOMhz / 1000000); 290 printf("\tVCO: %lu MHz\n", sysinfo.freqVCOMhz / 1000000);
279 printf("\tCPU: %lu MHz\n", sysinfo.freqProcessor / 1000000); 291 printf("\tCPU: %lu MHz\n", sysinfo.freqProcessor / 1000000);
280 printf("\tPLB: %lu MHz\n", sysinfo.freqPLB / 1000000); 292 printf("\tPLB: %lu MHz\n", sysinfo.freqPLB / 1000000);
281 printf("\tOPB: %lu MHz\n", sysinfo.freqOPB / 1000000); 293 printf("\tOPB: %lu MHz\n", sysinfo.freqOPB / 1000000);
282 printf("\tEPB: %lu MHz\n", sysinfo.freqEPB / 1000000); 294 printf("\tEPB: %lu MHz\n", sysinfo.freqEPB / 1000000);
283 295
284 return (0); 296 return (0);
285 } 297 }
286 298
287 /************************************************************************* 299 /*************************************************************************
288 * 300 *
289 * fixed_sdram_init -- Bamboo has one bank onboard sdram (plus DIMM) 301 * fixed_sdram_init -- Bamboo has one bank onboard sdram (plus DIMM)
290 * 302 *
291 * Fixed memory is composed of : 303 * Fixed memory is composed of :
292 * MT46V16M16TG-75 from Micron (x 2), 256Mb, 16 M x16, DDR266, 304 * MT46V16M16TG-75 from Micron (x 2), 256Mb, 16 M x16, DDR266,
293 * 13 row add bits, 10 column add bits (but 12 row used only). 305 * 13 row add bits, 10 column add bits (but 12 row used only).
294 * ECC device: MT46V16M8TG-75 from Micron (x 1), 128Mb, x8, DDR266, 306 * ECC device: MT46V16M8TG-75 from Micron (x 1), 128Mb, x8, DDR266,
295 * 12 row add bits, 10 column add bits. 307 * 12 row add bits, 10 column add bits.
296 * Prepare a subset (only the used ones) of SPD data 308 * Prepare a subset (only the used ones) of SPD data
297 * 309 *
298 * Note : if the ECC is enabled (SDRAM_ECC_ENABLE) the size of 310 * Note : if the ECC is enabled (SDRAM_ECC_ENABLE) the size of
299 * the corresponding bank is divided by 2 due to number of Row addresses 311 * the corresponding bank is divided by 2 due to number of Row addresses
300 * 12 in the ECC module 312 * 12 in the ECC module
301 * 313 *
302 * Assumes: 64 MB, ECC, non-registered 314 * Assumes: 64 MB, ECC, non-registered
303 * PLB @ 133 MHz 315 * PLB @ 133 MHz
304 * 316 *
305 ************************************************************************/ 317 ************************************************************************/
306 void fixed_sdram_init(void) 318 void fixed_sdram_init(void)
307 { 319 {
308 /* 320 /*
309 * clear this first, if the DDR is enabled by a debugger 321 * clear this first, if the DDR is enabled by a debugger
310 * then you can not make changes. 322 * then you can not make changes.
311 */ 323 */
312 mtsdram(mem_cfg0, 0x00000000); /* Disable EEC */ 324 mtsdram(mem_cfg0, 0x00000000); /* Disable EEC */
313 325
314 /*-------------------------------------------------------------------- 326 /*--------------------------------------------------------------------
315 * Setup for board-specific specific mem 327 * Setup for board-specific specific mem
316 *------------------------------------------------------------------*/ 328 *------------------------------------------------------------------*/
317 /* 329 /*
318 * Following for CAS Latency = 2.5 @ 133 MHz PLB 330 * Following for CAS Latency = 2.5 @ 133 MHz PLB
319 */ 331 */
320 mtsdram(mem_b0cr, 0x00082001); 332 mtsdram(mem_b0cr, 0x00082001);
321 mtsdram(mem_b1cr, 0x00000000); 333 mtsdram(mem_b1cr, 0x00000000);
322 mtsdram(mem_b2cr, 0x00000000); 334 mtsdram(mem_b2cr, 0x00000000);
323 mtsdram(mem_b3cr, 0x00000000); 335 mtsdram(mem_b3cr, 0x00000000);
324 } 336 }
325 337
326 long int initdram (int board_type) 338 long int initdram (int board_type)
327 { 339 {
328 long dram_size = 0; 340 long dram_size = 0;
329 341
330 /* 342 /*
331 * First init bank0 (onboard sdram) and then configure the DIMM-slots 343 * First init bank0 (onboard sdram) and then configure the DIMM-slots
332 */ 344 */
333 fixed_sdram_init(); 345 fixed_sdram_init();
334 dram_size = spd_sdram (0); 346 dram_size = spd_sdram (0);
335 347
336 return dram_size; 348 return dram_size;
337 } 349 }
338 350
339 #if defined(CFG_DRAM_TEST) 351 #if defined(CFG_DRAM_TEST)
340 int testdram(void) 352 int testdram(void)
341 { 353 {
342 unsigned long *mem = (unsigned long *)0; 354 unsigned long *mem = (unsigned long *)0;
343 const unsigned long kend = (1024 / sizeof(unsigned long)); 355 const unsigned long kend = (1024 / sizeof(unsigned long));
344 unsigned long k, n; 356 unsigned long k, n;
345 357
346 mtmsr(0); 358 mtmsr(0);
347 359
348 for (k = 0; k < CFG_KBYTES_SDRAM; 360 for (k = 0; k < CFG_KBYTES_SDRAM;
349 ++k, mem += (1024 / sizeof(unsigned long))) { 361 ++k, mem += (1024 / sizeof(unsigned long))) {
350 if ((k & 1023) == 0) { 362 if ((k & 1023) == 0) {
351 printf("%3d MB\r", k / 1024); 363 printf("%3d MB\r", k / 1024);
352 } 364 }
353 365
354 memset(mem, 0xaaaaaaaa, 1024); 366 memset(mem, 0xaaaaaaaa, 1024);
355 for (n = 0; n < kend; ++n) { 367 for (n = 0; n < kend; ++n) {
356 if (mem[n] != 0xaaaaaaaa) { 368 if (mem[n] != 0xaaaaaaaa) {
357 printf("SDRAM test fails at: %08x\n", 369 printf("SDRAM test fails at: %08x\n",
358 (uint) & mem[n]); 370 (uint) & mem[n]);
359 return 1; 371 return 1;
360 } 372 }
361 } 373 }
362 374
363 memset(mem, 0x55555555, 1024); 375 memset(mem, 0x55555555, 1024);
364 for (n = 0; n < kend; ++n) { 376 for (n = 0; n < kend; ++n) {
365 if (mem[n] != 0x55555555) { 377 if (mem[n] != 0x55555555) {
366 printf("SDRAM test fails at: %08x\n", 378 printf("SDRAM test fails at: %08x\n",
367 (uint) & mem[n]); 379 (uint) & mem[n]);
368 return 1; 380 return 1;
369 } 381 }
370 } 382 }
371 } 383 }
372 printf("SDRAM test passes\n"); 384 printf("SDRAM test passes\n");
373 return 0; 385 return 0;
374 } 386 }
375 #endif 387 #endif
376 388
377 /************************************************************************* 389 /*************************************************************************
378 * pci_pre_init 390 * pci_pre_init
379 * 391 *
380 * This routine is called just prior to registering the hose and gives 392 * This routine is called just prior to registering the hose and gives
381 * the board the opportunity to check things. Returning a value of zero 393 * the board the opportunity to check things. Returning a value of zero
382 * indicates that things are bad & PCI initialization should be aborted. 394 * indicates that things are bad & PCI initialization should be aborted.
383 * 395 *
384 * Different boards may wish to customize the pci controller structure 396 * Different boards may wish to customize the pci controller structure
385 * (add regions, override default access routines, etc) or perform 397 * (add regions, override default access routines, etc) or perform
386 * certain pre-initialization actions. 398 * certain pre-initialization actions.
387 * 399 *
388 ************************************************************************/ 400 ************************************************************************/
389 #if defined(CONFIG_PCI) && defined(CFG_PCI_PRE_INIT) 401 #if defined(CONFIG_PCI) && defined(CFG_PCI_PRE_INIT)
390 int pci_pre_init(struct pci_controller *hose) 402 int pci_pre_init(struct pci_controller *hose)
391 { 403 {
392 unsigned long strap; 404 unsigned long strap;
393 unsigned long addr; 405 unsigned long addr;
394 406
395 /*--------------------------------------------------------------------------+ 407 /*--------------------------------------------------------------------------+
396 * Bamboo is always configured as the host & requires the 408 * Bamboo is always configured as the host & requires the
397 * PCI arbiter to be enabled. 409 * PCI arbiter to be enabled.
398 *--------------------------------------------------------------------------*/ 410 *--------------------------------------------------------------------------*/
399 mfsdr(sdr_sdstp1, strap); 411 mfsdr(sdr_sdstp1, strap);
400 if ((strap & SDR0_SDSTP1_PAE_MASK) == 0) { 412 if ((strap & SDR0_SDSTP1_PAE_MASK) == 0) {
401 printf("PCI: SDR0_STRP1[PAE] not set.\n"); 413 printf("PCI: SDR0_STRP1[PAE] not set.\n");
402 printf("PCI: Configuration aborted.\n"); 414 printf("PCI: Configuration aborted.\n");
403 return 0; 415 return 0;
404 } 416 }
405 417
406 /*-------------------------------------------------------------------------+ 418 /*-------------------------------------------------------------------------+
407 | Set priority for all PLB3 devices to 0. 419 | Set priority for all PLB3 devices to 0.
408 | Set PLB3 arbiter to fair mode. 420 | Set PLB3 arbiter to fair mode.
409 +-------------------------------------------------------------------------*/ 421 +-------------------------------------------------------------------------*/
410 mfsdr(sdr_amp1, addr); 422 mfsdr(sdr_amp1, addr);
411 mtsdr(sdr_amp1, (addr & 0x000000FF) | 0x0000FF00); 423 mtsdr(sdr_amp1, (addr & 0x000000FF) | 0x0000FF00);
412 addr = mfdcr(plb3_acr); 424 addr = mfdcr(plb3_acr);
413 mtdcr(plb3_acr, addr | 0x80000000); 425 mtdcr(plb3_acr, addr | 0x80000000);
414 426
415 /*-------------------------------------------------------------------------+ 427 /*-------------------------------------------------------------------------+
416 | Set priority for all PLB4 devices to 0. 428 | Set priority for all PLB4 devices to 0.
417 +-------------------------------------------------------------------------*/ 429 +-------------------------------------------------------------------------*/
418 mfsdr(sdr_amp0, addr); 430 mfsdr(sdr_amp0, addr);
419 mtsdr(sdr_amp0, (addr & 0x000000FF) | 0x0000FF00); 431 mtsdr(sdr_amp0, (addr & 0x000000FF) | 0x0000FF00);
420 addr = mfdcr(plb4_acr) | 0xa0000000; /* Was 0x8---- */ 432 addr = mfdcr(plb4_acr) | 0xa0000000; /* Was 0x8---- */
421 mtdcr(plb4_acr, addr); 433 mtdcr(plb4_acr, addr);
422 434
423 /*-------------------------------------------------------------------------+ 435 /*-------------------------------------------------------------------------+
424 | Set Nebula PLB4 arbiter to fair mode. 436 | Set Nebula PLB4 arbiter to fair mode.
425 +-------------------------------------------------------------------------*/ 437 +-------------------------------------------------------------------------*/
426 /* Segment0 */ 438 /* Segment0 */
427 addr = (mfdcr(plb0_acr) & ~plb0_acr_ppm_mask) | plb0_acr_ppm_fair; 439 addr = (mfdcr(plb0_acr) & ~plb0_acr_ppm_mask) | plb0_acr_ppm_fair;
428 addr = (addr & ~plb0_acr_hbu_mask) | plb0_acr_hbu_enabled; 440 addr = (addr & ~plb0_acr_hbu_mask) | plb0_acr_hbu_enabled;
429 addr = (addr & ~plb0_acr_rdp_mask) | plb0_acr_rdp_4deep; 441 addr = (addr & ~plb0_acr_rdp_mask) | plb0_acr_rdp_4deep;
430 addr = (addr & ~plb0_acr_wrp_mask) | plb0_acr_wrp_2deep; 442 addr = (addr & ~plb0_acr_wrp_mask) | plb0_acr_wrp_2deep;
431 mtdcr(plb0_acr, addr); 443 mtdcr(plb0_acr, addr);
432 444
433 /* Segment1 */ 445 /* Segment1 */
434 addr = (mfdcr(plb1_acr) & ~plb1_acr_ppm_mask) | plb1_acr_ppm_fair; 446 addr = (mfdcr(plb1_acr) & ~plb1_acr_ppm_mask) | plb1_acr_ppm_fair;
435 addr = (addr & ~plb1_acr_hbu_mask) | plb1_acr_hbu_enabled; 447 addr = (addr & ~plb1_acr_hbu_mask) | plb1_acr_hbu_enabled;
436 addr = (addr & ~plb1_acr_rdp_mask) | plb1_acr_rdp_4deep; 448 addr = (addr & ~plb1_acr_rdp_mask) | plb1_acr_rdp_4deep;
437 addr = (addr & ~plb1_acr_wrp_mask) | plb1_acr_wrp_2deep; 449 addr = (addr & ~plb1_acr_wrp_mask) | plb1_acr_wrp_2deep;
438 mtdcr(plb1_acr, addr); 450 mtdcr(plb1_acr, addr);
439 451
440 return 1; 452 return 1;
441 } 453 }
442 #endif /* defined(CONFIG_PCI) && defined(CFG_PCI_PRE_INIT) */ 454 #endif /* defined(CONFIG_PCI) && defined(CFG_PCI_PRE_INIT) */
443 455
444 /************************************************************************* 456 /*************************************************************************
445 * pci_target_init 457 * pci_target_init
446 * 458 *
447 * The bootstrap configuration provides default settings for the pci 459 * The bootstrap configuration provides default settings for the pci
448 * inbound map (PIM). But the bootstrap config choices are limited and 460 * inbound map (PIM). But the bootstrap config choices are limited and
449 * may not be sufficient for a given board. 461 * may not be sufficient for a given board.
450 * 462 *
451 ************************************************************************/ 463 ************************************************************************/
452 #if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT) 464 #if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
453 void pci_target_init(struct pci_controller *hose) 465 void pci_target_init(struct pci_controller *hose)
454 { 466 {
455 /*--------------------------------------------------------------------------+ 467 /*--------------------------------------------------------------------------+
456 * Set up Direct MMIO registers 468 * Set up Direct MMIO registers
457 *--------------------------------------------------------------------------*/ 469 *--------------------------------------------------------------------------*/
458 /*--------------------------------------------------------------------------+ 470 /*--------------------------------------------------------------------------+
459 | PowerPC440 EP PCI Master configuration. 471 | PowerPC440 EP PCI Master configuration.
460 | Map one 1Gig range of PLB/processor addresses to PCI memory space. 472 | Map one 1Gig range of PLB/processor addresses to PCI memory space.
461 | PLB address 0xA0000000-0xDFFFFFFF ==> PCI address 0xA0000000-0xDFFFFFFF 473 | PLB address 0xA0000000-0xDFFFFFFF ==> PCI address 0xA0000000-0xDFFFFFFF
462 | Use byte reversed out routines to handle endianess. 474 | Use byte reversed out routines to handle endianess.
463 | Make this region non-prefetchable. 475 | Make this region non-prefetchable.
464 +--------------------------------------------------------------------------*/ 476 +--------------------------------------------------------------------------*/
465 out32r(PCIX0_PMM0MA, 0x00000000); /* PMM0 Mask/Attribute - disabled b4 setting */ 477 out32r(PCIX0_PMM0MA, 0x00000000); /* PMM0 Mask/Attribute - disabled b4 setting */
466 out32r(PCIX0_PMM0LA, CFG_PCI_MEMBASE); /* PMM0 Local Address */ 478 out32r(PCIX0_PMM0LA, CFG_PCI_MEMBASE); /* PMM0 Local Address */
467 out32r(PCIX0_PMM0PCILA, CFG_PCI_MEMBASE); /* PMM0 PCI Low Address */ 479 out32r(PCIX0_PMM0PCILA, CFG_PCI_MEMBASE); /* PMM0 PCI Low Address */
468 out32r(PCIX0_PMM0PCIHA, 0x00000000); /* PMM0 PCI High Address */ 480 out32r(PCIX0_PMM0PCIHA, 0x00000000); /* PMM0 PCI High Address */
469 out32r(PCIX0_PMM0MA, 0xE0000001); /* 512M + No prefetching, and enable region */ 481 out32r(PCIX0_PMM0MA, 0xE0000001); /* 512M + No prefetching, and enable region */
470 482
471 out32r(PCIX0_PMM1MA, 0x00000000); /* PMM0 Mask/Attribute - disabled b4 setting */ 483 out32r(PCIX0_PMM1MA, 0x00000000); /* PMM0 Mask/Attribute - disabled b4 setting */
472 out32r(PCIX0_PMM1LA, CFG_PCI_MEMBASE2); /* PMM0 Local Address */ 484 out32r(PCIX0_PMM1LA, CFG_PCI_MEMBASE2); /* PMM0 Local Address */
473 out32r(PCIX0_PMM1PCILA, CFG_PCI_MEMBASE2); /* PMM0 PCI Low Address */ 485 out32r(PCIX0_PMM1PCILA, CFG_PCI_MEMBASE2); /* PMM0 PCI Low Address */
474 out32r(PCIX0_PMM1PCIHA, 0x00000000); /* PMM0 PCI High Address */ 486 out32r(PCIX0_PMM1PCIHA, 0x00000000); /* PMM0 PCI High Address */
475 out32r(PCIX0_PMM1MA, 0xE0000001); /* 512M + No prefetching, and enable region */ 487 out32r(PCIX0_PMM1MA, 0xE0000001); /* 512M + No prefetching, and enable region */
476 488
477 out32r(PCIX0_PTM1MS, 0x00000001); /* Memory Size/Attribute */ 489 out32r(PCIX0_PTM1MS, 0x00000001); /* Memory Size/Attribute */
478 out32r(PCIX0_PTM1LA, 0); /* Local Addr. Reg */ 490 out32r(PCIX0_PTM1LA, 0); /* Local Addr. Reg */
479 out32r(PCIX0_PTM2MS, 0); /* Memory Size/Attribute */ 491 out32r(PCIX0_PTM2MS, 0); /* Memory Size/Attribute */
480 out32r(PCIX0_PTM2LA, 0); /* Local Addr. Reg */ 492 out32r(PCIX0_PTM2LA, 0); /* Local Addr. Reg */
481 493
482 /*--------------------------------------------------------------------------+ 494 /*--------------------------------------------------------------------------+
483 * Set up Configuration registers 495 * Set up Configuration registers
484 *--------------------------------------------------------------------------*/ 496 *--------------------------------------------------------------------------*/
485 497
486 /* Program the board's subsystem id/vendor id */ 498 /* Program the board's subsystem id/vendor id */
487 pci_write_config_word(0, PCI_SUBSYSTEM_VENDOR_ID, 499 pci_write_config_word(0, PCI_SUBSYSTEM_VENDOR_ID,
488 CFG_PCI_SUBSYS_VENDORID); 500 CFG_PCI_SUBSYS_VENDORID);
489 pci_write_config_word(0, PCI_SUBSYSTEM_ID, CFG_PCI_SUBSYS_ID); 501 pci_write_config_word(0, PCI_SUBSYSTEM_ID, CFG_PCI_SUBSYS_ID);
490 502
491 /* Configure command register as bus master */ 503 /* Configure command register as bus master */
492 pci_write_config_word(0, PCI_COMMAND, PCI_COMMAND_MASTER); 504 pci_write_config_word(0, PCI_COMMAND, PCI_COMMAND_MASTER);
493 505
494 /* 240nS PCI clock */ 506 /* 240nS PCI clock */
495 pci_write_config_word(0, PCI_LATENCY_TIMER, 1); 507 pci_write_config_word(0, PCI_LATENCY_TIMER, 1);
496 508
497 /* No error reporting */ 509 /* No error reporting */
498 pci_write_config_word(0, PCI_ERREN, 0); 510 pci_write_config_word(0, PCI_ERREN, 0);
499 511
500 pci_write_config_dword(0, PCI_BRDGOPT2, 0x00000101); 512 pci_write_config_dword(0, PCI_BRDGOPT2, 0x00000101);
501 513
502 } 514 }
503 #endif /* defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT) */ 515 #endif /* defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT) */
504 516
505 /************************************************************************* 517 /*************************************************************************
506 * pci_master_init 518 * pci_master_init
507 * 519 *
508 ************************************************************************/ 520 ************************************************************************/
509 #if defined(CONFIG_PCI) && defined(CFG_PCI_MASTER_INIT) 521 #if defined(CONFIG_PCI) && defined(CFG_PCI_MASTER_INIT)
510 void pci_master_init(struct pci_controller *hose) 522 void pci_master_init(struct pci_controller *hose)
511 { 523 {
512 unsigned short temp_short; 524 unsigned short temp_short;
513 525
514 /*--------------------------------------------------------------------------+ 526 /*--------------------------------------------------------------------------+
515 | Write the PowerPC440 EP PCI Configuration regs. 527 | Write the PowerPC440 EP PCI Configuration regs.
516 | Enable PowerPC440 EP to be a master on the PCI bus (PMM). 528 | Enable PowerPC440 EP to be a master on the PCI bus (PMM).
517 | Enable PowerPC440 EP to act as a PCI memory target (PTM). 529 | Enable PowerPC440 EP to act as a PCI memory target (PTM).
518 +--------------------------------------------------------------------------*/ 530 +--------------------------------------------------------------------------*/
519 pci_read_config_word(0, PCI_COMMAND, &temp_short); 531 pci_read_config_word(0, PCI_COMMAND, &temp_short);
520 pci_write_config_word(0, PCI_COMMAND, 532 pci_write_config_word(0, PCI_COMMAND,
521 temp_short | PCI_COMMAND_MASTER | 533 temp_short | PCI_COMMAND_MASTER |
522 PCI_COMMAND_MEMORY); 534 PCI_COMMAND_MEMORY);
523 } 535 }
524 #endif /* defined(CONFIG_PCI) && defined(CFG_PCI_MASTER_INIT) */ 536 #endif /* defined(CONFIG_PCI) && defined(CFG_PCI_MASTER_INIT) */
525 537
526 /************************************************************************* 538 /*************************************************************************
527 * is_pci_host 539 * is_pci_host
528 * 540 *
529 * This routine is called to determine if a pci scan should be 541 * This routine is called to determine if a pci scan should be
530 * performed. With various hardware environments (especially cPCI and 542 * performed. With various hardware environments (especially cPCI and
531 * PPMC) it's insufficient to depend on the state of the arbiter enable 543 * PPMC) it's insufficient to depend on the state of the arbiter enable
532 * bit in the strap register, or generic host/adapter assumptions. 544 * bit in the strap register, or generic host/adapter assumptions.
533 * 545 *
534 * Rather than hard-code a bad assumption in the general 440 code, the 546 * Rather than hard-code a bad assumption in the general 440 code, the
535 * 440 pci code requires the board to decide at runtime. 547 * 440 pci code requires the board to decide at runtime.
536 * 548 *
537 * Return 0 for adapter mode, non-zero for host (monarch) mode. 549 * Return 0 for adapter mode, non-zero for host (monarch) mode.
538 * 550 *
539 * 551 *
540 ************************************************************************/ 552 ************************************************************************/
541 #if defined(CONFIG_PCI) 553 #if defined(CONFIG_PCI)
542 int is_pci_host(struct pci_controller *hose) 554 int is_pci_host(struct pci_controller *hose)
543 { 555 {
544 /* Bamboo is always configured as host. */ 556 /* Bamboo is always configured as host. */
545 return (1); 557 return (1);
546 } 558 }
547 #endif /* defined(CONFIG_PCI) */ 559 #endif /* defined(CONFIG_PCI) */
548 560
549 /*----------------------------------------------------------------------------+ 561 /*----------------------------------------------------------------------------+
550 | is_powerpc440ep_pass1. 562 | is_powerpc440ep_pass1.
551 +----------------------------------------------------------------------------*/ 563 +----------------------------------------------------------------------------*/
552 int is_powerpc440ep_pass1(void) 564 int is_powerpc440ep_pass1(void)
553 { 565 {
554 unsigned long pvr; 566 unsigned long pvr;
555 567
556 pvr = get_pvr(); 568 pvr = get_pvr();
557 569
558 if (pvr == PVR_POWERPC_440EP_PASS1) 570 if (pvr == PVR_POWERPC_440EP_PASS1)
559 return TRUE; 571 return TRUE;
560 else if (pvr == PVR_POWERPC_440EP_PASS2) 572 else if (pvr == PVR_POWERPC_440EP_PASS2)
561 return FALSE; 573 return FALSE;
562 else { 574 else {
563 printf("brdutil error 3\n"); 575 printf("brdutil error 3\n");
564 for (;;) 576 for (;;)
565 ; 577 ;
566 } 578 }
567 579
568 return(FALSE); 580 return(FALSE);
569 } 581 }
570 582
571 /*----------------------------------------------------------------------------+ 583 /*----------------------------------------------------------------------------+
572 | is_nand_selected. 584 | is_nand_selected.
573 +----------------------------------------------------------------------------*/ 585 +----------------------------------------------------------------------------*/
574 int is_nand_selected(void) 586 int is_nand_selected(void)
575 { 587 {
576 return FALSE; /* test-only */ 588 return FALSE; /* test-only */
577 } 589 }
578 590
579 /*----------------------------------------------------------------------------+ 591 /*----------------------------------------------------------------------------+
580 | config_on_ebc_cs4_is_small_flash => from EPLD 592 | config_on_ebc_cs4_is_small_flash => from EPLD
581 +----------------------------------------------------------------------------*/ 593 +----------------------------------------------------------------------------*/
582 unsigned char config_on_ebc_cs4_is_small_flash(void) 594 unsigned char config_on_ebc_cs4_is_small_flash(void)
583 { 595 {
584 /* Not implemented yet => returns constant value */ 596 /* Not implemented yet => returns constant value */
585 return TRUE; 597 return TRUE;
586 } 598 }
587 599
588 /*----------------------------------------------------------------------------+ 600 /*----------------------------------------------------------------------------+
589 | Ext_bus_cntlr_init. 601 | Ext_bus_cntlr_init.
590 | Initialize the external bus controller 602 | Initialize the external bus controller
591 +----------------------------------------------------------------------------*/ 603 +----------------------------------------------------------------------------*/
592 void ext_bus_cntlr_init(void) 604 void ext_bus_cntlr_init(void)
593 { 605 {
594 unsigned long sdr0_pstrp0, sdr0_sdstp1; 606 unsigned long sdr0_pstrp0, sdr0_sdstp1;
595 unsigned long bootstrap_settings, boot_selection, ebc_boot_size; 607 unsigned long bootstrap_settings, boot_selection, ebc_boot_size;
596 int computed_boot_device = BOOT_DEVICE_UNKNOWN; 608 int computed_boot_device = BOOT_DEVICE_UNKNOWN;
597 unsigned long ebc0_cs0_bnap_value = 0, ebc0_cs0_bncr_value = 0; 609 unsigned long ebc0_cs0_bnap_value = 0, ebc0_cs0_bncr_value = 0;
598 unsigned long ebc0_cs1_bnap_value = 0, ebc0_cs1_bncr_value = 0; 610 unsigned long ebc0_cs1_bnap_value = 0, ebc0_cs1_bncr_value = 0;
599 unsigned long ebc0_cs2_bnap_value = 0, ebc0_cs2_bncr_value = 0; 611 unsigned long ebc0_cs2_bnap_value = 0, ebc0_cs2_bncr_value = 0;
600 unsigned long ebc0_cs3_bnap_value = 0, ebc0_cs3_bncr_value = 0; 612 unsigned long ebc0_cs3_bnap_value = 0, ebc0_cs3_bncr_value = 0;
601 unsigned long ebc0_cs4_bnap_value = 0, ebc0_cs4_bncr_value = 0; 613 unsigned long ebc0_cs4_bnap_value = 0, ebc0_cs4_bncr_value = 0;
602 614
603 615
604 /*-------------------------------------------------------------------------+ 616 /*-------------------------------------------------------------------------+
605 | 617 |
606 | PART 1 : Initialize EBC Bank 5 618 | PART 1 : Initialize EBC Bank 5
607 | ============================== 619 | ==============================
608 | Bank5 is always associated to the NVRAM/EPLD. 620 | Bank5 is always associated to the NVRAM/EPLD.
609 | It has to be initialized prior to other banks settings computation since 621 | It has to be initialized prior to other banks settings computation since
610 | some board registers values may be needed 622 | some board registers values may be needed
611 | 623 |
612 +-------------------------------------------------------------------------*/ 624 +-------------------------------------------------------------------------*/
613 /* NVRAM - FPGA */ 625 /* NVRAM - FPGA */
614 mtebc(pb5ap, EBC0_BNAP_NVRAM_FPGA); 626 mtebc(pb5ap, EBC0_BNAP_NVRAM_FPGA);
615 mtebc(pb5cr, EBC0_BNCR_NVRAM_FPGA_CS5); 627 mtebc(pb5cr, EBC0_BNCR_NVRAM_FPGA_CS5);
616 628
617 /*-------------------------------------------------------------------------+ 629 /*-------------------------------------------------------------------------+
618 | 630 |
619 | PART 2 : Determine which boot device was selected 631 | PART 2 : Determine which boot device was selected
620 | ========================================= 632 | =========================================
621 | 633 |
622 | Read Pin Strap Register in PPC440EP 634 | Read Pin Strap Register in PPC440EP
623 | In case of boot from IIC, read Serial Device Strap Register1 635 | In case of boot from IIC, read Serial Device Strap Register1
624 | 636 |
625 | Result can either be : 637 | Result can either be :
626 | - Boot from EBC 8bits => SMALL FLASH 638 | - Boot from EBC 8bits => SMALL FLASH
627 | - Boot from EBC 16bits => Large Flash or SRAM 639 | - Boot from EBC 16bits => Large Flash or SRAM
628 | - Boot from NAND Flash 640 | - Boot from NAND Flash
629 | - Boot from PCI 641 | - Boot from PCI
630 | 642 |
631 +-------------------------------------------------------------------------*/ 643 +-------------------------------------------------------------------------*/
632 /* Read Pin Strap Register in PPC440EP */ 644 /* Read Pin Strap Register in PPC440EP */
633 mfsdr(sdr_pstrp0, sdr0_pstrp0); 645 mfsdr(sdr_pstrp0, sdr0_pstrp0);
634 bootstrap_settings = sdr0_pstrp0 & SDR0_PSTRP0_BOOTSTRAP_MASK; 646 bootstrap_settings = sdr0_pstrp0 & SDR0_PSTRP0_BOOTSTRAP_MASK;
635 647
636 /*-------------------------------------------------------------------------+ 648 /*-------------------------------------------------------------------------+
637 | PPC440EP Pass1 649 | PPC440EP Pass1
638 +-------------------------------------------------------------------------*/ 650 +-------------------------------------------------------------------------*/
639 if (is_powerpc440ep_pass1() == TRUE) { 651 if (is_powerpc440ep_pass1() == TRUE) {
640 switch(bootstrap_settings) { 652 switch(bootstrap_settings) {
641 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS0: 653 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS0:
642 /* Default Strap Settings 0 : CPU 400 - PLB 133 - Boot EBC 8 bit 33MHz */ 654 /* Default Strap Settings 0 : CPU 400 - PLB 133 - Boot EBC 8 bit 33MHz */
643 /* Boot from Small Flash */ 655 /* Boot from Small Flash */
644 computed_boot_device = BOOT_FROM_SMALL_FLASH; 656 computed_boot_device = BOOT_FROM_SMALL_FLASH;
645 break; 657 break;
646 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS1: 658 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS1:
647 /* Default Strap Settings 1 : CPU 533 - PLB 133 - Boot PCI 66MHz */ 659 /* Default Strap Settings 1 : CPU 533 - PLB 133 - Boot PCI 66MHz */
648 /* Boot from PCI */ 660 /* Boot from PCI */
649 computed_boot_device = BOOT_FROM_PCI; 661 computed_boot_device = BOOT_FROM_PCI;
650 break; 662 break;
651 663
652 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS2: 664 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS2:
653 /* Default Strap Settings 2 : CPU 500 - PLB 100 - Boot NDFC16 66MHz */ 665 /* Default Strap Settings 2 : CPU 500 - PLB 100 - Boot NDFC16 66MHz */
654 /* Boot from Nand Flash */ 666 /* Boot from Nand Flash */
655 computed_boot_device = BOOT_FROM_NAND_FLASH0; 667 computed_boot_device = BOOT_FROM_NAND_FLASH0;
656 break; 668 break;
657 669
658 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS3: 670 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS3:
659 /* Default Strap Settings 3 : CPU 333 - PLB 133 - Boot EBC 8 bit 66MHz */ 671 /* Default Strap Settings 3 : CPU 333 - PLB 133 - Boot EBC 8 bit 66MHz */
660 /* Boot from Small Flash */ 672 /* Boot from Small Flash */
661 computed_boot_device = BOOT_FROM_SMALL_FLASH; 673 computed_boot_device = BOOT_FROM_SMALL_FLASH;
662 break; 674 break;
663 675
664 case SDR0_PSTRP0_BOOTSTRAP_IIC_A8_EN: 676 case SDR0_PSTRP0_BOOTSTRAP_IIC_A8_EN:
665 case SDR0_PSTRP0_BOOTSTRAP_IIC_A4_EN: 677 case SDR0_PSTRP0_BOOTSTRAP_IIC_A4_EN:
666 /* Boot Settings in IIC EEprom address 0xA8 or 0xA4 */ 678 /* Boot Settings in IIC EEprom address 0xA8 or 0xA4 */
667 /* Read Serial Device Strap Register1 in PPC440EP */ 679 /* Read Serial Device Strap Register1 in PPC440EP */
668 mfsdr(sdr_sdstp1, sdr0_sdstp1); 680 mfsdr(sdr_sdstp1, sdr0_sdstp1);
669 boot_selection = sdr0_sdstp1 & SDR0_SDSTP1_BOOT_SEL_MASK; 681 boot_selection = sdr0_sdstp1 & SDR0_SDSTP1_BOOT_SEL_MASK;
670 ebc_boot_size = sdr0_sdstp1 & SDR0_SDSTP1_EBC_ROM_BS_MASK; 682 ebc_boot_size = sdr0_sdstp1 & SDR0_SDSTP1_EBC_ROM_BS_MASK;
671 683
672 switch(boot_selection) { 684 switch(boot_selection) {
673 case SDR0_SDSTP1_BOOT_SEL_EBC: 685 case SDR0_SDSTP1_BOOT_SEL_EBC:
674 switch(ebc_boot_size) { 686 switch(ebc_boot_size) {
675 case SDR0_SDSTP1_EBC_ROM_BS_16BIT: 687 case SDR0_SDSTP1_EBC_ROM_BS_16BIT:
676 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM; 688 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM;
677 break; 689 break;
678 case SDR0_SDSTP1_EBC_ROM_BS_8BIT: 690 case SDR0_SDSTP1_EBC_ROM_BS_8BIT:
679 computed_boot_device = BOOT_FROM_SMALL_FLASH; 691 computed_boot_device = BOOT_FROM_SMALL_FLASH;
680 break; 692 break;
681 } 693 }
682 break; 694 break;
683 695
684 case SDR0_SDSTP1_BOOT_SEL_PCI: 696 case SDR0_SDSTP1_BOOT_SEL_PCI:
685 computed_boot_device = BOOT_FROM_PCI; 697 computed_boot_device = BOOT_FROM_PCI;
686 break; 698 break;
687 699
688 case SDR0_SDSTP1_BOOT_SEL_NDFC: 700 case SDR0_SDSTP1_BOOT_SEL_NDFC:
689 computed_boot_device = BOOT_FROM_NAND_FLASH0; 701 computed_boot_device = BOOT_FROM_NAND_FLASH0;
690 break; 702 break;
691 } 703 }
692 break; 704 break;
693 } 705 }
694 } 706 }
695 707
696 /*-------------------------------------------------------------------------+ 708 /*-------------------------------------------------------------------------+
697 | PPC440EP Pass2 709 | PPC440EP Pass2
698 +-------------------------------------------------------------------------*/ 710 +-------------------------------------------------------------------------*/
699 else { 711 else {
700 switch(bootstrap_settings) { 712 switch(bootstrap_settings) {
701 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS0: 713 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS0:
702 /* Default Strap Settings 0 : CPU 400 - PLB 133 - Boot EBC 8 bit 33MHz */ 714 /* Default Strap Settings 0 : CPU 400 - PLB 133 - Boot EBC 8 bit 33MHz */
703 /* Boot from Small Flash */ 715 /* Boot from Small Flash */
704 computed_boot_device = BOOT_FROM_SMALL_FLASH; 716 computed_boot_device = BOOT_FROM_SMALL_FLASH;
705 break; 717 break;
706 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS1: 718 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS1:
707 /* Default Strap Settings 1 : CPU 333 - PLB 133 - Boot PCI 66MHz */ 719 /* Default Strap Settings 1 : CPU 333 - PLB 133 - Boot PCI 66MHz */
708 /* Boot from PCI */ 720 /* Boot from PCI */
709 computed_boot_device = BOOT_FROM_PCI; 721 computed_boot_device = BOOT_FROM_PCI;
710 break; 722 break;
711 723
712 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS2: 724 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS2:
713 /* Default Strap Settings 2 : CPU 400 - PLB 100 - Boot NDFC16 33MHz */ 725 /* Default Strap Settings 2 : CPU 400 - PLB 100 - Boot NDFC16 33MHz */
714 /* Boot from Nand Flash */ 726 /* Boot from Nand Flash */
715 computed_boot_device = BOOT_FROM_NAND_FLASH0; 727 computed_boot_device = BOOT_FROM_NAND_FLASH0;
716 break; 728 break;
717 729
718 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS3: 730 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS3:
719 /* Default Strap Settings 3 : CPU 400 - PLB 100 - Boot EBC 16 bit 33MHz */ 731 /* Default Strap Settings 3 : CPU 400 - PLB 100 - Boot EBC 16 bit 33MHz */
720 /* Boot from Large Flash or SRAM */ 732 /* Boot from Large Flash or SRAM */
721 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM; 733 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM;
722 break; 734 break;
723 735
724 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS4: 736 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS4:
725 /* Default Strap Settings 4 : CPU 333 - PLB 133 - Boot EBC 16 bit 66MHz */ 737 /* Default Strap Settings 4 : CPU 333 - PLB 133 - Boot EBC 16 bit 66MHz */
726 /* Boot from Large Flash or SRAM */ 738 /* Boot from Large Flash or SRAM */
727 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM; 739 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM;
728 break; 740 break;
729 741
730 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS6: 742 case SDR0_PSTRP0_BOOTSTRAP_SETTINGS6:
731 /* Default Strap Settings 6 : CPU 400 - PLB 100 - Boot PCI 33MHz */ 743 /* Default Strap Settings 6 : CPU 400 - PLB 100 - Boot PCI 33MHz */
732 /* Boot from PCI */ 744 /* Boot from PCI */
733 computed_boot_device = BOOT_FROM_PCI; 745 computed_boot_device = BOOT_FROM_PCI;
734 break; 746 break;
735 747
736 case SDR0_PSTRP0_BOOTSTRAP_IIC_A8_EN: 748 case SDR0_PSTRP0_BOOTSTRAP_IIC_A8_EN:
737 case SDR0_PSTRP0_BOOTSTRAP_IIC_A4_EN: 749 case SDR0_PSTRP0_BOOTSTRAP_IIC_A4_EN:
738 /* Default Strap Settings 5-7 */ 750 /* Default Strap Settings 5-7 */
739 /* Boot Settings in IIC EEprom address 0xA8 or 0xA4 */ 751 /* Boot Settings in IIC EEprom address 0xA8 or 0xA4 */
740 /* Read Serial Device Strap Register1 in PPC440EP */ 752 /* Read Serial Device Strap Register1 in PPC440EP */
741 mfsdr(sdr_sdstp1, sdr0_sdstp1); 753 mfsdr(sdr_sdstp1, sdr0_sdstp1);
742 boot_selection = sdr0_sdstp1 & SDR0_SDSTP1_BOOT_SEL_MASK; 754 boot_selection = sdr0_sdstp1 & SDR0_SDSTP1_BOOT_SEL_MASK;
743 ebc_boot_size = sdr0_sdstp1 & SDR0_SDSTP1_EBC_ROM_BS_MASK; 755 ebc_boot_size = sdr0_sdstp1 & SDR0_SDSTP1_EBC_ROM_BS_MASK;
744 756
745 switch(boot_selection) { 757 switch(boot_selection) {
746 case SDR0_SDSTP1_BOOT_SEL_EBC: 758 case SDR0_SDSTP1_BOOT_SEL_EBC:
747 switch(ebc_boot_size) { 759 switch(ebc_boot_size) {
748 case SDR0_SDSTP1_EBC_ROM_BS_16BIT: 760 case SDR0_SDSTP1_EBC_ROM_BS_16BIT:
749 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM; 761 computed_boot_device = BOOT_FROM_LARGE_FLASH_OR_SRAM;
750 break; 762 break;
751 case SDR0_SDSTP1_EBC_ROM_BS_8BIT: 763 case SDR0_SDSTP1_EBC_ROM_BS_8BIT:
752 computed_boot_device = BOOT_FROM_SMALL_FLASH; 764 computed_boot_device = BOOT_FROM_SMALL_FLASH;
753 break; 765 break;
754 } 766 }
755 break; 767 break;
756 768
757 case SDR0_SDSTP1_BOOT_SEL_PCI: 769 case SDR0_SDSTP1_BOOT_SEL_PCI:
758 computed_boot_device = BOOT_FROM_PCI; 770 computed_boot_device = BOOT_FROM_PCI;
759 break; 771 break;
760 772
761 case SDR0_SDSTP1_BOOT_SEL_NDFC: 773 case SDR0_SDSTP1_BOOT_SEL_NDFC:
762 computed_boot_device = BOOT_FROM_NAND_FLASH0; 774 computed_boot_device = BOOT_FROM_NAND_FLASH0;
763 break; 775 break;
764 } 776 }
765 break; 777 break;
766 } 778 }
767 } 779 }
768 780
769 /*-------------------------------------------------------------------------+ 781 /*-------------------------------------------------------------------------+
770 | 782 |
771 | PART 3 : Compute EBC settings depending on selected boot device 783 | PART 3 : Compute EBC settings depending on selected boot device
772 | ====== ====================================================== 784 | ====== ======================================================
773 | 785 |
774 | Resulting EBC init will be among following configurations : 786 | Resulting EBC init will be among following configurations :
775 | 787 |
776 | - Boot from EBC 8bits => boot from SMALL FLASH selected 788 | - Boot from EBC 8bits => boot from SMALL FLASH selected
777 | EBC-CS0 = Small Flash 789 | EBC-CS0 = Small Flash
778 | EBC-CS1,2,3 = NAND Flash or 790 | EBC-CS1,2,3 = NAND Flash or
779 | Exp.Slot depending on Soft Config 791 | Exp.Slot depending on Soft Config
780 | EBC-CS4 = SRAM/Large Flash or 792 | EBC-CS4 = SRAM/Large Flash or
781 | Large Flash/SRAM depending on jumpers 793 | Large Flash/SRAM depending on jumpers
782 | EBC-CS5 = NVRAM / EPLD 794 | EBC-CS5 = NVRAM / EPLD
783 | 795 |
784 | - Boot from EBC 16bits => boot from Large Flash or SRAM selected 796 | - Boot from EBC 16bits => boot from Large Flash or SRAM selected
785 | EBC-CS0 = SRAM/Large Flash or 797 | EBC-CS0 = SRAM/Large Flash or
786 | Large Flash/SRAM depending on jumpers 798 | Large Flash/SRAM depending on jumpers
787 | EBC-CS1,2,3 = NAND Flash or 799 | EBC-CS1,2,3 = NAND Flash or
788 | Exp.Slot depending on Software Configuration 800 | Exp.Slot depending on Software Configuration
789 | EBC-CS4 = Small Flash 801 | EBC-CS4 = Small Flash
790 | EBC-CS5 = NVRAM / EPLD 802 | EBC-CS5 = NVRAM / EPLD
791 | 803 |
792 | - Boot from NAND Flash 804 | - Boot from NAND Flash
793 | EBC-CS0 = NAND Flash0 805 | EBC-CS0 = NAND Flash0
794 | EBC-CS1,2,3 = NAND Flash1 806 | EBC-CS1,2,3 = NAND Flash1
795 | EBC-CS4 = SRAM/Large Flash or 807 | EBC-CS4 = SRAM/Large Flash or
796 | Large Flash/SRAM depending on jumpers 808 | Large Flash/SRAM depending on jumpers
797 | EBC-CS5 = NVRAM / EPLD 809 | EBC-CS5 = NVRAM / EPLD
798 | 810 |
799 | - Boot from PCI 811 | - Boot from PCI
800 | EBC-CS0 = ... 812 | EBC-CS0 = ...
801 | EBC-CS1,2,3 = NAND Flash or 813 | EBC-CS1,2,3 = NAND Flash or
802 | Exp.Slot depending on Software Configuration 814 | Exp.Slot depending on Software Configuration
803 | EBC-CS4 = SRAM/Large Flash or 815 | EBC-CS4 = SRAM/Large Flash or
804 | Large Flash/SRAM or 816 | Large Flash/SRAM or
805 | Small Flash depending on jumpers 817 | Small Flash depending on jumpers
806 | EBC-CS5 = NVRAM / EPLD 818 | EBC-CS5 = NVRAM / EPLD
807 | 819 |
808 +-------------------------------------------------------------------------*/ 820 +-------------------------------------------------------------------------*/
809 821
810 switch(computed_boot_device) { 822 switch(computed_boot_device) {
811 /*------------------------------------------------------------------------- */ 823 /*------------------------------------------------------------------------- */
812 case BOOT_FROM_SMALL_FLASH: 824 case BOOT_FROM_SMALL_FLASH:
813 /*------------------------------------------------------------------------- */ 825 /*------------------------------------------------------------------------- */
814 ebc0_cs0_bnap_value = EBC0_BNAP_SMALL_FLASH; 826 ebc0_cs0_bnap_value = EBC0_BNAP_SMALL_FLASH;
815 ebc0_cs0_bncr_value = EBC0_BNCR_SMALL_FLASH_CS0; 827 ebc0_cs0_bncr_value = EBC0_BNCR_SMALL_FLASH_CS0;
816 if ((is_nand_selected()) == TRUE) { 828 if ((is_nand_selected()) == TRUE) {
817 /* NAND Flash */ 829 /* NAND Flash */
818 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH; 830 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH;
819 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1; 831 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1;
820 /*ebc0_cs2_bnap_value = EBC0_BNAP_NAND_FLASH; 832 /*ebc0_cs2_bnap_value = EBC0_BNAP_NAND_FLASH;
821 ebc0_cs2_bncr_value = EBC0_BNCR_NAND_FLASH_CS2; 833 ebc0_cs2_bncr_value = EBC0_BNCR_NAND_FLASH_CS2;
822 ebc0_cs3_bnap_value = EBC0_BNAP_NAND_FLASH; 834 ebc0_cs3_bnap_value = EBC0_BNAP_NAND_FLASH;
823 ebc0_cs3_bncr_value = EBC0_BNCR_NAND_FLASH_CS3;*/ 835 ebc0_cs3_bncr_value = EBC0_BNCR_NAND_FLASH_CS3;*/
824 ebc0_cs2_bnap_value = 0; 836 ebc0_cs2_bnap_value = 0;
825 ebc0_cs2_bncr_value = 0; 837 ebc0_cs2_bncr_value = 0;
826 ebc0_cs3_bnap_value = 0; 838 ebc0_cs3_bnap_value = 0;
827 ebc0_cs3_bncr_value = 0; 839 ebc0_cs3_bncr_value = 0;
828 } else { 840 } else {
829 /* Expansion Slot */ 841 /* Expansion Slot */
830 ebc0_cs1_bnap_value = 0; 842 ebc0_cs1_bnap_value = 0;
831 ebc0_cs1_bncr_value = 0; 843 ebc0_cs1_bncr_value = 0;
832 ebc0_cs2_bnap_value = 0; 844 ebc0_cs2_bnap_value = 0;
833 ebc0_cs2_bncr_value = 0; 845 ebc0_cs2_bncr_value = 0;
834 ebc0_cs3_bnap_value = 0; 846 ebc0_cs3_bnap_value = 0;
835 ebc0_cs3_bncr_value = 0; 847 ebc0_cs3_bncr_value = 0;
836 } 848 }
837 ebc0_cs4_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM; 849 ebc0_cs4_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM;
838 ebc0_cs4_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4; 850 ebc0_cs4_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4;
839 851
840 break; 852 break;
841 853
842 /*------------------------------------------------------------------------- */ 854 /*------------------------------------------------------------------------- */
843 case BOOT_FROM_LARGE_FLASH_OR_SRAM: 855 case BOOT_FROM_LARGE_FLASH_OR_SRAM:
844 /*------------------------------------------------------------------------- */ 856 /*------------------------------------------------------------------------- */
845 ebc0_cs0_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM; 857 ebc0_cs0_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM;
846 ebc0_cs0_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS0; 858 ebc0_cs0_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS0;
847 if ((is_nand_selected()) == TRUE) { 859 if ((is_nand_selected()) == TRUE) {
848 /* NAND Flash */ 860 /* NAND Flash */
849 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH; 861 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH;
850 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1; 862 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1;
851 ebc0_cs2_bnap_value = 0; 863 ebc0_cs2_bnap_value = 0;
852 ebc0_cs2_bncr_value = 0; 864 ebc0_cs2_bncr_value = 0;
853 ebc0_cs3_bnap_value = 0; 865 ebc0_cs3_bnap_value = 0;
854 ebc0_cs3_bncr_value = 0; 866 ebc0_cs3_bncr_value = 0;
855 } else { 867 } else {
856 /* Expansion Slot */ 868 /* Expansion Slot */
857 ebc0_cs1_bnap_value = 0; 869 ebc0_cs1_bnap_value = 0;
858 ebc0_cs1_bncr_value = 0; 870 ebc0_cs1_bncr_value = 0;
859 ebc0_cs2_bnap_value = 0; 871 ebc0_cs2_bnap_value = 0;
860 ebc0_cs2_bncr_value = 0; 872 ebc0_cs2_bncr_value = 0;
861 ebc0_cs3_bnap_value = 0; 873 ebc0_cs3_bnap_value = 0;
862 ebc0_cs3_bncr_value = 0; 874 ebc0_cs3_bncr_value = 0;
863 } 875 }
864 ebc0_cs4_bnap_value = EBC0_BNAP_SMALL_FLASH; 876 ebc0_cs4_bnap_value = EBC0_BNAP_SMALL_FLASH;
865 ebc0_cs4_bncr_value = EBC0_BNCR_SMALL_FLASH_CS4; 877 ebc0_cs4_bncr_value = EBC0_BNCR_SMALL_FLASH_CS4;
866 878
867 break; 879 break;
868 880
869 /*------------------------------------------------------------------------- */ 881 /*------------------------------------------------------------------------- */
870 case BOOT_FROM_NAND_FLASH0: 882 case BOOT_FROM_NAND_FLASH0:
871 /*------------------------------------------------------------------------- */ 883 /*------------------------------------------------------------------------- */
872 ebc0_cs0_bnap_value = 0; 884 ebc0_cs0_bnap_value = 0;
873 ebc0_cs0_bncr_value = 0; 885 ebc0_cs0_bncr_value = 0;
874 886
875 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH; 887 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH;
876 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1; 888 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1;
877 ebc0_cs2_bnap_value = 0; 889 ebc0_cs2_bnap_value = 0;
878 ebc0_cs2_bncr_value = 0; 890 ebc0_cs2_bncr_value = 0;
879 ebc0_cs3_bnap_value = 0; 891 ebc0_cs3_bnap_value = 0;
880 ebc0_cs3_bncr_value = 0; 892 ebc0_cs3_bncr_value = 0;
881 893
882 /* Large Flash or SRAM */ 894 /* Large Flash or SRAM */
883 ebc0_cs4_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM; 895 ebc0_cs4_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM;
884 ebc0_cs4_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4; 896 ebc0_cs4_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4;
885 897
886 break; 898 break;
887 899
888 /*------------------------------------------------------------------------- */ 900 /*------------------------------------------------------------------------- */
889 case BOOT_FROM_PCI: 901 case BOOT_FROM_PCI:
890 /*------------------------------------------------------------------------- */ 902 /*------------------------------------------------------------------------- */
891 ebc0_cs0_bnap_value = 0; 903 ebc0_cs0_bnap_value = 0;
892 ebc0_cs0_bncr_value = 0; 904 ebc0_cs0_bncr_value = 0;
893 905
894 if ((is_nand_selected()) == TRUE) { 906 if ((is_nand_selected()) == TRUE) {
895 /* NAND Flash */ 907 /* NAND Flash */
896 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH; 908 ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH;
897 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1; 909 ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1;
898 ebc0_cs2_bnap_value = 0; 910 ebc0_cs2_bnap_value = 0;
899 ebc0_cs2_bncr_value = 0; 911 ebc0_cs2_bncr_value = 0;
900 ebc0_cs3_bnap_value = 0; 912 ebc0_cs3_bnap_value = 0;
901 ebc0_cs3_bncr_value = 0; 913 ebc0_cs3_bncr_value = 0;
902 } else { 914 } else {
903 /* Expansion Slot */ 915 /* Expansion Slot */
904 ebc0_cs1_bnap_value = 0; 916 ebc0_cs1_bnap_value = 0;
905 ebc0_cs1_bncr_value = 0; 917 ebc0_cs1_bncr_value = 0;
906 ebc0_cs2_bnap_value = 0; 918 ebc0_cs2_bnap_value = 0;
907 ebc0_cs2_bncr_value = 0; 919 ebc0_cs2_bncr_value = 0;
908 ebc0_cs3_bnap_value = 0; 920 ebc0_cs3_bnap_value = 0;
909 ebc0_cs3_bncr_value = 0; 921 ebc0_cs3_bncr_value = 0;
910 } 922 }
911 923
912 if ((config_on_ebc_cs4_is_small_flash()) == TRUE) { 924 if ((config_on_ebc_cs4_is_small_flash()) == TRUE) {
913 /* Small Flash */ 925 /* Small Flash */
914 ebc0_cs4_bnap_value = EBC0_BNAP_SMALL_FLASH; 926 ebc0_cs4_bnap_value = EBC0_BNAP_SMALL_FLASH;
915 ebc0_cs4_bncr_value = EBC0_BNCR_SMALL_FLASH_CS4; 927 ebc0_cs4_bncr_value = EBC0_BNCR_SMALL_FLASH_CS4;
916 } else { 928 } else {
917 /* Large Flash or SRAM */ 929 /* Large Flash or SRAM */
918 ebc0_cs4_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM; 930 ebc0_cs4_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM;
919 ebc0_cs4_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4; 931 ebc0_cs4_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS4;
920 } 932 }
921 933
922 break; 934 break;
923 935
924 /*------------------------------------------------------------------------- */ 936 /*------------------------------------------------------------------------- */
925 case BOOT_DEVICE_UNKNOWN: 937 case BOOT_DEVICE_UNKNOWN:
926 /*------------------------------------------------------------------------- */ 938 /*------------------------------------------------------------------------- */
927 /* Error */ 939 /* Error */
928 break; 940 break;
929 941
930 } 942 }
931 943
932 944
933 /*-------------------------------------------------------------------------+ 945 /*-------------------------------------------------------------------------+
934 | Initialize EBC CONFIG 946 | Initialize EBC CONFIG
935 +-------------------------------------------------------------------------*/ 947 +-------------------------------------------------------------------------*/
936 mtdcr(ebccfga, xbcfg); 948 mtdcr(ebccfga, xbcfg);
937 mtdcr(ebccfgd, EBC0_CFG_EBTC_DRIVEN | 949 mtdcr(ebccfgd, EBC0_CFG_EBTC_DRIVEN |
938 EBC0_CFG_PTD_ENABLED | 950 EBC0_CFG_PTD_ENABLED |
939 EBC0_CFG_RTC_2048PERCLK | 951 EBC0_CFG_RTC_2048PERCLK |
940 EBC0_CFG_EMPL_LOW | 952 EBC0_CFG_EMPL_LOW |
941 EBC0_CFG_EMPH_LOW | 953 EBC0_CFG_EMPH_LOW |
942 EBC0_CFG_CSTC_DRIVEN | 954 EBC0_CFG_CSTC_DRIVEN |
943 EBC0_CFG_BPF_ONEDW | 955 EBC0_CFG_BPF_ONEDW |
944 EBC0_CFG_EMS_8BIT | 956 EBC0_CFG_EMS_8BIT |
945 EBC0_CFG_PME_DISABLED | 957 EBC0_CFG_PME_DISABLED |
946 EBC0_CFG_PMT_ENCODE(0) ); 958 EBC0_CFG_PMT_ENCODE(0) );
947 959
948 /*-------------------------------------------------------------------------+ 960 /*-------------------------------------------------------------------------+
949 | Initialize EBC Bank 0-4 961 | Initialize EBC Bank 0-4
950 +-------------------------------------------------------------------------*/ 962 +-------------------------------------------------------------------------*/
951 /* EBC Bank0 */ 963 /* EBC Bank0 */
952 mtebc(pb0ap, ebc0_cs0_bnap_value); 964 mtebc(pb0ap, ebc0_cs0_bnap_value);
953 mtebc(pb0cr, ebc0_cs0_bncr_value); 965 mtebc(pb0cr, ebc0_cs0_bncr_value);
954 /* EBC Bank1 */ 966 /* EBC Bank1 */
955 mtebc(pb1ap, ebc0_cs1_bnap_value); 967 mtebc(pb1ap, ebc0_cs1_bnap_value);
956 mtebc(pb1cr, ebc0_cs1_bncr_value); 968 mtebc(pb1cr, ebc0_cs1_bncr_value);
957 /* EBC Bank2 */ 969 /* EBC Bank2 */
958 mtebc(pb2ap, ebc0_cs2_bnap_value); 970 mtebc(pb2ap, ebc0_cs2_bnap_value);
959 mtebc(pb2cr, ebc0_cs2_bncr_value); 971 mtebc(pb2cr, ebc0_cs2_bncr_value);
960 /* EBC Bank3 */ 972 /* EBC Bank3 */
961 mtebc(pb3ap, ebc0_cs3_bnap_value); 973 mtebc(pb3ap, ebc0_cs3_bnap_value);
962 mtebc(pb3cr, ebc0_cs3_bncr_value); 974 mtebc(pb3cr, ebc0_cs3_bncr_value);
963 /* EBC Bank4 */ 975 /* EBC Bank4 */
964 mtebc(pb4ap, ebc0_cs4_bnap_value); 976 mtebc(pb4ap, ebc0_cs4_bnap_value);
965 mtebc(pb4cr, ebc0_cs4_bncr_value); 977 mtebc(pb4cr, ebc0_cs4_bncr_value);
966 978
967 return; 979 return;
968 } 980 }
969 981
970 982
971 /*----------------------------------------------------------------------------+ 983 /*----------------------------------------------------------------------------+
972 | get_uart_configuration. 984 | get_uart_configuration.
973 +----------------------------------------------------------------------------*/ 985 +----------------------------------------------------------------------------*/
974 uart_config_nb_t get_uart_configuration(void) 986 uart_config_nb_t get_uart_configuration(void)
975 { 987 {
976 return (L4); /* test-only */ 988 return (L4); /* test-only */
977 } 989 }
978 990
979 /*----------------------------------------------------------------------------+ 991 /*----------------------------------------------------------------------------+
980 | set_phy_configuration_through_fpga => to EPLD 992 | set_phy_configuration_through_fpga => to EPLD
981 +----------------------------------------------------------------------------*/ 993 +----------------------------------------------------------------------------*/
982 void set_phy_configuration_through_fpga(zmii_config_t config) 994 void set_phy_configuration_through_fpga(zmii_config_t config)
983 { 995 {
984 996
985 unsigned long fpga_selection_reg; 997 unsigned long fpga_selection_reg;
986 998
987 fpga_selection_reg = in8(FPGA_SELECTION_1_REG) & ~FPGA_SEL_1_REG_PHY_MASK; 999 fpga_selection_reg = in8(FPGA_SELECTION_1_REG) & ~FPGA_SEL_1_REG_PHY_MASK;
988 1000
989 switch(config) 1001 switch(config)
990 { 1002 {
991 case ZMII_CONFIGURATION_IS_MII: 1003 case ZMII_CONFIGURATION_IS_MII:
992 fpga_selection_reg = fpga_selection_reg | FPGA_SEL_1_REG_MII; 1004 fpga_selection_reg = fpga_selection_reg | FPGA_SEL_1_REG_MII;
993 break; 1005 break;
994 case ZMII_CONFIGURATION_IS_RMII: 1006 case ZMII_CONFIGURATION_IS_RMII:
995 fpga_selection_reg = fpga_selection_reg | FPGA_SEL_1_REG_RMII; 1007 fpga_selection_reg = fpga_selection_reg | FPGA_SEL_1_REG_RMII;
996 break; 1008 break;
997 case ZMII_CONFIGURATION_IS_SMII: 1009 case ZMII_CONFIGURATION_IS_SMII:
998 fpga_selection_reg = fpga_selection_reg | FPGA_SEL_1_REG_SMII; 1010 fpga_selection_reg = fpga_selection_reg | FPGA_SEL_1_REG_SMII;
999 break; 1011 break;
1000 case ZMII_CONFIGURATION_UNKNOWN: 1012 case ZMII_CONFIGURATION_UNKNOWN:
1001 default: 1013 default:
1002 break; 1014 break;
1003 } 1015 }
1004 out8(FPGA_SELECTION_1_REG,fpga_selection_reg); 1016 out8(FPGA_SELECTION_1_REG,fpga_selection_reg);
1005 1017
1006 } 1018 }
1007 1019
1008 /*----------------------------------------------------------------------------+ 1020 /*----------------------------------------------------------------------------+
1009 | scp_selection_in_fpga. 1021 | scp_selection_in_fpga.
1010 +----------------------------------------------------------------------------*/ 1022 +----------------------------------------------------------------------------*/
1011 void scp_selection_in_fpga(void) 1023 void scp_selection_in_fpga(void)
1012 { 1024 {
1013 unsigned long fpga_selection_2_reg; 1025 unsigned long fpga_selection_2_reg;
1014 1026
1015 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_IIC1_SCP_SEL_MASK; 1027 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_IIC1_SCP_SEL_MASK;
1016 fpga_selection_2_reg |= FPGA_SEL2_REG_SEL_SCP; 1028 fpga_selection_2_reg |= FPGA_SEL2_REG_SEL_SCP;
1017 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg); 1029 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg);
1018 } 1030 }
1019 1031
1020 /*----------------------------------------------------------------------------+ 1032 /*----------------------------------------------------------------------------+
1021 | iic1_selection_in_fpga. 1033 | iic1_selection_in_fpga.
1022 +----------------------------------------------------------------------------*/ 1034 +----------------------------------------------------------------------------*/
1023 void iic1_selection_in_fpga(void) 1035 void iic1_selection_in_fpga(void)
1024 { 1036 {
1025 unsigned long fpga_selection_2_reg; 1037 unsigned long fpga_selection_2_reg;
1026 1038
1027 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_IIC1_SCP_SEL_MASK; 1039 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_IIC1_SCP_SEL_MASK;
1028 fpga_selection_2_reg |= FPGA_SEL2_REG_SEL_IIC1; 1040 fpga_selection_2_reg |= FPGA_SEL2_REG_SEL_IIC1;
1029 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg); 1041 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg);
1030 } 1042 }
1031 1043
1032 /*----------------------------------------------------------------------------+ 1044 /*----------------------------------------------------------------------------+
1033 | dma_a_b_selection_in_fpga. 1045 | dma_a_b_selection_in_fpga.
1034 +----------------------------------------------------------------------------*/ 1046 +----------------------------------------------------------------------------*/
1035 void dma_a_b_selection_in_fpga(void) 1047 void dma_a_b_selection_in_fpga(void)
1036 { 1048 {
1037 unsigned long fpga_selection_2_reg; 1049 unsigned long fpga_selection_2_reg;
1038 1050
1039 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) | FPGA_SEL2_REG_SEL_DMA_A_B; 1051 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) | FPGA_SEL2_REG_SEL_DMA_A_B;
1040 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg); 1052 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg);
1041 } 1053 }
1042 1054
1043 /*----------------------------------------------------------------------------+ 1055 /*----------------------------------------------------------------------------+
1044 | dma_a_b_unselect_in_fpga. 1056 | dma_a_b_unselect_in_fpga.
1045 +----------------------------------------------------------------------------*/ 1057 +----------------------------------------------------------------------------*/
1046 void dma_a_b_unselect_in_fpga(void) 1058 void dma_a_b_unselect_in_fpga(void)
1047 { 1059 {
1048 unsigned long fpga_selection_2_reg; 1060 unsigned long fpga_selection_2_reg;
1049 1061
1050 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_SEL_DMA_A_B; 1062 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_SEL_DMA_A_B;
1051 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg); 1063 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg);
1052 } 1064 }
1053 1065
1054 /*----------------------------------------------------------------------------+ 1066 /*----------------------------------------------------------------------------+
1055 | dma_c_d_selection_in_fpga. 1067 | dma_c_d_selection_in_fpga.
1056 +----------------------------------------------------------------------------*/ 1068 +----------------------------------------------------------------------------*/
1057 void dma_c_d_selection_in_fpga(void) 1069 void dma_c_d_selection_in_fpga(void)
1058 { 1070 {
1059 unsigned long fpga_selection_2_reg; 1071 unsigned long fpga_selection_2_reg;
1060 1072
1061 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) | FPGA_SEL2_REG_SEL_DMA_C_D; 1073 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) | FPGA_SEL2_REG_SEL_DMA_C_D;
1062 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg); 1074 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg);
1063 } 1075 }
1064 1076
1065 /*----------------------------------------------------------------------------+ 1077 /*----------------------------------------------------------------------------+
1066 | dma_c_d_unselect_in_fpga. 1078 | dma_c_d_unselect_in_fpga.
1067 +----------------------------------------------------------------------------*/ 1079 +----------------------------------------------------------------------------*/
1068 void dma_c_d_unselect_in_fpga(void) 1080 void dma_c_d_unselect_in_fpga(void)
1069 { 1081 {
1070 unsigned long fpga_selection_2_reg; 1082 unsigned long fpga_selection_2_reg;
1071 1083
1072 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_SEL_DMA_C_D; 1084 fpga_selection_2_reg = in8(FPGA_SELECTION_2_REG) & ~FPGA_SEL2_REG_SEL_DMA_C_D;
1073 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg); 1085 out8(FPGA_SELECTION_2_REG,fpga_selection_2_reg);
1074 } 1086 }
1075 1087
1076 /*----------------------------------------------------------------------------+ 1088 /*----------------------------------------------------------------------------+
1077 | usb2_device_selection_in_fpga. 1089 | usb2_device_selection_in_fpga.
1078 +----------------------------------------------------------------------------*/ 1090 +----------------------------------------------------------------------------*/
1079 void usb2_device_selection_in_fpga(void) 1091 void usb2_device_selection_in_fpga(void)
1080 { 1092 {
1081 unsigned long fpga_selection_1_reg; 1093 unsigned long fpga_selection_1_reg;
1082 1094
1083 fpga_selection_1_reg = in8(FPGA_SELECTION_1_REG) | FPGA_SEL_1_REG_USB2_DEV_SEL; 1095 fpga_selection_1_reg = in8(FPGA_SELECTION_1_REG) | FPGA_SEL_1_REG_USB2_DEV_SEL;
1084 out8(FPGA_SELECTION_1_REG,fpga_selection_1_reg); 1096 out8(FPGA_SELECTION_1_REG,fpga_selection_1_reg);
1085 } 1097 }
1086 1098
1087 /*----------------------------------------------------------------------------+ 1099 /*----------------------------------------------------------------------------+
1088 | usb2_device_reset_through_fpga. 1100 | usb2_device_reset_through_fpga.
1089 +----------------------------------------------------------------------------*/ 1101 +----------------------------------------------------------------------------*/
1090 void usb2_device_reset_through_fpga(void) 1102 void usb2_device_reset_through_fpga(void)
1091 { 1103 {
1092 /* Perform soft Reset pulse */ 1104 /* Perform soft Reset pulse */
1093 unsigned long fpga_reset_reg; 1105 unsigned long fpga_reset_reg;
1094 int i; 1106 int i;
1095 1107
1096 fpga_reset_reg = in8(FPGA_RESET_REG); 1108 fpga_reset_reg = in8(FPGA_RESET_REG);
1097 out8(FPGA_RESET_REG,fpga_reset_reg | FPGA_RESET_REG_RESET_USB20_DEV); 1109 out8(FPGA_RESET_REG,fpga_reset_reg | FPGA_RESET_REG_RESET_USB20_DEV);
1098 for (i=0; i<500; i++) 1110 for (i=0; i<500; i++)
1099 udelay(1000); 1111 udelay(1000);
1100 out8(FPGA_RESET_REG,fpga_reset_reg); 1112 out8(FPGA_RESET_REG,fpga_reset_reg);
1101 } 1113 }
1102 1114
1103 /*----------------------------------------------------------------------------+ 1115 /*----------------------------------------------------------------------------+
1104 | usb2_host_selection_in_fpga. 1116 | usb2_host_selection_in_fpga.
1105 +----------------------------------------------------------------------------*/ 1117 +----------------------------------------------------------------------------*/
1106 void usb2_host_selection_in_fpga(void) 1118 void usb2_host_selection_in_fpga(void)
1107 { 1119 {
1108 unsigned long fpga_selection_1_reg; 1120 unsigned long fpga_selection_1_reg;
1109 1121
1110 fpga_selection_1_reg = in8(FPGA_SELECTION_1_REG) | FPGA_SEL_1_REG_USB2_HOST_SEL; 1122 fpga_selection_1_reg = in8(FPGA_SELECTION_1_REG) | FPGA_SEL_1_REG_USB2_HOST_SEL;
1111 out8(FPGA_SELECTION_1_REG,fpga_selection_1_reg); 1123 out8(FPGA_SELECTION_1_REG,fpga_selection_1_reg);
1112 } 1124 }
1113 1125
1114 /*----------------------------------------------------------------------------+ 1126 /*----------------------------------------------------------------------------+
1115 | ndfc_selection_in_fpga. 1127 | ndfc_selection_in_fpga.
1116 +----------------------------------------------------------------------------*/ 1128 +----------------------------------------------------------------------------*/
1117 void ndfc_selection_in_fpga(void) 1129 void ndfc_selection_in_fpga(void)
1118 { 1130 {
1119 unsigned long fpga_selection_1_reg; 1131 unsigned long fpga_selection_1_reg;
1120 1132
1121 fpga_selection_1_reg = in8(FPGA_SELECTION_1_REG) &~FPGA_SEL_1_REG_NF_SELEC_MASK; 1133 fpga_selection_1_reg = in8(FPGA_SELECTION_1_REG) &~FPGA_SEL_1_REG_NF_SELEC_MASK;
1122 fpga_selection_1_reg |= FPGA_SEL_1_REG_NF0_SEL_BY_NFCS1; 1134 fpga_selection_1_reg |= FPGA_SEL_1_REG_NF0_SEL_BY_NFCS1;
1123 /*fpga_selection_1_reg |= FPGA_SEL_1_REG_NF1_SEL_BY_NFCS2; */ 1135 /*fpga_selection_1_reg |= FPGA_SEL_1_REG_NF1_SEL_BY_NFCS2; */
1124 /*fpga_selection_1_reg |= FPGA_SEL_1_REG_NF1_SEL_BY_NFCS3; */ 1136 /*fpga_selection_1_reg |= FPGA_SEL_1_REG_NF1_SEL_BY_NFCS3; */
1125 out8(FPGA_SELECTION_1_REG,fpga_selection_1_reg); 1137 out8(FPGA_SELECTION_1_REG,fpga_selection_1_reg);
1126 } 1138 }
1127 1139
1128 /*----------------------------------------------------------------------------+ 1140 /*----------------------------------------------------------------------------+
1129 | uart_selection_in_fpga. 1141 | uart_selection_in_fpga.
1130 +----------------------------------------------------------------------------*/ 1142 +----------------------------------------------------------------------------*/
1131 void uart_selection_in_fpga(uart_config_nb_t uart_config) 1143 void uart_selection_in_fpga(uart_config_nb_t uart_config)
1132 { 1144 {
1133 /* FPGA register */ 1145 /* FPGA register */
1134 unsigned char fpga_selection_3_reg; 1146 unsigned char fpga_selection_3_reg;
1135 1147
1136 /* Read FPGA Reagister */ 1148 /* Read FPGA Reagister */
1137 fpga_selection_3_reg = in8(FPGA_SELECTION_3_REG); 1149 fpga_selection_3_reg = in8(FPGA_SELECTION_3_REG);
1138 1150
1139 switch (uart_config) 1151 switch (uart_config)
1140 { 1152 {
1141 case L1: 1153 case L1:
1142 /* ----------------------------------------------------------------------- */ 1154 /* ----------------------------------------------------------------------- */
1143 /* L1 configuration: UART0 = 8 pins */ 1155 /* L1 configuration: UART0 = 8 pins */
1144 /* ----------------------------------------------------------------------- */ 1156 /* ----------------------------------------------------------------------- */
1145 /* Configure FPGA */ 1157 /* Configure FPGA */
1146 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK; 1158 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK;
1147 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG1; 1159 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG1;
1148 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg); 1160 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg);
1149 1161
1150 break; 1162 break;
1151 1163
1152 case L2: 1164 case L2:
1153 /* ----------------------------------------------------------------------- */ 1165 /* ----------------------------------------------------------------------- */
1154 /* L2 configuration: UART0 = 4 pins */ 1166 /* L2 configuration: UART0 = 4 pins */
1155 /* UART1 = 4 pins */ 1167 /* UART1 = 4 pins */
1156 /* ----------------------------------------------------------------------- */ 1168 /* ----------------------------------------------------------------------- */
1157 /* Configure FPGA */ 1169 /* Configure FPGA */
1158 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK; 1170 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK;
1159 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG2; 1171 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG2;
1160 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg); 1172 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg);
1161 1173
1162 break; 1174 break;
1163 1175
1164 case L3: 1176 case L3:
1165 /* ----------------------------------------------------------------------- */ 1177 /* ----------------------------------------------------------------------- */
1166 /* L3 configuration: UART0 = 4 pins */ 1178 /* L3 configuration: UART0 = 4 pins */
1167 /* UART1 = 2 pins */ 1179 /* UART1 = 2 pins */
1168 /* UART2 = 2 pins */ 1180 /* UART2 = 2 pins */
1169 /* ----------------------------------------------------------------------- */ 1181 /* ----------------------------------------------------------------------- */
1170 /* Configure FPGA */ 1182 /* Configure FPGA */
1171 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK; 1183 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK;
1172 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG3; 1184 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG3;
1173 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg); 1185 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg);
1174 break; 1186 break;
1175 1187
1176 case L4: 1188 case L4:
1177 /* Configure FPGA */ 1189 /* Configure FPGA */
1178 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK; 1190 fpga_selection_3_reg = fpga_selection_3_reg & ~FPGA_SEL3_REG_SEL_UART_CONFIG_MASK;
1179 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG4; 1191 fpga_selection_3_reg = fpga_selection_3_reg | FPGA_SEL3_REG_SEL_UART_CONFIG4;
1180 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg); 1192 out8(FPGA_SELECTION_3_REG, fpga_selection_3_reg);
1181 1193
1182 break; 1194 break;
1183 1195
1184 default: 1196 default:
1185 /* Unsupported UART configuration number */ 1197 /* Unsupported UART configuration number */
1186 for (;;) 1198 for (;;)
1187 ; 1199 ;
1188 break; 1200 break;
1189 1201
1190 } 1202 }
1191 } 1203 }
1192 1204
1193 1205
1194 /*----------------------------------------------------------------------------+ 1206 /*----------------------------------------------------------------------------+
1195 | init_default_gpio 1207 | init_default_gpio
1196 +----------------------------------------------------------------------------*/ 1208 +----------------------------------------------------------------------------*/
1197 void init_default_gpio(void) 1209 void init_default_gpio(void)
1198 { 1210 {
1199 int i; 1211 int i;
1200 1212
1201 /* Init GPIO0 */ 1213 /* Init GPIO0 */
1202 for(i=0; i<GPIO_MAX; i++) 1214 for(i=0; i<GPIO_MAX; i++)
1203 { 1215 {
1204 gpio_tab[GPIO0][i].add = GPIO0_BASE; 1216 gpio_tab[GPIO0][i].add = GPIO0_BASE;
1205 gpio_tab[GPIO0][i].in_out = GPIO_DIS; 1217 gpio_tab[GPIO0][i].in_out = GPIO_DIS;
1206 gpio_tab[GPIO0][i].alt_nb = GPIO_SEL; 1218 gpio_tab[GPIO0][i].alt_nb = GPIO_SEL;
1207 } 1219 }
1208 1220
1209 /* Init GPIO1 */ 1221 /* Init GPIO1 */
1210 for(i=0; i<GPIO_MAX; i++) 1222 for(i=0; i<GPIO_MAX; i++)
1211 { 1223 {
1212 gpio_tab[GPIO1][i].add = GPIO1_BASE; 1224 gpio_tab[GPIO1][i].add = GPIO1_BASE;
1213 gpio_tab[GPIO1][i].in_out = GPIO_DIS; 1225 gpio_tab[GPIO1][i].in_out = GPIO_DIS;
1214 gpio_tab[GPIO1][i].alt_nb = GPIO_SEL; 1226 gpio_tab[GPIO1][i].alt_nb = GPIO_SEL;
1215 } 1227 }
1216 1228
1217 /* EBC_CS_N(5) - GPIO0_10 */ 1229 /* EBC_CS_N(5) - GPIO0_10 */
1218 gpio_tab[GPIO0][10].in_out = GPIO_OUT; 1230 gpio_tab[GPIO0][10].in_out = GPIO_OUT;
1219 gpio_tab[GPIO0][10].alt_nb = GPIO_ALT1; 1231 gpio_tab[GPIO0][10].alt_nb = GPIO_ALT1;
1220 1232
1221 /* EBC_CS_N(4) - GPIO0_9 */ 1233 /* EBC_CS_N(4) - GPIO0_9 */
1222 gpio_tab[GPIO0][9].in_out = GPIO_OUT; 1234 gpio_tab[GPIO0][9].in_out = GPIO_OUT;
1223 gpio_tab[GPIO0][9].alt_nb = GPIO_ALT1; 1235 gpio_tab[GPIO0][9].alt_nb = GPIO_ALT1;
1224 } 1236 }
1225 1237
1226 /*----------------------------------------------------------------------------+ 1238 /*----------------------------------------------------------------------------+
1227 | update_uart_ios 1239 | update_uart_ios
1228 +------------------------------------------------------------------------------ 1240 +------------------------------------------------------------------------------
1229 | 1241 |
1230 | Set UART Configuration in PowerPC440EP 1242 | Set UART Configuration in PowerPC440EP
1231 | 1243 |
1232 | +---------------------------------------------------------------------+ 1244 | +---------------------------------------------------------------------+
1233 | | Configuartion | Connector | Nb of pins | Pins | Associated | 1245 | | Configuartion | Connector | Nb of pins | Pins | Associated |
1234 | | Number | Port Name | available | naming | CORE | 1246 | | Number | Port Name | available | naming | CORE |
1235 | +-----------------+---------------+------------+--------+-------------+ 1247 | +-----------------+---------------+------------+--------+-------------+
1236 | | L1 | Port_A | 8 | UART | UART core 0 | 1248 | | L1 | Port_A | 8 | UART | UART core 0 |
1237 | +-----------------+---------------+------------+--------+-------------+ 1249 | +-----------------+---------------+------------+--------+-------------+
1238 | | L2 | Port_A | 4 | UART1 | UART core 0 | 1250 | | L2 | Port_A | 4 | UART1 | UART core 0 |
1239 | | (L2D) | Port_B | 4 | UART2 | UART core 1 | 1251 | | (L2D) | Port_B | 4 | UART2 | UART core 1 |
1240 | +-----------------+---------------+------------+--------+-------------+ 1252 | +-----------------+---------------+------------+--------+-------------+
1241 | | L3 | Port_A | 4 | UART1 | UART core 0 | 1253 | | L3 | Port_A | 4 | UART1 | UART core 0 |
1242 | | (L3D) | Port_B | 2 | UART2 | UART core 1 | 1254 | | (L3D) | Port_B | 2 | UART2 | UART core 1 |
1243 | | | Port_C | 2 | UART3 | UART core 2 | 1255 | | | Port_C | 2 | UART3 | UART core 2 |
1244 | +-----------------+---------------+------------+--------+-------------+ 1256 | +-----------------+---------------+------------+--------+-------------+
1245 | | | Port_A | 2 | UART1 | UART core 0 | 1257 | | | Port_A | 2 | UART1 | UART core 0 |
1246 | | L4 | Port_B | 2 | UART2 | UART core 1 | 1258 | | L4 | Port_B | 2 | UART2 | UART core 1 |
1247 | | (L4D) | Port_C | 2 | UART3 | UART core 2 | 1259 | | (L4D) | Port_C | 2 | UART3 | UART core 2 |
1248 | | | Port_D | 2 | UART4 | UART core 3 | 1260 | | | Port_D | 2 | UART4 | UART core 3 |
1249 | +-----------------+---------------+------------+--------+-------------+ 1261 | +-----------------+---------------+------------+--------+-------------+
1250 | 1262 |
1251 | Involved GPIOs 1263 | Involved GPIOs
1252 | 1264 |
1253 | +------------------------------------------------------------------------------+ 1265 | +------------------------------------------------------------------------------+
1254 | | GPIO | Aternate 1 | I/O | Alternate 2 | I/O | Alternate 3 | I/O | 1266 | | GPIO | Aternate 1 | I/O | Alternate 2 | I/O | Alternate 3 | I/O |
1255 | +---------+------------------+-----+-----------------+-----+-------------+-----+ 1267 | +---------+------------------+-----+-----------------+-----+-------------+-----+
1256 | | GPIO1_2 | UART0_DCD_N | I | UART1_DSR_CTS_N | I | UART2_SOUT | O | 1268 | | GPIO1_2 | UART0_DCD_N | I | UART1_DSR_CTS_N | I | UART2_SOUT | O |
1257 | | GPIO1_3 | UART0_8PIN_DSR_N | I | UART1_RTS_DTR_N | O | UART2_SIN | I | 1269 | | GPIO1_3 | UART0_8PIN_DSR_N | I | UART1_RTS_DTR_N | O | UART2_SIN | I |
1258 | | GPIO1_4 | UART0_8PIN_CTS_N | I | NA | NA | UART3_SIN | I | 1270 | | GPIO1_4 | UART0_8PIN_CTS_N | I | NA | NA | UART3_SIN | I |
1259 | | GPIO1_5 | UART0_RTS_N | O | NA | NA | UART3_SOUT | O | 1271 | | GPIO1_5 | UART0_RTS_N | O | NA | NA | UART3_SOUT | O |
1260 | | GPIO1_6 | UART0_DTR_N | O | UART1_SOUT | O | NA | NA | 1272 | | GPIO1_6 | UART0_DTR_N | O | UART1_SOUT | O | NA | NA |
1261 | | GPIO1_7 | UART0_RI_N | I | UART1_SIN | I | NA | NA | 1273 | | GPIO1_7 | UART0_RI_N | I | UART1_SIN | I | NA | NA |
1262 | +------------------------------------------------------------------------------+ 1274 | +------------------------------------------------------------------------------+
1263 | 1275 |
1264 | 1276 |
1265 +----------------------------------------------------------------------------*/ 1277 +----------------------------------------------------------------------------*/
1266 1278
1267 void update_uart_ios(uart_config_nb_t uart_config) 1279 void update_uart_ios(uart_config_nb_t uart_config)
1268 { 1280 {
1269 switch (uart_config) 1281 switch (uart_config)
1270 { 1282 {
1271 case L1: 1283 case L1:
1272 /* ----------------------------------------------------------------------- */ 1284 /* ----------------------------------------------------------------------- */
1273 /* L1 configuration: UART0 = 8 pins */ 1285 /* L1 configuration: UART0 = 8 pins */
1274 /* ----------------------------------------------------------------------- */ 1286 /* ----------------------------------------------------------------------- */
1275 /* Update GPIO Configuration Table */ 1287 /* Update GPIO Configuration Table */
1276 gpio_tab[GPIO1][2].in_out = GPIO_IN; 1288 gpio_tab[GPIO1][2].in_out = GPIO_IN;
1277 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT1; 1289 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT1;
1278 1290
1279 gpio_tab[GPIO1][3].in_out = GPIO_IN; 1291 gpio_tab[GPIO1][3].in_out = GPIO_IN;
1280 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT1; 1292 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT1;
1281 1293
1282 gpio_tab[GPIO1][4].in_out = GPIO_IN; 1294 gpio_tab[GPIO1][4].in_out = GPIO_IN;
1283 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT1; 1295 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT1;
1284 1296
1285 gpio_tab[GPIO1][5].in_out = GPIO_OUT; 1297 gpio_tab[GPIO1][5].in_out = GPIO_OUT;
1286 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT1; 1298 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT1;
1287 1299
1288 gpio_tab[GPIO1][6].in_out = GPIO_OUT; 1300 gpio_tab[GPIO1][6].in_out = GPIO_OUT;
1289 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT1; 1301 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT1;
1290 1302
1291 gpio_tab[GPIO1][7].in_out = GPIO_IN; 1303 gpio_tab[GPIO1][7].in_out = GPIO_IN;
1292 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT1; 1304 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT1;
1293 1305
1294 break; 1306 break;
1295 1307
1296 case L2: 1308 case L2:
1297 /* ----------------------------------------------------------------------- */ 1309 /* ----------------------------------------------------------------------- */
1298 /* L2 configuration: UART0 = 4 pins */ 1310 /* L2 configuration: UART0 = 4 pins */
1299 /* UART1 = 4 pins */ 1311 /* UART1 = 4 pins */
1300 /* ----------------------------------------------------------------------- */ 1312 /* ----------------------------------------------------------------------- */
1301 /* Update GPIO Configuration Table */ 1313 /* Update GPIO Configuration Table */
1302 gpio_tab[GPIO1][2].in_out = GPIO_IN; 1314 gpio_tab[GPIO1][2].in_out = GPIO_IN;
1303 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT2; 1315 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT2;
1304 1316
1305 gpio_tab[GPIO1][3].in_out = GPIO_OUT; 1317 gpio_tab[GPIO1][3].in_out = GPIO_OUT;
1306 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT2; 1318 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT2;
1307 1319
1308 gpio_tab[GPIO1][4].in_out = GPIO_IN; 1320 gpio_tab[GPIO1][4].in_out = GPIO_IN;
1309 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT1; 1321 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT1;
1310 1322
1311 gpio_tab[GPIO1][5].in_out = GPIO_OUT; 1323 gpio_tab[GPIO1][5].in_out = GPIO_OUT;
1312 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT1; 1324 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT1;
1313 1325
1314 gpio_tab[GPIO1][6].in_out = GPIO_OUT; 1326 gpio_tab[GPIO1][6].in_out = GPIO_OUT;
1315 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT2; 1327 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT2;
1316 1328
1317 gpio_tab[GPIO1][7].in_out = GPIO_IN; 1329 gpio_tab[GPIO1][7].in_out = GPIO_IN;
1318 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT2; 1330 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT2;
1319 1331
1320 break; 1332 break;
1321 1333
1322 case L3: 1334 case L3:
1323 /* ----------------------------------------------------------------------- */ 1335 /* ----------------------------------------------------------------------- */
1324 /* L3 configuration: UART0 = 4 pins */ 1336 /* L3 configuration: UART0 = 4 pins */
1325 /* UART1 = 2 pins */ 1337 /* UART1 = 2 pins */
1326 /* UART2 = 2 pins */ 1338 /* UART2 = 2 pins */
1327 /* ----------------------------------------------------------------------- */ 1339 /* ----------------------------------------------------------------------- */
1328 /* Update GPIO Configuration Table */ 1340 /* Update GPIO Configuration Table */
1329 gpio_tab[GPIO1][2].in_out = GPIO_OUT; 1341 gpio_tab[GPIO1][2].in_out = GPIO_OUT;
1330 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT3; 1342 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT3;
1331 1343
1332 gpio_tab[GPIO1][3].in_out = GPIO_IN; 1344 gpio_tab[GPIO1][3].in_out = GPIO_IN;
1333 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT3; 1345 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT3;
1334 1346
1335 gpio_tab[GPIO1][4].in_out = GPIO_IN; 1347 gpio_tab[GPIO1][4].in_out = GPIO_IN;
1336 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT1; 1348 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT1;
1337 1349
1338 gpio_tab[GPIO1][5].in_out = GPIO_OUT; 1350 gpio_tab[GPIO1][5].in_out = GPIO_OUT;
1339 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT1; 1351 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT1;
1340 1352
1341 gpio_tab[GPIO1][6].in_out = GPIO_OUT; 1353 gpio_tab[GPIO1][6].in_out = GPIO_OUT;
1342 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT2; 1354 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT2;
1343 1355
1344 gpio_tab[GPIO1][7].in_out = GPIO_IN; 1356 gpio_tab[GPIO1][7].in_out = GPIO_IN;
1345 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT2; 1357 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT2;
1346 1358
1347 break; 1359 break;
1348 1360
1349 case L4: 1361 case L4:
1350 /* ----------------------------------------------------------------------- */ 1362 /* ----------------------------------------------------------------------- */
1351 /* L4 configuration: UART0 = 2 pins */ 1363 /* L4 configuration: UART0 = 2 pins */
1352 /* UART1 = 2 pins */ 1364 /* UART1 = 2 pins */
1353 /* UART2 = 2 pins */ 1365 /* UART2 = 2 pins */
1354 /* UART3 = 2 pins */ 1366 /* UART3 = 2 pins */
1355 /* ----------------------------------------------------------------------- */ 1367 /* ----------------------------------------------------------------------- */
1356 /* Update GPIO Configuration Table */ 1368 /* Update GPIO Configuration Table */
1357 gpio_tab[GPIO1][2].in_out = GPIO_OUT; 1369 gpio_tab[GPIO1][2].in_out = GPIO_OUT;
1358 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT3; 1370 gpio_tab[GPIO1][2].alt_nb = GPIO_ALT3;
1359 1371
1360 gpio_tab[GPIO1][3].in_out = GPIO_IN; 1372 gpio_tab[GPIO1][3].in_out = GPIO_IN;
1361 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT3; 1373 gpio_tab[GPIO1][3].alt_nb = GPIO_ALT3;
1362 1374
1363 gpio_tab[GPIO1][4].in_out = GPIO_IN; 1375 gpio_tab[GPIO1][4].in_out = GPIO_IN;
1364 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT3; 1376 gpio_tab[GPIO1][4].alt_nb = GPIO_ALT3;
1365 1377
1366 gpio_tab[GPIO1][5].in_out = GPIO_OUT; 1378 gpio_tab[GPIO1][5].in_out = GPIO_OUT;
1367 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT3; 1379 gpio_tab[GPIO1][5].alt_nb = GPIO_ALT3;
1368 1380
1369 gpio_tab[GPIO1][6].in_out = GPIO_OUT; 1381 gpio_tab[GPIO1][6].in_out = GPIO_OUT;
1370 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT2; 1382 gpio_tab[GPIO1][6].alt_nb = GPIO_ALT2;
1371 1383
1372 gpio_tab[GPIO1][7].in_out = GPIO_IN; 1384 gpio_tab[GPIO1][7].in_out = GPIO_IN;
1373 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT2; 1385 gpio_tab[GPIO1][7].alt_nb = GPIO_ALT2;
1374 1386
1375 break; 1387 break;
1376 1388
1377 default: 1389 default:
1378 /* Unsupported UART configuration number */ 1390 /* Unsupported UART configuration number */
1379 printf("ERROR - Unsupported UART configuration number.\n\n"); 1391 printf("ERROR - Unsupported UART configuration number.\n\n");
1380 for (;;) 1392 for (;;)
1381 ; 1393 ;
1382 break; 1394 break;
1383 1395
1384 } 1396 }
1385 1397
1386 /* Set input Selection Register on Alt_Receive for UART Input Core */ 1398 /* Set input Selection Register on Alt_Receive for UART Input Core */
1387 out32(GPIO1_IS1L, (in32(GPIO1_IS1L) | 0x0FC30000)); 1399 out32(GPIO1_IS1L, (in32(GPIO1_IS1L) | 0x0FC30000));
1388 out32(GPIO1_IS2L, (in32(GPIO1_IS2L) | 0x0C030000)); 1400 out32(GPIO1_IS2L, (in32(GPIO1_IS2L) | 0x0C030000));
1389 out32(GPIO1_IS3L, (in32(GPIO1_IS3L) | 0x03C00000)); 1401 out32(GPIO1_IS3L, (in32(GPIO1_IS3L) | 0x03C00000));
1390 } 1402 }
1391 1403
1392 /*----------------------------------------------------------------------------+ 1404 /*----------------------------------------------------------------------------+
1393 | update_ndfc_ios(void). 1405 | update_ndfc_ios(void).
1394 +----------------------------------------------------------------------------*/ 1406 +----------------------------------------------------------------------------*/
1395 void update_ndfc_ios(void) 1407 void update_ndfc_ios(void)
1396 { 1408 {
1397 /* Update GPIO Configuration Table */ 1409 /* Update GPIO Configuration Table */
1398 gpio_tab[GPIO0][6].in_out = GPIO_OUT; /* EBC_CS_N(1) */ 1410 gpio_tab[GPIO0][6].in_out = GPIO_OUT; /* EBC_CS_N(1) */
1399 gpio_tab[GPIO0][6].alt_nb = GPIO_ALT1; 1411 gpio_tab[GPIO0][6].alt_nb = GPIO_ALT1;
1400 1412
1401 #if 0 1413 #if 0
1402 gpio_tab[GPIO0][7].in_out = GPIO_OUT; /* EBC_CS_N(2) */ 1414 gpio_tab[GPIO0][7].in_out = GPIO_OUT; /* EBC_CS_N(2) */
1403 gpio_tab[GPIO0][7].alt_nb = GPIO_ALT1; 1415 gpio_tab[GPIO0][7].alt_nb = GPIO_ALT1;
1404 1416
1405 gpio_tab[GPIO0][7].in_out = GPIO_OUT; /* EBC_CS_N(3) */ 1417 gpio_tab[GPIO0][7].in_out = GPIO_OUT; /* EBC_CS_N(3) */
1406 gpio_tab[GPIO0][7].alt_nb = GPIO_ALT1; 1418 gpio_tab[GPIO0][7].alt_nb = GPIO_ALT1;
1407 #endif 1419 #endif
1408 } 1420 }
1409 1421
1410 /*----------------------------------------------------------------------------+ 1422 /*----------------------------------------------------------------------------+
1411 | update_zii_ios(void). 1423 | update_zii_ios(void).
1412 +----------------------------------------------------------------------------*/ 1424 +----------------------------------------------------------------------------*/
1413 void update_zii_ios(void) 1425 void update_zii_ios(void)
1414 { 1426 {
1415 /* Update GPIO Configuration Table */ 1427 /* Update GPIO Configuration Table */
1416 gpio_tab[GPIO0][12].in_out = GPIO_IN; /* ZII_p0Rxd(0) */ 1428 gpio_tab[GPIO0][12].in_out = GPIO_IN; /* ZII_p0Rxd(0) */
1417 gpio_tab[GPIO0][12].alt_nb = GPIO_ALT1; 1429 gpio_tab[GPIO0][12].alt_nb = GPIO_ALT1;
1418 1430
1419 gpio_tab[GPIO0][13].in_out = GPIO_IN; /* ZII_p0Rxd(1) */ 1431 gpio_tab[GPIO0][13].in_out = GPIO_IN; /* ZII_p0Rxd(1) */
1420 gpio_tab[GPIO0][13].alt_nb = GPIO_ALT1; 1432 gpio_tab[GPIO0][13].alt_nb = GPIO_ALT1;
1421 1433
1422 gpio_tab[GPIO0][14].in_out = GPIO_IN; /* ZII_p0Rxd(2) */ 1434 gpio_tab[GPIO0][14].in_out = GPIO_IN; /* ZII_p0Rxd(2) */
1423 gpio_tab[GPIO0][14].alt_nb = GPIO_ALT1; 1435 gpio_tab[GPIO0][14].alt_nb = GPIO_ALT1;
1424 1436
1425 gpio_tab[GPIO0][15].in_out = GPIO_IN; /* ZII_p0Rxd(3) */ 1437 gpio_tab[GPIO0][15].in_out = GPIO_IN; /* ZII_p0Rxd(3) */
1426 gpio_tab[GPIO0][15].alt_nb = GPIO_ALT1; 1438 gpio_tab[GPIO0][15].alt_nb = GPIO_ALT1;
1427 1439
1428 gpio_tab[GPIO0][16].in_out = GPIO_OUT; /* ZII_p0Txd(0) */ 1440 gpio_tab[GPIO0][16].in_out = GPIO_OUT; /* ZII_p0Txd(0) */
1429 gpio_tab[GPIO0][16].alt_nb = GPIO_ALT1; 1441 gpio_tab[GPIO0][16].alt_nb = GPIO_ALT1;
1430 1442
1431 gpio_tab[GPIO0][17].in_out = GPIO_OUT; /* ZII_p0Txd(1) */ 1443 gpio_tab[GPIO0][17].in_out = GPIO_OUT; /* ZII_p0Txd(1) */
1432 gpio_tab[GPIO0][17].alt_nb = GPIO_ALT1; 1444 gpio_tab[GPIO0][17].alt_nb = GPIO_ALT1;
1433 1445
1434 gpio_tab[GPIO0][18].in_out = GPIO_OUT; /* ZII_p0Txd(2) */ 1446 gpio_tab[GPIO0][18].in_out = GPIO_OUT; /* ZII_p0Txd(2) */
1435 gpio_tab[GPIO0][18].alt_nb = GPIO_ALT1; 1447 gpio_tab[GPIO0][18].alt_nb = GPIO_ALT1;
1436 1448
1437 gpio_tab[GPIO0][19].in_out = GPIO_OUT; /* ZII_p0Txd(3) */ 1449 gpio_tab[GPIO0][19].in_out = GPIO_OUT; /* ZII_p0Txd(3) */
1438 gpio_tab[GPIO0][19].alt_nb = GPIO_ALT1; 1450 gpio_tab[GPIO0][19].alt_nb = GPIO_ALT1;
1439 1451
1440 gpio_tab[GPIO0][20].in_out = GPIO_IN; /* ZII_p0Rx_er */ 1452 gpio_tab[GPIO0][20].in_out = GPIO_IN; /* ZII_p0Rx_er */
1441 gpio_tab[GPIO0][20].alt_nb = GPIO_ALT1; 1453 gpio_tab[GPIO0][20].alt_nb = GPIO_ALT1;
1442 1454
1443 gpio_tab[GPIO0][21].in_out = GPIO_IN; /* ZII_p0Rx_dv */ 1455 gpio_tab[GPIO0][21].in_out = GPIO_IN; /* ZII_p0Rx_dv */
1444 gpio_tab[GPIO0][21].alt_nb = GPIO_ALT1; 1456 gpio_tab[GPIO0][21].alt_nb = GPIO_ALT1;
1445 1457
1446 gpio_tab[GPIO0][22].in_out = GPIO_IN; /* ZII_p0Crs */ 1458 gpio_tab[GPIO0][22].in_out = GPIO_IN; /* ZII_p0Crs */
1447 gpio_tab[GPIO0][22].alt_nb = GPIO_ALT1; 1459 gpio_tab[GPIO0][22].alt_nb = GPIO_ALT1;
1448 1460
1449 gpio_tab[GPIO0][23].in_out = GPIO_OUT; /* ZII_p0Tx_er */ 1461 gpio_tab[GPIO0][23].in_out = GPIO_OUT; /* ZII_p0Tx_er */
1450 gpio_tab[GPIO0][23].alt_nb = GPIO_ALT1; 1462 gpio_tab[GPIO0][23].alt_nb = GPIO_ALT1;
1451 1463
1452 gpio_tab[GPIO0][24].in_out = GPIO_OUT; /* ZII_p0Tx_en */ 1464 gpio_tab[GPIO0][24].in_out = GPIO_OUT; /* ZII_p0Tx_en */
1453 gpio_tab[GPIO0][24].alt_nb = GPIO_ALT1; 1465 gpio_tab[GPIO0][24].alt_nb = GPIO_ALT1;
1454 1466
1455 gpio_tab[GPIO0][25].in_out = GPIO_IN; /* ZII_p0Col */ 1467 gpio_tab[GPIO0][25].in_out = GPIO_IN; /* ZII_p0Col */
1456 gpio_tab[GPIO0][25].alt_nb = GPIO_ALT1; 1468 gpio_tab[GPIO0][25].alt_nb = GPIO_ALT1;
1457 1469
1458 } 1470 }
1459 1471
1460 /*----------------------------------------------------------------------------+ 1472 /*----------------------------------------------------------------------------+
1461 | update_uic_0_3_irq_ios(). 1473 | update_uic_0_3_irq_ios().
1462 +----------------------------------------------------------------------------*/ 1474 +----------------------------------------------------------------------------*/
1463 void update_uic_0_3_irq_ios(void) 1475 void update_uic_0_3_irq_ios(void)
1464 { 1476 {
1465 gpio_tab[GPIO1][8].in_out = GPIO_IN; /* UIC_IRQ(0) */ 1477 gpio_tab[GPIO1][8].in_out = GPIO_IN; /* UIC_IRQ(0) */
1466 gpio_tab[GPIO1][8].alt_nb = GPIO_ALT1; 1478 gpio_tab[GPIO1][8].alt_nb = GPIO_ALT1;
1467 1479
1468 gpio_tab[GPIO1][9].in_out = GPIO_IN; /* UIC_IRQ(1) */ 1480 gpio_tab[GPIO1][9].in_out = GPIO_IN; /* UIC_IRQ(1) */
1469 gpio_tab[GPIO1][9].alt_nb = GPIO_ALT1; 1481 gpio_tab[GPIO1][9].alt_nb = GPIO_ALT1;
1470 1482
1471 gpio_tab[GPIO1][10].in_out = GPIO_IN; /* UIC_IRQ(2) */ 1483 gpio_tab[GPIO1][10].in_out = GPIO_IN; /* UIC_IRQ(2) */
1472 gpio_tab[GPIO1][10].alt_nb = GPIO_ALT1; 1484 gpio_tab[GPIO1][10].alt_nb = GPIO_ALT1;
1473 1485
1474 gpio_tab[GPIO1][11].in_out = GPIO_IN; /* UIC_IRQ(3) */ 1486 gpio_tab[GPIO1][11].in_out = GPIO_IN; /* UIC_IRQ(3) */
1475 gpio_tab[GPIO1][11].alt_nb = GPIO_ALT1; 1487 gpio_tab[GPIO1][11].alt_nb = GPIO_ALT1;
1476 } 1488 }
1477 1489
1478 /*----------------------------------------------------------------------------+ 1490 /*----------------------------------------------------------------------------+
1479 | update_uic_4_9_irq_ios(). 1491 | update_uic_4_9_irq_ios().
1480 +----------------------------------------------------------------------------*/ 1492 +----------------------------------------------------------------------------*/
1481 void update_uic_4_9_irq_ios(void) 1493 void update_uic_4_9_irq_ios(void)
1482 { 1494 {
1483 gpio_tab[GPIO1][12].in_out = GPIO_IN; /* UIC_IRQ(4) */ 1495 gpio_tab[GPIO1][12].in_out = GPIO_IN; /* UIC_IRQ(4) */
1484 gpio_tab[GPIO1][12].alt_nb = GPIO_ALT1; 1496 gpio_tab[GPIO1][12].alt_nb = GPIO_ALT1;
1485 1497
1486 gpio_tab[GPIO1][13].in_out = GPIO_IN; /* UIC_IRQ(6) */ 1498 gpio_tab[GPIO1][13].in_out = GPIO_IN; /* UIC_IRQ(6) */
1487 gpio_tab[GPIO1][13].alt_nb = GPIO_ALT1; 1499 gpio_tab[GPIO1][13].alt_nb = GPIO_ALT1;
1488 1500
1489 gpio_tab[GPIO1][14].in_out = GPIO_IN; /* UIC_IRQ(7) */ 1501 gpio_tab[GPIO1][14].in_out = GPIO_IN; /* UIC_IRQ(7) */
1490 gpio_tab[GPIO1][14].alt_nb = GPIO_ALT1; 1502 gpio_tab[GPIO1][14].alt_nb = GPIO_ALT1;
1491 1503
1492 gpio_tab[GPIO1][15].in_out = GPIO_IN; /* UIC_IRQ(8) */ 1504 gpio_tab[GPIO1][15].in_out = GPIO_IN; /* UIC_IRQ(8) */
1493 gpio_tab[GPIO1][15].alt_nb = GPIO_ALT1; 1505 gpio_tab[GPIO1][15].alt_nb = GPIO_ALT1;
1494 1506
1495 gpio_tab[GPIO1][16].in_out = GPIO_IN; /* UIC_IRQ(9) */ 1507 gpio_tab[GPIO1][16].in_out = GPIO_IN; /* UIC_IRQ(9) */
1496 gpio_tab[GPIO1][16].alt_nb = GPIO_ALT1; 1508 gpio_tab[GPIO1][16].alt_nb = GPIO_ALT1;
1497 } 1509 }
1498 1510
1499 /*----------------------------------------------------------------------------+ 1511 /*----------------------------------------------------------------------------+
1500 | update_dma_a_b_ios(). 1512 | update_dma_a_b_ios().
1501 +----------------------------------------------------------------------------*/ 1513 +----------------------------------------------------------------------------*/
1502 void update_dma_a_b_ios(void) 1514 void update_dma_a_b_ios(void)
1503 { 1515 {
1504 gpio_tab[GPIO1][12].in_out = GPIO_OUT; /* DMA_ACK(1) */ 1516 gpio_tab[GPIO1][12].in_out = GPIO_OUT; /* DMA_ACK(1) */
1505 gpio_tab[GPIO1][12].alt_nb = GPIO_ALT2; 1517 gpio_tab[GPIO1][12].alt_nb = GPIO_ALT2;
1506 1518
1507 gpio_tab[GPIO1][13].in_out = GPIO_BI; /* DMA_EOT/TC(1) */ 1519 gpio_tab[GPIO1][13].in_out = GPIO_BI; /* DMA_EOT/TC(1) */
1508 gpio_tab[GPIO1][13].alt_nb = GPIO_ALT2; 1520 gpio_tab[GPIO1][13].alt_nb = GPIO_ALT2;
1509 1521
1510 gpio_tab[GPIO1][14].in_out = GPIO_IN; /* DMA_REQ(0) */ 1522 gpio_tab[GPIO1][14].in_out = GPIO_IN; /* DMA_REQ(0) */
1511 gpio_tab[GPIO1][14].alt_nb = GPIO_ALT2; 1523 gpio_tab[GPIO1][14].alt_nb = GPIO_ALT2;
1512 1524
1513 gpio_tab[GPIO1][15].in_out = GPIO_OUT; /* DMA_ACK(0) */ 1525 gpio_tab[GPIO1][15].in_out = GPIO_OUT; /* DMA_ACK(0) */
1514 gpio_tab[GPIO1][15].alt_nb = GPIO_ALT2; 1526 gpio_tab[GPIO1][15].alt_nb = GPIO_ALT2;
1515 1527
1516 gpio_tab[GPIO1][16].in_out = GPIO_BI; /* DMA_EOT/TC(0) */ 1528 gpio_tab[GPIO1][16].in_out = GPIO_BI; /* DMA_EOT/TC(0) */
1517 gpio_tab[GPIO1][16].alt_nb = GPIO_ALT2; 1529 gpio_tab[GPIO1][16].alt_nb = GPIO_ALT2;
1518 } 1530 }
1519 1531
1520 /*----------------------------------------------------------------------------+ 1532 /*----------------------------------------------------------------------------+
1521 | update_dma_c_d_ios(). 1533 | update_dma_c_d_ios().
1522 +----------------------------------------------------------------------------*/ 1534 +----------------------------------------------------------------------------*/
1523 void update_dma_c_d_ios(void) 1535 void update_dma_c_d_ios(void)
1524 { 1536 {
1525 gpio_tab[GPIO0][0].in_out = GPIO_IN; /* DMA_REQ(2) */ 1537 gpio_tab[GPIO0][0].in_out = GPIO_IN; /* DMA_REQ(2) */
1526 gpio_tab[GPIO0][0].alt_nb = GPIO_ALT2; 1538 gpio_tab[GPIO0][0].alt_nb = GPIO_ALT2;
1527 1539
1528 gpio_tab[GPIO0][1].in_out = GPIO_OUT; /* DMA_ACK(2) */ 1540 gpio_tab[GPIO0][1].in_out = GPIO_OUT; /* DMA_ACK(2) */
1529 gpio_tab[GPIO0][1].alt_nb = GPIO_ALT2; 1541 gpio_tab[GPIO0][1].alt_nb = GPIO_ALT2;
1530 1542
1531 gpio_tab[GPIO0][2].in_out = GPIO_BI; /* DMA_EOT/TC(2) */ 1543 gpio_tab[GPIO0][2].in_out = GPIO_BI; /* DMA_EOT/TC(2) */
1532 gpio_tab[GPIO0][2].alt_nb = GPIO_ALT2; 1544 gpio_tab[GPIO0][2].alt_nb = GPIO_ALT2;
1533 1545
1534 gpio_tab[GPIO0][3].in_out = GPIO_IN; /* DMA_REQ(3) */ 1546 gpio_tab[GPIO0][3].in_out = GPIO_IN; /* DMA_REQ(3) */
1535 gpio_tab[GPIO0][3].alt_nb = GPIO_ALT2; 1547 gpio_tab[GPIO0][3].alt_nb = GPIO_ALT2;
1536 1548
1537 gpio_tab[GPIO0][4].in_out = GPIO_OUT; /* DMA_ACK(3) */ 1549 gpio_tab[GPIO0][4].in_out = GPIO_OUT; /* DMA_ACK(3) */
1538 gpio_tab[GPIO0][4].alt_nb = GPIO_ALT2; 1550 gpio_tab[GPIO0][4].alt_nb = GPIO_ALT2;
1539 1551
1540 gpio_tab[GPIO0][5].in_out = GPIO_BI; /* DMA_EOT/TC(3) */ 1552 gpio_tab[GPIO0][5].in_out = GPIO_BI; /* DMA_EOT/TC(3) */
1541 gpio_tab[GPIO0][5].alt_nb = GPIO_ALT2; 1553 gpio_tab[GPIO0][5].alt_nb = GPIO_ALT2;
1542 1554
1543 } 1555 }
1544 1556
1545 /*----------------------------------------------------------------------------+ 1557 /*----------------------------------------------------------------------------+
1546 | update_ebc_master_ios(). 1558 | update_ebc_master_ios().
1547 +----------------------------------------------------------------------------*/ 1559 +----------------------------------------------------------------------------*/
1548 void update_ebc_master_ios(void) 1560 void update_ebc_master_ios(void)
1549 { 1561 {
1550 gpio_tab[GPIO0][27].in_out = GPIO_IN; /* EXT_EBC_REQ */ 1562 gpio_tab[GPIO0][27].in_out = GPIO_IN; /* EXT_EBC_REQ */
1551 gpio_tab[GPIO0][27].alt_nb = GPIO_ALT1; 1563 gpio_tab[GPIO0][27].alt_nb = GPIO_ALT1;
1552 1564
1553 gpio_tab[GPIO0][29].in_out = GPIO_OUT; /* EBC_EXT_HDLA */ 1565 gpio_tab[GPIO0][29].in_out = GPIO_OUT; /* EBC_EXT_HDLA */
1554 gpio_tab[GPIO0][29].alt_nb = GPIO_ALT1; 1566 gpio_tab[GPIO0][29].alt_nb = GPIO_ALT1;
1555 1567
1556 gpio_tab[GPIO0][30].in_out = GPIO_OUT; /* EBC_EXT_ACK */ 1568 gpio_tab[GPIO0][30].in_out = GPIO_OUT; /* EBC_EXT_ACK */
1557 gpio_tab[GPIO0][30].alt_nb = GPIO_ALT1; 1569 gpio_tab[GPIO0][30].alt_nb = GPIO_ALT1;
1558 1570
1559 gpio_tab[GPIO0][31].in_out = GPIO_OUT; /* EBC_EXR_BUSREQ */ 1571 gpio_tab[GPIO0][31].in_out = GPIO_OUT; /* EBC_EXR_BUSREQ */
1560 gpio_tab[GPIO0][31].alt_nb = GPIO_ALT1; 1572 gpio_tab[GPIO0][31].alt_nb = GPIO_ALT1;
1561 } 1573 }
1562 1574
1563 /*----------------------------------------------------------------------------+ 1575 /*----------------------------------------------------------------------------+
1564 | update_usb2_device_ios(). 1576 | update_usb2_device_ios().
1565 +----------------------------------------------------------------------------*/ 1577 +----------------------------------------------------------------------------*/
1566 void update_usb2_device_ios(void) 1578 void update_usb2_device_ios(void)
1567 { 1579 {
1568 gpio_tab[GPIO0][26].in_out = GPIO_IN; /* USB2D_RXVALID */ 1580 gpio_tab[GPIO0][26].in_out = GPIO_IN; /* USB2D_RXVALID */
1569 gpio_tab[GPIO0][26].alt_nb = GPIO_ALT2; 1581 gpio_tab[GPIO0][26].alt_nb = GPIO_ALT2;
1570 1582
1571 gpio_tab[GPIO0][27].in_out = GPIO_IN; /* USB2D_RXERROR */ 1583 gpio_tab[GPIO0][27].in_out = GPIO_IN; /* USB2D_RXERROR */
1572 gpio_tab[GPIO0][27].alt_nb = GPIO_ALT2; 1584 gpio_tab[GPIO0][27].alt_nb = GPIO_ALT2;
1573 1585
1574 gpio_tab[GPIO0][28].in_out = GPIO_OUT; /* USB2D_TXVALID */ 1586 gpio_tab[GPIO0][28].in_out = GPIO_OUT; /* USB2D_TXVALID */
1575 gpio_tab[GPIO0][28].alt_nb = GPIO_ALT2; 1587 gpio_tab[GPIO0][28].alt_nb = GPIO_ALT2;
1576 1588
1577 gpio_tab[GPIO0][29].in_out = GPIO_OUT; /* USB2D_PAD_SUSPNDM */ 1589 gpio_tab[GPIO0][29].in_out = GPIO_OUT; /* USB2D_PAD_SUSPNDM */
1578 gpio_tab[GPIO0][29].alt_nb = GPIO_ALT2; 1590 gpio_tab[GPIO0][29].alt_nb = GPIO_ALT2;
1579 1591
1580 gpio_tab[GPIO0][30].in_out = GPIO_OUT; /* USB2D_XCVRSELECT */ 1592 gpio_tab[GPIO0][30].in_out = GPIO_OUT; /* USB2D_XCVRSELECT */
1581 gpio_tab[GPIO0][30].alt_nb = GPIO_ALT2; 1593 gpio_tab[GPIO0][30].alt_nb = GPIO_ALT2;
1582 1594
1583 gpio_tab[GPIO0][31].in_out = GPIO_OUT; /* USB2D_TERMSELECT */ 1595 gpio_tab[GPIO0][31].in_out = GPIO_OUT; /* USB2D_TERMSELECT */
1584 gpio_tab[GPIO0][31].alt_nb = GPIO_ALT2; 1596 gpio_tab[GPIO0][31].alt_nb = GPIO_ALT2;
1585 1597
1586 gpio_tab[GPIO1][0].in_out = GPIO_OUT; /* USB2D_OPMODE0 */ 1598 gpio_tab[GPIO1][0].in_out = GPIO_OUT; /* USB2D_OPMODE0 */
1587 gpio_tab[GPIO1][0].alt_nb = GPIO_ALT1; 1599 gpio_tab[GPIO1][0].alt_nb = GPIO_ALT1;
1588 1600
1589 gpio_tab[GPIO1][1].in_out = GPIO_OUT; /* USB2D_OPMODE1 */ 1601 gpio_tab[GPIO1][1].in_out = GPIO_OUT; /* USB2D_OPMODE1 */
1590 gpio_tab[GPIO1][1].alt_nb = GPIO_ALT1; 1602 gpio_tab[GPIO1][1].alt_nb = GPIO_ALT1;
1591 1603
1592 } 1604 }
1593 1605
1594 /*----------------------------------------------------------------------------+ 1606 /*----------------------------------------------------------------------------+
1595 | update_pci_patch_ios(). 1607 | update_pci_patch_ios().
1596 +----------------------------------------------------------------------------*/ 1608 +----------------------------------------------------------------------------*/
1597 void update_pci_patch_ios(void) 1609 void update_pci_patch_ios(void)
1598 { 1610 {
1599 gpio_tab[GPIO0][29].in_out = GPIO_OUT; /* EBC_EXT_HDLA */ 1611 gpio_tab[GPIO0][29].in_out = GPIO_OUT; /* EBC_EXT_HDLA */
1600 gpio_tab[GPIO0][29].alt_nb = GPIO_ALT1; 1612 gpio_tab[GPIO0][29].alt_nb = GPIO_ALT1;
1601 } 1613 }
1602 1614
1603 /*----------------------------------------------------------------------------+ 1615 /*----------------------------------------------------------------------------+
1604 | set_chip_gpio_configuration(unsigned char gpio_core) 1616 | set_chip_gpio_configuration(unsigned char gpio_core)
1605 | Put the core impacted by clock modification and sharing in reset. 1617 | Put the core impacted by clock modification and sharing in reset.
1606 | Config the select registers to resolve the sharing depending of the config. 1618 | Config the select registers to resolve the sharing depending of the config.
1607 | Configure the GPIO registers. 1619 | Configure the GPIO registers.
1608 | 1620 |
1609 +----------------------------------------------------------------------------*/ 1621 +----------------------------------------------------------------------------*/
1610 void set_chip_gpio_configuration(unsigned char gpio_core) 1622 void set_chip_gpio_configuration(unsigned char gpio_core)
1611 { 1623 {
1612 unsigned char i=0, j=0, reg_offset = 0; 1624 unsigned char i=0, j=0, reg_offset = 0;
1613 unsigned long gpio_reg, gpio_core_add; 1625 unsigned long gpio_reg, gpio_core_add;
1614 1626
1615 /* GPIO config of the GPIOs 0 to 31 */ 1627 /* GPIO config of the GPIOs 0 to 31 */
1616 for (i=0; i<GPIO_MAX; i++, j++) 1628 for (i=0; i<GPIO_MAX; i++, j++)
1617 { 1629 {
1618 if (i == GPIO_MAX/2) 1630 if (i == GPIO_MAX/2)
1619 { 1631 {
1620 reg_offset = 4; 1632 reg_offset = 4;
1621 j = i-16; 1633 j = i-16;
1622 } 1634 }
1623 1635
1624 gpio_core_add = gpio_tab[gpio_core][i].add; 1636 gpio_core_add = gpio_tab[gpio_core][i].add;
1625 1637
1626 if ( (gpio_tab[gpio_core][i].in_out == GPIO_IN) || 1638 if ( (gpio_tab[gpio_core][i].in_out == GPIO_IN) ||
1627 (gpio_tab[gpio_core][i].in_out == GPIO_BI )) 1639 (gpio_tab[gpio_core][i].in_out == GPIO_BI ))
1628 { 1640 {
1629 switch (gpio_tab[gpio_core][i].alt_nb) 1641 switch (gpio_tab[gpio_core][i].alt_nb)
1630 { 1642 {
1631 case GPIO_SEL: 1643 case GPIO_SEL:
1632 break; 1644 break;
1633 1645
1634 case GPIO_ALT1: 1646 case GPIO_ALT1:
1635 gpio_reg = in32(GPIO_IS1(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1647 gpio_reg = in32(GPIO_IS1(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1636 gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2)); 1648 gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2));
1637 out32(GPIO_IS1(gpio_core_add+reg_offset), gpio_reg); 1649 out32(GPIO_IS1(gpio_core_add+reg_offset), gpio_reg);
1638 break; 1650 break;
1639 1651
1640 case GPIO_ALT2: 1652 case GPIO_ALT2:
1641 gpio_reg = in32(GPIO_IS2(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1653 gpio_reg = in32(GPIO_IS2(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1642 gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2)); 1654 gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2));
1643 out32(GPIO_IS2(gpio_core_add+reg_offset), gpio_reg); 1655 out32(GPIO_IS2(gpio_core_add+reg_offset), gpio_reg);
1644 break; 1656 break;
1645 1657
1646 case GPIO_ALT3: 1658 case GPIO_ALT3:
1647 gpio_reg = in32(GPIO_IS3(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1659 gpio_reg = in32(GPIO_IS3(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1648 gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2)); 1660 gpio_reg = gpio_reg | (GPIO_IN_SEL >> (j*2));
1649 out32(GPIO_IS3(gpio_core_add+reg_offset), gpio_reg); 1661 out32(GPIO_IS3(gpio_core_add+reg_offset), gpio_reg);
1650 break; 1662 break;
1651 } 1663 }
1652 } 1664 }
1653 if ( (gpio_tab[gpio_core][i].in_out == GPIO_OUT) || 1665 if ( (gpio_tab[gpio_core][i].in_out == GPIO_OUT) ||
1654 (gpio_tab[gpio_core][i].in_out == GPIO_BI )) 1666 (gpio_tab[gpio_core][i].in_out == GPIO_BI ))
1655 { 1667 {
1656 1668
1657 switch (gpio_tab[gpio_core][i].alt_nb) 1669 switch (gpio_tab[gpio_core][i].alt_nb)
1658 { 1670 {
1659 case GPIO_SEL: 1671 case GPIO_SEL:
1660 break; 1672 break;
1661 case GPIO_ALT1: 1673 case GPIO_ALT1:
1662 gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1674 gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1663 gpio_reg = gpio_reg | (GPIO_ALT1_SEL >> (j*2)); 1675 gpio_reg = gpio_reg | (GPIO_ALT1_SEL >> (j*2));
1664 out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg); 1676 out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg);
1665 gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1677 gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1666 gpio_reg = gpio_reg | (GPIO_ALT1_SEL >> (j*2)); 1678 gpio_reg = gpio_reg | (GPIO_ALT1_SEL >> (j*2));
1667 out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg); 1679 out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg);
1668 break; 1680 break;
1669 case GPIO_ALT2: 1681 case GPIO_ALT2:
1670 gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1682 gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1671 gpio_reg = gpio_reg | (GPIO_ALT2_SEL >> (j*2)); 1683 gpio_reg = gpio_reg | (GPIO_ALT2_SEL >> (j*2));
1672 out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg); 1684 out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg);
1673 gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1685 gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1674 gpio_reg = gpio_reg | (GPIO_ALT2_SEL >> (j*2)); 1686 gpio_reg = gpio_reg | (GPIO_ALT2_SEL >> (j*2));
1675 out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg); 1687 out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg);
1676 break; 1688 break;
1677 case GPIO_ALT3: 1689 case GPIO_ALT3:
1678 gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1690 gpio_reg = in32(GPIO_OS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1679 gpio_reg = gpio_reg | (GPIO_ALT3_SEL >> (j*2)); 1691 gpio_reg = gpio_reg | (GPIO_ALT3_SEL >> (j*2));
1680 out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg); 1692 out32(GPIO_OS(gpio_core_add+reg_offset), gpio_reg);
1681 gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2)); 1693 gpio_reg = in32(GPIO_TS(gpio_core_add+reg_offset)) & ~(GPIO_MASK >> (j*2));
1682 gpio_reg = gpio_reg | (GPIO_ALT3_SEL >> (j*2)); 1694 gpio_reg = gpio_reg | (GPIO_ALT3_SEL >> (j*2));
1683 out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg); 1695 out32(GPIO_TS(gpio_core_add+reg_offset), gpio_reg);
1684 break; 1696 break;
1685 } 1697 }
1686 } 1698 }
1687 } 1699 }
1688 } 1700 }
1689 1701
1690 /*----------------------------------------------------------------------------+ 1702 /*----------------------------------------------------------------------------+
1691 | force_bup_core_selection. 1703 | force_bup_core_selection.
1692 +----------------------------------------------------------------------------*/ 1704 +----------------------------------------------------------------------------*/
1693 void force_bup_core_selection(core_selection_t *core_select_P, config_validity_t *config_val_P) 1705 void force_bup_core_selection(core_selection_t *core_select_P, config_validity_t *config_val_P)
1694 { 1706 {
1695 /* Pointer invalid */ 1707 /* Pointer invalid */
1696 if (core_select_P == NULL) 1708 if (core_select_P == NULL)
1697 { 1709 {
1698 printf("Configuration invalid pointer 1\n"); 1710 printf("Configuration invalid pointer 1\n");
1699 for (;;) 1711 for (;;)
1700 ; 1712 ;
1701 } 1713 }
1702 1714
1703 /* L4 Selection */ 1715 /* L4 Selection */
1704 *(core_select_P+UART_CORE0) = CORE_SELECTED; 1716 *(core_select_P+UART_CORE0) = CORE_SELECTED;
1705 *(core_select_P+UART_CORE1) = CORE_SELECTED; 1717 *(core_select_P+UART_CORE1) = CORE_SELECTED;
1706 *(core_select_P+UART_CORE2) = CORE_SELECTED; 1718 *(core_select_P+UART_CORE2) = CORE_SELECTED;
1707 *(core_select_P+UART_CORE3) = CORE_SELECTED; 1719 *(core_select_P+UART_CORE3) = CORE_SELECTED;
1708 1720
1709 /* RMII Selection */ 1721 /* RMII Selection */
1710 *(core_select_P+RMII_SEL) = CORE_SELECTED; 1722 *(core_select_P+RMII_SEL) = CORE_SELECTED;
1711 1723
1712 /* External Interrupt 0-9 selection */ 1724 /* External Interrupt 0-9 selection */
1713 *(core_select_P+UIC_0_3) = CORE_SELECTED; 1725 *(core_select_P+UIC_0_3) = CORE_SELECTED;
1714 *(core_select_P+UIC_4_9) = CORE_SELECTED; 1726 *(core_select_P+UIC_4_9) = CORE_SELECTED;
1715 1727
1716 *(core_select_P+SCP_CORE) = CORE_SELECTED; 1728 *(core_select_P+SCP_CORE) = CORE_SELECTED;
1717 *(core_select_P+DMA_CHANNEL_CD) = CORE_SELECTED; 1729 *(core_select_P+DMA_CHANNEL_CD) = CORE_SELECTED;
1718 *(core_select_P+PACKET_REJ_FUNC_AVAIL) = CORE_SELECTED; 1730 *(core_select_P+PACKET_REJ_FUNC_AVAIL) = CORE_SELECTED;
1719 *(core_select_P+USB1_DEVICE) = CORE_SELECTED; 1731 *(core_select_P+USB1_DEVICE) = CORE_SELECTED;
1720 1732
1721 *config_val_P = CONFIG_IS_VALID; 1733 *config_val_P = CONFIG_IS_VALID;
1722 1734
1723 } 1735 }
1724 1736
1725 /*----------------------------------------------------------------------------+ 1737 /*----------------------------------------------------------------------------+
1726 | configure_ppc440ep_pins. 1738 | configure_ppc440ep_pins.
1727 +----------------------------------------------------------------------------*/ 1739 +----------------------------------------------------------------------------*/
1728 void configure_ppc440ep_pins(void) 1740 void configure_ppc440ep_pins(void)
1729 { 1741 {
1730 uart_config_nb_t uart_configuration; 1742 uart_config_nb_t uart_configuration;
1731 config_validity_t config_val = CONFIG_IS_INVALID; 1743 config_validity_t config_val = CONFIG_IS_INVALID;
1732 1744
1733 /* Create Core Selection Table */ 1745 /* Create Core Selection Table */
1734 core_selection_t ppc440ep_core_selection[MAX_CORE_SELECT_NB] = 1746 core_selection_t ppc440ep_core_selection[MAX_CORE_SELECT_NB] =
1735 { 1747 {
1736 CORE_NOT_SELECTED, /* IIC_CORE, */ 1748 CORE_NOT_SELECTED, /* IIC_CORE, */
1737 CORE_NOT_SELECTED, /* SPC_CORE, */ 1749 CORE_NOT_SELECTED, /* SPC_CORE, */
1738 CORE_NOT_SELECTED, /* DMA_CHANNEL_AB, */ 1750 CORE_NOT_SELECTED, /* DMA_CHANNEL_AB, */
1739 CORE_NOT_SELECTED, /* UIC_4_9, */ 1751 CORE_NOT_SELECTED, /* UIC_4_9, */
1740 CORE_NOT_SELECTED, /* USB2_HOST, */ 1752 CORE_NOT_SELECTED, /* USB2_HOST, */
1741 CORE_NOT_SELECTED, /* DMA_CHANNEL_CD, */ 1753 CORE_NOT_SELECTED, /* DMA_CHANNEL_CD, */
1742 CORE_NOT_SELECTED, /* USB2_DEVICE, */ 1754 CORE_NOT_SELECTED, /* USB2_DEVICE, */
1743 CORE_NOT_SELECTED, /* PACKET_REJ_FUNC_AVAIL, */ 1755 CORE_NOT_SELECTED, /* PACKET_REJ_FUNC_AVAIL, */
1744 CORE_NOT_SELECTED, /* USB1_DEVICE, */ 1756 CORE_NOT_SELECTED, /* USB1_DEVICE, */
1745 CORE_NOT_SELECTED, /* EBC_MASTER, */ 1757 CORE_NOT_SELECTED, /* EBC_MASTER, */
1746 CORE_NOT_SELECTED, /* NAND_FLASH, */ 1758 CORE_NOT_SELECTED, /* NAND_FLASH, */
1747 CORE_NOT_SELECTED, /* UART_CORE0, */ 1759 CORE_NOT_SELECTED, /* UART_CORE0, */
1748 CORE_NOT_SELECTED, /* UART_CORE1, */ 1760 CORE_NOT_SELECTED, /* UART_CORE1, */
1749 CORE_NOT_SELECTED, /* UART_CORE2, */ 1761 CORE_NOT_SELECTED, /* UART_CORE2, */
1750 CORE_NOT_SELECTED, /* UART_CORE3, */ 1762 CORE_NOT_SELECTED, /* UART_CORE3, */
1751 CORE_NOT_SELECTED, /* MII_SEL, */ 1763 CORE_NOT_SELECTED, /* MII_SEL, */
1752 CORE_NOT_SELECTED, /* RMII_SEL, */ 1764 CORE_NOT_SELECTED, /* RMII_SEL, */
1753 CORE_NOT_SELECTED, /* SMII_SEL, */ 1765 CORE_NOT_SELECTED, /* SMII_SEL, */
1754 CORE_NOT_SELECTED, /* PACKET_REJ_FUNC_EN */ 1766 CORE_NOT_SELECTED, /* PACKET_REJ_FUNC_EN */
1755 CORE_NOT_SELECTED, /* UIC_0_3 */ 1767 CORE_NOT_SELECTED, /* UIC_0_3 */
1756 CORE_NOT_SELECTED, /* USB1_HOST */ 1768 CORE_NOT_SELECTED, /* USB1_HOST */
1757 CORE_NOT_SELECTED /* PCI_PATCH */ 1769 CORE_NOT_SELECTED /* PCI_PATCH */
1758 }; 1770 };
1759 1771
1760 1772
1761 /* Table Default Initialisation + FPGA Access */ 1773 /* Table Default Initialisation + FPGA Access */
1762 init_default_gpio(); 1774 init_default_gpio();
1763 set_chip_gpio_configuration(GPIO0); 1775 set_chip_gpio_configuration(GPIO0);
1764 set_chip_gpio_configuration(GPIO1); 1776 set_chip_gpio_configuration(GPIO1);
1765 1777
1766 /* Update Table */ 1778 /* Update Table */
1767 force_bup_core_selection(ppc440ep_core_selection, &config_val); 1779 force_bup_core_selection(ppc440ep_core_selection, &config_val);
1768 #if 0 /* test-only */ 1780 #if 0 /* test-only */
1769 /* If we are running PIBS 1, force known configuration */ 1781 /* If we are running PIBS 1, force known configuration */
1770 update_core_selection_table(ppc440ep_core_selection, &config_val); 1782 update_core_selection_table(ppc440ep_core_selection, &config_val);
1771 #endif 1783 #endif
1772 1784
1773 /*----------------------------------------------------------------------------+ 1785 /*----------------------------------------------------------------------------+
1774 | SDR + ios table update + fpga initialization 1786 | SDR + ios table update + fpga initialization
1775 +----------------------------------------------------------------------------*/ 1787 +----------------------------------------------------------------------------*/
1776 unsigned long sdr0_pfc1 = 0; 1788 unsigned long sdr0_pfc1 = 0;
1777 unsigned long sdr0_usb0 = 0; 1789 unsigned long sdr0_usb0 = 0;
1778 unsigned long sdr0_mfr = 0; 1790 unsigned long sdr0_mfr = 0;
1779 1791
1780 /* PCI Always selected */ 1792 /* PCI Always selected */
1781 1793
1782 /* I2C Selection */ 1794 /* I2C Selection */
1783 if (ppc440ep_core_selection[IIC_CORE] == CORE_SELECTED) 1795 if (ppc440ep_core_selection[IIC_CORE] == CORE_SELECTED)
1784 { 1796 {
1785 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_SIS_MASK) | SDR0_PFC1_SIS_IIC1_SEL; 1797 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_SIS_MASK) | SDR0_PFC1_SIS_IIC1_SEL;
1786 iic1_selection_in_fpga(); 1798 iic1_selection_in_fpga();
1787 } 1799 }
1788 1800
1789 /* SCP Selection */ 1801 /* SCP Selection */
1790 if (ppc440ep_core_selection[SCP_CORE] == CORE_SELECTED) 1802 if (ppc440ep_core_selection[SCP_CORE] == CORE_SELECTED)
1791 { 1803 {
1792 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_SIS_MASK) | SDR0_PFC1_SIS_SCP_SEL; 1804 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_SIS_MASK) | SDR0_PFC1_SIS_SCP_SEL;
1793 scp_selection_in_fpga(); 1805 scp_selection_in_fpga();
1794 } 1806 }
1795 1807
1796 /* UIC 0:3 Selection */ 1808 /* UIC 0:3 Selection */
1797 if (ppc440ep_core_selection[UIC_0_3] == CORE_SELECTED) 1809 if (ppc440ep_core_selection[UIC_0_3] == CORE_SELECTED)
1798 { 1810 {
1799 update_uic_0_3_irq_ios(); 1811 update_uic_0_3_irq_ios();
1800 dma_a_b_unselect_in_fpga(); 1812 dma_a_b_unselect_in_fpga();
1801 } 1813 }
1802 1814
1803 /* UIC 4:9 Selection */ 1815 /* UIC 4:9 Selection */
1804 if (ppc440ep_core_selection[UIC_4_9] == CORE_SELECTED) 1816 if (ppc440ep_core_selection[UIC_4_9] == CORE_SELECTED)
1805 { 1817 {
1806 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_DIS_MASK) | SDR0_PFC1_DIS_UICIRQ5_SEL; 1818 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_DIS_MASK) | SDR0_PFC1_DIS_UICIRQ5_SEL;
1807 update_uic_4_9_irq_ios(); 1819 update_uic_4_9_irq_ios();
1808 } 1820 }
1809 1821
1810 /* DMA AB Selection */ 1822 /* DMA AB Selection */
1811 if (ppc440ep_core_selection[DMA_CHANNEL_AB] == CORE_SELECTED) 1823 if (ppc440ep_core_selection[DMA_CHANNEL_AB] == CORE_SELECTED)
1812 { 1824 {
1813 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_DIS_MASK) | SDR0_PFC1_DIS_DMAR_SEL; 1825 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_DIS_MASK) | SDR0_PFC1_DIS_DMAR_SEL;
1814 update_dma_a_b_ios(); 1826 update_dma_a_b_ios();
1815 dma_a_b_selection_in_fpga(); 1827 dma_a_b_selection_in_fpga();
1816 } 1828 }
1817 1829
1818 /* DMA CD Selection */ 1830 /* DMA CD Selection */
1819 if (ppc440ep_core_selection[DMA_CHANNEL_CD] == CORE_SELECTED) 1831 if (ppc440ep_core_selection[DMA_CHANNEL_CD] == CORE_SELECTED)
1820 { 1832 {
1821 update_dma_c_d_ios(); 1833 update_dma_c_d_ios();
1822 dma_c_d_selection_in_fpga(); 1834 dma_c_d_selection_in_fpga();
1823 } 1835 }
1824 1836
1825 /* EBC Master Selection */ 1837 /* EBC Master Selection */
1826 if (ppc440ep_core_selection[EBC_MASTER] == CORE_SELECTED) 1838 if (ppc440ep_core_selection[EBC_MASTER] == CORE_SELECTED)
1827 { 1839 {
1828 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_ERE_MASK) | SDR0_PFC1_ERE_EXTR_SEL; 1840 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_ERE_MASK) | SDR0_PFC1_ERE_EXTR_SEL;
1829 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UES_MASK) | SDR0_PFC1_UES_EBCHR_SEL; 1841 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UES_MASK) | SDR0_PFC1_UES_EBCHR_SEL;
1830 update_ebc_master_ios(); 1842 update_ebc_master_ios();
1831 } 1843 }
1832 1844
1833 /* PCI Patch Enable */ 1845 /* PCI Patch Enable */
1834 if (ppc440ep_core_selection[PCI_PATCH] == CORE_SELECTED) 1846 if (ppc440ep_core_selection[PCI_PATCH] == CORE_SELECTED)
1835 { 1847 {
1836 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UES_MASK) | SDR0_PFC1_UES_EBCHR_SEL; 1848 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UES_MASK) | SDR0_PFC1_UES_EBCHR_SEL;
1837 update_pci_patch_ios(); 1849 update_pci_patch_ios();
1838 } 1850 }
1839 1851
1840 /* USB2 Host Selection - Not Implemented in PowerPC 440EP Pass1 */ 1852 /* USB2 Host Selection - Not Implemented in PowerPC 440EP Pass1 */
1841 if (ppc440ep_core_selection[USB2_HOST] == CORE_SELECTED) 1853 if (ppc440ep_core_selection[USB2_HOST] == CORE_SELECTED)
1842 { 1854 {
1843 /* Not Implemented in PowerPC 440EP Pass1-Pass2 */ 1855 /* Not Implemented in PowerPC 440EP Pass1-Pass2 */
1844 printf("Invalid configuration => USB2 Host selected\n"); 1856 printf("Invalid configuration => USB2 Host selected\n");
1845 for (;;) 1857 for (;;)
1846 ; 1858 ;
1847 /*usb2_host_selection_in_fpga(); */ 1859 /*usb2_host_selection_in_fpga(); */
1848 } 1860 }
1849 1861
1850 /* USB2.0 Device Selection */ 1862 /* USB2.0 Device Selection */
1851 if (ppc440ep_core_selection[USB2_DEVICE] == CORE_SELECTED) 1863 if (ppc440ep_core_selection[USB2_DEVICE] == CORE_SELECTED)
1852 { 1864 {
1853 update_usb2_device_ios(); 1865 update_usb2_device_ios();
1854 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UES_MASK) | SDR0_PFC1_UES_USB2D_SEL; 1866 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UES_MASK) | SDR0_PFC1_UES_USB2D_SEL;
1855 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UPR_MASK) | SDR0_PFC1_UPR_DISABLE; 1867 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UPR_MASK) | SDR0_PFC1_UPR_DISABLE;
1856 1868
1857 mfsdr(sdr_usb0, sdr0_usb0); 1869 mfsdr(sdr_usb0, sdr0_usb0);
1858 sdr0_usb0 = sdr0_usb0 &~SDR0_USB0_USB_DEVSEL_MASK; 1870 sdr0_usb0 = sdr0_usb0 &~SDR0_USB0_USB_DEVSEL_MASK;
1859 sdr0_usb0 = sdr0_usb0 | SDR0_USB0_USB20D_DEVSEL; 1871 sdr0_usb0 = sdr0_usb0 | SDR0_USB0_USB20D_DEVSEL;
1860 mtsdr(sdr_usb0, sdr0_usb0); 1872 mtsdr(sdr_usb0, sdr0_usb0);
1861 1873
1862 usb2_device_selection_in_fpga(); 1874 usb2_device_selection_in_fpga();
1863 } 1875 }
1864 1876
1865 /* USB1.1 Device Selection */ 1877 /* USB1.1 Device Selection */
1866 if (ppc440ep_core_selection[USB1_DEVICE] == CORE_SELECTED) 1878 if (ppc440ep_core_selection[USB1_DEVICE] == CORE_SELECTED)
1867 { 1879 {
1868 mfsdr(sdr_usb0, sdr0_usb0); 1880 mfsdr(sdr_usb0, sdr0_usb0);
1869 sdr0_usb0 = sdr0_usb0 &~SDR0_USB0_USB_DEVSEL_MASK; 1881 sdr0_usb0 = sdr0_usb0 &~SDR0_USB0_USB_DEVSEL_MASK;
1870 sdr0_usb0 = sdr0_usb0 | SDR0_USB0_USB11D_DEVSEL; 1882 sdr0_usb0 = sdr0_usb0 | SDR0_USB0_USB11D_DEVSEL;
1871 mtsdr(sdr_usb0, sdr0_usb0); 1883 mtsdr(sdr_usb0, sdr0_usb0);
1872 } 1884 }
1873 1885
1874 /* USB1.1 Host Selection */ 1886 /* USB1.1 Host Selection */
1875 if (ppc440ep_core_selection[USB1_HOST] == CORE_SELECTED) 1887 if (ppc440ep_core_selection[USB1_HOST] == CORE_SELECTED)
1876 { 1888 {
1877 mfsdr(sdr_usb0, sdr0_usb0); 1889 mfsdr(sdr_usb0, sdr0_usb0);
1878 sdr0_usb0 = sdr0_usb0 &~SDR0_USB0_LEEN_MASK; 1890 sdr0_usb0 = sdr0_usb0 &~SDR0_USB0_LEEN_MASK;
1879 sdr0_usb0 = sdr0_usb0 | SDR0_USB0_LEEN_ENABLE; 1891 sdr0_usb0 = sdr0_usb0 | SDR0_USB0_LEEN_ENABLE;
1880 mtsdr(sdr_usb0, sdr0_usb0); 1892 mtsdr(sdr_usb0, sdr0_usb0);
1881 } 1893 }
1882 1894
1883 /* NAND Flash Selection */ 1895 /* NAND Flash Selection */
1884 if (ppc440ep_core_selection[NAND_FLASH] == CORE_SELECTED) 1896 if (ppc440ep_core_selection[NAND_FLASH] == CORE_SELECTED)
1885 { 1897 {
1886 update_ndfc_ios(); 1898 update_ndfc_ios();
1887 1899
1888 mtsdr(sdr_cust0, SDR0_CUST0_MUX_NDFC_SEL | 1900 mtsdr(sdr_cust0, SDR0_CUST0_MUX_NDFC_SEL |
1889 SDR0_CUST0_NDFC_ENABLE | 1901 SDR0_CUST0_NDFC_ENABLE |
1890 SDR0_CUST0_NDFC_BW_8_BIT | 1902 SDR0_CUST0_NDFC_BW_8_BIT |
1891 SDR0_CUST0_NDFC_ARE_MASK | 1903 SDR0_CUST0_NDFC_ARE_MASK |
1892 SDR0_CUST0_CHIPSELGAT_EN1 ); 1904 SDR0_CUST0_CHIPSELGAT_EN1 );
1893 /*SDR0_CUST0_CHIPSELGAT_EN2 ); */ 1905 /*SDR0_CUST0_CHIPSELGAT_EN2 ); */
1894 /*SDR0_CUST0_CHIPSELGAT_EN3 ); */ 1906 /*SDR0_CUST0_CHIPSELGAT_EN3 ); */
1895 1907
1896 ndfc_selection_in_fpga(); 1908 ndfc_selection_in_fpga();
1897 } 1909 }
1898 else 1910 else
1899 { 1911 {
1900 /* Set Mux on EMAC */ 1912 /* Set Mux on EMAC */
1901 mtsdr(sdr_cust0, SDR0_CUST0_MUX_EMAC_SEL); 1913 mtsdr(sdr_cust0, SDR0_CUST0_MUX_EMAC_SEL);
1902 } 1914 }
1903 1915
1904 /* MII Selection */ 1916 /* MII Selection */
1905 if (ppc440ep_core_selection[MII_SEL] == CORE_SELECTED) 1917 if (ppc440ep_core_selection[MII_SEL] == CORE_SELECTED)
1906 { 1918 {
1907 update_zii_ios(); 1919 update_zii_ios();
1908 mfsdr(sdr_mfr, sdr0_mfr); 1920 mfsdr(sdr_mfr, sdr0_mfr);
1909 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_ZMII_MODE_MASK) | SDR0_MFR_ZMII_MODE_MII; 1921 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_ZMII_MODE_MASK) | SDR0_MFR_ZMII_MODE_MII;
1910 mtsdr(sdr_mfr, sdr0_mfr); 1922 mtsdr(sdr_mfr, sdr0_mfr);
1911 1923
1912 set_phy_configuration_through_fpga(ZMII_CONFIGURATION_IS_MII); 1924 set_phy_configuration_through_fpga(ZMII_CONFIGURATION_IS_MII);
1913 } 1925 }
1914 1926
1915 /* RMII Selection */ 1927 /* RMII Selection */
1916 if (ppc440ep_core_selection[RMII_SEL] == CORE_SELECTED) 1928 if (ppc440ep_core_selection[RMII_SEL] == CORE_SELECTED)
1917 { 1929 {
1918 update_zii_ios(); 1930 update_zii_ios();
1919 mfsdr(sdr_mfr, sdr0_mfr); 1931 mfsdr(sdr_mfr, sdr0_mfr);
1920 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_ZMII_MODE_MASK) | SDR0_MFR_ZMII_MODE_RMII_10M; 1932 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_ZMII_MODE_MASK) | SDR0_MFR_ZMII_MODE_RMII_10M;
1921 mtsdr(sdr_mfr, sdr0_mfr); 1933 mtsdr(sdr_mfr, sdr0_mfr);
1922 1934
1923 set_phy_configuration_through_fpga(ZMII_CONFIGURATION_IS_RMII); 1935 set_phy_configuration_through_fpga(ZMII_CONFIGURATION_IS_RMII);
1924 } 1936 }
1925 1937
1926 /* SMII Selection */ 1938 /* SMII Selection */
1927 if (ppc440ep_core_selection[SMII_SEL] == CORE_SELECTED) 1939 if (ppc440ep_core_selection[SMII_SEL] == CORE_SELECTED)
1928 { 1940 {
1929 update_zii_ios(); 1941 update_zii_ios();
1930 mfsdr(sdr_mfr, sdr0_mfr); 1942 mfsdr(sdr_mfr, sdr0_mfr);
1931 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_ZMII_MODE_MASK) | SDR0_MFR_ZMII_MODE_SMII; 1943 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_ZMII_MODE_MASK) | SDR0_MFR_ZMII_MODE_SMII;
1932 mtsdr(sdr_mfr, sdr0_mfr); 1944 mtsdr(sdr_mfr, sdr0_mfr);
1933 1945
1934 set_phy_configuration_through_fpga(ZMII_CONFIGURATION_IS_SMII); 1946 set_phy_configuration_through_fpga(ZMII_CONFIGURATION_IS_SMII);
1935 } 1947 }
1936 1948
1937 /* UART Selection */ 1949 /* UART Selection */
1938 uart_configuration = get_uart_configuration(); 1950 uart_configuration = get_uart_configuration();
1939 switch (uart_configuration) 1951 switch (uart_configuration)
1940 { 1952 {
1941 case L1: /* L1 Selection */ 1953 case L1: /* L1 Selection */
1942 /* UART0 8 pins Only */ 1954 /* UART0 8 pins Only */
1943 /*sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U0ME_DSR_DTR; */ 1955 /*sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U0ME_DSR_DTR; */
1944 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) |SDR0_PFC1_U0ME_CTS_RTS; /* Chip Pb */ 1956 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) |SDR0_PFC1_U0ME_CTS_RTS; /* Chip Pb */
1945 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_8PINS; 1957 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_8PINS;
1946 break; 1958 break;
1947 case L2: /* L2 Selection */ 1959 case L2: /* L2 Selection */
1948 /* UART0 and UART1 4 pins */ 1960 /* UART0 and UART1 4 pins */
1949 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR; 1961 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR;
1950 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_4PINS; 1962 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_4PINS;
1951 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U1ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR; 1963 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U1ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR;
1952 break; 1964 break;
1953 case L3: /* L3 Selection */ 1965 case L3: /* L3 Selection */
1954 /* UART0 4 pins, UART1 and UART2 2 pins */ 1966 /* UART0 4 pins, UART1 and UART2 2 pins */
1955 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR; 1967 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR;
1956 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_4PINS; 1968 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_4PINS;
1957 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U1ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR; 1969 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U1ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR;
1958 break; 1970 break;
1959 case L4: /* L4 Selection */ 1971 case L4: /* L4 Selection */
1960 /* UART0, UART1, UART2 and UART3 2 pins */ 1972 /* UART0, UART1, UART2 and UART3 2 pins */
1961 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U0ME_DSR_DTR; 1973 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0ME_MASK) | SDR0_PFC1_U0ME_DSR_DTR;
1962 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_4PINS; 1974 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U0IM_MASK) | SDR0_PFC1_U0IM_4PINS;
1963 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U1ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR; 1975 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_U1ME_MASK) | SDR0_PFC1_U1ME_DSR_DTR;
1964 break; 1976 break;
1965 } 1977 }
1966 update_uart_ios(uart_configuration); 1978 update_uart_ios(uart_configuration);
1967 1979
1968 /* UART Selection in all cases */ 1980 /* UART Selection in all cases */
1969 uart_selection_in_fpga(uart_configuration); 1981 uart_selection_in_fpga(uart_configuration);
1970 1982
1971 /* Packet Reject Function Available */ 1983 /* Packet Reject Function Available */
1972 if (ppc440ep_core_selection[PACKET_REJ_FUNC_AVAIL] == CORE_SELECTED) 1984 if (ppc440ep_core_selection[PACKET_REJ_FUNC_AVAIL] == CORE_SELECTED)
1973 { 1985 {
1974 /* Set UPR Bit in SDR0_PFC1 Register */ 1986 /* Set UPR Bit in SDR0_PFC1 Register */
1975 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UPR_MASK) | SDR0_PFC1_UPR_ENABLE; 1987 sdr0_pfc1 = (sdr0_pfc1 & ~SDR0_PFC1_UPR_MASK) | SDR0_PFC1_UPR_ENABLE;
1976 } 1988 }
1977 1989
1978 /* Packet Reject Function Enable */ 1990 /* Packet Reject Function Enable */
1979 if (ppc440ep_core_selection[PACKET_REJ_FUNC_EN] == CORE_SELECTED) 1991 if (ppc440ep_core_selection[PACKET_REJ_FUNC_EN] == CORE_SELECTED)
1980 { 1992 {
1981 mfsdr(sdr_mfr, sdr0_mfr); 1993 mfsdr(sdr_mfr, sdr0_mfr);
1982 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_PKT_REJ_MASK) | SDR0_MFR_PKT_REJ_EN;; 1994 sdr0_mfr = (sdr0_mfr & ~SDR0_MFR_PKT_REJ_MASK) | SDR0_MFR_PKT_REJ_EN;;
1983 mtsdr(sdr_mfr, sdr0_mfr); 1995 mtsdr(sdr_mfr, sdr0_mfr);
1984 } 1996 }
1985 1997
1986 /* Perform effective access to hardware */ 1998 /* Perform effective access to hardware */
1987 mtsdr(sdr_pfc1, sdr0_pfc1); 1999 mtsdr(sdr_pfc1, sdr0_pfc1);
1988 set_chip_gpio_configuration(GPIO0); 2000 set_chip_gpio_configuration(GPIO0);
1989 set_chip_gpio_configuration(GPIO1); 2001 set_chip_gpio_configuration(GPIO1);
1990 2002
1991 /* USB2.0 Device Reset must be done after GPIO setting */ 2003 /* USB2.0 Device Reset must be done after GPIO setting */
1992 if (ppc440ep_core_selection[USB2_DEVICE] == CORE_SELECTED) 2004 if (ppc440ep_core_selection[USB2_DEVICE] == CORE_SELECTED)
1993 usb2_device_reset_through_fpga(); 2005 usb2_device_reset_through_fpga();
1994 2006
1995 } 2007 }
1996 2008
board/amcc/bamboo/bamboo.h
1 /* 1 /*
2 * (C) Copyright 2005 2 * (C) Copyright 2005
3 * Stefan Roese, DENX Software Engineering, sr@denx.de. 3 * Stefan Roese, DENX Software Engineering, sr@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 /*----------------------------------------------------------------------------+ 24 /*----------------------------------------------------------------------------+
25 | FPGA registers and bit definitions 25 | FPGA registers and bit definitions
26 +----------------------------------------------------------------------------*/ 26 +----------------------------------------------------------------------------*/
27 /* 27 /*
28 * PowerPC 440EP Board FPGA is reached with physical address 0x80001FF0. 28 * PowerPC 440EP Board FPGA is reached with physical address 0x80001FF0.
29 * TLB initialization makes it correspond to logical address 0x80001FF0. 29 * TLB initialization makes it correspond to logical address 0x80001FF0.
30 * => Done init_chip.s in bootlib 30 * => Done init_chip.s in bootlib
31 */ 31 */
32 #define FPGA_BASE_ADDR 0x80002000 32 #define FPGA_BASE_ADDR 0x80002000
33 33
34 /*----------------------------------------------------------------------------+ 34 /*----------------------------------------------------------------------------+
35 | Board Jumpers Setting Register 35 | Board Jumpers Setting Register
36 | Board Settings provided by jumpers 36 | Board Settings provided by jumpers
37 +----------------------------------------------------------------------------*/ 37 +----------------------------------------------------------------------------*/
38 #define FPGA_SETTING_REG (FPGA_BASE_ADDR+0x3) 38 #define FPGA_SETTING_REG (FPGA_BASE_ADDR+0x3)
39 /* Boot from small flash */ 39 /* Boot from small flash */
40 #define FPGA_SET_REG_BOOT_SMALL_FLASH 0x80 40 #define FPGA_SET_REG_BOOT_SMALL_FLASH 0x80
41 /* Operational Flash versus SRAM position in Memory Map */ 41 /* Operational Flash versus SRAM position in Memory Map */
42 #define FPGA_SET_REG_OP_CODE_SRAM_SEL_MASK 0x40 42 #define FPGA_SET_REG_OP_CODE_SRAM_SEL_MASK 0x40
43 #define FPGA_SET_REG_OP_CODE_FLASH_ABOVE 0x40 43 #define FPGA_SET_REG_OP_CODE_FLASH_ABOVE 0x40
44 #define FPGA_SET_REG_SRAM_ABOVE 0x00 44 #define FPGA_SET_REG_SRAM_ABOVE 0x00
45 /* Boot From NAND Flash */ 45 /* Boot From NAND Flash */
46 #define FPGA_SET_REG_BOOT_NAND_FLASH_MASK 0x40 46 #define FPGA_SET_REG_BOOT_NAND_FLASH_MASK 0x40
47 #define FPGA_SET_REG_BOOT_NAND_FLASH_SELECT 0x00 47 #define FPGA_SET_REG_BOOT_NAND_FLASH_SELECT 0x00
48 /* On Board PCI Arbiter Select */ 48 /* On Board PCI Arbiter Select */
49 #define FPGA_SET_REG_PCI_EXT_ARBITER_SEL_MASK 0x10 49 #define FPGA_SET_REG_PCI_EXT_ARBITER_SEL_MASK 0x10
50 #define FPGA_SET_REG_PCI_EXT_ARBITER_SEL 0x00 50 #define FPGA_SET_REG_PCI_EXT_ARBITER_SEL 0x00
51 51
52 /*----------------------------------------------------------------------------+ 52 /*----------------------------------------------------------------------------+
53 | Functions Selection Register 1 53 | Functions Selection Register 1
54 +----------------------------------------------------------------------------*/ 54 +----------------------------------------------------------------------------*/
55 #define FPGA_SELECTION_1_REG (FPGA_BASE_ADDR+0x4) 55 #define FPGA_SELECTION_1_REG (FPGA_BASE_ADDR+0x4)
56 #define FPGA_SEL_1_REG_PHY_MASK 0xE0 56 #define FPGA_SEL_1_REG_PHY_MASK 0xE0
57 #define FPGA_SEL_1_REG_MII 0x80 57 #define FPGA_SEL_1_REG_MII 0x80
58 #define FPGA_SEL_1_REG_RMII 0x40 58 #define FPGA_SEL_1_REG_RMII 0x40
59 #define FPGA_SEL_1_REG_SMII 0x20 59 #define FPGA_SEL_1_REG_SMII 0x20
60 #define FPGA_SEL_1_REG_USB2_DEV_SEL 0x10 /* USB2 Device Selection */ 60 #define FPGA_SEL_1_REG_USB2_DEV_SEL 0x10 /* USB2 Device Selection */
61 #define FPGA_SEL_1_REG_USB2_HOST_SEL 0x08 /* USB2 Host Selection */ 61 #define FPGA_SEL_1_REG_USB2_HOST_SEL 0x08 /* USB2 Host Selection */
62 #define FPGA_SEL_1_REG_NF_SELEC_MASK 0x07 /* NF Selection Mask */ 62 #define FPGA_SEL_1_REG_NF_SELEC_MASK 0x07 /* NF Selection Mask */
63 #define FPGA_SEL_1_REG_NF0_SEL_BY_NFCS1 0x04 /* NF0 Selected by NF_CS1 */ 63 #define FPGA_SEL_1_REG_NF0_SEL_BY_NFCS1 0x04 /* NF0 Selected by NF_CS1 */
64 #define FPGA_SEL_1_REG_NF1_SEL_BY_NFCS2 0x02 /* NF1 Selected by NF_CS2 */ 64 #define FPGA_SEL_1_REG_NF1_SEL_BY_NFCS2 0x02 /* NF1 Selected by NF_CS2 */
65 #define FPGA_SEL_1_REG_NF1_SEL_BY_NFCS3 0x01 /* NF1 Selected by NF_CS3 */ 65 #define FPGA_SEL_1_REG_NF1_SEL_BY_NFCS3 0x01 /* NF1 Selected by NF_CS3 */
66 66
67 /*----------------------------------------------------------------------------+ 67 /*----------------------------------------------------------------------------+
68 | Functions Selection Register 2 68 | Functions Selection Register 2
69 +----------------------------------------------------------------------------*/ 69 +----------------------------------------------------------------------------*/
70 #define FPGA_SELECTION_2_REG (FPGA_BASE_ADDR+0x5) 70 #define FPGA_SELECTION_2_REG (FPGA_BASE_ADDR+0x5)
71 #define FPGA_SEL2_REG_IIC1_SCP_SEL_MASK 0x80 /* IIC1 / SCP Selection */ 71 #define FPGA_SEL2_REG_IIC1_SCP_SEL_MASK 0x80 /* IIC1 / SCP Selection */
72 #define FPGA_SEL2_REG_SEL_FRAM 0x80 /* FRAM on IIC1 bus selected - SCP Select */ 72 #define FPGA_SEL2_REG_SEL_FRAM 0x80 /* FRAM on IIC1 bus selected - SCP Select */
73 #define FPGA_SEL2_REG_SEL_SCP 0x80 /* Identical to SCP Selection */ 73 #define FPGA_SEL2_REG_SEL_SCP 0x80 /* Identical to SCP Selection */
74 #define FPGA_SEL2_REG_SEL_IIC1 0x00 /* IIC1 Selection - Default Value */ 74 #define FPGA_SEL2_REG_SEL_IIC1 0x00 /* IIC1 Selection - Default Value */
75 #define FPGA_SEL2_REG_SEL_DMA_A_B 0x40 /* DMA A & B channels selected */ 75 #define FPGA_SEL2_REG_SEL_DMA_A_B 0x40 /* DMA A & B channels selected */
76 #define FPGA_SEL2_REG_SEL_DMA_C_D 0x20 /* DMA C & D channels selected */ 76 #define FPGA_SEL2_REG_SEL_DMA_C_D 0x20 /* DMA C & D channels selected */
77 #define FPGA_SEL2_REG_DMA_EOT_TC_3_SEL 0x10 /* 0 = EOT - input to 440EP */ 77 #define FPGA_SEL2_REG_DMA_EOT_TC_3_SEL 0x10 /* 0 = EOT - input to 440EP */
78 /* 1 = TC - output from 440EP */ 78 /* 1 = TC - output from 440EP */
79 #define FPGA_SEL2_REG_DMA_EOT_TC_2_SEL 0x08 /* 0 = EOT (input to 440EP) */ 79 #define FPGA_SEL2_REG_DMA_EOT_TC_2_SEL 0x08 /* 0 = EOT (input to 440EP) */
80 /* 1 = TC (output from 440EP) */ 80 /* 1 = TC (output from 440EP) */
81 #define FPGA_SEL2_REG_SEL_GPIO_1 0x04 /* EBC_GPIO & USB2_GPIO selected */ 81 #define FPGA_SEL2_REG_SEL_GPIO_1 0x04 /* EBC_GPIO & USB2_GPIO selected */
82 #define FPGA_SEL2_REG_SEL_GPIO_2 0x02 /* Ether._GPIO & UART_GPIO selected */ 82 #define FPGA_SEL2_REG_SEL_GPIO_2 0x02 /* Ether._GPIO & UART_GPIO selected */
83 #define FPGA_SEL2_REG_SEL_GPIO_3 0x01 /* DMA_GPIO & Trace_GPIO selected */ 83 #define FPGA_SEL2_REG_SEL_GPIO_3 0x01 /* DMA_GPIO & Trace_GPIO selected */
84 84
85 /*----------------------------------------------------------------------------+ 85 /*----------------------------------------------------------------------------+
86 | Functions Selection Register 3 86 | Functions Selection Register 3
87 +----------------------------------------------------------------------------*/ 87 +----------------------------------------------------------------------------*/
88 #define FPGA_SELECTION_3_REG (FPGA_BASE_ADDR+0x6) 88 #define FPGA_SELECTION_3_REG (FPGA_BASE_ADDR+0x6)
89 #define FPGA_SEL3_REG_EXP_SLOT_EN 0x80 /* Expansion Slot enabled */ 89 #define FPGA_SEL3_REG_EXP_SLOT_EN 0x80 /* Expansion Slot enabled */
90 #define FPGA_SEL3_REG_SEL_UART_CONFIG_MASK 0x70 90 #define FPGA_SEL3_REG_SEL_UART_CONFIG_MASK 0x70
91 #define FPGA_SEL3_REG_SEL_UART_CONFIG1 0x40 /* one 8_pin UART */ 91 #define FPGA_SEL3_REG_SEL_UART_CONFIG1 0x40 /* one 8_pin UART */
92 #define FPGA_SEL3_REG_SEL_UART_CONFIG2 0x20 /* two 4_pin UARTs */ 92 #define FPGA_SEL3_REG_SEL_UART_CONFIG2 0x20 /* two 4_pin UARTs */
93 #define FPGA_SEL3_REG_SEL_UART_CONFIG3 0x10 /* one 4_pin & two 2_pin UARTs */ 93 #define FPGA_SEL3_REG_SEL_UART_CONFIG3 0x10 /* one 4_pin & two 2_pin UARTs */
94 #define FPGA_SEL3_REG_SEL_UART_CONFIG4 0x08 /* four 2_pin UARTs */ 94 #define FPGA_SEL3_REG_SEL_UART_CONFIG4 0x08 /* four 2_pin UARTs */
95 #define FPGA_SEL3_REG_DTR_DSR_MODE_4_PIN_UART 0x00 /* DTR/DSR mode for 4_pin_UART */ 95 #define FPGA_SEL3_REG_DTR_DSR_MODE_4_PIN_UART 0x00 /* DTR/DSR mode for 4_pin_UART */
96 #define FPGA_SEL3_REG_RTS_CTS_MODE_4_PIN_UART 0x04 /* RTS/CTS mode for 4_pin_UART */ 96 #define FPGA_SEL3_REG_RTS_CTS_MODE_4_PIN_UART 0x04 /* RTS/CTS mode for 4_pin_UART */
97 97
98 /*----------------------------------------------------------------------------+ 98 /*----------------------------------------------------------------------------+
99 | Soft Reset Register 99 | Soft Reset Register
100 +----------------------------------------------------------------------------*/ 100 +----------------------------------------------------------------------------*/
101 #define FPGA_RESET_REG (FPGA_BASE_ADDR+0x7) 101 #define FPGA_RESET_REG (FPGA_BASE_ADDR+0x7)
102 #define FPGA_RESET_REG_RESET_USB20_DEV 0x80 /* Hard Reset of the GT3200 */ 102 #define FPGA_RESET_REG_RESET_USB20_DEV 0x80 /* Hard Reset of the GT3200 */
103 #define FPGA_RESET_REG_RESET_DISPLAY 0x40 /* Hard Reset on Display Device */ 103 #define FPGA_RESET_REG_RESET_DISPLAY 0x40 /* Hard Reset on Display Device */
104 #define FPGA_RESET_REG_STATUS_LED_0 0x08 /* 1 = Led On */ 104 #define FPGA_RESET_REG_STATUS_LED_0 0x08 /* 1 = Led On */
105 #define FPGA_RESET_REG_STATUS_LED_1 0x04 /* 1 = Led On */ 105 #define FPGA_RESET_REG_STATUS_LED_1 0x04 /* 1 = Led On */
106 #define FPGA_RESET_REG_STATUS_LED_2 0x02 /* 1 = Led On */ 106 #define FPGA_RESET_REG_STATUS_LED_2 0x02 /* 1 = Led On */
107 #define FPGA_RESET_REG_STATUS_LED_3 0x01 /* 1 = Led On */ 107 #define FPGA_RESET_REG_STATUS_LED_3 0x01 /* 1 = Led On */
108 108
109 109
110 /*----------------------------------------------------------------------------+ 110 /*----------------------------------------------------------------------------+
111 | SDR Configuration registers 111 | SDR Configuration registers
112 +----------------------------------------------------------------------------*/ 112 +----------------------------------------------------------------------------*/
113 /* Serial Device Strap Reg 0 */ 113 /* Serial Device Strap Reg 0 */
114 #define SDR0_SDSTP0 0x0020 114 #define SDR0_SDSTP0 0x0020
115 /* Serial Device Strap Reg 1 */ 115 /* Serial Device Strap Reg 1 */
116 #define SDR0_SDSTP1 0x0021 116 #define SDR0_SDSTP1 0x0021
117 /* Serial Device Strap Reg 2 */ 117 /* Serial Device Strap Reg 2 */
118 #define SDR0_SDSTP2 SDR0_STRP2 118 #define SDR0_SDSTP2 SDR0_STRP2
119 /* Serial Device Strap Reg 3 */ 119 /* Serial Device Strap Reg 3 */
120 #define SDR0_SDSTP3 SDR0_STRP3 120 #define SDR0_SDSTP3 SDR0_STRP3
121 121
122 #define sdr_pstrp0 0x0040 122 #define sdr_pstrp0 0x0040
123 123
124 #define SDR0_SDSTP1_EBC_ROM_BS_MASK 0x00006000 /* EBC Boot Size Mask */ 124 #define SDR0_SDSTP1_EBC_ROM_BS_MASK 0x00006000 /* EBC Boot Size Mask */
125 #define SDR0_SDSTP1_EBC_ROM_BS_32BIT 0x00004000 /* EBC 32 bits */ 125 #define SDR0_SDSTP1_EBC_ROM_BS_32BIT 0x00004000 /* EBC 32 bits */
126 #define SDR0_SDSTP1_EBC_ROM_BS_16BIT 0x00002000 /* EBC 16 Bits */ 126 #define SDR0_SDSTP1_EBC_ROM_BS_16BIT 0x00002000 /* EBC 16 Bits */
127 #define SDR0_SDSTP1_EBC_ROM_BS_8BIT 0x00000000 /* EBC 8 Bits */ 127 #define SDR0_SDSTP1_EBC_ROM_BS_8BIT 0x00000000 /* EBC 8 Bits */
128 128
129 #define SDR0_SDSTP1_BOOT_SEL_MASK 0x00001800 /* Boot device Selection Mask */ 129 #define SDR0_SDSTP1_BOOT_SEL_MASK 0x00001800 /* Boot device Selection Mask */
130 #define SDR0_SDSTP1_BOOT_SEL_EBC 0x00000000 /* EBC */ 130 #define SDR0_SDSTP1_BOOT_SEL_EBC 0x00000000 /* EBC */
131 #define SDR0_SDSTP1_BOOT_SEL_PCI 0x00000800 /* PCI */ 131 #define SDR0_SDSTP1_BOOT_SEL_PCI 0x00000800 /* PCI */
132 #define SDR0_SDSTP1_BOOT_SEL_NDFC 0x00001000 /* NDFC */ 132 #define SDR0_SDSTP1_BOOT_SEL_NDFC 0x00001000 /* NDFC */
133 133
134 /* Serial Device Enabled - Addr = 0xA8 */ 134 /* Serial Device Enabled - Addr = 0xA8 */
135 #define SDR0_PSTRP0_BOOTSTRAP_IIC_A8_EN SDR0_PSTRP0_BOOTSTRAP_SETTINGS5 135 #define SDR0_PSTRP0_BOOTSTRAP_IIC_A8_EN SDR0_PSTRP0_BOOTSTRAP_SETTINGS5
136 /* Serial Device Enabled - Addr = 0xA4 */ 136 /* Serial Device Enabled - Addr = 0xA4 */
137 #define SDR0_PSTRP0_BOOTSTRAP_IIC_A4_EN SDR0_PSTRP0_BOOTSTRAP_SETTINGS7 137 #define SDR0_PSTRP0_BOOTSTRAP_IIC_A4_EN SDR0_PSTRP0_BOOTSTRAP_SETTINGS7
138 138
139 /* Pin Straps Reg */ 139 /* Pin Straps Reg */
140 #define SDR0_PSTRP0 0x0040 140 #define SDR0_PSTRP0 0x0040
141 #define SDR0_PSTRP0_BOOTSTRAP_MASK 0xE0000000 /* Strap Bits */ 141 #define SDR0_PSTRP0_BOOTSTRAP_MASK 0xE0000000 /* Strap Bits */
142 142
143 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS0 0x00000000 /* Default strap settings 0 */ 143 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS0 0x00000000 /* Default strap settings 0 */
144 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS1 0x20000000 /* Default strap settings 1 */ 144 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS1 0x20000000 /* Default strap settings 1 */
145 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS2 0x40000000 /* Default strap settings 2 */ 145 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS2 0x40000000 /* Default strap settings 2 */
146 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS3 0x60000000 /* Default strap settings 3 */ 146 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS3 0x60000000 /* Default strap settings 3 */
147 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS4 0x80000000 /* Default strap settings 4 */ 147 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS4 0x80000000 /* Default strap settings 4 */
148 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS5 0xA0000000 /* Default strap settings 5 */ 148 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS5 0xA0000000 /* Default strap settings 5 */
149 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS6 0xC0000000 /* Default strap settings 6 */ 149 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS6 0xC0000000 /* Default strap settings 6 */
150 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS7 0xE0000000 /* Default strap settings 7 */ 150 #define SDR0_PSTRP0_BOOTSTRAP_SETTINGS7 0xE0000000 /* Default strap settings 7 */
151 151
152 /*----------------------------------------------------------------------------+ 152 /*----------------------------------------------------------------------------+
153 | EBC Configuration Register - EBC0_CFG 153 | EBC Configuration Register - EBC0_CFG
154 +----------------------------------------------------------------------------*/ 154 +----------------------------------------------------------------------------*/
155 /* External Bus Three-State Control */ 155 /* External Bus Three-State Control */
156 #define EBC0_CFG_EBTC_DRIVEN 0x80000000 156 #define EBC0_CFG_EBTC_DRIVEN 0x80000000
157 /* Device-Paced Time-out Disable */ 157 /* Device-Paced Time-out Disable */
158 #define EBC0_CFG_PTD_ENABLED 0x00000000 158 #define EBC0_CFG_PTD_ENABLED 0x00000000
159 /* Ready Timeout Count */ 159 /* Ready Timeout Count */
160 #define EBC0_CFG_RTC_MASK 0x38000000 160 #define EBC0_CFG_RTC_MASK 0x38000000
161 #define EBC0_CFG_RTC_16PERCLK 0x00000000 161 #define EBC0_CFG_RTC_16PERCLK 0x00000000
162 #define EBC0_CFG_RTC_32PERCLK 0x08000000 162 #define EBC0_CFG_RTC_32PERCLK 0x08000000
163 #define EBC0_CFG_RTC_64PERCLK 0x10000000 163 #define EBC0_CFG_RTC_64PERCLK 0x10000000
164 #define EBC0_CFG_RTC_128PERCLK 0x18000000 164 #define EBC0_CFG_RTC_128PERCLK 0x18000000
165 #define EBC0_CFG_RTC_256PERCLK 0x20000000 165 #define EBC0_CFG_RTC_256PERCLK 0x20000000
166 #define EBC0_CFG_RTC_512PERCLK 0x28000000 166 #define EBC0_CFG_RTC_512PERCLK 0x28000000
167 #define EBC0_CFG_RTC_1024PERCLK 0x30000000 167 #define EBC0_CFG_RTC_1024PERCLK 0x30000000
168 #define EBC0_CFG_RTC_2048PERCLK 0x38000000 168 #define EBC0_CFG_RTC_2048PERCLK 0x38000000
169 /* External Master Priority Low */ 169 /* External Master Priority Low */
170 #define EBC0_CFG_EMPL_LOW 0x00000000 170 #define EBC0_CFG_EMPL_LOW 0x00000000
171 #define EBC0_CFG_EMPL_MEDIUM_LOW 0x02000000 171 #define EBC0_CFG_EMPL_MEDIUM_LOW 0x02000000
172 #define EBC0_CFG_EMPL_MEDIUM_HIGH 0x04000000 172 #define EBC0_CFG_EMPL_MEDIUM_HIGH 0x04000000
173 #define EBC0_CFG_EMPL_HIGH 0x06000000 173 #define EBC0_CFG_EMPL_HIGH 0x06000000
174 /* External Master Priority High */ 174 /* External Master Priority High */
175 #define EBC0_CFG_EMPH_LOW 0x00000000 175 #define EBC0_CFG_EMPH_LOW 0x00000000
176 #define EBC0_CFG_EMPH_MEDIUM_LOW 0x00800000 176 #define EBC0_CFG_EMPH_MEDIUM_LOW 0x00800000
177 #define EBC0_CFG_EMPH_MEDIUM_HIGH 0x01000000 177 #define EBC0_CFG_EMPH_MEDIUM_HIGH 0x01000000
178 #define EBC0_CFG_EMPH_HIGH 0x01800000 178 #define EBC0_CFG_EMPH_HIGH 0x01800000
179 /* Chip Select Three-State Control */ 179 /* Chip Select Three-State Control */
180 #define EBC0_CFG_CSTC_DRIVEN 0x00400000 180 #define EBC0_CFG_CSTC_DRIVEN 0x00400000
181 /* Burst Prefetch */ 181 /* Burst Prefetch */
182 #define EBC0_CFG_BPF_ONEDW 0x00000000 182 #define EBC0_CFG_BPF_ONEDW 0x00000000
183 #define EBC0_CFG_BPF_TWODW 0x00100000 183 #define EBC0_CFG_BPF_TWODW 0x00100000
184 #define EBC0_CFG_BPF_FOURDW 0x00200000 184 #define EBC0_CFG_BPF_FOURDW 0x00200000
185 /* External Master Size */ 185 /* External Master Size */
186 #define EBC0_CFG_EMS_8BIT 0x00000000 186 #define EBC0_CFG_EMS_8BIT 0x00000000
187 /* Power Management Enable */ 187 /* Power Management Enable */
188 #define EBC0_CFG_PME_DISABLED 0x00000000 188 #define EBC0_CFG_PME_DISABLED 0x00000000
189 #define EBC0_CFG_PME_ENABLED 0x00020000 189 #define EBC0_CFG_PME_ENABLED 0x00020000
190 /* Power Management Timer */ 190 /* Power Management Timer */
191 #define EBC0_CFG_PMT_ENCODE(n) ((((unsigned long)(n))&0x1F)<<12) 191 #define EBC0_CFG_PMT_ENCODE(n) ((((unsigned long)(n))&0x1F)<<12)
192 192
193 /*----------------------------------------------------------------------------+ 193 /*----------------------------------------------------------------------------+
194 | Peripheral Bank Configuration Register - EBC0_BnCR 194 | Peripheral Bank Configuration Register - EBC0_BnCR
195 +----------------------------------------------------------------------------*/ 195 +----------------------------------------------------------------------------*/
196 /* BAS - Base Address Select */ 196 /* BAS - Base Address Select */
197 #define EBC0_BNCR_BAS_ENCODE(n) ((((unsigned long)(n))&0xFFF00000)<<0) 197 #define EBC0_BNCR_BAS_ENCODE(n) ((((unsigned long)(n))&0xFFF00000)<<0)
198 /* BS - Bank Size */ 198 /* BS - Bank Size */
199 #define EBC0_BNCR_BS_MASK 0x000E0000 199 #define EBC0_BNCR_BS_MASK 0x000E0000
200 #define EBC0_BNCR_BS_1MB 0x00000000 200 #define EBC0_BNCR_BS_1MB 0x00000000
201 #define EBC0_BNCR_BS_2MB 0x00020000 201 #define EBC0_BNCR_BS_2MB 0x00020000
202 #define EBC0_BNCR_BS_4MB 0x00040000 202 #define EBC0_BNCR_BS_4MB 0x00040000
203 #define EBC0_BNCR_BS_8MB 0x00060000 203 #define EBC0_BNCR_BS_8MB 0x00060000
204 #define EBC0_BNCR_BS_16MB 0x00080000 204 #define EBC0_BNCR_BS_16MB 0x00080000
205 #define EBC0_BNCR_BS_32MB 0x000A0000 205 #define EBC0_BNCR_BS_32MB 0x000A0000
206 #define EBC0_BNCR_BS_64MB 0x000C0000 206 #define EBC0_BNCR_BS_64MB 0x000C0000
207 #define EBC0_BNCR_BS_128MB 0x000E0000 207 #define EBC0_BNCR_BS_128MB 0x000E0000
208 /* BU - Bank Usage */ 208 /* BU - Bank Usage */
209 #define EBC0_BNCR_BU_MASK 0x00018000 209 #define EBC0_BNCR_BU_MASK 0x00018000
210 #define EBC0_BNCR_BU_RO 0x00008000 210 #define EBC0_BNCR_BU_RO 0x00008000
211 #define EBC0_BNCR_BU_WO 0x00010000 211 #define EBC0_BNCR_BU_WO 0x00010000
212 #define EBC0_BNCR_BU_RW 0x00018000 212 #define EBC0_BNCR_BU_RW 0x00018000
213 /* BW - Bus Width */ 213 /* BW - Bus Width */
214 #define EBC0_BNCR_BW_MASK 0x00006000 214 #define EBC0_BNCR_BW_MASK 0x00006000
215 #define EBC0_BNCR_BW_8BIT 0x00000000 215 #define EBC0_BNCR_BW_8BIT 0x00000000
216 #define EBC0_BNCR_BW_16BIT 0x00002000 216 #define EBC0_BNCR_BW_16BIT 0x00002000
217 #define EBC0_BNCR_BW_32BIT 0x00004000 217 #define EBC0_BNCR_BW_32BIT 0x00004000
218 218
219 /*----------------------------------------------------------------------------+ 219 /*----------------------------------------------------------------------------+
220 | Peripheral Bank Access Parameters - EBC0_BnAP 220 | Peripheral Bank Access Parameters - EBC0_BnAP
221 +----------------------------------------------------------------------------*/ 221 +----------------------------------------------------------------------------*/
222 /* Burst Mode Enable */ 222 /* Burst Mode Enable */
223 #define EBC0_BNAP_BME_ENABLED 0x80000000 223 #define EBC0_BNAP_BME_ENABLED 0x80000000
224 #define EBC0_BNAP_BME_DISABLED 0x00000000 224 #define EBC0_BNAP_BME_DISABLED 0x00000000
225 /* Transfert Wait */ 225 /* Transfert Wait */
226 #define EBC0_BNAP_TWT_ENCODE(n) ((((unsigned long)(n))&0xFF)<<23) /* Bits 1:8 */ 226 #define EBC0_BNAP_TWT_ENCODE(n) ((((unsigned long)(n))&0xFF)<<23) /* Bits 1:8 */
227 /* Chip Select On Timing */ 227 /* Chip Select On Timing */
228 #define EBC0_BNAP_CSN_ENCODE(n) ((((unsigned long)(n))&0x3)<<18) /* Bits 12:13 */ 228 #define EBC0_BNAP_CSN_ENCODE(n) ((((unsigned long)(n))&0x3)<<18) /* Bits 12:13 */
229 /* Output Enable On Timing */ 229 /* Output Enable On Timing */
230 #define EBC0_BNAP_OEN_ENCODE(n) ((((unsigned long)(n))&0x3)<<16) /* Bits 14:15 */ 230 #define EBC0_BNAP_OEN_ENCODE(n) ((((unsigned long)(n))&0x3)<<16) /* Bits 14:15 */
231 /* Write Back Enable On Timing */ 231 /* Write Back Enable On Timing */
232 #define EBC0_BNAP_WBN_ENCODE(n) ((((unsigned long)(n))&0x3)<<14) /* Bits 16:17 */ 232 #define EBC0_BNAP_WBN_ENCODE(n) ((((unsigned long)(n))&0x3)<<14) /* Bits 16:17 */
233 /* Write Back Enable Off Timing */ 233 /* Write Back Enable Off Timing */
234 #define EBC0_BNAP_WBF_ENCODE(n) ((((unsigned long)(n))&0x3)<<12) /* Bits 18:19 */ 234 #define EBC0_BNAP_WBF_ENCODE(n) ((((unsigned long)(n))&0x3)<<12) /* Bits 18:19 */
235 /* Transfert Hold */ 235 /* Transfert Hold */
236 #define EBC0_BNAP_TH_ENCODE(n) ((((unsigned long)(n))&0x7)<<9) /* Bits 20:22 */ 236 #define EBC0_BNAP_TH_ENCODE(n) ((((unsigned long)(n))&0x7)<<9) /* Bits 20:22 */
237 /* PerReady Enable */ 237 /* PerReady Enable */
238 #define EBC0_BNAP_RE_ENABLED 0x00000100 238 #define EBC0_BNAP_RE_ENABLED 0x00000100
239 #define EBC0_BNAP_RE_DISABLED 0x00000000 239 #define EBC0_BNAP_RE_DISABLED 0x00000000
240 /* Sample On Ready */ 240 /* Sample On Ready */
241 #define EBC0_BNAP_SOR_DELAYED 0x00000000 241 #define EBC0_BNAP_SOR_DELAYED 0x00000000
242 #define EBC0_BNAP_SOR_NOT_DELAYED 0x00000080 242 #define EBC0_BNAP_SOR_NOT_DELAYED 0x00000080
243 /* Byte Enable Mode */ 243 /* Byte Enable Mode */
244 #define EBC0_BNAP_BEM_WRITEONLY 0x00000000 244 #define EBC0_BNAP_BEM_WRITEONLY 0x00000000
245 #define EBC0_BNAP_BEM_RW 0x00000040 245 #define EBC0_BNAP_BEM_RW 0x00000040
246 /* Parity Enable */ 246 /* Parity Enable */
247 #define EBC0_BNAP_PEN_DISABLED 0x00000000 247 #define EBC0_BNAP_PEN_DISABLED 0x00000000
248 #define EBC0_BNAP_PEN_ENABLED 0x00000020 248 #define EBC0_BNAP_PEN_ENABLED 0x00000020
249 249
250 /*----------------------------------------------------------------------------+ 250 /*----------------------------------------------------------------------------+
251 | Define Boot devices 251 | Define Boot devices
252 +----------------------------------------------------------------------------*/ 252 +----------------------------------------------------------------------------*/
253 /* */ 253 /* */
254 #define BOOT_FROM_SMALL_FLASH 0x00 254 #define BOOT_FROM_SMALL_FLASH 0x00
255 #define BOOT_FROM_LARGE_FLASH_OR_SRAM 0x01 255 #define BOOT_FROM_LARGE_FLASH_OR_SRAM 0x01
256 #define BOOT_FROM_NAND_FLASH0 0x02 256 #define BOOT_FROM_NAND_FLASH0 0x02
257 #define BOOT_FROM_PCI 0x03 257 #define BOOT_FROM_PCI 0x03
258 #define BOOT_DEVICE_UNKNOWN 0x04 258 #define BOOT_DEVICE_UNKNOWN 0x04
259 259
260 260
261 #define PVR_POWERPC_440EP_PASS1 0x42221850 261 #define PVR_POWERPC_440EP_PASS1 0x42221850
262 #define PVR_POWERPC_440EP_PASS2 0x422218D3 262 #define PVR_POWERPC_440EP_PASS2 0x422218D3
263 263
264 #define TRUE 1 264 #define TRUE 1
265 #define FALSE 0 265 #define FALSE 0
266 266
267 #define GPIO_GROUP_MAX 2 267 #define GPIO_GROUP_MAX 2
268 #define GPIO_MAX 32 268 #define GPIO_MAX 32
269 #define GPIO_ALT1_SEL 0x40000000 /* GPIO_OUT value put in GPIO_TSx for the GPIO nb 0 */ 269 #define GPIO_ALT1_SEL 0x40000000 /* GPIO_OUT value put in GPIO_TSx for the GPIO nb 0 */
270 #define GPIO_ALT2_SEL 0x80000000 /* GPIO_OUT value put in GPIO_TSx for the GPIO nb 1 */ 270 #define GPIO_ALT2_SEL 0x80000000 /* GPIO_OUT value put in GPIO_TSx for the GPIO nb 1 */
271 #define GPIO_ALT3_SEL 0xC0000000 /* GPIO_OUT value put in GPIO_TSx for the GPIO nb 2 */ 271 #define GPIO_ALT3_SEL 0xC0000000 /* GPIO_OUT value put in GPIO_TSx for the GPIO nb 2 */
272 #define GPIO_MASK 0xC0000000 /* GPIO_MASK */ 272 #define GPIO_MASK 0xC0000000 /* GPIO_MASK */
273 #define GPIO_IN_SEL 0x40000000 /* GPIO_IN value put in GPIO_ISx for the GPIO nb 0 */ 273 #define GPIO_IN_SEL 0x40000000 /* GPIO_IN value put in GPIO_ISx for the GPIO nb 0 */
274 /* For the other GPIO number, you must shift */ 274 /* For the other GPIO number, you must shift */
275 275
276 #define GPIO0 0 276 #define GPIO0 0
277 #define GPIO1 1 277 #define GPIO1 1
278 278
279 279
280 /*#define MAX_SELECTION_NB CORE_NB */ 280 /*#define MAX_SELECTION_NB CORE_NB */
281 #define MAX_CORE_SELECT_NB 22 281 #define MAX_CORE_SELECT_NB 22
282 282
283 /*----------------------------------------------------------------------------+ 283 /*----------------------------------------------------------------------------+
284 | PPC440EP GPIOs addresses. 284 | PPC440EP GPIOs addresses.
285 +----------------------------------------------------------------------------*/ 285 +----------------------------------------------------------------------------*/
286 #define GPIO0_BASE 0xEF600B00 286 #define GPIO0_BASE 0xEF600B00
287 #define GPIO0_REAL 0xEF600B00 287 #define GPIO0_REAL 0xEF600B00
288 288
289 #define GPIO1_BASE 0xEF600C00 289 #define GPIO1_BASE 0xEF600C00
290 #define GPIO1_REAL 0xEF600C00 290 #define GPIO1_REAL 0xEF600C00
291 291
292 /* Offsets */ 292 /* Offsets */
293 #define GPIOx_OR 0x00 /* GPIO Output Register */ 293 #define GPIOx_OR 0x00 /* GPIO Output Register */
294 #define GPIOx_TCR 0x04 /* GPIO Three-State Control Register */ 294 #define GPIOx_TCR 0x04 /* GPIO Three-State Control Register */
295 #define GPIOx_OSL 0x08 /* GPIO Output Select Register (Bits 0-31) */ 295 #define GPIOx_OSL 0x08 /* GPIO Output Select Register (Bits 0-31) */
296 #define GPIOx_OSH 0x0C /* GPIO Ouput Select Register (Bits 32-63) */ 296 #define GPIOx_OSH 0x0C /* GPIO Ouput Select Register (Bits 32-63) */
297 #define GPIOx_TSL 0x10 /* GPIO Three-State Select Register (Bits 0-31) */ 297 #define GPIOx_TSL 0x10 /* GPIO Three-State Select Register (Bits 0-31) */
298 #define GPIOx_TSH 0x14 /* GPIO Three-State Select Register (Bits 32-63) */ 298 #define GPIOx_TSH 0x14 /* GPIO Three-State Select Register (Bits 32-63) */
299 #define GPIOx_ODR 0x18 /* GPIO Open drain Register */ 299 #define GPIOx_ODR 0x18 /* GPIO Open drain Register */
300 #define GPIOx_IR 0x1C /* GPIO Input Register */ 300 #define GPIOx_IR 0x1C /* GPIO Input Register */
301 #define GPIOx_RR1 0x20 /* GPIO Receive Register 1 */ 301 #define GPIOx_RR1 0x20 /* GPIO Receive Register 1 */
302 #define GPIOx_RR2 0x24 /* GPIO Receive Register 2 */ 302 #define GPIOx_RR2 0x24 /* GPIO Receive Register 2 */
303 #define GPIOx_RR3 0x28 /* GPIO Receive Register 3 */ 303 #define GPIOx_RR3 0x28 /* GPIO Receive Register 3 */
304 #define GPIOx_IS1L 0x30 /* GPIO Input Select Register 1 (Bits 0-31) */ 304 #define GPIOx_IS1L 0x30 /* GPIO Input Select Register 1 (Bits 0-31) */
305 #define GPIOx_IS1H 0x34 /* GPIO Input Select Register 1 (Bits 32-63) */ 305 #define GPIOx_IS1H 0x34 /* GPIO Input Select Register 1 (Bits 32-63) */
306 #define GPIOx_IS2L 0x38 /* GPIO Input Select Register 2 (Bits 0-31) */ 306 #define GPIOx_IS2L 0x38 /* GPIO Input Select Register 2 (Bits 0-31) */
307 #define GPIOx_IS2H 0x3C /* GPIO Input Select Register 2 (Bits 32-63) */ 307 #define GPIOx_IS2H 0x3C /* GPIO Input Select Register 2 (Bits 32-63) */
308 #define GPIOx_IS3L 0x40 /* GPIO Input Select Register 3 (Bits 0-31) */ 308 #define GPIOx_IS3L 0x40 /* GPIO Input Select Register 3 (Bits 0-31) */
309 #define GPIOx_IS3H 0x44 /* GPIO Input Select Register 3 (Bits 32-63) */ 309 #define GPIOx_IS3H 0x44 /* GPIO Input Select Register 3 (Bits 32-63) */
310 310
311 /* GPIO0 */ 311 /* GPIO0 */
312 #define GPIO0_IS1L (GPIO0_BASE+GPIOx_IS1L) 312 #define GPIO0_IS1L (GPIO0_BASE+GPIOx_IS1L)
313 #define GPIO0_IS1H (GPIO0_BASE+GPIOx_IS1H) 313 #define GPIO0_IS1H (GPIO0_BASE+GPIOx_IS1H)
314 #define GPIO0_IS2L (GPIO0_BASE+GPIOx_IS2L) 314 #define GPIO0_IS2L (GPIO0_BASE+GPIOx_IS2L)
315 #define GPIO0_IS2H (GPIO0_BASE+GPIOx_IS2H) 315 #define GPIO0_IS2H (GPIO0_BASE+GPIOx_IS2H)
316 #define GPIO0_IS3L (GPIO0_BASE+GPIOx_IS3L) 316 #define GPIO0_IS3L (GPIO0_BASE+GPIOx_IS3L)
317 #define GPIO0_IS3H (GPIO0_BASE+GPIOx_IS3L) 317 #define GPIO0_IS3H (GPIO0_BASE+GPIOx_IS3L)
318 318
319 /* GPIO1 */ 319 /* GPIO1 */
320 #define GPIO1_IS1L (GPIO1_BASE+GPIOx_IS1L) 320 #define GPIO1_IS1L (GPIO1_BASE+GPIOx_IS1L)
321 #define GPIO1_IS1H (GPIO1_BASE+GPIOx_IS1H) 321 #define GPIO1_IS1H (GPIO1_BASE+GPIOx_IS1H)
322 #define GPIO1_IS2L (GPIO1_BASE+GPIOx_IS2L) 322 #define GPIO1_IS2L (GPIO1_BASE+GPIOx_IS2L)
323 #define GPIO1_IS2H (GPIO1_BASE+GPIOx_IS2H) 323 #define GPIO1_IS2H (GPIO1_BASE+GPIOx_IS2H)
324 #define GPIO1_IS3L (GPIO1_BASE+GPIOx_IS3L) 324 #define GPIO1_IS3L (GPIO1_BASE+GPIOx_IS3L)
325 #define GPIO1_IS3H (GPIO1_BASE+GPIOx_IS3L) 325 #define GPIO1_IS3H (GPIO1_BASE+GPIOx_IS3L)
326 326
327 #define GPIO_OS(x) (x+GPIOx_OSL) /* GPIO Output Register High or Low */ 327 #define GPIO_OS(x) (x+GPIOx_OSL) /* GPIO Output Register High or Low */
328 #define GPIO_TS(x) (x+GPIOx_TSL) /* GPIO Three-state Control Reg High or Low */ 328 #define GPIO_TS(x) (x+GPIOx_TSL) /* GPIO Three-state Control Reg High or Low */
329 #define GPIO_IS1(x) (x+GPIOx_IS1L) /* GPIO Input register1 High or Low */ 329 #define GPIO_IS1(x) (x+GPIOx_IS1L) /* GPIO Input register1 High or Low */
330 #define GPIO_IS2(x) (x+GPIOx_IS2L) /* GPIO Input register2 High or Low */ 330 #define GPIO_IS2(x) (x+GPIOx_IS2L) /* GPIO Input register2 High or Low */
331 #define GPIO_IS3(x) (x+GPIOx_IS3L) /* GPIO Input register3 High or Low */ 331 #define GPIO_IS3(x) (x+GPIOx_IS3L) /* GPIO Input register3 High or Low */
332 332
333 333
334 /*----------------------------------------------------------------------------+ 334 /*----------------------------------------------------------------------------+
335 | Declare Configuration values 335 | Declare Configuration values
336 +----------------------------------------------------------------------------*/ 336 +----------------------------------------------------------------------------*/
337 typedef enum gpio_select { GPIO_SEL, GPIO_ALT1, GPIO_ALT2, GPIO_ALT3 } gpio_select_t; 337 typedef enum gpio_select { GPIO_SEL, GPIO_ALT1, GPIO_ALT2, GPIO_ALT3 } gpio_select_t;
338 typedef enum gpio_driver { GPIO_DIS, GPIO_IN, GPIO_OUT, GPIO_BI } gpio_driver_t; 338 typedef enum gpio_driver { GPIO_DIS, GPIO_IN, GPIO_OUT, GPIO_BI } gpio_driver_t;
339 339
340 typedef struct { unsigned long add; /* gpio core base address */ 340 typedef struct { unsigned long add; /* gpio core base address */
341 gpio_driver_t in_out; /* Driver Setting */ 341 gpio_driver_t in_out; /* Driver Setting */
342 gpio_select_t alt_nb; /* Selected Alternate */ 342 gpio_select_t alt_nb; /* Selected Alternate */
343 } gpio_param_s; 343 } gpio_param_s;
344 344
345 /*----------------------------------------------------------------------------+ 345 /*----------------------------------------------------------------------------+
346 | XX XX 346 | XX XX
347 | 347 |
348 | XXXXXX XXX XX XXX XXX 348 | XXXXXX XXX XX XXX XXX
349 | XX XX X XX XX XX 349 | XX XX X XX XX XX
350 | XX XX X XX XX XX 350 | XX XX X XX XX XX
351 | XX XX XX XX XX 351 | XX XX XX XX XX
352 | XXXXXX XXX XXX XXXX XXXX 352 | XXXXXX XXX XXX XXXX XXXX
353 +----------------------------------------------------------------------------*/ 353 +----------------------------------------------------------------------------*/
354 /*----------------------------------------------------------------------------+ 354 /*----------------------------------------------------------------------------+
355 | Defines 355 | Defines
356 +----------------------------------------------------------------------------*/ 356 +----------------------------------------------------------------------------*/
357 typedef enum zmii_config { ZMII_CONFIGURATION_UNKNOWN, 357 typedef enum zmii_config { ZMII_CONFIGURATION_UNKNOWN,
358 ZMII_CONFIGURATION_IS_MII, 358 ZMII_CONFIGURATION_IS_MII,
359 ZMII_CONFIGURATION_IS_RMII, 359 ZMII_CONFIGURATION_IS_RMII,
360 ZMII_CONFIGURATION_IS_SMII 360 ZMII_CONFIGURATION_IS_SMII
361 } zmii_config_t; 361 } zmii_config_t;
362 362
363 /*----------------------------------------------------------------------------+ 363 /*----------------------------------------------------------------------------+
364 | Declare Configuration values 364 | Declare Configuration values
365 +----------------------------------------------------------------------------*/ 365 +----------------------------------------------------------------------------*/
366 typedef enum uart_config_nb { L1, L2, L3, L4 } uart_config_nb_t; 366 typedef enum uart_config_nb { L1, L2, L3, L4 } uart_config_nb_t;
367 typedef enum core_selection { CORE_NOT_SELECTED, CORE_SELECTED} core_selection_t; 367 typedef enum core_selection { CORE_NOT_SELECTED, CORE_SELECTED} core_selection_t;
368 typedef enum config_list { IIC_CORE, 368 typedef enum config_list { IIC_CORE,
369 SCP_CORE, 369 SCP_CORE,
370 DMA_CHANNEL_AB, 370 DMA_CHANNEL_AB,
371 UIC_4_9, 371 UIC_4_9,
372 USB2_HOST, 372 USB2_HOST,
373 DMA_CHANNEL_CD, 373 DMA_CHANNEL_CD,
374 USB2_DEVICE, 374 USB2_DEVICE,
375 PACKET_REJ_FUNC_AVAIL, 375 PACKET_REJ_FUNC_AVAIL,
376 USB1_DEVICE, 376 USB1_DEVICE,
377 EBC_MASTER, 377 EBC_MASTER,
378 NAND_FLASH, 378 NAND_FLASH,
379 UART_CORE0, 379 UART_CORE0,
380 UART_CORE1, 380 UART_CORE1,
381 UART_CORE2, 381 UART_CORE2,
382 UART_CORE3, 382 UART_CORE3,
383 MII_SEL, 383 MII_SEL,
384 RMII_SEL, 384 RMII_SEL,
385 SMII_SEL, 385 SMII_SEL,
386 PACKET_REJ_FUNC_EN, 386 PACKET_REJ_FUNC_EN,
387 UIC_0_3, 387 UIC_0_3,
388 USB1_HOST, 388 USB1_HOST,
389 PCI_PATCH, 389 PCI_PATCH,
390 CORE_NB 390 CORE_NB
391 } core_list_t; 391 } core_list_t;
392 392
393 typedef enum block3_value { B3_V1, B3_V2, B3_V3, B3_V4, B3_V5, 393 typedef enum block3_value { B3_V1, B3_V2, B3_V3, B3_V4, B3_V5,
394 B3_V6, B3_V7, B3_V8, B3_V9, B3_V10, 394 B3_V6, B3_V7, B3_V8, B3_V9, B3_V10,
395 B3_V11, B3_V12, B3_V13, B3_V14, B3_V15, 395 B3_V11, B3_V12, B3_V13, B3_V14, B3_V15,
396 B3_V16, B3_VALUE_UNKNOWN 396 B3_V16, B3_VALUE_UNKNOWN
397 } block3_value_t; 397 } block3_value_t;
398 398
399 typedef enum config_validity { CONFIG_IS_VALID, 399 typedef enum config_validity { CONFIG_IS_VALID,
400 CONFIG_IS_INVALID 400 CONFIG_IS_INVALID
401 } config_validity_t; 401 } config_validity_t;
402 402
board/ep8248/Makefile
File was created 1 #
2 # (C) Copyright 2001
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 include $(TOPDIR)/config.mk
25
26 LIB = lib$(BOARD).a
27
28 OBJS := $(BOARD).o
29
30 $(LIB): $(OBJS) $(SOBJS)
31 $(AR) crv $@ $(OBJS)
32
33 clean:
34 rm -f $(SOBJS) $(OBJS)
35
36 distclean: clean
37 rm -f $(LIB) core *.bak .depend
38
39 #########################################################################
40
41 .depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
42 $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
43
44 -include .depend
45
46 #########################################################################
47
board/ep8248/config.mk
File was created 1 #
2 # (C) Copyright 2001
3 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 #
5 # Modified by, Yuli Barcohen, Arabella Software Ltd. <yuli@arabellasw.com>
6 #
7 # See file CREDITS for list of people who contributed to this
8 # project.
9 #
10 # This program is free software; you can redistribute it and/or
11 # modify it under the terms of the GNU General Public License as
12 # published by the Free Software Foundation; either version 2 of
13 # the License, or (at your option) any later version.
14 #
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
19 #
20 # You should have received a copy of the GNU General Public License
21 # along with this program; if not, write to the Free Software
22 # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 # MA 02111-1307 USA
24 #
25
26 #
27 # EP82xx series boards by Embedded Planet
28 #
29
30 TEXT_BASE = 0xFFF00000
31
board/ep8248/ep8248.c
File was created 1 /*
2 * Copyright (C) 2004 Arabella Software Ltd.
3 * Yuli Barcohen <yuli@arabellasw.com>
4 *
5 * Support for Embedded Planet EP8248 boards.
6 * Tested on EP8248E.
7 *
8 * See file CREDITS for list of people who contributed to this
9 * project.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of
14 * the License, or (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
24 * MA 02111-1307 USA
25 */
26
27 #include <common.h>
28 #include <mpc8260.h>
29 #include <ioports.h>
30
31 /*
32 * I/O Port configuration table
33 *
34 * if conf is 1, then that port pin will be configured at boot time
35 * according to the five values podr/pdir/ppar/psor/pdat for that entry
36 */
37
38 #define CFG_FCC1 (CONFIG_ETHER_INDEX == 1)
39 #define CFG_FCC2 (CONFIG_ETHER_INDEX == 2)
40
41 const iop_conf_t iop_conf_tab[4][32] = {
42
43 /* Port A */
44 { /* conf ppar psor pdir podr pdat */
45 /* PA31 */ { CFG_FCC1, 1, 1, 0, 0, 0 }, /* FCC1 MII COL */
46 /* PA30 */ { CFG_FCC1, 1, 1, 0, 0, 0 }, /* FCC1 MII CRS */
47 /* PA29 */ { CFG_FCC1, 1, 1, 1, 0, 0 }, /* FCC1 MII TX_ER */
48 /* PA28 */ { CFG_FCC1, 1, 1, 1, 0, 0 }, /* FCC1 MII TX_EN */
49 /* PA27 */ { CFG_FCC1, 1, 1, 0, 0, 0 }, /* FCC1 MII RX_DV */
50 /* PA26 */ { CFG_FCC1, 1, 1, 0, 0, 0 }, /* FCC1 MII RX_ER */
51 /* PA25 */ { 0, 0, 0, 0, 0, 0 }, /* PA25 */
52 /* PA24 */ { 0, 0, 0, 0, 0, 0 }, /* PA24 */
53 /* PA23 */ { 0, 0, 0, 0, 0, 0 }, /* PA23 */
54 /* PA22 */ { 0, 0, 0, 0, 0, 0 }, /* PA22 */
55 /* PA21 */ { CFG_FCC1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[3] */
56 /* PA20 */ { CFG_FCC1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[2] */
57 /* PA19 */ { CFG_FCC1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[1] */
58 /* PA18 */ { CFG_FCC1, 1, 0, 1, 0, 0 }, /* FCC1 MII TxD[0] */
59 /* PA17 */ { CFG_FCC1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[0] */
60 /* PA16 */ { CFG_FCC1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[1] */
61 /* PA15 */ { CFG_FCC1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[2] */
62 /* PA14 */ { CFG_FCC1, 1, 0, 0, 0, 0 }, /* FCC1 MII RxD[3] */
63 /* PA13 */ { 0, 0, 0, 0, 0, 0 }, /* PA13 */
64 /* PA12 */ { 0, 0, 0, 0, 0, 0 }, /* PA12 */
65 /* PA11 */ { 0, 0, 0, 0, 0, 0 }, /* PA11 */
66 /* PA10 */ { 0, 0, 0, 0, 0, 0 }, /* PA10 */
67 /* PA9 */ { 0, 1, 0, 1, 0, 0 }, /* SMC2 TxD */
68 /* PA8 */ { 0, 1, 0, 0, 0, 0 }, /* SMC2 RxD */
69 /* PA7 */ { 0, 0, 0, 0, 0, 0 }, /* PA7 */
70 /* PA6 */ { 0, 0, 0, 0, 0, 0 }, /* PA6 */
71 /* PA5 */ { 0, 0, 0, 0, 0, 0 }, /* PA5 */
72 /* PA4 */ { 0, 0, 0, 0, 0, 0 }, /* PA4 */
73 /* PA3 */ { 0, 0, 0, 0, 0, 0 }, /* PA3 */
74 /* PA2 */ { 0, 0, 0, 0, 0, 0 }, /* PA2 */
75 /* PA1 */ { 0, 0, 0, 0, 0, 0 }, /* PA1 */
76 /* PA0 */ { 0, 0, 0, 0, 0, 0 } /* PA0 */
77 },
78
79 /* Port B */
80 { /* conf ppar psor pdir podr pdat */
81 /* PB31 */ { CFG_FCC2, 1, 0, 1, 0, 0 }, /* FCC2 MII TX_ER */
82 /* PB30 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_DV */
83 /* PB29 */ { CFG_FCC2, 1, 1, 1, 0, 0 }, /* FCC2 MII TX_EN */
84 /* PB28 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_ER */
85 /* PB27 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII COL */
86 /* PB26 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII CRS */
87 /* PB25 */ { CFG_FCC2, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[3] */
88 /* PB24 */ { CFG_FCC2, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[2] */
89 /* PB23 */ { CFG_FCC2, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[1] */
90 /* PB22 */ { CFG_FCC2, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[0] */
91 /* PB21 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[0] */
92 /* PB20 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[1] */
93 /* PB19 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[2] */
94 /* PB18 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[3] */
95 /* PB17 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
96 /* PB16 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
97 /* PB15 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
98 /* PB14 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
99 /* PB13 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
100 /* PB12 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
101 /* PB11 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
102 /* PB10 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
103 /* PB9 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
104 /* PB8 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
105 /* PB7 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
106 /* PB6 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
107 /* PB5 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
108 /* PB4 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
109 /* PB3 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
110 /* PB2 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
111 /* PB1 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
112 /* PB0 */ { 0, 0, 0, 0, 0, 0 } /* non-existent */
113 },
114
115 /* Port C */
116 { /* conf ppar psor pdir podr pdat */
117 /* PC31 */ { 0, 0, 0, 0, 0, 0 }, /* PC31 */
118 /* PC30 */ { 0, 0, 0, 0, 0, 0 }, /* PC30 */
119 /* PC29 */ { 0, 0, 0, 0, 0, 0 }, /* PC29 */
120 /* PC28 */ { 0, 0, 0, 0, 0, 0 }, /* PC28 */
121 /* PC27 */ { 0, 0, 0, 0, 0, 0 }, /* PC27 */
122 /* PC26 */ { 0, 0, 0, 0, 0, 0 }, /* PC26 */
123 /* PC25 */ { 0, 0, 0, 0, 0, 0 }, /* PC25 */
124 /* PC24 */ { 0, 0, 0, 0, 0, 0 }, /* PC24 */
125 /* PC23 */ { 0, 0, 0, 0, 0, 0 }, /* PC23 */
126 /* PC22 */ { CFG_FCC1, 1, 0, 0, 0, 0 }, /* FCC1 RxClk (CLK10) */
127 /* PC21 */ { CFG_FCC1, 1, 0, 0, 0, 0 }, /* FCC1 TxClk (CLK11) */
128 /* PC20 */ { 0, 0, 0, 0, 0, 0 }, /* PC20 */
129 /* PC19 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 RxClk (CLK13) */
130 /* PC18 */ { CFG_FCC2, 1, 0, 0, 0, 0 }, /* FCC2 TxClk (CLK14) */
131 /* PC17 */ { 0, 0, 0, 0, 0, 0 }, /* PC17 */
132 /* PC16 */ { 0, 0, 0, 0, 0, 0 }, /* PC16 */
133 /* PC15 */ { 0, 0, 0, 0, 0, 0 }, /* PC15 */
134 /* PC14 */ { 0, 0, 0, 0, 0, 0 }, /* PC14 */
135 /* PC13 */ { 0, 0, 0, 0, 0, 0 }, /* PC13 */
136 /* PC12 */ { 0, 0, 0, 0, 0, 0 }, /* PC12 */
137 /* PC11 */ { 0, 0, 0, 0, 0, 0 }, /* PC11 */
138 /* PC10 */ { 0, 0, 0, 0, 0, 0 }, /* PC10 */
139 /* PC9 */ { 1, 0, 0, 1, 0, 1 }, /* MDIO */
140 /* PC8 */ { 1, 0, 0, 1, 0, 1 }, /* MDC */
141 /* PC7 */ { 0, 0, 0, 0, 0, 0 }, /* PC7 */
142 /* PC6 */ { 0, 0, 0, 0, 0, 0 }, /* PC6 */
143 /* PC5 */ { 1, 1, 0, 1, 0, 0 }, /* SMC1 TxD */
144 /* PC4 */ { 1, 1, 0, 0, 0, 0 }, /* SMC1 RxD */
145 /* PC3 */ { 0, 0, 0, 0, 0, 0 }, /* PC3 */
146 /* PC2 */ { 0, 0, 0, 0, 0, 0 }, /* PC2 */
147 /* PC1 */ { 0, 0, 0, 0, 0, 0 }, /* PC1 */
148 /* PC0 */ { 0, 0, 0, 0, 0, 0 }, /* PC0 */
149 },
150
151 /* Port D */
152 { /* conf ppar psor pdir podr pdat */
153 /* PD31 */ { 1, 1, 0, 0, 0, 0 }, /* SCC1 RxD */
154 /* PD30 */ { 1, 1, 1, 1, 0, 0 }, /* SCC1 TxD */
155 /* PD29 */ { 0, 0, 0, 0, 0, 0 }, /* PD29 */
156 /* PD28 */ { 0, 0, 0, 0, 0, 0 }, /* PD28 */
157 /* PD27 */ { 0, 0, 0, 0, 0, 0 }, /* PD27 */
158 /* PD26 */ { 0, 0, 0, 0, 0, 0 }, /* PD26 */
159 /* PD25 */ { 0, 0, 0, 0, 0, 0 }, /* PD25 */
160 /* PD24 */ { 0, 0, 0, 0, 0, 0 }, /* PD24 */
161 /* PD23 */ { 0, 0, 0, 0, 0, 0 }, /* PD23 */
162 /* PD22 */ { 0, 0, 0, 0, 0, 0 }, /* PD22 */
163 /* PD21 */ { 0, 0, 0, 0, 0, 0 }, /* PD21 */
164 /* PD20 */ { 0, 0, 0, 0, 0, 0 }, /* PD20 */
165 /* PD19 */ { 0, 0, 0, 0, 0, 0 }, /* PD19 */
166 /* PD18 */ { 0, 0, 0, 0, 0, 0 }, /* PD18 */
167 /* PD17 */ { 0, 0, 0, 0, 0, 0 }, /* PD17 */
168 /* PD16 */ { 0, 0, 0, 0, 0, 0 }, /* PD16 */
169 /* PD15 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SDA */
170 /* PD14 */ { 1, 1, 1, 0, 1, 0 }, /* I2C SCL */
171 /* PD13 */ { 0, 0, 0, 0, 0, 0 }, /* PD13 */
172 /* PD12 */ { 0, 0, 0, 0, 0, 0 }, /* PD12 */
173 /* PD11 */ { 0, 0, 0, 0, 0, 0 }, /* PD11 */
174 /* PD10 */ { 0, 0, 0, 0, 0, 0 }, /* PD10 */
175 /* PD9 */ { 0, 0, 0, 0, 0, 0 }, /* PD9 */
176 /* PD8 */ { 0, 0, 0, 0, 0, 0 }, /* PD8 */
177 /* PD7 */ { 0, 0, 0, 0, 0, 0 }, /* PD7 */
178 /* PD6 */ { 0, 0, 0, 0, 0, 0 }, /* PD6 */
179 /* PD5 */ { 0, 0, 0, 0, 0, 0 }, /* PD5 */
180 /* PD4 */ { 0, 0, 0, 0, 0, 0 }, /* PD4 */
181 /* PD3 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
182 /* PD2 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
183 /* PD1 */ { 0, 0, 0, 0, 0, 0 }, /* non-existent */
184 /* PD0 */ { 0, 0, 0, 0, 0, 0 } /* non-existent */
185 }
186 };
187
188 int board_early_init_f (void)
189 {
190 vu_char *bcsr = (vu_char *)CFG_BCSR;
191
192 bcsr[4] |= 0x30; /* Turn the LEDs off */
193
194 #if defined(CONFIG_CONS_ON_SMC) || defined(CONFIG_KGDB_ON_SMC)
195 bcsr[6] |= 0x10;
196 #endif
197 #if defined(CONFIG_CONS_ON_SCC) || defined(CONFIG_KGDB_ON_SCC)
198 bcsr[7] |= 0x10;
199 #endif
200
201 #if CFG_FCC1
202 bcsr[8] |= 0xC0;
203 #endif /* CFG_FCC1 */
204 #if CFG_FCC2
205 bcsr[8] |= 0x30;
206 #endif /* CFG_FCC2 */
207
208 return 0;
209 }
210
211 long int initdram(int board_type)
212 {
213 vu_char *bcsr = (vu_char *)CFG_BCSR;
214 long int msize = 16L << (bcsr[2] & 3);
215
216 #ifndef CFG_RAMBOOT
217 volatile immap_t *immap = (immap_t *)CFG_IMMR;
218 volatile memctl8260_t *memctl = &immap->im_memctl;
219 vu_char *ramaddr = (vu_char *)CFG_SDRAM_BASE;
220 uchar c = 0xFF;
221 uint psdmr = CFG_PSDMR;
222 int i;
223
224 immap->im_siu_conf.sc_ppc_acr = 0x02;
225 immap->im_siu_conf.sc_ppc_alrh = 0x30126745;
226 immap->im_siu_conf.sc_tescr1 = 0x00004000;
227
228 memctl->memc_mptpr = CFG_MPTPR;
229
230 /* Initialise 60x bus SDRAM */
231 memctl->memc_psrt = CFG_PSRT;
232 memctl->memc_or1 = CFG_SDRAM_OR;
233 memctl->memc_br1 = CFG_SDRAM_BR;
234 memctl->memc_psdmr = psdmr | PSDMR_OP_PREA; /* Precharge all banks */
235 *ramaddr = c;
236 memctl->memc_psdmr = psdmr | PSDMR_OP_CBRR; /* CBR refresh */
237 for (i = 0; i < 8; i++)
238 *ramaddr = c;
239 memctl->memc_psdmr = psdmr | PSDMR_OP_MRW; /* Mode Register write */
240 *ramaddr = c;
241 memctl->memc_psdmr = psdmr | PSDMR_RFEN; /* Refresh enable */
242 *ramaddr = c;
243 #endif /* !CFG_RAMBOOT */
244
245 /* Return total 60x bus SDRAM size */
246 return msize * 1024 * 1024;
247 }
248
249 int checkboard(void)
250 {
251 vu_char *bcsr = (vu_char *)CFG_BCSR;
252
253 puts("Board: ");
254 switch (bcsr[0]) {
255 case 0x0C:
256 printf("EP8248E 1.0 CPLD revision %d\n", bcsr[1]);
257 break;
258 default:
259 printf("unknown: ID=%02X\n", bcsr[0]);
260 }
261
262 return 0;
263 }
264
board/ep8248/u-boot.lds
File was created 1 /*
2 * (C) Copyright 2001
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
5 * Modified by Yuli Barcohen <yuli@arabellasw.com>
6 *
7 * See file CREDITS for list of people who contributed to this
8 * project.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 * MA 02111-1307 USA
24 */
25
26 OUTPUT_ARCH(powerpc)
27 SECTIONS
28 {
29 /* Read-only sections, merged into text segment: */
30 . = + SIZEOF_HEADERS;
31 .interp : { *(.interp) }
32 .hash : { *(.hash) }
33 .dynsym : { *(.dynsym) }
34 .dynstr : { *(.dynstr) }
35 .rel.text : { *(.rel.text) }
36 .rela.text : { *(.rela.text) }
37 .rel.data : { *(.rel.data) }
38 .rela.data : { *(.rela.data) }
39 .rel.rodata : { *(.rel.rodata) }
40 .rela.rodata : { *(.rela.rodata) }
41 .rel.got : { *(.rel.got) }
42 .rela.got : { *(.rela.got) }
43 .rel.ctors : { *(.rel.ctors) }
44 .rela.ctors : { *(.rela.ctors) }
45 .rel.dtors : { *(.rel.dtors) }
46 .rela.dtors : { *(.rela.dtors) }
47 .rel.bss : { *(.rel.bss) }
48 .rela.bss : { *(.rela.bss) }
49 .rel.plt : { *(.rel.plt) }
50 .rela.plt : { *(.rela.plt) }
51 .init : { *(.init) }
52 .plt : { *(.plt) }
53 .text :
54 {
55 cpu/mpc8260/start.o (.text)
56 *(.text)
57 *(.fixup)
58 *(.got1)
59 . = ALIGN(16);
60 *(.rodata)
61 *(.rodata1)
62 *(.rodata.str1.4)
63 }
64 .fini : { *(.fini) } =0
65 .ctors : { *(.ctors) }
66 .dtors : { *(.dtors) }
67
68 /* Read-write section, merged into data segment: */
69 . = (. + 0x0FFF) & 0xFFFFF000;
70 _erotext = .;
71 PROVIDE (erotext = .);
72 .reloc :
73 {
74 *(.got)
75 _GOT2_TABLE_ = .;
76 *(.got2)
77 _FIXUP_TABLE_ = .;
78 *(.fixup)
79 }
80 __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
81 __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
82
83 .data :
84 {
85 *(.data)
86 *(.data1)
87 *(.sdata)
88 *(.sdata2)
89 *(.dynamic)
90 CONSTRUCTORS
91 }
92 _edata = .;
93 PROVIDE (edata = .);
94
95 __u_boot_cmd_start = .;
96 .u_boot_cmd : { *(.u_boot_cmd) }
97 __u_boot_cmd_end = .;
98
99
100 __start___ex_table = .;
101 __ex_table : { *(__ex_table) }
102 __stop___ex_table = .;
103
104 . = ALIGN(4096);
105 __init_begin = .;
106 .text.init : { *(.text.init) }
107 .data.init : { *(.data.init) }
108 . = ALIGN(4096);
109 __init_end = .;
110
111 __bss_start = .;
112 .bss :
113 {
114 *(.sbss) *(.scommon)
115 *(.dynbss)
116 *(.bss)
117 *(COMMON)
118 }
119 _end = . ;
120 PROVIDE (end = .);
121 }
122 ENTRY(_start)
123
1 /* 1 /*
2 * Copyright (C) 1998 Dan Malek <dmalek@jlc.net> 2 * Copyright (C) 1998 Dan Malek <dmalek@jlc.net>
3 * Copyright (C) 1999 Magnus Damm <kieraypc01.p.y.kie.era.ericsson.se> 3 * Copyright (C) 1999 Magnus Damm <kieraypc01.p.y.kie.era.ericsson.se>
4 * Copyright (C) 2000,2001,2002 Wolfgang Denk <wd@denx.de> 4 * Copyright (C) 2000,2001,2002 Wolfgang Denk <wd@denx.de>
5 * 5 *
6 * See file CREDITS for list of people who contributed to this 6 * See file CREDITS for list of people who contributed to this
7 * project. 7 * project.
8 * 8 *
9 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as 10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of 11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version. 12 * the License, or (at your option) any later version.
13 * 13 *
14 * This program is distributed in the hope that it will be useful, 14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details. 17 * GNU General Public License for more details.
18 * 18 *
19 * You should have received a copy of the GNU General Public License 19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software 20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22 * MA 02111-1307 USA 22 * MA 02111-1307 USA
23 */ 23 */
24 /*------------------------------------------------------------------------------+ */ 24 /*------------------------------------------------------------------------------+ */
25 /* */ 25 /* */
26 /* This source code has been made available to you by IBM on an AS-IS */ 26 /* This source code has been made available to you by IBM on an AS-IS */
27 /* basis. Anyone receiving this source is licensed under IBM */ 27 /* basis. Anyone receiving this source is licensed under IBM */
28 /* copyrights to use it in any way he or she deems fit, including */ 28 /* copyrights to use it in any way he or she deems fit, including */
29 /* copying it, modifying it, compiling it, and redistributing it either */ 29 /* copying it, modifying it, compiling it, and redistributing it either */
30 /* with or without modifications. No license under IBM patents or */ 30 /* with or without modifications. No license under IBM patents or */
31 /* patent applications is to be implied by the copyright license. */ 31 /* patent applications is to be implied by the copyright license. */
32 /* */ 32 /* */
33 /* Any user of this software should understand that IBM cannot provide */ 33 /* Any user of this software should understand that IBM cannot provide */
34 /* technical support for this software and will not be responsible for */ 34 /* technical support for this software and will not be responsible for */
35 /* any consequences resulting from the use of this software. */ 35 /* any consequences resulting from the use of this software. */
36 /* */ 36 /* */
37 /* Any person who transfers this source code or any derivative work */ 37 /* Any person who transfers this source code or any derivative work */
38 /* must include the IBM copyright notice, this paragraph, and the */ 38 /* must include the IBM copyright notice, this paragraph, and the */
39 /* preceding two paragraphs in the transferred software. */ 39 /* preceding two paragraphs in the transferred software. */
40 /* */ 40 /* */
41 /* COPYRIGHT I B M CORPORATION 1995 */ 41 /* COPYRIGHT I B M CORPORATION 1995 */
42 /* LICENSED MATERIAL - PROGRAM PROPERTY OF I B M */ 42 /* LICENSED MATERIAL - PROGRAM PROPERTY OF I B M */
43 /*------------------------------------------------------------------------------- */ 43 /*------------------------------------------------------------------------------- */
44 44
45 /* U-Boot - Startup Code for IBM 4xx PowerPC based Embedded Boards 45 /* U-Boot - Startup Code for IBM 4xx PowerPC based Embedded Boards
46 * 46 *
47 * 47 *
48 * The processor starts at 0xfffffffc and the code is executed 48 * The processor starts at 0xfffffffc and the code is executed
49 * from flash/rom. 49 * from flash/rom.
50 * in memory, but as long we don't jump around before relocating. 50 * in memory, but as long we don't jump around before relocating.
51 * board_init lies at a quite high address and when the cpu has 51 * board_init lies at a quite high address and when the cpu has
52 * jumped there, everything is ok. 52 * jumped there, everything is ok.
53 * This works because the cpu gives the FLASH (CS0) the whole 53 * This works because the cpu gives the FLASH (CS0) the whole
54 * address space at startup, and board_init lies as a echo of 54 * address space at startup, and board_init lies as a echo of
55 * the flash somewhere up there in the memorymap. 55 * the flash somewhere up there in the memorymap.
56 * 56 *
57 * board_init will change CS0 to be positioned at the correct 57 * board_init will change CS0 to be positioned at the correct
58 * address and (s)dram will be positioned at address 0 58 * address and (s)dram will be positioned at address 0
59 */ 59 */
60 #include <config.h> 60 #include <config.h>
61 #include <mpc8xx.h> 61 #include <mpc8xx.h>
62 #include <ppc4xx.h> 62 #include <ppc4xx.h>
63 #include <version.h> 63 #include <version.h>
64 64
65 #define _LINUX_CONFIG_H 1 /* avoid reading Linux autoconf.h file */ 65 #define _LINUX_CONFIG_H 1 /* avoid reading Linux autoconf.h file */
66 66
67 #include <ppc_asm.tmpl> 67 #include <ppc_asm.tmpl>
68 #include <ppc_defs.h> 68 #include <ppc_defs.h>
69 69
70 #include <asm/cache.h> 70 #include <asm/cache.h>
71 #include <asm/mmu.h> 71 #include <asm/mmu.h>
72 72
73 #ifndef CONFIG_IDENT_STRING 73 #ifndef CONFIG_IDENT_STRING
74 #define CONFIG_IDENT_STRING "" 74 #define CONFIG_IDENT_STRING ""
75 #endif 75 #endif
76 76
77 #ifdef CFG_INIT_DCACHE_CS 77 #ifdef CFG_INIT_DCACHE_CS
78 # if (CFG_INIT_DCACHE_CS == 0) 78 # if (CFG_INIT_DCACHE_CS == 0)
79 # define PBxAP pb0ap 79 # define PBxAP pb0ap
80 # define PBxCR pb0cr 80 # define PBxCR pb0cr
81 # endif 81 # endif
82 # if (CFG_INIT_DCACHE_CS == 1) 82 # if (CFG_INIT_DCACHE_CS == 1)
83 # define PBxAP pb1ap 83 # define PBxAP pb1ap
84 # define PBxCR pb1cr 84 # define PBxCR pb1cr
85 # endif 85 # endif
86 # if (CFG_INIT_DCACHE_CS == 2) 86 # if (CFG_INIT_DCACHE_CS == 2)
87 # define PBxAP pb2ap 87 # define PBxAP pb2ap
88 # define PBxCR pb2cr 88 # define PBxCR pb2cr
89 # endif 89 # endif
90 # if (CFG_INIT_DCACHE_CS == 3) 90 # if (CFG_INIT_DCACHE_CS == 3)
91 # define PBxAP pb3ap 91 # define PBxAP pb3ap
92 # define PBxCR pb3cr 92 # define PBxCR pb3cr
93 # endif 93 # endif
94 # if (CFG_INIT_DCACHE_CS == 4) 94 # if (CFG_INIT_DCACHE_CS == 4)
95 # define PBxAP pb4ap 95 # define PBxAP pb4ap
96 # define PBxCR pb4cr 96 # define PBxCR pb4cr
97 # endif 97 # endif
98 # if (CFG_INIT_DCACHE_CS == 5) 98 # if (CFG_INIT_DCACHE_CS == 5)
99 # define PBxAP pb5ap 99 # define PBxAP pb5ap
100 # define PBxCR pb5cr 100 # define PBxCR pb5cr
101 # endif 101 # endif
102 # if (CFG_INIT_DCACHE_CS == 6) 102 # if (CFG_INIT_DCACHE_CS == 6)
103 # define PBxAP pb6ap 103 # define PBxAP pb6ap
104 # define PBxCR pb6cr 104 # define PBxCR pb6cr
105 # endif 105 # endif
106 # if (CFG_INIT_DCACHE_CS == 7) 106 # if (CFG_INIT_DCACHE_CS == 7)
107 # define PBxAP pb7ap 107 # define PBxAP pb7ap
108 # define PBxCR pb7cr 108 # define PBxCR pb7cr
109 # endif 109 # endif
110 #endif /* CFG_INIT_DCACHE_CS */ 110 #endif /* CFG_INIT_DCACHE_CS */
111 111
112 /* We don't want the MMU yet. 112 /* We don't want the MMU yet.
113 */ 113 */
114 #undef MSR_KERNEL 114 #undef MSR_KERNEL
115 #define MSR_KERNEL ( MSR_ME ) /* Machine Check */ 115 #define MSR_KERNEL ( MSR_ME ) /* Machine Check */
116 116
117 117
118 .extern ext_bus_cntlr_init 118 .extern ext_bus_cntlr_init
119 .extern sdram_init 119 .extern sdram_init
120 120
121 /* 121 /*
122 * Set up GOT: Global Offset Table 122 * Set up GOT: Global Offset Table
123 * 123 *
124 * Use r14 to access the GOT 124 * Use r14 to access the GOT
125 */ 125 */
126 START_GOT 126 START_GOT
127 GOT_ENTRY(_GOT2_TABLE_) 127 GOT_ENTRY(_GOT2_TABLE_)
128 GOT_ENTRY(_FIXUP_TABLE_) 128 GOT_ENTRY(_FIXUP_TABLE_)
129 129
130 GOT_ENTRY(_start) 130 GOT_ENTRY(_start)
131 GOT_ENTRY(_start_of_vectors) 131 GOT_ENTRY(_start_of_vectors)
132 GOT_ENTRY(_end_of_vectors) 132 GOT_ENTRY(_end_of_vectors)
133 GOT_ENTRY(transfer_to_handler) 133 GOT_ENTRY(transfer_to_handler)
134 134
135 GOT_ENTRY(__init_end) 135 GOT_ENTRY(__init_end)
136 GOT_ENTRY(_end) 136 GOT_ENTRY(_end)
137 GOT_ENTRY(__bss_start) 137 GOT_ENTRY(__bss_start)
138 END_GOT 138 END_GOT
139 139
140 /* 140 /*
141 * 440 Startup -- on reset only the top 4k of the effective 141 * 440 Startup -- on reset only the top 4k of the effective
142 * address space is mapped in by an entry in the instruction 142 * address space is mapped in by an entry in the instruction
143 * and data shadow TLB. The .bootpg section is located in the 143 * and data shadow TLB. The .bootpg section is located in the
144 * top 4k & does only what's necessary to map in the the rest 144 * top 4k & does only what's necessary to map in the the rest
145 * of the boot rom. Once the boot rom is mapped in we can 145 * of the boot rom. Once the boot rom is mapped in we can
146 * proceed with normal startup. 146 * proceed with normal startup.
147 * 147 *
148 * NOTE: CS0 only covers the top 2MB of the effective address 148 * NOTE: CS0 only covers the top 2MB of the effective address
149 * space after reset. 149 * space after reset.
150 */ 150 */
151 151
152 #if defined(CONFIG_440) 152 #if defined(CONFIG_440)
153 .section .bootpg,"ax" 153 .section .bootpg,"ax"
154 .globl _start_440 154 .globl _start_440
155 155
156 /**************************************************************************/ 156 /**************************************************************************/
157 _start_440: 157 _start_440:
158 /*----------------------------------------------------------------*/ 158 /*----------------------------------------------------------------*/
159 /* Clear and set up some registers. */ 159 /* Clear and set up some registers. */
160 /*----------------------------------------------------------------*/ 160 /*----------------------------------------------------------------*/
161 iccci r0,r0 /* NOTE: operands not used for 440 */ 161 iccci r0,r0 /* NOTE: operands not used for 440 */
162 dccci r0,r0 /* NOTE: operands not used for 440 */ 162 dccci r0,r0 /* NOTE: operands not used for 440 */
163 sync 163 sync
164 li r0,0 164 li r0,0
165 mtspr srr0,r0 165 mtspr srr0,r0
166 mtspr srr1,r0 166 mtspr srr1,r0
167 mtspr csrr0,r0 167 mtspr csrr0,r0
168 mtspr csrr1,r0 168 mtspr csrr1,r0
169 #if defined (CONFIG_440_GX) /* NOTE: 440GX adds machine check status regs */ 169 #if defined (CONFIG_440_GX) /* NOTE: 440GX adds machine check status regs */
170 mtspr mcsrr0,r0 170 mtspr mcsrr0,r0
171 mtspr mcsrr1,r0 171 mtspr mcsrr1,r0
172 mfspr r1, mcsr 172 mfspr r1, mcsr
173 mtspr mcsr,r1 173 mtspr mcsr,r1
174 #endif 174 #endif
175 /*----------------------------------------------------------------*/ 175 /*----------------------------------------------------------------*/
176 /* Initialize debug */ 176 /* Initialize debug */
177 /*----------------------------------------------------------------*/ 177 /*----------------------------------------------------------------*/
178 mtspr dbcr0,r0 178 mtspr dbcr0,r0
179 mtspr dbcr1,r0 179 mtspr dbcr1,r0
180 mtspr dbcr2,r0 180 mtspr dbcr2,r0
181 mtspr iac1,r0 181 mtspr iac1,r0
182 mtspr iac2,r0 182 mtspr iac2,r0
183 mtspr iac3,r0 183 mtspr iac3,r0
184 mtspr dac1,r0 184 mtspr dac1,r0
185 mtspr dac2,r0 185 mtspr dac2,r0
186 mtspr dvc1,r0 186 mtspr dvc1,r0
187 mtspr dvc2,r0 187 mtspr dvc2,r0
188 188
189 mfspr r1,dbsr 189 mfspr r1,dbsr
190 mtspr dbsr,r1 /* Clear all valid bits */ 190 mtspr dbsr,r1 /* Clear all valid bits */
191 191
192 /*----------------------------------------------------------------*/ 192 /*----------------------------------------------------------------*/
193 /* CCR0 init */ 193 /* CCR0 init */
194 /*----------------------------------------------------------------*/ 194 /*----------------------------------------------------------------*/
195 /* Disable store gathering & broadcast, guarantee inst/data 195 /* Disable store gathering & broadcast, guarantee inst/data
196 * cache block touch, force load/store alignment 196 * cache block touch, force load/store alignment
197 * (see errata 1.12: 440_33) 197 * (see errata 1.12: 440_33)
198 */ 198 */
199 lis r1,0x0030 /* store gathering & broadcast disable */ 199 lis r1,0x0030 /* store gathering & broadcast disable */
200 ori r1,r1,0x6000 /* cache touch */ 200 ori r1,r1,0x6000 /* cache touch */
201 mtspr ccr0,r1 201 mtspr ccr0,r1
202 202
203 /*----------------------------------------------------------------*/ 203 /*----------------------------------------------------------------*/
204 /* Setup interrupt vectors */ 204 /* Setup interrupt vectors */
205 /*----------------------------------------------------------------*/ 205 /*----------------------------------------------------------------*/
206 mtspr ivpr,r0 /* Vectors start at 0x0000_0000 */ 206 mtspr ivpr,r0 /* Vectors start at 0x0000_0000 */
207 li r1,0x0100 207 li r1,0x0100
208 mtspr ivor0,r1 /* Critical input */ 208 mtspr ivor0,r1 /* Critical input */
209 li r1,0x0200 209 li r1,0x0200
210 mtspr ivor1,r1 /* Machine check */ 210 mtspr ivor1,r1 /* Machine check */
211 li r1,0x0300 211 li r1,0x0300
212 mtspr ivor2,r1 /* Data storage */ 212 mtspr ivor2,r1 /* Data storage */
213 li r1,0x0400 213 li r1,0x0400
214 mtspr ivor3,r1 /* Instruction storage */ 214 mtspr ivor3,r1 /* Instruction storage */
215 li r1,0x0500 215 li r1,0x0500
216 mtspr ivor4,r1 /* External interrupt */ 216 mtspr ivor4,r1 /* External interrupt */
217 li r1,0x0600 217 li r1,0x0600
218 mtspr ivor5,r1 /* Alignment */ 218 mtspr ivor5,r1 /* Alignment */
219 li r1,0x0700 219 li r1,0x0700
220 mtspr ivor6,r1 /* Program check */ 220 mtspr ivor6,r1 /* Program check */
221 li r1,0x0800 221 li r1,0x0800
222 mtspr ivor7,r1 /* Floating point unavailable */ 222 mtspr ivor7,r1 /* Floating point unavailable */
223 li r1,0x0c00 223 li r1,0x0c00
224 mtspr ivor8,r1 /* System call */ 224 mtspr ivor8,r1 /* System call */
225 li r1,0x1000 225 li r1,0x1000
226 mtspr ivor10,r1 /* Decrementer (PIT for 440) */ 226 mtspr ivor10,r1 /* Decrementer (PIT for 440) */
227 li r1,0x1400 227 li r1,0x1400
228 mtspr ivor13,r1 /* Data TLB error */ 228 mtspr ivor13,r1 /* Data TLB error */
229 li r1,0x1300 229 li r1,0x1300
230 mtspr ivor14,r1 /* Instr TLB error */ 230 mtspr ivor14,r1 /* Instr TLB error */
231 li r1,0x2000 231 li r1,0x2000
232 mtspr ivor15,r1 /* Debug */ 232 mtspr ivor15,r1 /* Debug */
233 233
234 /*----------------------------------------------------------------*/ 234 /*----------------------------------------------------------------*/
235 /* Configure cache regions */ 235 /* Configure cache regions */
236 /*----------------------------------------------------------------*/ 236 /*----------------------------------------------------------------*/
237 mtspr inv0,r0 237 mtspr inv0,r0
238 mtspr inv1,r0 238 mtspr inv1,r0
239 mtspr inv2,r0 239 mtspr inv2,r0
240 mtspr inv3,r0 240 mtspr inv3,r0
241 mtspr dnv0,r0 241 mtspr dnv0,r0
242 mtspr dnv1,r0 242 mtspr dnv1,r0
243 mtspr dnv2,r0 243 mtspr dnv2,r0
244 mtspr dnv3,r0 244 mtspr dnv3,r0
245 mtspr itv0,r0 245 mtspr itv0,r0
246 mtspr itv1,r0 246 mtspr itv1,r0
247 mtspr itv2,r0 247 mtspr itv2,r0
248 mtspr itv3,r0 248 mtspr itv3,r0
249 mtspr dtv0,r0 249 mtspr dtv0,r0
250 mtspr dtv1,r0 250 mtspr dtv1,r0
251 mtspr dtv2,r0 251 mtspr dtv2,r0
252 mtspr dtv3,r0 252 mtspr dtv3,r0
253 253
254 /*----------------------------------------------------------------*/ 254 /*----------------------------------------------------------------*/
255 /* Cache victim limits */ 255 /* Cache victim limits */
256 /*----------------------------------------------------------------*/ 256 /*----------------------------------------------------------------*/
257 /* floors 0, ceiling max to use the entire cache -- nothing locked 257 /* floors 0, ceiling max to use the entire cache -- nothing locked
258 */ 258 */
259 lis r1,0x0001 259 lis r1,0x0001
260 ori r1,r1,0xf800 260 ori r1,r1,0xf800
261 mtspr ivlim,r1 261 mtspr ivlim,r1
262 mtspr dvlim,r1 262 mtspr dvlim,r1
263 263
264 /*----------------------------------------------------------------*/ 264 /*----------------------------------------------------------------*/
265 /* Clear all TLB entries -- TID = 0, TS = 0 */ 265 /* Clear all TLB entries -- TID = 0, TS = 0 */
266 /*----------------------------------------------------------------*/ 266 /*----------------------------------------------------------------*/
267 mtspr mmucr,r0 267 mtspr mmucr,r0
268 li r1,0x003f /* 64 TLB entries */ 268 li r1,0x003f /* 64 TLB entries */
269 mtctr r1 269 mtctr r1
270 0: tlbwe r0,r1,0x0000 /* Invalidate all entries (V=0)*/ 270 0: tlbwe r0,r1,0x0000 /* Invalidate all entries (V=0)*/
271 subi r1,r1,0x0001 271 subi r1,r1,0x0001
272 bdnz 0b 272 bdnz 0b
273 273
274 /*----------------------------------------------------------------*/ 274 /*----------------------------------------------------------------*/
275 /* TLB entry setup -- step thru tlbtab */ 275 /* TLB entry setup -- step thru tlbtab */
276 /*----------------------------------------------------------------*/ 276 /*----------------------------------------------------------------*/
277 bl tlbtab /* Get tlbtab pointer */ 277 bl tlbtab /* Get tlbtab pointer */
278 mr r5,r0 278 mr r5,r0
279 li r1,0x003f /* 64 TLB entries max */ 279 li r1,0x003f /* 64 TLB entries max */
280 mtctr r1 280 mtctr r1
281 li r4,0 /* TLB # */ 281 li r4,0 /* TLB # */
282 282
283 addi r5,r5,-4 283 addi r5,r5,-4
284 1: lwzu r0,4(r5) 284 1: lwzu r0,4(r5)
285 cmpwi r0,0 285 cmpwi r0,0
286 beq 2f /* 0 marks end */ 286 beq 2f /* 0 marks end */
287 lwzu r1,4(r5) 287 lwzu r1,4(r5)
288 lwzu r2,4(r5) 288 lwzu r2,4(r5)
289 tlbwe r0,r4,0 /* TLB Word 0 */ 289 tlbwe r0,r4,0 /* TLB Word 0 */
290 tlbwe r1,r4,1 /* TLB Word 1 */ 290 tlbwe r1,r4,1 /* TLB Word 1 */
291 tlbwe r2,r4,2 /* TLB Word 2 */ 291 tlbwe r2,r4,2 /* TLB Word 2 */
292 addi r4,r4,1 /* Next TLB */ 292 addi r4,r4,1 /* Next TLB */
293 bdnz 1b 293 bdnz 1b
294 294
295 /*----------------------------------------------------------------*/ 295 /*----------------------------------------------------------------*/
296 /* Continue from 'normal' start */ 296 /* Continue from 'normal' start */
297 /*----------------------------------------------------------------*/ 297 /*----------------------------------------------------------------*/
298 2: bl 3f 298 2: bl 3f
299 b _start 299 b _start
300 300
301 3: li r0,0 301 3: li r0,0
302 mtspr srr1,r0 /* Keep things disabled for now */ 302 mtspr srr1,r0 /* Keep things disabled for now */
303 mflr r1 303 mflr r1
304 mtspr srr0,r1 304 mtspr srr0,r1
305 rfi 305 rfi
306 #endif /* CONFIG_440 */ 306 #endif /* CONFIG_440 */
307 307
308 /* 308 /*
309 * r3 - 1st arg to board_init(): IMMP pointer 309 * r3 - 1st arg to board_init(): IMMP pointer
310 * r4 - 2nd arg to board_init(): boot flag 310 * r4 - 2nd arg to board_init(): boot flag
311 */ 311 */
312 .text 312 .text
313 .long 0x27051956 /* U-Boot Magic Number */ 313 .long 0x27051956 /* U-Boot Magic Number */
314 .globl version_string 314 .globl version_string
315 version_string: 315 version_string:
316 .ascii U_BOOT_VERSION 316 .ascii U_BOOT_VERSION
317 .ascii " (", __DATE__, " - ", __TIME__, ")" 317 .ascii " (", __DATE__, " - ", __TIME__, ")"
318 .ascii CONFIG_IDENT_STRING, "\0" 318 .ascii CONFIG_IDENT_STRING, "\0"
319 319
320 /* 320 /*
321 * Maybe this should be moved somewhere else because the current 321 * Maybe this should be moved somewhere else because the current
322 * location (0x100) is where the CriticalInput Execption should be. 322 * location (0x100) is where the CriticalInput Execption should be.
323 */ 323 */
324 . = EXC_OFF_SYS_RESET 324 . = EXC_OFF_SYS_RESET
325 .globl _start 325 .globl _start
326 _start: 326 _start:
327 327
328 /*****************************************************************************/ 328 /*****************************************************************************/
329 #if defined(CONFIG_440) 329 #if defined(CONFIG_440)
330 330
331 /*----------------------------------------------------------------*/ 331 /*----------------------------------------------------------------*/
332 /* Clear and set up some registers. */ 332 /* Clear and set up some registers. */
333 /*----------------------------------------------------------------*/ 333 /*----------------------------------------------------------------*/
334 li r0,0x0000 334 li r0,0x0000
335 lis r1,0xffff 335 lis r1,0xffff
336 mtspr dec,r0 /* prevent dec exceptions */ 336 mtspr dec,r0 /* prevent dec exceptions */
337 mtspr tbl,r0 /* prevent fit & wdt exceptions */ 337 mtspr tbl,r0 /* prevent fit & wdt exceptions */
338 mtspr tbu,r0 338 mtspr tbu,r0
339 mtspr tsr,r1 /* clear all timer exception status */ 339 mtspr tsr,r1 /* clear all timer exception status */
340 mtspr tcr,r0 /* disable all */ 340 mtspr tcr,r0 /* disable all */
341 mtspr esr,r0 /* clear exception syndrome register */ 341 mtspr esr,r0 /* clear exception syndrome register */
342 mtxer r0 /* clear integer exception register */ 342 mtxer r0 /* clear integer exception register */
343 #if !defined(CONFIG_440_GX) 343 #if !defined(CONFIG_440_GX)
344 lis r1,0x0002 /* set CE bit (Critical Exceptions) */ 344 lis r1,0x0002 /* set CE bit (Critical Exceptions) */
345 ori r1,r1,0x1000 /* set ME bit (Machine Exceptions) */ 345 ori r1,r1,0x1000 /* set ME bit (Machine Exceptions) */
346 mtmsr r1 /* change MSR */ 346 mtmsr r1 /* change MSR */
347 #elif !defined(CONFIG_440_EP) && !defined(CONFIG_440_GR) 347 #elif !defined(CONFIG_440_EP) && !defined(CONFIG_440_GR)
348 bl __440gx_msr_set 348 bl __440gx_msr_set
349 b __440gx_msr_continue 349 b __440gx_msr_continue
350 350
351 __440gx_msr_set: 351 __440gx_msr_set:
352 lis r1, 0x0002 /* set CE bit (Critical Exceptions) */ 352 lis r1, 0x0002 /* set CE bit (Critical Exceptions) */
353 ori r1,r1,0x1000 /* set ME bit (Machine Exceptions) */ 353 ori r1,r1,0x1000 /* set ME bit (Machine Exceptions) */
354 mtspr srr1,r1 354 mtspr srr1,r1
355 mflr r1 355 mflr r1
356 mtspr srr0,r1 356 mtspr srr0,r1
357 rfi 357 rfi
358 __440gx_msr_continue: 358 __440gx_msr_continue:
359 #endif 359 #endif
360 360
361 /*----------------------------------------------------------------*/ 361 /*----------------------------------------------------------------*/
362 /* Debug setup -- some (not very good) ice's need an event*/ 362 /* Debug setup -- some (not very good) ice's need an event*/
363 /* to establish control :-( Define CFG_INIT_DBCR to the dbsr */ 363 /* to establish control :-( Define CFG_INIT_DBCR to the dbsr */
364 /* value you need in this case 0x8cff 0000 should do the trick */ 364 /* value you need in this case 0x8cff 0000 should do the trick */
365 /*----------------------------------------------------------------*/ 365 /*----------------------------------------------------------------*/
366 #if defined(CFG_INIT_DBCR) 366 #if defined(CFG_INIT_DBCR)
367 lis r1,0xffff 367 lis r1,0xffff
368 ori r1,r1,0xffff 368 ori r1,r1,0xffff
369 mtspr dbsr,r1 /* Clear all status bits */ 369 mtspr dbsr,r1 /* Clear all status bits */
370 lis r0,CFG_INIT_DBCR@h 370 lis r0,CFG_INIT_DBCR@h
371 ori r0,r0,CFG_INIT_DBCR@l 371 ori r0,r0,CFG_INIT_DBCR@l
372 mtspr dbcr0,r0 372 mtspr dbcr0,r0
373 isync 373 isync
374 #endif 374 #endif
375 375
376 /*----------------------------------------------------------------*/ 376 /*----------------------------------------------------------------*/
377 /* Setup the internal SRAM */ 377 /* Setup the internal SRAM */
378 /*----------------------------------------------------------------*/ 378 /*----------------------------------------------------------------*/
379 li r0,0 379 li r0,0
380 #if defined(CONFIG_440_EP) || defined(CONFIG_440_GR) 380 #if defined(CONFIG_440_EP) || defined(CONFIG_440_GR)
381 /* Clear Dcache to use as RAM */ 381 /* Clear Dcache to use as RAM */
382 addis r3,r0,CFG_INIT_RAM_ADDR@h 382 addis r3,r0,CFG_INIT_RAM_ADDR@h
383 ori r3,r3,CFG_INIT_RAM_ADDR@l 383 ori r3,r3,CFG_INIT_RAM_ADDR@l
384 addis r4,r0,CFG_INIT_RAM_END@h 384 addis r4,r0,CFG_INIT_RAM_END@h
385 ori r4,r4,CFG_INIT_RAM_END@l 385 ori r4,r4,CFG_INIT_RAM_END@l
386 rlwinm. r5,r4,0,27,31 386 rlwinm. r5,r4,0,27,31
387 rlwinm r5,r4,27,5,31 387 rlwinm r5,r4,27,5,31
388 beq ..d_ran 388 beq ..d_ran
389 addi r5,r5,0x0001 389 addi r5,r5,0x0001
390 ..d_ran: 390 ..d_ran:
391 mtctr r5 391 mtctr r5
392 ..d_ag: 392 ..d_ag:
393 dcbz r0,r3 393 dcbz r0,r3
394 addi r3,r3,32 394 addi r3,r3,32
395 bdnz ..d_ag 395 bdnz ..d_ag
396 #else 396 #else
397 #if defined (CONFIG_440_GX) 397 #if defined (CONFIG_440_GX)
398 mtdcr l2_cache_cfg,r0 /* Ensure L2 Cache is off */ 398 mtdcr l2_cache_cfg,r0 /* Ensure L2 Cache is off */
399 #endif 399 #endif
400 mtdcr isram0_sb1cr,r0 /* Disable bank 1 */ 400 mtdcr isram0_sb1cr,r0 /* Disable bank 1 */
401 401
402 li r2,0x7fff 402 li r2,0x7fff
403 ori r2,r2,0xffff 403 ori r2,r2,0xffff
404 mfdcr r1,isram0_dpc 404 mfdcr r1,isram0_dpc
405 and r1,r1,r2 /* Disable parity check */ 405 and r1,r1,r2 /* Disable parity check */
406 mtdcr isram0_dpc,r1 406 mtdcr isram0_dpc,r1
407 mfdcr r1,isram0_pmeg 407 mfdcr r1,isram0_pmeg
408 andis. r1,r1,r2 /* Disable pwr mgmt */ 408 andis. r1,r1,r2 /* Disable pwr mgmt */
409 mtdcr isram0_pmeg,r1 409 mtdcr isram0_pmeg,r1
410 410
411 lis r1,0x8000 /* BAS = 8000_0000 */ 411 lis r1,0x8000 /* BAS = 8000_0000 */
412 #if defined(CONFIG_440_GX) 412 #if defined(CONFIG_440_GX)
413 ori r1,r1,0x0980 /* first 64k */ 413 ori r1,r1,0x0980 /* first 64k */
414 mtdcr isram0_sb0cr,r1 414 mtdcr isram0_sb0cr,r1
415 lis r1,0x8001 415 lis r1,0x8001
416 ori r1,r1,0x0980 /* second 64k */ 416 ori r1,r1,0x0980 /* second 64k */
417 mtdcr isram0_sb1cr,r1 417 mtdcr isram0_sb1cr,r1
418 lis r1, 0x8002 418 lis r1, 0x8002
419 ori r1,r1, 0x0980 /* third 64k */ 419 ori r1,r1, 0x0980 /* third 64k */
420 mtdcr isram0_sb2cr,r1 420 mtdcr isram0_sb2cr,r1
421 lis r1, 0x8003 421 lis r1, 0x8003
422 ori r1,r1, 0x0980 /* fourth 64k */ 422 ori r1,r1, 0x0980 /* fourth 64k */
423 mtdcr isram0_sb3cr,r1 423 mtdcr isram0_sb3cr,r1
424 #else 424 #else
425 ori r1,r1,0x0380 /* 8k rw */ 425 ori r1,r1,0x0380 /* 8k rw */
426 mtdcr isram0_sb0cr,r1 426 mtdcr isram0_sb0cr,r1
427 #endif 427 #endif
428 #endif 428 #endif
429 429
430 /*----------------------------------------------------------------*/ 430 /*----------------------------------------------------------------*/
431 /* Setup the stack in internal SRAM */ 431 /* Setup the stack in internal SRAM */
432 /*----------------------------------------------------------------*/ 432 /*----------------------------------------------------------------*/
433 lis r1,CFG_INIT_RAM_ADDR@h 433 lis r1,CFG_INIT_RAM_ADDR@h
434 ori r1,r1,CFG_INIT_SP_OFFSET@l 434 ori r1,r1,CFG_INIT_SP_OFFSET@l
435 435
436 li r0,0 436 li r0,0
437 stwu r0,-4(r1) 437 stwu r0,-4(r1)
438 stwu r0,-4(r1) /* Terminate call chain */ 438 stwu r0,-4(r1) /* Terminate call chain */
439 439
440 stwu r1,-8(r1) /* Save back chain and move SP */ 440 stwu r1,-8(r1) /* Save back chain and move SP */
441 lis r0,RESET_VECTOR@h /* Address of reset vector */ 441 lis r0,RESET_VECTOR@h /* Address of reset vector */
442 ori r0,r0, RESET_VECTOR@l 442 ori r0,r0, RESET_VECTOR@l
443 stwu r1,-8(r1) /* Save back chain and move SP */ 443 stwu r1,-8(r1) /* Save back chain and move SP */
444 stw r0,+12(r1) /* Save return addr (underflow vect) */ 444 stw r0,+12(r1) /* Save return addr (underflow vect) */
445 445
446 GET_GOT 446 GET_GOT
447 bl board_init_f 447 bl board_init_f
448 448
449 #endif /* CONFIG_440 */ 449 #endif /* CONFIG_440 */
450 450
451 /*****************************************************************************/ 451 /*****************************************************************************/
452 #ifdef CONFIG_IOP480 452 #ifdef CONFIG_IOP480
453 /*----------------------------------------------------------------------- */ 453 /*----------------------------------------------------------------------- */
454 /* Set up some machine state registers. */ 454 /* Set up some machine state registers. */
455 /*----------------------------------------------------------------------- */ 455 /*----------------------------------------------------------------------- */
456 addi r0,r0,0x0000 /* initialize r0 to zero */ 456 addi r0,r0,0x0000 /* initialize r0 to zero */
457 mtspr esr,r0 /* clear Exception Syndrome Reg */ 457 mtspr esr,r0 /* clear Exception Syndrome Reg */
458 mttcr r0 /* timer control register */ 458 mttcr r0 /* timer control register */
459 mtexier r0 /* disable all interrupts */ 459 mtexier r0 /* disable all interrupts */
460 addi r4,r0,0x1000 /* set ME bit (Machine Exceptions) */ 460 addi r4,r0,0x1000 /* set ME bit (Machine Exceptions) */
461 oris r4,r4,0x2 /* set CE bit (Critical Exceptions) */ 461 oris r4,r4,0x2 /* set CE bit (Critical Exceptions) */
462 mtmsr r4 /* change MSR */ 462 mtmsr r4 /* change MSR */
463 addis r4,r0,0xFFFF /* set r4 to 0xFFFFFFFF (status in the */ 463 addis r4,r0,0xFFFF /* set r4 to 0xFFFFFFFF (status in the */
464 ori r4,r4,0xFFFF /* dbsr is cleared by setting bits to 1) */ 464 ori r4,r4,0xFFFF /* dbsr is cleared by setting bits to 1) */
465 mtdbsr r4 /* clear/reset the dbsr */ 465 mtdbsr r4 /* clear/reset the dbsr */
466 mtexisr r4 /* clear all pending interrupts */ 466 mtexisr r4 /* clear all pending interrupts */
467 addis r4,r0,0x8000 467 addis r4,r0,0x8000
468 mtexier r4 /* enable critical exceptions */ 468 mtexier r4 /* enable critical exceptions */
469 addis r4,r0,0x0000 /* assume 403GCX - enable core clk */ 469 addis r4,r0,0x0000 /* assume 403GCX - enable core clk */
470 ori r4,r4,0x4020 /* dbling (no harm done on GA and GC */ 470 ori r4,r4,0x4020 /* dbling (no harm done on GA and GC */
471 mtiocr r4 /* since bit not used) & DRC to latch */ 471 mtiocr r4 /* since bit not used) & DRC to latch */
472 /* data bus on rising edge of CAS */ 472 /* data bus on rising edge of CAS */
473 /*----------------------------------------------------------------------- */ 473 /*----------------------------------------------------------------------- */
474 /* Clear XER. */ 474 /* Clear XER. */
475 /*----------------------------------------------------------------------- */ 475 /*----------------------------------------------------------------------- */
476 mtxer r0 476 mtxer r0
477 /*----------------------------------------------------------------------- */ 477 /*----------------------------------------------------------------------- */
478 /* Invalidate i-cache and d-cache TAG arrays. */ 478 /* Invalidate i-cache and d-cache TAG arrays. */
479 /*----------------------------------------------------------------------- */ 479 /*----------------------------------------------------------------------- */
480 addi r3,0,1024 /* 1/4 of I-cache size, half of D-cache */ 480 addi r3,0,1024 /* 1/4 of I-cache size, half of D-cache */
481 addi r4,0,1024 /* 1/4 of I-cache */ 481 addi r4,0,1024 /* 1/4 of I-cache */
482 ..cloop: 482 ..cloop:
483 iccci 0,r3 483 iccci 0,r3
484 iccci r4,r3 484 iccci r4,r3
485 dccci 0,r3 485 dccci 0,r3
486 addic. r3,r3,-16 /* move back one cache line */ 486 addic. r3,r3,-16 /* move back one cache line */
487 bne ..cloop /* loop back to do rest until r3 = 0 */ 487 bne ..cloop /* loop back to do rest until r3 = 0 */
488 488
489 /* */ 489 /* */
490 /* initialize IOP480 so it can read 1 MB code area for SRAM spaces */ 490 /* initialize IOP480 so it can read 1 MB code area for SRAM spaces */
491 /* this requires enabling MA[17..0], by default only MA[12..0] are enabled. */ 491 /* this requires enabling MA[17..0], by default only MA[12..0] are enabled. */
492 /* */ 492 /* */
493 493
494 /* first copy IOP480 register base address into r3 */ 494 /* first copy IOP480 register base address into r3 */
495 addis r3,0,0x5000 /* IOP480 register base address hi */ 495 addis r3,0,0x5000 /* IOP480 register base address hi */
496 /* ori r3,r3,0x0000 / IOP480 register base address lo */ 496 /* ori r3,r3,0x0000 / IOP480 register base address lo */
497 497
498 #ifdef CONFIG_ADCIOP 498 #ifdef CONFIG_ADCIOP
499 /* use r4 as the working variable */ 499 /* use r4 as the working variable */
500 /* turn on CS3 (LOCCTL.7) */ 500 /* turn on CS3 (LOCCTL.7) */
501 lwz r4,0x84(r3) /* LOCTL is at offset 0x84 */ 501 lwz r4,0x84(r3) /* LOCTL is at offset 0x84 */
502 andi. r4,r4,0xff7f /* make bit 7 = 0 -- CS3 mode */ 502 andi. r4,r4,0xff7f /* make bit 7 = 0 -- CS3 mode */
503 stw r4,0x84(r3) /* LOCTL is at offset 0x84 */ 503 stw r4,0x84(r3) /* LOCTL is at offset 0x84 */
504 #endif 504 #endif
505 505
506 #ifdef CONFIG_DASA_SIM 506 #ifdef CONFIG_DASA_SIM
507 /* use r4 as the working variable */ 507 /* use r4 as the working variable */
508 /* turn on MA17 (LOCCTL.7) */ 508 /* turn on MA17 (LOCCTL.7) */
509 lwz r4,0x84(r3) /* LOCTL is at offset 0x84 */ 509 lwz r4,0x84(r3) /* LOCTL is at offset 0x84 */
510 ori r4,r4,0x80 /* make bit 7 = 1 -- MA17 mode */ 510 ori r4,r4,0x80 /* make bit 7 = 1 -- MA17 mode */
511 stw r4,0x84(r3) /* LOCTL is at offset 0x84 */ 511 stw r4,0x84(r3) /* LOCTL is at offset 0x84 */
512 #endif 512 #endif
513 513
514 /* turn on MA16..13 (LCS0BRD.12 = 0) */ 514 /* turn on MA16..13 (LCS0BRD.12 = 0) */
515 lwz r4,0x100(r3) /* LCS0BRD is at offset 0x100 */ 515 lwz r4,0x100(r3) /* LCS0BRD is at offset 0x100 */
516 andi. r4,r4,0xefff /* make bit 12 = 0 */ 516 andi. r4,r4,0xefff /* make bit 12 = 0 */
517 stw r4,0x100(r3) /* LCS0BRD is at offset 0x100 */ 517 stw r4,0x100(r3) /* LCS0BRD is at offset 0x100 */
518 518
519 /* make sure above stores all comlete before going on */ 519 /* make sure above stores all comlete before going on */
520 sync 520 sync
521 521
522 /* last thing, set local init status done bit (DEVINIT.31) */ 522 /* last thing, set local init status done bit (DEVINIT.31) */
523 lwz r4,0x80(r3) /* DEVINIT is at offset 0x80 */ 523 lwz r4,0x80(r3) /* DEVINIT is at offset 0x80 */
524 oris r4,r4,0x8000 /* make bit 31 = 1 */ 524 oris r4,r4,0x8000 /* make bit 31 = 1 */
525 stw r4,0x80(r3) /* DEVINIT is at offset 0x80 */ 525 stw r4,0x80(r3) /* DEVINIT is at offset 0x80 */
526 526
527 /* clear all pending interrupts and disable all interrupts */ 527 /* clear all pending interrupts and disable all interrupts */
528 li r4,-1 /* set p1 to 0xffffffff */ 528 li r4,-1 /* set p1 to 0xffffffff */
529 stw r4,0x1b0(r3) /* clear all pending interrupts */ 529 stw r4,0x1b0(r3) /* clear all pending interrupts */
530 stw r4,0x1b8(r3) /* clear all pending interrupts */ 530 stw r4,0x1b8(r3) /* clear all pending interrupts */
531 li r4,0 /* set r4 to 0 */ 531 li r4,0 /* set r4 to 0 */
532 stw r4,0x1b4(r3) /* disable all interrupts */ 532 stw r4,0x1b4(r3) /* disable all interrupts */
533 stw r4,0x1bc(r3) /* disable all interrupts */ 533 stw r4,0x1bc(r3) /* disable all interrupts */
534 534
535 /* make sure above stores all comlete before going on */ 535 /* make sure above stores all comlete before going on */
536 sync 536 sync
537 537
538 /*----------------------------------------------------------------------- */ 538 /*----------------------------------------------------------------------- */
539 /* Enable two 128MB cachable regions. */ 539 /* Enable two 128MB cachable regions. */
540 /*----------------------------------------------------------------------- */ 540 /*----------------------------------------------------------------------- */
541 addis r1,r0,0x8000 541 addis r1,r0,0x8000
542 addi r1,r1,0x0001 542 addi r1,r1,0x0001
543 mticcr r1 /* instruction cache */ 543 mticcr r1 /* instruction cache */
544 544
545 addis r1,r0,0x0000 545 addis r1,r0,0x0000
546 addi r1,r1,0x0000 546 addi r1,r1,0x0000
547 mtdccr r1 /* data cache */ 547 mtdccr r1 /* data cache */
548 548
549 addis r1,r0,CFG_INIT_RAM_ADDR@h 549 addis r1,r0,CFG_INIT_RAM_ADDR@h
550 ori r1,r1,CFG_INIT_SP_OFFSET /* set up the stack to SDRAM */ 550 ori r1,r1,CFG_INIT_SP_OFFSET /* set up the stack to SDRAM */
551 li r0, 0 /* Make room for stack frame header and */ 551 li r0, 0 /* Make room for stack frame header and */
552 stwu r0, -4(r1) /* clear final stack frame so that */ 552 stwu r0, -4(r1) /* clear final stack frame so that */
553 stwu r0, -4(r1) /* stack backtraces terminate cleanly */ 553 stwu r0, -4(r1) /* stack backtraces terminate cleanly */
554 554
555 GET_GOT /* initialize GOT access */ 555 GET_GOT /* initialize GOT access */
556 556
557 bl board_init_f /* run first part of init code (from Flash) */ 557 bl board_init_f /* run first part of init code (from Flash) */
558 558
559 #endif /* CONFIG_IOP480 */ 559 #endif /* CONFIG_IOP480 */
560 560
561 /*****************************************************************************/ 561 /*****************************************************************************/
562 #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || defined(CONFIG_405) || defined(CONFIG_405EP) 562 #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || defined(CONFIG_405) || defined(CONFIG_405EP)
563 /*----------------------------------------------------------------------- */ 563 /*----------------------------------------------------------------------- */
564 /* Clear and set up some registers. */ 564 /* Clear and set up some registers. */
565 /*----------------------------------------------------------------------- */ 565 /*----------------------------------------------------------------------- */
566 addi r4,r0,0x0000 566 addi r4,r0,0x0000
567 mtspr sgr,r4 567 mtspr sgr,r4
568 mtspr dcwr,r4 568 mtspr dcwr,r4
569 mtesr r4 /* clear Exception Syndrome Reg */ 569 mtesr r4 /* clear Exception Syndrome Reg */
570 mttcr r4 /* clear Timer Control Reg */ 570 mttcr r4 /* clear Timer Control Reg */
571 mtxer r4 /* clear Fixed-Point Exception Reg */ 571 mtxer r4 /* clear Fixed-Point Exception Reg */
572 mtevpr r4 /* clear Exception Vector Prefix Reg */ 572 mtevpr r4 /* clear Exception Vector Prefix Reg */
573 addi r4,r0,0x1000 /* set ME bit (Machine Exceptions) */ 573 addi r4,r0,0x1000 /* set ME bit (Machine Exceptions) */
574 oris r4,r4,0x0002 /* set CE bit (Critical Exceptions) */ 574 oris r4,r4,0x0002 /* set CE bit (Critical Exceptions) */
575 mtmsr r4 /* change MSR */ 575 mtmsr r4 /* change MSR */
576 addi r4,r0,(0xFFFF-0x10000) /* set r4 to 0xFFFFFFFF (status in the */ 576 addi r4,r0,(0xFFFF-0x10000) /* set r4 to 0xFFFFFFFF (status in the */
577 /* dbsr is cleared by setting bits to 1) */ 577 /* dbsr is cleared by setting bits to 1) */
578 mtdbsr r4 /* clear/reset the dbsr */ 578 mtdbsr r4 /* clear/reset the dbsr */
579 579
580 /*----------------------------------------------------------------------- */ 580 /*----------------------------------------------------------------------- */
581 /* Invalidate I and D caches. Enable I cache for defined memory regions */ 581 /* Invalidate I and D caches. Enable I cache for defined memory regions */
582 /* to speed things up. Leave the D cache disabled for now. It will be */ 582 /* to speed things up. Leave the D cache disabled for now. It will be */
583 /* enabled/left disabled later based on user selected menu options. */ 583 /* enabled/left disabled later based on user selected menu options. */
584 /* Be aware that the I cache may be disabled later based on the menu */ 584 /* Be aware that the I cache may be disabled later based on the menu */
585 /* options as well. See miscLib/main.c. */ 585 /* options as well. See miscLib/main.c. */
586 /*----------------------------------------------------------------------- */ 586 /*----------------------------------------------------------------------- */
587 bl invalidate_icache 587 bl invalidate_icache
588 bl invalidate_dcache 588 bl invalidate_dcache
589 589
590 /*----------------------------------------------------------------------- */ 590 /*----------------------------------------------------------------------- */
591 /* Enable two 128MB cachable regions. */ 591 /* Enable two 128MB cachable regions. */
592 /*----------------------------------------------------------------------- */ 592 /*----------------------------------------------------------------------- */
593 addis r4,r0,0x8000 593 addis r4,r0,0x8000
594 addi r4,r4,0x0001 594 addi r4,r4,0x0001
595 mticcr r4 /* instruction cache */ 595 mticcr r4 /* instruction cache */
596 isync 596 isync
597 597
598 addis r4,r0,0x0000 598 addis r4,r0,0x0000
599 addi r4,r4,0x0000 599 addi r4,r4,0x0000
600 mtdccr r4 /* data cache */ 600 mtdccr r4 /* data cache */
601 601
602 #if !(defined(CFG_EBC_PB0AP) && defined(CFG_EBC_PB0CR)) 602 #if !(defined(CFG_EBC_PB0AP) && defined(CFG_EBC_PB0CR))
603 /*----------------------------------------------------------------------- */ 603 /*----------------------------------------------------------------------- */
604 /* Tune the speed and size for flash CS0 */ 604 /* Tune the speed and size for flash CS0 */
605 /*----------------------------------------------------------------------- */ 605 /*----------------------------------------------------------------------- */
606 bl ext_bus_cntlr_init 606 bl ext_bus_cntlr_init
607 #endif 607 #endif
608 608
609 #if defined(CONFIG_405EP) 609 #if defined(CONFIG_405EP)
610 /*----------------------------------------------------------------------- */ 610 /*----------------------------------------------------------------------- */
611 /* DMA Status, clear to come up clean */ 611 /* DMA Status, clear to come up clean */
612 /*----------------------------------------------------------------------- */ 612 /*----------------------------------------------------------------------- */
613 addis r3,r0, 0xFFFF /* Clear all existing DMA status */ 613 addis r3,r0, 0xFFFF /* Clear all existing DMA status */
614 ori r3,r3, 0xFFFF 614 ori r3,r3, 0xFFFF
615 mtdcr dmasr, r3 615 mtdcr dmasr, r3
616 616
617 bl ppc405ep_init /* do ppc405ep specific init */ 617 bl ppc405ep_init /* do ppc405ep specific init */
618 #endif /* CONFIG_405EP */ 618 #endif /* CONFIG_405EP */
619 619
620 #if defined(CFG_OCM_DATA_ADDR) && defined(CFG_OCM_DATA_SIZE) 620 #if defined(CFG_OCM_DATA_ADDR) && defined(CFG_OCM_DATA_SIZE)
621 /******************************************************************** 621 /********************************************************************
622 * Setup OCM - On Chip Memory 622 * Setup OCM - On Chip Memory
623 *******************************************************************/ 623 *******************************************************************/
624 /* Setup OCM */ 624 /* Setup OCM */
625 lis r0, 0x7FFF 625 lis r0, 0x7FFF
626 ori r0, r0, 0xFFFF 626 ori r0, r0, 0xFFFF
627 mfdcr r3, ocmiscntl /* get instr-side IRAM config */ 627 mfdcr r3, ocmiscntl /* get instr-side IRAM config */
628 mfdcr r4, ocmdscntl /* get data-side IRAM config */ 628 mfdcr r4, ocmdscntl /* get data-side IRAM config */
629 and r3, r3, r0 /* disable data-side IRAM */ 629 and r3, r3, r0 /* disable data-side IRAM */
630 and r4, r4, r0 /* disable data-side IRAM */ 630 and r4, r4, r0 /* disable data-side IRAM */
631 mtdcr ocmiscntl, r3 /* set instr-side IRAM config */ 631 mtdcr ocmiscntl, r3 /* set instr-side IRAM config */
632 mtdcr ocmdscntl, r4 /* set data-side IRAM config */ 632 mtdcr ocmdscntl, r4 /* set data-side IRAM config */
633 isync 633 isync
634 634
635 addis r3, 0, CFG_OCM_DATA_ADDR@h /* OCM location */ 635 addis r3, 0, CFG_OCM_DATA_ADDR@h /* OCM location */
636 mtdcr ocmdsarc, r3 636 mtdcr ocmdsarc, r3
637 addis r4, 0, 0xC000 /* OCM data area enabled */ 637 addis r4, 0, 0xC000 /* OCM data area enabled */
638 mtdcr ocmdscntl, r4 638 mtdcr ocmdscntl, r4
639 isync 639 isync
640 #endif 640 #endif
641 641
642 /*----------------------------------------------------------------------- */ 642 /*----------------------------------------------------------------------- */
643 /* Setup temporary stack in DCACHE or OCM if needed for SDRAM SPD. */ 643 /* Setup temporary stack in DCACHE or OCM if needed for SDRAM SPD. */
644 /*----------------------------------------------------------------------- */ 644 /*----------------------------------------------------------------------- */
645 #ifdef CFG_INIT_DCACHE_CS 645 #ifdef CFG_INIT_DCACHE_CS
646 /*----------------------------------------------------------------------- */ 646 /*----------------------------------------------------------------------- */
647 /* Memory Bank x (nothingness) initialization 1GB+64MEG */ 647 /* Memory Bank x (nothingness) initialization 1GB+64MEG */
648 /* used as temporary stack pointer for stage0 */ 648 /* used as temporary stack pointer for stage0 */
649 /*----------------------------------------------------------------------- */ 649 /*----------------------------------------------------------------------- */
650 li r4,PBxAP 650 li r4,PBxAP
651 mtdcr ebccfga,r4 651 mtdcr ebccfga,r4
652 lis r4,0x0380 652 lis r4,0x0380
653 ori r4,r4,0x0480 653 ori r4,r4,0x0480
654 mtdcr ebccfgd,r4 654 mtdcr ebccfgd,r4
655 655
656 addi r4,0,PBxCR 656 addi r4,0,PBxCR
657 mtdcr ebccfga,r4 657 mtdcr ebccfga,r4
658 lis r4,0x400D 658 lis r4,0x400D
659 ori r4,r4,0xa000 659 ori r4,r4,0xa000
660 mtdcr ebccfgd,r4 660 mtdcr ebccfgd,r4
661 661
662 /* turn on data chache for this region */ 662 /* turn on data chache for this region */
663 lis r4,0x0080 663 lis r4,0x0080
664 mtdccr r4 664 mtdccr r4
665 665
666 /* set stack pointer and clear stack to known value */ 666 /* set stack pointer and clear stack to known value */
667 667
668 lis r1,CFG_INIT_RAM_ADDR@h 668 lis r1,CFG_INIT_RAM_ADDR@h
669 ori r1,r1,CFG_INIT_SP_OFFSET@l 669 ori r1,r1,CFG_INIT_SP_OFFSET@l
670 670
671 li r4,2048 /* we store 2048 words to stack */ 671 li r4,2048 /* we store 2048 words to stack */
672 mtctr r4 672 mtctr r4
673 673
674 lis r2,CFG_INIT_RAM_ADDR@h /* we also clear data area */ 674 lis r2,CFG_INIT_RAM_ADDR@h /* we also clear data area */
675 ori r2,r2,CFG_INIT_RAM_END@l /* so cant copy value from r1 */ 675 ori r2,r2,CFG_INIT_RAM_END@l /* so cant copy value from r1 */
676 676
677 lis r4,0xdead /* we store 0xdeaddead in the stack */ 677 lis r4,0xdead /* we store 0xdeaddead in the stack */
678 ori r4,r4,0xdead 678 ori r4,r4,0xdead
679 679
680 ..stackloop: 680 ..stackloop:
681 stwu r4,-4(r2) 681 stwu r4,-4(r2)
682 bdnz ..stackloop 682 bdnz ..stackloop
683 683
684 li r0, 0 /* Make room for stack frame header and */ 684 li r0, 0 /* Make room for stack frame header and */
685 stwu r0, -4(r1) /* clear final stack frame so that */ 685 stwu r0, -4(r1) /* clear final stack frame so that */
686 stwu r0, -4(r1) /* stack backtraces terminate cleanly */ 686 stwu r0, -4(r1) /* stack backtraces terminate cleanly */
687 /* 687 /*
688 * Set up a dummy frame to store reset vector as return address. 688 * Set up a dummy frame to store reset vector as return address.
689 * this causes stack underflow to reset board. 689 * this causes stack underflow to reset board.
690 */ 690 */
691 stwu r1, -8(r1) /* Save back chain and move SP */ 691 stwu r1, -8(r1) /* Save back chain and move SP */
692 addis r0, 0, RESET_VECTOR@h /* Address of reset vector */ 692 addis r0, 0, RESET_VECTOR@h /* Address of reset vector */
693 ori r0, r0, RESET_VECTOR@l 693 ori r0, r0, RESET_VECTOR@l
694 stwu r1, -8(r1) /* Save back chain and move SP */ 694 stwu r1, -8(r1) /* Save back chain and move SP */
695 stw r0, +12(r1) /* Save return addr (underflow vect) */ 695 stw r0, +12(r1) /* Save return addr (underflow vect) */
696 696
697 #elif defined(CFG_TEMP_STACK_OCM) && \ 697 #elif defined(CFG_TEMP_STACK_OCM) && \
698 (defined(CFG_OCM_DATA_ADDR) && defined(CFG_OCM_DATA_SIZE)) 698 (defined(CFG_OCM_DATA_ADDR) && defined(CFG_OCM_DATA_SIZE))
699 /* 699 /*
700 * Stack in OCM. 700 * Stack in OCM.
701 */ 701 */
702 702
703 /* Set up Stack at top of OCM */ 703 /* Set up Stack at top of OCM */
704 lis r1, (CFG_INIT_RAM_ADDR + CFG_INIT_SP_OFFSET)@h 704 lis r1, (CFG_INIT_RAM_ADDR + CFG_INIT_SP_OFFSET)@h
705 ori r1, r1, (CFG_INIT_RAM_ADDR + CFG_INIT_SP_OFFSET)@l 705 ori r1, r1, (CFG_INIT_RAM_ADDR + CFG_INIT_SP_OFFSET)@l
706 706
707 /* Set up a zeroized stack frame so that backtrace works right */ 707 /* Set up a zeroized stack frame so that backtrace works right */
708 li r0, 0 708 li r0, 0
709 stwu r0, -4(r1) 709 stwu r0, -4(r1)
710 stwu r0, -4(r1) 710 stwu r0, -4(r1)
711 711
712 /* 712 /*
713 * Set up a dummy frame to store reset vector as return address. 713 * Set up a dummy frame to store reset vector as return address.
714 * this causes stack underflow to reset board. 714 * this causes stack underflow to reset board.
715 */ 715 */
716 stwu r1, -8(r1) /* Save back chain and move SP */ 716 stwu r1, -8(r1) /* Save back chain and move SP */
717 lis r0, RESET_VECTOR@h /* Address of reset vector */ 717 lis r0, RESET_VECTOR@h /* Address of reset vector */
718 ori r0, r0, RESET_VECTOR@l 718 ori r0, r0, RESET_VECTOR@l
719 stwu r1, -8(r1) /* Save back chain and move SP */ 719 stwu r1, -8(r1) /* Save back chain and move SP */
720 stw r0, +12(r1) /* Save return addr (underflow vect) */ 720 stw r0, +12(r1) /* Save return addr (underflow vect) */
721 #endif /* CFG_INIT_DCACHE_CS */ 721 #endif /* CFG_INIT_DCACHE_CS */
722 722
723 /*----------------------------------------------------------------------- */ 723 /*----------------------------------------------------------------------- */
724 /* Initialize SDRAM Controller */ 724 /* Initialize SDRAM Controller */
725 /*----------------------------------------------------------------------- */ 725 /*----------------------------------------------------------------------- */
726 bl sdram_init 726 bl sdram_init
727 727
728 /* 728 /*
729 * Setup temporary stack pointer only for boards 729 * Setup temporary stack pointer only for boards
730 * that do not use SDRAM SPD I2C stuff since it 730 * that do not use SDRAM SPD I2C stuff since it
731 * is already initialized to use DCACHE or OCM 731 * is already initialized to use DCACHE or OCM
732 * stacks. 732 * stacks.
733 */ 733 */
734 #if !(defined(CFG_INIT_DCACHE_CS) || defined(CFG_TEMP_STACK_OCM)) 734 #if !(defined(CFG_INIT_DCACHE_CS) || defined(CFG_TEMP_STACK_OCM))
735 lis r1, CFG_INIT_RAM_ADDR@h 735 lis r1, CFG_INIT_RAM_ADDR@h
736 ori r1,r1,CFG_INIT_SP_OFFSET /* set up the stack in SDRAM */ 736 ori r1,r1,CFG_INIT_SP_OFFSET /* set up the stack in SDRAM */
737 737
738 li r0, 0 /* Make room for stack frame header and */ 738 li r0, 0 /* Make room for stack frame header and */
739 stwu r0, -4(r1) /* clear final stack frame so that */ 739 stwu r0, -4(r1) /* clear final stack frame so that */
740 stwu r0, -4(r1) /* stack backtraces terminate cleanly */ 740 stwu r0, -4(r1) /* stack backtraces terminate cleanly */
741 /* 741 /*
742 * Set up a dummy frame to store reset vector as return address. 742 * Set up a dummy frame to store reset vector as return address.
743 * this causes stack underflow to reset board. 743 * this causes stack underflow to reset board.
744 */ 744 */
745 stwu r1, -8(r1) /* Save back chain and move SP */ 745 stwu r1, -8(r1) /* Save back chain and move SP */
746 lis r0, RESET_VECTOR@h /* Address of reset vector */ 746 lis r0, RESET_VECTOR@h /* Address of reset vector */
747 ori r0, r0, RESET_VECTOR@l 747 ori r0, r0, RESET_VECTOR@l
748 stwu r1, -8(r1) /* Save back chain and move SP */ 748 stwu r1, -8(r1) /* Save back chain and move SP */
749 stw r0, +12(r1) /* Save return addr (underflow vect) */ 749 stw r0, +12(r1) /* Save return addr (underflow vect) */
750 #endif /* !(CFG_INIT_DCACHE_CS || !CFG_TEM_STACK_OCM) */ 750 #endif /* !(CFG_INIT_DCACHE_CS || !CFG_TEM_STACK_OCM) */
751 751
752 GET_GOT /* initialize GOT access */ 752 GET_GOT /* initialize GOT access */
753 753
754 bl cpu_init_f /* run low-level CPU init code (from Flash) */ 754 bl cpu_init_f /* run low-level CPU init code (from Flash) */
755 755
756 /* NEVER RETURNS! */ 756 /* NEVER RETURNS! */
757 bl board_init_f /* run first part of init code (from Flash) */ 757 bl board_init_f /* run first part of init code (from Flash) */
758 758
759 #endif /* CONFIG_405GP || CONFIG_405CR || CONFIG_405 || CONFIG_405EP */ 759 #endif /* CONFIG_405GP || CONFIG_405CR || CONFIG_405 || CONFIG_405EP */
760 /*----------------------------------------------------------------------- */ 760 /*----------------------------------------------------------------------- */
761 761
762 762
763 /*****************************************************************************/ 763 /*****************************************************************************/
764 .globl _start_of_vectors 764 .globl _start_of_vectors
765 _start_of_vectors: 765 _start_of_vectors:
766 766
767 #if 0 767 #if 0
768 /*TODO Fixup _start above so we can do this*/ 768 /*TODO Fixup _start above so we can do this*/
769 /* Critical input. */ 769 /* Critical input. */
770 CRIT_EXCEPTION(0x100, CritcalInput, CritcalInputException) 770 CRIT_EXCEPTION(0x100, CritcalInput, CritcalInputException)
771 #endif 771 #endif
772 772
773 /* Machine check */ 773 /* Machine check */
774 CRIT_EXCEPTION(0x200, MachineCheck, MachineCheckException) 774 CRIT_EXCEPTION(0x200, MachineCheck, MachineCheckException)
775 775
776 /* Data Storage exception. */ 776 /* Data Storage exception. */
777 STD_EXCEPTION(0x300, DataStorage, UnknownException) 777 STD_EXCEPTION(0x300, DataStorage, UnknownException)
778 778
779 /* Instruction Storage exception. */ 779 /* Instruction Storage exception. */
780 STD_EXCEPTION(0x400, InstStorage, UnknownException) 780 STD_EXCEPTION(0x400, InstStorage, UnknownException)
781 781
782 /* External Interrupt exception. */ 782 /* External Interrupt exception. */
783 STD_EXCEPTION(0x500, ExtInterrupt, external_interrupt) 783 STD_EXCEPTION(0x500, ExtInterrupt, external_interrupt)
784 784
785 /* Alignment exception. */ 785 /* Alignment exception. */
786 . = 0x600 786 . = 0x600
787 Alignment: 787 Alignment:
788 EXCEPTION_PROLOG 788 EXCEPTION_PROLOG
789 mfspr r4,DAR 789 mfspr r4,DAR
790 stw r4,_DAR(r21) 790 stw r4,_DAR(r21)
791 mfspr r5,DSISR 791 mfspr r5,DSISR
792 stw r5,_DSISR(r21) 792 stw r5,_DSISR(r21)
793 addi r3,r1,STACK_FRAME_OVERHEAD 793 addi r3,r1,STACK_FRAME_OVERHEAD
794 li r20,MSR_KERNEL 794 li r20,MSR_KERNEL
795 rlwimi r20,r23,0,16,16 /* copy EE bit from saved MSR */ 795 rlwimi r20,r23,0,16,16 /* copy EE bit from saved MSR */
796 lwz r6,GOT(transfer_to_handler) 796 lwz r6,GOT(transfer_to_handler)
797 mtlr r6 797 mtlr r6
798 blrl 798 blrl
799 .L_Alignment: 799 .L_Alignment:
800 .long AlignmentException - _start + EXC_OFF_SYS_RESET 800 .long AlignmentException - _start + EXC_OFF_SYS_RESET
801 .long int_return - _start + EXC_OFF_SYS_RESET 801 .long int_return - _start + EXC_OFF_SYS_RESET
802 802
803 /* Program check exception */ 803 /* Program check exception */
804 . = 0x700 804 . = 0x700
805 ProgramCheck: 805 ProgramCheck:
806 EXCEPTION_PROLOG 806 EXCEPTION_PROLOG
807 addi r3,r1,STACK_FRAME_OVERHEAD 807 addi r3,r1,STACK_FRAME_OVERHEAD
808 li r20,MSR_KERNEL 808 li r20,MSR_KERNEL
809 rlwimi r20,r23,0,16,16 /* copy EE bit from saved MSR */ 809 rlwimi r20,r23,0,16,16 /* copy EE bit from saved MSR */
810 lwz r6,GOT(transfer_to_handler) 810 lwz r6,GOT(transfer_to_handler)
811 mtlr r6 811 mtlr r6
812 blrl 812 blrl
813 .L_ProgramCheck: 813 .L_ProgramCheck:
814 .long ProgramCheckException - _start + EXC_OFF_SYS_RESET 814 .long ProgramCheckException - _start + EXC_OFF_SYS_RESET
815 .long int_return - _start + EXC_OFF_SYS_RESET 815 .long int_return - _start + EXC_OFF_SYS_RESET
816 816
817 /* No FPU on MPC8xx. This exception is not supposed to happen. 817 /* No FPU on MPC8xx. This exception is not supposed to happen.
818 */ 818 */
819 STD_EXCEPTION(0x800, FPUnavailable, UnknownException) 819 STD_EXCEPTION(0x800, FPUnavailable, UnknownException)
820 820
821 /* I guess we could implement decrementer, and may have 821 /* I guess we could implement decrementer, and may have
822 * to someday for timekeeping. 822 * to someday for timekeeping.
823 */ 823 */
824 STD_EXCEPTION(0x900, Decrementer, timer_interrupt) 824 STD_EXCEPTION(0x900, Decrementer, timer_interrupt)
825 STD_EXCEPTION(0xa00, Trap_0a, UnknownException) 825 STD_EXCEPTION(0xa00, Trap_0a, UnknownException)
826 STD_EXCEPTION(0xb00, Trap_0b, UnknownException) 826 STD_EXCEPTION(0xb00, Trap_0b, UnknownException)
827 STD_EXCEPTION(0xc00, SystemCall, UnknownException) 827 STD_EXCEPTION(0xc00, SystemCall, UnknownException)
828 STD_EXCEPTION(0xd00, SingleStep, UnknownException) 828 STD_EXCEPTION(0xd00, SingleStep, UnknownException)
829 829
830 STD_EXCEPTION(0xe00, Trap_0e, UnknownException) 830 STD_EXCEPTION(0xe00, Trap_0e, UnknownException)
831 STD_EXCEPTION(0xf00, Trap_0f, UnknownException) 831 STD_EXCEPTION(0xf00, Trap_0f, UnknownException)
832 832
833 /* On the MPC8xx, this is a software emulation interrupt. It occurs 833 /* On the MPC8xx, this is a software emulation interrupt. It occurs
834 * for all unimplemented and illegal instructions. 834 * for all unimplemented and illegal instructions.
835 */ 835 */
836 STD_EXCEPTION(0x1000, PIT, PITException) 836 STD_EXCEPTION(0x1000, PIT, PITException)
837 837
838 STD_EXCEPTION(0x1100, InstructionTLBMiss, UnknownException) 838 STD_EXCEPTION(0x1100, InstructionTLBMiss, UnknownException)
839 STD_EXCEPTION(0x1200, DataTLBMiss, UnknownException) 839 STD_EXCEPTION(0x1200, DataTLBMiss, UnknownException)
840 STD_EXCEPTION(0x1300, InstructionTLBError, UnknownException) 840 STD_EXCEPTION(0x1300, InstructionTLBError, UnknownException)
841 STD_EXCEPTION(0x1400, DataTLBError, UnknownException) 841 STD_EXCEPTION(0x1400, DataTLBError, UnknownException)
842 842
843 STD_EXCEPTION(0x1500, Reserved5, UnknownException) 843 STD_EXCEPTION(0x1500, Reserved5, UnknownException)
844 STD_EXCEPTION(0x1600, Reserved6, UnknownException) 844 STD_EXCEPTION(0x1600, Reserved6, UnknownException)
845 STD_EXCEPTION(0x1700, Reserved7, UnknownException) 845 STD_EXCEPTION(0x1700, Reserved7, UnknownException)
846 STD_EXCEPTION(0x1800, Reserved8, UnknownException) 846 STD_EXCEPTION(0x1800, Reserved8, UnknownException)
847 STD_EXCEPTION(0x1900, Reserved9, UnknownException) 847 STD_EXCEPTION(0x1900, Reserved9, UnknownException)
848 STD_EXCEPTION(0x1a00, ReservedA, UnknownException) 848 STD_EXCEPTION(0x1a00, ReservedA, UnknownException)
849 STD_EXCEPTION(0x1b00, ReservedB, UnknownException) 849 STD_EXCEPTION(0x1b00, ReservedB, UnknownException)
850 850
851 STD_EXCEPTION(0x1c00, DataBreakpoint, UnknownException) 851 STD_EXCEPTION(0x1c00, DataBreakpoint, UnknownException)
852 STD_EXCEPTION(0x1d00, InstructionBreakpoint, UnknownException) 852 STD_EXCEPTION(0x1d00, InstructionBreakpoint, UnknownException)
853 STD_EXCEPTION(0x1e00, PeripheralBreakpoint, UnknownException) 853 STD_EXCEPTION(0x1e00, PeripheralBreakpoint, UnknownException)
854 STD_EXCEPTION(0x1f00, DevPortBreakpoint, UnknownException) 854 STD_EXCEPTION(0x1f00, DevPortBreakpoint, UnknownException)
855 855
856 CRIT_EXCEPTION(0x2000, DebugBreakpoint, DebugException ) 856 CRIT_EXCEPTION(0x2000, DebugBreakpoint, DebugException )
857 857
858 .globl _end_of_vectors 858 .globl _end_of_vectors
859 _end_of_vectors: 859 _end_of_vectors:
860 860
861 861
862 . = 0x2100 862 . = 0x2100
863 863
864 /* 864 /*
865 * This code finishes saving the registers to the exception frame 865 * This code finishes saving the registers to the exception frame
866 * and jumps to the appropriate handler for the exception. 866 * and jumps to the appropriate handler for the exception.
867 * Register r21 is pointer into trap frame, r1 has new stack pointer. 867 * Register r21 is pointer into trap frame, r1 has new stack pointer.
868 */ 868 */
869 .globl transfer_to_handler 869 .globl transfer_to_handler
870 transfer_to_handler: 870 transfer_to_handler:
871 stw r22,_NIP(r21) 871 stw r22,_NIP(r21)
872 lis r22,MSR_POW@h 872 lis r22,MSR_POW@h
873 andc r23,r23,r22 873 andc r23,r23,r22
874 stw r23,_MSR(r21) 874 stw r23,_MSR(r21)
875 SAVE_GPR(7, r21) 875 SAVE_GPR(7, r21)
876 SAVE_4GPRS(8, r21) 876 SAVE_4GPRS(8, r21)
877 SAVE_8GPRS(12, r21) 877 SAVE_8GPRS(12, r21)
878 SAVE_8GPRS(24, r21) 878 SAVE_8GPRS(24, r21)
879 #if 0 879 #if 0
880 andi. r23,r23,MSR_PR 880 andi. r23,r23,MSR_PR
881 mfspr r23,SPRG3 /* if from user, fix up tss.regs */ 881 mfspr r23,SPRG3 /* if from user, fix up tss.regs */
882 beq 2f 882 beq 2f
883 addi r24,r1,STACK_FRAME_OVERHEAD 883 addi r24,r1,STACK_FRAME_OVERHEAD
884 stw r24,PT_REGS(r23) 884 stw r24,PT_REGS(r23)
885 2: addi r2,r23,-TSS /* set r2 to current */ 885 2: addi r2,r23,-TSS /* set r2 to current */
886 tovirt(r2,r2,r23) 886 tovirt(r2,r2,r23)
887 #endif 887 #endif
888 mflr r23 888 mflr r23
889 andi. r24,r23,0x3f00 /* get vector offset */ 889 andi. r24,r23,0x3f00 /* get vector offset */
890 stw r24,TRAP(r21) 890 stw r24,TRAP(r21)
891 li r22,0 891 li r22,0
892 stw r22,RESULT(r21) 892 stw r22,RESULT(r21)
893 mtspr SPRG2,r22 /* r1 is now kernel sp */ 893 mtspr SPRG2,r22 /* r1 is now kernel sp */
894 #if 0 894 #if 0
895 addi r24,r2,TASK_STRUCT_SIZE /* check for kernel stack overflow */ 895 addi r24,r2,TASK_STRUCT_SIZE /* check for kernel stack overflow */
896 cmplw 0,r1,r2 896 cmplw 0,r1,r2
897 cmplw 1,r1,r24 897 cmplw 1,r1,r24
898 crand 1,1,4 898 crand 1,1,4
899 bgt stack_ovf /* if r2 < r1 < r2+TASK_STRUCT_SIZE */ 899 bgt stack_ovf /* if r2 < r1 < r2+TASK_STRUCT_SIZE */
900 #endif 900 #endif
901 lwz r24,0(r23) /* virtual address of handler */ 901 lwz r24,0(r23) /* virtual address of handler */
902 lwz r23,4(r23) /* where to go when done */ 902 lwz r23,4(r23) /* where to go when done */
903 mtspr SRR0,r24 903 mtspr SRR0,r24
904 mtspr SRR1,r20 904 mtspr SRR1,r20
905 mtlr r23 905 mtlr r23
906 SYNC 906 SYNC
907 rfi /* jump to handler, enable MMU */ 907 rfi /* jump to handler, enable MMU */
908 908
909 int_return: 909 int_return:
910 mfmsr r28 /* Disable interrupts */ 910 mfmsr r28 /* Disable interrupts */
911 li r4,0 911 li r4,0
912 ori r4,r4,MSR_EE 912 ori r4,r4,MSR_EE
913 andc r28,r28,r4 913 andc r28,r28,r4
914 SYNC /* Some chip revs need this... */ 914 SYNC /* Some chip revs need this... */
915 mtmsr r28 915 mtmsr r28
916 SYNC 916 SYNC
917 lwz r2,_CTR(r1) 917 lwz r2,_CTR(r1)
918 lwz r0,_LINK(r1) 918 lwz r0,_LINK(r1)
919 mtctr r2 919 mtctr r2
920 mtlr r0 920 mtlr r0
921 lwz r2,_XER(r1) 921 lwz r2,_XER(r1)
922 lwz r0,_CCR(r1) 922 lwz r0,_CCR(r1)
923 mtspr XER,r2 923 mtspr XER,r2
924 mtcrf 0xFF,r0 924 mtcrf 0xFF,r0
925 REST_10GPRS(3, r1) 925 REST_10GPRS(3, r1)
926 REST_10GPRS(13, r1) 926 REST_10GPRS(13, r1)
927 REST_8GPRS(23, r1) 927 REST_8GPRS(23, r1)
928 REST_GPR(31, r1) 928 REST_GPR(31, r1)
929 lwz r2,_NIP(r1) /* Restore environment */ 929 lwz r2,_NIP(r1) /* Restore environment */
930 lwz r0,_MSR(r1) 930 lwz r0,_MSR(r1)
931 mtspr SRR0,r2 931 mtspr SRR0,r2
932 mtspr SRR1,r0 932 mtspr SRR1,r0
933 lwz r0,GPR0(r1) 933 lwz r0,GPR0(r1)
934 lwz r2,GPR2(r1) 934 lwz r2,GPR2(r1)
935 lwz r1,GPR1(r1) 935 lwz r1,GPR1(r1)
936 SYNC 936 SYNC
937 rfi 937 rfi
938 938
939 crit_return: 939 crit_return:
940 mfmsr r28 /* Disable interrupts */ 940 mfmsr r28 /* Disable interrupts */
941 li r4,0 941 li r4,0
942 ori r4,r4,MSR_EE 942 ori r4,r4,MSR_EE
943 andc r28,r28,r4 943 andc r28,r28,r4
944 SYNC /* Some chip revs need this... */ 944 SYNC /* Some chip revs need this... */
945 mtmsr r28 945 mtmsr r28
946 SYNC 946 SYNC
947 lwz r2,_CTR(r1) 947 lwz r2,_CTR(r1)
948 lwz r0,_LINK(r1) 948 lwz r0,_LINK(r1)
949 mtctr r2 949 mtctr r2
950 mtlr r0 950 mtlr r0
951 lwz r2,_XER(r1) 951 lwz r2,_XER(r1)
952 lwz r0,_CCR(r1) 952 lwz r0,_CCR(r1)
953 mtspr XER,r2 953 mtspr XER,r2
954 mtcrf 0xFF,r0 954 mtcrf 0xFF,r0
955 REST_10GPRS(3, r1) 955 REST_10GPRS(3, r1)
956 REST_10GPRS(13, r1) 956 REST_10GPRS(13, r1)
957 REST_8GPRS(23, r1) 957 REST_8GPRS(23, r1)
958 REST_GPR(31, r1) 958 REST_GPR(31, r1)
959 lwz r2,_NIP(r1) /* Restore environment */ 959 lwz r2,_NIP(r1) /* Restore environment */
960 lwz r0,_MSR(r1) 960 lwz r0,_MSR(r1)
961 mtspr 990,r2 /* SRR2 */ 961 mtspr 990,r2 /* SRR2 */
962 mtspr 991,r0 /* SRR3 */ 962 mtspr 991,r0 /* SRR3 */
963 lwz r0,GPR0(r1) 963 lwz r0,GPR0(r1)
964 lwz r2,GPR2(r1) 964 lwz r2,GPR2(r1)
965 lwz r1,GPR1(r1) 965 lwz r1,GPR1(r1)
966 SYNC 966 SYNC
967 rfci 967 rfci
968 968
969 /* Cache functions. 969 /* Cache functions.
970 */ 970 */
971 invalidate_icache: 971 invalidate_icache:
972 iccci r0,r0 /* for 405, iccci invalidates the */ 972 iccci r0,r0 /* for 405, iccci invalidates the */
973 blr /* entire I cache */ 973 blr /* entire I cache */
974 974
975 invalidate_dcache: 975 invalidate_dcache:
976 addi r6,0,0x0000 /* clear GPR 6 */ 976 addi r6,0,0x0000 /* clear GPR 6 */
977 /* Do loop for # of dcache congruence classes. */ 977 /* Do loop for # of dcache congruence classes. */
978 #if defined(CONFIG_440_GX) || defined(CONFIG_440_EP) || defined(CONFIG_440_GR) 978 #if defined(CONFIG_440_GX) || defined(CONFIG_440_EP) || defined(CONFIG_440_GR)
979 lis r7, (CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@ha /* TBS for large sized cache */ 979 lis r7, (CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@ha /* TBS for large sized cache */
980 ori r7, r7, (CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@l 980 ori r7, r7, (CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@l
981 #else 981 #else
982 addi r7,r0, (CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2) 982 addi r7,r0, (CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)
983 #endif 983 #endif
984 /* NOTE: dccci invalidates both */ 984 /* NOTE: dccci invalidates both */
985 mtctr r7 /* ways in the D cache */ 985 mtctr r7 /* ways in the D cache */
986 ..dcloop: 986 ..dcloop:
987 dccci 0,r6 /* invalidate line */ 987 dccci 0,r6 /* invalidate line */
988 addi r6,r6, CFG_CACHELINE_SIZE /* bump to next line */ 988 addi r6,r6, CFG_CACHELINE_SIZE /* bump to next line */
989 bdnz ..dcloop 989 bdnz ..dcloop
990 blr 990 blr
991 991
992 flush_dcache: 992 flush_dcache:
993 addis r9,r0,0x0002 /* set mask for EE and CE msr bits */ 993 addis r9,r0,0x0002 /* set mask for EE and CE msr bits */
994 ori r9,r9,0x8000 994 ori r9,r9,0x8000
995 mfmsr r12 /* save msr */ 995 mfmsr r12 /* save msr */
996 andc r9,r12,r9 996 andc r9,r12,r9
997 mtmsr r9 /* disable EE and CE */ 997 mtmsr r9 /* disable EE and CE */
998 addi r10,r0,0x0001 /* enable data cache for unused memory */ 998 addi r10,r0,0x0001 /* enable data cache for unused memory */
999 mfdccr r9 /* region 0xF8000000-0xFFFFFFFF via */ 999 mfdccr r9 /* region 0xF8000000-0xFFFFFFFF via */
1000 or r10,r10,r9 /* bit 31 in dccr */ 1000 or r10,r10,r9 /* bit 31 in dccr */
1001 mtdccr r10 1001 mtdccr r10
1002 1002
1003 /* do loop for # of congruence classes. */ 1003 /* do loop for # of congruence classes. */
1004 #if defined(CONFIG_440_GX) || defined(CONFIG_440_EP) || defined(CONFIG_440_GR) 1004 #if defined(CONFIG_440_GX) || defined(CONFIG_440_EP) || defined(CONFIG_440_GR)
1005 lis r10,(CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@ha /* TBS: for large cache sizes */ 1005 lis r10,(CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@ha /* TBS: for large cache sizes */
1006 ori r10,r10,(CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@l 1006 ori r10,r10,(CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)@l
1007 lis r11,(CFG_DCACHE_SIZE / 2)@ha /* D cache set size - 2 way sets */ 1007 lis r11,(CFG_DCACHE_SIZE / 2)@ha /* D cache set size - 2 way sets */
1008 ori r11,r11,(CFG_DCACHE_SIZE / 2)@l /* D cache set size - 2 way sets */ 1008 ori r11,r11,(CFG_DCACHE_SIZE / 2)@l /* D cache set size - 2 way sets */
1009 #else 1009 #else
1010 addi r10,r0,(CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2) 1010 addi r10,r0,(CFG_DCACHE_SIZE / CFG_CACHELINE_SIZE / 2)
1011 addi r11,r0,(CFG_DCACHE_SIZE / 2) /* D cache set size - 2 way sets */ 1011 addi r11,r0,(CFG_DCACHE_SIZE / 2) /* D cache set size - 2 way sets */
1012 #endif 1012 #endif
1013 mtctr r10 1013 mtctr r10
1014 addi r10,r0,(0xE000-0x10000) /* start at 0xFFFFE000 */ 1014 addi r10,r0,(0xE000-0x10000) /* start at 0xFFFFE000 */
1015 add r11,r10,r11 /* add to get to other side of cache line */ 1015 add r11,r10,r11 /* add to get to other side of cache line */
1016 ..flush_dcache_loop: 1016 ..flush_dcache_loop:
1017 lwz r3,0(r10) /* least recently used side */ 1017 lwz r3,0(r10) /* least recently used side */
1018 lwz r3,0(r11) /* the other side */ 1018 lwz r3,0(r11) /* the other side */
1019 dccci r0,r11 /* invalidate both sides */ 1019 dccci r0,r11 /* invalidate both sides */
1020 addi r10,r10,CFG_CACHELINE_SIZE /* bump to next line */ 1020 addi r10,r10,CFG_CACHELINE_SIZE /* bump to next line */
1021 addi r11,r11,CFG_CACHELINE_SIZE /* bump to next line */ 1021 addi r11,r11,CFG_CACHELINE_SIZE /* bump to next line */
1022 bdnz ..flush_dcache_loop 1022 bdnz ..flush_dcache_loop
1023 sync /* allow memory access to complete */ 1023 sync /* allow memory access to complete */
1024 mtdccr r9 /* restore dccr */ 1024 mtdccr r9 /* restore dccr */
1025 mtmsr r12 /* restore msr */ 1025 mtmsr r12 /* restore msr */
1026 blr 1026 blr
1027 1027
1028 .globl icache_enable 1028 .globl icache_enable
1029 icache_enable: 1029 icache_enable:
1030 mflr r8 1030 mflr r8
1031 bl invalidate_icache 1031 bl invalidate_icache
1032 mtlr r8 1032 mtlr r8
1033 isync 1033 isync
1034 addis r3,r0, 0x8000 /* set bit 0 */ 1034 addis r3,r0, 0x8000 /* set bit 0 */
1035 mticcr r3 1035 mticcr r3
1036 blr 1036 blr
1037 1037
1038 .globl icache_disable 1038 .globl icache_disable
1039 icache_disable: 1039 icache_disable:
1040 addis r3,r0, 0x0000 /* clear bit 0 */ 1040 addis r3,r0, 0x0000 /* clear bit 0 */
1041 mticcr r3 1041 mticcr r3
1042 isync 1042 isync
1043 blr 1043 blr
1044 1044
1045 .globl icache_status 1045 .globl icache_status
1046 icache_status: 1046 icache_status:
1047 mficcr r3 1047 mficcr r3
1048 srwi r3, r3, 31 /* >>31 => select bit 0 */ 1048 srwi r3, r3, 31 /* >>31 => select bit 0 */
1049 blr 1049 blr
1050 1050
1051 .globl dcache_enable 1051 .globl dcache_enable
1052 dcache_enable: 1052 dcache_enable:
1053 mflr r8 1053 mflr r8
1054 bl invalidate_dcache 1054 bl invalidate_dcache
1055 mtlr r8 1055 mtlr r8
1056 isync 1056 isync
1057 addis r3,r0, 0x8000 /* set bit 0 */ 1057 addis r3,r0, 0x8000 /* set bit 0 */
1058 mtdccr r3 1058 mtdccr r3
1059 blr 1059 blr
1060 1060
1061 .globl dcache_disable 1061 .globl dcache_disable
1062 dcache_disable: 1062 dcache_disable:
1063 mflr r8 1063 mflr r8
1064 bl flush_dcache 1064 bl flush_dcache
1065 mtlr r8 1065 mtlr r8
1066 addis r3,r0, 0x0000 /* clear bit 0 */ 1066 addis r3,r0, 0x0000 /* clear bit 0 */
1067 mtdccr r3 1067 mtdccr r3
1068 blr 1068 blr
1069 1069
1070 .globl dcache_status 1070 .globl dcache_status
1071 dcache_status: 1071 dcache_status:
1072 mfdccr r3 1072 mfdccr r3
1073 srwi r3, r3, 31 /* >>31 => select bit 0 */ 1073 srwi r3, r3, 31 /* >>31 => select bit 0 */
1074 blr 1074 blr
1075 1075
1076 .globl get_pvr 1076 .globl get_pvr
1077 get_pvr: 1077 get_pvr:
1078 mfspr r3, PVR 1078 mfspr r3, PVR
1079 blr 1079 blr
1080 1080
1081 #if !defined(CONFIG_440) 1081 #if !defined(CONFIG_440)
1082 .globl wr_pit 1082 .globl wr_pit
1083 wr_pit: 1083 wr_pit:
1084 mtspr pit, r3 1084 mtspr pit, r3
1085 blr 1085 blr
1086 #endif 1086 #endif
1087 1087
1088 .globl wr_tcr 1088 .globl wr_tcr
1089 wr_tcr: 1089 wr_tcr:
1090 mtspr tcr, r3 1090 mtspr tcr, r3
1091 blr 1091 blr
1092 1092
1093 /*------------------------------------------------------------------------------- */ 1093 /*------------------------------------------------------------------------------- */
1094 /* Function: in8 */ 1094 /* Function: in8 */
1095 /* Description: Input 8 bits */ 1095 /* Description: Input 8 bits */
1096 /*------------------------------------------------------------------------------- */ 1096 /*------------------------------------------------------------------------------- */
1097 .globl in8 1097 .globl in8
1098 in8: 1098 in8:
1099 lbz r3,0x0000(r3) 1099 lbz r3,0x0000(r3)
1100 blr 1100 blr
1101 1101
1102 /*------------------------------------------------------------------------------- */ 1102 /*------------------------------------------------------------------------------- */
1103 /* Function: out8 */ 1103 /* Function: out8 */
1104 /* Description: Output 8 bits */ 1104 /* Description: Output 8 bits */
1105 /*------------------------------------------------------------------------------- */ 1105 /*------------------------------------------------------------------------------- */
1106 .globl out8 1106 .globl out8
1107 out8: 1107 out8:
1108 stb r4,0x0000(r3) 1108 stb r4,0x0000(r3)
1109 blr 1109 blr
1110 1110
1111 /*------------------------------------------------------------------------------- */ 1111 /*------------------------------------------------------------------------------- */
1112 /* Function: out16 */ 1112 /* Function: out16 */
1113 /* Description: Output 16 bits */ 1113 /* Description: Output 16 bits */
1114 /*------------------------------------------------------------------------------- */ 1114 /*------------------------------------------------------------------------------- */
1115 .globl out16 1115 .globl out16
1116 out16: 1116 out16:
1117 sth r4,0x0000(r3) 1117 sth r4,0x0000(r3)
1118 blr 1118 blr
1119 1119
1120 /*------------------------------------------------------------------------------- */ 1120 /*------------------------------------------------------------------------------- */
1121 /* Function: out16r */ 1121 /* Function: out16r */
1122 /* Description: Byte reverse and output 16 bits */ 1122 /* Description: Byte reverse and output 16 bits */
1123 /*------------------------------------------------------------------------------- */ 1123 /*------------------------------------------------------------------------------- */
1124 .globl out16r 1124 .globl out16r
1125 out16r: 1125 out16r:
1126 sthbrx r4,r0,r3 1126 sthbrx r4,r0,r3
1127 blr 1127 blr
1128 1128
1129 /*------------------------------------------------------------------------------- */ 1129 /*------------------------------------------------------------------------------- */
1130 /* Function: out32 */ 1130 /* Function: out32 */
1131 /* Description: Output 32 bits */ 1131 /* Description: Output 32 bits */
1132 /*------------------------------------------------------------------------------- */ 1132 /*------------------------------------------------------------------------------- */
1133 .globl out32 1133 .globl out32
1134 out32: 1134 out32:
1135 stw r4,0x0000(r3) 1135 stw r4,0x0000(r3)
1136 blr 1136 blr
1137 1137
1138 /*------------------------------------------------------------------------------- */ 1138 /*------------------------------------------------------------------------------- */
1139 /* Function: out32r */ 1139 /* Function: out32r */
1140 /* Description: Byte reverse and output 32 bits */ 1140 /* Description: Byte reverse and output 32 bits */
1141 /*------------------------------------------------------------------------------- */ 1141 /*------------------------------------------------------------------------------- */
1142 .globl out32r 1142 .globl out32r
1143 out32r: 1143 out32r:
1144 stwbrx r4,r0,r3 1144 stwbrx r4,r0,r3
1145 blr 1145 blr
1146 1146
1147 /*------------------------------------------------------------------------------- */ 1147 /*------------------------------------------------------------------------------- */
1148 /* Function: in16 */ 1148 /* Function: in16 */
1149 /* Description: Input 16 bits */ 1149 /* Description: Input 16 bits */
1150 /*------------------------------------------------------------------------------- */ 1150 /*------------------------------------------------------------------------------- */
1151 .globl in16 1151 .globl in16
1152 in16: 1152 in16:
1153 lhz r3,0x0000(r3) 1153 lhz r3,0x0000(r3)
1154 blr 1154 blr
1155 1155
1156 /*------------------------------------------------------------------------------- */ 1156 /*------------------------------------------------------------------------------- */
1157 /* Function: in16r */ 1157 /* Function: in16r */
1158 /* Description: Input 16 bits and byte reverse */ 1158 /* Description: Input 16 bits and byte reverse */
1159 /*------------------------------------------------------------------------------- */ 1159 /*------------------------------------------------------------------------------- */
1160 .globl in16r 1160 .globl in16r
1161 in16r: 1161 in16r:
1162 lhbrx r3,r0,r3 1162 lhbrx r3,r0,r3
1163 blr 1163 blr
1164 1164
1165 /*------------------------------------------------------------------------------- */ 1165 /*------------------------------------------------------------------------------- */
1166 /* Function: in32 */ 1166 /* Function: in32 */
1167 /* Description: Input 32 bits */ 1167 /* Description: Input 32 bits */
1168 /*------------------------------------------------------------------------------- */ 1168 /*------------------------------------------------------------------------------- */
1169 .globl in32 1169 .globl in32
1170 in32: 1170 in32:
1171 lwz 3,0x0000(3) 1171 lwz 3,0x0000(3)
1172 blr 1172 blr
1173 1173
1174 /*------------------------------------------------------------------------------- */ 1174 /*------------------------------------------------------------------------------- */
1175 /* Function: in32r */ 1175 /* Function: in32r */
1176 /* Description: Input 32 bits and byte reverse */ 1176 /* Description: Input 32 bits and byte reverse */
1177 /*------------------------------------------------------------------------------- */ 1177 /*------------------------------------------------------------------------------- */
1178 .globl in32r 1178 .globl in32r
1179 in32r: 1179 in32r:
1180 lwbrx r3,r0,r3 1180 lwbrx r3,r0,r3
1181 blr 1181 blr
1182 1182
1183 /*------------------------------------------------------------------------------- */ 1183 /*------------------------------------------------------------------------------- */
1184 /* Function: ppcDcbf */ 1184 /* Function: ppcDcbf */
1185 /* Description: Data Cache block flush */ 1185 /* Description: Data Cache block flush */
1186 /* Input: r3 = effective address */ 1186 /* Input: r3 = effective address */
1187 /* Output: none. */ 1187 /* Output: none. */
1188 /*------------------------------------------------------------------------------- */ 1188 /*------------------------------------------------------------------------------- */
1189 .globl ppcDcbf 1189 .globl ppcDcbf
1190 ppcDcbf: 1190 ppcDcbf:
1191 dcbf r0,r3 1191 dcbf r0,r3
1192 blr 1192 blr
1193 1193
1194 /*------------------------------------------------------------------------------- */ 1194 /*------------------------------------------------------------------------------- */
1195 /* Function: ppcDcbi */ 1195 /* Function: ppcDcbi */
1196 /* Description: Data Cache block Invalidate */ 1196 /* Description: Data Cache block Invalidate */
1197 /* Input: r3 = effective address */ 1197 /* Input: r3 = effective address */
1198 /* Output: none. */ 1198 /* Output: none. */
1199 /*------------------------------------------------------------------------------- */ 1199 /*------------------------------------------------------------------------------- */
1200 .globl ppcDcbi 1200 .globl ppcDcbi
1201 ppcDcbi: 1201 ppcDcbi:
1202 dcbi r0,r3 1202 dcbi r0,r3
1203 blr 1203 blr
1204 1204
1205 /*------------------------------------------------------------------------------- */ 1205 /*------------------------------------------------------------------------------- */
1206 /* Function: ppcSync */ 1206 /* Function: ppcSync */
1207 /* Description: Processor Synchronize */ 1207 /* Description: Processor Synchronize */
1208 /* Input: none. */ 1208 /* Input: none. */
1209 /* Output: none. */ 1209 /* Output: none. */
1210 /*------------------------------------------------------------------------------- */ 1210 /*------------------------------------------------------------------------------- */
1211 .globl ppcSync 1211 .globl ppcSync
1212 ppcSync: 1212 ppcSync:
1213 sync 1213 sync
1214 blr 1214 blr
1215 1215
1216 /*------------------------------------------------------------------------------*/ 1216 /*------------------------------------------------------------------------------*/
1217 1217
1218 /* 1218 /*
1219 * void relocate_code (addr_sp, gd, addr_moni) 1219 * void relocate_code (addr_sp, gd, addr_moni)
1220 * 1220 *
1221 * This "function" does not return, instead it continues in RAM 1221 * This "function" does not return, instead it continues in RAM
1222 * after relocating the monitor code. 1222 * after relocating the monitor code.
1223 * 1223 *
1224 * r3 = dest 1224 * r3 = dest
1225 * r4 = src 1225 * r4 = src
1226 * r5 = length in bytes 1226 * r5 = length in bytes
1227 * r6 = cachelinesize 1227 * r6 = cachelinesize
1228 */ 1228 */
1229 .globl relocate_code 1229 .globl relocate_code
1230 relocate_code: 1230 relocate_code:
1231 #if defined(CONFIG_440_EP) || defined(CONFIG_440_GR) 1231 #if defined(CONFIG_440_EP) || defined(CONFIG_440_GR)
1232 dccci 0,0 /* Invalidate data cache, now no longer our stack */ 1232 dccci 0,0 /* Invalidate data cache, now no longer our stack */
1233 sync 1233 sync
1234 addi r1,r0,0x0000 /* Tlb entry #0 */ 1234 addi r1,r0,0x0000 /* Tlb entry #0 */
1235 tlbre r0,r1,0x0002 /* Read contents */ 1235 tlbre r0,r1,0x0002 /* Read contents */
1236 ori r0,r0,0x0c00 /* Or in the inhibit, write through bit */ 1236 ori r0,r0,0x0c00 /* Or in the inhibit, write through bit */
1237 tlbwe r0,r1,0x0002 /* Save it out */ 1237 tlbwe r0,r1,0x0002 /* Save it out */
1238 isync 1238 isync
1239 #endif 1239 #endif
1240 mr r1, r3 /* Set new stack pointer */ 1240 mr r1, r3 /* Set new stack pointer */
1241 mr r9, r4 /* Save copy of Init Data pointer */ 1241 mr r9, r4 /* Save copy of Init Data pointer */
1242 mr r10, r5 /* Save copy of Destination Address */ 1242 mr r10, r5 /* Save copy of Destination Address */
1243 1243
1244 mr r3, r5 /* Destination Address */ 1244 mr r3, r5 /* Destination Address */
1245 lis r4, CFG_MONITOR_BASE@h /* Source Address */ 1245 lis r4, CFG_MONITOR_BASE@h /* Source Address */
1246 ori r4, r4, CFG_MONITOR_BASE@l 1246 ori r4, r4, CFG_MONITOR_BASE@l
1247 lwz r5, GOT(__init_end) 1247 lwz r5, GOT(__init_end)
1248 sub r5, r5, r4 1248 sub r5, r5, r4
1249 li r6, CFG_CACHELINE_SIZE /* Cache Line Size */ 1249 li r6, CFG_CACHELINE_SIZE /* Cache Line Size */
1250 1250
1251 /* 1251 /*
1252 * Fix GOT pointer: 1252 * Fix GOT pointer:
1253 * 1253 *
1254 * New GOT-PTR = (old GOT-PTR - CFG_MONITOR_BASE) + Destination Address 1254 * New GOT-PTR = (old GOT-PTR - CFG_MONITOR_BASE) + Destination Address
1255 * 1255 *
1256 * Offset: 1256 * Offset:
1257 */ 1257 */
1258 sub r15, r10, r4 1258 sub r15, r10, r4
1259 1259
1260 /* First our own GOT */ 1260 /* First our own GOT */
1261 add r14, r14, r15 1261 add r14, r14, r15
1262 /* the the one used by the C code */ 1262 /* the the one used by the C code */
1263 add r30, r30, r15 1263 add r30, r30, r15
1264 1264
1265 /* 1265 /*
1266 * Now relocate code 1266 * Now relocate code
1267 */ 1267 */
1268 1268
1269 cmplw cr1,r3,r4 1269 cmplw cr1,r3,r4
1270 addi r0,r5,3 1270 addi r0,r5,3
1271 srwi. r0,r0,2 1271 srwi. r0,r0,2
1272 beq cr1,4f /* In place copy is not necessary */ 1272 beq cr1,4f /* In place copy is not necessary */
1273 beq 7f /* Protect against 0 count */ 1273 beq 7f /* Protect against 0 count */
1274 mtctr r0 1274 mtctr r0
1275 bge cr1,2f 1275 bge cr1,2f
1276 1276
1277 la r8,-4(r4) 1277 la r8,-4(r4)
1278 la r7,-4(r3) 1278 la r7,-4(r3)
1279 1: lwzu r0,4(r8) 1279 1: lwzu r0,4(r8)
1280 stwu r0,4(r7) 1280 stwu r0,4(r7)
1281 bdnz 1b 1281 bdnz 1b
1282 b 4f 1282 b 4f
1283 1283
1284 2: slwi r0,r0,2 1284 2: slwi r0,r0,2
1285 add r8,r4,r0 1285 add r8,r4,r0
1286 add r7,r3,r0 1286 add r7,r3,r0
1287 3: lwzu r0,-4(r8) 1287 3: lwzu r0,-4(r8)
1288 stwu r0,-4(r7) 1288 stwu r0,-4(r7)
1289 bdnz 3b 1289 bdnz 3b
1290 1290
1291 /* 1291 /*
1292 * Now flush the cache: note that we must start from a cache aligned 1292 * Now flush the cache: note that we must start from a cache aligned
1293 * address. Otherwise we might miss one cache line. 1293 * address. Otherwise we might miss one cache line.
1294 */ 1294 */
1295 4: cmpwi r6,0 1295 4: cmpwi r6,0
1296 add r5,r3,r5 1296 add r5,r3,r5
1297 beq 7f /* Always flush prefetch queue in any case */ 1297 beq 7f /* Always flush prefetch queue in any case */
1298 subi r0,r6,1 1298 subi r0,r6,1
1299 andc r3,r3,r0 1299 andc r3,r3,r0
1300 mr r4,r3 1300 mr r4,r3
1301 5: dcbst 0,r4 1301 5: dcbst 0,r4
1302 add r4,r4,r6 1302 add r4,r4,r6
1303 cmplw r4,r5 1303 cmplw r4,r5
1304 blt 5b 1304 blt 5b
1305 sync /* Wait for all dcbst to complete on bus */ 1305 sync /* Wait for all dcbst to complete on bus */
1306 mr r4,r3 1306 mr r4,r3
1307 6: icbi 0,r4 1307 6: icbi 0,r4
1308 add r4,r4,r6 1308 add r4,r4,r6
1309 cmplw r4,r5 1309 cmplw r4,r5
1310 blt 6b 1310 blt 6b
1311 7: sync /* Wait for all icbi to complete on bus */ 1311 7: sync /* Wait for all icbi to complete on bus */
1312 isync 1312 isync
1313 1313
1314 /* 1314 /*
1315 * We are done. Do not return, instead branch to second part of board 1315 * We are done. Do not return, instead branch to second part of board
1316 * initialization, now running from RAM. 1316 * initialization, now running from RAM.
1317 */ 1317 */
1318 1318
1319 addi r0, r10, in_ram - _start + EXC_OFF_SYS_RESET 1319 addi r0, r10, in_ram - _start + EXC_OFF_SYS_RESET
1320 mtlr r0 1320 mtlr r0
1321 blr /* NEVER RETURNS! */ 1321 blr /* NEVER RETURNS! */
1322 1322
1323 in_ram: 1323 in_ram:
1324 1324
1325 /* 1325 /*
1326 * Relocation Function, r14 point to got2+0x8000 1326 * Relocation Function, r14 point to got2+0x8000
1327 * 1327 *
1328 * Adjust got2 pointers, no need to check for 0, this code 1328 * Adjust got2 pointers, no need to check for 0, this code
1329 * already puts a few entries in the table. 1329 * already puts a few entries in the table.
1330 */ 1330 */
1331 li r0,__got2_entries@sectoff@l 1331 li r0,__got2_entries@sectoff@l
1332 la r3,GOT(_GOT2_TABLE_) 1332 la r3,GOT(_GOT2_TABLE_)
1333 lwz r11,GOT(_GOT2_TABLE_) 1333 lwz r11,GOT(_GOT2_TABLE_)
1334 mtctr r0 1334 mtctr r0
1335 sub r11,r3,r11 1335 sub r11,r3,r11
1336 addi r3,r3,-4 1336 addi r3,r3,-4
1337 1: lwzu r0,4(r3) 1337 1: lwzu r0,4(r3)
1338 add r0,r0,r11 1338 add r0,r0,r11
1339 stw r0,0(r3) 1339 stw r0,0(r3)
1340 bdnz 1b 1340 bdnz 1b
1341 1341
1342 /* 1342 /*
1343 * Now adjust the fixups and the pointers to the fixups 1343 * Now adjust the fixups and the pointers to the fixups
1344 * in case we need to move ourselves again. 1344 * in case we need to move ourselves again.
1345 */ 1345 */
1346 2: li r0,__fixup_entries@sectoff@l 1346 2: li r0,__fixup_entries@sectoff@l
1347 lwz r3,GOT(_FIXUP_TABLE_) 1347 lwz r3,GOT(_FIXUP_TABLE_)
1348 cmpwi r0,0 1348 cmpwi r0,0
1349 mtctr r0 1349 mtctr r0
1350 addi r3,r3,-4 1350 addi r3,r3,-4
1351 beq 4f 1351 beq 4f
1352 3: lwzu r4,4(r3) 1352 3: lwzu r4,4(r3)
1353 lwzux r0,r4,r11 1353 lwzux r0,r4,r11
1354 add r0,r0,r11 1354 add r0,r0,r11
1355 stw r10,0(r3) 1355 stw r10,0(r3)
1356 stw r0,0(r4) 1356 stw r0,0(r4)
1357 bdnz 3b 1357 bdnz 3b
1358 4: 1358 4:
1359 clear_bss: 1359 clear_bss:
1360 /* 1360 /*
1361 * Now clear BSS segment 1361 * Now clear BSS segment
1362 */ 1362 */
1363 lwz r3,GOT(__bss_start) 1363 lwz r3,GOT(__bss_start)
1364 lwz r4,GOT(_end) 1364 lwz r4,GOT(_end)
1365 1365
1366 cmplw 0, r3, r4 1366 cmplw 0, r3, r4
1367 beq 6f 1367 beq 6f
1368 1368
1369 li r0, 0 1369 li r0, 0
1370 5: 1370 5:
1371 stw r0, 0(r3) 1371 stw r0, 0(r3)
1372 addi r3, r3, 4 1372 addi r3, r3, 4
1373 cmplw 0, r3, r4 1373 cmplw 0, r3, r4
1374 bne 5b 1374 bne 5b
1375 6: 1375 6:
1376 1376
1377 mr r3, r9 /* Init Data pointer */ 1377 mr r3, r9 /* Init Data pointer */
1378 mr r4, r10 /* Destination Address */ 1378 mr r4, r10 /* Destination Address */
1379 bl board_init_r 1379 bl board_init_r
1380 1380
1381 /* 1381 /*
1382 * Copy exception vector code to low memory 1382 * Copy exception vector code to low memory
1383 * 1383 *
1384 * r3: dest_addr 1384 * r3: dest_addr
1385 * r7: source address, r8: end address, r9: target address 1385 * r7: source address, r8: end address, r9: target address
1386 */ 1386 */
1387 .globl trap_init 1387 .globl trap_init
1388 trap_init: 1388 trap_init:
1389 lwz r7, GOT(_start) 1389 lwz r7, GOT(_start)
1390 lwz r8, GOT(_end_of_vectors) 1390 lwz r8, GOT(_end_of_vectors)
1391 1391
1392 li r9, 0x100 /* reset vector always at 0x100 */ 1392 li r9, 0x100 /* reset vector always at 0x100 */
1393 1393
1394 cmplw 0, r7, r8 1394 cmplw 0, r7, r8
1395 bgelr /* return if r7>=r8 - just in case */ 1395 bgelr /* return if r7>=r8 - just in case */
1396 1396
1397 mflr r4 /* save link register */ 1397 mflr r4 /* save link register */
1398 1: 1398 1:
1399 lwz r0, 0(r7) 1399 lwz r0, 0(r7)
1400 stw r0, 0(r9) 1400 stw r0, 0(r9)
1401 addi r7, r7, 4 1401 addi r7, r7, 4
1402 addi r9, r9, 4 1402 addi r9, r9, 4
1403 cmplw 0, r7, r8 1403 cmplw 0, r7, r8
1404 bne 1b 1404 bne 1b
1405 1405
1406 /* 1406 /*
1407 * relocate `hdlr' and `int_return' entries 1407 * relocate `hdlr' and `int_return' entries
1408 */ 1408 */
1409 li r7, .L_MachineCheck - _start + EXC_OFF_SYS_RESET 1409 li r7, .L_MachineCheck - _start + EXC_OFF_SYS_RESET
1410 li r8, Alignment - _start + EXC_OFF_SYS_RESET 1410 li r8, Alignment - _start + EXC_OFF_SYS_RESET
1411 2: 1411 2:
1412 bl trap_reloc 1412 bl trap_reloc
1413 addi r7, r7, 0x100 /* next exception vector */ 1413 addi r7, r7, 0x100 /* next exception vector */
1414 cmplw 0, r7, r8 1414 cmplw 0, r7, r8
1415 blt 2b 1415 blt 2b
1416 1416
1417 li r7, .L_Alignment - _start + EXC_OFF_SYS_RESET 1417 li r7, .L_Alignment - _start + EXC_OFF_SYS_RESET
1418 bl trap_reloc 1418 bl trap_reloc
1419 1419
1420 li r7, .L_ProgramCheck - _start + EXC_OFF_SYS_RESET 1420 li r7, .L_ProgramCheck - _start + EXC_OFF_SYS_RESET
1421 bl trap_reloc 1421 bl trap_reloc
1422 1422
1423 li r7, .L_FPUnavailable - _start + EXC_OFF_SYS_RESET 1423 li r7, .L_FPUnavailable - _start + EXC_OFF_SYS_RESET
1424 li r8, SystemCall - _start + EXC_OFF_SYS_RESET 1424 li r8, SystemCall - _start + EXC_OFF_SYS_RESET
1425 3: 1425 3:
1426 bl trap_reloc 1426 bl trap_reloc
1427 addi r7, r7, 0x100 /* next exception vector */ 1427 addi r7, r7, 0x100 /* next exception vector */
1428 cmplw 0, r7, r8 1428 cmplw 0, r7, r8
1429 blt 3b 1429 blt 3b
1430 1430
1431 li r7, .L_SingleStep - _start + EXC_OFF_SYS_RESET 1431 li r7, .L_SingleStep - _start + EXC_OFF_SYS_RESET
1432 li r8, _end_of_vectors - _start + EXC_OFF_SYS_RESET 1432 li r8, _end_of_vectors - _start + EXC_OFF_SYS_RESET
1433 4: 1433 4:
1434 bl trap_reloc 1434 bl trap_reloc
1435 addi r7, r7, 0x100 /* next exception vector */ 1435 addi r7, r7, 0x100 /* next exception vector */
1436 cmplw 0, r7, r8 1436 cmplw 0, r7, r8
1437 blt 4b 1437 blt 4b
1438 1438
1439 mtlr r4 /* restore link register */ 1439 mtlr r4 /* restore link register */
1440 blr 1440 blr
1441 1441
1442 /* 1442 /*
1443 * Function: relocate entries for one exception vector 1443 * Function: relocate entries for one exception vector
1444 */ 1444 */
1445 trap_reloc: 1445 trap_reloc:
1446 lwz r0, 0(r7) /* hdlr ... */ 1446 lwz r0, 0(r7) /* hdlr ... */
1447 add r0, r0, r3 /* ... += dest_addr */ 1447 add r0, r0, r3 /* ... += dest_addr */
1448 stw r0, 0(r7) 1448 stw r0, 0(r7)
1449 1449
1450 lwz r0, 4(r7) /* int_return ... */ 1450 lwz r0, 4(r7) /* int_return ... */
1451 add r0, r0, r3 /* ... += dest_addr */ 1451 add r0, r0, r3 /* ... += dest_addr */
1452 stw r0, 4(r7) 1452 stw r0, 4(r7)
1453 1453
1454 blr 1454 blr
1455 1455
1456 1456
1457 /**************************************************************************/ 1457 /**************************************************************************/
1458 /* PPC405EP specific stuff */ 1458 /* PPC405EP specific stuff */
1459 /**************************************************************************/ 1459 /**************************************************************************/
1460 #ifdef CONFIG_405EP 1460 #ifdef CONFIG_405EP
1461 ppc405ep_init: 1461 ppc405ep_init:
1462 1462
1463 #ifdef CONFIG_BUBINGA 1463 #ifdef CONFIG_BUBINGA
1464 /* 1464 /*
1465 * Initialize EBC chip selects 1 & 4 and GPIO pins (for alternate 1465 * Initialize EBC chip selects 1 & 4 and GPIO pins (for alternate
1466 * function) to support FPGA and NVRAM accesses below. 1466 * function) to support FPGA and NVRAM accesses below.
1467 */ 1467 */
1468 1468
1469 lis r3,GPIO0_OSRH@h /* config GPIO output select */ 1469 lis r3,GPIO0_OSRH@h /* config GPIO output select */
1470 ori r3,r3,GPIO0_OSRH@l 1470 ori r3,r3,GPIO0_OSRH@l
1471 lis r4,CFG_GPIO0_OSRH@h 1471 lis r4,CFG_GPIO0_OSRH@h
1472 ori r4,r4,CFG_GPIO0_OSRH@l 1472 ori r4,r4,CFG_GPIO0_OSRH@l
1473 stw r4,0(r3) 1473 stw r4,0(r3)
1474 lis r3,GPIO0_OSRL@h 1474 lis r3,GPIO0_OSRL@h
1475 ori r3,r3,GPIO0_OSRL@l 1475 ori r3,r3,GPIO0_OSRL@l
1476 lis r4,CFG_GPIO0_OSRL@h 1476 lis r4,CFG_GPIO0_OSRL@h
1477 ori r4,r4,CFG_GPIO0_OSRL@l 1477 ori r4,r4,CFG_GPIO0_OSRL@l
1478 stw r4,0(r3) 1478 stw r4,0(r3)
1479 1479
1480 lis r3,GPIO0_ISR1H@h /* config GPIO input select */ 1480 lis r3,GPIO0_ISR1H@h /* config GPIO input select */
1481 ori r3,r3,GPIO0_ISR1H@l 1481 ori r3,r3,GPIO0_ISR1H@l
1482 lis r4,CFG_GPIO0_ISR1H@h 1482 lis r4,CFG_GPIO0_ISR1H@h
1483 ori r4,r4,CFG_GPIO0_ISR1H@l 1483 ori r4,r4,CFG_GPIO0_ISR1H@l
1484 stw r4,0(r3) 1484 stw r4,0(r3)
1485 lis r3,GPIO0_ISR1L@h 1485 lis r3,GPIO0_ISR1L@h
1486 ori r3,r3,GPIO0_ISR1L@l 1486 ori r3,r3,GPIO0_ISR1L@l
1487 lis r4,CFG_GPIO0_ISR1L@h 1487 lis r4,CFG_GPIO0_ISR1L@h
1488 ori r4,r4,CFG_GPIO0_ISR1L@l 1488 ori r4,r4,CFG_GPIO0_ISR1L@l
1489 stw r4,0(r3) 1489 stw r4,0(r3)
1490 1490
1491 lis r3,GPIO0_TSRH@h /* config GPIO three-state select */ 1491 lis r3,GPIO0_TSRH@h /* config GPIO three-state select */
1492 ori r3,r3,GPIO0_TSRH@l 1492 ori r3,r3,GPIO0_TSRH@l
1493 lis r4,CFG_GPIO0_TSRH@h 1493 lis r4,CFG_GPIO0_TSRH@h
1494 ori r4,r4,CFG_GPIO0_TSRH@l 1494 ori r4,r4,CFG_GPIO0_TSRH@l
1495 stw r4,0(r3) 1495 stw r4,0(r3)
1496 lis r3,GPIO0_TSRL@h 1496 lis r3,GPIO0_TSRL@h
1497 ori r3,r3,GPIO0_TSRL@l 1497 ori r3,r3,GPIO0_TSRL@l
1498 lis r4,CFG_GPIO0_TSRL@h 1498 lis r4,CFG_GPIO0_TSRL@h
1499 ori r4,r4,CFG_GPIO0_TSRL@l 1499 ori r4,r4,CFG_GPIO0_TSRL@l
1500 stw r4,0(r3) 1500 stw r4,0(r3)
1501 1501
1502 lis r3,GPIO0_TCR@h /* config GPIO driver output enables */ 1502 lis r3,GPIO0_TCR@h /* config GPIO driver output enables */
1503 ori r3,r3,GPIO0_TCR@l 1503 ori r3,r3,GPIO0_TCR@l
1504 lis r4,CFG_GPIO0_TCR@h 1504 lis r4,CFG_GPIO0_TCR@h
1505 ori r4,r4,CFG_GPIO0_TCR@l 1505 ori r4,r4,CFG_GPIO0_TCR@l
1506 stw r4,0(r3) 1506 stw r4,0(r3)
1507 1507
1508 li r3,pb1ap /* program EBC bank 1 for RTC access */ 1508 li r3,pb1ap /* program EBC bank 1 for RTC access */
1509 mtdcr ebccfga,r3 1509 mtdcr ebccfga,r3
1510 lis r3,CFG_EBC_PB1AP@h 1510 lis r3,CFG_EBC_PB1AP@h
1511 ori r3,r3,CFG_EBC_PB1AP@l 1511 ori r3,r3,CFG_EBC_PB1AP@l
1512 mtdcr ebccfgd,r3 1512 mtdcr ebccfgd,r3
1513 li r3,pb1cr 1513 li r3,pb1cr
1514 mtdcr ebccfga,r3 1514 mtdcr ebccfga,r3
1515 lis r3,CFG_EBC_PB1CR@h 1515 lis r3,CFG_EBC_PB1CR@h
1516 ori r3,r3,CFG_EBC_PB1CR@l 1516 ori r3,r3,CFG_EBC_PB1CR@l
1517 mtdcr ebccfgd,r3 1517 mtdcr ebccfgd,r3
1518 1518
1519 li r3,pb1ap /* program EBC bank 1 for RTC access */ 1519 li r3,pb1ap /* program EBC bank 1 for RTC access */
1520 mtdcr ebccfga,r3 1520 mtdcr ebccfga,r3
1521 lis r3,CFG_EBC_PB1AP@h 1521 lis r3,CFG_EBC_PB1AP@h
1522 ori r3,r3,CFG_EBC_PB1AP@l 1522 ori r3,r3,CFG_EBC_PB1AP@l
1523 mtdcr ebccfgd,r3 1523 mtdcr ebccfgd,r3
1524 li r3,pb1cr 1524 li r3,pb1cr
1525 mtdcr ebccfga,r3 1525 mtdcr ebccfga,r3
1526 lis r3,CFG_EBC_PB1CR@h 1526 lis r3,CFG_EBC_PB1CR@h
1527 ori r3,r3,CFG_EBC_PB1CR@l 1527 ori r3,r3,CFG_EBC_PB1CR@l
1528 mtdcr ebccfgd,r3 1528 mtdcr ebccfgd,r3
1529 1529
1530 li r3,pb4ap /* program EBC bank 4 for FPGA access */ 1530 li r3,pb4ap /* program EBC bank 4 for FPGA access */
1531 mtdcr ebccfga,r3 1531 mtdcr ebccfga,r3
1532 lis r3,CFG_EBC_PB4AP@h 1532 lis r3,CFG_EBC_PB4AP@h
1533 ori r3,r3,CFG_EBC_PB4AP@l 1533 ori r3,r3,CFG_EBC_PB4AP@l
1534 mtdcr ebccfgd,r3 1534 mtdcr ebccfgd,r3
1535 li r3,pb4cr 1535 li r3,pb4cr
1536 mtdcr ebccfga,r3 1536 mtdcr ebccfga,r3
1537 lis r3,CFG_EBC_PB4CR@h 1537 lis r3,CFG_EBC_PB4CR@h
1538 ori r3,r3,CFG_EBC_PB4CR@l 1538 ori r3,r3,CFG_EBC_PB4CR@l
1539 mtdcr ebccfgd,r3 1539 mtdcr ebccfgd,r3
1540 #endif 1540 #endif
1541 1541
1542 addi r3,0,CPC0_PCI_HOST_CFG_EN 1542 addi r3,0,CPC0_PCI_HOST_CFG_EN
1543 #ifdef CONFIG_BUBINGA 1543 #ifdef CONFIG_BUBINGA
1544 /* 1544 /*
1545 !----------------------------------------------------------------------- 1545 !-----------------------------------------------------------------------
1546 ! Check FPGA for PCI internal/external arbitration 1546 ! Check FPGA for PCI internal/external arbitration
1547 ! If board is set to internal arbitration, update cpc0_pci 1547 ! If board is set to internal arbitration, update cpc0_pci
1548 !----------------------------------------------------------------------- 1548 !-----------------------------------------------------------------------
1549 */ 1549 */
1550 addis r5,r0,FPGA_REG1@h /* set offset for FPGA_REG1 */ 1550 addis r5,r0,FPGA_REG1@h /* set offset for FPGA_REG1 */
1551 ori r5,r5,FPGA_REG1@l 1551 ori r5,r5,FPGA_REG1@l
1552 lbz r5,0x0(r5) /* read to get PCI arb selection */ 1552 lbz r5,0x0(r5) /* read to get PCI arb selection */
1553 andi. r6,r5,FPGA_REG1_PCI_INT_ARB /* using internal arbiter ?*/ 1553 andi. r6,r5,FPGA_REG1_PCI_INT_ARB /* using internal arbiter ?*/
1554 beq ..pci_cfg_set /* if not set, then bypass reg write*/ 1554 beq ..pci_cfg_set /* if not set, then bypass reg write*/
1555 #endif 1555 #endif
1556 ori r3,r3,CPC0_PCI_ARBIT_EN 1556 ori r3,r3,CPC0_PCI_ARBIT_EN
1557 ..pci_cfg_set: 1557 ..pci_cfg_set:
1558 mtdcr CPC0_PCI, r3 /* Enable internal arbiter*/ 1558 mtdcr CPC0_PCI, r3 /* Enable internal arbiter*/
1559 1559
1560 /* 1560 /*
1561 !----------------------------------------------------------------------- 1561 !-----------------------------------------------------------------------
1562 ! Check to see if chip is in bypass mode. 1562 ! Check to see if chip is in bypass mode.
1563 ! If so, write stored CPC0_PLLMR0 and CPC0_PLLMR1 values and perform a 1563 ! If so, write stored CPC0_PLLMR0 and CPC0_PLLMR1 values and perform a
1564 ! CPU reset Otherwise, skip this step and keep going. 1564 ! CPU reset Otherwise, skip this step and keep going.
1565 ! Note: Running BIOS in bypass mode is not supported since PLB speed 1565 ! Note: Running BIOS in bypass mode is not supported since PLB speed
1566 ! will not be fast enough for the SDRAM (min 66MHz) 1566 ! will not be fast enough for the SDRAM (min 66MHz)
1567 !----------------------------------------------------------------------- 1567 !-----------------------------------------------------------------------
1568 */ 1568 */
1569 mfdcr r5, CPC0_PLLMR1 1569 mfdcr r5, CPC0_PLLMR1
1570 rlwinm r4,r5,1,0x1 /* get system clock source (SSCS) */ 1570 rlwinm r4,r5,1,0x1 /* get system clock source (SSCS) */
1571 cmpi cr0,0,r4,0x1 1571 cmpi cr0,0,r4,0x1
1572 1572
1573 beq pll_done /* if SSCS =b'1' then PLL has */ 1573 beq pll_done /* if SSCS =b'1' then PLL has */
1574 /* already been set */ 1574 /* already been set */
1575 /* and CPU has been reset */ 1575 /* and CPU has been reset */
1576 /* so skip to next section */ 1576 /* so skip to next section */
1577 1577
1578 #ifdef CONFIG_BUBINGA 1578 #ifdef CONFIG_BUBINGA
1579 /* 1579 /*
1580 !----------------------------------------------------------------------- 1580 !-----------------------------------------------------------------------
1581 ! Read NVRAM to get value to write in PLLMR. 1581 ! Read NVRAM to get value to write in PLLMR.
1582 ! If value has not been correctly saved, write default value 1582 ! If value has not been correctly saved, write default value
1583 ! Default config values (assuming on-board 33MHz SYS_CLK) are above. 1583 ! Default config values (assuming on-board 33MHz SYS_CLK) are above.
1584 ! See CPU_DEFAULT_200 and CPU_DEFAULT_266 above. 1584 ! See CPU_DEFAULT_200 and CPU_DEFAULT_266 above.
1585 ! 1585 !
1586 ! WARNING: This code assumes the first three words in the nvram_t 1586 ! WARNING: This code assumes the first three words in the nvram_t
1587 ! structure in openbios.h. Changing the beginning of 1587 ! structure in openbios.h. Changing the beginning of
1588 ! the structure will break this code. 1588 ! the structure will break this code.
1589 ! 1589 !
1590 !----------------------------------------------------------------------- 1590 !-----------------------------------------------------------------------
1591 */ 1591 */
1592 addis r3,0,NVRAM_BASE@h 1592 addis r3,0,NVRAM_BASE@h
1593 addi r3,r3,NVRAM_BASE@l 1593 addi r3,r3,NVRAM_BASE@l
1594 1594
1595 lwz r4, 0(r3) 1595 lwz r4, 0(r3)
1596 addis r5,0,NVRVFY1@h 1596 addis r5,0,NVRVFY1@h
1597 addi r5,r5,NVRVFY1@l 1597 addi r5,r5,NVRVFY1@l
1598 cmp cr0,0,r4,r5 /* Compare 1st NVRAM Magic number*/ 1598 cmp cr0,0,r4,r5 /* Compare 1st NVRAM Magic number*/
1599 bne ..no_pllset 1599 bne ..no_pllset
1600 addi r3,r3,4 1600 addi r3,r3,4
1601 lwz r4, 0(r3) 1601 lwz r4, 0(r3)
1602 addis r5,0,NVRVFY2@h 1602 addis r5,0,NVRVFY2@h
1603 addi r5,r5,NVRVFY2@l 1603 addi r5,r5,NVRVFY2@l
1604 cmp cr0,0,r4,r5 /* Compare 2 NVRAM Magic number */ 1604 cmp cr0,0,r4,r5 /* Compare 2 NVRAM Magic number */
1605 bne ..no_pllset 1605 bne ..no_pllset
1606 addi r3,r3,8 /* Skip over conf_size */ 1606 addi r3,r3,8 /* Skip over conf_size */
1607 lwz r4, 4(r3) /* Load PLLMR1 value from NVRAM */ 1607 lwz r4, 4(r3) /* Load PLLMR1 value from NVRAM */
1608 lwz r3, 0(r3) /* Load PLLMR0 value from NVRAM */ 1608 lwz r3, 0(r3) /* Load PLLMR0 value from NVRAM */
1609 rlwinm r5,r4,1,0x1 /* get system clock source (SSCS) */ 1609 rlwinm r5,r4,1,0x1 /* get system clock source (SSCS) */
1610 cmpi cr0,0,r5,1 /* See if PLL is locked */ 1610 cmpi cr0,0,r5,1 /* See if PLL is locked */
1611 beq pll_write 1611 beq pll_write
1612 ..no_pllset: 1612 ..no_pllset:
1613 #endif /* CONFIG_BUBINGA */ 1613 #endif /* CONFIG_BUBINGA */
1614 1614
1615 addis r3,0,PLLMR0_DEFAULT@h /* PLLMR0 default value */ 1615 addis r3,0,PLLMR0_DEFAULT@h /* PLLMR0 default value */
1616 ori r3,r3,PLLMR0_DEFAULT@l /* */ 1616 ori r3,r3,PLLMR0_DEFAULT@l /* */
1617 addis r4,0,PLLMR1_DEFAULT@h /* PLLMR1 default value */ 1617 addis r4,0,PLLMR1_DEFAULT@h /* PLLMR1 default value */
1618 ori r4,r4,PLLMR1_DEFAULT@l /* */ 1618 ori r4,r4,PLLMR1_DEFAULT@l /* */
1619 1619
1620 b pll_write /* Write the CPC0_PLLMR with new value */ 1620 b pll_write /* Write the CPC0_PLLMR with new value */
1621 1621
1622 pll_done: 1622 pll_done:
1623 /* 1623 /*
1624 !----------------------------------------------------------------------- 1624 !-----------------------------------------------------------------------
1625 ! Clear Soft Reset Register 1625 ! Clear Soft Reset Register
1626 ! This is needed to enable PCI if not booting from serial EPROM 1626 ! This is needed to enable PCI if not booting from serial EPROM
1627 !----------------------------------------------------------------------- 1627 !-----------------------------------------------------------------------
1628 */ 1628 */
1629 addi r3, 0, 0x0 1629 addi r3, 0, 0x0
1630 mtdcr CPC0_SRR, r3 1630 mtdcr CPC0_SRR, r3
1631 1631
1632 addis r3,0,0x0010 1632 addis r3,0,0x0010
1633 mtctr r3 1633 mtctr r3
1634 pci_wait: 1634 pci_wait:
1635 bdnz pci_wait 1635 bdnz pci_wait
1636 1636
1637 blr /* return to main code */ 1637 blr /* return to main code */
1638 1638
1639 /* 1639 /*
1640 !----------------------------------------------------------------------------- 1640 !-----------------------------------------------------------------------------
1641 ! Function: pll_write 1641 ! Function: pll_write
1642 ! Description: Updates the value of the CPC0_PLLMR according to CMOS27E documentation 1642 ! Description: Updates the value of the CPC0_PLLMR according to CMOS27E documentation
1643 ! That is: 1643 ! That is:
1644 ! 1. Pll is first disabled (de-activated by putting in bypass mode) 1644 ! 1. Pll is first disabled (de-activated by putting in bypass mode)
1645 ! 2. PLL is reset 1645 ! 2. PLL is reset
1646 ! 3. Clock dividers are set while PLL is held in reset and bypassed 1646 ! 3. Clock dividers are set while PLL is held in reset and bypassed
1647 ! 4. PLL Reset is cleared 1647 ! 4. PLL Reset is cleared
1648 ! 5. Wait 100us for PLL to lock 1648 ! 5. Wait 100us for PLL to lock
1649 ! 6. A core reset is performed 1649 ! 6. A core reset is performed
1650 ! Input: r3 = Value to write to CPC0_PLLMR0 1650 ! Input: r3 = Value to write to CPC0_PLLMR0
1651 ! Input: r4 = Value to write to CPC0_PLLMR1 1651 ! Input: r4 = Value to write to CPC0_PLLMR1
1652 ! Output r3 = none 1652 ! Output r3 = none
1653 !----------------------------------------------------------------------------- 1653 !-----------------------------------------------------------------------------
1654 */ 1654 */
1655 pll_write: 1655 pll_write:
1656 mfdcr r5, CPC0_UCR 1656 mfdcr r5, CPC0_UCR
1657 andis. r5,r5,0xFFFF 1657 andis. r5,r5,0xFFFF
1658 ori r5,r5,0x0101 /* Stop the UART clocks */ 1658 ori r5,r5,0x0101 /* Stop the UART clocks */
1659 mtdcr CPC0_UCR,r5 /* Before changing PLL */ 1659 mtdcr CPC0_UCR,r5 /* Before changing PLL */
1660 1660
1661 mfdcr r5, CPC0_PLLMR1 1661 mfdcr r5, CPC0_PLLMR1
1662 rlwinm r5,r5,0,0x7FFFFFFF /* Disable PLL */ 1662 rlwinm r5,r5,0,0x7FFFFFFF /* Disable PLL */
1663 mtdcr CPC0_PLLMR1,r5 1663 mtdcr CPC0_PLLMR1,r5
1664 oris r5,r5,0x4000 /* Set PLL Reset */ 1664 oris r5,r5,0x4000 /* Set PLL Reset */
1665 mtdcr CPC0_PLLMR1,r5 1665 mtdcr CPC0_PLLMR1,r5
1666 1666
1667 mtdcr CPC0_PLLMR0,r3 /* Set clock dividers */ 1667 mtdcr CPC0_PLLMR0,r3 /* Set clock dividers */
1668 rlwinm r5,r4,0,0x3FFFFFFF /* Reset & Bypass new PLL dividers */ 1668 rlwinm r5,r4,0,0x3FFFFFFF /* Reset & Bypass new PLL dividers */
1669 oris r5,r5,0x4000 /* Set PLL Reset */ 1669 oris r5,r5,0x4000 /* Set PLL Reset */
1670 mtdcr CPC0_PLLMR1,r5 /* Set clock dividers */ 1670 mtdcr CPC0_PLLMR1,r5 /* Set clock dividers */
1671 rlwinm r5,r5,0,0xBFFFFFFF /* Clear PLL Reset */ 1671 rlwinm r5,r5,0,0xBFFFFFFF /* Clear PLL Reset */
1672 mtdcr CPC0_PLLMR1,r5 1672 mtdcr CPC0_PLLMR1,r5
1673 1673
1674 /* 1674 /*
1675 ! Wait min of 100us for PLL to lock. 1675 ! Wait min of 100us for PLL to lock.
1676 ! See CMOS 27E databook for more info. 1676 ! See CMOS 27E databook for more info.
1677 ! At 200MHz, that means waiting 20,000 instructions 1677 ! At 200MHz, that means waiting 20,000 instructions
1678 */ 1678 */
1679 addi r3,0,20000 /* 2000 = 0x4e20 */ 1679 addi r3,0,20000 /* 2000 = 0x4e20 */
1680 mtctr r3 1680 mtctr r3
1681 pll_wait: 1681 pll_wait:
1682 bdnz pll_wait 1682 bdnz pll_wait
1683 1683
1684 oris r5,r5,0x8000 /* Enable PLL */ 1684 oris r5,r5,0x8000 /* Enable PLL */
1685 mtdcr CPC0_PLLMR1,r5 /* Engage */ 1685 mtdcr CPC0_PLLMR1,r5 /* Engage */
1686 1686
1687 /* 1687 /*
1688 * Reset CPU to guarantee timings are OK 1688 * Reset CPU to guarantee timings are OK
1689 * Not sure if this is needed... 1689 * Not sure if this is needed...
1690 */ 1690 */
1691 addis r3,0,0x1000 1691 addis r3,0,0x1000
1692 mtspr dbcr0,r3 /* This will cause a CPU core reset, and */ 1692 mtspr dbcr0,r3 /* This will cause a CPU core reset, and */
1693 /* execution will continue from the poweron */ 1693 /* execution will continue from the poweron */
1694 /* vector of 0xfffffffc */ 1694 /* vector of 0xfffffffc */
1695 #endif /* CONFIG_405EP */ 1695 #endif /* CONFIG_405EP */
1696 1696
doc/README.mpc83xxads
1 Freescale MPC83xx ADS Boards 1 Freescale MPC83xx ADS Boards
2 ----------------------------------------- 2 -----------------------------------------
3 3
4 0. Toolchain / Building 4 0. Toolchain / Building
5 5
6 % setenv CROSS_COMPILE /usr/powerpc/bin/powerpc-linux- 6 $ PATH=$PATH:/usr/powerpc/bin
7 $ CROSS_COMPILE=powerpc-linux-
8 $ export PATH CROSS_COMPILE
7 9
8 % /usr/powerpc/bin/powerpc-linux-gcc -v 10 $ powerpc-linux-gcc -v
9 Reading specs from /usr/powerpc/lib/gcc/powerpc-linux/3.4.3/specs 11 Reading specs from /usr/powerpc/lib/gcc/powerpc-linux/3.4.3/specs
10 Configured with: ../configure --prefix=/usr/powerpc 12 Configured with: ../configure --prefix=/usr/powerpc
11 --exec-prefix=/usr/powerpc --target=powerpc-linux --enable-shared 13 --exec-prefix=/usr/powerpc --target=powerpc-linux --enable-shared
12 --disable-nls --disable-multilib --enable-languages=c,c++,ada,f77,objc 14 --disable-nls --disable-multilib --enable-languages=c,c++,ada,f77,objc
13 Thread model: posix 15 Thread model: posix
14 gcc version 3.4.3 (Debian) 16 gcc version 3.4.3 (Debian)
15 17
16 % /usr/powerpc/bin/powerpc-linux-as -v 18 $ powerpc-linux-as -v
17 GNU assembler version 2.15 (powerpc-linux) using BFD version 2.15 19 GNU assembler version 2.15 (powerpc-linux) using BFD version 2.15
18 20
19 21
20 % make MPC8349ADS_config 22 $ make MPC8349ADS_config
21 Configuring for MPC8349ADS board... 23 Configuring for MPC8349ADS board...
22 24
23 % make 25 $ make
24 26
25 27
26 1. Board Switches and Jumpers 28 1. Board Switches and Jumpers
27 29
28 30
29 2. Memory Map 31 2. Memory Map
30 32
31 2.1. The memory map should look pretty much like this: 33 2.1. The memory map should look pretty much like this:
32 34
33 0x0000_0000 0x7fff_ffff DDR 2G 35 0x0000_0000 0x7fff_ffff DDR 2G
34 0x8000_0000 0x9fff_ffff PCI MEM 512M 36 0x8000_0000 0x9fff_ffff PCI MEM 512M
35 0xc000_0000 0xdfff_ffff Rapid IO 512M 37 0xc000_0000 0xdfff_ffff Rapid IO 512M
36 0xe000_0000 0xe00f_ffff CCSR 1M 38 0xe000_0000 0xe00f_ffff CCSR 1M
37 0xe200_0000 0xe2ff_ffff PCI IO 16M 39 0xe200_0000 0xe2ff_ffff PCI IO 16M
38 0xf000_0000 0xf7ff_ffff SDRAM 128M 40 0xf000_0000 0xf7ff_ffff SDRAM 128M
39 0xf800_0000 0xf80f_ffff BCSR 1M 41 0xf800_0000 0xf80f_ffff BCSR 1M
40 0xfe00_0000 0xffff_ffff FLASH (boot bank) 16M 42 0xfe00_0000 0xffff_ffff FLASH (boot bank) 16M
41 43
42 44
43 3. Definitions 45 3. Definitions
44 46
45 3.1 Explanation of NEW definitions in: 47 3.1 Explanation of NEW definitions in:
46 48
47 include/configs/MPC8349ADS.h 49 include/configs/MPC8349ADS.h
48 50
49 CONFIG_MPC83xx MPC83xx family 51 CONFIG_MPC83xx MPC83xx family
50 CONFIG_MPC8349 MPC8349 specific 52 CONFIG_MPC8349 MPC8349 specific
51 CONFIG_MPC8349ADS MPC8349ADS board specific 53 CONFIG_MPC8349ADS MPC8349ADS board specific
52 CONFIG_TSEC_ENET Use on-chip 10/100/1000 ethernet 54 CONFIG_TSEC_ENET Use on-chip 10/100/1000 ethernet
53 55
54 56
55 4. Compilation 57 4. Compilation
56 58
57 Assuming you're using BASH shell: 59 Assuming you're using BASH shell:
58 60
59 export CROSS_COMPILE=your-cross-compile-prefix 61 export CROSS_COMPILE=your-cross-compile-prefix
60 cd u-boot 62 cd u-boot
61 make distclean 63 make distclean
62 make MPC8349ADS_config 64 make MPC8349ADS_config
63 make 65 make
64 66
65 5. Downloading and Flashing Images 67 5. Downloading and Flashing Images
66 68
67 5.0 Download over serial line using Kermit: 69 5.0 Download over serial line using Kermit:
68 70
69 loadb 71 loadb
70 [Drop to kermit: 72 [Drop to kermit:
71 ^\c 73 ^\c
72 send <u-boot-bin-image> 74 send <u-boot-bin-image>
73 c 75 c
74 ] 76 ]
75 77
76 78
77 Or via tftp: 79 Or via tftp:
78 80
79 tftp 10000 u-boot.bin 81 tftp 10000 u-boot.bin
80 82
81 5.1 Reflash U-boot Image using U-boot 83 5.1 Reflash U-boot Image using U-boot
82 84
83 tftp 10000 u-boot.bin 85 tftp 10000 u-boot.bin
84 protect off fe000000 fe09ffff 86 protect off fe000000 fe09ffff
85 erase fe000000 fe09ffff 87 erase fe000000 fe09ffff
86 88
87 cp.b 10000 fe000000 xxxx 89 cp.b 10000 fe000000 xxxx
88 or 90 or
89 cp.b 10000 fe000000 a0000 91 cp.b 10000 fe000000 a0000
90 92
91 You might have to supply the correct byte count for 'xxxx' from 93 You might have to supply the correct byte count for 'xxxx' from
92 the TFTP. Maybe a0000 will work too, that corresponds to the 94 the TFTP. Maybe a0000 will work too, that corresponds to the
93 erased sectors. 95 erased sectors.
94 96
95 97
96 6. Notes 98 6. Notes
97 99
include/configs/ep8248.h
File was created 1 /*
2 * Copyright (C) 2004 Arabella Software Ltd.
3 * Yuli Barcohen <yuli@arabellasw.com>
4 *
5 * U-Boot configuration for Embedded Planet EP8248 boards.
6 *
7 * See file CREDITS for list of people who contributed to this
8 * project.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of
13 * the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 * MA 02111-1307 USA
24 */
25
26 #ifndef __CONFIG_H
27 #define __CONFIG_H
28
29 #define CONFIG_MPC8248
30 #define CPU_ID_STR "MPC8248"
31
32 #define CONFIG_EP8248 /* Embedded Planet EP8248 board */
33
34 #undef DEBUG
35
36 #define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_early_init_f */
37
38 /* Allow serial number (serial#) and MAC address (ethaddr) to be overwritten */
39 #define CONFIG_ENV_OVERWRITE
40
41 /*
42 * Select serial console configuration
43 *
44 * If either CONFIG_CONS_ON_SMC or CONFIG_CONS_ON_SCC is selected, then
45 * CONFIG_CONS_INDEX must be set to the channel number (1-2 for SMC, 1-4
46 * for SCC).
47 */
48 #define CONFIG_CONS_ON_SMC /* Console is on SMC */
49 #undef CONFIG_CONS_ON_SCC /* It's not on SCC */
50 #undef CONFIG_CONS_NONE /* It's not on external UART */
51 #define CONFIG_CONS_INDEX 1 /* SMC1 is used for console */
52
53 #define CFG_BCSR 0xFA000000
54
55 /*
56 * Select ethernet configuration
57 *
58 * If either CONFIG_ETHER_ON_SCC or CONFIG_ETHER_ON_FCC is selected,
59 * then CONFIG_ETHER_INDEX must be set to the channel number (1-4 for
60 * SCC, 1-3 for FCC)
61 *
62 * If CONFIG_ETHER_NONE is defined, then either the ethernet routines
63 * must be defined elsewhere (as for the console), or CFG_CMD_NET must
64 * be removed from CONFIG_COMMANDS to remove support for networking.
65 */
66 #undef CONFIG_ETHER_ON_SCC /* Ethernet is not on SCC */
67 #define CONFIG_ETHER_ON_FCC /* Ethernet is on FCC */
68 #undef CONFIG_ETHER_NONE /* No external Ethernet */
69
70 #ifdef CONFIG_ETHER_ON_FCC
71
72 #define CONFIG_ETHER_INDEX 1 /* FCC1 is used for Ethernet */
73
74 #if (CONFIG_ETHER_INDEX == 1)
75
76 /* - Rx clock is CLK10
77 * - Tx clock is CLK11
78 * - BDs/buffers on 60x bus
79 * - Full duplex
80 */
81 #define CFG_CMXFCR_MASK (CMXFCR_FC1 | CMXFCR_RF1CS_MSK | CMXFCR_TF1CS_MSK)
82 #define CFG_CMXFCR_VALUE (CMXFCR_RF1CS_CLK10 | CMXFCR_TF1CS_CLK11)
83 #define CFG_CPMFCR_RAMTYPE 0
84 #define CFG_FCC_PSMR (FCC_PSMR_FDE | FCC_PSMR_LPB)
85
86 #elif (CONFIG_ETHER_INDEX == 2)
87
88 /* - Rx clock is CLK13
89 * - Tx clock is CLK14
90 * - BDs/buffers on 60x bus
91 * - Full duplex
92 */
93 #define CFG_CMXFCR_MASK (CMXFCR_FC2 | CMXFCR_RF2CS_MSK | CMXFCR_TF2CS_MSK)
94 #define CFG_CMXFCR_VALUE (CMXFCR_RF2CS_CLK13 | CMXFCR_TF2CS_CLK14)
95 #define CFG_CPMFCR_RAMTYPE 0
96 #define CFG_FCC_PSMR (FCC_PSMR_FDE | FCC_PSMR_LPB)
97
98 #endif /* CONFIG_ETHER_INDEX */
99
100 #define CONFIG_MII /* MII PHY management */
101 #define CONFIG_BITBANGMII /* Bit-banged MDIO interface */
102 /*
103 * GPIO pins used for bit-banged MII communications
104 */
105 #define MDIO_PORT 0 /* Not used - implemented in BCSR */
106 #define MDIO_ACTIVE (*(vu_char *)(CFG_BCSR + 8) &= 0xFB)
107 #define MDIO_TRISTATE (*(vu_char *)(CFG_BCSR + 8) |= 0x04)
108 #define MDIO_READ (*(vu_char *)(CFG_BCSR + 8) & 1)
109
110 #define MDIO(bit) if(bit) *(vu_char *)(CFG_BCSR + 8) |= 0x01; \
111 else *(vu_char *)(CFG_BCSR + 8) &= 0xFE
112
113 #define MDC(bit) if(bit) *(vu_char *)(CFG_BCSR + 8) |= 0x02; \
114 else *(vu_char *)(CFG_BCSR + 8) &= 0xFD
115
116 #define MIIDELAY udelay(1)
117
118 #endif /* CONFIG_ETHER_ON_FCC */
119
120 #ifndef CONFIG_8260_CLKIN
121 #define CONFIG_8260_CLKIN 66000000 /* in Hz */
122 #endif
123
124 #define CONFIG_BAUDRATE 38400
125
126 #define CONFIG_COMMANDS (CONFIG_CMD_DFL \
127 | CFG_CMD_DHCP \
128 | CFG_CMD_ECHO \
129 | CFG_CMD_I2C \
130 | CFG_CMD_IMMAP \
131 | CFG_CMD_MII \
132 | CFG_CMD_PING \
133 )
134
135 /* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
136 #include <cmd_confdefs.h>
137
138 #define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
139 #define CONFIG_BOOTCOMMAND "bootm FF860000" /* autoboot command */
140 #define CONFIG_BOOTARGS "root=/dev/mtdblock1 rw mtdparts=phys:7M(root),-(root)ro"
141
142 #if (CONFIG_COMMANDS & CFG_CMD_KGDB)
143 #undef CONFIG_KGDB_ON_SMC /* define if kgdb on SMC */
144 #define CONFIG_KGDB_ON_SCC /* define if kgdb on SCC */
145 #undef CONFIG_KGDB_NONE /* define if kgdb on something else */
146 #define CONFIG_KGDB_INDEX 1 /* which serial channel for kgdb */
147 #define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port at */
148 #endif
149
150 #define CONFIG_BZIP2 /* include support for bzip2 compressed images */
151 #undef CONFIG_WATCHDOG /* disable platform specific watchdog */
152
153 /*
154 * Miscellaneous configurable options
155 */
156 #define CFG_HUSH_PARSER
157 #define CFG_PROMPT_HUSH_PS2 "> "
158 #define CFG_LONGHELP /* undef to save memory */
159 #define CFG_PROMPT "=> " /* Monitor Command Prompt */
160 #if (CONFIG_COMMANDS & CFG_CMD_KGDB)
161 #define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
162 #else
163 #define CFG_CBSIZE 256 /* Console I/O Buffer Size */
164 #endif
165 #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
166 #define CFG_MAXARGS 16 /* max number of command args */
167 #define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
168
169 #define CFG_MEMTEST_START 0x00100000 /* memtest works on */
170 #define CFG_MEMTEST_END 0x00f00000 /* 1 ... 15 MB in DRAM */
171
172 #define CFG_LOAD_ADDR 0x100000 /* default load address */
173
174 #define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
175
176 #define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
177
178 #define CFG_FLASH_BASE 0xFF800000
179 #define CFG_FLASH_CFI
180 #define CFG_FLASH_CFI_DRIVER
181 #define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks */
182 #define CFG_MAX_FLASH_SECT 256 /* max num of sects on one chip */
183
184 #define CFG_DIRECT_FLASH_TFTP
185
186 #if (CONFIG_COMMANDS & CFG_CMD_JFFS2)
187 #define CFG_JFFS2_FIRST_BANK 0
188 #define CFG_JFFS2_NUM_BANKS CFG_MAX_FLASH_BANKS
189 #define CFG_JFFS2_FIRST_SECTOR 0
190 #define CFG_JFFS2_LAST_SECTOR 62
191 #define CFG_JFFS2_SORT_FRAGMENTS
192 #define CFG_JFFS_CUSTOM_PART
193 #endif /* CFG_CMD_JFFS2 */
194
195 #if (CONFIG_COMMANDS & CFG_CMD_I2C)
196 #define CONFIG_HARD_I2C 1 /* To enable I2C support */
197 #define CFG_I2C_SPEED 100000 /* I2C speed */
198 #define CFG_I2C_SLAVE 0x7F /* I2C slave address */
199 #endif /* CFG_CMD_I2C */
200
201 #define CFG_MONITOR_BASE TEXT_BASE
202 #if (CFG_MONITOR_BASE < CFG_FLASH_BASE)
203 #define CFG_RAMBOOT
204 #endif
205
206 #define CFG_MONITOR_LEN (256 << 10) /* Reserve 256KB for Monitor */
207
208 #define CFG_ENV_IS_IN_FLASH
209
210 #ifdef CFG_ENV_IS_IN_FLASH
211 #define CFG_ENV_SECT_SIZE 0x20000
212 #define CFG_ENV_ADDR (CFG_MONITOR_BASE + CFG_MONITOR_LEN)
213 #endif /* CFG_ENV_IS_IN_FLASH */
214
215 #define CFG_DEFAULT_IMMR 0x00010000
216
217 #define CFG_IMMR 0xF0000000
218
219 #define CFG_INIT_RAM_ADDR CFG_IMMR
220 #define CFG_INIT_RAM_END 0x2000 /* End of used area in DPRAM */
221 #define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */
222 #define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
223 #define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
224
225 /* Hard reset configuration word */
226 #define CFG_HRCW_MASTER 0x0C40025A /* Not used - provided by FPGA */
227 /* No slaves */
228 #define CFG_HRCW_SLAVE1 0
229 #define CFG_HRCW_SLAVE2 0
230 #define CFG_HRCW_SLAVE3 0
231 #define CFG_HRCW_SLAVE4 0
232 #define CFG_HRCW_SLAVE5 0
233 #define CFG_HRCW_SLAVE6 0
234 #define CFG_HRCW_SLAVE7 0
235
236 #define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
237 #define BOOTFLAG_WARM 0x02 /* Software reboot */
238
239 #define CFG_MALLOC_LEN (4096 << 10) /* Reserve 4 MB for malloc() */
240 #define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
241
242 #define CFG_CACHELINE_SIZE 32 /* For MPC8260 CPUs */
243 #if (CONFIG_COMMANDS & CFG_CMD_KGDB)
244 # define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
245 #endif
246
247 #define CFG_HID0_INIT 0
248 #define CFG_HID0_FINAL (HID0_ICE | HID0_IFEM | HID0_ABE)
249
250 #define CFG_HID2 0
251
252 #define CFG_SIUMCR 0x01240200
253 #define CFG_SYPCR 0xFFFF0683
254 #define CFG_BCR 0x00000000
255 #define CFG_SCCR SCCR_DFBRG01
256
257 #define CFG_RMR RMR_CSRE
258 #define CFG_TMCNTSC (TMCNTSC_SEC|TMCNTSC_ALR|TMCNTSC_TCF|TMCNTSC_TCE)
259 #define CFG_PISCR (PISCR_PS|PISCR_PTF|PISCR_PTE)
260 #define CFG_RCCR 0
261
262 #define CFG_MPTPR 0x1300
263 #define CFG_PSDMR 0x82672522
264 #define CFG_PSRT 0x4B
265
266 #define CFG_SDRAM_BASE 0x00000000
267 #define CFG_SDRAM_BR (CFG_SDRAM_BASE | 0x00001841)
268 #define CFG_SDRAM_OR 0xFF0030C0
269
270 #define CFG_BR0_PRELIM (CFG_FLASH_BASE | 0x00001801)
271 #define CFG_OR0_PRELIM 0xFF8008C2
272 #define CFG_BR2_PRELIM (CFG_BCSR | 0x00000801)
273 #define CFG_OR2_PRELIM 0xFFF00864
274
275 #define CFG_RESET_ADDRESS 0xC0000000
276
277 #endif /* __CONFIG_H */
278