Peripheral Component Interconnect (PCI) Errata
Version 2
This document covers differing personal computer implementations of PCI
and how they will affect PCI adapters including specific information on
HP PCI LAN adapters. The topics covered are:
A. EMM386 Trap Problem
B. Windows NT 3.5 KMODE_EXCEPTION_NOT_HANDLED Problem
C. Boot Difficulties After a Soft Reboot (i.e. Ctrl-Alt-Del).
D. PCI Plug-and-Play
1. PCI Plug-and-Play BIOS Resource Assignment
2. I/O Address Range, Interrupt Channel, and Memory-Map Address Range
E. Assigning Adapters to Drivers
1. Support for Slot Numbers Added in PCI BIOS 2.1
2. Driver Auto-location of Single Adapter
3. Identifying Multiple Adapters to Drivers
4. Virtual Slot Numbering in PCI BIOS 2.0 Computers
F. Memory Map Addressing Issues
1. Memory-Map in Upper Memory Area for DOS ODI and NDIS drivers
2. Multiple PCI Bus Computers and DOS Memory-Mapped Data Transfers
3. Illegal Memory-Map Address Ranges Assigned
G. Interrupt Sharing
1. PCI INTA, INTB, INTC, and INTD
2. Interrupt Channels Assigned Per Slot or Shared Across All Slots
3. Driver Interrupt Sharing Problems
4. IBM OS/2 2.X Needs Service Pack Installed
5. MS OS/2 1.X Does Not Support Interrupt Sharing
H. More Information on HP FAX Retrieval Service
A. EMM386 Trap Problem
======================
Some computers running MS-DOS EMM386, may trap and halt when PCI drivers
(or HPVGSET) are loaded. This is a known incompatibility between EMM386
and some PCI BIOS implementations. To prevent this problem, run EMM386
version 4.49 or later. Version 4.49 is shipped with MS-DOS 6.22 and is
also available on this diskette in the \EMM386 directory.
Please follow the instructions in the README file to update your version
of EMM386.EXE.
B. Windows NT 3.5 KMODE_EXCEPTION_NOT_HANDLED Problem
=====================================================
Some computers running NT 3.5 will crash with the error message:
KMODE_EXCEPTION_NOT_HANDLED ***Address ? has base at ? - NDIS.SYS
The solution is to apply Microsoft NT Service Pack 2. This fixes many
problems of which some change how NT handles Intel PCI bus chipsets.
C. Boot Difficulties After a Soft Reboot (i.e. [Ctrl] [Alt] [Del])
==================================================================
Some computers will experience difficulties booting after a soft reset
(i.e. pressing [Ctrl], [Alt], and [Del] keys simultaneously) with *any*
PCI LAN adapter. This is caused by a combination of conditions:
- the abrupt termination of the operating system without allowing the
driver to disable the adapter;
- the PCI interrupt sharing architecture (i.e. level sensitive triggering);
- the computer BIOS not resetting the PCI bus during the soft reset;
- a packet arriving into the PCI LAN adapter.
These difficulties will appear at random due to the statistical nature
of when packets arrive from the network. Any one computer will typically
experience the same symptom when the difficulty occurs. Each symptom
varies depending on which interrupt channel the PCI LAN adapter is
assigned and what other devices may sharing that same interrupt channel:
a) If the PCI LAN adapter and a SCSI disk adapter are sharing the
same interrupt channel, the computer typically will hang during the
SCSI BIOS initialization.
b) If the PCI LAN adapter is assigned interrupt channel 9, the computer
will hang during BIOS POST (Power On Self Test).
c) Sometimes the computer will correctly reboot the operating system but
it cannot make connections to network servers (due to the BIOS disabling
the interrupt channel).
These difficulties will occur when soft resetting these operating systems:
- DOS
- Windows 3.X
- Windows For Workgroups (when using 16-bit drivers)
- Windows 95 (when using 16-bit drivers)
- OS/2
- NT
NOTE: These symptoms will occur if an NT or OS/2 system is shutdown and then
restarted without resetting the computer.
The recommended procedure is to press the computer's reset button or power
cycle after initiating the soft reset.
D. Plug-and-Play
================
1. PCI Plug-and-Play BIOS Resource Assignment
PCI computers feature Plug-and-Play installation of PCI adapters.
When the computer boots, the PCI BIOS will assign each PCI adapter
its needed resources. For HP PCI LAN adapters, the resources are:
I/O Address Range, Interrupt (IRQ), and Memory Map Address Range.
Typically, every time the computer is booted the same resources are
assigned to the same adapters until the computer's configuration
changes (e.g. installing or removing an adapter).
The adapter will not be found by drivers if the PCI BIOS could not
assign any of the three resources needed by the HP PCI LAN adapter.
This will rarely occur due to a I/O address range or memory-map
address range conflict with another adapter. A lack of free interrupt
channels (IRQ) is typically the cause. Follow the computer's manuals
to ensure enough free interrupt channels (IRQs) are available for use
by PCI adapters.
2. I/O Address Range, Interrupt Channel, and Memory-Map Address Range.
HP PCI LAN adapters needs a block of 256 I/O addresses and is assigned
this block in the range between 400h and FF00h.
HP PCI LAN adapters generate interrupts on the INTA line of the PCI
connector. The PCI BIOS will configure the computer's motherboard to
assign the INTA line to an interrupt channel (IRQ). The IRQ may be
exclusively for the HP PCI LAN adapter or shared with other PCI adapters.
See the section labeled "Interrupt Sharing" below.
NOTE: Unlike ISA or EISA adapters, there is no way to configure an
interrupt channel on any PCI adapter. The PCI motherboard
maps PCI INTA lines to one or more interrupt channels (IRQs).
When the HP PCI LAN adapter is configured for memory-mapped data transfers,
an 8 Kbyte block of memory addresses are needed. The PCI BIOS will assign
this block in the range between the end of installed RAM and FFFFE000h.
These addresses will work for 32-bit drivers but they are problem for
DOS drivers which can only access addresses within the first megabyte
of memory. See the section labeled "Memory Map Addressing Issues" below.
E. Assigning Adapters To Drivers
================================
1. Support for Slot Numbers Added in PCI BIOS 2.1
For PCI BIOS versions before 2.1, the best method for identifying an
adapter was the I/O Address Range. Typically, a PCI Plug-and-Play
BIOS will assign the same I/O address range to the same adapter every
time the computer is booted. A different I/O address range could be
assigned if other adapters have been installed or removed.
With version 2.1 (and later) of the PCI BIOS, the slot number where a
PCI adapter is installed can be returned from the BIOS. This slot
number will remain the same regardless if other adapters are installed
or removed.
Contact the computer's manufacturer to upgrade the BIOS to the latest
version.
2. Driver Auto-location of a Single Adapter
Most HP drivers will automatically locate one HP PCI LAN adapter using
services provided by the PCI Plug-and-Play BIOS every time they are
loaded.
To force a driver to use a particular adapter or to disable the
auto-locate feature, provide a PCI slot number, only if the PCI BIOS is
version 2.1 or later, or provide the base I/O address of the adapter
to the driver. See the driver installation instructions for how to
specify a slot number or base I/O Address parameter.
Currently, the only drivers which do not auto-locate adapters are:
- 32-bit ODI driver for Novell NetWare servers and NT workstation
- 32-bit NDIS 3.0 driver for Windows for Workgroups 3.11
- 32-bit LLI driver for SCO Open Servers 3 and earlier
- 32-bit MDI driver for SCO Open Servers 5 and later
3. Identifying Multiple Adapters to Drivers
When multiple HP PCI LAN adapters are installed, each must be assigned
to an instance of the driver. A PCI slot number is preferred but a
base I/O Address will also work.
See the driver installation instructions for how to specify a slot
number or base I/O address parameter.
4. Virtual Slot Numbering in PCI BIOS 2.0 Computers
Some operating systems (e.g. Win NT 3.5+), track PCI adapters only
using slot numbers, even on computers with a pre-2.1 PCI BIOS. In
these cases, the operating system will make up a number that will not
match the actual slot number marked on the outside of the computer.
This virtual slot number can be small (i.e. between 0 and 3) or larger
than the total number of slots available in the computer.
F. Memory Map Addressing Issues
===============================
1. Memory-Map in Upper Memory Area for DOS ODI and NDIS drivers
When using 16-bit ODI and NDIS drivers under DOS and the HP PCI LAN
adapter is configured for memory-mapped data transfers, the PCI
Plug-and-Play BIOS must assign the 8K memory address block in the upper
memory area (i.e. between 640K and 1 Mbyte). DOS drivers (ODI and NDIS)
cannot access addresses above the one megabyte limit of the CPU in
real-mode. To force the 8K memory address block into the upper memory
area, use the MEM keyword in NET.CFG or MEMORYMAPBASE keyword in
PROTOCOL.INI.
For the DOS ODI driver, see the file \DOS\README.DOS for syntax of the
MEM keyword.
For the NDIS2 driver, see the \NDIS2\PROTOCOL.TXT file for syntax of
the MEMORYMAPBASE keyword.
NOTE: The MEM or MEMORYMAPBASE keywords might not work on computers
with multiple PCI busses. See the section labeled "Multiple PCI
Bus Computers" below.
2. Multiple PCI Bus Computers and DOS Memory-mapped Data Transfers
On computers that contain multiple PCI busses, the MEM keyword for
the DOS ODI and the MEMORYMAPBASE keyword for NDIS2 drivers may or
may not work depending on which PCI bus the HP PCI LAN adapter is
installed.
In multiple-PCI-bus computers, the PCI Plug-and-Play BIOS will
configure the motherboard to pass to each PCI bus only the I/O and
memory addresses it has assigned to the adapters on that PCI bus.
Since the memory-map address is being forced by the DOS driver and is
not known by the PCI BIOS at boot time, the motherboard may not be
configured to pass the memory addresses to the correct PCI bus in which
the HP PCI LAN adapter is installed.
If the computer contains a PCI-to-EISA or PCI-to-ISA bus bridge
device, the PCI BIOS will configure the motherboard to pass all
memory and I/O addresses to the PCI bus where the bus bridge device
is installed. If the HP PCI LAN adapter is installed in another slot
on that same PCI bus as the bus bridge device, then the DOS ODI or NDIS
memory-mapped data transfers will work. If the HP PCI LAN adapter is
installed in any other PCI bus, then memory-mapped data transfers may
not work (i.e. the DOS driver will use I/O mapped data transfers instead).
3. Illegal Memory-Map Address Ranges Assigned
Earlier versions of the PCI BIOS on some computers will assign the HP
PCI LAN adapter a memory-map address range that conflicts with other
BIOS ROMs in the computer. This will cause drivers to fall-back to
I/O-mapped transfers. Contact the computer's manufacturer to upgrade
the BIOS to the latest version.
G. Interrupt Sharing
====================
1. PCI INTA, INTB, INTC, and INTD
The PCI connector has four interrupt lines labeled INTA, INTB, INTC,
and INTD. A common misconception is that each INT line is dedicated
to one of the four slots allowed by the PCI bus specification.
The PCI specification states: all single channel adapters must use INTA;
two channel adapters use INTA and INTB; three channel adapters use INTA,
INTB, and INTC; and, four channel adapters use INTA, INTB, INTC, and
INTD.
For example, with a dual serial port adapter, COM1 would use the INTA
line and COM2 would use the INTB line. Since the HP PCI LAN adapters
provide only one LAN connection, they are considered to be a single
channel adapter by the PCI specification and only use the INTA line.
2. Interrupt Channels (IRQs) Assigned Per Slot or Shared Across All Slots
Computer motherboard manufacturers had the option to connect the PCI
INT lines to the motherboard's interrupt controller (PIC) in two ways:
each slots' INT lines be individually mapped to a separate IRQ or all
slots' INTA lines are mapped to the same IRQ, all slots' INTB lines are
mapped to another IRQ, etc.
The first method assures that each PCI adapter has exclusive use of an
IRQ. The second method means that PCI adapters and their drivers must
share the same IRQ.
It is sometimes difficult to discover from the manufacturer's
documentation which design the motherboard uses. Contact the
computer manufacturer to determine the motherboard design.
3. Driver Interrupt Sharing Problems
If the computer motherboard requires that all PCI adapters must share
the same interrupt channel (IRQ), all the drivers for the PCI adapters
must cooperate when an interrupt occurs to decide which adapter has
generated the interrupt.
NOTE: All HP PCI LAN drivers are designed to safely share an IRQ with
other drivers which are also designed to share an IRQ.
If a driver has been designed assuming it has exclusive use of an
IRQ, it will prevent other drivers from servicing interrupts from
their PCI adapters.
An example is a computer with a PCI disk controller and a PCI FAX-modem
adapter whose driver assumes it has exclusive use of the IRQ. The
computer will boot and run normally until the FAX-modem driver is
loaded. Suddenly, the hard disk will "disappear" and the system will
eventually hang. This is due to the FAX-modem driver preventing the
disk driver from servicing interrupts from the disk.
If only one driver assumes exclusive use of the interrupt, try to load
it first. Then load the driver(s) which can share the interrupt.
This might work around interrupt sharing problems.
4. IBM OS/2 2.X needs service pack installed
IBM OS/2 2.0, 2.1, and 2.11 needs a new version of the OS2LDR module
to allow drivers to register shared interrupts. This is documented
in IBM Authorized Analysis Report (APAR) PJ14230. Contact IBM to
order a service pack to update OS2LDR module.
OS/2 Warp (3.X) supports shared interrupts.
5. MS OS/2 1.X does not support interrupt sharing.
Microsoft OS/2 versions 1.0 through 1.3 do not support drivers sharing
the same interrupt. Contact Microsoft for more information.
H. More Information on HP FAX Retrieval Service
================================================
More recent version of this PCI errata document may be available on
HP's FIRST (Fax Information Retrieval Support Technology) service.
In the U.S.A. and Canada, call (800) 333-1917 and press #1 for HP FIRST.
Outside the U.S.A. and Canada, call (208) 344-4809.
Enter document number 19941 to receive the index of currently available
documents for HP networking products on your fax machine.
<End of File>
Download Driver Pack
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.