American Megatrends, Inc.

SmbiosBoard

Copyright

Release Notes

© American Megatrends, Inc.


Copyright

American Megatrends, Inc.
5555 Oakbrook Parkway
Suite 200
Norcross, GA 30093 (USA)

Copyright (c) 1999-2016 American Megatrends, Inc. All Rights Reserved.

This publication contains proprietary information, which is protected by copyright. No part of this publication may be reproduced, transcribed, stored in a retrieval system, translated into any language or computer language, or transmitted in any form whatsoever without the prior written consent of the publisher, American Megatrends, Inc.

American Megatrends, Inc. retains the right to update, change, modify this publication at any time, without notice.

For Additional Information

Call American Megatrends BIOS Sales Department at 1-800-828-9264 for additional information.

Limitations of Liability

In no event shall American Megatrends be held liable for any loss, expenses, or damages of any kind whatsoever, whether direct, indirect, incidental, or consequential, arising from the design or use of this product or the support materials provided with the product.

Limited Warranty

No warranties are made, either expressed or implied, with regard to the contents of this work, its merchantability, or fitness for a particular use. American Megatrends assumes no responsibility for errors and omissions or for the uses made of the material contained herein or reader decisions based on such use.

Trademark and Copyright Acknowledgments

All product names used in this publication are for identification purposes only and are trademarks of their respective Companies.


Release Notes - NDA Required

Component Information:
Component Title: SMBIOS - Board
Component Reference Name: SMBIOSBoard
Component Type: eModule
Release Date: 2016-04-29
Source Control Label: 4.6.5.5_SMBIOSBOARD_40
Source Control Location: SS:ALASKA; $/Alaska/BIN/Modules/SMBIOS/;
Dependencies
Dependent Component Title: SMIFlash
Dependent Component Reference Name: SMIFlash
Dependent Source Control Label: 4.6.3.6_SMIFLASH_30 or later
Dependent Source Control Location: SS:Alaska; $/Alaska/SOURCE//Modules/SMIFlash

Dependent Component Title: Flash - Source
Dependent Component Reference Name: FLASH_COMBINED_SOURCE
Dependent Source Control Label: 4.6.3_Flash_Combined_2_36
Dependent Source Control Location: SS:Alaska; $/Alaska/SOURCE/Flash_Combined_2/Core

Non-Compiled BIN and LIB File(s) within this Component:
N0NE

Compiled BIN File(s) within this Component:
The following binary files were built with Smbios Core component (4.6.5.5_SMBIOS_40) using default settings and SMBIOS_DMIEDIT_DATA_LOC set to 0 (BootBlock) on SugarBay platform:

Smbios32.ffs, Smbios64.ffs, SmbiosFlashData.ffs, SmbiosGetFlashData32.ffs, SmbiosGetFlashData64.ffs, SmbiosDMIEdit32.obj, SmbiosDMIEdit64.ffs, SmbiosDMIEditFunc32.obj, SmbiosDMIEditFunc64.obj.

These binaries are utilized in project without SmbiosCore source, and with the settings mentioned above only.

Component Description:
The purpose of System Management BIOS (SMBIOS) is to generate and report system configuration data in the SMBIOS Structure Table. Smbios Board component contains portable static data that are used to create static Smbios table at build time. It also has portable functions that are called during Bios Post to dynamically update some structures such as Memory, CPU, On-board devices

Filename | Description
Main Component | Board\em\Smbios
*.cif *.sdl *.mak *.dxs | Standard CIF, SDL, MAK, and DXS files
*.ffs | Pre-compiled binaries
SmbiosBoard.c | Contains Smbios Board Protocols, porting functions to dynamically update some Smbios structures during Bios Post
Smbrun.asm | Provides Smbios PnP functionalities
Smbios Protocols ModulePart Include\Protocol
Contains structure definitions and function declarations
*.h | Contains structure definitions and function declarations
SMBIOS Static Data ModulePart Board\EM\SMBIOS\SMBiosStaticData
Contains porting files and macro to create Smbios Static Table
*.cif *.mak | Standard CIF MAK files
*.asm | Used in table creation at build time
SmbiosStaticData.sdl | Contains portable tokens that are used to create Smbios Static Table
Smbdesc.def | Contains various definitions to build Smbios Static Table
Smbdata.mac Smbmacro.aid | Macro files to build Smbios Static Table
Smbstruc.def Smb.equ | Contains structure definitions
Note:
Project supporting "Intel Anchor Cove" should clone "$(SMBIOS_DIR)\SmbiosFlashData.ffs" ELINK in SMBIOS.SDL file and change its parent from "FV_BB" to "FV_DATA"

AMI Build Tools:
4.5.5_TOOLS_41, WINDDK: 7600.16385.1

New features added in this label:
  • None

    • General Bug Fixes and EIP Addressed in this Label:
  • EIP231162
    • Improvement:
    Merge Aptio V Smbios -09 changes for Aptio 4 4.6.5.5_SMBIOS_40 release

    Files Changed for General Bug Fixes and EIP Addressed in this Label:
    General Bug Fixes
  • None

    • EIP Addressed
  • EIP231162
    •
    Smbios.sdl, SmbiosDynamicData.h, Smbios.h, SmbiosStaticData.sdl, SmbiosStaticData.asm, SmbData.mac, SmbMacro.aid, SmbDesc.def, SmbiosDmiEditBoard.mak

    Known Limitations and Erratas in this label:
  • None

    • Unit Testing:
  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot

    • Validation Testing:
    Available upon request

    Release History:

    4.6.5.5_SMBIOSBOARD_39
    New features added in this label:
  • None

    • General Bug Fixes and EIP Addressed in this Label:
  • EIP205509
    • Improvement:
    Merge Aptio V Smbios EIP193807, 193858, 196901 changes into Aptio 4 Smbios

    Files Changed for General Bug Fixes and EIP Addressed in this Label:
    General Bug Fixes
  • None

    • EIP Addressed
  • EIP205509
    •
    SmbiosStaticData.asm, Smbdata.mac, Smbdesc.def

    Known Limitations and Erratas in this label:
  • None

    • Unit Testing:
    Available upon request

    Validation Testing:
    Available upon request

    4.6.5.4_SMBIOSBOARD_38
    New features added in this label:
  • None

    • General Bug Fixes and EIP Addressed in this Label:
  • EIP157418
    • Improvement:
    Removal of temporary bus assignment or sample code from SmbiosBoard.c template

    Files Changed for General Bug Fixes and EIP Addressed in this Label:
    General Bug Fixes
  • None

    • EIP Addressed
  • EIP157418
    •
    SmbiosBoard.c

    Known Limitations and Erratas in this label:
  • None

    • Unit Testing:
    Available upon request

    Validation Testing:
    Available upon request

    4.6.5.4_SMBIOSBOARD_37
    New features added in this label:
  • None

    • General Bug Fixes and EIP Addressed in this Label:
  • EIP152598
    • ISSUE:
    SMBIOS UUID can't be updated by DMIEdit tool
    FIX:
    Set Update flag when changing UUID field

  • EIP151804
    • Improvement:
    4.6.5.1_SMBIOSBOARD_35 removed SYS_CHASSIS_TYPE token caused existing projects failed to clone it

    Files Changed for General Bug Fixes and EIP Addressed in this Label:
    General Bug Fixes
  • None

    • EIP Addressed
  • EIP152598
    •
    Smbios.c
  • EIP151804
    •
    SmbiosStaticData.sdl

    Known Limitations and Erratas in this label:
  • None

    • Unit Testing:
    Platform: SugarBay and SharkBay

  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot

    • Validation Testing:
    BQA TEST RESULTS
    Quality Assurance Test Results
    Quality Assurance Test Results

    4.6.5.1_SMBIOSBOARD_36
    New features added in this label:
  • None

    • General Bug Fixes and EIP Addressed in this Label:
  • EIP143030
    • Improvement:
    Synchronize Aptio 4 Smbios with recent changes on Aptio V Smbios for '4.6.5.1_SMBIOS_36' release

    Files Changed for General Bug Fixes and EIP Addressed in this Label:
    General Bug Fixes
  • None

    • EIP Addressed
  • EIP143030
    •
    Smbdesc.def, SMBDATA.MAC

    Known Limitations and Erratas in this label:
  • None

    • Unit Testing:
    Platform: SugarBay and SharkBay

  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot

    • Validation Testing:
    BQA TEST RESULTS
    Quality Assurance Test Results
    Quality Assurance Test Results

    4.6.5.1_SMBIOSBOARD_35
    New features added in this label:
  • Type 4 (Serial Number, Asset Tag, Part Number) DMIEdit support.
  • SMBIOS 2.8.0 specification support.
  • Multiple instances of SMBIOS Type 3 structure support.

    • General Bug Fixes and EIP Addressed in this Label:
  • EIP124483
    • ISSUE:
    After updating to SMBIOS 33, issue found with smbios type 4 &7 & 10 & 11 & 13 &14
    FIX:
    Added control token SMBIOS_DYNAMIC_UPDATE_POLICY. Default setting is 0 to do dynamic update at Ready To Boot event for backward compatibility

  • EIP104836
    • NEW FEATURE:
    DMIEdit support edit type 4

  • EIP124735
    • SPEC UPDATE:
    SMBIOS 2.8.0 specification support for Aptio 4

  • EIP125665
    • NEW FEATURE:
    Support multiple instances of SMBIOS Type 3 structure (merge EIP106206 into Aptio 4)

  • EIP126389
    • ISSUE:
    Unable to edit SMBIOS structure using AmiEdit utility
    FIX:
    Added "$(SMBIOS_DIR)\SmbiosFlashData.ffs" eLink to FT_FV_BB when FtRecovery is present

    Files Changed for General Bug Fixes and EIP Addressed in this Label:
    General Bug Fixes
  • None

    • EIP Addressed
  • EIP124483
    •
    Smbios.sdl

  • EIP104836
    •
    SmbiosBoard.c, SmbiosDMIEditBoard.sdl, Smbios.h, SmbiosDynamicData.h

  • EIP124735
    •
    Smb.equ, Smbdata.mac, Smbdesc.def, Smbstruc.def, Smbios.h, SmbiosDynamicData.h

  • EIP125665
    •
    Smbdata.mac, SmbiosStaticData.sdl, Smbstruc.def, Smbios.h

  • EIP126389
    •
    Smbios.sdl

    Known Limitations and Erratas in this label:
  • None

    • Unit Testing:
    Platform: SugarBay

  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot

    • Validation Testing:
    BQA TEST RESULTS
    Quality Assurance Test Results
    Quality Assurance Test Results
    Quality Assurance Test Results

    4.6.5.1_SMBIOSBOARD_34
    New features added in this label:
  • None
    • General Bug Fixes:
  • None
    • EIP addressed in this label:
  • None
    • Files changed:
  • SMBios.sdl
    •
    Incremented AMI_SMBIOS_MODULE_VERSION SDL token
    Known issues and limitations in this label:
  • None
    • Unit Testing:
    Platform: SugarBay
  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot
    • Validation Testing:
    BQA TEST RESULTS
    Quality Assurance Test Results
    Quality Assurance Test Results

    4.6.5.1_SMBIOSBOARD_33
    New features added in this label:
  • None
    •
    General Bug Fixes:
  • EIP99388 - Can not modified SMBIOS type 38 by smbiosstaticdata.sdl
  • EIP106202 - SMBIOS Type 31 structure: 16-bit and 32-bit were display 0
    •
    EIP addressed in this label:
  • EIP99388 - Can not modified SMBIOS type 38 by smbiosstaticdata.sdl
  • EIP106202 - SMBIOS Type 31 structure: 16-bit and 32-bit were display 0
    •
    Files changed:
    [TAG] | EIP99388
[Category] | Improvement
[Description] | Can not modified SMBIOS type 38 by smbiosstaticdata.sdl
[Files] | Smbdata.mac - File version: 33
 | Smbdesc.def - File version: 19
[TAG] | EIP106202
[Category] | Bug Fix
[Severity] | Minor
[Symptom] | Structure type 31: 16-bit and 32-bit were 0
[RootCause] | Error in CreateBootIntegrityServicesInfo macro
[Solution] | Corrected error in CreateBootIntegrityServicesInfo macro
[Files] | Smbdata.mac - File version: 34
    Known issues and limitations in this label:
  • None
    •
    Unit Testing:
    Platform: SugarBay
  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot
    •
    Validation Testing:
    BQA TEST RESULTS
    Quality Assurance Test Results
    Quality Assurance Test Results
    4.6.5.1_SMBIOSBOARD_32
    New features added in this label:
  • Multiple Smbios Type 2 support
  • Flash Memory Type 16 & 17 support
  • Multiple Smbios Type 39 support
    •
    General Bug Fixes:
  • EIP81469 - SMBIOS protocol didn't compatible with PI1.1
    •
    EIP addressed in this label:
  • EIP81469 - SMBIOS protocl didn't compatible with PI1.1
  • EIP82983 - Need Creating Tokens for Type1:UUID/Type11/Typ12/Type22
  • EIP84370 - Flash memory(type 16 and 17) on aptio
  • EIP92170 - Adding DmiEdit support for multiple instances of Smbios type 39 structure to match with AMI DmiEdit tool
    •
    Files changed:

        [TAG]		EIP78264
        [Category]		Improvement
        [Description]	SMBOS Type 2 (Spec 2.7.1) - No multiple type 2 support
        [Files]		Smbios.h - File version: 22
            Smbios.c - File version: 123
            Smbdata.mac - File version: 30
            Smbdesc.def - File version: 17
            SmbiosStaticData.sdl - File version: 29

        [TAG]		EIP81469
        [Category]		BUG FIX
        [Severity]		Normal
        [Symptom]		SMBIOS protocl didn't compatible with PI1.1
        [RootCause]		PI1.1 protocol functions incorrectly added after AMI functions of Smbios protocols.
        [Solution]		Moved PI1.1 protocol functions to the top of the protocol.
        [Files]		Smbios.c - File version: 127
            Smbios.h - File version: 23

            [TAG]		EIP82983
        [Category]		Improvement
        [Description]	Need Creating Tokens for Type1:UUID/Type11/Typ12/Type22
        [Files]		SmbiosStaticData.sdl - File version: 30
            Smbdata.mac - File version: 31
            Smbdesc.def - File version: 18

        [TAG]		EIP84370
        [Category]		Improvement
        [Description]	Flash memory(type 16 and 17) on aptio
        [Files]		Smbdata.mac - File version: 32
            SmbiosStaticData.asm - File version: 10
            SmbiosStaticData.sdl - File version: 31
            Smbios.c - File version: 129
            Smbios.mak - File version: 9
            Smbios.h - File version: 24

        [TAG]		EIP92170
        [Category]		Improvement
        [Description]	Adding DmiEdit support for multiple instances of Smbios type 39 structure to match with AMI DmiEdit tool
        [Files]		Smbios.h - File version: 25
            Smbios.c - File version: 132 & 133
            SmbiosStaticData.sdl - File version: 32
    Known issues and limitations in this label:
  • None
    •
    Unit Testing:
    Platform: Piketon DH55HC - Project label: Internal_Only_4.6.5.1_DH55HC_04
  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot
    •
    Validation Testing:
    BQA TEST RESULTS
    Quality Assurance Test Results
    Quality Assurance Test Results
    4.6.3_SMBIOSBOARD_31
    New features added in this label:
  • Allow SMBIOS Type 22 to be modified using DMIEdit
  • Allow Smbios Type 2 Location field and Type 3 SKU Number field to be updated by dmieditwingui tool
    •
    General Bug Fixes:
  • None
    •
    EIP addressed in this label:
  • EIP64029 - Allow SMBIOS Type 22 to be modified using DMIEdit
  • EIP68202 - Allow Smbios Type 2 Location field and Type 3 SKU Number field
  • EIP72671 - Smbios Core Source will not be compiled if it is placed above SmbiosBoard component in VEB (comment 29)
  • EIP74579 - Update SMBIOS moudule to let AMDELNX support SMBIOS spec 2.7 (remove the 64 characters string limitation)
    •
    Files changed:

        [TAG]		EIP64029
        [Category]		Improvement
        [Description]	Allow SMBIOS Type 22 to be modified using DMIEdit
        [Files]		Smbios.h - File version: 19
            Smbios.c - File version: 113
            SmbiosDmieditFunc.c - File version: 42

        [TAG]		EIP68202
        [Category]		Improvement
        [Description]	Allow Smbios Type 2 Location field and Type 3 SKU Number field
        [Files]		Smbios.c - File version: 117
            SmbiosDMIEditFunc.c - File version: 44
            Smbdata.mac - File version: 29
            Smbios.h - File version: 20

        [TAG]		EIP72671
        [Category]		Improvement
        [Description]	Smbios Core Source will not be compiled if it is placed above SmbiosBoard component in VEB (comment 29)
        [Files]		SmbiosDMIEditBoard.sdl - File version: 2
            SMBios.sdl - File version: 29

        [TAG]		EIP74579
        [Category]		Improvement
        [Description]	Update SMBIOS moudule to let AMDELNX support SMBIOS spec 2.7 (remove the 64 characters string limitation)
        [Files]		Smbios.h - File version: 21
            SmbiosStaticData.sdl - File version: 28
            Smbios.c - File version: 120
            SMBios.dxs - File version: 12
            SmbiosDMIEdit.sdl - File version: 6
            SmbiosDMIEdit.h - File version: 12
            SmbiosDMIEditFunc.c - File version: 48
            SmbiosNvram.c - File version: 7
            SmbiosFlashData.sdl - File version: 7
    Known issues and limitations in this label:
  • None
    •
    Unit Testing:
    Platform: Piketon DH55HC - Project label: Internal_Only_4.6.5.1_DH55HC_04
  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Amideefi to make changes to some structures and verify structures updated correctly, using any Smbios browser, in EFI Shell and in next boot
  • Run Amidewin to make changes to some structures and verify structures updated correctly, using any Smbios browser, in Windows and in next boot
  • Run Amidelnx in SUSE 11.4 to make changes to some structures and verify structures updated correctly in the current and in the next boot
  • Run DMIEdit to make changes to some structures and verify structures updated correctly, using any Smbios browser, in UEFI Windows 2008 and in next boot
    •
    4.6.3_SMBIOSBOARD_30
    New features added in this label:
  • None
    • General Bug Fixes:
  • EIP44236 - SMBIOS type 4 Processor Version is incorrect
  • EIP48600 - With SMBIOS 4.6.1_ALPHA_01.28 eModule, the DMIEDIT.EXE tool would hang and type10 Description String is wrong
  • EIP49728 - SMBIOS Type 10 Data incorrect
    •
    EIP addressed in this label:
  • EIP41560 - DMIEDIT modified values are not preserved in reboot
  • EIP46936 - Generic Smbios module should have the support to disable SMBIOS memory update
  • EIP44236 - SMBIOS type 4 Processor Version is incorrect
  • EIP48600 - With SMBIOS 4.6.1_ALPHA_01.28 eModule, the DMIEDIT.EXE tool would hang and type10 Description String is wrong
  • EIP48952 - Customer Request for SMBIOS Type 16 MemoryErrorCorrection field to be filled out
  • EIP49728 - SMBIOS Type 10 Data incorrect
  • EIP49944 - Smbios enhancements for incorporating no strings
    •
    Files changed:

        [TAG]		EIP41560
        [Category]		Improvement
        [Description]	DMIEDIT modified values are not preserved in reboot
        [Files]		Smbios.c - File version: 92
            Smbios.sdl - File version: 23
            SmbiosBoard.c - File version: 21
            SmbiosBoard.mak - File version: 9

        [TAG]		EIP46936
        [Category]	I	mprovement
        [Description]	Generic Smbios module should have the support to disable SMBIOS memory update
        [Files]		Smbios.c - File version: 94
            Smbios.sdl - File version: 24
            SmbiosBoard.c - File version: 22
            SmbiosDynamicData.h - File version: 25

        [TAG]		EIP44236
        [Category]		BUG FIX
        [Severity]		Normal
        [Symptom]		SMBIOS type 4 Processor Version is incorrect
        [RootCause]		Type 4 Version string is not resized as updated.
        [Solution]		Added code to replace the Version strings as updated. Same also applied to Manufacturer string.
        [Files]		Smbios.c - File version: 99
            SmbiosBoard.c - File version: 23

        [TAG]		EIP48600
        [Category]		BUG FIX
        [Severity]		Normal
        [Symptom]		With SMBIOS 4.6.1_ALPHA_01.28 eModule, the DMIEDIT.EXE tool would hang and type10 Description String is wrong
        [RootCause]		Recent change in macro used to create Type 10 structure was causing the problem.
        [Solution]		Reverted the change (for Type 10) to previous 4.6.1_ALPHA_01.27 label.
        [Files]		Smbdata.mac - File version: 24

        [TAG]		EIP48952
        [Category]		Improvement
        [Description]	Customer Request for SMBIOS Type 16 MemoryErrorCorrection field to be filled out
        [Files]		Smbios.c - File version: 100
            SmbiosDynamicData.h - File version: 28

        [TAG]		EIP49728
        [Category]		BUG FIX
        [Severity]		Normal
        [Symptom]		SMBIOS Type 10 Data incorrect
        [RootCause]		Macro to create Type 10 structure is incorrect.
        [Solution]		Modified macro to create one Type 10 Entry containing the number of ONBOARD_DEVICES.
        [Files]		Smbdata.mac - File version: 25
            Smbios.c - File version: 101

        [TAG]		EIP49944
        [Category]		Improvement
        [Description]	Smbios enhancements for incorporating no strings
        [Files]		Smbdata.mac -  File version: 26
    Known issues and limitations in this label:
  • Same as 4.6.1_ALPHA_01.28 label
    •
    Unit Testing:
    Platform: Piketon DH55HC - Project label: Internal_Only_4.6.4.1_DH55HC_04
  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Smbcfg to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
    •
    4.6.1_ALPHA_01.29
    New features added in this label:
  • None
    • General Bug Fixes:
  • EIP44236 - SMBIOS type 4 Processor Version is incorrect
  • EIP48600 - With SMBIOS 4.6.1_ALPHA_01.28 eModule, the DMIEDIT.EXE tool would hang and type10 Description String is wrong
  • EIP49728 - SMBIOS Type 10 Data incorrect
    •
    EIP addressed in this label:
  • EIP41560 - DMIEDIT modified values are not preserved in reboot
  • EIP46936 - Generic Smbios module should have the support to disable SMBIOS memory update
  • EIP44236 - SMBIOS type 4 Processor Version is incorrect
  • EIP48600 - With SMBIOS 4.6.1_ALPHA_01.28 eModule, the DMIEDIT.EXE tool would hang and type10 Description String is wrong
  • EIP48952 - Customer Request for SMBIOS Type 16 MemoryErrorCorrection field to be filled out
  • EIP49728 - SMBIOS Type 10 Data incorrect
  • EIP49944 - Smbios enhancements for incorporating no strings
    •
    Files changed:

        [TAG]		EIP41560
        [Category]		Improvement
        [Description]	DMIEDIT modified values are not preserved in reboot
        [Files]		Smbios.c - File version: 92
            Smbios.sdl - File version: 23
            SmbiosBoard.c - File version: 21
            SmbiosBoard.mak - File version: 9

        [TAG]		EIP46936
        [Category]	I	mprovement
        [Description]	Generic Smbios module should have the support to disable SMBIOS memory update
        [Files]		Smbios.c - File version: 94
            Smbios.sdl - File version: 24
            SmbiosBoard.c - File version: 22
            SmbiosDynamicData.h - File version: 25

        [TAG]		EIP44236
        [Category]		BUG FIX
        [Severity]		Normal
        [Symptom]		SMBIOS type 4 Processor Version is incorrect
        [RootCause]		Type 4 Version string is not resized as updated.
        [Solution]		Added code to replace the Version strings as updated. Same also applied to Manufacturer string.
        [Files]		Smbios.c - File version: 99
            SmbiosBoard.c - File version: 23

        [TAG]		EIP48600
        [Category]		BUG FIX
        [Severity]		Normal
        [Symptom]		With SMBIOS 4.6.1_ALPHA_01.28 eModule, the DMIEDIT.EXE tool would hang and type10 Description String is wrong
        [RootCause]		Recent change in macro used to create Type 10 structure was causing the problem.
        [Solution]		Reverted the change (for Type 10) to previous 4.6.1_ALPHA_01.27 label.
        [Files]		Smbdata.mac - File version: 24

        [TAG]		EIP48952
        [Category]		Improvement
        [Description]	Customer Request for SMBIOS Type 16 MemoryErrorCorrection field to be filled out
        [Files]		Smbios.c - File version: 100
            SmbiosDynamicData.h - File version: 28

        [TAG]		EIP49728
        [Category]		BUG FIX
        [Severity]		Normal
        [Symptom]		SMBIOS Type 10 Data incorrect
        [RootCause]		Macro to create Type 10 structure is incorrect.
        [Solution]		Modified macro to create one Type 10 Entry containing the number of ONBOARD_DEVICES.
        [Files]		Smbdata.mac - File version: 25
            Smbios.c - File version: 101

        [TAG]		EIP49944
        [Category]		Improvement
        [Description]	Smbios enhancements for incorporating no strings
        [Files]		Smbdata.mac -  File version: 26
    Known issues and limitations in this label:
  • Same as 4.6.1_ALPHA_01.28 label
    •
    Unit Testing:
    Platform: Piketon DH55HC - Project label: Internal_Only_4.6.4.1_DH55HC_04
  • Boot to DOS and verify proper structures using any Smbios browser
  • Run Amidedos to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
  • Run Smbcfg to make changes to some structures and verify structures updated correctly, using any Smbios browser, in DOS and in next boot
    •
    4.6.1_ALPHA_01.28
    New features added in this label:
  • EIP 43278 - SMBIOS specification version 2.7.0 support
    •
    General Bug Fixes:
  • None
    •
    EIP addressed in this label:
  • EIP46888 - Unlock PROCESSOR_INFO token in SmbiosStaticData.sdl
  • EIP45855 - Type1 will be removed to the latest if it updated
  • EIP43278 - SMBIOS 2.7 requirement
    •
    Files changed:

        [TAG]		EIP46888
        [Category]		Improvement
        [Description]	Unlock PROCESSOR_INFO token in SmbiosStaticData.sdl
        [Files]		SmbiosStaticData.sdl

        [TAG]		EIP45855
        [Category]		Improvement
        [Description]	[SMBIOS] Type1 will be removed to the latest if it updated.
        [Files]		Smbios.sdl

        [TAG]		EIP43278
        [Category]		Function Request
        [Severity]		Normal
        [Description]	SMBIOS 2.7 requirement
        [Files]		Smbios.h, SmbiosDynamicData.h, SmbiosStaticData.sdl, SMBDATA.MAC, SMBSTRUC.DEF, SMBMACRO.AID,
            Smbdesc.def, SMB.EQU
    Known issues and limitations in this label:
  • Plug-and-Play functions 50 through 52 are not removed in order to support DMIEdit utility.
  • String size limit of 64 characters will be removed in the next release.
  • New Type 42 - Management Controller Host Interface - can not be statically generated due to its variable size.
    User needs to create this structure and add it to the Smbios table using the SmbiosAddStructure protocol
    •
    Unit Testing:
    Platform: Piketon DH55HC - Project label: Internal_Only_4.6.4.1_DH55HC_04
  • Verify proper structures in DOS using any Smbios browser
    •
    4.6.1_ALPHA_01.27
    New features added in this label:
    • EIP 37736 - Added Smbios PI 1.1 support
    General Bug Fixes:
  • EIP 43695 - Fixed Type 13 string format to comply with Smbios specification
  • EIP 38010 - Added PnP function 52h commands 3 and 4 support
    •
    Files changed for EIP fixes:
  • Board\EM\SMBIOS\Smbios.h - (EIP 38010)(EIP 37736)
  • Board\EM\SMBIOS\Smbios.sdl - (EIP 38010)(EIP 37736)
  • Board\EM\SMBIOS\SmbiosStaticData.sdl - (EIP 43695)
  • Board\EM\SMBIOS\SmbiosGetFlashDataProtocol.c - (EIP 38010)
    •
    Unit Testing:
  • Verify proper structures in DOS using any Smbios browser
  • Verify Smbios Type 0 structure can be updated using DMI.EXE utility
  • Verify Smbios Type 11 structure can be updated using DMIRW.EXE utility
    •
    4.6.1_ALPHA_01.26
    Source Synchronization
  • SMBIOS Core Source 4.6.1_ALPHA_01.26 label
    •
    Fixes
  • None
    •
    New Features
  • None
    •
    Enhancement
  • Added code to enable shadow ram write by calling the newly added generic OemRuntimeShadowRamWrite function from CSP Lib - EIP 33862.

    Note: 4.6.4.0_CSPLibrary_013 or later is required with this change.

    File changed: SmbiosDMIEditBoard.c

  • Removed type 13 porting. Type 13 structure now is dynamically created if enabled - EIP 34939.

    File changed: SmbDesc.def, SmbiosStaticData.asm, SmbiosDMIEditBoard.mak

    • Miscellaneous
  • None
    •
    Errata & Known Issues
  • None
    •
    List of files changed in this label
  • SmbiosDMIEditBoard.c, SmbDesc.def, SmbiosStaticData.asm
    •
    4.6.1_ALPHA_01.25
    Source Synchronization
  • SMBIOS Core Source 4.6.1_ALPHA_01.25 label
    •
    Fixes
  • Change made to increase the handle number at the end of type 39 (System Power Supply)

    File changed: Smbdata.mac

    •
    4.6.1_ALPHA_01.24
    Source Synchronization
  • SMBIOS Core Source 4.6.1_ALPHA_01.24 label
    •
    Fixes
  • None
    •
    New Features
  • None
    •
    Enhancement
  • None
    •
    Miscellaneous
  • Set SMBIOS table to above 1MB when CSM support is not present.

    File changed: Smbios.sdl

    •
    Errata & Known Issues
  • None
    •
    List of files changed in this label
  • Smbios.sdl
    •
    4.6.1_ALPHA_01.23.2
  • No actual code change in this label.

    Only updated AMI / function headers and some code cleanup (EIP 22180)

    •
    4.6.1_ALPHA_01.23.1
    Source Synchronization
  • SMBIOS Core Source 4.6.1_ALPHA_01.23 label
    •
    Fixes
  • None
    •
    New Features
  • None
    •
    Enhancement
  • None
    •
    Miscellaneous
  • Added new equates per SMBIOS 2.6.1 specification only. No code change. (EIP 22465).

    File changed: Smb.equ

    •
    Errata & Known Issues
  • None
    •
    List of files changed in this label
  • Smb.equ
    •
    4.6.1_ALPHA_01.23
    Source Synchronization
  • SMBIOS Core Source 4.6.1_ALPHA_01.23 label
    •
    Fixes
  • SMBIOS CreateOnboardDevicesExtendedInfo macro returns used handle to next structure (EIP 21149).

    File changed:

    • Smbdata.mac: Corrected bug in macro.

  • Build error using new Fwbuild tool (EIP 20293)

    File changed: SmbiosStaticData.mak

    •
    New Features
  • Added SW SMI generation code for PnP 54 function support (EIP 19358)

    File changed: Smbrun.asm

    •
    Enhancement
  • Improvement of Aptio SMBIOS eModule for type 17 (EIP 22241)

    File changed:

    • SmbiosBoard.c: Removed Smbus related porting.
    • SmbiosDynamicData.h: Added SpdSmbusAddr field to PHYSICAL_MEM_ARRAY structure definition.
    •
    Miscellaneous
  • None
    •
    Errata & Known Issues
  • None
    •
    List of files changed in this label
  • Smbdata.mac
  • SmbiosStaticData.mak
  • Smbrun.asm
  • SmbiosBoard.c
  • SmbiosDynamicData.h
    •
    Testing
  • Boot to OS and use any SMBIOS browser to verify type 41 structure handle, and memory type 17 data.
    •
    4.6.1_ALPHA_01.22
    Source Synchronization
  • SMBIOS Core Source 4.6.1_ALPHA_01.22 label
    •
    Fixes
  • None
    •
    New Features
  • None
    •
    Enhancement
  • Additional language entries for BIOS Language Information structure type 13 have been added as shown below: (EIP 19134)
    • Chinese
    • Korean Republic
    • Canadian French
    • UK English
    • Greek
    • Irish
    • Portuguese
    • Polish
    • Russian
    • Thai
    • Vietnamese

    File changed:

    • Smbdesc.def: Added some additional language entries for BIOS Language Information structure type 13.
    •
    Miscellaneous
  • None
    •
    Errata & Known Issues
  • None
    •
    List of files changed in this label
  • Smbdesc.def
    •
    Testing
  • Build BIOS with NUMBER_OF_LANGUAGE_STRINGS in Smbdesc.def set to 4, BIOS_LANGUAGE_FORMAT set to 0.
  • Use any SMBIOS browser to verify the numbers of installable languages in BIOS Language Information structure 13 is 4, and the supported languages match with the entries listed in Smbdesc.def.
    • 4.6.1_ALPHA_01.21

    NOTE: This is not a new revision. Information from the previous release are reformatted here for better documentation only.

    Source Synchronization
  • SMBIOS Core Source 4.6.1_ALPHA_01.21 label
    •
    Fixes
  • None
    •
    New Features
  • New option to save DMIEdit data in NVRAM in addition to FV_BB. EIP #16965, EIP #18797.

    Files changed:

    • Smbios.sdl: Added SMBIOS_DMIEDIT_DATA_LOC token to specify where DMIEdit data should be stored.

  • Functions to save and restore DMIEdit data in NVRAM

    Files changed:

    Smbios.sdl

    • SMBIOS_PRESERVE_NVRAM token to select whether DMIEdit data in NVRAM is to be preserved or not when BIOS is flashed using Smiflash.
    • Added SMBIOS_DMIEDIT_DATA_LOC token to specify where DMIEdit data should be stored.
    •
    Enhancement
  • Changes done for better porting.

    File changed:

    • SmbiosStaticData.sdl: Moved BIOS_LANGUAGE_FORMAT, NUMBER_OF_LANGUAGE_STRINGS, INSTALLABLE_LANGUAGE_STRING_1, INSTALLABLE_LANGUAGE_STRING_2, INSTALLABLE_LANGUAGE_STRING_3, INSTALLABLE_LANGUAGE_STRING_4, INSTALLABLE_LANGUAGE_STRING_5, INSTALLABLE_LANGUAGE_STRING_6 to Smbdesc.def file.
    • Smbdata.mac: Modified CreateBiosLanguageInfo macro to use names from Smbdesc.def instead of Token.equ file.
    • Smbdesc.def: Modified CreateBiosLanguageInfo macro to use names from Smbdesc.def instead of Token.equ file.
    •
    Miscellaneous
  • Changes to comply with coding standard.

    Files changed:

    Smbios.h

    • Updated the AMI file header.
    • Changed OemDefined variable name casing according to coding standard.
    •
    Errata & Known Issues
  • None
    •
    List of files changed in this label
  • Smbios.sdl
  • Smbios.h
  • SmbiosStaticData.sdl
  • Smbdata.mac
  • Smbdesc.def
    •
    Testing
    1. Build BIOS with SMBIOS_DMIEDIT_DATA_LOC token set to 0 to select FV_BB as storage location for DMIEdit data.
      1. Run DMIEdit v2.11 to update strings in System, Baseboard, and Chassis structures.
      2. Reboot system and use any SMBIOS browser to verify strings change in System, Baseboard, and Chassis structures.

    2. Set SMBIOS_PRESERVE_NVRAM token to 1 to preserve DMIEdit data in NVRAM

    3. Build BIOS with SMBIOS_DMIEDIT_DATA_LOC token set to 2 to select NVRAM as storage location for DMIEdit data.
      1. Run DMIEdit v2.11 to update strings in System, Baseboard, and Chassis structures.
      2. Reboot system and use any SMBIOS browser to verify strings change in System, Baseboard, and Chassis structures.

    4. Flash the BIOS using AFU v2.25 test utilities

    5. Restart system and verify strings in System, Baseboard, and Chassis structures remain unchanged as in step 3a and 3b above.
    4.6.1_ALPHA_01.21
  • Synchronize with SMBIOS Core 4.6.1_ALPHA_01.21 label. In this label, DMIEdit data storage location can be specified: in FV_BB or NVRAM via SMBIOS_DMIEDIT_DATA_LOC SDL token.
  • The default SMBIOS x32 and x64 bits binaries were built with FV_BB being used for saving DMIEdit data. In case NVRAM is more preferable, SMBIOS source files are required to rebuild the project with SMBIOS_DMIEDIT_DATA_LOC SDL token set to the desired location.
  • Added PreserveDmiEditData and RestoreDmiEditData Elinks to preserve DMIEdit data (when NVRAM is used to store DMIEdit data).
  • Moved porting token info for Bios Language Information structure type 13 to Smbdesc.def file. Added Chinese language info.
  • New changes has been tested using DMIEdit v2.11, AFU v2.25 test utilities.
    •
    4.6.1_ALPHA_01.20.1
  • Updated CHM file.
  • Checked in missing SmbiosDMIEditBoard.c32 and SmbiosDMIEditBoard.c64 files, and updated SmbiosDMIEditBoard.cif file.
    •
    4.6.1_ALPHA_01.20
  • Changes added for x32 and x64 binary support.
  • Fixed the hanging problem when only SMBIOS binary component is present (ref. EIP 18370)
    •
    4.6.1_ALPHA_01.19.3
  • Updated to SMBIOS Core label 4.6.1_ALPHA_01.19.3.
    •
    4.6.1_ALPHA_01.19.2
  • Updated to SMBIOS Core label 4.6.1_ALPHA_01.19.2.
  • Added OemUpdate protocol. OEM can add code to update any structure here. This function will be called after all structures have been updated with DMI or dynamic data
    • 4.6.1_ALPHA_01.19.1
  • Updated to match with SMBIOS Core source label 4.6.1_ALPHA_01.19.1.
    •
    4.6.1_ALPHA_01.14.4 or 4.6.1_ALPHA_01.15
  • Added SMBIOS version 2.5 and 2.6 support.
  • Added supporting code for accessing the memory device SPD data.
    •
    4.6.1_ALPHA_01.14.3
  • Added SMBIOS_TABLE_E000 token to select whether the SMBIOS table to be placed at E000 segment or above 1MB.
  • Provided sample code to enable / disable E000 and F000 shadow for Intel chipset.
    •
    4.6.1_ALPHA_01.14.2
  • Cleaned up and removed the redundant NUMBER_OF_MEM_MODULE_x definitions in Smbdesc.def file.
  • Numbers of memory sockets for each memory array are now defined in SDL token Ax_MEMORY_SOCKETS. Values from those SDL tokens are set in "Number of Memory Devices" field in Type 16 structure(s) and used to create the numbers of Type 17 structure for each memory array in the system.
    • 4.6.1_ALPHA_01.14.1
  • Simplified the way the number of memory slots for each physical memory arrays are defined.
    •
    4.6.1_ALPHA_01.14
  • Added a close comment missing in CreateBatteryDataForSMBios() in SmbiosBoard.c.
  • Synchronize with SMBIOS Source 4.6.1_ALPHA_01.14 label.
    •
    4.6.1_ALPHA_01.13
  • Synchronize with SMBIOS Source 4.6.1_ALPHA_01.13 label.
    •
    4.6.1_ALPHA_01.10
  • Synchronize with SMBIOS Source 4.6.1_ALPHA_01.10 label.
  • Fixed the hanging issue when BIOS is built with SMBIOS binary only and PORTABLE_BATTERY_INFO is set to OFF.
  • Fixed code to abort updating CPU related data if getting CPU data variable resulted in error.
  • Corrected build error when Type 18 is enabled.
  • Added conditional IF statement for DynamicUpdateOnboardDevData function to fix the build error in case ONBOARD_DEVICE_INFO is set to OFF.
  • Restore the UpdateEPSHeader call in the Addstructure and DeleteStructureByHandle functions.
  • Changes added to dynamically update Voltage field in Processor Information structure type 4.
  • Added code to dynamically update Portable Battery Data structure type 22.
  • Fixed a hanging problem with DMIEdit running on server2003 64bit SP2 - EIP 10754
  • Changes added to allow "Asset Tag" in Type 2 structure to be updated per EIP 11283.
  • SmiGpnv module part has been removed (moved to ErrorLogging module)
    •
    4.6.1_ALPHA_01.06
  • Changes added to dynamically update the Processor Information Type 4 Voltage field.
  • Added dynamic data update support for Portable Battery Data structure 22.
  • Added SmbiosUpdateHeader protocol.
    •
    4.6.1_ALPHA_01.05
  • SmiGpnv removed
  • Added changes to set memory type and speed to unknown for unoccupied memory slot.
  • Added support for GPNV PnP functions: 55h, 56h, 57h. The main procedures are in SMIGPNV module
    •
    4.6.1_ALPHA_01.04
  • Added value 13h in SmbiosStaticData.sdl to indicate DDR2 for MEMORY_DEVICE_TYPE token.
    •
    4.6.1_ALPHA_01.03
  • Fix for x64 build.
    •
    4.6.1_ALPHA_01.02
  • Support for PnP functions50,51,..54 added.
    •
    4.6.1_ALPHA_01.01, 4.5.3_ALPHA_02.10
  • Changes to support dynamic updating of CPU structures
    •
    4.5.3_ALPHA_02.09
  • Fixed long strings (64 characters) problem after being updated with DMIEdit and system restarted.
    •
    4.5.3_ALPHA_02.08
  • Updated to coding standard.
    •
    4.5.3_ALPHA_02.07
  • Added template (sample code) to support AMD platform.
  • Code cleanup and format to coding standard.
  • Synchronize label with SMBIOS source.
    •
    4.5.3_ALPHA_02.01
  • The code has been updated to reflect the changes from Aptio 4.0 to Aptio 4.5.
    •
    4.5.3_ALPHA_01.10
  • Set L3 Cache Handle reference in Type 4 Structure to 0xFFFF if its size is zero.
    •
    4.0.01_ALPHA_01.09
  • Updated to SMBIOS Core label ALPHA_01.09
    •
    4.0.01_ALPHA_01.04
  • Set SmbiosFlashData compression to off.
  • Rebuilt to work with CORE 4.00.01 and SMM 4.00.01_SMM_08.
    •
    1.00.18_SMBIOS_03
  • Changes made to support AMIBCP.
    •
    1.00.18_SMBIOS_02
  • Moved the KBC_SUPPORT to the Core and used the New Label.
    •
    ALPHA_01.09
  • Update to SMBIOS Core ALPHA_01.05.
    •
    ALPHA_01.08
  • Use with SMBIOS Core ALPHA_01.04
    •
    ALPHA_01.07
  • Updated to SMBIOS Core ALPHA_01.04
    •
    ALPHA_01.06
  • Updated to SMBIOS Core ALPHA_01.03.
    •
    ALPHA_01.05, ALPHA_01.04
  • Removed SMBiosStaticData_SUPPORT token since static data is always needed for SMBIOS to work.
  • Add SMBIOS_SUPPORT token to TargetH.
  • Updated the BIOS_LANGUAGE_FORMAT to use Long Strings.
  • Added Processor Manufacturer and Processor Version fields.
  • Removed BIOS_DATE token. BIOS release date will be automatically filled in using system date at build time.
  • Added changes to automatically fill in BIOS release date using system date at build time.
    •
    ALPHA_01.03
  • Updated Type 0 structure to use CORE major and minor version from Core.sdl tokens.
    •
    ALPHA_01.02
  • Made SMBIOS variables static so that it can be shared in different files.
    •
    ALPHA_01.01
  • Corrected hanging problem as BIOS Version was changed starting from label "ALPHA-1.00.12".
    •
    ALPHA_01.00
  • Tested on NAPA with memory/system slots dynamic data ported (CPU not ported). DmiEdit EFI version not working.
    •

    © American Megatrends Inc.


