**
**
**  VIA Rhine Family Fast Ethernet Adapter
**
**  DIAG Utility
**
**  v3.37   Feb. 2005
**
**

Introduction:
=============

  This document shows you how to use the diag utility.


Contents of the Subdirectory:
=============================

    DIAG.EXE            The diag utility program file.
    DIAG.TXT            This file.


Usage:
======

    The diag menu consists of four functions:

    1.  I/O Base Address
        I/O base address is assigned by PCI BIOS and can not be modified.


    2.  Interrupt Output Line
        Interrupt is assigned by PCI BIOS and can not be modified.


    3.  Connection Type
        The physical media currently you had connected.


    4.  Boot ROM 
        You can select Boot ROM 64K/FlashROM or No Boot ROM.
        Boot ROM base address is assigned by PCI BIOS and can not be modified.


    5.  Ethernet Address
        Ethernet MAC address of this card.


    6.  Chip Type
        Chip type of this card.


Key definition:
===============

    F1      Help screen.
    F4      Change boot ROM size.
    F5      Diagnose this network adapter.
    F6      Network test in Master/Slave mode.
    F7      WOL test in Link on/off or Waker/Sleeper mode.
    F8      Change connection type.


Command line usage:
===================

    Command line syntax:

    DIAG [-[OPTION][NUMBER] [-[OPTION][NUMBER]...]]

    Command line options:

    -?             show help.

    -h             show help.

    -e#            Miscellaneous switches.
                   # : ( 0 - 3 ) function number.
                   e0: Display extended menu item.
                   e1: Disable shared IRQ support.
                   e2: No test cable link in diagnostic.
                   e3: External loopback test in diagnostic.

    -d#            Specify auto-test function to diagnose.
                   # : ( 1 ~ 8 ) card number, could be ignored.
                   d: auto-test with first adapter.
                   d4: auto-test with 4th adapter.

    -f#            Specify the frequency of auto-test function.
                   This parameter should be used together with auto-
                   test parameters like -d or -p or -n.
                   # : ( 1 ~ 4294967295 ) test times, could be ignored.
                   f: auto-test continuously, never stop.
                   f100: auto-test 100 times.
                   f65536: auto-test 65536 times.

    -m#            Initialize with forced mode.
                   # : ( 1 ~ 4 ) connection type.
                   m1: 100BaseTx Half-Duplex mode.
                   m2: 100BaseTx Full-Duplex mode.
                   m3: 10BaseT Half-Duplex mode.
                   m4: 10BaseT Full-Duplex mode.

    -p#            Specify auto-test function to 2-card network test.
                   # : ( 0 | 1 | 60 - 1514 ) packet size selection.
                   p0: 2-card test with increased packet size.
                   p1: 2-card test with random packet size.
                   p60: 2-card test with fixed packet size 60 bytes.
                   p512: 2-card test with fixed packet size 512 bytes.

    -n# [len]      Specify auto-test function to network pingpong test.
                   # : ( 1 - 8 ) card number, could be ignored.
                   len : ( 0 | 1 | 60 - 1514 ) packet size selection.
                   0: pingpong test with increased packet size.
                   1: pingpong test with random packet size.
                   60: pingpong test with fixed packet size 60 bytes.
                   512: pingpong test with fixed packet size 512 bytes.
                   If len is omitted then use fixed packet size 60 bytes.

    -k#            Show MAC address, SVID, SSID, PHY ID in EEPROM of the card.
                   # : ( 1 - 8 ) card number, could be ignored.

    -c             Show EEPROM checksum checking & SVID/SSID on UI.

    -mac# -ioxx ix [va]          
                   MAC register read/write function.
                   # : ( 1 - 8 ) card number, could be ignored.
                   ioxx: Specify IO access type for MAC regsiter read/write
                   iobr: byte read IO access.
                   iobw: byte write IO access.
                   iowr: word read IO access.
                   ioww: word write IO access.
                   iodr: dword read IO access.
                   iodw: dword write IO access.
                   ix: register index.
                   va: register value for write.
                   For example: -mac -iobr 5f: byte read MAC reg 5f.
                   For example: -mac -ioww c0 0030: word write MAC reg c0 0030.

    -mii# -ioxx ix [va]         
                   MII register read/write function. 
                   # : ( 1 - 8 ) card number, could be ignored.
                   ioxx: Specify IO access type for MII regsiter read/write.
                   iowr: word read IO access.
                   ioww: word write IO access.
                   ix: register index.
                   va: register value for write.
                   For example: -mii -iowr 03: word read MII reg 03.
                   For example: -mii -ioww 03 0030: word write MII reg 03 0030.


Exit status:

    0              Command execution success.
    1              Command execution fail.

