# IDAdapt.exe - Intel PCI NIC Identification Utility

Version 1.2 - August 09, 2002

## CONTENTS

- OVERVIEW

- RUNNING THE UTILITY

- USAGE NOTES

- EXAMPLES

- LIMITATIONS

- DRIVER TO PCI ID CROSS REFERENCE

## OVERVIEW

The Intel PCI NIC Identification Utility identifies Intel PCI adapters and provides adapter properties and assigned resources. You can readily use this information in batch, script and configuration files for automation purposes.

The utility returns the following values:

- PCI device ID (PCI ID). Adapters sharing the same PCI device ID can use the same driver. See the table at the end of this document showing the relationship between drivers and PCI device IDs.

- Sub System ID (SSID). Each adapter model has a different SSID. Where the PCI device ID identifies the adapter family, the SSID identifies the specific model.

- MAC address (MAC). 12-digit Ethernet ID assigned to the adapter. This number is also printed on the adapter label.

- Slot number in decimal (SLOT). PCI logical slot number reported by the adapter; returned in decimal format. Not related to the physical slot number on the motherboard.

- Slot number in hexadecimal (SLOTX). PCI logical slot number reported by the adapter; returned in 4-digit hexadecimal format. Not related to the physical slot number on the motherboard.

## RUNNING THE UTILITY

To run IDADAPT.EXE, you must start the computer in DOS. This utility should not be run from a DOS session within any version of Microsoft Windows*, or in any other non-DOS operating system.

IDADAPT.EXE can be run with no command line options, or with either of the following command line options:

/? | Displays help information
/B:<filename> | Creates a file containing the adapter properties with the name specified in the format of a DOS batch file. Usage examples are listed below.

If this file is named with the extension of .BAT, it can be executed as a batch file. Executing this batch file will create environment variables from the adapter properties.

## USAGE NOTES

Running the utility with no command line parameters displays the adapter properties on the screen. For example, if you enter IDADAPT in a computer with 2 Intel PCI adapters installed, the display would resemble the following:

    NIC1 SLOT=43 SLOTX=002B PCI ID=1229 SSID=00018086 MAC=0002B31FE072
    NIC2 SLOT=47 SLOTX=002F PCI ID=1031 SSID=00138086 MAC=0090270AAF73

In this example, the first adapter has the following properties:

- Logical slot number is 43 (decimal)

- Logical slot number is 002B (hexadecimal)

- PCI device ID is 1229

- Sub System ID is 00018086

- MAC address is 0002B31FE072

The utility will display properties for up to 8 adapters in a computer.

If the utility does not find any adapters, it reports "No supported adapters were found" and returns an error level of 1. You can use the error level for conditional branching in batch files.

If you run the utility using /B:<filename>, it creates a file with the name you specified. This file contains adapter properties in a batch file format. This is an example batch file:

    SET NIC1_SLOT=43
    SET NIC1_SLOTX=002B
    SET NIC1_PCIID=1229
    SET NIC1_MAC=0002B31FE072
    SET NIC1_SSID=00018086

    SET NIC2_SLOT=47
    SET NIC2_SLOTX=002F
    SET NIC2_PCIID=1031

    SET NIC2_SSID=00138086
    SET NIC2_MAC=0090270AAF73

If the name you assign to the file ends in .BAT, it can be executed in DOS. Executing the file sets environment variables for each property of each adapter.

Once the environment variables are created by the batch file, you can insert the values into configuration files as needed. See examples below.

When using this batch file, remember that about 80 bytes of environment space will be needed for each adapter found. Insure that you make sufficient environment space available in your configuration.

Important note concerning slot numbering

The decimal slot number (SLOT) returned by the utility is formatted in conventional style for both 10/100 and 10/100/1000 adapters. The conventional style consists of the PCI bus number plus the PCI device number. This will work in the PROTOCOL.INI for the NDIS 2 driver for both adapter families. However, this will not work for the DOS ODI driver for 1000 MB capable adapters, or second port of a multiport 1000 MB capable adapter in the PROTOCOL.INI for NDIS 2 drivers.

The hexadecimal slot number (SLOTX) returned by the utility is formatted differently for 1000 MB capable adapters. This newer format takes the conventional style and left-shifts it 3 bits. The low order 3 bits are used to specify the port number on multiport 1000 MB capable adapters.

You should always use the SLOTX parameter in the NET.CFG for the DOS ODI driver for 1000 MB capable adapters (E1000ODI.COM). Use of the SLOTX parameter in the PROTOCOL.INI for the NDIS 2 driver for the 1000 MB capable adapters (E1000.DOS) is optional unless attempting to use the second port of a multiport adapter.

When using the slot number in a PROTOCOL.INI, remember that the usage rules are different for hexadecimal values as opposed to decimal values. When using a hexadecimal value, the number must be preceded by 0x.

