Annotation of sys/dev/microcode/fxp/rcvbundl.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: rcvbundl.h,v 1.2 2005/04/24 20:41:34 brad Exp $ */
! 2:
! 3: /*
! 4: Copyright (c) 1999-2001, Intel Corporation
! 5:
! 6: All rights reserved.
! 7:
! 8: Redistribution and use in source and binary forms, with or without
! 9: modification, are permitted provided that the following conditions are met:
! 10:
! 11: 1. Redistributions of source code must retain the above copyright notice,
! 12: this list of conditions and the following disclaimer.
! 13:
! 14: 2. Redistributions in binary form must reproduce the above copyright notice,
! 15: this list of conditions and the following disclaimer in the documentation
! 16: and/or other materials provided with the distribution.
! 17:
! 18: 3. Neither the name of Intel Corporation nor the names of its contributors
! 19: may be used to endorse or promote products derived from this software
! 20: without specific prior written permission.
! 21:
! 22: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
! 23: AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 24: IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
! 25: DISCLAIMED. IN NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
! 26: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
! 27: LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
! 28: PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
! 29: LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
! 30: NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
! 31: EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
! 32: */
! 33: /*
! 34: rcvbundl.h
! 35:
! 36: Author: Patrick J Luhmann (PJL)
! 37: Date: 05/30/2000
! 38: Version: 3.28
! 39:
! 40: This file contains the loadable micro code arrays to implement receive bundling on the
! 41: D101 A-step, D101 B-step, D101M (B-step only), D101S, D102 B-step,
! 42: D102 B-step with TCO work around, D102 C-step and D102 E-step.
! 43:
! 44: Each controller has its own specific micro code array. The array for one controller
! 45: is totally incompatible with any other controller, and if used will most likely
! 46: cause the controller to lock up and stop responding to the driver. Each micro
! 47: code array has its own parameter offsets (described below), and they each have
! 48: their own version number (which should not be confused with the version of the
! 49: rcvbundl.h file given above).
! 50:
! 51: */
! 52:
! 53:
! 54:
! 55: /*************************************************************************
! 56: * CPUSaver parameters
! 57: *
! 58: * All CPUSaver parameters are 16-bit literals that are part of a
! 59: * "move immediate value" instruction. By changing the value of
! 60: * the literal in the instruction before the code is loaded, the
! 61: * driver can change algorithm.
! 62: *
! 63: * CPUSAVER_DWORD - This is the location of the instruction that loads
! 64: * the dead-man timer with its inital value. By writing a 16-bit
! 65: * value to the low word of this instruction, the driver can change
! 66: * the timer value. The current default is either x600 or x800;
! 67: * experiments show that the value probably should stay within the
! 68: * range of x200 - x1000.
! 69: *
! 70: * CPUSAVER_BUNDLE_MAX_DWORD - This is the location of the instruction
! 71: * that sets the maximum number of frames that will be bundled. In
! 72: * some situations, such as the TCP windowing algorithm, it may be
! 73: * better to limit the growth of the bundle size than let it go as
! 74: * high as it can, because that could cause too much added latency.
! 75: * The default is six, because this is the number of packets in the
! 76: * default TCP window size. A value of 1 would make CPUSaver indicate
! 77: * an interrupt for every frame received. If you do not want to put
! 78: * a limit on the bundle size, set this value to xFFFF.
! 79: *
! 80: * CPUSAVER_MIN_SIZE_DWORD - This is the location of the instruction
! 81: * that contains a bit-mask describing the minimum size frame that
! 82: * will be bundled. The default masks the lower 7 bits, which means
! 83: * that any frame less than 128 bytes in length will not be bundled,
! 84: * but will instead immediately generate an interrupt. This does
! 85: * not affect the current bundle in any way. Any frame that is 128
! 86: * bytes or large will be bundled normally. This feature is meant
! 87: * to provide immediate indication of ACK frames in a TCP environment.
! 88: * Customers were seeing poor performance when a machine with CPUSaver
! 89: * enabled was sending but not receiving. The delay introduced when
! 90: * the ACKs were received was enough to reduce total throughput, because
! 91: * the sender would sit 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. To
! 97: * turn this feature off, the driver can write the value xFFFF to the
! 98: * lower word of this instruction (in the same way that the other
! 99: * parameters are used). Likewise, a value of 0xF800 (2047) would
! 100: * cause an interrupt to be generated for every frame, because all
! 101: * standard Ethernet frames are <= 2047 bytes in length.
! 102: *************************************************************************/
! 103:
! 104:
! 105:
! 106: /********************************************************/
! 107: /* CPUSaver micro code for the D101A */
! 108: /********************************************************/
! 109:
! 110: /* Version 2.0 */
! 111:
! 112: /* This value is the same for both A and B step of 558. */
! 113: #define D101_CPUSAVER_DWORD 72
! 114:
! 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:
! 229: #define D101_B0_RCVBUNDLE_UCODE \
! 230: {\
! 231: 0x03B401BC, \
! 232: 0x0047FFFF, \
! 233: 0xFFFFFFFF, \
! 234: 0x051EFFFF, \
! 235: 0xFFFFFFFF, \
! 236: 0xFFFFFFFF, \
! 237: 0x000C0001, \
! 238: 0x00101B92, \
! 239: 0x000C0008, \
! 240: 0x003801BD, \
! 241: 0x00000000, \
! 242: 0x00124818, \
! 243: 0x000C1000, \
! 244: 0x00220809, \
! 245: 0x00010200, \
! 246: 0x00124818, \
! 247: 0x000CFFFC, \
! 248: 0x003803B6, \
! 249: 0x00000000, \
! 250: 0x00000000, \
! 251: 0x00000000, \
! 252: 0x00000000, \
! 253: 0x0010009C, \
! 254: 0x0024B81D, \
! 255: 0x0013082F, \
! 256: 0x000C0001, \
! 257: 0x0026081C, \
! 258: 0x0020C81B, \
! 259: 0x00130837, \
! 260: 0x00222819, \
! 261: 0x00101B93, \
! 262: 0x00041000, \
! 263: 0x003A03B4, \
! 264: 0x00010200, \
! 265: 0x00101793, \
! 266: 0x00238082, \
! 267: 0x0021304A, \
! 268: 0x0038003C, \
! 269: 0x00000000, \
! 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: 0x0010009C, \
! 286: 0x0024B83E, \
! 287: 0x00130826, \
! 288: 0x000C0001, \
! 289: 0x0026083B, \
! 290: 0x00010200, \
! 291: 0x00134837, \
! 292: 0x000C0001, \
! 293: 0x00101B93, \
! 294: 0x00041000, \
! 295: 0x0038051F, \
! 296: 0x00101313, \
! 297: 0x00010400, \
! 298: 0x00380522, \
! 299: 0x00050600, \
! 300: 0x00100837, \
! 301: 0x00101310, \
! 302: 0x00041000, \
! 303: 0x00080600, \
! 304: 0x00101790, \
! 305: 0x0038051F, \
! 306: 0x00000000, \
! 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: }
! 334:
! 335:
! 336: /********************************************************/
! 337: /* CPUSaver micro code for the D101M (B-step only) */
! 338: /********************************************************/
! 339:
! 340: /* Version 2.10 */
! 341:
! 342: /* Parameter values for the D101M B-step */
! 343: #define D101M_CPUSAVER_DWORD 78
! 344: #define D101M_CPUSAVER_BUNDLE_MAX_DWORD 65
! 345: #define D101M_CPUSAVER_MIN_SIZE_DWORD 126
! 346:
! 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
! 646: a different way. It combines the CPUSaver algorithm with
! 647: fixes for bugs in the B-step hardware (specifically, bugs
! 648: with Inline Receive).
! 649: Thus, when CPUSaver is disabled, this micro code image will
! 650: still need to be loaded. Before this happens, the hit addresses
! 651: for the CPUSaver algorithm must be set to 0x1FFFF. The hit
! 652: addresses for CPUSaver are (starting with 0, and remember that
! 653:
! 654: */
! 655:
! 656: /* Parameter values for the D102 B-step */
! 657: #define D102_B_CPUSAVER_DWORD 91
! 658: #define D102_B_CPUSAVER_BUNDLE_MAX_DWORD 115
! 659: #define D102_B_CPUSAVER_MIN_SIZE_DWORD 70
! 660:
! 661:
! 662: #define D102_B_RCVBUNDLE_UCODE \
! 663: {\
! 664: 0x006F0276, \
! 665: 0x02BF0E93, \
! 666: 0x1FFF0ED9, \
! 667: 0x0D2508FA, \
! 668: 0x04D21FFF, \
! 669: 0x0EA10892, \
! 670: 0x00300001, \
! 671: 0x0140D871, \
! 672: 0x00300008, \
! 673: 0x00E00277, \
! 674: 0x01406C57, \
! 675: 0x00816073, \
! 676: 0x008700FA, \
! 677: 0x00E00070, \
! 678: 0x00E00E94, \
! 679: 0x00200004, \
! 680: 0x01410000, \
! 681: 0x014B6F6F, \
! 682: 0x0030FFFF, \
! 683: 0x01486F72, \
! 684: 0x00E81F9B, \
! 685: 0x00E00EA3, \
! 686: 0x003C0040, \
! 687: 0x00380920, \
! 688: 0x00C02000, \
! 689: 0x0150ED38, \
! 690: 0x0150EE39, \
! 691: 0x0150EF3A, \
! 692: 0x003C0040, \
! 693: 0x01506F0D, \
! 694: 0x01600E72, \
! 695: 0x00380AE0, \
! 696: 0x00E002C0, \
! 697: 0x00300001, \
! 698: 0x014C0000, \
! 699: 0x008404DC, \
! 700: 0x014C6F72, \
! 701: 0x00E01F9D, \
! 702: 0x01406C51, \
! 703: 0x0080DFC2, \
! 704: 0x01406C52, \
! 705: 0x00815FC2, \
! 706: 0x01406C57, \
! 707: 0x00917FD5, \
! 708: 0x00E01FE6, \
! 709: 0x00000000, \
! 710: 0x01406C57, \
! 711: 0x00919FAD, \
! 712: 0x00038800, \
! 713: 0x00300000, \
! 714: 0x00E81FF2, \
! 715: 0x014D6FC4, \
! 716: 0x00E008FB, \
! 717: 0x00000000, \
! 718: 0x00822D30, \
! 719: 0x01406C51, \
! 720: 0x0080CD26, \
! 721: 0x01406C52, \
! 722: 0x00814D26, \
! 723: 0x01406C57, \
! 724: 0x00916D26, \
! 725: 0x014C6FD7, \
! 726: 0x00300000, \
! 727: 0x00841FDB, \
! 728: 0x00300001, \
! 729: 0x0140D772, \
! 730: 0x00E012B3, \
! 731: 0x014C6F91, \
! 732: 0x0150710B, \
! 733: 0x01496F72, \
! 734: 0x0030FF80, \
! 735: 0x00940EDD, \
! 736: 0x00102000, \
! 737: 0x00E00EDA, \
! 738: 0x01406C57, \
! 739: 0x00917FFD, \
! 740: 0x00001000, \
! 741: 0x00E01FFD, \
! 742: 0x00138800, \
! 743: 0x00300001, \
! 744: 0x00E81FF2, \
! 745: 0x00202500, \
! 746: 0x00E81F9B, \
! 747: 0x01600EC5, \
! 748: 0x00E00893, \
! 749: 0x00000000, \
! 750: 0x01406CD5, \
! 751: 0x0091EEA3, \
! 752: 0x00904EA3, \
! 753: 0x00901F89, \
! 754: 0x00E00EA3, \
! 755: 0x00200600, \
! 756: 0x0140D76F, \
! 757: 0x00138400, \
! 758: 0x01406FD8, \
! 759: 0x0140D96F, \
! 760: 0x00E01FE6, \
! 761: 0x00038400, \
! 762: 0x00102000, \
! 763: 0x00971FE0, \
! 764: 0x00101000, \
! 765: 0x00050200, \
! 766: 0x00E804D2, \
! 767: 0x014C6FD8, \
! 768: 0x00300001, \
! 769: 0x00840D26, \
! 770: 0x0140D872, \
! 771: 0x00E00D26, \
! 772: 0x014C6FD9, \
! 773: 0x00300001, \
! 774: 0x0140D972, \
! 775: 0x00941FBD, \
! 776: 0x00102000, \
! 777: 0x00038400, \
! 778: 0x014C6FD8, \
! 779: 0x00300006, \
! 780: 0x00840EDA, \
! 781: 0x014F71D8, \
! 782: 0x0140D872, \
! 783: 0x00E00EDA, \
! 784: 0x00340020, \
! 785: 0x014C6FED, \
! 786: 0x01603472, \
! 787: 0x016035EE, \
! 788: 0x016036EF, \
! 789: 0x00300004, \
! 790: 0x01611C71, \
! 791: 0x00300014, \
! 792: 0x00200A00, \
! 793: 0x00E810B9, \
! 794: 0x00600000, \
! 795: 0x01496F50, \
! 796: 0x00E004D3, \
! 797: 0x00000000, \
! 798: }
! 799:
! 800:
! 801:
! 802:
! 803: /********************************************************/
! 804: /* TCO micro code for the D102 B-step */
! 805: /********************************************************/
! 806:
! 807: /* Version 2.0 */
! 808:
! 809: /*
! 810: This version is a fix to TCO bug. This version can be loaded instead
! 811: the CPUSaver version by modifing the registry key "LoadTcoUCodeInsteadOfCpuSaver"
! 812:
! 813: */
! 814:
! 815:
! 816: #define D102_B_TCO_UCODE \
! 817: {\
! 818: 0x1FFF0ED3, \
! 819: 0x02BF0E93, \
! 820: 0x1FFF1FFF, \
! 821: 0x1FFF08FA, \
! 822: 0x1FFF1FFF, \
! 823: 0x0EA10892, \
! 824: 0x00906ED8, \
! 825: 0x01406C55, \
! 826: 0x00E00ED4, \
! 827: 0x00000000, \
! 828: 0x00000000, \
! 829: 0x00000000, \
! 830: 0x00000000, \
! 831: 0x00000000, \
! 832: 0x00E00E94, \
! 833: 0x00200004, \
! 834: 0x01410000, \
! 835: 0x014B6F6F, \
! 836: 0x0030FFFF, \
! 837: 0x01486F72, \
! 838: 0x00E81F9B, \
! 839: 0x00E00EA3, \
! 840: 0x003C0040, \
! 841: 0x00380920, \
! 842: 0x00C02000, \
! 843: 0x0150ED38, \
! 844: 0x0150EE39, \
! 845: 0x0150EF3A, \
! 846: 0x003C0040, \
! 847: 0x01506F0D, \
! 848: 0x01600E72, \
! 849: 0x00380AE0, \
! 850: 0x00E002C0, \
! 851: 0x00300001, \
! 852: 0x014C0000, \
! 853: 0x008404DC, \
! 854: 0x014C6F72, \
! 855: 0x00E01F9D, \
! 856: 0x00000000, \
! 857: 0x00000000, \
! 858: 0x00000000, \
! 859: 0x00000000, \
! 860: 0x00000000, \
! 861: 0x00000000, \
! 862: 0x00000000, \
! 863: 0x00000000, \
! 864: 0x01406C57, \
! 865: 0x00919FAD, \
! 866: 0x00038800, \
! 867: 0x00300000, \
! 868: 0x00E81FD5, \
! 869: 0x014D6FC4, \
! 870: 0x00E008FB, \
! 871: 0x00000000, \
! 872: 0x00000000, \
! 873: 0x00000000, \
! 874: 0x00000000, \
! 875: 0x00000000, \
! 876: 0x00000000, \
! 877: 0x00000000, \
! 878: 0x00000000, \
! 879: 0x00000000, \
! 880: 0x00000000, \
! 881: 0x00000000, \
! 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: 0x00138800, \
! 897: 0x00300001, \
! 898: 0x00E81FD5, \
! 899: 0x00202500, \
! 900: 0x00E81F9B, \
! 901: 0x01600EC5, \
! 902: 0x00E00893, \
! 903: 0x00000000, \
! 904: 0x01406CD5, \
! 905: 0x0091EEA3, \
! 906: 0x00904EA3, \
! 907: 0x00901F89, \
! 908: 0x00E00EA3, \
! 909: 0x00340020, \
! 910: 0x014C6FED, \
! 911: 0x01603472, \
! 912: 0x016035EE, \
! 913: 0x016036EF, \
! 914: 0x00300004, \
! 915: 0x01611C71, \
! 916: 0x00300014, \
! 917: 0x00200A00, \
! 918: 0x00E810B9, \
! 919: 0x00600000, \
! 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: 0x00000000, \
! 944: 0x00000000, \
! 945: 0x00000000, \
! 946: 0x00000000, \
! 947: 0x00000000, \
! 948: 0x00000000, \
! 949: 0x00000000, \
! 950: 0x00000000, \
! 951: 0x00000000, \
! 952: }
! 953:
! 954:
! 955:
! 956: /********************************************************/
! 957: /* Micro code for the D102 C-step */
! 958: /********************************************************/
! 959:
! 960: /* Parameter values for the D102 C-step */
! 961: #define D102_C_CPUSAVER_DWORD 46
! 962: #define D102_C_CPUSAVER_BUNDLE_MAX_DWORD 54
! 963: #define D102_C_CPUSAVER_MIN_SIZE_DWORD 133 /* not implemented */
! 964:
! 965:
! 966:
! 967:
! 968:
! 969: #if 0
! 970: // this uCode include the CPU Saver and the TCO work around
! 971: //for IP fregments.
! 972: #endif
! 973: #define D102_C_RCVBUNDLE_UCODE \
! 974: { \
! 975: 0x00700279, \
! 976: 0x0E6104E2, \
! 977: 0x02BF0CAE, \
! 978: 0x1519150C, \
! 979: 0x1FFF0E5B, \
! 980: 0x1FFF1FFF, \
! 981: 0x00E014D8, \
! 982: 0x00000000, \
! 983: 0x00000000, \
! 984: 0x00000000, \
! 985: 0x00E014DC, \
! 986: 0x00000000, \
! 987: 0x00000000, \
! 988: 0x00000000, \
! 989: 0x00E014F4, \
! 990: 0x00000000, \
! 991: 0x00000000, \
! 992: 0x00000000, \
! 993: 0x00000000, \
! 994: 0x00000000, \
! 995: 0x00000000, \
! 996: 0x00000000, \
! 997: 0x00E014E0, \
! 998: 0x00000000, \
! 999: 0x00000000, \
! 1000: 0x00000000, \
! 1001: 0x00000000, \
! 1002: 0x00000000, \
! 1003: 0x00000000, \
! 1004: 0x00000000, \
! 1005: 0x00000000, \
! 1006: 0x00000000, \
! 1007: 0x00000000, \
! 1008: 0x00000000, \
! 1009: 0x00000000, \
! 1010: 0x00000000, \
! 1011: 0x00000000, \
! 1012: 0x00000000, \
! 1013: 0x00E014E7, \
! 1014: 0x00000000, \
! 1015: 0x00000000, \
! 1016: 0x00000000, \
! 1017: 0x00141000, \
! 1018: 0x015D6F0D, \
! 1019: 0x00E002C0, \
! 1020: 0x00000000, \
! 1021: 0x00200600, \
! 1022: 0x00E0150D, \
! 1023: 0x00000000, \
! 1024: 0x00000000, \
! 1025: 0x00000000, \
! 1026: 0x00000000, \
! 1027: 0x00000000, \
! 1028: 0x00000000, \
! 1029: 0x00300006, \
! 1030: 0x00E0151A, \
! 1031: 0x00000000, \
! 1032: 0x00000000, \
! 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: 0x00906E65, \
! 1046: 0x00800E60, \
! 1047: 0x00E00E5D, \
! 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: 0x00000000, \
! 1091: 0x00000000, \
! 1092: 0x00000000, \
! 1093: 0x00000000, \
! 1094: 0x00000000, \
! 1095: 0x00000000, \
! 1096: 0x00000000, \
! 1097: 0x00000000, \
! 1098: 0x00000000, \
! 1099: 0x00000000, \
! 1100: 0x00000000, \
! 1101: 0x00000000, \
! 1102: 0x00000000, \
! 1103: 0x00000000, \
! 1104: 0x00000000, \
! 1105: 0x00000000, \
! 1106: 0x00000000, \
! 1107: 0x00000000, \
! 1108: 0x00000000, \
! 1109: }
! 1110:
! 1111: /********************************************************/
! 1112: /* Micro code for the D102 E-step */
! 1113: /********************************************************/
! 1114:
! 1115: /* Parameter values for the D102 E-step */
! 1116: #define D102_E_CPUSAVER_DWORD 42
! 1117: #define D102_E_CPUSAVER_BUNDLE_MAX_DWORD 54
! 1118: #define D102_E_CPUSAVER_MIN_SIZE_DWORD 46
! 1119:
! 1120: #define D102_E_RCVBUNDLE_UCODE \
! 1121: {\
! 1122: 0x007D028F, \
! 1123: 0x0E4204F9, \
! 1124: 0x14ED0C85, \
! 1125: 0x14FA14E9, \
! 1126: 0x0EF70E36, \
! 1127: 0x1FFF1FFF, \
! 1128: 0x00E014B9, \
! 1129: 0x00000000, \
! 1130: 0x00000000, \
! 1131: 0x00000000, \
! 1132: 0x00E014BD, \
! 1133: 0x00000000, \
! 1134: 0x00000000, \
! 1135: 0x00000000, \
! 1136: 0x00E014D5, \
! 1137: 0x00000000, \
! 1138: 0x00000000, \
! 1139: 0x00000000, \
! 1140: 0x00000000, \
! 1141: 0x00000000, \
! 1142: 0x00000000, \
! 1143: 0x00000000, \
! 1144: 0x00E014C1, \
! 1145: 0x00000000, \
! 1146: 0x00000000, \
! 1147: 0x00000000, \
! 1148: 0x00000000, \
! 1149: 0x00000000, \
! 1150: 0x00000000, \
! 1151: 0x00000000, \
! 1152: 0x00000000, \
! 1153: 0x00000000, \
! 1154: 0x00000000, \
! 1155: 0x00000000, \
! 1156: 0x00000000, \
! 1157: 0x00000000, \
! 1158: 0x00000000, \
! 1159: 0x00000000, \
! 1160: 0x00E014C8, \
! 1161: 0x00000000, \
! 1162: 0x00000000, \
! 1163: 0x00000000, \
! 1164: 0x00200600, \
! 1165: 0x00E014EE, \
! 1166: 0x00000000, \
! 1167: 0x00000000, \
! 1168: 0x0030FF80, \
! 1169: 0x00940E46, \
! 1170: 0x00038200, \
! 1171: 0x00102000, \
! 1172: 0x00E00E43, \
! 1173: 0x00000000, \
! 1174: 0x00000000, \
! 1175: 0x00000000, \
! 1176: 0x00300006, \
! 1177: 0x00E014FB, \
! 1178: 0x00000000, \
! 1179: 0x00000000, \
! 1180: 0x00000000, \
! 1181: 0x00000000, \
! 1182: 0x00000000, \
! 1183: 0x00000000, \
! 1184: 0x00000000, \
! 1185: 0x00000000, \
! 1186: 0x00000000, \
! 1187: 0x00000000, \
! 1188: 0x00000000, \
! 1189: 0x00000000, \
! 1190: 0x00000000, \
! 1191: 0x00000000, \
! 1192: 0x00906E41, \
! 1193: 0x00800E3C, \
! 1194: 0x00E00E39, \
! 1195: 0x00000000, \
! 1196: 0x00906EFD, \
! 1197: 0x00900EFD, \
! 1198: 0x00E00EF8, \
! 1199: 0x00000000, \
! 1200: 0x00000000, \
! 1201: 0x00000000, \
! 1202: 0x00000000, \
! 1203: 0x00000000, \
! 1204: 0x00000000, \
! 1205: 0x00000000, \
! 1206: 0x00000000, \
! 1207: 0x00000000, \
! 1208: 0x00000000, \
! 1209: 0x00000000, \
! 1210: 0x00000000, \
! 1211: 0x00000000, \
! 1212: 0x00000000, \
! 1213: 0x00000000, \
! 1214: 0x00000000, \
! 1215: 0x00000000, \
! 1216: 0x00000000, \
! 1217: 0x00000000, \
! 1218: 0x00000000, \
! 1219: 0x00000000, \
! 1220: 0x00000000, \
! 1221: 0x00000000, \
! 1222: 0x00000000, \
! 1223: 0x00000000, \
! 1224: 0x00000000, \
! 1225: 0x00000000, \
! 1226: 0x00000000, \
! 1227: 0x00000000, \
! 1228: 0x00000000, \
! 1229: 0x00000000, \
! 1230: 0x00000000, \
! 1231: 0x00000000, \
! 1232: 0x00000000, \
! 1233: 0x00000000, \
! 1234: 0x00000000, \
! 1235: 0x00000000, \
! 1236: 0x00000000, \
! 1237: 0x00000000, \
! 1238: 0x00000000, \
! 1239: 0x00000000, \
! 1240: 0x00000000, \
! 1241: 0x00000000, \
! 1242: 0x00000000, \
! 1243: 0x00000000, \
! 1244: 0x00000000, \
! 1245: 0x00000000, \
! 1246: 0x00000000, \
! 1247: 0x00000000, \
! 1248: 0x00000000, \
! 1249: 0x00000000, \
! 1250: 0x00000000, \
! 1251: 0x00000000, \
! 1252: 0x00000000, \
! 1253: 0x00000000, \
! 1254: 0x00000000, \
! 1255: 0x00000000, \
! 1256: }
CVSweb