![[Toc]](../../toc.gif)
![[Index]](/idx.gif)
[Hardware]
* BusType = { ISA | VLB | PCI | EISA | PCMCIA | MCA }
The hardware description is available through a system query
function. Any other definition is regarded as a user definition.
* OEMString = "CHIPNAME ADAPTERNAME, ADAPTER MANUFACTURER NAME"
OEMString has an internal length of 128 chars, 0 ended. This string
should be sufficient to uniquely describe the video adapter. The
string will be presented to the user at configuration and
installation and is the key element of the system's description of
the adapter. It is regarded as a user definition, meaning that no
translation of this information to any other format is performed.
Any trademark information should be provided as a comment in the PMI
file.
If the PMI file is not specifically written for an adapter, the
ADAPTERNAME GENERIC is suggested (such files may be shipped by the
chip manufacturers or software vendors). CHIPNAME is a required
token and is used as a key in the display driver installation
process to find a corresponding display driver for a given PMI file
(and vice versa).
* DACString = "MANUFACTURER NAME [, DACNAME]"
DACNAME, such as Bt485 or AT&T 491 is optional. Regarded as a user
definition. Any trademark information should be provided as a
comment.
* Version = <string>
User-defined. Should represent the version of the manufacturer's
.PMI file, rather than the revision level of the hardware. If
multiple versions of the .PMI file exist for the same OEMString
description, and all respective IdentifyAdapter function calls were
successful, the file with the greater Version string is assumed to
be the more appropriate one and is offered at the top of the PMI
list during the video configuration.
The user, however, does have a choice of selecting a different PMI
file. Note that the PMIVersion section is used to describe the PMI
language revision level used, not the version of the PMI file.
* TotalMemory = <constant>
This represents the total size of the currently installed VRAM
memory in bytes.
* MemoryIOAddress = <constant> ['{' <mmio list> '}'] <mmio
list> ::= <constant> | <constant> [',' <mmio list>]
Specifies the default base memory address for memory mapped I/O and
a list of possible base addresses. The default value should match
the value set by the configuration performed at the time of the
adapter's installation. It is possible to reconfigure the adapter's
address at a later time without modifying the .PMI file.
If this address is specified and is not zero, the BufferAddress
fields in the [ModeInfo] sections of all graphics modes with more
than 256 colors will be replaced by this address and the usFlag in
the VIDEOMODEINFO structure will have MODE_FALG_LINEAR_BUFFER flag
set to on, indicating that this mode can be set to linear aperture
mode. [SetMemoryIOAddress] should also be provided to handle the
address setting.
* PortIOAddress = <constant> ['{' <pio list> '}'] <pio list>
::= <constant> | <constant> [',' <pio list>]
Specifies default base port address for port I/O and a list of
possible I/O addresses. For example, this variable for an MCA XGA
adapter would reflect its instance that needs to be added to all of
the register addresses. See the preceding discussion on
MemoryIOAddress.
* Endian = {BIG | LITTLE}
This represents the endian control capability of the device. The PMI
constants are always represented with the most significant byte at
the leftmost position. There are three possible cases of endian
control:
- The device can conform to the endian type of the platform, such
as WEITEK or XGA.
- The device cannot conform to the endian type but is of the same
endian type as the platform.
- The device is of a different endian type than the platform on
which it is installed.
The first two cases require no endian conversion on the part of the
VIDEOPMI interpreter. In the third case, the VIDEOPMI interpreter
native to a platform will perform the byte swapping to the
platform's endian type. The programming of the endian control on
devices that are capable of address swapping, such as XGA or WEITEK,
is the responsibility of the .PMI file. In the case of WEITEK, this
is done indirectly by generating correct addresses. It is preferable
to configure the adapter in the endian control of the platform for
which it is intended, if such capability is present.
Here is a sample .PMI file for a Viper VLB card:
BusType = VLB
OEMString = "P9000 VIPER, Diamond Computer Systems Inc."
DACString = "Brooktree Corporation"
Version = "3.2"
TotalMemory = 2097152
MemoryIOAddress = 0x80000000
PortIOAddress = 0x00000000
Endian = LITTLE
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs