throbber
...
`
`2"
`
`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.
`
`\document\ indstd\ dm1\dmb2spc.doc
`
`Apple Inc. Exhibit 1013 Page 1
`
`

`
`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
`
`Version 2.0D
`Version 2.OM
`
`Version 2.00
`
`09/14/95Initial Release of DRAFT COPY
`12/12/95Final 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
`03/06/96Final 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
`
`1.1 REFERENCES
`1.2 ENHANCEMENTS TO THE CURRENT BIOS ARCHITECTURE
`
`2. ACCESSING DMI INFORMATION
`
`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
`2.6.2 DMI_CONTROL_LOGGING CONTROL WORD
`
`4
`
`4
`4
`
`5
`
`5
`5
`6
`7
`7
`8
`9
`12
`13
`15
`15.
`16
`
`dmb2spc
`
`2 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 2
`
`

`
`17
`18
`19
`20
`
`22
`
`DMI BIOS Specification
`
`DRAFT COPY
`
`Version 2.0
`
`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
`
`3. DMI BIOS STRUCTURES
`
`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)
`
`dmb2spc
`
`3 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 3
`
`

`
`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.
`
`dmb2spc
`dmb2sx
`
`4 of 49
`4 of 49
`
`5 November, 1996
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 4
`
`

`
`....2.:~ih
`
`s
`
`DMI BIOS Specification
`
`DRA FT COPYV
`
`Version 2.0
`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.
`
`2.2 DMI BIOS Functions
`
`This table defines the current DMI BIOS Functions.
`
`UETBI MII_NFORMATIUN
`
`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
`
`50h
`
`51h
`
`53h
`
`Returns the Number of Structures, Required
`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.
`52h .. 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.
`
`Required
`
`Optional
`
`Required for
`Dynamic Structure-
`change Notification
`Support
`Optional
`Required for GPNV
`Support
`
`54h
`55h
`
`56h
`
`57h
`
`Controls a system action
`Returns information about the
`General Purpose Non-Volatile
`Storage Area
`Reads the entire specified GPNV
`Required for GPNV
`contents into a buffer specified by .Support
`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.
`
`Required for GPNV
`Support
`
`Reserved
`
`dmb2spc
`
`5 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 5
`
`

`
`'""'
`
`-n--~-
`
`DRAFT COPY
`DRAFT COPY
`
`Version 2.0
`Version 2.0
`
`DMI BIOS Specifcation
`DM1 BIOS Specification
`
`2.3 Error Return Codes
`
`After the call has been made, the following return codes are available in the AX Register.
`
`DMI_SUCCESS
`DMI UNKNOWN FUNCTION
`DMI_FUNCTION NOT_SUPPORTED
`DMI_INVALID_HANDLE
`
`DMI_BAD_PARAMETER
`
`DMI_INVALID_SUBFUNCTION
`
`DMI_NOCHANGE
`
`DMI_ADD_STRUCTURE_FAILED
`
`DMI_READ_ONLY
`
`DMI_LOCK_NOTSUPPORTED
`
`DMI_CURRENTLY_LOCKED
`
`DMI_ INVALID_LOCK
`
`00h
`81h
`82h
`83h
`
`84h
`
`85h
`
`86h
`
`87h
`
`8Dh
`
`90h
`
`91h
`
`92h
`
`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.
`
`dmb2spc
`
`6 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 6
`
`

`
`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 51 h 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.
`
`dmb2spc
`
`7 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 7
`
`

`
`d
`
`DMI BIOS Specification
`
`DRAFT COPY
`
`Version 2.0
`
`Returns:
`If successful - DMISUCCESS
`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
`BiosSelector
`push
`segment/selector of dmiStorageSize
`push
`offset of dmiStorageSize
`push
`segment/selector of dmiStorageBase
`push
`offset of dmiStorageBase
`push
`segment/selector of StructureSize
`push
`offset of StructureSize
`push
`segment/selector of NumStructures
`push
`offset NumStructures
`segment/selector of dmiBIOSRevision ; Pointer to DMIBIOSRevision
`push
`offset dmiBIOSRevision
`push
`push
`GET_DMI_INFORMATION
`FAR PTR entryPoint
`call
`sp, 24
`add
`cmp
`ax, DMI_SUCCESS
`jne
`error
`
`; Pointer to DMIStorageSize
`
`; Pointer to DMIStorageBase
`
`; Pointer to StructureSize
`
`; Pointer to NumStructures
`
`; Function number, 50h
`
`; Clean up stack
`; Function completed successfully?
`
`2.4.2 Function 51 h - Get DMI Structure
`
`Synopsis:
`short FAR (*entryPoint)(Function, Structure, dmiStrucBuffer, dmiSelector, BiosSelector);
`short Function;
`/* PnP BIOS Functionr Slh */
`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 */
`/* PnP BIOS readable/writable selector */
`unsigned short BiosSelector;
`
`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 OFFFFh.
`
`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.
`This function is available in real mode and 16-bit.protected mode.
`
`dmb2spc
`
`8 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 8
`
`