Function by File Name

AMIBIOS Function Reference

By File Name

The following is a list of the source files.
For a list in alphabetical order, see In Alphabetical Order.
For a list by segment, see By Segment.

  • Smbhdr.equ
  • SMBios.h
  • SmbiosBoard.c
  • SmbiosDMIEditBoard.c
  • Smbrun.asm
Built on 18:29:53 04/22/16


Smbhdr.equ

The following data structures are used in the file: Smbhdr.equ.

Variable | Description
ModificationFieldSTRUC |
ModificationHeaderSTRUC |
ModificationKeyFieldSTRUC |


ModificationFieldSTRUC in the Smbhdr.equ

Variable : ModificationFieldSTRUC

File: Smbhdr.equ
Fields:

Name | Type | Description
bOffset | BYTE | offset of the key-field inside the structure
FF | there | is no key-field
bType | BYTE | Data Type
Bit | 7 | = 0..Binary Data
1 | String | Data
Bit | 6 | = 0..modifiable always
1 | One | time modifiable
Bit5 | 0 | = reserved for future use
bLength | BYTE | Data Length in Bytes
Bit7 | 0 | = data length in BYTEs
bStatus | BYTE | Status of the field

Description:


ModificationHeaderSTRUC in the Smbhdr.equ

Variable : ModificationHeaderSTRUC

