[Toc][Index]

How to Customize the PMI Subsystem for Your Device


The VIDEO PMI subsystem consists of VIDEOPMI-the main PMI handler, a flat 
PMI file, and optional imported library modules. The imported library 
modules may optionally chain into VIDEOPMI and provide a filter or 
replacement for VIDEOPMI's entry points. Such a library is called a 
META-PMI handler. Although the VIDEO PMI subsystem places no requirements 
on the existence of a flat PMI file (it is possible to provide all 
functions with a META-PMI handler alone), the SVGA installation, SVGA 
virtual video driver, BVHSVGA, and VIDEOCFG all make assumptions that the 
PMI subsystem is represented by SVGADATA.PMI. 
The VIDEOPMI handler is maintained by IBM; it is shipped in the IBM 
Developer Connection Device Driver Kit for OS/2 as a binary file. See 
Video Subsystem Binary Files. The SVGADATA.PMI file is either provided or 
can be created at install time by running a utility. The SVGA installation 
action routine DLL (SVGA.DLL) assumes that a DOS utility called SVGA.EXE 
is used to generate the SVGADATA.PMI. A vendor wishing to modify the 
SVGADATA.PMI can provide its own action routine DLL or create the SVGA.EXE 
DOS utility. DDK sources include two different sources of a utility that 
generates the SVGADATA.PMI file, as follows: 
   *  src\svdh\svgautil\svga.exe 
      src\svdh\svgautil sources are those of the SVGA.EXE as shipped by 
      IBM. It is a very large and complex source that generates a .PMI 
      file for all of the devices supported by the IBM BBS display driver 
      packages at the time the IBM Developer Connection Device Driver Kit 
      for OS/2 was shipped. 
      Vendors should not modify this source; it is shipped so that vendors 
      can create sample .PMI files for legacy hardware.  PMI files created 
      by this utility use IBMGPMI.DLL as an imported PMI library.  The 
      source for IBMGPMI.DLL is not available for vendor modification, but 
      a binary file can be extracted from the most current IBM BBS video 
      driver package.  An older version of IBMGPMI can be found in 
      previous DDKs. 
      For purposes of documenting an imported PMI library, an alternate 
      library source in src\oempmi for OEMPMI.DLL is provided.  This PMI 
      library exemplifies both internal PMI calls and the META-PMI 
      interface (chaining into VIDEOPMI).  It also provides an example of 
      using the VIDEOPMI's software interrupt API to call the VIDEO BIOS 
      directly. 
   *  src\oempmi\svgautil\svgaoem.exe 
      src\oempmi\svgautil sources are the recommended sources for vendor 
      modification. The makefile will generate an SVGAOEM.EXE, which 
      should be renamed to SVGA.EXE if the SVGA.DLL action routine DLL is 
      to be used. The utility will create a generic SVGADATA.PMI file 
      based solely on VESA mode support without any vendor modifications. 
      This generic .PMI file depends on the OEMPMI.DLL META-PMI handler, 
      referred to in the previous bullet, for successful VESA BIOS calls. 
      If there is no VESA support for the adapter, or vendors wish to add 
      refresh support or customize the generic sections, the SetupChipInfo 
      function in SVGAOEM.C needs to be modified. The header of the 
      SVGAOEM.C source file includes the "ROADMAP to CHANGES" 
      instructions. 
      src\oempmi sources are open to vendor modification, and its headers 
      also include extensive instructions on the recommended changes. 
      However, for a vendor with VESA mode set support and a display 
      driver that can run on top of the hardware state as left by the VESA 
      mode set, the quickest results are obtained by doing the following: 
        -  Install all of the Base Video Subsystem files. 
        -  Create a .PMI file by running the unmodified SVGAOEM.EXE with 
           command line argument "ON". 
 

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs