Commit f901a83b70a586cef89682843e2d16d6c7b2288a
1 parent
5633796c09
Exists in
master
and in
54 other branches
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
CHANGELOG
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 |
MAINTAINERS
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 |
MAKEALL
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 |
Makefile
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 |
cpu/ppc4xx/start.S
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 |