             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 DESKDIRECT 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 DeskDirect 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 DeskDirect PCI LAN adapters needs a block of 256 I/O addresses
    and is assigned this block in the range between 400h and FF00h.  
 
    HP DeskDirect 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 DeskDirect 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 DeskDirect 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 DeskDirect 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 DeskDirect 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 DeskDirect
    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 DeskDirect 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 DeskDirect 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
    DeskDirect 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
    DeskDirect 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 DeskDirect 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>