File: Smbhdr.equ
Fields:

Name | Type | Description
wLength | WORD | length of the information in BYTEs
including | this | word
bType | BYTE | SMBIOS structure type

Description:


ModificationKeyFieldSTRUC in the Smbhdr.equ

Variable : ModificationKeyFieldSTRUC

File: Smbhdr.equ
Fields:

Name | Type | Description
bOffset | BYTE | offset of the key-field inside the structure
FF | there | is no key-field
bType | BYTE | Data Type
Bit | 7 | = 0..Binary Data
1 | String | Data
Bit | 6 | = 0..modifiable always
1 | One | time modifiable
Bit5 | 0 | = reserved for future use
bLength | BYTE | Data Length in Bytes
Bit7 | 0 | = data length in BYTEs

Description:


SMBios.h

The following data structures are used in the file: SMBios.h.

Variable | Description
EVENT_LOG_DESCRIPTOR | Event Log Descriptor - Part of the System Event Log (Type 15)
SINGLE_DEV_INFO | Single Device Information
SMBIOS_ADDITIONAL_INFO | System Power Supply (Type 40)
SMBIOS_BASE_BOARD_INFO | Base Board (or Module) Information Structure (Type 2)
SMBIOS_BIOS_INFO | BIOS Information Structure (Type 0)
SMBIOS_BIOS_LANG_INFO | BIOS Language Information (Type 13)
SMBIOS_BIS_ENTRYPOINT_INFO | Boot Integrity Services (BIS) Entry Point (Type 31)
SMBIOS_CACHE_INFO | Cache Information Structure (Type 7)
SMBIOS_COOLING_DEV_INFO | Cooling Device (Type 27)
SMBIOS_ELECT_CURRENT_PROBE_INFO | Electrical Current Probe (Type 29)
SMBIOS_EVENT_LOG_INFO | System Event Log (Type 15)
SMBIOS_HARDWARE_SECURITY_INFO | Hardware Security (Type 24)
SMBIOS_IPMI_DEV_INFO | IPMI Device Information (Type 38)
SMBIOS_MANAGEMENT_DEV_INFO | Management Device (Type 34)
SMBIOS_MEM_ARRAY_MAP_ADDR_INFO | Memory Array Mapped Address (Type 19)
SMBIOS_MEM_CONTROLLER_INFO | Memory Controller Information Structure (Type 5)
SMBIOS_MEM_DEV_MAP_ADDR_INFO | Memory Device Mapped Address (Type 20)
SMBIOS_MEM_MODULE_INFO | Memory Module Information Structure (Type 6)
SMBIOS_MEMORY_CHANNEL_INFO | Memory Channel (Type 37)
SMBIOS_MEMORY_DEVICE_INFO | Memory Device (Type 17)
SMBIOS_MEMORY_ERROR_INFO | 32-bit Memory Error Information (Type 18)
SMBIOS_NVRAM_TYPE | DMI Type X data
SMBIOS_NVRAM_TYPE0 | DMI Type 0 data UINT32 Flag; // Bit0 = Vendor string changed // Bit1 = BIOS version string changed // Bit2 = BIOS Release Date string changed
SMBIOS_NVRAM_TYPE1 | DMI Type 1 data UINT32 Flag; // Bit0 = Manufacturer string changed // Bit1 = Product Name string changed // Bit2 = Version string changed // Bit3 = Serial Number string changed // Bit4 = SKU string changed // Bit5 = Family string changed // Bit16 = UUID changed
SMBIOS_NVRAM_TYPE11 | DMI Type 11 data UINT32 Flag; // Bit(x) = String #(x) changed
SMBIOS_NVRAM_TYPE12 | DMI Type 12 data UINT32 Flag; // Bit(x) = String #(x) changed
SMBIOS_NVRAM_TYPE2 | DMI Type 2 data UINT32 Flag; // Bit0 = Manufacturer string changed // Bit1 = Product Name string changed // Bit2 = Version string changed // Bit3 = Serial Number string changed // Bit4 = Asset Tag string changed
SMBIOS_NVRAM_TYPE22 | DMI Type 22 data UINT8 Flag; // Bit0 = Location string changed // Bit1 = Manufacturer string changed // Bit2 = Manufacturer Date changed // Bit3 = Serial Number string changed // Bit4 = Device Name string changed // Bit5 = SBDS Version Number string changed // Bit6 = SBDS Device Chemistry string changed // Bit16 = Device Chemistry changed // Bit17 = Design Capacity changed // Bit18 = Design Voltage changed // Bit19 = Maximum Error in Battery Data changed // Bit20 = SBDS Serial Number changed // Bit21 = SBDS Manufacturer Date changed // Bit22 = Design Capacity Multiplier changed // Bit23 = OEM-specific changed
SMBIOS_NVRAM_TYPE3 | DMI Type 3 data UINT32 Flag; // Bit0 = Manufacturer string changed // Bit1 = Version string changed // Bit2 = Serial Number string changed // Bit3 = Asset Tag string changed // Bit4 = SKU Number string changed // Bit16 = Chassis Type changed // Bit17 = OEM-defined changed
SMBIOS_NVRAM_TYPE39 | DMI Type 39 data UINT8 Flag; // Bit0 = Location string changed // Bit1 = Device Name string changed // Bit2 = Manufacturer string changed // Bit3 = Serial Number string changed // Bit4 = Asset Tag string changed // Bit5 = Model Part Number string changed // Bit6 = Revision Level string changed // Bit16 = Power Unit Group changed // Bit17 = Max Power Capacity changed // Bit18 = Power Supply Characteristics changed // Bit19 = Input Voltage Probe Handle changed // Bit20 = Cooling Device Handle changed // Bit21 = Input Current Probe Handle changed
SMBIOS_NVRAM_TYPE4 | DMI Type 4 data UINT32 Flag; // Bit0 = Serial Number string changed // Bit1 = Asset Tag string changed // Bit2 = Part Number string changed
SMBIOS_OEM_STRINGS_INFO | OEM Strings Structure (Type 11)
SMBIOS_ONBOARD_DEV_INFO | On Board Devices Information Structure (Type 10)
SMBIOS_ONBOARD_DEVICE_EXTENDED_INFO | Onboard Devices Extended Information (Type 41)
SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFO | Out-of-Band Remote Access (Type 30)
SMBIOS_PHYSICAL_MEM_ARRAY_INFO | Physical Memory Array (Type 16)
SMBIOS_POINTING_DEV_INFO | Built-in Pointing Device (Type 21)
SMBIOS_PORT_CONN_INFO | Port Connector Information Structure (Type 8)
SMBIOS_PORTABLE_BATTERY_INFO | Portable Battery (Type 22)
SMBIOS_PROCESSOR_INFO | Processor Information Structure (Type 4)
SMBIOS_SIXTYFOUR_MEM_ERROR_INFO | 64-bit Memory Error Information (Type 33)
SMBIOS_STRUCTURE_HEADER | SMBIOS Structure Header - Common for all structures Describing the type, size of the fixed area, and handle of the structure.
SMBIOS_SYSTEM_BOOT_INFO | System Boot Information (Type 32)
SMBIOS_SYSTEM_CONFIG_INFO | System Configuration Options (Type 12)
SMBIOS_SYSTEM_ENCLOSURE_INFO | System Enclosure or Chassis Information Structure (Type 3)
SMBIOS_SYSTEM_INFO | System Information Structure (Type 1)
SMBIOS_SYSTEM_PWR_CONTROL_INFO | System Power Control (Type 25)
SMBIOS_SYSTEM_PWR_SUPPY_INFO | System Power Supply (Type 39)
SMBIOS_SYSTEM_RESET_INFO | System Reset (Type 23)
SMBIOS_SYSTEM_SLOTS_INFO | System Slot Information Structure (Type 9)
SMBIOS_TABLE_ENTRY_POINT | SMBIOS Structure Table Entry Point
SMBIOS_TEMPERATURE_PROBE_INFO | Temperature Probe (Type 28)
SMBIOS_VOLTAGE_PROBE_INFO | Voltage Probe (Type 26)
TYPE37_MEMORY_DEVICE | Type 37 Memory Device


EVENT_LOG_DESCRIPTOR in the SMBios.h

Variable : EVENT_LOG_DESCRIPTOR

File: SMBios.h
Description:
Event Log Descriptor - Part of the System Event Log (Type 15)


SINGLE_DEV_INFO in the SMBios.h

Variable : SINGLE_DEV_INFO

File: SMBios.h
Description:
Single Device Information


SMBIOS_ADDITIONAL_INFO in the SMBios.h

Variable : SMBIOS_ADDITIONAL_INFO

File: SMBios.h
Description:
System Power Supply (Type 40)


SMBIOS_BASE_BOARD_INFO in the SMBios.h

Variable : SMBIOS_BASE_BOARD_INFO

File: SMBios.h
Description:
Base Board (or Module) Information Structure (Type 2)


SMBIOS_BIOS_INFO in the SMBios.h

Variable : SMBIOS_BIOS_INFO

File: SMBios.h
Description:
BIOS Information Structure (Type 0)


SMBIOS_BIOS_LANG_INFO in the SMBios.h

Variable : SMBIOS_BIOS_LANG_INFO

File: SMBios.h
Description:
BIOS Language Information (Type 13)


SMBIOS_BIS_ENTRYPOINT_INFO in the SMBios.h

Variable : SMBIOS_BIS_ENTRYPOINT_INFO

File: SMBios.h
Description:
Boot Integrity Services (BIS) Entry Point (Type 31)


SMBIOS_CACHE_INFO in the SMBios.h

Variable : SMBIOS_CACHE_INFO

File: SMBios.h
Description:
Cache Information Structure (Type 7)


SMBIOS_COOLING_DEV_INFO in the SMBios.h

Variable : SMBIOS_COOLING_DEV_INFO

File: SMBios.h
Description:
Cooling Device (Type 27)


SMBIOS_ELECT_CURRENT_PROBE_INFO in the SMBios.h

Variable : SMBIOS_ELECT_CURRENT_PROBE_INFO

File: SMBios.h
Description:
Electrical Current Probe (Type 29)


SMBIOS_EVENT_LOG_INFO in the SMBios.h

Variable : SMBIOS_EVENT_LOG_INFO

File: SMBios.h
Description:
System Event Log (Type 15)


SMBIOS_HARDWARE_SECURITY_INFO in the SMBios.h

Variable : SMBIOS_HARDWARE_SECURITY_INFO

File: SMBios.h
Description:
Hardware Security (Type 24)


SMBIOS_IPMI_DEV_INFO in the SMBios.h

Variable : SMBIOS_IPMI_DEV_INFO

File: SMBios.h
Description:
IPMI Device Information (Type 38)


SMBIOS_MANAGEMENT_DEV_INFO in the SMBios.h

Variable : SMBIOS_MANAGEMENT_DEV_INFO

File: SMBios.h
Description:
Management Device (Type 34)


SMBIOS_MEM_ARRAY_MAP_ADDR_INFO in the SMBios.h

