# IDAdapt.exe - Intel PCI NIC Identification Utility

## Contents

- Overview

- Running the Utility

- Usage Notes

- Examples

- Linitations

- Driver-to-PCI ID Cross Reference

## Overview

The Intel PCI NIC Identification Utility identifies Intel PCI NIC 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:

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

- SLOTX (Slot number in hexadecimal, for Gigabit solutions). The PCI logical slot number reported by the adapter, in hexadecimal format. Not related to the physical slot number on the motherboard.

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

- SSID (Sub System ID). The PCI subsystem ID and subvendor ID, displayed in hexadecimal. Each adapter model has a different SSID. The PCI ID identifies the adapter family; the SSID identifies the specific model.

- RevID (PCI Revision ID). The PCI Revision ID reported by the adapter, in decimal format. The PCI Revision ID can be the only difference between some adapter SKUs.

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

## Running the Utility

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

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 called <filename> and stores the adapter's properties in it. The file is formatted as a DOS batch file, and can be executed as such if <filename> ends in .BAT. Executing it will create environment variables from the adapter properties. Usage examples are listed below.

## 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=0068 PCI ID=1229 SSID=10118086 MAC=0002B31FE072 RevID=4
    NIC2 SLOT=47 SLOTX=0069 PCI ID=1031 SSID=10118086 MAC=0090270AAF73 RevID=4

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

- Logical slot number is 43 (decimal)

- Logical slot number is 0068 (hexadecimal)

- PCI device ID is 1229

- Sub System ID is 10118086

- PCI Revision ID is 4

- MAC address is 0002B31FE072

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=0068
    SET NIC1_PCIID=1229
    SET NIC1_SSID=10118086
    SET NIC1_MAC=0002B31FE072
    SET NIC1_REVID=4
    SET NIC2_SLOT=47
    SET NIC2_SLOTX=0069
    SET NIC2_PCIID=1031
    SET NIC2_SSID=10118086
    SET NIC2_MAC=0090270AAF73
    SET NIC2_REVID=4

When the name you assign to the file ends in .BAT, it can be executed in MS-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 64 bytes of environment space will be needed for each adapter port found. Ensure that you make sufficient environment space available in your configuration. To set the available environment space in DOS, use the shell= command in the CONFIG.SYS file. For example, to set the environment space to 2048 bytes, you would use the following line in the CONFIG.SYS file (assuming you are booting from the A drive):

SHELL=A:\command.com a:\ /e:2048 /P

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 1Gigabit capable adapters, or second port of a multiport 1Gigabit capable adapter in the PROTOCOL.INI for NDIS 2 drivers.

The hexadecimal slot number (SLOTX) returned by the utility is formatted differently for 1 Gigabit 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 1 Gigabit capable adapters.

You should always use the SLOTX parameter in the NET.CFG for the DOS ODI driver for 1 Gigabit capable adapters (E1000ODI.COM). Use of the SLOTX parameter in the PROTOCOL.INI for the NDIS 2 driver for the 1 Gigabit 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

> 1. 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

> 2. 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 does not work with any Intel CardBus, PCMCIA, ISA, EISA or MCA bus adapters, or Intel network adapters of any architecture released prior to 1996.

IDADAPT.EXE will detect and return information on a maximum of sixteen adapter ports in a computer.

IDADAPT.EXE will not work if EMM386.EXE or a similar upper memory manager 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 5/19/04 9:53a Revision 1`