|
|
1.1 ! root 1: ! 2: ! 3: ! 4: .nf ! 5: ! 6: TABLE OF CONTENTS ! 7: ! 8: ! 9: ! 10: ! 11: 1. INTRODUCTION ! 12: ! 13: 1.1. Supported Hardware ! 14: ! 15: 1.2. Addresses Setting ! 16: ! 17: 1.3. Pre-caution ! 18: ! 19: 2. LOADING AND EXECUTING ! 20: ! 21: 3. TEST DESCRIPTION ! 22: ! 23: 3.1. Phase 1: Reset and Initialization ! 24: ! 25: 3.2. Phase 2: Register Validation Test ! 26: ! 27: 3.3. Phase 3: Loop 2 Mode Test ! 28: ! 29: 3.4. Phase 4: Loop 3 Mode Test ! 30: ! 31: 3.5. Phase 5: Loop 3 Mode, ODD NUMBER OF BITS Error Test ! 32: ! 33: 3.6. Phase 6: Loop 3 Mode, CRC Error Test ! 34: ! 35: 3.7. Phase 7: Loop 3 Mode, OVERRUN Error Test ! 36: ! 37: 3.8. Phase 8: Loop 3 Mode, UNDERRUN Error Test ! 38: ! 39: 4. ERROR MESSAGES ! 40: ! 41: 5. APPENDICES ! 42: .fi ! 43: .bp ! 44: .nf ! 45: APPENDICES ! 46: ! 47: ! 48: ! 49: ! 50: ! 51: ! 52: A. V/EIU Functional Block Diagram ! 53: ! 54: B. I/O Programming Registers ! 55: ! 56: C. A Sample Test ! 57: ! 58: .fi ! 59: .bp ! 60: .nf ! 61: V/EIU CONTROLLER DIAGNOSTIC TEST ! 62: .fi ! 63: ! 64: ! 65: ! 66: ! 67: 1. INTRODUCTION: ! 68: .sp 1 ! 69: .RS ! 70: The purpose of this test is to validate the Ethernet controller board ! 71: logic during initialization and operation. The test consists of seven (7) steps ! 72: in which every functionality is thoroughly tested and every error ! 73: detection capability of the ! 74: controller is verified. ! 75: .RE ! 76: ! 77: 1.1. Supported Hardware: ! 78: .sp 1 ! 79: .RS ! 80: This diagnostic program can support up to two (2) Ethernet ! 81: controller boards. ! 82: .RE ! 83: ! 84: 1.2. Addresses Setting: ! 85: .sp 1 ! 86: .RS ! 87: The following addresses must be set as intructed below before any testing ! 88: can be initiated: ! 89: .RE ! 90: ! 91: .nf ! 92: First controller's addresses setting: ! 93: ! 94: - I/O port address: 0xFF0000 ! 95: - DPM address: 0xF80000 ! 96: ! 97: Second controller's addresses setting (if any): ! 98: ! 99: - I/O port address: 0xFF0100 ! 100: - DPM address: 0xF90000 ! 101: ! 102: .fi ! 103: .RS ! 104: Besides, Interrupt Priority Level (JP2), Intruction Request (JP6), ! 105: and Boundary Select (JP1) jumpers should also be properly set before testing. ! 106: Fragment Discard jumper (JP5) should be shorted for testing purpose and ! 107: opened as the test is done. ! 108: .RE ! 109: ! 110: .RS ! 111: The settings of the following jumpers are standard: ! 112: .RE ! 113: ! 114: .nf ! 115: - IPL: 4 ! 116: - IRQ: 4 ! 117: - Boundary select: 8 ! 118: ! 119: .fi ! 120: .RS ! 121: Refer to V/EIU HARDWARE REFERENCE MANUAL for locations of the ! 122: above jumpers on controller board. ! 123: .RE ! 124: ! 125: 1.3. Pre-Caution: ! 126: .sp 1 ! 127: .RS ! 128: At the present, the controller is not capable to transmit ! 129: messages of which length is greater ! 130: than 64 characters in loop 3 mode. ! 131: This mode is temporarily tested with messages ! 132: less than 64 characters. Therefore, ! 133: Jumper 5 (JP5) must be shorted in order to allow messages of such ! 134: length to be processed. ! 135: .RE ! 136: ! 137: .RS ! 138: All tests performed on the Ethernet controller board are in loop-back ! 139: mode. Therefore, actual connection to ethernet is not neccessary. ! 140: .RE ! 141: ! 142: .RS ! 143: The csr word, as seen in figure 1, is receiver's status word which is ! 144: coded to record the status of the received message. Each receive buffer has ! 145: its own csr word which is the first word of every receive buffer. For ! 146: more information on receive buffer and transmit buffer, please refer ! 147: to V/EIU Hardware Reference Manual (Doc. V/EIU.HR.V001), Chapter 4. ! 148: .RE ! 149: ! 150: .RS ! 151: For some unknown reasons, the crc error bit of the csr word of the receive ! 152: buffer (see figure 1) ! 153: is always set by the receiver when the controller operates ! 154: in loop-back mode. Therefore, the detection capability of this ! 155: type of error could not be ! 156: tested and verified in this test program. As a result, ! 157: the number of messages ! 158: with crc error reported to the console after every test phase should not be ! 159: concerned. ! 160: .RE ! 161: ! 162: 2. LOADING AND EXECUTING: ! 163: .sp 1 ! 164: .RS ! 165: The Ethernet controller test can be loaded from one of two ! 166: storage media, magnetic tape or disk. To load the test, ! 167: perform the following steps: ! 168: .RE ! 169: ! 170: .RS ! 171: When the system is powered up, it attemps to start bootstrap ! 172: procedure from the disk. Type '#' within 10 seconds when ! 173: asked to do so, then enter the following CP commands: ! 174: .RE ! 175: ! 176: .nf ! 177: #>h. ! 178: #>y. ! 179: #>fd cyp(0,0) /* Specify tape is load device */ ! 180: Or ! 181: #>fd Xsd(Y,0) /* Specify disk is load device */ ! 182: /* where X: f for fsd type. */ ! 183: /* x for xfsd type. */ ! 184: /* Y: drive no; 0,1.. */ ! 185: #>fu /wcs /* Load WCS */ ! 186: #>fl /d/io.se /* load test program */ ! 187: .fi ! 188: ! 189: .RS ! 190: To execute the test, enter: ! 191: .RE ! 192: .nf ! 193: ! 194: #>y. /* Initialize the system */ ! 195: #>r. /* Run the program */ ! 196: ! 197: .fi ! 198: ! 199: 3. TEST DESCRIPTION: ! 200: .sp 1 ! 201: .RS ! 202: As mentioned above, there are seven (7) steps in which the V/EIU controller ! 203: is thoroughly tested. ! 204: The Ethernet controller(s) ! 205: is/are first probed before any test can begin. If there is ! 206: at least one such board installed, it/they is/are reported at the console and ! 207: the test begins. ! 208: Otherwise, no Ethernet controller board is available for testing, ! 209: the test program will inform ! 210: the situation at the console and then will terminate. ! 211: The following messages are typically seen at the console as the test ! 212: proceeds in this step: ! 213: .RE ! 214: ! 215: .nf ! 216: Probing for V/EIU... ! 217: V/EIU no. X1 at address FFFF0000 ! 218: V/EIU no. X2 at address FFFF0100 ! 219: 2 V/EIUs found. ! 220: ! 221: where: X1, X2 are logical orderth number assigned by ! 222: the test program. Used to be 0 and 1. ! 223: ! 224: FFFF0000 & FFFF0100 are controllers' versabus ! 225: addresses ! 226: ! 227: .fi ! 228: ! 229: 3.1. Phase 1: Reset and Initialization ! 230: .sp 1 ! 231: .RS ! 232: After being detected as described above, ! 233: the controllers are sequentially tested. The first test ! 234: performed on each controller is the RESET function. ! 235: If the command is successfully ! 236: executed by the controller, this message is printed at the console: ! 237: .RE ! 238: ! 239: .nf ! 240: BEGIN TESTING UNIT NO.: X ! 241: ! 242: 1. RESET AND INITIALIZE ! 243: ! 244: Initialize V/EIU at YYYYYY ! 245: Reset V/EIU unit no. X ! 246: ! 247: where: X is assigned logical orderth number ! 248: YYYYYY is controller's physical address ! 249: .fi ! 250: ! 251: .RS ! 252: If the reset is failed, the test of current controller will ! 253: be aborted and the next controller, if any, will be tested. ! 254: The following message is expected if the test fails to bring ! 255: the controller up. ! 256: .RE ! 257: ! 258: .nf ! 259: *** Controller would not go active. Test aborted. *** ! 260: ! 261: .fi ! 262: ! 263: 3.2. Phase 2: Register Validation Test ! 264: .sp 1 ! 265: .RS ! 266: In this phase of testing, all I/O registers ,as listed in ! 267: appendix B except csr, segb, tseg, rseg, ivct, and fcol registers, ! 268: are validated by a write/read process. The total of errors ! 269: (failed registers) is reported at the console. ! 270: Also, the values of segment registers are read and printed ! 271: for verifying purpose. ! 272: User expects the following messages: ! 273: .RE ! 274: ! 275: .nf ! 276: 2. REGISTERS VALIDATION TEST------------------------> ! 277: ! 278: RAR registers test: X error(s) ! 279: ! 280: Transmit segment reg (rseg): Y1 ! 281: Receive segment reg (tseg): Y2 ! 282: Boundary segment reg (segb): Y3 ! 283: ! 284: where: X is the no. of registers failed the write/read test. ! 285: Y2 = 0 ! 286: Y1 = Y3 is the pre-set values of JP1. ! 287: .fi ! 288: ! 289: .RS ! 290: Note that user should check whether segment registers' values ! 291: reflect the actual settings. ! 292: .RE ! 293: ! 294: .RS ! 295: Regardless of any error occured in this test, ! 296: the next phases ! 297: will be continued since this type of errors (except segment register ! 298: errors which the test program has no way to detect) ! 299: will not effect the ! 300: operation of next tests. ! 301: .RE ! 302: ! 303: 3.3. Phase 3: LOOP 2 Mode Test ! 304: .sp 1 ! 305: .RS ! 306: In this test phase, the controller is set to operate in ! 307: loop 2 mode. The basic function of the controller's CCU in this mode ! 308: is to check parallel data paths connected from the ! 309: transmit buffer to the receive buffer ! 310: (see appendix A). The data is sequentially transfered from ! 311: current transmit segment to current receive segment. Therefore, ! 312: the only thing that is concerned in this test is correctness of ! 313: the received data (the setting of error ! 314: detection bits (see figure 1) of receiver's csr word is ignored). ! 315: Upon receiving a transmited message, ! 316: receive handler compares the received message with the transmitted ! 317: message ! 318: for a match. A no-match situation means failure to the concerned data paths. ! 319: .RE ! 320: ! 321: .nf ! 322: 15 14 13 12 11 10 ... 0 ! 323: ___________________________..._________ ! 324: | | | | | | | ! 325: |___|___|___|___|___|______...________| ! 326: ^ ^ ^ ^ ^ ^ ! 327: | | | | | | ! 328: | | | | | |______ Message length (11 bits) ! 329: | | | | |________________ Odd number of bits error ! 330: | | | |____________________ Underrun error ! 331: | | |________________________ CRC error ! 332: | |____________________________ Overrun error ! 333: |________________________________ Buffer Full/Empty bit ! 334: ! 335: ! 336: Figure 1. CSR word of receive buffer. ! 337: ! 338: .fi ! 339: ! 340: .RS ! 341: User expects the following messages at the console as the test program ! 342: proceeds in this phase: ! 343: .RE ! 344: ! 345: .nf ! 346: 3. MODE 2 TEST----------------------------------> ! 347: ! 348: Transmit: X1 messages ! 349: Receive: X2 messages ! 350: Discard: X3 message(s) ! 351: Done with: Y mismatched message(s) ! 352: ! 353: where: X1 is the number of messages transmitted, ! 354: in this case, X1 = 25. ! 355: X2 is the number of messages received re- ! 356: gardless of the status (error or not). ! 357: X3 is the number of discarded messages,i.e., ! 358: dropped by the transmitter after 15 retries. ! 359: Y is the number of received messages that ! 360: is mismatched with the original message. ! 361: .fi ! 362: ! 363: .RS ! 364: Y should be 0(zero) in order to quarantee the mentioned data paths is ! 365: OK. ! 366: .RE ! 367: ! 368: 3.4. Phase 4: LOOP 3 Mode Test ! 369: .sp 1 ! 370: .RS ! 371: The controller is set to operate in loop 3 mode in this test phase. ! 372: In this mode, all the controller's logics are examined except the external ! 373: drivers to the Ethernet interface. All error code bits as seen in ! 374: figure 1 are properly set (except crc). Appendix A shows how data flows as the ! 375: controller operates in this mode. ! 376: .RE ! 377: ! 378: .RS ! 379: There are 11 messages being transmited in this mode for testing purpose. ! 380: Every message is checked for errors as it is received. There is no error ! 381: report for every message; instead, the sum of the errors is reported at the end ! 382: of this test phase in statistical form as seen below. ! 383: .RE ! 384: ! 385: .RS ! 386: The following items are checked and reported as a message received: ! 387: .RE ! 388: ! 389: .nf ! 390: - CRC error bit of receiver csr word ! 391: - Odd number of bits error. ! 392: - Overrun error bit. ! 393: - Underrun error bit. ! 394: - Count of message length. ! 395: - and the message itself is compared with the transmited ! 396: message. ! 397: .fi ! 398: ! 399: .RS ! 400: As mentioned earlier, the messages transmited in this mode have ! 401: the length less than 64 characters. Therefore, the underrun bit ! 402: will always be on. This should not be concerned as a controller's failure. ! 403: The same fact applied to CRC error report. For some unknown reason, ! 404: the CRC error bit is always set as the controller operates in loop-back ! 405: mode. Therefore, we, again, ignor the CRC error report until this ! 406: problem can be fixed. ! 407: .RE ! 408: ! 409: .nf ! 410: 4. MODE 3 TEST----------------------------------> ! 411: ! 412: Transmit: X1 messages ! 413: Receive: X2 message(s) ! 414: Discarded: X3 message(s) ! 415: ! 416: Number of Messages With ! 417: ! 418: Overrun Underrun CRC Odd # of bits ! 419: 0 Y1 Y2 0 ! 420: ! 421: Done with: Z1 mismatched message(s) ! 422: Z2 received message(s) w/ incorrect byte count ! 423: ! 424: where: X1 = 11 ! 425: X2 + X3 = X1, X2 must be much greater than X3 ! 426: ideally, X3 = 0 and X2 = X1. ! 427: Y1 = 10; Y2 = X2 ! 428: Z1 = Z2 = 0 to be sure that the controller operates ! 429: properly. ! 430: .fi ! 431: ! 432: .fi ! 433: ! 434: ! 435: 3.5. Phase 5: LOOP 3 Mode, ODD NUMBER OF BITS Error Test ! 436: .sp 1 ! 437: .RS ! 438: In this test phase, the transmitter is forced to transmit ! 439: an odd number of bits per character in order to generate ! 440: odd number of bits error condition. ! 441: This is used to test the receiver's capability to detect ! 442: this type of error during operation. ! 443: .RE ! 444: ! 445: .RS ! 446: Note that the count of message length in the receiver side ! 447: will be different with that of in transmitter side as a result of ! 448: dropping 'odd number of bits' charecter(s) by the receiver. ! 449: Thus, the received messages are surely not matched with the ! 450: original transmitted messages. Therefore, the last two counts ! 451: should be the same with the statistical report under "Odd # of bits". ! 452: .RE ! 453: ! 454: ! 455: .nf ! 456: 5. MODE 3, ODD NUMBER OF BITS ERROR TEST --------> ! 457: ! 458: Transmit: X1 messages ! 459: Receive: X2 message(s) ! 460: Discarded: X3 message(s) ! 461: ! 462: Number of Messages With ! 463: ! 464: Overrun Underrun CRC Odd # of bits ! 465: 0 Y1 Y2 Y3 ! 466: ! 467: Done with: Z1 mismatched message(s) ! 468: Z2 received message(s) w/ incorrect byte count ! 469: ! 470: where: X1 = 11 ! 471: X2 + X3 = X1, X2 must be much greater than X3 ! 472: ideally, X3 = 0 and X2 = X1. ! 473: Y1 = Y2 = X2 ! 474: Y3 must be close to X2 ! 475: Z1 # Z2 # Y2 ! 476: .fi ! 477: ! 478: 3.6. Phase 6: LOOP 3 Mode, CRC Error Test ! 479: .sp 1 ! 480: .RS ! 481: In this phase of testing, the messages are transmitted without ! 482: CRC data in order to generate the CRC error condition for the ! 483: purpose of verifying the controller's capability in detecting ! 484: this type of error. ! 485: However, as mentioned previously, the CRC bit is , somehow, always set, ! 486: when the controller operates in loop-back mode, regardless of whether ! 487: the CRC error exists. Therefore, this phase is not released now until ! 488: the problem can be fixed and the CRC error bit is properly set ! 489: by the receiver logic. ! 490: .RE ! 491: ! 492: 3.7. Phase 7: LOOP 3 Mode, OVERRUN Error Test ! 493: .sp 1 ! 494: .RS ! 495: The purpose of this test phase is to verify the receiver's ! 496: capability in detecting overrun error. ! 497: The transmitted messages are arranged so that their length is ! 498: longer than the maximun allowable length (1514 characters) in order ! 499: to generate overrun error condition. ! 500: However, as mentioned earlier, the controller in loop 3 ! 501: mode does not properly operate with messages of length greater than ! 502: 64 characters. This test can not be performed at the time being. ! 503: As soon as this problem of the Ethenet controller can be resolved ! 504: (by the manufacturer, not by us) this test program will be upgraded ! 505: and this test phase included. ! 506: .RE ! 507: ! 508: 4. ERROR MESSAGES: ! 509: .sp 1 ! 510: .RS ! 511: The following error messages reflect fatal errors and will cause the test of ! 512: the current controller to be aborted. ! 513: .RE ! 514: ! 515: .nf ! 516: *** Controller would not go active. Test aborted. *** ! 517: ! 518: .fi ! 519: .RS ! 520: This error message indicates that the controller is not active ! 521: after the GO bit was set. ! 522: .RE ! 523: ! 524: .RS ! 525: The following messages, concerning about the segment registers, ! 526: serve the purpose of warning only. Since the test can be carried out ! 527: even if these non-fatal errors occur. ! 528: .RE ! 529: ! 530: .nf ! 531: Warning: rseg register >= segb register ! 532: .fi ! 533: ! 534: .RS ! 535: rseg register is initialized (by the hardware) to be higher than or ! 536: equal to segb register. When this happens, either rseg is wrongly ! 537: initialized to be greater than zero (0) or segb register is preset ! 538: (by means of JP1) to zero. If the latter is the case, we have to ! 539: correct segb to desired value by means of JP1. ! 540: .RE ! 541: ! 542: .nf ! 543: Warning: tseg register <> segb register ! 544: .fi ! 545: ! 546: .RS ! 547: tseg register's content must be equal to whatever the content of segb register ! 548: is. If it is not, the hardware that is responsible for initialization ! 549: of these registers has been defected. ! 550: .RE ! 551: ! 552: .nf ! 553: Warning: rseg is not indexing to the 1st receive buffer ! 554: .fi ! 555: ! 556: .RS ! 557: rseg register's content must be 0 at initialization. ! 558: .RE ! 559: ! 560: .RS ! 561: The following message indicates that the receiver is not triggered ! 562: after a message being sent by the transmitter. This may be caused ! 563: by the failure of receiver logic (hardware). ! 564: .RE ! 565: ! 566: .nf ! 567: Warning: Receiver not responding. X message(s) are lost. ! 568: ! 569: where: X is the number of messages sent but not received. ! 570: .fi ! 571: .bp ! 572: APPENDIX C ! 573: ! 574: ! 575: A SAMPLE RUN ! 576: ! 577: .nf ! 578: #>Type '#' to cancel boot ! 579: #># ! 580: #>h. ! 581: #>y. ! 582: #>fd fsd(0,0) /* Specify disk is load device */ ! 583: /* fsd type. */ ! 584: #>fu /wcs /* Load WCS */ ! 585: #>fl /d/io.se /* test program load */ ! 586: #>y. /* initialize */ ! 587: #>r. /* execute the test */ ! 588: ! 589: Probing for V/EIU... ! 590: V/EIU no. X1 at address FFFF0000 ! 591: V/EIU no. X2 at address FFFF0100 ! 592: 2 V/EIUs found. ! 593: ! 594: BEGIN TESTING UNIT NO.: 0 ! 595: ! 596: 1. RESET AND INITIALIZATION ! 597: ! 598: Initialize V/EIU at FF0000 ! 599: Reset V/EIU unit no. 0 ! 600: ! 601: 2. REGISTERS VALIDATION TEST------------------------> ! 602: ! 603: RAR registers test: 0 error(s) ! 604: ! 605: Transmit segment reg (tseg): 8 ! 606: Receive segment reg (rseg): 0 ! 607: Boundary segment reg (segb): 8 ! 608: ! 609: 3. MODE 2 TEST--------------------------------------> ! 610: ! 611: Transmit: 20 messages ! 612: Receive: 20 messages ! 613: Discarded: 0 message(s) ! 614: ! 615: Done with: 0 mismatched message(s) ! 616: ! 617: 4. MODE 3 TEST--------------------------------------> ! 618: ! 619: Transmit: 11 messages ! 620: Receive: 11 message(s) ! 621: Discarded: 0 message(s) ! 622: ! 623: Number of Messages With ! 624: ! 625: Overrun Underrun CRC Odd # of bits ! 626: 0 10 11 0 ! 627: ! 628: Done with: 0 mismatched message(s) ! 629: 0 received message(s) w/ incorrect byte count ! 630: ! 631: ! 632: 5. MODE 3, ODD NUMBER OF BITS ERROR TEST------------> ! 633: ! 634: Transmit: 11 messages ! 635: Receive: 11 message(s) ! 636: Discarded: 0 message(s) ! 637: ! 638: Number of Messages With ! 639: ! 640: Overrun Underrun CRC Odd # of bits ! 641: 0 11 11 10 ! 642: ! 643: Done with: 11 mismatched message(s) ! 644: 11 received message(s) w/ incorrect byte count ! 645: ! 646: END TESTING OF UNIT NO.: 0 ! 647: ! 648: BEGIN TESTING UNIT NO.: 1 ! 649: ! 650: 1. RESET AND INITIALIZATION ! 651: ! 652: Initialize V/EIU at FF0100 ! 653: Reset V/EIU unit no. 1 ! 654: ! 655: 2. REGISTERS VALIDATION TEST------------------------> ! 656: ! 657: RAR registers test: 0 error(s) ! 658: ! 659: Transmit segment reg (tseg): 8 ! 660: Receive segment reg (rseg): 0 ! 661: Boundary segment reg (segb): 8 ! 662: ! 663: 3. MODE 2 TEST--------------------------------------> ! 664: ! 665: Transmit: 20 messages ! 666: Receive: 20 messages ! 667: Discarded: 0 message(s) ! 668: ! 669: Done with: 0 mismatched message(s) ! 670: ! 671: 4. MODE 3 TEST--------------------------------------> ! 672: ! 673: Transmit: 11 messages ! 674: Receive: 11 message(s) ! 675: Discarded: 0 message(s) ! 676: ! 677: Number of Messages With ! 678: ! 679: Overrun Underrun CRC Odd # of bits ! 680: 0 10 11 0 ! 681: ! 682: Done with: 0 mismatched message(s) ! 683: 0 received message(s) w/ incorrect byte count ! 684: ! 685: ! 686: 5. MODE 3, ODD NUMBER OF BITS TEST------------------> ! 687: ! 688: Transmit: 11 messages ! 689: Receive: 11 message(s) ! 690: Discarded: 0 message(s) ! 691: ! 692: Number of Messages With ! 693: ! 694: Overrun Underrun CRC Odd # of bits ! 695: 0 11 11 10 ! 696: ! 697: Done with: 11 mismatched message(s) ! 698: 11 received message(s) w/ incorrect byte count ! 699: ! 700: END TESTING UNIT NO.: 1 ! 701: .fi
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.