Variable : SMBIOS_MEM_ARRAY_MAP_ADDR_INFO

File: SMBios.h
Description:
Memory Array Mapped Address (Type 19)


SMBIOS_MEM_CONTROLLER_INFO in the SMBios.h

Variable : SMBIOS_MEM_CONTROLLER_INFO

File: SMBios.h
Description:
Memory Controller Information Structure (Type 5)


SMBIOS_MEM_DEV_MAP_ADDR_INFO in the SMBios.h

Variable : SMBIOS_MEM_DEV_MAP_ADDR_INFO

File: SMBios.h
Description:
Memory Device Mapped Address (Type 20)


SMBIOS_MEM_MODULE_INFO in the SMBios.h

Variable : SMBIOS_MEM_MODULE_INFO

File: SMBios.h
Description:
Memory Module Information Structure (Type 6)


SMBIOS_MEMORY_CHANNEL_INFO in the SMBios.h

Variable : SMBIOS_MEMORY_CHANNEL_INFO

File: SMBios.h
Description:
Memory Channel (Type 37)


SMBIOS_MEMORY_DEVICE_INFO in the SMBios.h

Variable : SMBIOS_MEMORY_DEVICE_INFO

File: SMBios.h
Description:
Memory Device (Type 17)


SMBIOS_MEMORY_ERROR_INFO in the SMBios.h

Variable : SMBIOS_MEMORY_ERROR_INFO

File: SMBios.h
Description:
32-bit Memory Error Information (Type 18)


SMBIOS_NVRAM_TYPE in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE

File: SMBios.h
Description:
DMI Type X data


SMBIOS_NVRAM_TYPE0 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE0

File: SMBios.h
Description:
DMI Type 0 data
UINT32   Flag;		// Bit0 = Vendor string changed
                // Bit1 = BIOS version string changed
                // Bit2 = BIOS Release Date string changed


SMBIOS_NVRAM_TYPE1 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE1

File: SMBios.h
Description:
DMI Type 1 data
UINT32   Flag;		// Bit0 = Manufacturer string changed
                // Bit1 = Product Name string changed
                // Bit2 = Version string changed
                // Bit3 = Serial Number string changed
                // Bit4 = SKU string changed
                // Bit5 = Family string changed
                // Bit16 = UUID changed


SMBIOS_NVRAM_TYPE11 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE11

File: SMBios.h
Description:
DMI Type 11 data
UINT32   Flag;		// Bit(x) = String #(x) changed


SMBIOS_NVRAM_TYPE12 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE12

File: SMBios.h
Description:
DMI Type 12 data
UINT32   Flag;		// Bit(x) = String #(x) changed


SMBIOS_NVRAM_TYPE2 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE2

File: SMBios.h
Description:
DMI Type 2 data
UINT32   Flag;		// Bit0 = Manufacturer string changed
                // Bit1 = Product Name string changed
                // Bit2 = Version string changed
                // Bit3 = Serial Number string changed
                // Bit4 = Asset Tag string changed


SMBIOS_NVRAM_TYPE22 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE22

File: SMBios.h
Description:
DMI Type 22 data
UINT8   Flag;		// Bit0 = Location string changed
                // Bit1 = Manufacturer string changed
                // Bit2 = Manufacturer Date changed
                // Bit3 = Serial Number string changed
                // Bit4 = Device Name string changed
                // Bit5 = SBDS Version Number string changed
                // Bit6 = SBDS Device Chemistry string changed
                // Bit16 = Device Chemistry changed
                // Bit17 = Design Capacity changed
                // Bit18 = Design Voltage changed
                // Bit19 = Maximum Error in Battery Data changed
                // Bit20 = SBDS Serial Number changed
                // Bit21 = SBDS Manufacturer Date changed
                // Bit22 = Design Capacity Multiplier changed
                // Bit23 = OEM-specific changed


SMBIOS_NVRAM_TYPE3 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE3

File: SMBios.h
Description:
DMI Type 3 data
UINT32   Flag;		// Bit0 = Manufacturer string changed
                // Bit1 = Version string changed
                // Bit2 = Serial Number string changed
                // Bit3 = Asset Tag string changed
       // Bit4 = SKU Number string changed
                // Bit16 = Chassis Type changed
                // Bit17 = OEM-defined changed


SMBIOS_NVRAM_TYPE39 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE39

File: SMBios.h
Description:
DMI Type 39 data
UINT8   Flag;		// Bit0 = Location string changed
                // Bit1 = Device Name string changed
                // Bit2 = Manufacturer string changed
                // Bit3 = Serial Number string changed
                // Bit4 = Asset Tag string changed
                // Bit5 = Model Part Number string changed
                // Bit6 = Revision Level string changed
                // Bit16 = Power Unit Group changed
                // Bit17 = Max Power Capacity changed
                // Bit18 = Power Supply Characteristics changed
                // Bit19 = Input Voltage Probe Handle changed
                // Bit20 = Cooling Device Handle changed
                // Bit21 = Input Current Probe Handle changed


SMBIOS_NVRAM_TYPE4 in the SMBios.h

Variable : SMBIOS_NVRAM_TYPE4

File: SMBios.h
Description:
DMI Type 4 data
UINT32   Flag;		// Bit0 = Serial Number string changed
                // Bit1 = Asset Tag string changed
                // Bit2 = Part Number string changed


SMBIOS_OEM_STRINGS_INFO in the SMBios.h

Variable : SMBIOS_OEM_STRINGS_INFO

File: SMBios.h
Description:
OEM Strings Structure (Type 11)


SMBIOS_ONBOARD_DEV_INFO in the SMBios.h

Variable : SMBIOS_ONBOARD_DEV_INFO

File: SMBios.h
Description:
On Board Devices Information Structure (Type 10)


SMBIOS_ONBOARD_DEVICE_EXTENDED_INFO in the SMBios.h

Variable : SMBIOS_ONBOARD_DEVICE_EXTENDED_INFO

File: SMBios.h
Description:
Onboard Devices Extended Information (Type 41)


SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFO in the SMBios.h

Variable : SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFO

File: SMBios.h
Description:
Out-of-Band Remote Access (Type 30)


SMBIOS_PHYSICAL_MEM_ARRAY_INFO in the SMBios.h

Variable : SMBIOS_PHYSICAL_MEM_ARRAY_INFO

File: SMBios.h
Description:
Physical Memory Array (Type 16)


SMBIOS_POINTING_DEV_INFO in the SMBios.h

Variable : SMBIOS_POINTING_DEV_INFO

File: SMBios.h
Description:
Built-in Pointing Device (Type 21)


SMBIOS_PORT_CONN_INFO in the SMBios.h

Variable : SMBIOS_PORT_CONN_INFO

File: SMBios.h
Description:
Port Connector Information Structure (Type 8)


SMBIOS_PORTABLE_BATTERY_INFO in the SMBios.h

Variable : SMBIOS_PORTABLE_BATTERY_INFO

File: SMBios.h
Description:
Portable Battery (Type 22)


SMBIOS_PROCESSOR_INFO in the SMBios.h

Variable : SMBIOS_PROCESSOR_INFO

File: SMBios.h
Description:
Processor Information Structure (Type 4)


SMBIOS_SIXTYFOUR_MEM_ERROR_INFO in the SMBios.h

Variable : SMBIOS_SIXTYFOUR_MEM_ERROR_INFO

File: SMBios.h
Description:
64-bit Memory Error Information (Type 33)


SMBIOS_STRUCTURE_HEADER in the SMBios.h

Variable : SMBIOS_STRUCTURE_HEADER

File: SMBios.h
Description:
SMBIOS Structure Header - Common for all structures
Describing the type, size of the fixed area, and handle
of the structure.


SMBIOS_SYSTEM_BOOT_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_BOOT_INFO

File: SMBios.h
Description:
System Boot Information (Type 32)


SMBIOS_SYSTEM_CONFIG_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_CONFIG_INFO

File: SMBios.h
Description:
System Configuration Options (Type 12)


SMBIOS_SYSTEM_ENCLOSURE_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_ENCLOSURE_INFO

File: SMBios.h
Description:
System Enclosure or Chassis Information Structure (Type 3)


SMBIOS_SYSTEM_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_INFO

File: SMBios.h
Description:
System Information Structure (Type 1)


SMBIOS_SYSTEM_PWR_CONTROL_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_PWR_CONTROL_INFO

File: SMBios.h
Description:
System Power Control (Type 25)


SMBIOS_SYSTEM_PWR_SUPPY_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_PWR_SUPPY_INFO

File: SMBios.h
Description:
System Power Supply (Type 39)


SMBIOS_SYSTEM_RESET_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_RESET_INFO

File: SMBios.h
Description:
System Reset (Type 23)


SMBIOS_SYSTEM_SLOTS_INFO in the SMBios.h

Variable : SMBIOS_SYSTEM_SLOTS_INFO

File: SMBios.h
Description:
System Slot Information Structure (Type 9)


SMBIOS_TABLE_ENTRY_POINT in the SMBios.h

Variable : SMBIOS_TABLE_ENTRY_POINT

File: SMBios.h
Description:
SMBIOS Structure Table Entry Point


SMBIOS_TEMPERATURE_PROBE_INFO in the SMBios.h

Variable : SMBIOS_TEMPERATURE_PROBE_INFO

File: SMBios.h
Description:
Temperature Probe (Type 28)


SMBIOS_VOLTAGE_PROBE_INFO in the SMBios.h

Variable : SMBIOS_VOLTAGE_PROBE_INFO

File: SMBios.h
Description:
Voltage Probe (Type 26)


TYPE37_MEMORY_DEVICE in the SMBios.h

Variable : TYPE37_MEMORY_DEVICE

File: SMBios.h
Description:
Type 37 Memory Device


SmbiosBoard.c

Description:
This file contains code for OEM related code for SMBIOS

The following functions are used in the file: SmbiosBoard.c.

Function | Description
CreateBaseBoardDataForSMBios | This function provides system chassis information. SMBIOS Core uses these information to dynamically update SMBIOS Chassis Type 2.
CreateBatteryDataForSMBios | This function provides system battery information. SMBIOS Core uses these information to dynamically update SMBIOS Portable Battery Data structure Type 22.
CreateChassisDataForSMBios | This function provides system chassis information. SMBIOS Core uses these information to dynamically update SMBIOS Chassis Type 3.
CreateCPUDataForSMBios | This function gathers the System Processor information and saves them in a variable named "SmbiosCpuVar". This variable with the CPU information is needed by the SMBIOS module to create the "Type 4, 7" structure.
CreateOnBoardDevDataForSMBios | This function gathers the Onboard Device status information and saves them in a variable named "SmbiosOnBoardVar". This variable with the OnBoard Device information is needed by the SMBIOS module to create the "Type 10" structure.
CreateOnBoardDevExtInfoForSMBios | This function gathers the Onboard Device status information and saves them in a variable named "SmbiosOnBoardExtVar". This variable with the OnBoard Device Extended information is needed by the SMBIOS module to create the "Type 41" structure.
CreateSlotDataForSMBios | This function gathers the System Slot status information and saves them in a variable named "SmbiosSlotsVar". This variable with the slot information is needed by the SMBIOS module to create the REQUIRED "Type 9" structure
EnableSmbusController | This function saves the current setting of the Smbus Controller CMD register and then enables it so that SPD data can be accessed.
FillStringBufferWithSpaces | This function fills the input buffer with spaces. The number of spaces to be filled is specified in the input BufferSize
GetSpdByte | This function reads a byte from the system memory SPD
OemUpdate | The purpose of this function is to allow OEM to update the SMBIOS table as needed. OEM can use the EFI_SMBIOS_PROTOCOL to read, add, delete, and write to the SMBIOS table.
RestoreSmbusController | This function restores the Smbus Controller CMD register to the previously saved setting.
SMIBiosBoardDriverEntryPoint | SMBIOS Board driver entry point


CreateBaseBoardDataForSMBios in the SmbiosBoard.c

Function : CreateBaseBoardDataForSMBios

File: SmbiosBoard.c
Description:
This function provides system chassis information. SMBIOS
Core uses these information to dynamically update SMBIOS
Chassis Type 2.
Input:
None
Output:
Creates variable named "SmbiosBaseBoardVar" with Chassis information

Note: Refer to BASE_BOARD_DATA in SmbiosDynamicData.h for structure
information.


CreateBatteryDataForSMBios in the SmbiosBoard.c

Function : CreateBatteryDataForSMBios

File: SmbiosBoard.c
Description:
This function provides system battery information. SMBIOS
Core uses these information to dynamically update SMBIOS
Portable Battery Data structure Type 22.
Input:
None
Output:
EFI_STATUS
Variable named "SmbiosBatteryVar" with Battery information

Note:    Refer to BATTERY_DYNAMIC_DATA in SmbiosDynamicData.h for
structure information.


CreateChassisDataForSMBios in the SmbiosBoard.c

Function : CreateChassisDataForSMBios

File: SmbiosBoard.c
Description:
This function provides system chassis information. SMBIOS
Core uses these information to dynamically update SMBIOS
Chassis Type 3.
Input:
None
Output:
Creates variable named "SmbiosChassisVar" with Chassis information

Note: Refer to CHASSIS_DATA in SmbiosDynamicData.h for structure
information.


CreateCPUDataForSMBios in the SmbiosBoard.c

Function : CreateCPUDataForSMBios

File: SmbiosBoard.c
Description:
This function gathers the System Processor information and
saves them in a variable named "SmbiosCpuVar". This variable
with the CPU information is needed by the SMBIOS module to
create the "Type 4, 7" structure.
Input:
None
Output:
EFI_STATUS
Variable named "SmbiosCpuVar" with System CPU information

Note:    Refer to CPU_DYNAMIC_DATA in SmbiosDynamicData.h for
structure information.

******************** PORTING NOTE ********************
By default, this function only returns EFI_SUCCESS and should
only be ported if the CPU module does not install the
SMBIOS_CPU_INFO_PROTOCOL.


CreateOnBoardDevDataForSMBios in the SmbiosBoard.c

Function : CreateOnBoardDevDataForSMBios

