SCOUNIX.TXT Driver File Contents (dec_nic1.zip)

   Driver Installation - for SCO UNIX
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   (1) Introduction:
   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     The SCO UNIX driver SCO210TD.Z is the compressed image of the
     distribution diskette. The DC21X4 distribution diskette contains all
     the files required for installing the driver using custom and netconfig,
     in particular:
           - custom prep, init and remove scripts.
           - netconfig init, reconfigure and remove scripts.
           - netconfig info files
           - Driver.o, the driver
           - Space.c, the parameter file
           - /usr/include/sys/dce_space.h - header file, not
             intended to be modified


   (2). Driver Installation:
   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     To install the SCO Unix LLI Device Driver:


     1.  Copy the file SCO210TD.Z (in subdirectory A:\SCOUNIX) to SC0210T.dd.Z
         on a SCO Unix machine.

            doscp a:/scounix/sco210td.z SCO210T.dd.Z

         The number in parenthese near the file's name (see release notes)
         is the checksum for the file. To verify, use:

            sum -r SCO210T.dd.Z

          and compare the results.

     2.  Uncompress SCO210T.dd.Z to SCO210T.dd, using:
            uncompress SCO210T.dd

     3.  Copy the file to a diskette. To create a 3.5" floppy in drive 0,
         use:
            dd if=SCO210T.dd of=/dev/fd0135ds18
         Mark the diskette:
            DC21x4 PCI Ethernet Adapter LLI driver
            Rel.02.10

     4.  Run custom. From the menu select:
         Custom -> Install -> A New Product -> Entire Product

         For SCO OpenServer (Everest), run the Software Manager. From the
         menus select:
            Software -> Install New -> From Host -> Media Floppy -> Full

     5.  Put the distribution diskette in the drive and select continue.

     6.  When prompted for distribution floppy 1, just press enter.

     7.  When custom has completed, remove the diskette and quit custom.

     8.  Run netconfig. Add the desired chain. The DC21x4 drivers are called:
         dce0, dce1, dce2 and dce3. Remember that dce0 must be configured
         first, before any other driver is configured.

         Note: For boards with more than one DECchip 21x4x on them, a
               driver must be installed for each active port on the
               board. Thus, if a board has two separate ports, two separate
               chains must be created in order to connect both ports to
               networks. This is similar to installing two boards, each with
               one port.

               Not all ports must be active. If only one port is used,
               it must be the first port (as it is found on the bus
               by the PCI BIOS).

     9.  When the chain has been configured, select 'q' from the netconfig
         menu. If you don't wish to modify the space.c file relink the kernel
         at the prompt.

     10. If you wish to change parameters in the space.c file, edit
         /etc/conf/pack.d/dce0/space.c and make the required changes.
         The changes will apply to all the installed boards.

         Note: If your system does not support 32-bit protected mode PCI
               BIOS calls, you MUST modify the parameter XXX_HW_ACCESSES
               to the PCI mechanism appropriate to your system (see space.c
               for details).

     11. To activate the adapter, you must reboot. When the system boots, you
         should see the following message among the other configuration
         messages:

         %dce   0x2000-0x2200  5  -  type=DC21040/TP addr=12-34-56-78-9a-bc

             or

         %dce   0x2000-0x2200  5  -  type=DC21140/100 addr=12-34-56-78-9a-bc

         with the appropriate I/O addresses, IRQ, serial media and IEEE
         address.


    (3).  Parameters:
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

     The Space.c file contains the different parameters that can be modified.
     They can be divided into several groups:

     1. Port parameters. These include:
         XXX_HW_ACCESSES
         XXX_DC2104X_SIA_MODE
         XXX_DC21140_SERIAL_MODE
         XXX_BUS_ARBITRATION
         XXX_BURST_LENGTH
         XXX_CACHE_ALIGNMENT
         XXX_PASS_BAD_FRAMES
         XXX_BACKOFF_CNTR
         XXX_10MB_THRESHOLD
         XXX_100MB_THRESHOLD
         XXX_PARITY_ERROR_RESPONSE
         XXX_LATENCY_TIMER
         XXX_CRC_CALC
         XXX_DC21140_GPR_CTRL
         XXX_DC21140_GPR_DATA
         XXX_TURBO
         XXX_SNOOZE_MODE

     2. Driver tuning parameters:
         XXX_RX_BUFS_TO_POST
         XXX_RX_PKTS_QUEUED_THRESH_HI
         XXX_RX_PKTS_QUEUED_THRESH_LO
         XXX_MAX_USRS
         XXX_UNIFORM_CARD_MODEL

     3. Driver diagnostics control:
         XXX_DEBUG

     The meaning of each is explained in detail in the Space.c file, including
     allowed values for each parameter. The values in Space.c apply to ALL
     the installed boards.

     Space.c is NOT the place to modify the board's slot number line.
     This must be modified in netconfig, by running the reconfiguration
     script.


    (4). Errors and Trouble Shooting:
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

    1. Mismatch between PCI configuration and netconfig/space.c:

       In order for the adapter to work correctly, the same values that are
       used during the PCI configuration (e.g CFLT) must be used in the
       space.c file. Mismatches may cause the adapter to malfunction, or even
       hang the system.

       Currently, the PCI setup takes precedence except for the value for the
       latency timer, which is taken from the space.c file.

    2. Wrong HW access method for PCI configuration space:

       If the XXX_HW_ACCESSES parameter in space.c is set to a value not
       supported by your system there will be problems at boot time. Set
       this parameter to a value that is supported by your system.

       By default, the parameter is set so the driver uses 32-bit protected
       mode PCI BIOS calls.

    3. Driver binds to wrong PCI board (network):

       When multiple PCI boards are installed, the chains are bound to
       the adapters in the order that the adapters are found on the PCI
       bus by the PCI BIOS. Thus, dce0 will bind to the first adapter
       found by the PCI BIOS, dce1 to the second etc. Removing or adding
       boards without changing the configuration in netconfig can cause
       a shift in the order that chains are bound. Also, mis-identifying
       the order in which the adapters are found by the BIOS can cause
       wrong bindings. This is especially true when using boards with
       PCI-PCI bridges. The adapters on such boards are located on a PCI
       bus with a number higher than 0 (bus #1, #2 etc.) and will be found
       by the PCI BIOS after all the devices on bus zero.


    (5). Driver's Error Messages:
    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

       In "dcei" the 'i' stands for a number between 0 and 3, indicating
       the particular instance of the driver the message is reported by.

    * "dcei Could not intialize driver, PCI BIOS couldn't read/write
       configuration register"

       This message will be printed in PCI board - if can't read or write the
       configuration registers when using the PCI BIOS.

    * "dcei Could not intialize driver, found PCMC revision.1 with write-back
       cache mode"

       This message will be printed in PCI board - if PCMC rev.1 chip was
       found and it works with write-back cache mode (this mode can cause
       crash in the driver).

    * "dcei Could not intialize driver, unsupported bus"

       This message will be printed when unsupported bus (PCI is the supported
       bus), found.

    * "dcei Could not intialize driver, unsupported PCI board - DC21040
       revision.1"

       This message will be printed in PCI board - if it is a board with
       DECchip DC21040 revision 1 on it.

    * "dcei Could not intialize driver, unsupported board - DC21140 revision
       1.0"

       This message will be printed if the board has DECchip DC21140
       revision 1 on it.

    * "dcei Could not intialize driver, unsupported DECchip"

       This message will be printed if the board doesn't have one of the
       following DECchips on it:

        -DC21040
        -DC21140
        -DC21041


    * "dcei Could not intialize driver, couldn't link interrupt handler to
       interrupt line"

       This message will be printed if the driver couldn't link the interrupt
       line to the interrupt handler.

    * "dcei Could not intialize driver, unsupported interrupt line was set by
       the PCI BIOS to CFIT"

       This message will be printed in PCI board - if the value of the
       interrupt line that was read from the CFLT register > 0xF

    * "dcei Could not intialize driver, unsupported selected serial media"

       This message will be printed in boards with DECchip DC21041 or DC21140-
       if unsupported serial mode was choose by the user or read from the SROM
       (in case the user choose to use the SROM value) for the serial
       interface of DECchip DC21041 or DC21140. And in boards with DECchip
       DC21040 - if unsupported serial mode was choose by the user for the
       serial interface of DECchip DC21040

    * "dcei [DCEinit] Could not initialize driver, autosense mode conflicts
       with GPR values in space.c"

       For DC21140 based adapters, the selected serial mode is AUTOSENSE and
       there are GPR values in space.c that override the defaults.
       Either select serial mode explicitely, or set the GPR values in space.c
       back to the default values (see space.c).

    * "dcei Could not intialize driver, unsupported DC21041 mode"

       This message will be printed in boards with DC21041 on it - if the chip
       was programmed to be in DC21040 mode (this mode is unsupported by the
       driver)

    * "dcei Could not intialize driver, PCI board - couldn't read board's
       address"

       This message will be printed in PCI board (when reading IEEE address
       using CSR9) if couldn't read board address.

    * "dcei Could not intialize driver, PCI board - wrong checksum of
       board's address"

       This message will be printed in PCI board (when reading IEEE address
       using CSR9) if wrong checksum of the IEEE address was read.

    * "dcei Could not intialize driver, PCI board - the upper 16 bits of the
       CBIO != 0"

       This message will be printed in PCI board - if one of the upper 16
       bits of the CBIO register was set by the PCI BIOS

    * "dcei Could not intialize driver, SROM address is odd"

       This message will be printed if the driver tried to read odd address in
       the SROM.

    * "dcei Could not intialize driver, try to read beyond the SROM last
       address"

       This message will be printed if the driver tried to read beyond the last
       SROM address.

    * "dcei Could not intialize driver, can't read/write from/to the SROM"

       This message will be printed if the driver couldn't read/write from/to
       the SROM

    * "dcei Could not intialize driver, SROM's checksum wrong"

       This message will be printed if the checksum of the SROM is wrong.

    * "dcei Could not intialize driver, didn't find board's info in the SROM"

       This message will be printed if the board leaf-info in the SROM.

    * "dcei Could not intialize driver, read null address from the SROM"

       This message will be printed if the null IEEE address was read from the
       SROM.

    * "dcei Could not intialize driver, unsupported board"

       This message will be printed if the driver found SROM on the board but
       didn't find DC21140 or DC21041 chip.

    * "dcei Could not intialize driver, unsupported SROM version"

      This message will be printed if unsupported SROM version was found by
      the driver.

    * "dce ERROR, major number n, Ethernet controller configuration problem"

      This message will be printed in the dce_open routine when the driver
      couldn't find a specific board with specific major number

    * "dcei [dce_open] Ethernet controller not found"

      This message will be printed in the dce_open routine when a specific
      board wasn't found by the DCEinit routine and a request for opening a
      new stream to the driver was requested.

    * "dcei [dce_open] too many users are opened"

      This message will be printed in the dce_open routine when a request for
      opening a new stream was given and there are too many streams open for
      this driver

    * "dcei [dce_close] Problems deleting the alias address"

      This message will be printed in the dce_close routine when closing a
      stream that was opened to the driver and has set an alias address and
      the driver can't delete the address and create a new address table to
      the DECchip DC21x4 for some HW problems.

    * "dcei [dce_close] Problems stopping adapter"

      This message will be printed in the dce_close routine when the last
      user of the stream close the connection to the adapter and the driver
      try to stop the adapter without success (due to PCI BIOS problems)

    * "dcei [dce_srvr] putbq failed"

      This message will be printed in the dce_srvr routine when the driver
      can't put a unitdata_req in the upper protocol's queue and can't return
      it to its own queue (usually indicates a system problem).

    * "dcei Controller has transitioned to halted state dcei Halt ID
       halt_reason"

      This message will be printed when the driver detects a HW error and is
      moving to Halt state.

    * "dcei - wput : unknown stream message db_type"

      This message will be printed in the dce_wput routine when the driver is
      given an unknown STREAM message.

    * "dcei Controller has transitioned to halted state!
       Halt ID: TX Jabber Timer Expired"
         or:
      "dcei Controller has transitioned to halted state!
       Halt ID: Transmit Jabber Timer expiration interrupt"

      This messages will be printed when a TX jabber timer expired when DC21x4
      sends a packet. In this case the driver stop the adapter operation.

    * "dcei Controller has transitioned to halted state!
       Halt ID: Couldn't use PCI BIOS"

      This messages will be printed when a the driver failed to use the PCI
      BIOS for read and write the configuration registers

    * "dcei Controller has transitioned to halted state!
       Halt ID: Setupacket Timeout"

      This messages will be printed when the driver fails to send setup packet

    * "dcei Controller has transitioned to halted state!
       Halt ID: System Error occured"

      This messages will be printed when the driver reads DC21x4 status
      register and finds that the system error bit is set

    * "dcei Could not allocate an error_ack message block"

      This message will be printed when the driver couldn't allocate an error
      ack message (system resources problem).

    * "dcei [dce_unbind] Bound protocol x not found in protocol table"

      This message will be printed when the driver gets an unbind request with
      a protocol value and there is no bound stream with this protocol value.

    * "dcei - Invalid MACIOC_SETMCA message"

      This message will be printed when the driver gets an invalid
      MACIOC_SETMCA message.

    * "dcei - Invalid MACIOC_DELMCA message"

      This message will be printed when the driver gets an invalid
      MACIOC_DELMCA message.

    * "dcei - Invalid MACIOC_CLRMCA message"

      This message will be printed when the driver gets an invalid
      MACIOC_CLRMCA message.

    * "dcei - Invalid MACIOC_GETMCA message"

      This message will be printed when the driver gets an invalid
      MACIOC_GETMCA message.

    * "dcei - Invalid MACIOC_GETADDR message"

      This message will be printed when the driver gets an invalid
      MACIOC_GETADDR message.

    * "dcei - Invalid MACIOC_SETADDR message"

      This message will be printed when the driver gets an invalid
      MACIOC_SETADDR message.

    * "dcei - Invalid MACIOC_PROMISC message"

      This message will be printed when the driver gets an invalid
      MACIOC_PROMISC message.

    * "dcei - Couldn't change driver's filter mode to promiscous"

      This message will be printed when the driver gets a MACIOC_PROMISC but
      the number of users that open the driver is > 1.

    * "dcei - Invalid MACIOC_GETRADDR message"

      This message will be printed when the driver gets an invalid
      MACIOC_GETRADDR message.

    * "dcei - Invalid MACIOC_GETMCSIZE message"

      This message will be printed when the driver gets an invalid
      MACIOC_GETMCSIZE message.

    * "dcei - Internal Error : Mismatch in transmit list pointers"

      This message will be printed when something wrong the driver internals
      transmit pointers.

    * "dcei - dl_unitdata_req with bad Ethernet header size"

      This message will be printed when the driver gets a packet with length >
      Ethernet packet length.

    * "dcei - dl_unitdata_req - stream is not bound"

      This message will be printed when the driver gets packets to send from
      an unbound protocol.

    * "dcei - dl_unitdata_req - DL unitdata request is invalid length!"

      This message will be printed when the driver gets a packet to transmit
      which isn't a legal Ethernet size.

    * "dcei - wput req : unknown; "

      This message will be printed when an unknown wput request was sent from
      the upper layer.

   * "dcei - wput ioctl : default, uknown ioctl; "
      This message will be printed when an unknown ioctl message was sent from
      the upper layer.

   * "dcei - Internal error in autodetect!"
      This message will be printed when internal error was detected in media
      autodetection
Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: web1, load: 2.16