
IBM ISA Ethernet adapter "corrupted configuration" problem
----------------------------------------------------------

NOV. 02, 1995 (Updated to include new NDIS 2.0.1 DOS driver, DOS/ODI driver,
               and NT driver for the adapter)

For assistance:
Call the "Options by IBM" hotline 1-800-426-7299 for technical support.
You can download the ENETPTC2.EXE file from our BBS at 919-517-0001 or
the internet FTP site, FTP.PCCO.IBM.COM.



Introduction:
-------------

This paper will explain how to use the IBM-written program
"ENETCFG" as a software patch to prevent the intermittent
"corrupted configuration" problem being seen on
the IBM LAN Adapters for Ethernet when used in some IBM Series 300
and Series 700 system units.

ENETCFG should be used when the IBMENIO.LAN ODI server driver is being
used to make a system with the IBM LAN Adapter for Ethernet a Netware
server.

An OS/2 driver for the IBM LAN Adapters for Ethernet
is included in this package.  This driver - called IBMENI.OS2 - will
set the adapter configuration when the corrupted configuration is
detected and thus allow the driver to load and the adapter to be used.

New with this package is a new special NDIS/DOS driver IBMENI.DOS,
a special Windows NT driver IBMENINT.SYS, and DOS/ODI driver IBMENIO.COM.
These drivers will set the adapter configuration when the corrupted
configuration is detected.

This paper is part of package to be released that will include this
file in a flat text version, a DOS-based version of ENETCFG called
ENETCFG.EXE, a new, special NDIS OS/2 driver
for the adapter for OS/2 users, a new, special NDIS DOS driver for
the adapter, a new special NT driver, and a new special DOS/ODI client
driver for the adapter.


Caveat and Note for this patch
------------------------------

RPL users
---------
Note that this patch will allow all users of the IBM ISA Ethernet
adapters to overcome the problem being experienced
unless they are using the Remote Program Load (RPL) feature
of the adapter to download an operating system to a PC that does
not have a hard drive.  Those customers will need redesigned adapters
which are now available from IBM.

Note
----

The adapter's EPROM must be disabled if you are encountering
this configuration corruption problem.  Since the EPROM code
- namely the Power On Self Test and the code that attempts to RPL
- runs before the AUTOEXEC.BAT or CONFIG.SYS file is read, the
EPROM will detect the corrupted configuration and will report and
error message, failing POST and will not be able to RPL.  Hence,
to avoid the presenting of the error message, one should disable
the EPROM, either using the configuration/diagnostic utility
CONFIG that is on the adapter option diskette or using ENETCFG.


About the IBM Ethernet adapter problem
--------------------------------------

The problem experienced with the IBM LAN Adapter for Ethernet
occurs in PC Series 300 and 700 system units.  The adapters
affected are:

- The IBM LAN Adapter for Ethernet (p/n 48G7169, FRU 48G7170) -
  a 3-media, "combo" ISA-bus adapter
- The IBM LAN Adapter for Ethernet TP (p/n 60G0605, FRU 60G0611) -
  a Twister Pair (UTP)-only ISA-bus adapter
- The IBM LAN Adapter for Ethernet CX (p/n 60G0615, FRU 60G0621) -
  a Coaxial (Thin Ethernet)-only ISA-bus adapter

The problem is manifested such that the adapter, after a cold
boot (power cycled off then back on), will have its stored
configuration corrupted.  The configuration of the adapter
in all documented cases after the corruption is as follows:

    I/O Base Address = 300

    Interrupt Assignment = X,  where X represents the fact that
    the interrupt is disabled and the adapter will not operate

    Physical Media = TPI(10BaseT)

    Adapter Architecture = I/O Port

    Boot Prom = No Boot PROM

    Advanced Configuration
    -----------------------
    CHRDY generated as normal (this is the default value)
    TPI Link Integrity checking enabled (this is the default value)
    No Boot PROM

NOTE!
The adapter's configuration, when corrupted, is set to the above
configuration regardless of the adapter's previous configuration.

Of course, since one does not usually check the configuration of the
adapter after a cold boot, the first evidence of the occurrence of the
corrupted configuration is that a device driver load will not work
and/or the system will hang.


Device driver error messages
----------------------------

Novell DOS client users may see an error message during a system boot
as follows:

    Warning: IBMENIO-DOS-100 Possible adapter interrupt mismatch error