File: SmbiosBoard.c
Description:
This function gathers the Onboard Device status information and
saves them in a variable named "SmbiosOnBoardVar". This variable
with the OnBoard Device information is needed by the SMBIOS
module to create the "Type 10" structure.
Input:
None
Output:
EFI_STATUS
Variable named "SmbiosOnBoardVar" with on-board device information

Note:    Refer to ONBOARD_DEV_DYNAMIC_DATA in SmbiosDynamicData.h for
structure information.

Set device status to 0 if disabled.
Set device status to 0x80 if enabled.
Ex: In sample code
OnBoardDevInfo.OnBoardDev[0] = 0;           // Disabled
OnBoardDevInfo.OnBoardDev[0] = 0x80;        // Enabled


CreateOnBoardDevExtInfoForSMBios in the SmbiosBoard.c

Function : CreateOnBoardDevExtInfoForSMBios

File: SmbiosBoard.c
Description:
This function gathers the Onboard Device status information
and saves them in a variable named "SmbiosOnBoardExtVar".
This variable with the OnBoard Device Extended information
is needed by the SMBIOS module to create the "Type 41"
structure.
Input:
None
Output:
EFI_STATUS
Variable named "SmbiosOnBoardExtVar" with on-board device
information.

Note:    Refer to ONBOARD_DEV_EXT_DYNAMIC_DATA in SmbiosDynamicData.h for
structure information.

Set device status to 0 if disabled.
Set device status to 0x80 if enabled.
Ex: In sample code
OnBoardDevInfo.OnBoardDev[0] = 0;           // Disabled
OnBoardDevInfo.OnBoardDev[0] = 0x80;        // Enabled


CreateSlotDataForSMBios in the SmbiosBoard.c

Function : CreateSlotDataForSMBios

File: SmbiosBoard.c
Description:
This function gathers the System Slot status information and
saves them in a variable named "SmbiosSlotsVar". This variable
with the slot information is needed by the SMBIOS module to
create the REQUIRED "Type 9" structure
Input:
None
Output:
EFI_STATUS
Variable named "SmbiosSlotsVar" with system slot information

Note:    Refer to SYSTEM_SLOT_DYNAMIC_DATA in SmbiosDynamicData.h for
structure information.


EnableSmbusController in the SmbiosBoard.c

Function : EnableSmbusController

File: SmbiosBoard.c
Description:
This function saves the current setting of the Smbus
Controller CMD register and then enables it so that SPD data
can be accessed.
Input:
None
Output:
EFI_STATUS

Note:


FillStringBufferWithSpaces in the SmbiosBoard.c

Function : FillStringBufferWithSpaces

File: SmbiosBoard.c
Description:
This function fills the input buffer with spaces. The number
of spaces to be filled is specified in the input BufferSize
Input:
IN UINT8    *BufferPtr
IN UINT8    BufferSize
Output:
Buffer pointed by BufferPtr is filled with spaces


GetSpdByte in the SmbiosBoard.c

Function : GetSpdByte

File: SmbiosBoard.c
Description:
This function reads a byte from the system memory SPD
Input:
IN      EFI_SMBUS_DEVICE_ADDRESS    SpdAddr
IN      UINT8                       Offset
IN OUT  UINT8                       *Data
Output:
EFI_STATUS
UINT8       *Data

Note:


OemUpdate in the SmbiosBoard.c

Function : OemUpdate

File: SmbiosBoard.c
Description:
The purpose of this function is to allow OEM to update the
SMBIOS table as needed. OEM can use the EFI_SMBIOS_PROTOCOL
to read, add, delete, and write to the SMBIOS table.
Input:
None
Output:
None

Note:


RestoreSmbusController in the SmbiosBoard.c

Function : RestoreSmbusController

File: SmbiosBoard.c
Description:
This function restores the Smbus Controller CMD register
to the previously saved setting.
Input:
None
Output:
EFI_STATUS

Note:


SMIBiosBoardDriverEntryPoint in the SmbiosBoard.c

Function : SMIBiosBoardDriverEntryPoint

File: SmbiosBoard.c
Description:
SMBIOS Board driver entry point
Input:
IN EFI_HANDLE           ImageHandle,
IN EFI_SYSTEM_TABLE     *SystemTable
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


SmbiosDMIEditBoard.c

Description:
This file contains code for OEM related code for DMIEdit

The following functions are used in the file: SmbiosDMIEditBoard.c.

Function | Description
DisableShadowWrite | This function makes F000 shadow read only, and E000 shadow read only if ITK_SUPPORT token or SMBIOS_TABLE_LOCATION token is set.
EnableShadowWrite | This function enables write to F000 shadow, and E000 shadow if ITK_SUPPORT token or SMBIOS_TABLE_LOCATION token is set.


DisableShadowWrite in the SmbiosDMIEditBoard.c

Function : DisableShadowWrite

File: SmbiosDMIEditBoard.c
Description:
This function makes F000 shadow read only,
and E000 shadow read only if ITK_SUPPORT token
or SMBIOS_TABLE_LOCATION token is set.
Input:
None
Output:
None

Note:


EnableShadowWrite in the SmbiosDMIEditBoard.c

Function : EnableShadowWrite

File: SmbiosDMIEditBoard.c
Description:
This function enables write to F000 shadow,
and E000 shadow if ITK_SUPPORT token
or SMBIOS_TABLE_LOCATION token is set.
Input:
None
Output:
None

Note:


Smbrun.asm

Description:
SMBIOS runtime PnP functions 5Xh

The following functions are used in the file: Smbrun.asm.

Function | Description
RT_GET_SMBIOS_INFO | This function returns information about the SMBIOS extensions such as the number of structures present and the size of the largest one. This function is presently called only during RUNTIME.
RT_GET_SMBIOS_STRUC | This function copies one DMI structure into the buffer provided by the caller. The caller's DMI structure number is then updated with next DMI structure number (or FFFF if no more DMI structures are present).
RT_GET_SMBIOS_STRUC_CHANGE_INFO | This function returns the information about what type of SMBIOS structure-change occurred.
RT_SET_SMBIOS_STRUC | This function sets the SMBIOS structure identified by the type and possibly handle, found in the SMBIOS structure header in the given buffer.
RT_SMBIOS_CONTROL | This function returns the information about what type of SMBIOS structure-change occurred.
SMB_cs_read_ram_write_rom | This function makes the code segment Read Only.
SMB_cs_read_x_write_ram | This function makes the code segment Write Only.
SMBIOS_Func_50h | This function returns information about the SMBIOS extensions such as the number of structures present and the size of the largest one. This function is presently called only during RUNTIME.
SMBIOS_Func_51h | This function copies one DMI structure into the buffer provided by the caller. The caller's DMI structure number is then updated with next DMI structure number (or FFFF if no more DMI structures are present).
SMBIOS_Func_52h | This function sets the SMBIOS structure identified by the type and possibly handle, found in the SMBIOS structure header in the given buffer.
SMBIOS_Func_53h | This function returns the information about what type of SMBIOS structure-change occurred.
SMBIOS_Func_54h | This function returns the information about what type of SMBIOS structure-change occurred.
SMBIOS_Func_55h | Required for GPNV support. This function returns information about a General Purpose NonVolatile (GPNV) area. The Handle argument is a pointer to a number that identifies which GPNV's information is requested, a value of 0 accesses the first (or only) area.
SMBIOS_Func_56h | Required for GPNV support. This function is used to read an entire GPNV area into the buffer specified by GPNVBuffer. It is the responsibility of the caller to ensure that GPNVBuffer is large enough to store the entire GPNV storage block - this buffer must be at least the MinGPNVRWSize returned by Function 55h - Get GPNV Information. The Handle argument identifies the specific GPNV to be read. On a successful read of a GPNV area, that GPNV area will be placed in the GPNVBuffer beginning at offset 0. The protected-mode selector GPNVSelector has base equal to NVStorageBase and limit of at least MinGPNVRWSize - so long as the NVStorageBase value returned from Function 55h was non-zero.
SMBIOS_Func_57h | Required for GPNV support. This function is used to write an entire GPNV from the GPNVBuffer into the nonvolatile storage area. The Handle argument identifies the specific GPNV to be written. The protectedmode selector GPNVSelector has base equal to NVStorageBase and limit of at least MinGPNVRWSize - so long as the NVStorageBase value returned from Get GPNV Information was non-zero. The caller should first call Read GPNV Data (with a lock) to get the current area contents, modify the data, and pass it into this function - this ensures that the GPNVBuffer which is written contains a complete definition for the entire GPNV area. If the BIOS uses some form of block erase device, the caller must also allocate enough buffer space for the BIOS to store all data from the part during the reprogramming operation, not just the data of interest. The data to be written to the GPNV selected by Handle must reside as the first GPNVSize bytes of the GPNVBuffer. Note: The remaining (MinGPNVRWSize-GPNVSize) bytes of the GPNVBuffer area are used as a scratch-area by the BIOS call in processing the write request; the contents of that area of the buffer are destroyed by this function call. The GPNVLock provides a mechanism for cooperative use of the GPNV, and is set during a GPNV Read (Function 56h). If the input GPNVLock value is -1 the caller requests a forced write to the GPNV area, ignoring any outstanding GPNVLock. If the caller is not doing a forced write, the value passed in GPNVLock to the GPNV Write must be the same value as that (set and) returned by a previous GPNV Read (Function 56h).


RT_GET_SMBIOS_INFO in the Smbrun.asm

Function : RT_GET_SMBIOS_INFO

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function returns information about the SMBIOS extensions
such as	the number of structures present and the size of the
largest one. This function is presently called only during RUNTIME.
Input:
[EBP+00] = Function number (50h)
[EBP+02] = BYTE FAR *DmiBiosVersion
[EBP+06] = WORD FAR *NumStructures
[EBP+0A] = WORD FAR *StructureSize
[EBP+0E] = DWORD FAR *DMIStorageBase
[EBP+12] = WORD FAR *DMIStorageSize
[EBP+16] = WORD BiosSelector
DX = SMI IO port address
Output:
AX	= Zero if successful
    non-zero return code if non successful
[EBP+02] = BYTE FAR *DmiBiosVersion filled in with the version
    of the DMI BIOS spec that this code supports.
[EBP+06] = WORD FAR *NumStructures filled with total number of
    DMI structures that are present in the system.
[EBP+0A] = WORD FAR *StructureSize filled with the size in
    bytes of the largest DMI structure.
[EBP+0E] = DWORD FAR *DMIStorageBase filled with the absolute
    32Bit address of any memory-mapped structure
[EBP+12] = WORD FAR *DMIStorageSize filled with the buffer
    size needed in Func 52h/54h.
Modified:
Nothing


RT_GET_SMBIOS_STRUC in the Smbrun.asm

Function : RT_GET_SMBIOS_STRUC

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function copies one DMI structure into the buffer
provided by the caller. The caller's DMI structure number is
then updated with next DMI structure number (or FFFF if no
more DMI structures are present).
Input:
[EBP+00] = Function number (51h)
[EBP+02] = WORD FAR *StructureNum
[EBP+06] = WORD FAR *DmiStructureBuffer
[EBP+0A] = WORD DmiSelector
[EBP+0C] = WORD BiosSelector
DX = SMI IO port address
Output:
AX	= Zero if success,  non-zero return code if non successful
[EBP+02] = WORD FAR *StructureNum updated to contain the next DMI
    structure number or FFFF if no more structures exist
[EBP+06] = WORD FAR *DmiStructureBuffer pointer to buffer that is
    filled in with the requested DMI structure.
Modified:
AX


RT_GET_SMBIOS_STRUC_CHANGE_INFO in the Smbrun.asm

Function : RT_GET_SMBIOS_STRUC_CHANGE_INFO

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function returns the information about what type of
SMBIOS structure-change occurred.
Input:
[EBP+00] = Function number (53h)
[EBP+02] = WORD FAR *DmiChangeStructure
[EBP+06] = WORD DmiSelector
[EBP+08] = WORD BiosSelector
Output:
AX = Zero if successful
Non-zero return code if unsuccessful
Modified:
Nothing


RT_SET_SMBIOS_STRUC in the Smbrun.asm

Function : RT_SET_SMBIOS_STRUC

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function sets the SMBIOS structure identified by the
type and possibly handle, found in the SMBIOS structure
header in the given buffer.
Input:
[EBP+00] = Function number (52h)
[EBP+02] = WORD FAR *DmiDataBuffer
[EBP+06] = WORD FAR *DmiWorkBuffer
[EBP+0A] = WORD Control
[EBP+0C] = WORD DmiSelector
[EBP+0E] = WORD BiosSelector
Output:
AX       = Zero if successful
non-zero return code if unsuccessful


RT_SMBIOS_CONTROL in the Smbrun.asm

Function : RT_SMBIOS_CONTROL

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function returns the information about what type of
SMBIOS structure-change occurred.
Input:
[EBP+00] = Function number (54h)
[EBP+02] = WORD SubFunction - Defines the specific control operation
[EBP+04] = VOID FAR *Data   - Input/output data buffer, SubFunction specific
[EBP+08] = BYTE Control     - Conditions for setting the structure
[EBP+09] = WORD DmiSelector - SMBIOS data read/write selector
[EBP+11] = WORD BiosSelector- PnP BIOS readable/writeable selector
Output:
AX = Zero if successful
Non-zero return code if unsuccessful


SMB_cs_read_ram_write_rom in the Smbrun.asm

Function : SMB_cs_read_ram_write_rom

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function makes the code segment Read Only.
Input:
None
Notes:
This function needs to ported or modified accordingly.


SMB_cs_read_x_write_ram in the Smbrun.asm

Function : SMB_cs_read_x_write_ram

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function makes the code segment Write Only.
Input:
None
Notes:
This function needs to ported or modified accordingly.


SMBIOS_Func_50h in the Smbrun.asm

Function : SMBIOS_Func_50h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function returns information about the SMBIOS extensions
such as	the number of structures present and the size of the
largest one. This function is presently called only during RUNTIME.
Input:
[EBP+00] = Function number (50h)
[EBP+02] = BYTE FAR *DmiBiosVersion
[EBP+06] = WORD FAR *NumStructures
[EBP+0A] = WORD FAR *StructureSize
[EBP+0E] = DWORD FAR *DMIStorageBase
[EBP+12] = WORD FAR *DMIStorageSize
[EBP+16] = WORD BiosSelector
DX = SMI IO port address
Output:
AX	= Zero if successful
    non-zero return code if non successful
