DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
SVR5 and SCO OpenServer

eisa(D5)


eisa -- data format of the device configuration space

Synopsis

   SVR5 DDI:
   

#include <sys/eisa.h> #include <sys/ddi.h>

SCO OpenServer ODDI:

#include <sys/nvm.h>

Description

EISA device configuration space is persistent memory provided by the hardware/firmware associated with an EISA bus that is used to store parameters of the devices attached to the bus.

For EISA devices, the device configuration space is composed of a slot information structure followed by one or more function block structures The order of these function blocks is undefined.

The figure below depicts this layout:

   -------------------------------------------------
   |       Slot Information                        |
   -------------------------------------------------
   |       1st Function Information                |
   -------------------------------------------------
   |       2nd Function Information                |
   -------------------------------------------------
   |       . . .                                   |
   -------------------------------------------------
   |       nth Function Information                |
   -------------------------------------------------
The operating system structures that correspond to this layout are:


Slot Information


DDI
An eisa_slotinfo structure documented on the eisa(D4) manual page.

ODDI
A nvm_slotinfo structure defined in the <sys/nvm.h> header file.


Function Information

DDI
An eisa_funcinfo structure documented on the eisa(D4) manual page.

ODDI
A nvm_funcinfo structure defined in the <sys/nvm.h> header file.

Usage

The EISA NVRAM configuration information is read-only to device drivers.

DDI access to EISA configuration information

Refer to eisa(D4) for details on the data format of the eisa_slotinfo_t and eisa_funcinfo_t structures for SVR5.

ODDI access to EISA configuration information

ODDI drivers can access the EISA configuration device information using definitions in the <sys/nvm.h> header file. For example, the following code fragment illustrates how to find the EISA NVRAM function information:
   #include <sys/nvm.h>
   

NVM_FUNCINFO * XXeisa_funcinfo(sn, nfunc) int *nfunc { if (! eisa_info->slots[sn].slotinfo.dupid.partial { *nfunc = (int)eia_info->slots[sn].slotinfo.functions; return((NVM_FUNCINFO *) (eisa_info+1) + eisa_info->slots[sn].first_func); } return (NVM_FUNCINFO *)0; }

EISA drivers must never program anything that is configurable through EISACONFIG. For example, the edge/level interrupt triggering option (addresses 0x4d0 and 0x4D1) should not be programmed by drivers at runtime. All EISA configuration options are designed to be programmed by the EISACONFIG utility that is supplied with the system.

Hardware applicability

x86/Pentium compatible architectures

Version pplicability

ddi: 1, 2, 3, 4, 5, 5mp, 6, 6mp, 7, 7mp, 7.1, 7.1mp, 8, 8mp

oddi: 1, 2, 2mp, 3, 3mp, 4, 4mp, 5, 5mp

SCO OpenServer and SVR5 compatibility

The configuration space layout is determined by industry standards boards; drivers written for SVR5 and SCO OpenServer access the same configuration space, although they use different methods for that access.

References

cm_read_devconfig(D3), cm_write_devconfig(D3), cm_params(D5), eisa(D4)

``EISA device configuration'' in HDK Technical Reference


19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005