The device driver IBMENIO.COM and IBMENIO.LAN will subsequently fail to load.

IBM DOS LAN Support Program (LSP) users may see an
error message during a system boot as follows:

    LTA0007E Interrupts are not enabled.  Initialization failure.

The device driver IBMENIO.DOS will subsequently fail to load.

Windows for Workgroups users may see a Windows dialog
box displayed as Windows is starting up that indicates the network
adapter failed to start and that the network features of Windows
will not be available.

OS/2 users will note a device error message indicating that the
adapter i/o or interrupt of the adapter does not match those settings
specified in the PROTOCOL.INI file.  The driver will not load or bind
and the adapter cannot be used.

Users of other applications may seem similar error messages
during the system power-up as the application and/or device drivers
attempt to initialize the adapter.


RPL users
---------

Note that if you had set your adapter's configuration to use
the Power-On Self Test/Remote Program Load (POST/RPL) Boot PROM,
you will see POST message during the boot process similar to
those shown below:

    PROO3 IRQ Setup error

or

    PR001 POST/RPL ROM Integrity error

followed by

    PR100 No adapter available for RPL


Note that the problem described is intermittent, does not
happen on all IBM LAN Adapters for Ethernet and will not
occur on all IBM PC Series 300 and 700 machines.  To date,
the machines that have most often caused the problem are
6571-K4F, 6571-K3B and 6885-45J.



About ENETCFG
-------------

ENETCFG is a standalone DOS-based program that will configure the
IBM ISA Ethernet adapters.  The executable file - ENETCFG.EXE - is
being made available by IBM Ethernet Development as part of this
package.

ENETCFG is for use in DOS Novell server environments refer to section called
DOS/Novell server below . DOS/ODI Novell client environments refer to
the section below entitled "Using the new DOS/Novell client driver."
OS/2 users should refer to the section below entitled:
"Using the new OS/2 driver." Windows for Workgroups, LSP and
DOS LAN Services users should refer to the section below entitled:
"Using the new DOS driver."

ENETCFG can be executed from the DOS prompt.  To see the
available command line parameters that can be used with ENETCFG,
simply type at the DOS prompt: ENETCFG (upper
or lower case).  This will cause the program to display the
available parameters as shown here:


Ethernet Configuration Utility   Version 1.30
Copyright (c)  1995 IBM Corp.  All rights reserved.

Usage: ENETCFG [options]
 Options List
  -config          = Display Adapter Information Only
  -enet <adapter>  = Select Ethernet Adapter (Default -enet 1)
  -media <type>    = Select Media Type
  -io <address>    = Select I/O Address
  -prom <location> = Select Boot PROM Location
  -int <level>     = Select Interrupt Level
  -arch <mode>     = Select Architecture Mode
  -chrdy <time>    = Select Channel Ready Timing (Default -chrdy normal)
  -link <status>   = Select Link Pulse Status (Default -link enable)
 Parameter List
  <adapter> = 1, 2, 3, or 4      <type> = tpi, thin, or thick
  <mode> = io_port or shared     <time> = normal or fast
  <address> = disable, 240, 280, 2c0, 300, 320, 340, or 360
  <location> = disable, c800, cc00, d000, d400, d800, or dc00
  <level> = disable, 2, 3, 4, 5, 7, 9, 10, or 11
  <status> = disable or enable
 Example:  enetcfg -enet 2 -media tpi



The software patch: ENETCFG
---------------------------

ENETCFG can be used to write the configuration of the adapter
at every power-up to assure that the adapter is configured as
required.  The EEPROM on the adapter and the configuration
registers of the adapter's controller are written by ENETCFG
and the adapter will be set to configuration required for
the applications it is to be used for.



How to install ENETCFG as a software patch for this problem
-----------------------------------------------------------

DOS/Novell Server
----------------

This procedure is required only if you are using the ODI driver -
IBMENIO.LAN

1. First of all, configure your adapter as desired - to the
   required I/O and IRQ.  Configure the adapter such that the Boot PROM
   is disabled  You can use the "CONFIG" program
   that ships with the adapter on its option diskette to do this or
   you can use "ENETCFG".

2. Copy the file ENETCFG.EXE from the diskette you have it on
   to the root directory of your PC's C: drive (or whatever
   hard drive your system boots up from).

3. Edit your AUTOEXEC.BAT such that it contains the
   ENETCFG command you require as the first line in this file.

   NOTE:  It is imperative that the ENETCFG
   command is the first line in the AUTOEXEC.BAT file at all times

   The line will vary depending on your desired configuration.
   Here's an example:

        enetcfg -int 5

4. Save your AUTOEXEC.BAT file.

With this in your AUTOEXEC.BAT file, the adapter will be set to
the required configuration at every boot up regardless of whether
or not the configuration got corrupted during the cold boot, assuring
you of your desired adapter configuration.


Using the new DOS/Novell client driver
--------------------------------------

A new IBMENIO.COM driver was added in this package and is a direct
replacment for the customer's current IBMENIO.COM driver. So the
customer can simple replace their current driver with this new one.
Dated IBMENIO.COM 10/20/95, 3:51p, size = 29993

In addition the customer will need to edit the NET.CFG file so that
it contains the cable type they are using.

-------------
Instructions:
-------------

Instructions for implementation of this fix are as follows:

1. Copy the new version of IBMENIO.COM over the existing version on
   the system to be updated.

2. In your directory wherever your network operating system's
   NET.CFG file is located, edit your NET.CFG.

   Locate the section of the NET.CFG, which pertains to the
   IBM LAN Adapter for Ethernet.
   Make sure the cable type is defined for the application you
   are using.

   Cable Twisted  (for UTP 10BaseT)
   Cable Thin     (for coaxial 10Base2)
   Cable Thick    (for the AUI 10Base5)

   Example NET.CFG (Using UTP 10BaseT connection)
   Link Driver IBMENIO
   Port 300
   INT 3
   Cable Twisted

With the above steps completed, the new driver will be able to
detect and correct the occurrence of the corrupted configuration.
If the configuration is corrupted, the driver will detect the
corruption before loading, read your NET.CFG for the desired
PORT, INT, and CABLE settings and will write the configuration
to the adapter. The driver will then load.



Using the new NDIS/DOS driver
-----------------------------

This README.TXT accompanies a new version of the IBM LAN Adapters for
Ethernet NDIS/DOS device driver, called IBMENI.DOS, dated
10/8/95, 1:25p, size = 15518.

The new IBMENI.DOS driver is a direct replacement for a customer's current
IBMENI.DOS driver.  So the customer can simply replace their current
driver with this new one.

In addition, the customer will need to edit his PROTOCOL.INI file
so that it contains an additional line - Media = xx - where xx is the media
the user wished to use: CX (for coaxial 10Base2), TP (for UTP 10Base-T)
or AUI (for the AUI connector).

This driver can be used in any application where an NDIS 2.0.1 driver
is required - such as IBM Lan Support Program (LSP), IBM DOS LAN Services,
and Windows for Workgroups 3.11.


-------------
Instructions:
-------------

Instructions for the implementation of this fix are as follows:

1. Copy the new version of IBMENI.DOS over the existing version on
   the system to be updated.

2. In your directory wherever your network operating system's
   PROTOCOL.INI file is located), edit your PROTOCOL.INI.

   Locate the following section of the PROTOCOL.INI, which pertains to the
   IBM LAN Adapter for Ethernet:

        .
        .
        .

        [IBMENI_nif]

           DriverName = IBMENI$
           IOBase = 0x300
           Interrupt = 5

   Your IOBase and Interrupt setting may differ depending on your
   configuration.  You may have an additional line that reads:
   RAMADDRESS = 0xD0000 or something similar; it is acceptable to have
   that line if you are using the adapter in its Shared Memory mode.

   Add the following line to the above section:

            Media = TP

   or CX or AUI, depending on which media connection your adapter uses.

   So that now, this section of your PROTOCOL.INI file looks something
   like this


        [IBMENI_nif]

           DriverName = IBMENI$
           IOBase = 0x300
           Media = TP
           Interrupt = 5

    The new "Media" keyword is not case sensitive so you can enter it in
    all caps or all lower-case letters; the same applies to the parameter
    entry itself, so again you could enter "tp" or "TP".

    Once you have completed editing your PROTOCOL.INI, save the file and
    exit your editor.

With the above steps completed, the new driver will be able to detect and
correct the occurrence of the corrupted configuration.  If the configuration
is corrupted, the driver will detect the corruption before loading,
read your PROTOCOL.INI for the desired settings and will write the
configuration to the adapter.  The driver will then load.