[EBP+02] = BYTE FAR *DmiBiosVersion filled in with the version
    of the DMI BIOS spec that this code supports.
[EBP+06] = WORD FAR *NumStructures filled with total number of
    DMI structures that are present in the system.
[EBP+0A] = WORD FAR *StructureSize filled with the size in
    bytes of the largest DMI structure.
[EBP+0E] = DWORD FAR *DMIStorageBase filled with the absolute
    32Bit address of any memory-mapped structure
[EBP+12] = WORD FAR *DMIStorageSize filled with the buffer
    size needed in Func 52h/54h.
Modified:
Nothing


SMBIOS_Func_51h in the Smbrun.asm

Function : SMBIOS_Func_51h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function copies one DMI structure into the buffer
provided by the caller. The caller's DMI structure number is
then updated with next DMI structure number (or FFFF if no
more DMI structures are present).
Input:
[EBP+00] = Function number (51h)
[EBP+02] = WORD FAR *StructureNum
[EBP+06] = WORD FAR *DmiStructureBuffer
[EBP+0A] = WORD DmiSelector
[EBP+0C] = WORD BiosSelector
DX = SMI IO port address
Output:
AX	= Zero if success,  non-zero return code if non successful
[EBP+02] = WORD FAR *StructureNum updated to contain the next DMI
    structure number or FFFF if no more structures exist
[EBP+06] = WORD FAR *DmiStructureBuffer pointer to buffer that is
    filled in with the requested DMI structure.
Modified:
AX


SMBIOS_Func_52h in the Smbrun.asm

Function : SMBIOS_Func_52h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function sets the SMBIOS structure identified by the
type and possibly handle, found in the SMBIOS structure
header in the given buffer.
Input:
[EBP+00] = Function number (52h)
[EBP+02] = WORD FAR *DmiDataBuffer
[EBP+06] = WORD FAR *DmiWorkBuffer
[EBP+0A] = WORD Control
[EBP+0C] = WORD DmiSelector
[EBP+0E] = WORD BiosSelector
Output:
AX       = Zero if successful
non-zero return code if unsuccessful


SMBIOS_Func_53h in the Smbrun.asm

Function : SMBIOS_Func_53h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function returns the information about what type of
SMBIOS structure-change occurred.
Input:
[EBP+00] = Function number (53h)
[EBP+02] = WORD FAR *DmiChangeStructure
[EBP+06] = WORD DmiSelector
[EBP+08] = WORD BiosSelector
Output:
AX = Zero if successful
Non-zero return code if unsuccessful
Modified:
Nothing


SMBIOS_Func_54h in the Smbrun.asm

Function : SMBIOS_Func_54h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
This function returns the information about what type of
SMBIOS structure-change occurred.
Input:
[EBP+00] = Function number (54h)
[EBP+02] = WORD SubFunction - Defines the specific control operation
[EBP+04] = VOID FAR *Data   - Input/output data buffer, SubFunction specific
[EBP+08] = BYTE Control     - Conditions for setting the structure
[EBP+09] = WORD DmiSelector - SMBIOS data read/write selector
[EBP+11] = WORD BiosSelector- PnP BIOS readable/writeable selector
Output:
AX = Zero if successful
Non-zero return code if unsuccessful


SMBIOS_Func_55h in the Smbrun.asm

Function : SMBIOS_Func_55h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
Required for GPNV support. This function returns information
about a General Purpose NonVolatile (GPNV) area. The Handle
argument is a pointer to a number that identifies which GPNV's
information is requested, a value of 0 accesses the first
(or only) area.
Input:
[EBP+00] DW PnP BIOS Function 55h
[EBP+02] DW *Handle - Identifies which GPNV to access
[EBP+06] DW *MinGPNVRWSize - Minimum buffer size in bytes for GPNV access
[EBP+0A] DW *GPNVSize - Size allocated for GPNV within the R/W Block
[EBP+0E] DD *NVStorageBase - 32-bit physical base address for...
                      ... mem. mapped nonvolatile storage media
[EBP+12] DW BiosSelector - PnP BIOS readable/writable selector
Output:
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
Notes:
On return:

*Handle is updated either with the handle of the next GPNV
area or, if there are no more areas, 0FFFFh. GPNV handles
are assigned sequentially by the system, from 0 to the total
number of areas (minus 1).

*MinGPNVRW Size is updated with the minimum size, in bytes,
of any buffer used to access this GPNV area. For a Flash
based GPNV area, this would be the size of the Flash block
containing the actual GPNV.

*GPNVSize is updated with the size, in bytes, of this GPNV
area (which is less than or equal to the MinGPNVRWSize value).

*NVStorageBase is updated with the paragraph-aligned, 32-bit
absolute physical base address of this GPNV. If non-zero,
this value allows the caller to construct a 16-bit data
segment descriptor with a limit of MinGPNVRWSize and
read/write access. If the value is 0, protected-mode mapping
is not required for this GPNV.


SMBIOS_Func_56h in the Smbrun.asm

Function : SMBIOS_Func_56h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
Required for GPNV support. This function is used to read an
entire GPNV area into the buffer specified by GPNVBuffer. It
is the responsibility of the caller to ensure that GPNVBuffer
is large enough to store the entire GPNV storage block - this
buffer must be at least the MinGPNVRWSize returned by Function
55h - Get GPNV Information. The Handle argument identifies the
specific GPNV to be read. On a successful read of a GPNV area,
that GPNV area will be placed in the GPNVBuffer beginning at
offset 0. The protected-mode selector GPNVSelector has base
equal to NVStorageBase and limit of at least MinGPNVRWSize -
so long as the NVStorageBase value returned from Function 55h
was non-zero.
Input:
[EBP+00] DW PnP BIOS Function 56h
[EBP+02] DW Handle - Identifies which GPNV is to be read
[EBP+04] DW *GPNVBuffer - Address of buffer in which to return GPNV
[EBP+08] DW *GPNVLock - Lock value
[EBP+0C] DW GPNVSelector - Selector for GPNV Storage
[EBP+0E] DW BiosSelector - PnP BIOS readable/writable selector
Output:
If the GPNV lock is supported and the lock set request succeeds,
the caller's GPNVLock is set to the value of the current lock
and the function returns DMI_SUCCESS.
Notes:
If the GPNV request fails, one of the following values is
returned:
    - DMI_LOCK_NOT_SUPPORTED
    - DMI_INVALID_LOCK
    - DMI_CURRENTLY_LOCKED

For return status codes DMI_SUCCESS, DMI_LOCK_NOT_SUPPORTED
and DMI_CURRENTLY_LOCKED, the GPNV Read function returns the
current contents of the GPNV associated with Handle as the
first GPNVSize bytes within GPNVBuffer, starting at offset 0.
If a lock request fails with DMI_CURRENTLY_LOCKED status,
the caller's GPNVLock will be set to the value of the current
lock.
Passing a GPNVLock value of -1 to the GPNV Read causes the
GPNVLock value to be ignored - in this case the underlying
logic makes no attempt to store a lock value for comparison
with lock values passed into GPNV Write. Any value provided
for GPNVLock besides -1 is accepted as a valid value for a
lock request.


SMBIOS_Func_57h in the Smbrun.asm

Function : SMBIOS_Func_57h

File: Smbrun.asm
Segment: OEM16_CSEG
Description:
Required for GPNV support. This function is used to write an
entire GPNV from the GPNVBuffer into the nonvolatile storage
area. The Handle argument identifies the specific GPNV to be
written. The protectedmode selector GPNVSelector has base equal
to NVStorageBase and limit of at least MinGPNVRWSize - so long
as the NVStorageBase value returned from Get GPNV Information
was non-zero. The caller should first call Read GPNV Data
(with a lock) to get the current area contents, modify the
data, and pass it into this function - this ensures that the
GPNVBuffer which is written contains a complete definition for
the entire GPNV area. If the BIOS uses some form of block erase
device, the caller must also allocate enough buffer space for
the BIOS to store all data from the part during the reprogramming
operation, not just the data of interest.
The data to be written to the GPNV selected by Handle must
reside as the first GPNVSize bytes of the GPNVBuffer.
Note: The remaining (MinGPNVRWSize-GPNVSize) bytes of the
GPNVBuffer area are used as a scratch-area by the BIOS call
in processing the write request; the contents of that area of
the buffer are destroyed by this function call.
The GPNVLock provides a mechanism for cooperative use of the
GPNV, and is set during a GPNV Read (Function 56h). If the
input GPNVLock value is -1 the caller requests a forced write
to the GPNV area, ignoring any outstanding GPNVLock. If the
caller is not doing a forced write, the value passed in GPNVLock
to the GPNV Write must be the same value as that (set and)
returned by a previous GPNV Read (Function 56h).
Input:
[EBP+00] - PnP BIOS Function 57h
[EBP+02] - Handle - Identifies which GPNV is to be written
[EBP+04] - *GPNVBuffer - Address of buffer containing complete GPNV to write
[EBP+08] - GPNVLock - Lock value
[EBP+0A] - GPNVSelector - Selector for GPNV Storage
[EBP+0C] - BiosSelector - PnP BIOS readable/writable selector
Output:
The GPNV Write function returns a value of DMI_ LOCK_NOT_SUPPORTED
when a GPNVLock value other than -1 is specified and locking is
not supported. A return status of DMI_ CURRENTLY_LOCKED indicates
that the call has failed due to an outstanding lock on the GPNV
area which does not match the caller's GPNVLock value. Any
outstanding GPNVLock value (which was set by a previous Error!
Reference source not found.) gets cleared on a successful
write of the GPNV.
Notes:


Function by Segment

By Segment

The following is a list of the segments.
For a list in alphabetical order, see In Alphabetical Order.
For a list by file name, see By File Name.

  • OEM16_CSEG


OEM16_CSEG

The following functions are used in the segment: OEM16_CSEG.

Function | Description
RT_GET_SMBIOS_INFO | This function returns information about the SMBIOS extensions such as the number of structures present and the size of the largest one. This function is presently called only during RUNTIME.
RT_GET_SMBIOS_STRUC | This function copies one DMI structure into the buffer provided by the caller. The caller's DMI structure number is then updated with next DMI structure number (or FFFF if no more DMI structures are present).
RT_GET_SMBIOS_STRUC_CHANGE_INFO | This function returns the information about what type of SMBIOS structure-change occurred.
RT_SET_SMBIOS_STRUC | This function sets the SMBIOS structure identified by the type and possibly handle, found in the SMBIOS structure header in the given buffer.
RT_SMBIOS_CONTROL | This function returns the information about what type of SMBIOS structure-change occurred.
SMB_cs_read_ram_write_rom | This function makes the code segment Read Only.
SMB_cs_read_x_write_ram | This function makes the code segment Write Only.
SMBIOS_Func_50h | This function returns information about the SMBIOS extensions such as the number of structures present and the size of the largest one. This function is presently called only during RUNTIME.
SMBIOS_Func_51h | This function copies one DMI structure into the buffer provided by the caller. The caller's DMI structure number is then updated with next DMI structure number (or FFFF if no more DMI structures are present).
SMBIOS_Func_52h | This function sets the SMBIOS structure identified by the type and possibly handle, found in the SMBIOS structure header in the given buffer.
SMBIOS_Func_53h | This function returns the information about what type of SMBIOS structure-change occurred.
SMBIOS_Func_54h | This function returns the information about what type of SMBIOS structure-change occurred.
SMBIOS_Func_55h | Required for GPNV support. This function returns information about a General Purpose NonVolatile (GPNV) area. The Handle argument is a pointer to a number that identifies which GPNV's information is requested, a value of 0 accesses the first (or only) area.
SMBIOS_Func_56h | Required for GPNV support. This function is used to read an entire GPNV area into the buffer specified by GPNVBuffer. It is the responsibility of the caller to ensure that GPNVBuffer is large enough to store the entire GPNV storage block - this buffer must be at least the MinGPNVRWSize returned by Function 55h - Get GPNV Information. The Handle argument identifies the specific GPNV to be read. On a successful read of a GPNV area, that GPNV area will be placed in the GPNVBuffer beginning at offset 0. The protected-mode selector GPNVSelector has base equal to NVStorageBase and limit of at least MinGPNVRWSize - so long as the NVStorageBase value returned from Function 55h was non-zero.
SMBIOS_Func_57h | Required for GPNV support. This function is used to write an entire GPNV from the GPNVBuffer into the nonvolatile storage area. The Handle argument identifies the specific GPNV to be written. The protectedmode selector GPNVSelector has base equal to NVStorageBase and limit of at least MinGPNVRWSize - so long as the NVStorageBase value returned from Get GPNV Information was non-zero. The caller should first call Read GPNV Data (with a lock) to get the current area contents, modify the data, and pass it into this function - this ensures that the GPNVBuffer which is written contains a complete definition for the entire GPNV area. If the BIOS uses some form of block erase device, the caller must also allocate enough buffer space for the BIOS to store all data from the part during the reprogramming operation, not just the data of interest. The data to be written to the GPNV selected by Handle must reside as the first GPNVSize bytes of the GPNVBuffer. Note: The remaining (MinGPNVRWSize-GPNVSize) bytes of the GPNVBuffer area are used as a scratch-area by the BIOS call in processing the write request; the contents of that area of the buffer are destroyed by this function call. The GPNVLock provides a mechanism for cooperative use of the GPNV, and is set during a GPNV Read (Function 56h). If the input GPNVLock value is -1 the caller requests a forced write to the GPNV area, ignoring any outstanding GPNVLock. If the caller is not doing a forced write, the value passed in GPNVLock to the GPNV Write must be the same value as that (set and) returned by a previous GPNV Read (Function 56h).


Functions in Alphabetical Order

In Alphabetical Order

The following topics provide a list in alphabetical order.
For a list by file name, see By File Name.
For a list by segment, see By Segment.

  • C
  • D
  • E
  • F
  • G
  • M
  • O
  • R
  • S
  • T


