`
` DRAFT COPY
`
` Version 2.0
`
`American Megatrends Inc.
`Award Software International Inc.
`Dell Computer Corporation
`Intel Corporation
`Phoenix Technologies Ltd.
`SystemSoft Corporation
`
`Desktop Management BIOS Specification
`
`Version 2.0
`
`March 6, 1996
`
`This specification has been made available to the public. You are hereby granted the right to use,
`implement,reproduce and distribute this specification with the forgoing rights, at no charge. This specification is,
`and shall remain, the property of American Megatrends Inc. (“AMI”), Award Software International Inc.
`(“Award”), Dell Computer Corporation (“Dell”), Intel Corporation (“Intel”), Phoenix Technologies LTD
`("Phoenix") and SystemSoft Corporation (“SystemSoft”). No license under any patents of other intellectual
`property rights are granted either expressly or impliedly by the publication of this document by AMI, Award, Dell,
`Intel, Phoenix, and SystemSoft.
`NEITHER AMI, AWARD, DELL, INTEL, PHOENIX, NOR SYSTEMSOFT MAKE ANY
`REPRESENTATION OR WARRANTY REGARDING THIS SPECIFICATION OR ANY PRODUCT OR
`ITEM DEVELOPED BASED ON THIS SPECIFICATION. USE OF THIS SPECIFICATION FOR ANY
`PURPOSE IS AT THE RISK OF THE PERSON OR ENTITY USING IT. AMI, AWARD, DELL, INTEL,
`PHOENIX, AND SYSTEMSOFT DISCLAIM ALL EXPRESS AND IMPLIED WARRANTIES,
`INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
`FITNESS FOR A PARTICULAR PURPOSE AND FREEDOM FROM INFRINGEMENT. NEITHER AMI,
`AWARD, DELL, INTEL, PHOENIX, NOR SYSTEMSOFT WILL BE RESPONSIBLE FOR ANY
`DIRECT, INDIRECT, CONSEQUENTIAL OR OTHER DAMAGES RELATING TO THE USE OF THIS
`SPECIFICATION. WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, NEITHER AMI,
`AWARD, DELL, INTEL, PHOENIX, NOR SYSTEMSOFT MAKE ANY WARRANTY OF ANY KIND
`THAT ANY ITEM DEVELOPED BASED ON THIS SPECIFICATION, OR ANY PORTION OF IT, WILL
`NOT INFRINGE ANY COPYRIGHT, PATENT, TRADE SECRET OR OTHER INTELLECTUAL
`PROPERTY RIGHT OF ANY PERSON OR ENTITY IN ANY COUNTRY.
`
`Dmibios2
`
`1 of 49
`
`29 July, 1996
`
`SAMSUNG EX. 1012 - 1/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`Document Information
`
`The softcopy version of this specification, in Microsoft Word-for-Windows 6.0 format, is available as
`DMIB20.DOC via ftp://ftp.ptltd.com/pub/phoenix_docs/dmib20.doc or from the Phoenix Technologies World
`Wide Web site at http://www.ptltd.com/techs/specs.html.
`
`Document Revision History
`
`09/14/95
`Version 2.0D
`Version 2.0M 12/12/95
`
`Version 2.00
`
`03/06/96
`
`Initial Release of DRAFT COPY
`Final draft released, with the following changes:
`- Specified that dmiStorageBase (Function 50h) and NVStorageBase (Function
`55h) must be paragraph-aligned.
`- Added Command value to change a string to function 52h; Command
`enumeration values modified.
`- Removed redundant enumerations from Processor Family list
`- Corrected Memory Subsystem Example
`- Corrected/clarified Indexed I/O access-methods for event-log; Access Method
`enumeration values and Access Method Address union modified
`- Added clarifications to some of the event log types
`Final release, with the following changes:
`- Specified that all structures end with a terminating NULL, even if the
`formatted portion of the structure contains string-reference fields and all the
`string fields are set to 0.
`- Corrected the Memory Subsystem Example, handles are now correctly created
`with a ‘dw’.
`- Fixed formatting of some bit definition fields and function examples.
`
`Table Of Contents _______________________________
`
`1. OVERVIEW 4
`
`1.1 REFERENCES
`1.2 ENHANCEMENTS TO THE CURRENT BIOS ARCHITECTURE
`
`4
`4
`
`2. ACCESSING DMI INFORMATION 5
`
`2.1 CALLING CONVENTION
`2.2 DMI BIOS FUNCTIONS
`2.3 ERROR RETURN CODES
`2.4 DMI BIOS STRUCTURE ACCESS INTERFACE
`2.4.1 FUNCTION 50H – GET DMI INFORMATION
`2.4.2 FUNCTION 51H – GET DMI STRUCTURE
`2.4.3 FUNCTION 52H – SET DMI STRUCTURE
`2.5 STRUCTURE CHANGE NOTIFICATION INTERFACE
`2.5.1 FUNCTION 53H – GET STRUCTURE CHANGE INFORMATION
`2.6 CONTROL INTERFACE
`2.6.1 FUNCTION 54H – DMI CONTROL
`
`5
`5
`6
`7
`7
`8
`9
`12
`13
`15
`15
`
`Dmibios2
`
` 2 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 2/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`2.6.2 DMI_CONTROL_LOGGING CONTROL WORD
`2.7 GENERAL PURPOSE NONVOLATILE STORAGE INTERFACE
`2.7.1 FUNCTION 55H – GET GENERAL-PURPOSE NONVOLATILE INFORMATION
`2.7.2 FUNCTION 56H – READ GENERAL-PURPOSE NONVOLATILE DATA
`2.7.3 FUNCTION 57H – WRITE GENERAL-PURPOSE NONVOLATILE DATA
`
`16
`17
`18
`19
`20
`
`3. DMI BIOS STRUCTURES 22
`
`3.1 STRUCTURE STANDARDS
`3.1.1 STRUCTURE HEADER FORMAT
`3.1.2 TEXT STRINGS
`3.2 STRUCTURE DEFINITIONS
`3.2.1 BIOS INFORMATION (TYPE 0)
`3.2.2 SYSTEM INFORMATION (TYPE 1)
`3.2.3 BASE BOARD INFORMATION (TYPE 2)
`3.2.4 SYSTEM ENCLOSURE OR CHASSIS (TYPE 3)
`3.2.5 PROCESSOR INFORMATION (TYPE 4)
`3.2.6 MEMORY CONTROLLER INFORMATION (TYPE 5)
`3.2.7 MEMORY MODULE INFORMATION (TYPE 6)
`3.2.8 CACHE INFORMATION (TYPE 7)
`3.2.9 PORT CONNECTOR INFORMATION (TYPE 8)
`3.2.10 SYSTEM SLOTS (TYPE 9)
`3.2.11 ON BOARD DEVICES INFORMATION (TYPE 10)
`3.2.12 OEM STRINGS (TYPE 11)
`3.2.13 SYSTEM CONFIGURATION OPTIONS (TYPE 12)
`3.2.14 BIOS LANGUAGE INFORMATION (TYPE 13)
`3.2.15 GROUP ASSOCIATIONS (TYPE 14)
`3.2.16 SYSTEM EVENT LOG (TYPE 15)
`
`22
`22
`23
`24
`24
`26
`26
`26
`28
`31
`33
`36
`37
`40
`42
`43
`43
`43
`44
`45
`
`Dmibios2
`
` 3 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 3/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`1. Overview ________________________________
`
`Desktop Management Interface (DMI) is a new method of managing computers in an enterprise. The main
`component of DMI is the Management Information Format Database, or MIF. This database contains all the
`information about the computing system and its components. Using DMI, a system administrator can obtain the
`types, capabilities, operational status, installation date, and other information about the system components.
`
`The Desktop Management BIOS Specification documents a standard embedded tool-set to assist in the generation
`of a system MIF database.
`
`1.1 References
`
`Desktop Management Interface Specification, Version 1.0, April 29, 1994.
`DMTF PC Systems Standard MIF Definition, Version 1.3, March 1, 1995.
`DMTF Server Standard MIF Definition, Draft Version 0.3, March 1, 1995
`Plug and Play BIOS Specification, Version 1.0A, May 5, 1994
`PCI BIOS Specification, Version 2.1, August 26, 1994
`
`1.2 Enhancements to the current BIOS architecture
`
`The DMI specification requires that certain information about the System Board be made available to an
`applications program. For systems implementing DMI BIOS Extensions, user-defined information will be located
`in a series of data structures. These data structures are accessed by the method described in Section 2.
`
`Vendors may decide to include all or any part of this information in their designs. For a complete solution that is
`compatible with the Service Layer distributed by the DMTF, vendors must also implement component
`instrumentation. This instrumentation allows the Service Layer to gain access to the information stored in the
`BIOS. In addition, a MIF file must be provided that describes that data that is provided by the BIOS and the
`method of accessing that data. As a minimum, the PC Standard System MIF provided by the DTMF can be used
`for this purpose.
`
`Dmibios2
`
` 4 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 4/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`2. Accessing DMI Information
`
`2.1 Calling Convention
`
`To prevent the proliferation of interfaces for accessing information embedded in the System BIOS, the Desktop
`Management BIOS Specification will follow the System Device Node model used by Plug and Play, and use Plug
`and Play BIOS functions to access DMI information. Plug and Play functions 50h-5Fh have been assigned to the
`DMI BIOS Interface.
`Each of the DMI BIOS Plug-and-Play functions is available both in real-mode and 16-bit protected-mode. A
`function called in 16-bit protected-mode supports both 16-bit and 32-bit stack segments.
`
`Description
`
`Required/Optional
`
`2.2 DMI BIOS Functions
`
`This table defines the current DMI BIOS Functions.
`
`DMI BIOS Function
`
`GET_DMI_INFORMATION
`
`Function
`Number
`50h
`
`GET_DMI_STRUCTURE
`
`SET_DMI_STRUCTURE
`
`GET_DMI_STRUCTURE_
`CHANGE_INFO
`
`DMI_CONTROL
`GET_GPNV_INFORMATION
`
`READ_GPNV_DATA
`
`WRITE_GPNV_DATA
`
`Reserved for Future Use
`
`Returns the Number of
`Structures, the Size of the Largest
`Structure, and the DMI BIOS
`Revision.
`Copies the information for the
`specified DMI Structure into the
`buffer specified by the caller.
`Copies the information for the
`specified DMI structure from the
`buffer specified by the caller.
`Returns the DMI Structure
`Change Information into a 16-
`byte buffer specified by the caller.
`
`51h
`
`52h
`
`53h
`
`54h
`55h
`
`56h
`
`Controls a system action
`Returns information about the
`General Purpose Non-Volatile
`Storage Area
`Reads the entire specified GPNV
`contents into a buffer specified by
`the caller.
`Copies the contents of the user
`specified buffer into the GPNV.
`The function causes the entire
`specified GPNV to be updated.
`58h-5Fh Reserved, will return
`DMI_FUNCTION_NOT_
`SUPPORTED.
`
`57h
`
`Required
`
`Required
`
`Optional
`
`Required for
`Dynamic Structure-
`change Notification
`Support
`Optional
`Required for GPNV
`Support
`
`Required for GPNV
`Support
`
`Required for GPNV
`Support
`
`Reserved
`
`Dmibios2
`
` 5 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 5/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`2.3 Error Return Codes
`
`After the call has been made, the following return codes are available in the AX Register.
`
`Return Code
`DMI_SUCCESS
`DMI_UNKNOWN_FUNCTION
`DMI_FUNCTION_NOT_SUPPORTED
`DMI_INVALID_HANDLE
`
`DMI_BAD_PARAMETER
`
`DMI_INVALID_SUBFUNCTION
`
`DMI_NO_CHANGE
`
`DMI_ADD_STRUCTURE_FAILED
`
`DMI_READ_ONLY
`
`DMI_LOCK_NOT_SUPPORTED
`
`DMI_CURRENTLY_LOCKED
`
`DMI_ INVALID_LOCK
`
`Value
`00h
`81h
`82h
`83h
`
`84h
`
`85h
`
`86h
`
`87h
`
`8Dh
`
`90h
`
`91h
`
`92h
`
`Description
`Function Completed Successfully
`Unknown, or invalid, function number passed
`The function is not supported on this system
`DMI Structure number/handle passed is invalid or out
`of range.
`The function detected invalid parameter or, in the case
`of a “Set DMI Structure” request, detected an invalid
`value for a to-be-changed structure field.
`The SubFunction parameter supplied on a DMI Control
`function is not supported by the system BIOS.
`There are no changed DMI structures pending
`notification.
`Returned when there was insufficient storage space to
`add the desired structure.
`A “Set DMI Structure” request failed because one or
`more of the to-be-changed structure fields are read-only.
`The GPNV functions do not support locking for the
`specified GPNV handle.
`The GPNV lock request failed - the GPNV is already
`locked.
`The caller has failed to present the predefined
`GPNVLock value which is expected by the BIOS for
`access of the GPNV area.
`
`Dmibios2
`
` 6 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 6/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`2.4 DMI BIOS Structure Access Interface
`
`2.4.1 Function 50h – Get DMI Information
`
`Synopsis:
`short FAR (*entryPoint)(Function, dmiBIOSRevision, NumStructures, StructureSize, dmiStorageBase,
`dmiStorageSize, BiosSelector);
`/* PnP BIOS Function 50h */
`/* Revision of the DMI BIOS Extensions */
`/* Maximum Number of Structures the BIOS will return */
`/* Size of largest DMI Structure */
`/* 32-bit physical base address for memory-mapped */
`/* DMI data */
`/* Size of the memory-mapped DMI data */
`/* PnP BIOS readable/writable selector */
`
`short Function;
`unsigned char FAR *dmiBIOSRevision;
`unsigned short FAR *NumStructures;
`unsigned short FAR *StructureSize;
`unsigned long FAR *dmiStorageBase;
`
`unsigned short FAR *dmiStorageSize;
`unsigned short BiosSelector;
`
`Description:
`Required for DMI BIOS Support. This function will return the revision of the DMI BIOS Extensions and the
`maximum number of DMI structures that the system BIOS will return information for in NumStructures. These
`structures represent the DMI information that is embedded in the System BIOS. In addition to the number of
`structures, the system BIOS will return the size, in bytes, of the largest DMI structure (and all of its supporting
`data) in StructureSize. This information can be utilized by the system software to determine the amount of
`memory required to get all of the DMI structures. Note: The system BIOS may return a value that is larger than
`the actual largest DMI structure to facilitate hot docking or other dynamic DMI information. The BIOS may also
`return fewer than NumStructures when the structures are retrieved using Function 51h. If the BIOS does not
`support DMI capability, DMI_FUNCTION_NOT_SUPPORTED (82h) will be returned.
`
`The dmiBIOSRevision parameter indicates compliance with a revision of this specification. It is a BCD value
`where the upper nibble indicates the major version and the lower nibble the minor version. For revision 2.0 the
`returned value will be 20h.
`
`dmiStorageBase is updated by the BIOS call with the paragraph-aligned, 32-bit absolute physical base address of
`any memory-mapped DMI structure information. If non-zero, this value allows the caller to construct a 16-bit data
`segment descriptor with a limit of dmiStorageSize and read/write access for subsequent input to functions 51h to
`54h. If dmiStorageBase is 0, protected-mode mapping is not required the DMI structure information and the
`dmiStorageSize return value has no meaning.
`
`The BiosSelector parameter enables the system BIOS, if necessary, to update system variables that are contained in
`the system BIOS memory space. If this function is called from protected mode, the caller must create a data
`segment descriptor using the 16-bit Protected Mode data segment base address specified in the Plug and Play
`Installation Check data structure, a limit of 64KB, and the descriptor must be read/write capable. If this function is
`called from real mode, BiosSelector should be set to the Real mode 16-bit data segment address as specified in the
`Plug and Play Installation Check Structure. Refer to section 4.4 of the Plug and Play BIOS Specification revision
`1.0a for more information on the Plug and Play Installation Check Structure and the elements that make up the
`structure.
`This function is available in real mode and 16-bit protected mode.
`
`Dmibios2
`
` 7 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 7/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`Returns:
`If successful - DMI_SUCCESS
`If an Error (Bit 7 set) or a Warning occurred the Error Code will be returned in AX, the FLAGS and all other
`registers will be preserved.
`
`Example:
`The following example illustrates how the ‘C’ style call interface could be made from an assembly language
`module:
`push
`push
`push
`push
`push
`push
`push
`push
`push
`push
`push
`push
`call
`add
`cmp
`jne
`
`; Pointer to DMIStorageSize
`
`; Pointer to DMIStorageBase
`
`; Pointer to StructureSize
`
`; Pointer to NumStructures
`
`BiosSelector
`segment/selector of dmiStorageSize
`offset of dmiStorageSize
`segment/selector of dmiStorageBase
`offset of dmiStorageBase
`segment/selector of StructureSize
`offset of StructureSize
`segment/selector of NumStructures
`offset NumStructures
`segment/selector of dmiBIOSRevision ; Pointer to DMIBIOSRevision
`offset dmiBIOSRevision
`GET_DMI_INFORMATION
`FAR PTR entryPoint
`sp, 24
`ax, DMI_SUCCESS
`error
`
`; Function number, 50h
`
`; Clean up stack
`; Function completed successfully?
`
`2.4.2 Function 51h – Get DMI Structure
`
`Synopsis:
`short FAR (*entryPoint)(Function, Structure, dmiStrucBuffer, dmiSelector, BiosSelector);
`short Function;
`/* PnP BIOS Function 51h */
`unsigned short FAR *Structure;
`/* Structure number/handle to retrieve*/
`unsigned char FAR *dmiStrucBuffer;
`/* Pointer to buffer to copy structure data to */
`unsigned short dmiSelector;
`/* DMI data read/write selector */
`unsigned short BiosSelector;
`/* PnP BIOS readable/writable selector */
`
`Description:
`Required for DMI BIOS Support. This function will copy the information for the specified DMI Structure into the
`buffer specified by the caller. The Structure argument is a pointer to the unique DMI Structure number (handle).
`If Structure contains zero, the system BIOS will return the first DMI Structure. The dmiStrucBuffer argument
`contains the pointer to the caller’s memory buffer. If the function returns either DMI_SUCCESS or
`DMI_INVALID_HANDLE, Structure is updated with either the next sequential structure handle or the end-of-list
`indicator 0FFFFh.
`
`The protected-mode read/write selector dmiSelector has base equal to dmiStorageBase and limit of at least
`dmiStorageSize — so long as the dmiStorageBase value returned from Function 50h was non-zero.
`
`The BiosSelector parameter enables the system BIOS, if necessary, to update system variables that are contained in
`the system BIOS memory space. If this function is called from protected mode, the caller must create a data
`segment descriptor using the 16-bit Protected Mode data segment base address specified in the Plug and Play
`Installation Check data structure, a limit of 64KB, and the descriptor must be read/write capable. If this function is
`called from real mode, BiosSelector should be set to the Real mode 16-bit data segment address as specified in the
`Plug and Play Installation Check Structure. Refer to section 4.4 of the Plug and Play BIOS Specification revision
`1.0a for more information on the Plug and Play Installation Check Structure and the elements that make up the
`structure.
`
`Dmibios2
`
` 8 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 8/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`This function is available in real mode and 16-bit protected mode.
`
`Returns:
`If successful - DMI_SUCCESS
`If an Error (Bit 7 set) or a Warning occurred, the Error Code will be returned in AX, the FLAGS and all other
`registers will be preserved
`
`Example:
`The following example illustrates how the ‘C’ style call interface could be made from an assembly language
`module:
`
`push
`push
`push
`push
`push
`push
`push
`call
`add
`cmp
`jne
`
`BiosSelector
`dmiSelector
`segment/selector of dmiStrucBuffer; Pointer to dmiStrucBuffer
`offset of dmiStrucBuffer
`segment/selector of Structure
`offset of Structure
`GET_ DMI_STRUCTURE
`FAR PTR entryPoint
`sp, 14
`ax, DMI_SUCCESS
`error
`
`; Clean up stack
`; Function completed successfully?
`
`; Pointer to Structure
`
`; Function number, 51h
`
`2.4.3 Function 52h – Set DMI Structure
`
`Synopsis:
`short FAR (*entryPoint)(Function, dmiDataBuffer, dmiWorkBuffer, Control, dmiSelector, BiosSelector)
`short Function;
`/* PnP BIOS Function 52h */
`unsigned char FAR *dmiDataBuffer;
`/* Pointer to buffer containing new/change data */
`unsigned char FAR *dmiWorkBuffer;
`/* Pointer to work buffer area for the BIOS */
`unsigned char Control;
`/* Conditions for performing operation */
`unsigned short dmiSelector;
`/* DMI data read/write selector */
`unsigned short BiosSelector;
`/* PnP BIOS readable/writeable selector */
`
`Description:
`Optional. This function will set the DMI structure identified by the type (and possibly handle) found in the DMI
`structure header in the buffer pointed to by dmiDataBuffer. Values that the BIOS allows to be set in the supplied
`structure will either be updated by the call, or will cause the BIOS to perform some defined action (such as
`enabling a hardware option, etc.).
`
` Unless otherwise specified, all structures and structure values defined in Section 3, DMI BIOS Structures, are
`read-only and cannot be set. Attempts to set these structures will return a DMI_READ_ONLY error. A structure
`field that is composed of read/write and read-only subfields can still be set -- so long as the read-only portion of the
`field is unmodified. Attempting to write to a read-only subfield will also cause a DMI_READ_ONLY to be
`returned.
`
`Dmibios2
`
` 9 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 9/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`The dmiDataBuffer parameter references a structure of the following format:
`
`Offset
`00h
`
`Field
`Command
`
`01h
`
`FieldOffset
`
`02h
`
`ChangeMask
`
`06h
`
`ChangeValue
`
`0Ah
`
`DataLength
`
`0Ch
`
`StructureHeader
`
`10h
`
`StructureData
`
`Length
`BYTE
`
`WORD
`
`Var
`
`01h
`
`02h
`
`03h
`
`04h
`
`05h
`
`BYTE
`
`Description
`Identifies the structure-setting operation to be performed, one of:
`00h
`A single byte of information is to be changed in the structure
`identified by StructureHeader
`A word (two bytes) of information is to be changed in the
`structure identified by StructureHeader
`A double-word (four bytes) of information is to be changed in
`the structure identified by StructureHeader
`The structure identified by StructureHeader is to be added to
`the DMI structure pool
`The structure identified by StructureHeader is to be deleted
`from the DMI structure pool
`A string’s value is to be changed in the structure identified by
`StructureHeader.
`06h-0FFh Reserved for future assignment by this specification.
`For a structure change Command, identifies the starting offset within
`the changed structure’s fixed data of the to-be-changed item. For a
`string-value change Command, identifies the offset within the
`structure’s fixed data associated with the string’s “number”. This field
`is ignored for all other Commands.
`DWORD For a structure-change Command, identifies the ANDing mask to be
`applied to the existing structure data prior to applying the
`ChangeValue. The number of significant bytes within this area is
`defined by the Command. This field is ignored for all other Commands.
`DWORD For a structure-change Command, identifies the data value to be ORed
`with the existing structure data – after applying the ChangeMask. The
`number of significant bytes within this area is defined by the Command.
`This field is ignored for all other Commands.
`For a structure-add Command, identifies the full length of the to-be-
`added structure. The length includes the structure header, the fixed-
`length portion of the structure, and any string data which accompanies
`the added structure – including all null-terminators. For a string-value
`change Command, identifies the length of the string data (including the
`null-terminator); if the length is 1, the current string is deleted. This
`field is ignored for all other Commands.
`4 BYTEs Contains the structure header (see Structure Header Format on page 22)
`of the structure to be added, changed, or deleted.
`For a structure-add Command, contains the data to be associated with
`the DMI BIOS Structure identified by the StructureHeader. For a
`string-value change Command, contains the string’s data (the number
`of characters is identified by DataLength). This field is ignored for all
`other Commands.
`
`The dmiWorkBuffer parameter references a work buffer for use by the BIOS in performing the request; the contents
`of the buffer are destroyed by the BIOS’ processing. This work buffer must be read/write and sized to hold the
`entire DMI structure pool, based on the maximum structure-size information (StructureSize * NumStructures)
`
`Dmibios2
`
` 10 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 10/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`returned by Function 50h – Get DMI Information (see page 7) plus the size of any structure to be added by the
`request.
`
`The Control flag provides a mechanism for indicating to the BIOS whether the set request is to take effect
`immediately, or if this is a check to validate the to-be-updated data.
`Control is defined as:
`Bit 0
`
`Bits 1:7
`
`0 = Do not set the specified structure, but validate its parameters.
`1 = Set the structure immediately.
`Reserved, must be 0.
`
`If bit 0 of Control is 0, then the dmiDataBuffer values are checked for validity. If any are not valid, then the
`function returns DMI_BAD_PARAMETER; if any read-only field is modified, the function returns
`DMI_READ_ONLY. Validity checking is useful to determine if the BIOS supports setting a structure field to a
`particular value – or whether the BIOS supports writing to a specific structure field. For example, it may be useful
`for an OEM to determine beforehand whether the OEM's BIOS supports a "Reboot to Diagnostics Now" setting in
`an OEM-defined structure.
`
`The protected-mode read/write selector dmiSelector has base equal to dmiStorageBase and a limit of at least
`dmiStorageSize, so long as the dmiStorageBase returned from Function 50h – Get DMI Information was non-zero.
`
`The BiosSelector parameter enables the system BIOS, if necessary, to update system variables that are contained in
`the system BIOS memory space. If this function is called from protected mode, the caller must create a data
`segment descriptor using the 16-bit Protected Mode data segment base address specified in the Plug and Play
`Installation Check data structure, a limit of 64KB, and the descriptor must be read/write capable. If this function is
`called from real mode, BiosSelector should be set to the Real mode 16-bit data segment address as specified in the
`Plug and Play Installation Check Structure. Refer to section 4.4 of the Plug and Play BIOS Specification revision
`1.0a for more information on the Plug and Play Installation Check Structure and the elements that make up the
`structure.
`
`This function is available in real mode and 16-bit protected mode.
`
`Note: If the system BIOS supports structure-change notification, a structure-change event will be issued by the
`BIOS upon its successful completion of a structure-setting (rather than validation) function call. See Structure
`Change Notification Interface on page 12 for more information.
`
`Returns:
`If successful - DMI_SUCCESS
`If an error occurred, the Error Code will be returned in AX. The FLAGS and all other registers will be preserved.
`
`Errors:
`DMI_BAD_PARAMETER
`DMI_READ_ONLY
`
`DMI_ADD_STRUCTURE_FAILED
`
`DMI_INVALID_HANDLE
`
`A parameter contains an invalid or unsupported value.
`A parameter is read-only and differs from the present value –
`an attempt was made to modify a read-only value.
`The desired structure could not be added due to insufficient storage
`space.
`For an add (03h) Command, the structure handle present in the
`StructureHeader already exists or, for a change (00h to 02h and 05h)
`or delete (04h) Command, the structure handle does not exist.
`
`Dmibios2
`
` 11 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 11/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`Example:
`The following example illustrates how the 'C' style call interface could be made from an assembly language
`module:
`
`push
`push
`push
`push
`push
`push
`push
`push
`call
`add
`cmp
`jne
`
`BiosSelector
`dmiSelector
`Control
`segment/selector of dmiWorkBuffer
`offset of dmiWorkBuffer
`segment/selector of dmiDataBuffer
`offset of dmiDataBuffer
`SET_DMI_STRUCTURE
`FAR PTR entryPoint
`sp, 16
`ax, DMI_SUCCESS
`error
`
`;pointer to BIOS temporary buffer
`
`; pointer to structure
`
`; Function number, 52h
`
`; clean stack
`; Successful?
`; No, go handle error
`
`2.5 Structure Change Notification Interface
`
`Certain classes of systems may provide the capability for the addition or removal of system devices while the
`system unit is powered on, such as inserting a Notebook unit into a Docking Station. System BIOS support is
`necessary for providing DMI Structure Change Notification accessible to system software so that when devices are
`added or removed the system software will comprehend any changes in the DMI BIOS Structures. Structure
`Change Notification can be implemented as either a polled method or as asynchronous Plug-and-Play events. For
`information on how Plug-and-Play event notification is accessed, see section 4.6 of the Plug and Play BIOS
`Specification revision 1.0a.
`
`When system software is notified on an event by either mechanism, it can then call the BIOS runtime function
`(Plug and Play BIOS Function 3 - Get Event) to get the type of event. In addition to the events defined in the Plug
`and Play BIOS Specification, the following event has been defined.
`
`Note: Some DMI structure values might be inherently changing (e.g. an OEM-specific structure which returns
`system temperature and voltage values). Due to the frequency of the values’ change, the BIOS might not return
`Structure Change status for this type of structure.
`
`DMI_STRUCTURE_CHANGE_EVENT
`
`7FFFh
`
`This message indicates that there has been a change in the DMI Information being maintained by the System
`BIOS. Upon receiving a DMI_STRUCTURE_CHANGE_EVENT, system software can call the BIOS runtime
`function 53h (Get Structure Change Information) to determine the exact cause of the DMI structure-change event.
`
`Dmibios2
`
` 12 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 12/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`2.5.1 Function 53h – Get Structure Change Information
`
`Synopsis:
`short FAR (*entryPoint)(Function, dmiChangeStructure, dmiSelector, BiosSelector);
`short Function;
`/* PnP BIOS Function 53h */
`unsigned char FAR *dmiChangeStructure;
`/* Pointer to DMI Change structure */
`unsigned short dmiSelector;
`/* DMI data read/write selector */
`unsigned short BiosSelector;
`/* PnP BIOS readable/writable selector */
`
`Description:
`Required for DMI BIOS Dynamic Structure Change Notification Support. This function will allow system
`software to get information about what type of DMI structure-change occurred. The DMI structure-change
`information will be returned in the 16-byte memory buffer pointed to by dmiChangeStructure in the following
`format:
`
`Field
`DMI Change Status
`DMI Change Type
`DMI Structure Handle
`Reserved
`
`Offset
`00h
`01h
`02h
`04h-0Fh
`
`Length
`BYTE
`BYTE
`WORD
`12 BYTEs
`
`Value
`ENUM
`Bit Field
`Varies
`00h
`
`DMI Change Status:
`00h
`No Change
`01h
`Other
`02h
`Unknown
`03h
`Single DMI Structure Affected
`04h
`Multiple DMI Structures Affected
`05h - 0FFh
`Reserved
`
`DMI Change Type:
`Bit 0
`One or more structures was changed, when 1.
`Bit 1
`One or more structures was added, when 1. See “Function 52h – Set DMI Structure”
`for information about adding DMI structures.
`Reserved, must be 0
`
`Byte 2:7
`
`If DMI Change Status 03h (Single Structure Affected) is returned, the number (or handle) of the affected structure
`is present in the "DMI Structure Handle" field; DMI Change Type identifies whether the structure was changed
`(01h) or added (02h).
`
`If DMI Change Status 04h (Multiple DMI Structures Affected) is returned, the caller must enumerate all the
`structures to determine what was changed and/or added. DMI Change Type identifies whether multiple structures
`were changed (01h), multiple structures were added (02h), or structures were both changed and added (03h).
`
`The DMI Change Status Byte remains valid until Function 53h is called. The calling of Function 53h will reset the
`DMI Change Status Byte to be reset to zero. If the call is issued in the absence of a DMI event, the function returns
`error code 86h (DMI_NO_CHANGE).
`
`The protected-mode read/write selector dmiSelector has base equal to dmiStorageBase and limit of at least
`dmiStorageSize — so long as the dmiStorageBase value returned from Function 50h was non-zero.
`
`Dmibios2
`
` 13 of 49 29 July, 1996
`
`SAMSUNG EX. 1012 - 13/49
`
`
`
`DMI BIOS Specification
`
` DRAFT COPY
`
` Version 2.0
`
`The BiosSelector param