`
`DMI BIOS Specification
`
`DRAFTCOPY
`
`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
`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)
`/* PnP BIOS Function 52h */
`short Function;
`/* Pointer to buffer containing new/change data */
`unsigned char FAR *dmiDataBuffer;
`/* Pointer to work buffer area for the BIOS */
`unsigned char FAR *dmiWorkBuffer;
`/* Conditions for performing operation */
`unsigned char Control;
`/* DMI data read/write selector */
`unsigned short dmiSelector;
`/* PnP BIOS readable/writeable selector */
`unsigned short BiosSelector;
`
`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 DMIREADONLY to be returned.
`
`dmb2spc
`
`9 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 9
`
`

`
`.. z :... ,
`
`DMI BIOS Specification
`
`DRAFT COPY
`
`Version 2.0
`
`The dmiDataBuffer parameter references a structure of the following format:
`
`Offset
`OOh
`
`01h
`
`02h
`
`06h
`
`OAh
`
`OCh
`
`10h
`
`Field
`Command
`
`Length
`BYTE
`
`Olh
`
`02h
`
`03h
`
`04h
`
`05h
`
`Description
`Identifies the structure-setting operation to be performed, one of:
`OOh
`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.
`For a structure-change Command, identifies the data vale to be ORed
`with the existing structure data - after applying the ChangeMask. The
`number of significant bytes within this area is defined by the Conunand.
`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.
`StructureHeader 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.
`
`FieldOffset
`
`BYTE
`
`ChangeMask
`
`ChangeValue
`
`DWORD
`
`DataLength
`
`WORD
`
`StructureData
`
`Var
`
`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)
`
`dmb2spc
`
`10 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 10
`
`

`
`l
`
`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 tp 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
`
`0 = Do not set the specified structure, but validate its parameters.
`1 = Set the structure immediately.
`Reserved, must be 0.
`
`Bits 1:7
`
`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
`
`DMIADD_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.
`
`dmb2spc
`
`11 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 11
`
`

`
`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 ; pointer to structure
`offset of dmiDataBuffer
`SET DMI_STRUCTURE
`FAR PTR entryPoint
`
`; Function n
`lumber, 52h
`
`;pointer to I
`BIOS temporary buffer
`
`sp, 16
`
`ax, DMI_SUCCESS
`error
`
`; 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.
`
`dmb2spc
`
`...
`
`... .
`
`12 of 49
`1 of 49
`
`5 November, 1996
`5.. Noveb.r 1996
`
`Apple Inc. Exhibit 1013 Page 12
`
`

`
`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);
`/* PnP BIOS Function 53h */
`short Function;
`/* Pointer to DMI Change structure */
`unsigned char FAR *dmiChangeStructure;
`/* DMI data read/write selector */
`unsigned short dmiSelector;
`/* PnP BIOS readable/writable selector */
`unsigned short BiosSelector;
`
`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-OFh
`
`Length
`BYTE
`BYTE
`WORD
`12 BYTEs
`
`Value
`ENUM
`Bit Field
`Varies
`OOh
`
`DMI Change Status:
`No Change
`OOh
`Other
`Olh
`Unknown
`02h
`Single DMI Structure Affected
`03h
`Multiple DMI Structures Affected
`04h
`Reserved
`05h - OFFh
`
`DMI Change Type:
`One or more structures was changed, when 1.
`Bit 0
`One or more structures was added, when 1. See "Function 52h - Set DMI Structure"
`Bit 1
`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 (Olh)
`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 (Olh), 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_NOCHANGE).
`
`The protected-mode read/write selector dmiSelector has base equal to dmiStorageBase and limit of at least
`so long as. the dmiStorageBase value returned from Function 50h was non-zero.
`dmiStorageSize -
`
`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
`
`dmb2spc
`
`- ~ ~
`
`------
`
`~
`
`~
`
`~
`
`13 of 49
`~
`~
`
`.
`
`-
`
`.
`
`-
`
`------
`.
`
`.
`
`.
`
`5 November, 1996
`-
`.......--
`
`Apple Inc. Exhibit 1013 Page 13
`
`

`
`DMI BIOS Specification'
`
`DRAFTCOPY
`
`Version 2.0
`
`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.
`
`Returns:
`If successful - DMI_SUCCESS
`If an Error (Bit 7 set) or a Warning occurred
`registers will be preserved
`
`the Error Code will be returned in AX, the FLAGS and all other
`
`Example:
`The following example illustrates how the 'C' style call interface could be made from an assembly language module:
`
`push
`push
`push
`push
`push
`call
`add
`cmp
`jne
`
`BiosSelector
`dmiSelector
`segment/selector of dmiChangeStructure
`offset of dmiChangeStructure
`GET_ DMI_STRUCTURECHANGE_INFO
`FAR PTR entryPoint
`sp, 10
`ax, DMI_SUCCESS
`error
`
`;Function number, 53h
`
`;Clean up stack
`;Function completed successfully?
`
`dmb2spc
`
`14 of 49
`
`5 November, 1996
`
`Apple Inc. Exhibit 1013 Page 14
`
`

`
`DMI BIOS Speciication
`
`DM1~~~~~~ ~
`~
`~~
`
`DRAFT COPY
`BISSeiiainDATCP
`
`Version 2.0
`.
`eso
`
`2.6 Control Interface
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket