Browse Prior Art Database

Common BIOS Services for Vital Product Data in Personal Systems

IP.com Disclosure Number: IPCOM000113174D
Original Publication Date: 1994-Jul-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 6 page(s) / 149K

Publishing Venue

IBM

Related People

Lin, S: AUTHOR [+6]

Abstract

Described is a common set of programming interface services providing a standard method for accessing and updating the Vital Product Data (VPD) stored in the Non-Volatile Random Access Memory (NVRAM) of a computer system. Within the BIOS System Services (INT 15), a new function and several new subfunctions are defined to provide a new application programming interface for managing the VPD.

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

Common BIOS Services for Vital Product Data in Personal Systems

      Described is a common set of programming interface services
providing a standard method for accessing and updating the Vital
Product Data (VPD) stored in the Non-Volatile Random Access Memory
(NVRAM) of a computer system.  Within the BIOS System Services (INT
15), a new function and several new subfunctions are defined to
provide a new application programming interface for managing the VPD.

      To make the BIOS services call, the BIOS System Services call,
INT 15, is first invoked.  The new function is "VPD System Service,"
with register (AH) = D2H.
     (AL) = 00H - Get VPD subblock length (NVRAM)
     (AL) = 01H - Read VPD subblock data (NVRAM)
     (AL) = 02H - Read EEPROM address
     (AL) = 03H - Write EEPROM address
     (AL) = 05H - Read processor card VPD
     (AL) = 06H - Write VDP subblock data (NVRAM)
     (AL) = 10H - Return VPD subblock length (EEPROM/hardware)
     (AL) = 11H - Reconstruct VPD subblock from EEPROM/hardware
     (AL) = 20H - Restore EEPROM from NVRAM

The detailed interface specification is as follows:

     (AH) = D2H - Vital Product Data (VPD) System Service

      The subfunction indicated by (AL) = 00H is "Get VPD subblock
length (NVRAM)."  This subfunction returns the VPD table length for
any read buffer requests, telling the requestor the exact length of
the table.  By setting the value of (BX), the user can select all of
the VPD table or certain subblocks, such as processor only, as
follows:
        (AL) = 00H - Get VPD subblock length (NVRAM)
            (BX) = VPD subblock ID
                 = 0001H - Model VPD requirements
                 = 0002H - Manual VPD (box serial number)
                 = 0010H - Processor complex (Model 95 Server)
                 = 1000H - System board
                 = FFFFH - All VPD

   On Return:
            (CX) - Length of VPD subblock
            (AH) = 00H - Operation successfully completed
                 = 04H - Invalid NVRAM
                 = 05H - VPD block not found
                 = 86H - Function not supported
              CF = 0 - Operation successfully completed
                 = 1 - Operation failed

      The subfunction indicated by (AL) = 01H is "Read VPD subblock
data (NVRAM)."  This subfunction returns the VPD table into the
buffer allocated for this purpose.  The user can select all of the
VPD table, or certain subblocks, as follows:
        (AL) = 01H - Read VPD subblock data (NVRAM)
            (BX) - VPD subblock ID
                 = 0001H - Model VPD requirements
                 = 0002H - Manual VPD (box serial number)
                 = 0010H - Pr...