PROTOCOL.INI decimal value example:

    Drivername = E1000
    SLOT =  47

PROTOCOL.INI hexadecimal value example:

    Drivername = E1000
    SLOT =  0x0138

NET.CFG example

    LINK DRIVER E1000
    SLOT 0138

## EXAMPLES

To create a startup disk that loads a Packet Driver named PCKTDRVR.COM on the second found NIC, the AUTOEXEC.BAT file might contain the following:

    IDADAPT /B:INTELSET.BAT
    IF ERRORLEVEL 1 GOTO NO_NIC
    CALL INTELSET.BAT
    PCKTDRVR 0x60 %NIC2_SLOT%
    GOTO END
    :NO_NIC
    ECHO NO ADAPTER FOUND!!
    PAUSE
    :END

To create a startup disk that automatically detects the adapter model and loads the proper DOS ODI driver, the AUTOEXEC.BAT file might contain the following:

    IDADAPT /B:INTELSET.BAT
    IF ERRORLEVEL 1 GOTO NO_NIC
    CALL INTELSET.BAT
    LSL
    IF "%NIC1_PCIID%" == "1229" GOTO PRO100
    IF "%NIC1_PCIID%" == "2449" GOTO PRO100
    IF "%NIC1_PCIID%" == "1000" GOTO PRO1000
    IF "%NIC1_PCIID%" == "1001" GOTO PRO1000
    IF "%NIC1_PCIID%" == "1002" GOTO PRO1000
    IF "%NIC1_PCIID%" == "1003" GOTO PRO1000
    IF "%NIC1_PCIID%" == "1004" GOTO PRO1000
    GOTO NO_NIC
    :PRO100
    E100BODI
    GOTO CONTINUE
    :PRO1000
    E1000ODI
    GOTO CONTINUE
    :CONTINUE
    IPXODI
    VLM /V4
    GOTO END
    :NO_NIC
    ECHO !! NO SUITABLE ADAPTER FOUND !!
    PAUSE
    :END

## LIMITATIONS

This utility is designed to work with Intel PCI adapters. It should work with any modern Intel PCI bus adapter, as well as LAN on Motherboard designs based on Intel 10/100 and 10/100/1000 silicon.

It does not work with any Intel CardBus, PCMCIA, ISA, EISA or MCA bus adapters, or obsolete products (released prior to 1996) Intel network adapters of any architecture.

IDADAPT.EXE will detect and return information on a maximum of eight adapters in a computer.

IDADAPT.EXE will not work if EMM386.EXE is loaded. If you must use EMM386 in your boot disk configuration due to memory limitations, you can set up your boot diskette to boot without EMM386, run IDADAPT and build a batch file with the adapter information, then change your configuration files to include EMM386 and reboot. Then run the resulting batch file to set the environment variables.

## DRIVER TO PCI ID CROSS REFERENCE

PCI ID | ADAPTER FAMILY | NDIS 2 driver | DOS ODI driver
1000 | PRO/1000 | E1000.DOS | E1000ODI.COM
1001 | PRO/1000 | E1000.DOS | E1000ODI.COM
1002 | PRO/1000 | E1000.DOS | E1000ODI.COM
1003 | PRO/1000 | E1000.DOS | E1000ODI.COM
1004 | PRO/1000 | E1000.DOS | E1000ODI.COM
1005 | PRO/1000 | E1000.DOS | E1000ODI.COM
1006 | PRO/1000 | E1000.DOS | E1000ODI.COM
1007 | PRO/1000 | E1000.DOS | E1000ODI.COM
1008 | PRO/1000 | E1000.DOS | E1000ODI.COM
1009 | PRO/1000 | E1000.DOS | E1000ODI.COM
100A | PRO/1000 | E1000.DOS | E1000ODI.COM
100B | PRO/1000 | E1000.DOS | E1000ODI.COM
100C | PRO/1000 | E1000.DOS | E1000ODI.COM
100D | PRO/1000 | E1000.DOS | E1000ODI.COM
100E | PRO/1000 | E1000.DOS | E1000ODI.COM
100F | PRO/1000 | E1000.DOS | E1000ODI.COM
1229 | PRO/100+/S families | E100B.DOS | E100BODI.COM
1030 | InBusiness 10/100 | D100IB.DOS | N/A
1031 | PRO/100 V family | E100B.DOS | E100BODI.COM
103A | PRO/100 V family | E100B.DOS | E100BODI.COM
103B | PRO/100 V family | E100B.DOS | E100BODI.COM
103C | PRO/100 V family | E100B.DOS | E100BODI.COM
103D | PRO/100 V family | E100B.DOS | E100BODI.COM
103E | PRO/100 V family | E100B.DOS | E100BODI.COM
2449 | PRO/100 V family | E100B.DOS | E100BODI.COM

`Last modified on 8/22/02 5:26p Revision 3`