• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /* Microcode patches for the CPM as supplied by Motorola.
3  * This is the one for IIC/SPI.  There is a newer one that
4  * also relocates SMC2, but this would require additional changes
5  * to uart.c, so I am holding off on that for a moment.
6  */
7 #include <linux/init.h>
8 #include <linux/errno.h>
9 #include <linux/sched.h>
10 #include <linux/kernel.h>
11 #include <linux/param.h>
12 #include <linux/string.h>
13 #include <linux/mm.h>
14 #include <linux/interrupt.h>
15 #include <asm/irq.h>
16 #include <asm/page.h>
17 #include <asm/pgtable.h>
18 #include <asm/8xx_immap.h>
19 #include <asm/cpm.h>
20 #include <asm/cpm1.h>
21 
22 /*
23  * I2C/SPI relocation patch arrays.
24  */
25 
26 #ifdef CONFIG_I2C_SPI_UCODE_PATCH
27 
28 static uint patch_2000[] __initdata = {
29 	0x7FFFEFD9,
30 	0x3FFD0000,
31 	0x7FFB49F7,
32 	0x7FF90000,
33 	0x5FEFADF7,
34 	0x5F89ADF7,
35 	0x5FEFAFF7,
36 	0x5F89AFF7,
37 	0x3A9CFBC8,
38 	0xE7C0EDF0,
39 	0x77C1E1BB,
40 	0xF4DC7F1D,
41 	0xABAD932F,
42 	0x4E08FDCF,
43 	0x6E0FAFF8,
44 	0x7CCF76CF,
45 	0xFD1FF9CF,
46 	0xABF88DC6,
47 	0xAB5679F7,
48 	0xB0937383,
49 	0xDFCE79F7,
50 	0xB091E6BB,
51 	0xE5BBE74F,
52 	0xB3FA6F0F,
53 	0x6FFB76CE,
54 	0xEE0DF9CF,
55 	0x2BFBEFEF,
56 	0xCFEEF9CF,
57 	0x76CEAD24,
58 	0x90B2DF9A,
59 	0x7FDDD0BF,
60 	0x4BF847FD,
61 	0x7CCF76CE,
62 	0xCFEF7E1F,
63 	0x7F1D7DFD,
64 	0xF0B6EF71,
65 	0x7FC177C1,
66 	0xFBC86079,
67 	0xE722FBC8,
68 	0x5FFFDFFF,
69 	0x5FB2FFFB,
70 	0xFBC8F3C8,
71 	0x94A67F01,
72 	0x7F1D5F39,
73 	0xAFE85F5E,
74 	0xFFDFDF96,
75 	0xCB9FAF7D,
76 	0x5FC1AFED,
77 	0x8C1C5FC1,
78 	0xAFDD5FC3,
79 	0xDF9A7EFD,
80 	0xB0B25FB2,
81 	0xFFFEABAD,
82 	0x5FB2FFFE,
83 	0x5FCE600B,
84 	0xE6BB600B,
85 	0x5FCEDFC6,
86 	0x27FBEFDF,
87 	0x5FC8CFDE,
88 	0x3A9CE7C0,
89 	0xEDF0F3C8,
90 	0x7F0154CD,
91 	0x7F1D2D3D,
92 	0x363A7570,
93 	0x7E0AF1CE,
94 	0x37EF2E68,
95 	0x7FEE10EC,
96 	0xADF8EFDE,
97 	0xCFEAE52F,
98 	0x7D0FE12B,
99 	0xF1CE5F65,
100 	0x7E0A4DF8,
101 	0xCFEA5F72,
102 	0x7D0BEFEE,
103 	0xCFEA5F74,
104 	0xE522EFDE,
105 	0x5F74CFDA,
106 	0x0B627385,
107 	0xDF627E0A,
108 	0x30D8145B,
109 	0xBFFFF3C8,
110 	0x5FFFDFFF,
111 	0xA7F85F5E,
112 	0xBFFE7F7D,
113 	0x10D31450,
114 	0x5F36BFFF,
115 	0xAF785F5E,
116 	0xBFFDA7F8,
117 	0x5F36BFFE,
118 	0x77FD30C0,
119 	0x4E08FDCF,
120 	0xE5FF6E0F,
121 	0xAFF87E1F,
122 	0x7E0FFD1F,
123 	0xF1CF5F1B,
124 	0xABF80D5E,
125 	0x5F5EFFEF,
126 	0x79F730A2,
127 	0xAFDD5F34,
128 	0x47F85F34,
129 	0xAFED7FDD,
130 	0x50B24978,
131 	0x47FD7F1D,
132 	0x7DFD70AD,
133 	0xEF717EC1,
134 	0x6BA47F01,
135 	0x2D267EFD,
136 	0x30DE5F5E,
137 	0xFFFD5F5E,
138 	0xFFEF5F5E,
139 	0xFFDF0CA0,
140 	0xAFED0A9E,
141 	0xAFDD0C3A,
142 	0x5F3AAFBD,
143 	0x7FBDB082,
144 	0x5F8247F8
145 };
146 
147 static uint patch_2f00[] __initdata = {
148 	0x3E303430,
149 	0x34343737,
150 	0xABF7BF9B,
151 	0x994B4FBD,
152 	0xBD599493,
153 	0x349FFF37,
154 	0xFB9B177D,
155 	0xD9936956,
156 	0xBBFDD697,
157 	0xBDD2FD11,
158 	0x31DB9BB3,
159 	0x63139637,
160 	0x93733693,
161 	0x193137F7,
162 	0x331737AF,
163 	0x7BB9B999,
164 	0xBB197957,
165 	0x7FDFD3D5,
166 	0x73B773F7,
167 	0x37933B99,
168 	0x1D115316,
169 	0x99315315,
170 	0x31694BF4,
171 	0xFBDBD359,
172 	0x31497353,
173 	0x76956D69,
174 	0x7B9D9693,
175 	0x13131979,
176 	0x79376935
177 };
178 #endif
179 
180 /*
181  * I2C/SPI/SMC1 relocation patch arrays.
182  */
183 
184 #ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
185 
186 static uint patch_2000[] __initdata = {
187 	0x3fff0000,
188 	0x3ffd0000,
189 	0x3ffb0000,
190 	0x3ff90000,
191 	0x5f13eff8,
192 	0x5eb5eff8,
193 	0x5f88adf7,
194 	0x5fefadf7,
195 	0x3a9cfbc8,
196 	0x77cae1bb,
197 	0xf4de7fad,
198 	0xabae9330,
199 	0x4e08fdcf,
200 	0x6e0faff8,
201 	0x7ccf76cf,
202 	0xfdaff9cf,
203 	0xabf88dc8,
204 	0xab5879f7,
205 	0xb0925d8d,
206 	0xdfd079f7,
207 	0xb090e6bb,
208 	0xe5bbe74f,
209 	0x9e046f0f,
210 	0x6ffb76ce,
211 	0xee0cf9cf,
212 	0x2bfbefef,
213 	0xcfeef9cf,
214 	0x76cead23,
215 	0x90b3df99,
216 	0x7fddd0c1,
217 	0x4bf847fd,
218 	0x7ccf76ce,
219 	0xcfef77ca,
220 	0x7eaf7fad,
221 	0x7dfdf0b7,
222 	0xef7a7fca,
223 	0x77cafbc8,
224 	0x6079e722,
225 	0xfbc85fff,
226 	0xdfff5fb3,
227 	0xfffbfbc8,
228 	0xf3c894a5,
229 	0xe7c9edf9,
230 	0x7f9a7fad,
231 	0x5f36afe8,
232 	0x5f5bffdf,
233 	0xdf95cb9e,
234 	0xaf7d5fc3,
235 	0xafed8c1b,
236 	0x5fc3afdd,
237 	0x5fc5df99,
238 	0x7efdb0b3,
239 	0x5fb3fffe,
240 	0xabae5fb3,
241 	0xfffe5fd0,
242 	0x600be6bb,
243 	0x600b5fd0,
244 	0xdfc827fb,
245 	0xefdf5fca,
246 	0xcfde3a9c,
247 	0xe7c9edf9,
248 	0xf3c87f9e,
249 	0x54ca7fed,
250 	0x2d3a3637,
251 	0x756f7e9a,
252 	0xf1ce37ef,
253 	0x2e677fee,
254 	0x10ebadf8,
255 	0xefdecfea,
256 	0xe52f7d9f,
257 	0xe12bf1ce,
258 	0x5f647e9a,
259 	0x4df8cfea,
260 	0x5f717d9b,
261 	0xefeecfea,
262 	0x5f73e522,
263 	0xefde5f73,
264 	0xcfda0b61,
265 	0x5d8fdf61,
266 	0xe7c9edf9,
267 	0x7e9a30d5,
268 	0x1458bfff,
269 	0xf3c85fff,
270 	0xdfffa7f8,
271 	0x5f5bbffe,
272 	0x7f7d10d0,
273 	0x144d5f33,
274 	0xbfffaf78,
275 	0x5f5bbffd,
276 	0xa7f85f33,
277 	0xbffe77fd,
278 	0x30bd4e08,
279 	0xfdcfe5ff,
280 	0x6e0faff8,
281 	0x7eef7e9f,
282 	0xfdeff1cf,
283 	0x5f17abf8,
284 	0x0d5b5f5b,
285 	0xffef79f7,
286 	0x309eafdd,
287 	0x5f3147f8,
288 	0x5f31afed,
289 	0x7fdd50af,
290 	0x497847fd,
291 	0x7f9e7fed,
292 	0x7dfd70a9,
293 	0xef7e7ece,
294 	0x6ba07f9e,
295 	0x2d227efd,
296 	0x30db5f5b,
297 	0xfffd5f5b,
298 	0xffef5f5b,
299 	0xffdf0c9c,
300 	0xafed0a9a,
301 	0xafdd0c37,
302 	0x5f37afbd,
303 	0x7fbdb081,
304 	0x5f8147f8,
305 	0x3a11e710,
306 	0xedf0ccdd,
307 	0xf3186d0a,
308 	0x7f0e5f06,
309 	0x7fedbb38,
310 	0x3afe7468,
311 	0x7fedf4fc,
312 	0x8ffbb951,
313 	0xb85f77fd,
314 	0xb0df5ddd,
315 	0xdefe7fed,
316 	0x90e1e74d,
317 	0x6f0dcbf7,
318 	0xe7decfed,
319 	0xcb74cfed,
320 	0xcfeddf6d,
321 	0x91714f74,
322 	0x5dd2deef,
323 	0x9e04e7df,
324 	0xefbb6ffb,
325 	0xe7ef7f0e,
326 	0x9e097fed,
327 	0xebdbeffa,
328 	0xeb54affb,
329 	0x7fea90d7,
330 	0x7e0cf0c3,
331 	0xbffff318,
332 	0x5fffdfff,
333 	0xac59efea,
334 	0x7fce1ee5,
335 	0xe2ff5ee1,
336 	0xaffbe2ff,
337 	0x5ee3affb,
338 	0xf9cc7d0f,
339 	0xaef8770f,
340 	0x7d0fb0c6,
341 	0xeffbbfff,
342 	0xcfef5ede,
343 	0x7d0fbfff,
344 	0x5ede4cf8,
345 	0x7fddd0bf,
346 	0x49f847fd,
347 	0x7efdf0bb,
348 	0x7fedfffd,
349 	0x7dfdf0b7,
350 	0xef7e7e1e,
351 	0x5ede7f0e,
352 	0x3a11e710,
353 	0xedf0ccab,
354 	0xfb18ad2e,
355 	0x1ea9bbb8,
356 	0x74283b7e,
357 	0x73c2e4bb,
358 	0x2ada4fb8,
359 	0xdc21e4bb,
360 	0xb2a1ffbf,
361 	0x5e2c43f8,
362 	0xfc87e1bb,
363 	0xe74ffd91,
364 	0x6f0f4fe8,
365 	0xc7ba32e2,
366 	0xf396efeb,
367 	0x600b4f78,
368 	0xe5bb760b,
369 	0x53acaef8,
370 	0x4ef88b0e,
371 	0xcfef9e09,
372 	0xabf8751f,
373 	0xefef5bac,
374 	0x741f4fe8,
375 	0x751e760d,
376 	0x7fdbf081,
377 	0x741cafce,
378 	0xefcc7fce,
379 	0x751e70ac,
380 	0x741ce7bb,
381 	0x3372cfed,
382 	0xafdbefeb,
383 	0xe5bb760b,
384 	0x53f2aef8,
385 	0xafe8e7eb,
386 	0x4bf8771e,
387 	0x7e247fed,
388 	0x4fcbe2cc,
389 	0x7fbc30a9,
390 	0x7b0f7a0f,
391 	0x34d577fd,
392 	0x308b5db7,
393 	0xde553e5f,
394 	0xaf78741f,
395 	0x741f30f0,
396 	0xcfef5e2c,
397 	0x741f3eac,
398 	0xafb8771e,
399 	0x5e677fed,
400 	0x0bd3e2cc,
401 	0x741ccfec,
402 	0xe5ca53cd,
403 	0x6fcb4f74,
404 	0x5dadde4b,
405 	0x2ab63d38,
406 	0x4bb3de30,
407 	0x751f741c,
408 	0x6c42effa,
409 	0xefea7fce,
410 	0x6ffc30be,
411 	0xefec3fca,
412 	0x30b3de2e,
413 	0xadf85d9e,
414 	0xaf7daefd,
415 	0x5d9ede2e,
416 	0x5d9eafdd,
417 	0x761f10ac,
418 	0x1da07efd,
419 	0x30adfffe,
420 	0x4908fb18,
421 	0x5fffdfff,
422 	0xafbb709b,
423 	0x4ef85e67,
424 	0xadf814ad,
425 	0x7a0f70ad,
426 	0xcfef50ad,
427 	0x7a0fde30,
428 	0x5da0afed,
429 	0x3c12780f,
430 	0xefef780f,
431 	0xefef790f,
432 	0xa7f85e0f,
433 	0xffef790f,
434 	0xefef790f,
435 	0x14adde2e,
436 	0x5d9eadfd,
437 	0x5e2dfffb,
438 	0xe79addfd,
439 	0xeff96079,
440 	0x607ae79a,
441 	0xddfceff9,
442 	0x60795dff,
443 	0x607acfef,
444 	0xefefefdf,
445 	0xefbfef7f,
446 	0xeeffedff,
447 	0xebffe7ff,
448 	0xafefafdf,
449 	0xafbfaf7f,
450 	0xaeffadff,
451 	0xabffa7ff,
452 	0x6fef6fdf,
453 	0x6fbf6f7f,
454 	0x6eff6dff,
455 	0x6bff67ff,
456 	0x2fef2fdf,
457 	0x2fbf2f7f,
458 	0x2eff2dff,
459 	0x2bff27ff,
460 	0x4e08fd1f,
461 	0xe5ff6e0f,
462 	0xaff87eef,
463 	0x7e0ffdef,
464 	0xf11f6079,
465 	0xabf8f542,
466 	0x7e0af11c,
467 	0x37cfae3a,
468 	0x7fec90be,
469 	0xadf8efdc,
470 	0xcfeae52f,
471 	0x7d0fe12b,
472 	0xf11c6079,
473 	0x7e0a4df8,
474 	0xcfea5dc4,
475 	0x7d0befec,
476 	0xcfea5dc6,
477 	0xe522efdc,
478 	0x5dc6cfda,
479 	0x4e08fd1f,
480 	0x6e0faff8,
481 	0x7c1f761f,
482 	0xfdeff91f,
483 	0x6079abf8,
484 	0x761cee24,
485 	0xf91f2bfb,
486 	0xefefcfec,
487 	0xf91f6079,
488 	0x761c27fb,
489 	0xefdf5da7,
490 	0xcfdc7fdd,
491 	0xd09c4bf8,
492 	0x47fd7c1f,
493 	0x761ccfcf,
494 	0x7eef7fed,
495 	0x7dfdf093,
496 	0xef7e7f1e,
497 	0x771efb18,
498 	0x6079e722,
499 	0xe6bbe5bb,
500 	0xae0ae5bb,
501 	0x600bae85,
502 	0xe2bbe2bb,
503 	0xe2bbe2bb,
504 	0xaf02e2bb,
505 	0xe2bb2ff9,
506 	0x6079e2bb
507 };
508 
509 static uint patch_2f00[] __initdata = {
510 	0x30303030,
511 	0x3e3e3434,
512 	0xabbf9b99,
513 	0x4b4fbdbd,
514 	0x59949334,
515 	0x9fff37fb,
516 	0x9b177dd9,
517 	0x936956bb,
518 	0xfbdd697b,
519 	0xdd2fd113,
520 	0x1db9f7bb,
521 	0x36313963,
522 	0x79373369,
523 	0x3193137f,
524 	0x7331737a,
525 	0xf7bb9b99,
526 	0x9bb19795,
527 	0x77fdfd3d,
528 	0x573b773f,
529 	0x737933f7,
530 	0xb991d115,
531 	0x31699315,
532 	0x31531694,
533 	0xbf4fbdbd,
534 	0x35931497,
535 	0x35376956,
536 	0xbd697b9d,
537 	0x96931313,
538 	0x19797937,
539 	0x6935af78,
540 	0xb9b3baa3,
541 	0xb8788683,
542 	0x368f78f7,
543 	0x87778733,
544 	0x3ffffb3b,
545 	0x8e8f78b8,
546 	0x1d118e13,
547 	0xf3ff3f8b,
548 	0x6bd8e173,
549 	0xd1366856,
550 	0x68d1687b,
551 	0x3daf78b8,
552 	0x3a3a3f87,
553 	0x8f81378f,
554 	0xf876f887,
555 	0x77fd8778,
556 	0x737de8d6,
557 	0xbbf8bfff,
558 	0xd8df87f7,
559 	0xfd876f7b,
560 	0x8bfff8bd,
561 	0x8683387d,
562 	0xb873d87b,
563 	0x3b8fd7f8,
564 	0xf7338883,
565 	0xbb8ee1f8,
566 	0xef837377,
567 	0x3337b836,
568 	0x817d11f8,
569 	0x7378b878,
570 	0xd3368b7d,
571 	0xed731b7d,
572 	0x833731f3,
573 	0xf22f3f23
574 };
575 
576 static uint patch_2e00[] __initdata = {
577 	0x27eeeeee,
578 	0xeeeeeeee,
579 	0xeeeeeeee,
580 	0xeeeeeeee,
581 	0xee4bf4fb,
582 	0xdbd259bb,
583 	0x1979577f,
584 	0xdfd2d573,
585 	0xb773f737,
586 	0x4b4fbdbd,
587 	0x25b9b177,
588 	0xd2d17376,
589 	0x956bbfdd,
590 	0x697bdd2f,
591 	0xff9f79ff,
592 	0xff9ff22f
593 };
594 #endif
595 
596 /*
597  *  USB SOF patch arrays.
598  */
599 
600 #ifdef CONFIG_USB_SOF_UCODE_PATCH
601 
602 static uint patch_2000[] __initdata = {
603 	0x7fff0000,
604 	0x7ffd0000,
605 	0x7ffb0000,
606 	0x49f7ba5b,
607 	0xba383ffb,
608 	0xf9b8b46d,
609 	0xe5ab4e07,
610 	0xaf77bffe,
611 	0x3f7bbf79,
612 	0xba5bba38,
613 	0xe7676076,
614 	0x60750000
615 };
616 
617 static uint patch_2f00[] __initdata = {
618 	0x3030304c,
619 	0xcab9e441,
620 	0xa1aaf220
621 };
622 #endif
623 
cpm_load_patch(cpm8xx_t * cp)624 void __init cpm_load_patch(cpm8xx_t *cp)
625 {
626 	volatile uint		*dp;		/* Dual-ported RAM. */
627 	volatile cpm8xx_t	*commproc;
628 #if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \
629     defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
630 	volatile iic_t		*iip;
631 	volatile struct spi_pram *spp;
632 #ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
633 	volatile smc_uart_t	*smp;
634 #endif
635 #endif
636 	int	i;
637 
638 	commproc = cp;
639 
640 #ifdef CONFIG_USB_SOF_UCODE_PATCH
641 	commproc->cp_rccr = 0;
642 
643 	dp = (uint *)(commproc->cp_dpmem);
644 	for (i=0; i<(sizeof(patch_2000)/4); i++)
645 		*dp++ = patch_2000[i];
646 
647 	dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
648 	for (i=0; i<(sizeof(patch_2f00)/4); i++)
649 		*dp++ = patch_2f00[i];
650 
651 	commproc->cp_rccr = 0x0009;
652 
653 	printk("USB SOF microcode patch installed\n");
654 #endif /* CONFIG_USB_SOF_UCODE_PATCH */
655 
656 #if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \
657     defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
658 
659 	commproc->cp_rccr = 0;
660 
661 	dp = (uint *)(commproc->cp_dpmem);
662 	for (i=0; i<(sizeof(patch_2000)/4); i++)
663 		*dp++ = patch_2000[i];
664 
665 	dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
666 	for (i=0; i<(sizeof(patch_2f00)/4); i++)
667 		*dp++ = patch_2f00[i];
668 
669 	iip = (iic_t *)&commproc->cp_dparam[PROFF_IIC];
670 # define RPBASE 0x0500
671 	iip->iic_rpbase = RPBASE;
672 
673 	/* Put SPI above the IIC, also 32-byte aligned.
674 	*/
675 	i = (RPBASE + sizeof(iic_t) + 31) & ~31;
676 	spp = (struct spi_pram *)&commproc->cp_dparam[PROFF_SPI];
677 	spp->rpbase = i;
678 
679 # if defined(CONFIG_I2C_SPI_UCODE_PATCH)
680 	commproc->cp_cpmcr1 = 0x802a;
681 	commproc->cp_cpmcr2 = 0x8028;
682 	commproc->cp_cpmcr3 = 0x802e;
683 	commproc->cp_cpmcr4 = 0x802c;
684 	commproc->cp_rccr = 1;
685 
686 	printk("I2C/SPI microcode patch installed.\n");
687 # endif /* CONFIG_I2C_SPI_UCODE_PATCH */
688 
689 # if defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
690 
691 	dp = (uint *)&(commproc->cp_dpmem[0x0e00]);
692 	for (i=0; i<(sizeof(patch_2e00)/4); i++)
693 		*dp++ = patch_2e00[i];
694 
695 	commproc->cp_cpmcr1 = 0x8080;
696 	commproc->cp_cpmcr2 = 0x808a;
697 	commproc->cp_cpmcr3 = 0x8028;
698 	commproc->cp_cpmcr4 = 0x802a;
699 	commproc->cp_rccr = 3;
700 
701 	smp = (smc_uart_t *)&commproc->cp_dparam[PROFF_SMC1];
702 	smp->smc_rpbase = 0x1FC0;
703 
704 	printk("I2C/SPI/SMC1 microcode patch installed.\n");
705 # endif /* CONFIG_I2C_SPI_SMC1_UCODE_PATCH) */
706 
707 #endif /* some variation of the I2C/SPI patch was selected */
708 }
709 
710 /*
711  *  Take this entire routine out, since no one calls it and its
712  * logic is suspect.
713  */
714 
715 #if 0
716 void
717 verify_patch(volatile immap_t *immr)
718 {
719 	volatile uint		*dp;
720 	volatile cpm8xx_t	*commproc;
721 	int i;
722 
723 	commproc = (cpm8xx_t *)&immr->im_cpm;
724 
725 	printk("cp_rccr %x\n", commproc->cp_rccr);
726 	commproc->cp_rccr = 0;
727 
728 	dp = (uint *)(commproc->cp_dpmem);
729 	for (i=0; i<(sizeof(patch_2000)/4); i++)
730 		if (*dp++ != patch_2000[i]) {
731 			printk("patch_2000 bad at %d\n", i);
732 			dp--;
733 			printk("found 0x%X, wanted 0x%X\n", *dp, patch_2000[i]);
734 			break;
735 		}
736 
737 	dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
738 	for (i=0; i<(sizeof(patch_2f00)/4); i++)
739 		if (*dp++ != patch_2f00[i]) {
740 			printk("patch_2f00 bad at %d\n", i);
741 			dp--;
742 			printk("found 0x%X, wanted 0x%X\n", *dp, patch_2f00[i]);
743 			break;
744 		}
745 
746 	commproc->cp_rccr = 0x0009;
747 }
748 #endif
749