Using the new OS/2 driver
-------------------------

This README.TXT accompanies a new version of the IBM LAN Adapters for
Ethernet OS/2 NDIS 2.0.1 device driver, called IBMENI.OS2, dated
5/11/95, 11:13am, size = 13192.

The new IBMENI.OS2 driver is a direct replacement for a customer's current
IBMENI.OS2 driver.  So the customer can simply replace their current
driver with this new one.

In addition, the customer will need to edit his PROTOCOL.INI file
(located in the directory \IBMCOM for IBM OS/2 LAN Server/Requester users)
so that it contains an additional line - Media = xx - where xx is the media
the user wished to use: CX (for coaxial 10Base2), TP (for UTP 10Base-T)
or AUI (for the AUI connector).


-------------
Instructions:
-------------

Instructions for the implementation of this fix are as follows:

1. Copy the new version of IBMENI.OS2 over the existing version on
   the system to be updated.

   If the new driver is on a diskette in the A: drive, a command similar
   to the following can be entered at an OS/2 prompt:

        copy a:\ibmeni.os2 c:\ibmcom\macs

2. In your \IBMCOM directory (or wherever your network operating system's
   PROTOCOL.INI file is located), edit your PROTOCOL.INI.

   Locate the following section of the PROTOCOL.INI, which pertains to the
   IBM LAN Adapter for Ethernet:

        .
        .
        .

        [IBMENI_nif]

           DriverName = IBMENI$
           IOBase = 0x300
           Interrupt = 5

   Your IOBase and Interrupt setting may differ depending on your
   configuration.  You may have an additional line that reads:
   RAMADDRESS = 0xD0000 or something similar; it is acceptable to have
   that line if you are using the adapter in its Shared Memory mode.

   Add the following line to the above section:

            Media = TP

   or CX or AUI, depending on which media connection your adapter uses.

   So that now, this section of your PROTOCOL.INI file looks something
   like this


        [IBMENI_nif]

           DriverName = IBMENI$
           IOBase = 0x300
           Media = TP
           Interrupt = 5

    The new "Media" keyword is not case sensitive so you can enter it in
    all caps or all lower-case letters; the same applies to the parameter
    entry itself, so again you could enter "tp" or "TP".

    Once you have completed editing your PROTOCOL.INI, save the file and
    exit your editor.

With the above steps completed, the new driver will be able to detect and
correct the occurrence of the corrupted configuration.  If the configuration
is corrupted, the driver will detect the corruption before loading,
read your PROTOCOL.INI for the desired settings and will write the
configuration to the adapter.  The driver will then load.


-----------
Some notes:
-----------

1. The above instructions must be followed to assure the proper operation of
   the new driver.  The new keyword and parameter - Media = TP - for example,
   must be present in the PROTOCOL.INI for the new driver to be able to
   correct the corrupted configuration.

2. If you wish to change the i/o address, interrupt setting, media,
   or mode of the adapter, you must change the PROTOCOL.INI
   file to reflect the desired parameter settings.

3. If the BOOT PROM is enabled the adapter will run POST (Power on self test)
   and the following error will be displayed if the lost configuration
   happens.

   ** IBM LAN Adapter for Ethernet POST/RPL V2.20
   (c) IBM, 11/08/94 ALL RIGHTS RESERVED Adapter at I/O 0XXXh......
   *IRQ SETUP ERROR PR003*
   Press F1 to Continue.


*** Make sure the adapter BOOT PROM is DISABLED*****
    It is not necessary to have the boot prom enabled
    unless you are performing an RPL function.

This error occurs because POST is executed before the
NDIS/DOS driver is loaded; the driver has to be loaded to detect any
lost configuration problem and fix it.



Using the new Windows NT NE2000-Compatible driver
-------------------------------------------------

The new Windows NT driver IBMENINT.SYS, Size 34304, Date 6/9/95
is a direct replacement for a customers
current NOVELL NE2000 Compatible driver. So the customer can
simply replace their current driver with this new one.

An OEMSETNT.INF file is provided on this diskette for installation
of this driver under NT.

NOTE: The IBM LAN Adapter for Ethernet must be configured to its
NE2000-compatible mode to use this driver.  The adapter's architecture
parameter should be set to "I/O PORT" for NE2000 compatibility.
The adapter can be set to any valid, available I/O port and
Interrupt Setting (IRQ).