Functions in Alphabetical Order

C

Function | Description
CreateBaseBoardDataForSMBios | This function provides system chassis information. SMBIOS Core uses these information to dynamically update SMBIOS Chassis Type 2.
CreateBatteryDataForSMBios | This function provides system battery information. SMBIOS Core uses these information to dynamically update SMBIOS Portable Battery Data structure Type 22.
CreateChassisDataForSMBios | This function provides system chassis information. SMBIOS Core uses these information to dynamically update SMBIOS Chassis Type 3.
CreateCPUDataForSMBios | This function gathers the System Processor information and saves them in a variable named "SmbiosCpuVar". This variable with the CPU information is needed by the SMBIOS module to create the "Type 4, 7" structure.
CreateOnBoardDevDataForSMBios | This function gathers the Onboard Device status information and saves them in a variable named "SmbiosOnBoardVar". This variable with the OnBoard Device information is needed by the SMBIOS module to create the "Type 10" structure.
CreateOnBoardDevExtInfoForSMBios | This function gathers the Onboard Device status information and saves them in a variable named "SmbiosOnBoardExtVar". This variable with the OnBoard Device Extended information is needed by the SMBIOS module to create the "Type 41" structure.
CreateSlotDataForSMBios | This function gathers the System Slot status information and saves them in a variable named "SmbiosSlotsVar". This variable with the slot information is needed by the SMBIOS module to create the REQUIRED "Type 9" structure


Functions in Alphabetical Order

D

Function | Description
DisableShadowWrite | This function makes F000 shadow read only, and E000 shadow read only if ITK_SUPPORT token or SMBIOS_TABLE_LOCATION token is set.


Functions in Alphabetical Order

E

Function | Description
EnableShadowWrite | This function enables write to F000 shadow, and E000 shadow if ITK_SUPPORT token or SMBIOS_TABLE_LOCATION token is set.
EnableSmbusController | This function saves the current setting of the Smbus Controller CMD register and then enables it so that SPD data can be accessed.

Data Structure | Description
EVENT_LOG_DESCRIPTOR | Event Log Descriptor - Part of the System Event Log (Type 15)


Functions in Alphabetical Order

F

Function | Description
FillStringBufferWithSpaces | This function fills the input buffer with spaces. The number of spaces to be filled is specified in the input BufferSize


Functions in Alphabetical Order

G

Function | Description
GetSpdByte | This function reads a byte from the system memory SPD


Functions in Alphabetical Order

M

Data Structure | Description
ModificationFieldSTRUC |
ModificationHeaderSTRUC |
ModificationKeyFieldSTRUC |


Functions in Alphabetical Order

O

Function | Description
OemUpdate | The purpose of this function is to allow OEM to update the SMBIOS table as needed. OEM can use the EFI_SMBIOS_PROTOCOL to read, add, delete, and write to the SMBIOS table.


Functions in Alphabetical Order

R

Function | Description
RestoreSmbusController | This function restores the Smbus Controller CMD register to the previously saved setting.
RT_GET_SMBIOS_INFO | This function returns information about the SMBIOS extensions such as the number of structures present and the size of the largest one. This function is presently called only during RUNTIME.
RT_GET_SMBIOS_STRUC | This function copies one DMI structure into the buffer provided by the caller. The caller's DMI structure number is then updated with next DMI structure number (or FFFF if no more DMI structures are present).
RT_GET_SMBIOS_STRUC_CHANGE_INFO | This function returns the information about what type of SMBIOS structure-change occurred.
RT_SET_SMBIOS_STRUC | This function sets the SMBIOS structure identified by the type and possibly handle, found in the SMBIOS structure header in the given buffer.
RT_SMBIOS_CONTROL | This function returns the information about what type of SMBIOS structure-change occurred.


Functions in Alphabetical Order

S

Function | Description
SMB_cs_read_ram_write_rom | This function makes the code segment Read Only.
SMB_cs_read_x_write_ram | This function makes the code segment Write Only.
SMBIOS_Func_50h | This function returns information about the SMBIOS extensions such as the number of structures present and the size of the largest one. This function is presently called only during RUNTIME.
SMBIOS_Func_51h | This function copies one DMI structure into the buffer provided by the caller. The caller's DMI structure number is then updated with next DMI structure number (or FFFF if no more DMI structures are present).
SMBIOS_Func_52h | This function sets the SMBIOS structure identified by the type and possibly handle, found in the SMBIOS structure header in the given buffer.
SMBIOS_Func_53h | This function returns the information about what type of SMBIOS structure-change occurred.
SMBIOS_Func_54h | This function returns the information about what type of SMBIOS structure-change occurred.
SMBIOS_Func_55h | Required for GPNV support. This function returns information about a General Purpose NonVolatile (GPNV) area. The Handle argument is a pointer to a number that identifies which GPNV's information is requested, a value of 0 accesses the first (or only) area.
SMBIOS_Func_56h | Required for GPNV support. This function is used to read an entire GPNV area into the buffer specified by GPNVBuffer. It is the responsibility of the caller to ensure that GPNVBuffer is large enough to store the entire GPNV storage block - this buffer must be at least the MinGPNVRWSize returned by Function 55h - Get GPNV Information. The Handle argument identifies the specific GPNV to be read. On a successful read of a GPNV area, that GPNV area will be placed in the GPNVBuffer beginning at offset 0. The protected-mode selector GPNVSelector has base equal to NVStorageBase and limit of at least MinGPNVRWSize - so long as the NVStorageBase value returned from Function 55h was non-zero.
SMBIOS_Func_57h | Required for GPNV support. This function is used to write an entire GPNV from the GPNVBuffer into the nonvolatile storage area. The Handle argument identifies the specific GPNV to be written. The protectedmode selector GPNVSelector has base equal to NVStorageBase and limit of at least MinGPNVRWSize - so long as the NVStorageBase value returned from Get GPNV Information was non-zero. The caller should first call Read GPNV Data (with a lock) to get the current area contents, modify the data, and pass it into this function - this ensures that the GPNVBuffer which is written contains a complete definition for the entire GPNV area. If the BIOS uses some form of block erase device, the caller must also allocate enough buffer space for the BIOS to store all data from the part during the reprogramming operation, not just the data of interest. The data to be written to the GPNV selected by Handle must reside as the first GPNVSize bytes of the GPNVBuffer. Note: The remaining (MinGPNVRWSize-GPNVSize) bytes of the GPNVBuffer area are used as a scratch-area by the BIOS call in processing the write request; the contents of that area of the buffer are destroyed by this function call. The GPNVLock provides a mechanism for cooperative use of the GPNV, and is set during a GPNV Read (Function 56h). If the input GPNVLock value is -1 the caller requests a forced write to the GPNV area, ignoring any outstanding GPNVLock. If the caller is not doing a forced write, the value passed in GPNVLock to the GPNV Write must be the same value as that (set and) returned by a previous GPNV Read (Function 56h).
SMIBiosBoardDriverEntryPoint | SMBIOS Board driver entry point

Data Structure | Description
SINGLE_DEV_INFO | Single Device Information
SMBIOS_ADDITIONAL_INFO | System Power Supply (Type 40)
SMBIOS_BASE_BOARD_INFO | Base Board (or Module) Information Structure (Type 2)
SMBIOS_BIOS_INFO | BIOS Information Structure (Type 0)
SMBIOS_BIOS_LANG_INFO | BIOS Language Information (Type 13)
SMBIOS_BIS_ENTRYPOINT_INFO | Boot Integrity Services (BIS) Entry Point (Type 31)
SMBIOS_CACHE_INFO | Cache Information Structure (Type 7)
SMBIOS_COOLING_DEV_INFO | Cooling Device (Type 27)
SMBIOS_ELECT_CURRENT_PROBE_INFO | Electrical Current Probe (Type 29)
SMBIOS_EVENT_LOG_INFO | System Event Log (Type 15)
SMBIOS_HARDWARE_SECURITY_INFO | Hardware Security (Type 24)
SMBIOS_IPMI_DEV_INFO | IPMI Device Information (Type 38)
SMBIOS_MANAGEMENT_DEV_INFO | Management Device (Type 34)
SMBIOS_MEM_ARRAY_MAP_ADDR_INFO | Memory Array Mapped Address (Type 19)
SMBIOS_MEM_CONTROLLER_INFO | Memory Controller Information Structure (Type 5)
SMBIOS_MEM_DEV_MAP_ADDR_INFO | Memory Device Mapped Address (Type 20)
SMBIOS_MEM_MODULE_INFO | Memory Module Information Structure (Type 6)
SMBIOS_MEMORY_CHANNEL_INFO | Memory Channel (Type 37)
SMBIOS_MEMORY_DEVICE_INFO | Memory Device (Type 17)
SMBIOS_MEMORY_ERROR_INFO | 32-bit Memory Error Information (Type 18)
SMBIOS_NVRAM_TYPE | DMI Type X data
SMBIOS_NVRAM_TYPE0 | DMI Type 0 data UINT32 Flag; // Bit0 = Vendor string changed // Bit1 = BIOS version string changed // Bit2 = BIOS Release Date string changed
SMBIOS_NVRAM_TYPE1 | DMI Type 1 data UINT32 Flag; // Bit0 = Manufacturer string changed // Bit1 = Product Name string changed // Bit2 = Version string changed // Bit3 = Serial Number string changed // Bit4 = SKU string changed // Bit5 = Family string changed // Bit16 = UUID changed
SMBIOS_NVRAM_TYPE11 | DMI Type 11 data UINT32 Flag; // Bit(x) = String #(x) changed
SMBIOS_NVRAM_TYPE12 | DMI Type 12 data UINT32 Flag; // Bit(x) = String #(x) changed
SMBIOS_NVRAM_TYPE2 | DMI Type 2 data UINT32 Flag; // Bit0 = Manufacturer string changed // Bit1 = Product Name string changed // Bit2 = Version string changed // Bit3 = Serial Number string changed // Bit4 = Asset Tag string changed
SMBIOS_NVRAM_TYPE22 | DMI Type 22 data UINT8 Flag; // Bit0 = Location string changed // Bit1 = Manufacturer string changed // Bit2 = Manufacturer Date changed // Bit3 = Serial Number string changed // Bit4 = Device Name string changed // Bit5 = SBDS Version Number string changed // Bit6 = SBDS Device Chemistry string changed // Bit16 = Device Chemistry changed // Bit17 = Design Capacity changed // Bit18 = Design Voltage changed // Bit19 = Maximum Error in Battery Data changed // Bit20 = SBDS Serial Number changed // Bit21 = SBDS Manufacturer Date changed // Bit22 = Design Capacity Multiplier changed // Bit23 = OEM-specific changed
SMBIOS_NVRAM_TYPE3 | DMI Type 3 data UINT32 Flag; // Bit0 = Manufacturer string changed // Bit1 = Version string changed // Bit2 = Serial Number string changed // Bit3 = Asset Tag string changed // Bit4 = SKU Number string changed // Bit16 = Chassis Type changed // Bit17 = OEM-defined changed
SMBIOS_NVRAM_TYPE39 | DMI Type 39 data UINT8 Flag; // Bit0 = Location string changed // Bit1 = Device Name string changed // Bit2 = Manufacturer string changed // Bit3 = Serial Number string changed // Bit4 = Asset Tag string changed // Bit5 = Model Part Number string changed // Bit6 = Revision Level string changed // Bit16 = Power Unit Group changed // Bit17 = Max Power Capacity changed // Bit18 = Power Supply Characteristics changed // Bit19 = Input Voltage Probe Handle changed // Bit20 = Cooling Device Handle changed // Bit21 = Input Current Probe Handle changed
SMBIOS_NVRAM_TYPE4 | DMI Type 4 data UINT32 Flag; // Bit0 = Serial Number string changed // Bit1 = Asset Tag string changed // Bit2 = Part Number string changed
SMBIOS_OEM_STRINGS_INFO | OEM Strings Structure (Type 11)
SMBIOS_ONBOARD_DEV_INFO | On Board Devices Information Structure (Type 10)
SMBIOS_ONBOARD_DEVICE_EXTENDED_INFO | Onboard Devices Extended Information (Type 41)
SMBIOS_OUT_OF_BAND_REMOTE_ACCESS_INFO | Out-of-Band Remote Access (Type 30)
SMBIOS_PHYSICAL_MEM_ARRAY_INFO | Physical Memory Array (Type 16)
SMBIOS_POINTING_DEV_INFO | Built-in Pointing Device (Type 21)
SMBIOS_PORT_CONN_INFO | Port Connector Information Structure (Type 8)
SMBIOS_PORTABLE_BATTERY_INFO | Portable Battery (Type 22)
SMBIOS_PROCESSOR_INFO | Processor Information Structure (Type 4)
SMBIOS_SIXTYFOUR_MEM_ERROR_INFO | 64-bit Memory Error Information (Type 33)
SMBIOS_STRUCTURE_HEADER | SMBIOS Structure Header - Common for all structures Describing the type, size of the fixed area, and handle of the structure.
SMBIOS_SYSTEM_BOOT_INFO | System Boot Information (Type 32)
SMBIOS_SYSTEM_CONFIG_INFO | System Configuration Options (Type 12)
SMBIOS_SYSTEM_ENCLOSURE_INFO | System Enclosure or Chassis Information Structure (Type 3)
SMBIOS_SYSTEM_INFO | System Information Structure (Type 1)
SMBIOS_SYSTEM_PWR_CONTROL_INFO | System Power Control (Type 25)
SMBIOS_SYSTEM_PWR_SUPPY_INFO | System Power Supply (Type 39)
SMBIOS_SYSTEM_RESET_INFO | System Reset (Type 23)
SMBIOS_SYSTEM_SLOTS_INFO | System Slot Information Structure (Type 9)
SMBIOS_TABLE_ENTRY_POINT | SMBIOS Structure Table Entry Point
SMBIOS_TEMPERATURE_PROBE_INFO | Temperature Probe (Type 28)
SMBIOS_VOLTAGE_PROBE_INFO | Voltage Probe (Type 26)


Functions in Alphabetical Order

T

Data Structure | Description
TYPE37_MEMORY_DEVICE | Type 37 Memory Device


General Information