xref: /illumos-gate/usr/src/uts/common/io/iprb/rcvbundl.h (revision 55fea89d)
1 /*
2 Copyright (c) 1999-2001, Intel Corporation
3 
4 All rights reserved.
5 
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions are met:
8 
9  1. Redistributions of source code must retain the above copyright notice,
10     this list of conditions and the following disclaimer.
11 
12  2. Redistributions in binary form must reproduce the above copyright notice,
13     this list of conditions and the following disclaimer in the documentation
14     and/or other materials provided with the distribution.
15 
16  3. Neither the name of Intel Corporation nor the names of its contributors
17     may be used to endorse or promote products derived from this software
18     without specific prior written permission.
19 
20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
21 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 DISCLAIMED. IN NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
29 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */
31 
32 /*
33  * rcvbundl.h
34  *
35  * Author:  Patrick J Luhmann (PJL)
36  * Date:    05/30/2000
37  * Version: 3.28
38  *
39  * This file contains the loadable micro code arrays to implement
40  * receive bundling on the D101 A-step, D101 B-step, D101M (B-step
41  * only), D101S, D102 B-step, D102 C-step and D102 E-step.
42  *
43  * Each controller has its own specific micro code array.  The array
44  * for one controller is totally incompatible with any other
45  * controller, and if used will most likely cause the controller to
46  * lock up and stop responding to the driver.  Each micro code array
47  * has its own parameter offsets (described below), and they each have
48  * their own version number (which should not be confused with the
49  * version of the rcvbundl.h file given above).
50  */
51 
52 /* Note: Minor formatting changes made for illumos. */
53 
54 /*
55  * CPUSaver parameters
56  *
57  * All CPUSaver parameters are 16-bit literals that are part of a
58  * "move immediate value" instruction.  By changing the value of the
59  * literal in the instruction before the code is loaded, the driver
60  * can change algorithm.
61  *
62  * CPUSAVER_DWORD - This is the location of the instruction that loads
63  *    the dead-man timer with its inital value.  By writing a 16-bit
64  *    value to the low word of this instruction, the driver can change
65  *    the timer value.  The current default is either x600 or x800;
66  *    experiments show that the value probably should stay within the
67  *    range of x200 - x1000.
68  *
69  * CPUSAVER_BUNDLE_MAX_DWORD - This is the location of the instruction
70  *    that sets the maximum number of frames that will be bundled.  In
71  *    some situations, such as the TCP windowing algorithm, it may be
72  *    better to limit the growth of the bundle size than let it go as
73  *    high as it can, because that could cause too much added latency.
74  *    The default is six, because this is the number of packets in the
75  *    default TCP window size.  A value of 1 would make CPUSaver
76  *    indicate an interrupt for every frame received.  If you do not
77  *    want to put a limit on the bundle size, set this value to xFFFF.
78  *
79  * CPUSAVER_MIN_SIZE_DWORD - This is the location of the instruction
80  *    that contains a bit-mask describing the minimum size frame that
81  *    will be bundled.  The default masks the lower 7 bits, which
82  *    means that any frame less than 128 bytes in length will not be
83  *    bundled, but will instead immediately generate an interrupt.
84  *    This does not affect the current bundle in any way.  Any frame
85  *    that is 128 bytes or large will be bundled normally.  This
86  *    feature is meant to provide immediate indication of ACK frames
87  *    in a TCP environment.  Customers were seeing poor performance
88  *    when a machine with CPUSaver enabled was sending but not
89  *    receiving.  The delay introduced when the ACKs were received was
90  *    enough to reduce total throughput, because the sender would sit
91  *    idle until the ACK was finally seen.
92  *
93  *    The current default is 0xFF80, which masks out the lower 7 bits.
94  *    This means that any frame which is x7F (127) bytes or smaller
95  *    will cause an immediate interrupt.  Because this value must be a
96  *    bit mask, there are only a few valid values that can be used.
97  *    To turn this feature off, the driver can write the value xFFFF
98  *    to the lower word of this instruction (in the same way that the
99  *    other parameters are used).  Likewise, a value of 0xF800 (2047)
100  *    would cause an interrupt to be generated for every frame,
101  *    because all standard Ethernet frames are <= 2047 bytes in
102  *    length.
103  */
104 
105 
106 
107 /*
108  * CPUSaver micro code for the D101A
109  */
110 
111 /* Version 2.0 */
112 
113 /* This value is the same for both A and B step of 558. */
114 #define	D101_CPUSAVER_DWORD		72
115 
116 #define	D101_A_RCVBUNDLE_UCODE			\
117 {\
118 0x03B301BB, \
119 0x0046FFFF, \
120 0xFFFFFFFF, \
121 0x051DFFFF, \
122 0xFFFFFFFF, \
123 0xFFFFFFFF, \
124 0x000C0001, \
125 0x00101212, \
126 0x000C0008, \
127 0x003801BC, \
128 0x00000000, \
129 0x00124818, \
130 0x000C1000, \
131 0x00220809, \
132 0x00010200, \
133 0x00124818, \
134 0x000CFFFC, \
135 0x003803B5, \
136 0x00000000, \
137 0x00000000, \
138 0x00000000, \
139 0x00000000, \
140 0x0010009C, \
141 0x0024B81D, \
142 0x00130836, \
143 0x000C0001, \
144 0x0026081C, \
145 0x0020C81B, \
146 0x00130824, \
147 0x00222819, \
148 0x00101213, \
149 0x00041000, \
150 0x003A03B3, \
151 0x00010200, \
152 0x00101B13, \
153 0x00238081, \
154 0x00213049, \
155 0x0038003B, \
156 0x00000000, \
157 0x00000000, \
158 0x00000000, \
159 0x00000000, \
160 0x00000000, \
161 0x00000000, \
162 0x00000000, \
163 0x00000000, \
164 0x00000000, \
165 0x00000000, \
166 0x00000000, \
167 0x00000000, \
168 0x00000000, \
169 0x00000000, \
170 0x00000000, \
171 0x00000000, \
172 0x0010009C, \
173 0x0024B83E, \
174 0x00130826, \
175 0x000C0001, \
176 0x0026083B, \
177 0x00010200, \
178 0x00134824, \
179 0x000C0001, \
180 0x00101213, \
181 0x00041000, \
182 0x0038051E, \
183 0x00101313, \
184 0x00010400, \
185 0x00380521, \
186 0x00050600, \
187 0x00100824, \
188 0x00101310, \
189 0x00041000, \
190 0x00080600, \
191 0x00101B10, \
192 0x0038051E, \
193 0x00000000, \
194 0x00000000, \
195 0x00000000, \
196 0x00000000, \
197 0x00000000, \
198 0x00000000, \
199 0x00000000, \
200 0x00000000, \
201 0x00000000, \
202 0x00000000, \
203 0x00000000, \
204 0x00000000, \
205 0x00000000, \
206 0x00000000, \
207 0x00000000, \
208 0x00000000, \
209 0x00000000, \
210 0x00000000, \
211 0x00000000, \
212 0x00000000, \
213 0x00000000, \
214 0x00000000, \
215 0x00000000, \
216 0x00000000, \
217 0x00000000, \
218 0x00000000, \
219 0x00000000, \
220 }
221 
222 
223 /*
224  * CPUSaver micro code for the D101B
225  */
226 
227 /* Version 2.0 */
228 #define	D101_B0_CPUSAVER_DWORD		72
229 
230 #define	D101_B0_RCVBUNDLE_UCODE			\
231 {\
232 0x03B401BC, \
233 0x0047FFFF, \
234 0xFFFFFFFF, \
235 0x051EFFFF, \
236 0xFFFFFFFF, \
237 0xFFFFFFFF, \
238 0x000C0001, \
239 0x00101B92, \
240 0x000C0008, \
241 0x003801BD, \
242 0x00000000, \
243 0x00124818, \
244 0x000C1000, \
245 0x00220809, \
246 0x00010200, \
247 0x00124818, \
248 0x000CFFFC, \
249 0x003803B6, \
250 0x00000000, \
251 0x00000000, \
252 0x00000000, \
253 0x00000000, \
254 0x0010009C, \
255 0x0024B81D, \
256 0x0013082F, \
257 0x000C0001, \
258 0x0026081C, \
259 0x0020C81B, \
260 0x00130837, \
261 0x00222819, \
262 0x00101B93, \
263 0x00041000, \
264 0x003A03B4, \
265 0x00010200, \
266 0x00101793, \
267 0x00238082, \
268 0x0021304A, \
269 0x0038003C, \
270 0x00000000, \
271 0x00000000, \
272 0x00000000, \
273 0x00000000, \
274 0x00000000, \
275 0x00000000, \
276 0x00000000, \
277 0x00000000, \
278 0x00000000, \
279 0x00000000, \
280 0x00000000, \
281 0x00000000, \
282 0x00000000, \
283 0x00000000, \
284 0x00000000, \
285 0x00000000, \
286 0x0010009C, \
287 0x0024B83E, \
288 0x00130826, \
289 0x000C0001, \
290 0x0026083B, \
291 0x00010200, \
292 0x00134837, \
293 0x000C0001, \
294 0x00101B93, \
295 0x00041000, \
296 0x0038051F, \
297 0x00101313, \
298 0x00010400, \
299 0x00380522, \
300 0x00050600, \
301 0x00100837, \
302 0x00101310, \
303 0x00041000, \
304 0x00080600, \
305 0x00101790, \
306 0x0038051F, \
307 0x00000000, \
308 0x00000000, \
309 0x00000000, \
310 0x00000000, \
311 0x00000000, \
312 0x00000000, \
313 0x00000000, \
314 0x00000000, \
315 0x00000000, \
316 0x00000000, \
317 0x00000000, \
318 0x00000000, \
319 0x00000000, \
320 0x00000000, \
321 0x00000000, \
322 0x00000000, \
323 0x00000000, \
324 0x00000000, \
325 0x00000000, \
326 0x00000000, \
327 0x00000000, \
328 0x00000000, \
329 0x00000000, \
330 0x00000000, \
331 0x00000000, \
332 0x00000000, \
333 0x00000000, \
334 }
335 
336 
337 /*
338  * CPUSaver micro code for the D101M (B-step only)
339  */
340 
341 /* Version 2.10 */
342 
343 /* Parameter values for the D101M B-step */
344 #define	D101M_CPUSAVER_DWORD			78
345 #define	D101M_CPUSAVER_BUNDLE_MAX_DWORD		65
346 #define	D101M_CPUSAVER_MIN_SIZE_DWORD		126
347 
348 #define D101M_B_RCVBUNDLE_UCODE			\
349 {\
350 0x00550215, \
351 0xFFFF0437, \
352 0xFFFFFFFF, \
353 0x06A70789, \
354 0xFFFFFFFF, \
355 0x0558FFFF, \
356 0x000C0001, \
357 0x00101312, \
358 0x000C0008, \
359 0x00380216, \
360 0x0010009C, \
361 0x00204056, \
362 0x002380CC, \
363 0x00380056, \
364 0x0010009C, \
365 0x00244C0B, \
366 0x00000800, \
367 0x00124818, \
368 0x00380438, \
369 0x00000000, \
370 0x00140000, \
371 0x00380555, \
372 0x00308000, \
373 0x00100662, \
374 0x00100561, \
375 0x000E0408, \
376 0x00134861, \
377 0x000C0002, \
378 0x00103093, \
379 0x00308000, \
380 0x00100624, \
381 0x00100561, \
382 0x000E0408, \
383 0x00100861, \
384 0x000C007E, \
385 0x00222C21, \
386 0x000C0002, \
387 0x00103093, \
388 0x00380C7A, \
389 0x00080000, \
390 0x00103090, \
391 0x00380C7A, \
392 0x00000000, \
393 0x00000000, \
394 0x00000000, \
395 0x00000000, \
396 0x0010009C, \
397 0x00244C2D, \
398 0x00010004, \
399 0x00041000, \
400 0x003A0437, \
401 0x00044010, \
402 0x0038078A, \
403 0x00000000, \
404 0x00100099, \
405 0x00206C7A, \
406 0x0010009C, \
407 0x00244C48, \
408 0x00130824, \
409 0x000C0001, \
410 0x00101213, \
411 0x00260C75, \
412 0x00041000, \
413 0x00010004, \
414 0x00130826, \
415 0x000C0006, \
416 0x002206A8, \
417 0x0013C926, \
418 0x00101313, \
419 0x003806A8, \
420 0x00000000, \
421 0x00000000, \
422 0x00000000, \
423 0x00000000, \
424 0x00000000, \
425 0x00000000, \
426 0x00000000, \
427 0x00000000, \
428 0x00080600, \
429 0x00101B10, \
430 0x00050004, \
431 0x00100826, \
432 0x00101210, \
433 0x00380C34, \
434 0x00000000, \
435 0x00000000, \
436 0x0021155B, \
437 0x00100099, \
438 0x00206559, \
439 0x0010009C, \
440 0x00244559, \
441 0x00130836, \
442 0x000C0000, \
443 0x00220C62, \
444 0x000C0001, \
445 0x00101B13, \
446 0x00229C0E, \
447 0x00210C0E, \
448 0x00226C0E, \
449 0x00216C0E, \
450 0x0022FC0E, \
451 0x00215C0E, \
452 0x00214C0E, \
453 0x00380555, \
454 0x00010004, \
455 0x00041000, \
456 0x00278C67, \
457 0x00040800, \
458 0x00018100, \
459 0x003A0437, \
460 0x00130826, \
461 0x000C0001, \
462 0x00220559, \
463 0x00101313, \
464 0x00380559, \
465 0x00000000, \
466 0x00000000, \
467 0x00000000, \
468 0x00000000, \
469 0x00000000, \
470 0x00000000, \
471 0x00000000, \
472 0x00000000, \
473 0x00130831, \
474 0x0010090B, \
475 0x00124813, \
476 0x000CFF80, \
477 0x002606AB, \
478 0x00041000, \
479 0x003806A8, \
480 0x00000000, \
481 0x00000000, \
482 0x00000000, \
483 0x00000000, \
484 }
485 
486 
487 /*
488  * CPUSaver micro code for the D101S
489  */
490 
491 /* Version 1.20 */
492 
493 /* Parameter values for the D101S */
494 #define	D101S_CPUSAVER_DWORD			78
495 #define	D101S_CPUSAVER_BUNDLE_MAX_DWORD		67
496 #define	D101S_CPUSAVER_MIN_SIZE_DWORD		129
497 
498 
499 #define	D101S_RCVBUNDLE_UCODE			\
500 {\
501 0x00550242, \
502 0xFFFF047E, \
503 0xFFFFFFFF, \
504 0x06FF0818, \
505 0xFFFFFFFF, \
506 0x05A6FFFF, \
507 0x000C0001, \
508 0x00101312, \
509 0x000C0008, \
510 0x00380243, \
511 0x0010009C, \
512 0x00204056, \
513 0x002380D0, \
514 0x00380056, \
515 0x0010009C, \
516 0x00244F8B, \
517 0x00000800, \
518 0x00124818, \
519 0x0038047F, \
520 0x00000000, \
521 0x00140000, \
522 0x003805A3, \
523 0x00308000, \
524 0x00100610, \
525 0x00100561, \
526 0x000E0408, \
527 0x00134861, \
528 0x000C0002, \
529 0x00103093, \
530 0x00308000, \
531 0x00100624, \
532 0x00100561, \
533 0x000E0408, \
534 0x00100861, \
535 0x000C007E, \
536 0x00222FA1, \
537 0x000C0002, \
538 0x00103093, \
539 0x00380F90, \
540 0x00080000, \
541 0x00103090, \
542 0x00380F90, \
543 0x00000000, \
544 0x00000000, \
545 0x00000000, \
546 0x00000000, \
547 0x0010009C, \
548 0x00244FAD, \
549 0x00010004, \
550 0x00041000, \
551 0x003A047E, \
552 0x00044010, \
553 0x00380819, \
554 0x00000000, \
555 0x00100099, \
556 0x00206FFD, \
557 0x0010009A, \
558 0x0020AFFD, \
559 0x0010009C, \
560 0x00244FC8, \
561 0x00130824, \
562 0x000C0001, \
563 0x00101213, \
564 0x00260FF8, \
565 0x00041000, \
566 0x00010004, \
567 0x00130826, \
568 0x000C0006, \
569 0x00220700, \
570 0x0013C926, \
571 0x00101313, \
572 0x00380700, \
573 0x00000000, \
574 0x00000000, \
575 0x00000000, \
576 0x00000000, \
577 0x00000000, \
578 0x00000000, \
579 0x00080600, \
580 0x00101B10, \
581 0x00050004, \
582 0x00100826, \
583 0x00101210, \
584 0x00380FB6, \
585 0x00000000, \
586 0x00000000, \
587 0x002115A9, \
588 0x00100099, \
589 0x002065A7, \
590 0x0010009A, \
591 0x0020A5A7, \
592 0x0010009C, \
593 0x002445A7, \
594 0x00130836, \
595 0x000C0000, \
596 0x00220FE4, \
597 0x000C0001, \
598 0x00101B13, \
599 0x00229F8E, \
600 0x00210F8E, \
601 0x00226F8E, \
602 0x00216F8E, \
603 0x0022FF8E, \
604 0x00215F8E, \
605 0x00214F8E, \
606 0x003805A3, \
607 0x00010004, \
608 0x00041000, \
609 0x00278FE9, \
610 0x00040800, \
611 0x00018100, \
612 0x003A047E, \
613 0x00130826, \
614 0x000C0001, \
615 0x002205A7, \
616 0x00101313, \
617 0x003805A7, \
618 0x00000000, \
619 0x00000000, \
620 0x00000000, \
621 0x00000000, \
622 0x00000000, \
623 0x00000000, \
624 0x00000000, \
625 0x00000000, \
626 0x00000000, \
627 0x00130831, \
628 0x0010090B, \
629 0x00124813, \
630 0x000CFF80, \
631 0x00260703, \
632 0x00041000, \
633 0x00380700, \
634 0x00000000, \
635 }
636 
637 
638 /*
639  * CPUSaver micro code for the D102 B-step
640  */
641 
642 /* Version 2.0 */
643 
644 /*
645  * This version of CPUSaver is different from all others in a
646  * different way.  It combines the CPUSaver algorithm with fixes for
647  * bugs in the B-step hardware (specifically, bugs with Inline
648  * Receive).  Thus, when CPUSaver is disabled, this micro code image
649  * will still need to be loaded.  Before this happens, the hit
650  * addresses for the CPUSaver algorithm must be set to 0x1FFFF.  The
651  * hit addresses for CPUSaver are (starting with 0, and remember that.
652  */
653 
654 /* Parameter values for the D102 B-step */
655 #define	D102_B_CPUSAVER_DWORD			91
656 #define	D102_B_CPUSAVER_BUNDLE_MAX_DWORD	115
657 #define	D102_B_CPUSAVER_MIN_SIZE_DWORD		70
658 
659 #define	D102_B_RCVBUNDLE_UCODE \
660 {\
661 0x006F0276, \
662 0x02BF0E93, \
663 0x1FFF0ED9, \
664 0x0D2508FA, \
665 0x04D21FFF, \
666 0x0EA10892, \
667 0x00300001, \
668 0x0140D871, \
669 0x00300008, \
670 0x00E00277, \
671 0x01406C57, \
672 0x00816073, \
673 0x008700FA, \
674 0x00E00070, \
675 0x00E00E94, \
676 0x00200004, \
677 0x01410000, \
678 0x014B6F6F, \
679 0x0030FFFF, \
680 0x01486F72, \
681 0x00E81F9B, \
682 0x00E00EA3, \
683 0x003C0040, \
684 0x00380920, \
685 0x00C02000, \
686 0x0150ED38, \
687 0x0150EE39, \
688 0x0150EF3A, \
689 0x003C0040, \
690 0x01506F0D, \
691 0x01600E72, \
692 0x00380AE0, \
693 0x00E002C0, \
694 0x00300001, \
695 0x014C0000, \
696 0x008404DC, \
697 0x014C6F72, \
698 0x00E01F9D, \
699 0x01406C51, \
700 0x0080DFC2, \
701 0x01406C52, \
702 0x00815FC2, \
703 0x01406C57, \
704 0x00917FD5, \
705 0x00E01FE6, \
706 0x00000000, \
707 0x01406C57, \
708 0x00919FAD, \
709 0x00038800, \
710 0x00300000, \
711 0x00E81FF2, \
712 0x014D6FC4, \
713 0x00E008FB, \
714 0x00000000, \
715 0x00822D30, \
716 0x01406C51, \
717 0x0080CD26, \
718 0x01406C52, \
719 0x00814D26, \
720 0x01406C57, \
721 0x00916D26, \
722 0x014C6FD7, \
723 0x00300000, \
724 0x00841FDB, \
725 0x00300001, \
726 0x0140D772, \
727 0x00E012B3, \
728 0x014C6F91, \
729 0x0150710B, \
730 0x01496F72, \
731 0x0030FF80, \
732 0x00940EDD, \
733 0x00102000, \
734 0x00E00EDA, \
735 0x01406C57, \
736 0x00917FFD, \
737 0x00001000, \
738 0x00E01FFD, \
739 0x00138800, \
740 0x00300001, \
741 0x00E81FF2, \
742 0x00202500, \
743 0x00E81F9B, \
744 0x01600EC5, \
745 0x00E00893, \
746 0x00000000, \
747 0x01406CD5, \
748 0x0091EEA3, \
749 0x00904EA3, \
750 0x00901F89, \
751 0x00E00EA3, \
752 0x00200600, \
753 0x0140D76F, \
754 0x00138400, \
755 0x01406FD8, \
756 0x0140D96F, \
757 0x00E01FE6, \
758 0x00038400, \
759 0x00102000, \
760 0x00971FE0, \
761 0x00101000, \
762 0x00050200, \
763 0x00E804D2, \
764 0x014C6FD8, \
765 0x00300001, \
766 0x00840D26, \
767 0x0140D872, \
768 0x00E00D26, \
769 0x014C6FD9, \
770 0x00300001, \
771 0x0140D972, \
772 0x00941FBD, \
773 0x00102000, \
774 0x00038400, \
775 0x014C6FD8, \
776 0x00300006, \
777 0x00840EDA, \
778 0x014F71D8, \
779 0x0140D872, \
780 0x00E00EDA, \
781 0x00340020, \
782 0x014C6FED, \
783 0x01603472, \
784 0x016035EE, \
785 0x016036EF, \
786 0x00300004, \
787 0x01611C71, \
788 0x00300014, \
789 0x00200A00, \
790 0x00E810B9, \
791 0x00600000, \
792 0x01496F50, \
793 0x00E004D3, \
794 0x00000000, \
795 }
796 
797 
798 /*
799  * Micro code for the D102 C-step
800  */
801 
802 /* Parameter values for the D102 C-step */
803 #define	D102_C_CPUSAVER_DWORD			46
804 #define	D102_C_CPUSAVER_BUNDLE_MAX_DWORD	54
805 #define	D102_C_CPUSAVER_MIN_SIZE_DWORD		133 /* not implemented */
806 
807 #define D102_C_RCVBUNDLE_UCODE			\
808 { \
809 0x00700279, \
810 0x0E6104E2, \
811 0x02BF0CAE, \
812 0x1519150C, \
813 0x1FFF0E5B, \
814 0x1FFF1FFF, \
815 0x00E014D8, \
816 0x00000000, \
817 0x00000000, \
818 0x00000000, \
819 0x00E014DC, \
820 0x00000000, \
821 0x00000000, \
822 0x00000000, \
823 0x00E014F4, \
824 0x00000000, \
825 0x00000000, \
826 0x00000000, \
827 0x00000000, \
828 0x00000000, \
829 0x00000000, \
830 0x00000000, \
831 0x00E014E0, \
832 0x00000000, \
833 0x00000000, \
834 0x00000000, \
835 0x00000000, \
836 0x00000000, \
837 0x00000000, \
838 0x00000000, \
839 0x00000000, \
840 0x00000000, \
841 0x00000000, \
842 0x00000000, \
843 0x00000000, \
844 0x00000000, \
845 0x00000000, \
846 0x00000000, \
847 0x00E014E7, \
848 0x00000000, \
849 0x00000000, \
850 0x00000000, \
851 0x00141000, \
852 0x015D6F0D, \
853 0x00E002C0, \
854 0x00000000, \
855 0x00200600, \
856 0x00E0150D, \
857 0x00000000, \
858 0x00000000, \
859 0x00000000, \
860 0x00000000, \
861 0x00000000, \
862 0x00000000, \
863 0x00300006, \
864 0x00E0151A, \
865 0x00000000, \
866 0x00000000, \
867 0x00000000, \
868 0x00000000, \
869 0x00000000, \
870 0x00000000, \
871 0x00000000, \
872 0x00000000, \
873 0x00000000, \
874 0x00000000, \
875 0x00000000, \
876 0x00000000, \
877 0x00000000, \
878 0x00000000, \
879 0x00906E65, \
880 0x00800E60, \
881 0x00E00E5D, \
882 0x00000000, \
883 0x00000000, \
884 0x00000000, \
885 0x00000000, \
886 0x00000000, \
887 0x00000000, \
888 0x00000000, \
889 0x00000000, \
890 0x00000000, \
891 0x00000000, \
892 0x00000000, \
893 0x00000000, \
894 0x00000000, \
895 0x00000000, \
896 0x00000000, \
897 0x00000000, \
898 0x00000000, \
899 0x00000000, \
900 0x00000000, \
901 0x00000000, \
902 0x00000000, \
903 0x00000000, \
904 0x00000000, \
905 0x00000000, \
906 0x00000000, \
907 0x00000000, \
908 0x00000000, \
909 0x00000000, \
910 0x00000000, \
911 0x00000000, \
912 0x00000000, \
913 0x00000000, \
914 0x00000000, \
915 0x00000000, \
916 0x00000000, \
917 0x00000000, \
918 0x00000000, \
919 0x00000000, \
920 0x00000000, \
921 0x00000000, \
922 0x00000000, \
923 0x00000000, \
924 0x00000000, \
925 0x00000000, \
926 0x00000000, \
927 0x00000000, \
928 0x00000000, \
929 0x00000000, \
930 0x00000000, \
931 0x00000000, \
932 0x00000000, \
933 0x00000000, \
934 0x00000000, \
935 0x00000000, \
936 0x00000000, \
937 0x00000000, \
938 0x00000000, \
939 0x00000000, \
940 0x00000000, \
941 0x00000000, \
942 0x00000000, \
943 }
944 
945 /*
946  * Micro code for the D102 E-step
947  */
948 
949 /* Parameter values for the D102 E-step */
950 #define	D102_E_CPUSAVER_DWORD			42
951 #define	D102_E_CPUSAVER_BUNDLE_MAX_DWORD	54
952 #define	D102_E_CPUSAVER_MIN_SIZE_DWORD		46
953 
954 #define	D102_E_RCVBUNDLE_UCODE			\
955 {\
956 0x007D028F, \
957 0x0E4204F9, \
958 0x14ED0C85, \
959 0x14FA14E9, \
960 0x0EF70E36, \
961 0x1FFF1FFF, \
962 0x00E014B9, \
963 0x00000000, \
964 0x00000000, \
965 0x00000000, \
966 0x00E014BD, \
967 0x00000000, \
968 0x00000000, \
969 0x00000000, \
970 0x00E014D5, \
971 0x00000000, \
972 0x00000000, \
973 0x00000000, \
974 0x00000000, \
975 0x00000000, \
976 0x00000000, \
977 0x00000000, \
978 0x00E014C1, \
979 0x00000000, \
980 0x00000000, \
981 0x00000000, \
982 0x00000000, \
983 0x00000000, \
984 0x00000000, \
985 0x00000000, \
986 0x00000000, \
987 0x00000000, \
988 0x00000000, \
989 0x00000000, \
990 0x00000000, \
991 0x00000000, \
992 0x00000000, \
993 0x00000000, \
994 0x00E014C8, \
995 0x00000000, \
996 0x00000000, \
997 0x00000000, \
998 0x00200600, \
999 0x00E014EE, \
1000 0x00000000, \
1001 0x00000000, \
1002 0x0030FF80, \
1003 0x00940E46, \
1004 0x00038200, \
1005 0x00102000, \
1006 0x00E00E43, \
1007 0x00000000, \
1008 0x00000000, \
1009 0x00000000, \
1010 0x00300006, \
1011 0x00E014FB, \
1012 0x00000000, \
1013 0x00000000, \
1014 0x00000000, \
1015 0x00000000, \
1016 0x00000000, \
1017 0x00000000, \
1018 0x00000000, \
1019 0x00000000, \
1020 0x00000000, \
1021 0x00000000, \
1022 0x00000000, \
1023 0x00000000, \
1024 0x00000000, \
1025 0x00000000, \
1026 0x00906E41, \
1027 0x00800E3C, \
1028 0x00E00E39, \
1029 0x00000000, \
1030 0x00906EFD, \
1031 0x00900EFD, \
1032 0x00E00EF8, \
1033 0x00000000, \
1034 0x00000000, \
1035 0x00000000, \
1036 0x00000000, \
1037 0x00000000, \
1038 0x00000000, \
1039 0x00000000, \
1040 0x00000000, \
1041 0x00000000, \
1042 0x00000000, \
1043 0x00000000, \
1044 0x00000000, \
1045 0x00000000, \
1046 0x00000000, \
1047 0x00000000, \
1048 0x00000000, \
1049 0x00000000, \
1050 0x00000000, \
1051 0x00000000, \
1052 0x00000000, \
1053 0x00000000, \
1054 0x00000000, \
1055 0x00000000, \
1056 0x00000000, \
1057 0x00000000, \
1058 0x00000000, \
1059 0x00000000, \
1060 0x00000000, \
1061 0x00000000, \
1062 0x00000000, \
1063 0x00000000, \
1064 0x00000000, \
1065 0x00000000, \
1066 0x00000000, \
1067 0x00000000, \
1068 0x00000000, \
1069 0x00000000, \
1070 0x00000000, \
1071 0x00000000, \
1072 0x00000000, \
1073 0x00000000, \
1074 0x00000000, \
1075 0x00000000, \
1076 0x00000000, \
1077 0x00000000, \
1078 0x00000000, \
1079 0x00000000, \
1080 0x00000000, \
1081 0x00000000, \
1082 0x00000000, \
1083 0x00000000, \
1084 0x00000000, \
1085 0x00000000, \
1086 0x00000000, \
1087 0x00000000, \
1088 0x00000000, \
1089 0x00000000, \
1090 }
1091