Browse Prior Art Database

Method for Providing Peripheral Component Interconnect Device Configuration Information to Device Drivers

IP.com Disclosure Number: IPCOM000115913D
Original Publication Date: 1995-Jul-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 65K

Publishing Venue

IBM

Related People

Kalman, DA: AUTHOR [+4]

Abstract

Disclosed is a method through which device drivers may obtain configuration information from a Peripheral Component Interconnect (PCI)-Bus Adapter, even when the operating system does not provide access to the PCI Basic Input/Output System (BIOS) interface of the system. To interface properly with hardware of the adapter, these drivers need to determine how many adapters are in the system, the base I/O address, the interrupt level assigned, and other, adapter-specific information.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 53% of the total text.

Method for Providing Peripheral Component Interconnect Device Configuration
Information to Device Drivers

      Disclosed is a method through which device drivers may obtain
configuration information from a Peripheral Component Interconnect
(PCI)-Bus Adapter, even when the operating system does not provide
access to the PCI Basic Input/Output System (BIOS) interface of the
system.  To interface properly with hardware of the adapter, these
drivers need to determine how many adapters are in the system, the
base I/O address, the interrupt level assigned, and other,
adapter-specific information.

      Since the ROM BIOS initialization code of the adapter has
access to the PCI Read Only Memory (ROM) BIOS interface (INT 1A), it
builds a table in Random Access Memory (RAM) for subsequent use when
INT 13 calls are made to the adapter.  The presently disclosed method
allows the device drivers to access this table, which con- tains all
of the pertinent configuration information.  This method assumes that
the system provides INT 1A PCI BIOS Functions (*).

      The Figure is a table describing the PCI Configuration Data
Header Block stored in the lowest one-megabyte space of system
memory.

The following listing builds the PCI Configuration Data Table for
each adapter:
  typedef struct adapter_area
  {
    UNIT    adapter_io_address;  /* controller base I/O address
*/
    UNIT32  adapter_ram_address; /* controller base RAM address
*/
    UCHAR   device_num;          /* controlle...