American Megatrends, Inc.

Board module

Copyright

Release Notes

© American Megatrends, Inc.


Copyright

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

Copyright (c) 1999-2012 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: Board
Component Reference Name: Board
Component Type: eBoard
Release Date: 2012-10-04
Source Control Label: 4.6.5.4_Board_31
Source Control Location: SS: Alaska;$/Alaska/BIN/Board;

Dependencies
NONE
Non-Compiled BIN and LIB File(s) in Flavor:
NONE
Component Description:
Board component includes features and porting information specific for a given platform
Filename | Description
Main Component | Root\Board
Board.cif | This file is the Component Information File(CIF) that defines the files and the Module Parts that are included in the Board eModule
Board.sdl | This file contains tokens and eLinks that are used to configure the module
Board.mak | This file contains the build options for this eModule
OemPei.c | This file contains OEM-specific code for PEI phase.
OemDxe.c | This file contains OEM-specific code for DXE phase.
OemPei.dxs | This file contains dependency expression for OEM PEI driver.
OemDxe.dxs | This file contains dependency expression for OEM PEI driver.
OemPort.c | This file contains OEM-specific code for both PEI and DXE phases.
OemSetup.c | This file contains OEM-specific code for Setup initialization.
Oem.sd | This file contains OEM-specific Setup controls definitions.
Oem.uni | This file contains OEM-specific Setup strings.
Oem.h | This file contains OEM-specific data structures definitions.
ReportFV2.c | This file contains ROM layout handling infrastructure.
ModulePart Setup Component | Root\Board\EM\Setup
Setup.cif | This file is the Component Information File(CIF) that defines the files that are included in the Setup ModulePart
Setup.sdl | This file contains tokens and eLinks that are used to configure the ModulePart
Setup.mak | This file contains the build options for this ModulePart
Main.vfr | This file contains Setup controls definitions for MAIN Setup page.
Advanced.vfr | This file contains Setup controls definitions for ADVANCED Setup page.
Chipset.vfr | This file contains Setup controls definitions for CHIPSET Setup page.
Boot.vfr | This file contains Setup controls definitions for BOOT Setup page.
Security.vfr | This file contains Setup controls definitions for SECURITY Setup page.
Exit.vfr | This file contains Setup controls definitions for EXIT Setup page.
Setup.uni | This file contains Setup strings.
SetupPrivate.h | This file contains Setup data structures definitions.
Setup.c | This file contains main Setup functionality implementation.
Logo.bmp | This file contains AMI full-screen logo.
AmiSetupProtocol.c | Implementation of AMI Setup protocol
ModulePart Setup protocol Component | Include\Protocol
AmiSetupProtocol.cif | This file is the Component Information File(CIF) that defines the files that are included in the AMI Setup protocol ModulePart
AmiSetupProtocol.h | AMI Setup protocol definition file

AMI Build Tools:
Tools Label: 4.5.5_Tools_39, Dated: 2012-04-04
Visual eBios: RSS.5.73.0239, Dated: 2012-06-21
Compiler Tool(s): Microsoft™s Windows Driver Kit (WDK) Ver. 7600.16385.1
Compiler Tool(s): Microsoft Windows Driver Development Kit (DDK) Ver. 3790.1830
New features added in this label:
Support for runtime registration of setup control callbacks for runtime generated formsets/forms
Porting hook called before publishing nested firmware volume
Reporting of DXE firmware volumes is moved to DxeIpl
OpROM execution sequence tokens moved to CsmOptOut module
General Bug Fixes:
Fixed display of correct number of currently supported UEFI/PI version
Modified function to find ROM layout in ROM file to do additional verification to pickup correct address
Added missing MANUFACTURING flags to setup controls
EIP addressed in this label:
83602
81090
Files changed:
ReportFV2.c
Setup.c
Setup.cif
Board.sdl
Board.mak
Boot.vfr
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing:
N/A
Validation Testing:
N/A
Release History:
Release_03
Release_02
Release_01
Release_00

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Board
Component Reference Name: Board
Component Type: eBoard
Release Date: 2011-03-28
Source Control Label: 4.6.5.0_Board_27
Source Control Location: SS: Alaska;$/Alaska/BIN/Board;

Dependencies
NONE
Non-Compiled BIN and LIB File(s) in Flavor:
NONE
Component Description:
Board component includes features and porting information specific for a given platform
Filename | Description
Main Component | Root\Board
Board.cif | This file is the Component Information File(CIF) that defines the files and the Module Parts that are included in the Board eModule
Board.sdl | This file contains tokens and eLinks that are used to configure the module
Board.mak | This file contains the build options for this eModule
OemPei.c | This file contains OEM-specific code for PEI phase.
OemDxe.c | This file contains OEM-specific code for DXE phase.
OemPei.dxs | This file contains dependency expression for OEM PEI driver.
OemDxe.dxs | This file contains dependency expression for OEM PEI driver.
OemPort.c | This file contains OEM-specific code for both PEI and DXE phases.
OemSetup.c | This file contains OEM-specific code for Setup initialization.
Oem.sd | This file contains OEM-specific Setup controls definitions.
Oem.uni | This file contains OEM-specific Setup strings.
Oem.h | This file contains OEM-specific data structures definitions.
ReportFV2.c | This file contains ROM layout handling infrastructure.
ModulePart Setup Component | Root\Board\EM\Setup
Setup.cif | This file is the Component Information File(CIF) that defines the files that are included in the Setup ModulePart
Setup.sdl | This file contains tokens and eLinks that are used to configure the ModulePart
Setup.mak | This file contains the build options for this ModulePart
Main.vfr | This file contains Setup controls definitions for MAIN Setup page.
Advanced.vfr | This file contains Setup controls definitions for ADVANCED Setup page.
Chipset.vfr | This file contains Setup controls definitions for CHIPSET Setup page.
Boot.vfr | This file contains Setup controls definitions for BOOT Setup page.
Security.vfr | This file contains Setup controls definitions for SECURITY Setup page.
Exit.vfr | This file contains Setup controls definitions for EXIT Setup page.
Setup.uni | This file contains Setup strings.
SetupPrivate.h | This file contains Setup data structures definitions.
Setup.c | This file contains main Setup functionality implementation.
Logo.bmp | This file contains AMI full-screen logo.

AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.69.0132, Dated: 2010-03-24
Compiler Tool(s): Microsoft™s Windows Driver Kit (WDK) Ver. 7600.16385.1
Compiler Tool(s): Microsoft Windows Driver Development Kit (DDK) Ver. 3790.1830
New features added in this label:
Flexible ROM layout support
PI specification version 1.1 support
General Bug Fixes:
Callback function modified to return correct value
EIP addressed in this label:
39461: BIOS update with different ROM layout
47366: Preserve BIOS password when CMOS is corrupted
53858: Support to Treat Dynamic IFR Pages as subpages (not as top level menu items).
53374: Updated source code according to coding standard
54915: Support of larger number of callbacks (longer value of the SETUP_ITEM_CALLBACK_LIST macro) registered under SetupItemCallbacks eLink
55443: Password length restriction message is updated to work properly during language switch
54455: In some cases signaling the Option ROM execution event is not in sync between PreprocessOprom and PostProcessOprom
39307: DOS screen is blank when legacy serial redirection is enabled with option rom message display option set to "Keep current" in setup
55918: Workaround for defaults processing in TSE
Files changed:
ReportFV.c - file removed
ReportFV2.c - file added
All files were affected by coding standard modifications
OemPort.c
OemDxe.c
Setup.c
Setup.uni
Setup.mak
Board.mak
Board.sdl
Board.cif
Security.vfr
Boot.vfr
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing:
N/A
Validation Testing:
N/A
Release History:

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Board
Component Reference Name: Board
Component Type: eBoard
Release Date: 2011-07-01
Source Control Label: 4.6.5.0_Board_28
Source Control Location: SS: Alaska;$/Alaska/BIN/Board;

Dependencies
NONE
Non-Compiled BIN and LIB File(s) in Flavor:
NONE
Component Description:
Board component includes features and porting information specific for a given platform
Filename | Description
Main Component | Root\Board
Board.cif | This file is the Component Information File(CIF) that defines the files and the Module Parts that are included in the Board eModule
Board.sdl | This file contains tokens and eLinks that are used to configure the module
Board.mak | This file contains the build options for this eModule
OemPei.c | This file contains OEM-specific code for PEI phase.
OemDxe.c | This file contains OEM-specific code for DXE phase.
OemPei.dxs | This file contains dependency expression for OEM PEI driver.
OemDxe.dxs | This file contains dependency expression for OEM PEI driver.
OemPort.c | This file contains OEM-specific code for both PEI and DXE phases.
OemSetup.c | This file contains OEM-specific code for Setup initialization.
Oem.sd | This file contains OEM-specific Setup controls definitions.
Oem.uni | This file contains OEM-specific Setup strings.
Oem.h | This file contains OEM-specific data structures definitions.
ReportFV2.c | This file contains ROM layout handling infrastructure.
ModulePart Setup Component | Root\Board\EM\Setup
Setup.cif | This file is the Component Information File(CIF) that defines the files that are included in the Setup ModulePart
Setup.sdl | This file contains tokens and eLinks that are used to configure the ModulePart
Setup.mak | This file contains the build options for this ModulePart
Main.vfr | This file contains Setup controls definitions for MAIN Setup page.
Advanced.vfr | This file contains Setup controls definitions for ADVANCED Setup page.
Chipset.vfr | This file contains Setup controls definitions for CHIPSET Setup page.
Boot.vfr | This file contains Setup controls definitions for BOOT Setup page.
Security.vfr | This file contains Setup controls definitions for SECURITY Setup page.
Exit.vfr | This file contains Setup controls definitions for EXIT Setup page.
Setup.uni | This file contains Setup strings.
SetupPrivate.h | This file contains Setup data structures definitions.
Setup.c | This file contains main Setup functionality implementation.
Logo.bmp | This file contains AMI full-screen logo.

AMI Build Tools:
Tools Label: 4.5.5_TOOLS_35, Dated: 2011-03-29
Visual eBios: RSS.5.69.0132, Dated: 2010-03-24
Compiler Tool(s): Microsoft™s Windows Driver Kit (WDK) Ver. 7600.16385.1
Compiler Tool(s): Microsoft Windows Driver Development Kit (DDK) Ver. 3790.1830
New features added in this label:
Project build number added to Project Version string in Setup
Added support for zero boot timeout
General Bug Fixes:
Callback function is updateed to return status of the eLink based callback routine back to the browser
EIP addressed in this label:
58960: Callback function ingnores status returned by eLink callback function
63692: Project Version string doesn't reflect correct number
Files changed:
Setup.c
Board.sdl
Boot.vfr
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing:
N/A
Validation Testing:
N/A
Release History:
Release_00

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Board
Component Reference Name: Board
Component Type: eBoard
Release Date: 2011-10-05
Source Control Label: 4.6.5.1_Board_29
Source Control Location: SS: Alaska;$/Alaska/BIN/Board;

Dependencies
In order to use this version of the Board module with Cores older than 4.6.5.1, add ForwardCompatibility eModule to your project.($/Alaska/BIN/Core/Compatibility/Forward/ForwardCompatibility.cif)
Non-Compiled BIN and LIB File(s) in Flavor:
NONE
Component Description:
Board component includes features and porting information specific for a given platform
Filename | Description
Main Component | Root\Board
Board.cif | This file is the Component Information File(CIF) that defines the files and the Module Parts that are included in the Board eModule
Board.sdl | This file contains tokens and eLinks that are used to configure the module
Board.mak | This file contains the build options for this eModule
OemPei.c | This file contains OEM-specific code for PEI phase.
OemDxe.c | This file contains OEM-specific code for DXE phase.
OemPei.dxs | This file contains dependency expression for OEM PEI driver.
OemDxe.dxs | This file contains dependency expression for OEM PEI driver.
OemPort.c | This file contains OEM-specific code for both PEI and DXE phases.
OemSetup.c | This file contains OEM-specific code for Setup initialization.
Oem.sd | This file contains OEM-specific Setup controls definitions.
Oem.uni | This file contains OEM-specific Setup strings.
Oem.h | This file contains OEM-specific data structures definitions.
ReportFV2.c | This file contains ROM layout handling infrastructure.
ModulePart Setup Component | Root\Board\EM\Setup
Setup.cif | This file is the Component Information File(CIF) that defines the files that are included in the Setup ModulePart
Setup.sdl | This file contains tokens and eLinks that are used to configure the ModulePart
Setup.mak | This file contains the build options for this ModulePart
Main.vfr | This file contains Setup controls definitions for MAIN Setup page.
Advanced.vfr | This file contains Setup controls definitions for ADVANCED Setup page.
Chipset.vfr | This file contains Setup controls definitions for CHIPSET Setup page.
Boot.vfr | This file contains Setup controls definitions for BOOT Setup page.
Security.vfr | This file contains Setup controls definitions for SECURITY Setup page.
Exit.vfr | This file contains Setup controls definitions for EXIT Setup page.
Setup.uni | This file contains Setup strings.
SetupPrivate.h | This file contains Setup data structures definitions.
Setup.c | This file contains main Setup functionality implementation.
Logo.bmp | This file contains AMI full-screen logo.

AMI Build Tools:
Tools Label: 4.5.5_TOOLS_35, Dated: 2011-03-29
Visual eBios: RSS.5.69.0132, Dated: 2010-03-24
Compiler Tool(s): Microsoft™s Windows Driver Kit (WDK) Ver. 7600.16385.1
Compiler Tool(s): Microsoft Windows Driver Development Kit (DDK) Ver. 3790.1830
New features added in this label:
Setup control to enable/disable execution of the Legacy Option ROM for video devices
Added support for DriverHealth protocol (requires TSE label 4.6.2_TSE_2_14_1219 or newer)
General Bug Fixes:
ROM_AREA pointer moved to memory to allow overriding
EIP addressed in this label:
64103: Setup control to enable/disable execution of the Legacy Option ROM for video devices
64107: Update code to support UEFI 2.3.1 and PI 1.2 specifications
63462: Added support for DriverHealth protocol
Files changed:
OemPort.c
OemPei.c
OemDxe.c
Oem.sd
Oem.uni
Setup.uni
Board.sdl
Advanced.vfr
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing:
N/A
Validation Testing:
N/A
Release History:
Release_01
Release_00

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Board
Component Reference Name: Board
Component Type: eBoard
Release Date: 2011-12-16
Source Control Label: 4.6.5.2_Board_30
Source Control Location: SS: Alaska;$/Alaska/BIN/Board;

Dependencies
NONE
Non-Compiled BIN and LIB File(s) in Flavor:
NONE
Component Description:
Board component includes features and porting information specific for a given platform
Filename | Description
Main Component | Root\Board
Board.cif | This file is the Component Information File(CIF) that defines the files and the Module Parts that are included in the Board eModule
Board.sdl | This file contains tokens and eLinks that are used to configure the module
Board.mak | This file contains the build options for this eModule
OemPei.c | This file contains OEM-specific code for PEI phase.
OemDxe.c | This file contains OEM-specific code for DXE phase.
OemPei.dxs | This file contains dependency expression for OEM PEI driver.
OemDxe.dxs | This file contains dependency expression for OEM PEI driver.
OemPort.c | This file contains OEM-specific code for both PEI and DXE phases.
OemSetup.c | This file contains OEM-specific code for Setup initialization.
Oem.sd | This file contains OEM-specific Setup controls definitions.
Oem.uni | This file contains OEM-specific Setup strings.
Oem.h | This file contains OEM-specific data structures definitions.
ReportFV2.c | This file contains ROM layout handling infrastructure.
ModulePart Setup Component | Root\Board\EM\Setup
Setup.cif | This file is the Component Information File(CIF) that defines the files that are included in the Setup ModulePart
Setup.sdl | This file contains tokens and eLinks that are used to configure the ModulePart
Setup.mak | This file contains the build options for this ModulePart
Main.vfr | This file contains Setup controls definitions for MAIN Setup page.
Advanced.vfr | This file contains Setup controls definitions for ADVANCED Setup page.
Chipset.vfr | This file contains Setup controls definitions for CHIPSET Setup page.
Boot.vfr | This file contains Setup controls definitions for BOOT Setup page.
Security.vfr | This file contains Setup controls definitions for SECURITY Setup page.
Exit.vfr | This file contains Setup controls definitions for EXIT Setup page.
Setup.uni | This file contains Setup strings.
SetupPrivate.h | This file contains Setup data structures definitions.
Setup.c | This file contains main Setup functionality implementation.
Logo.bmp | This file contains AMI full-screen logo.

AMI Build Tools:
Tools Label: 4.5.5_TOOLS_35, Dated: 2011-03-29
Visual eBios: RSS.5.69.0132, Dated: 2010-03-24
Compiler Tool(s): Microsoft™s Windows Driver Kit (WDK) Ver. 7600.16385.1
Compiler Tool(s): Microsoft Windows Driver Development Kit (DDK) Ver. 3790.1830
New features added in this label:
CSM Opt out mechanism
General Bug Fixes:
Add publishing ROM layout HOB on recovery boot path
Add verification of parent of nested Firmware Volume
CheckBeforePublishing function updated for Core 4.6.5.2 compatibility
EIP addressed in this label:
71380: CSM Opt-out feature support
Files changed:
ReportFV2.c
OemDxe.c
Oem.sd
Oem.uni
Setup.uni
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing:
N/A
Validation Testing:
N/A
Release History:
Release_02
Release_01
Release_00

© 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.

  • Advanced.vfr
  • AmiSetupProtocol.c
  • AmiSetupProtocol.h
  • Board.mak
  • Boot.vfr
  • Chipset.vfr
  • Exit.vfr
  • Main.vfr
  • Oem.h
  • Oem.sd
  • OemDxe.c
  • OemDxe.dxs
  • OemPei.c
  • OemPei.dxs
  • OEMPort.c
  • OemSetup.c
  • ReportFV2.c
  • Security.vfr
  • Setup.c
  • Setup.dxs
  • Setup.mak
  • SetupPrivate.h
Built on 17:28:22 10/04/12


Advanced.vfr

Description:
Setup script for the "Advanced" top level setup screen


AmiSetupProtocol.c

Description:
AMI Setup protocol implementation

The following tables are used in the file: AmiSetupProtocol.c.

Table | Description
AmiSetupGetCallbackParameters | This function returns Callback parameters from FormBrowser
AmiSetupGetCallbacks | This function returns all registered callbacks
AmiSetupRegisterCallback | This function registers setup control Callback
AmiSetupUnRegisterCallback | This function unregisters previously registered Callback
InitAmiSetupProtocol | This function installs AMI Setup protocol


AmiSetupGetCallbackParameters in the AmiSetupProtocol.c

Table : AmiSetupGetCallbackParameters

File: AmiSetupProtocol.c
Description:
This function returns Callback parameters from FormBrowser
Input:
OUT CALLBACK_PARAMETERS **Parameters - pointer to store parameters
Output:
EFI_SUCCESS - protocol installed


AmiSetupGetCallbacks in the AmiSetupProtocol.c

Table : AmiSetupGetCallbacks

File: AmiSetupProtocol.c
Description:
This function returns all registered callbacks
Input:
IN OUT UINTN *BufferSize - size of buffer where to store output
OUT SETUP_ITEM_CALLBACK *Buffer - buffer to store output
Output:
EFI_SUCCESS - operation succeeded
EFI_ERROR - operation failed


AmiSetupRegisterCallback in the AmiSetupProtocol.c

Table : AmiSetupRegisterCallback

File: AmiSetupProtocol.c
Description:
This function registers setup control Callback
Input:
IN UINT16 Class - setup control formset class
IN UINT16 SubClass - setup control formset subclass
IN UINT16 Key - setup control key
IN SETUP_ITEM_CALLBACK_HANDLER *Handler - pointer to Callback function
OUT EFI_HANDLE *Handle - pointer to store handle of registered Callback
Output:
EFI_SUCCESS - operation succeeded


AmiSetupUnRegisterCallback in the AmiSetupProtocol.c

Table : AmiSetupUnRegisterCallback

File: AmiSetupProtocol.c
Description:
This function unregisters previously registered Callback
Input:
IN EFI_HANDLE Handle - handle of Callback to unregister
Output:
EFI_SUCCESS - operation succeeded


InitAmiSetupProtocol in the AmiSetupProtocol.c

Table : InitAmiSetupProtocol

File: AmiSetupProtocol.c
Description:
This function installs AMI Setup protocol
Input:
None
Output:
EFI_SUCCESS - protocol installed
EFI_ERROR - error occured during installation


AmiSetupProtocol.h

Description:
AMI Setup protocol definitions


Board.mak

Description:
This make file builds board related DXE & PEI modules


Boot.vfr

Description:
Setup script for the "Boot" top level setup screen


Chipset.vfr

Description:
Setup script for the "Chipset" top level setup screen


Exit.vfr

Description:
Setup script for the "Exit" top level setup screen


Main.vfr

Description:
Setup script for the "Main" top level setup screen


Oem.h

Description:
This file contains definitions used in OEM porting hooks


Oem.sd

Description:
Template Board Setup options


OemDxe.c

Description:
This file contains code for Template OEM initialization in the DXE stage

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

Function | Description
CsmPlatform_GetAtapiDeviceType | This function is the member function GetAtapiDeviceType of the CsmPlatformProtocol. Until ported, this function returns EFI_UNSUPPORTED
CsmPlatform_PostProcessOpRom | This function is member function PostProcessOpRom of the CsmPlatformProtocol.
CsmPlatform_PreProcessOpRom | This function is the member function PreProcessOpRom of the CsmPlatformProtocol.
InstallCsmPlatformProtocol | This function is the entry point for the OEM DXE portion of the Board template driver
OEMDXE_Init | This function is the entry point for this DXE. This function programs OEM defined values in the DXE stage
RestoreSetupPassword | Restore previous Password
SignalProtocolEvent | Internal function that installs/uninstall protocol with a specified GUID. Such protocols can be used as event signaling mechanism.


CsmPlatform_GetAtapiDeviceType in the OemDxe.c

Function : CsmPlatform_GetAtapiDeviceType

File: OemDxe.c
Description:
This function is the member function GetAtapiDeviceType of the
CsmPlatformProtocol.  Until ported, this function returns EFI_UNSUPPORTED
Input:
IN CSM_PLATFORM_PROTOCOL *This - pointer to the instance of the CSM Platform Protocol
IN struct _ATAPI_IDENTIFY *IdentifyDriveData - pointer to Atapi Drive Data structure
OUT UINT16 *DevType - type of the device the IdentifyDeviceData is for
Output:
EFI_UNSUPPORTED


CsmPlatform_PostProcessOpRom in the OemDxe.c

Function : CsmPlatform_PostProcessOpRom

File: OemDxe.c
Description:
This function is member function PostProcessOpRom of the CsmPlatformProtocol.
Input:
CSM_PLATFORM_PROTOCOL *This - Pointer to this instance of the CSM_PLATFORM_PROTOCOL
EFI_PCI_IO_PROTOCOL *PciIo - OPTIONAL - pointer to the instance of the PciIo Protocol
Output:
EFI_STATUS


CsmPlatform_PreProcessOpRom in the OemDxe.c

Function : CsmPlatform_PreProcessOpRom

File: OemDxe.c
Description:
This function is the member function PreProcessOpRom of the CsmPlatformProtocol.
Input:
CSM_PLATFORM_PROTOCOL *This - Pointer to this instance of the CSM_PLATFORM_PROTOCOL
EFI_PCI_IO_PROTOCOL *PciIo - OPTIONAL - pointer to the instance of the PciIo Protocol
Output:
EFI_SUCCESS - run the option rom for this device
EFI_ABORTED - code determined to not run Oprom for this device


InstallCsmPlatformProtocol in the OemDxe.c

Function : InstallCsmPlatformProtocol

File: OemDxe.c
Description:
This function is the entry point for the OEM DXE portion of the Board
template driver
Input:
None
Output:
EFI_STATUS value determined by the call to InstallProtocolInterface


OEMDXE_Init in the OemDxe.c

Function : OEMDXE_Init

File: OemDxe.c
Description:
This function is the entry point for this DXE. This function programs
OEM defined values in the DXE stage
Input:
IN EFI_HANDLE ImageHandle - Image handle
IN EFI_SYSTEM_TABLE *SystemTable - Pointer to the system table
Output:
EFI_SUCCESS


RestoreSetupPassword in the OemDxe.c

Function : RestoreSetupPassword

File: OemDxe.c
Description:
Restore previous Password
Input:
IN EFI_EVENT  Event
IN VOID       *Context
Output:
NONE
Returns:
NONE


SignalProtocolEvent in the OemDxe.c

Function : SignalProtocolEvent

File: OemDxe.c
Description:
Internal function that installs/uninstall protocol with a specified GUID.
Such protocols can be used as event signaling mechanism.
Input:
IN EFI_GUID *ProtocolGuid - Pointer to the protocol GUID
IN VOID *Interface - Pointer to the interface that allows to pass data
pointer to the event consumer.
Output:
None


OemDxe.dxs

Description:
This file is the dependency file for the OEM DXE driver


OemPei.c

Description:
This file contains code for Template OEM initialization
in the PEI stage

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

Function | Description
OEMPEI_Init | This function is the entry point for this PEI. This function programs OEM related changes common to complete board. This might involve programming SB/NB & SIO


OEMPEI_Init in the OemPei.c

Function : OEMPEI_Init

File: OemPei.c
Description:
This function is the entry point for this PEI. This function programs OEM
related changes common to complete board. This might involve programming
SB/NB & SIO
Input:
FfsHeader   Pointer to the FFS file header
PeiServices Pointer to the PEI services table
Output:
EFI_STATUS - porting hook is empty so it returns EFI_SUCCESS
Notes:
This module is disabled by default. If you add code here, you need to
enable $(BUILD_DIR)\OemPei.ffs eLink, which is child of FV_BB. Otherwise
this module will not be included in the ROM image.


OemPei.dxs

Description:
This file is the dependency file for the OEM PEI
driver


OEMPort.c

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

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

Function | Description
CallOneParamHooks | This function calls a list of function defined at build time and return whether the functions completed successfully or not
CallTwoParamHooks | This function calls a list of function defined at build time and return whether the functions completed successfully or not
DxeIsNvramDataCompatible | This function determines if the current NVRAM data (mainly Setup-related variables) is compatible with the current firmware. This function is called by NVRAM Driver.
IsCtrlHomePressed | This function detects if the Ctrl + Home key press has been made. Is function is only included if KBC_SUPPORT is enabled. It enables the keyboard checks for the Ctrl + Home key press and then disables the keyboard
IsDefaultConfigMode | This function determines if the system should boot with the default configuration. This function is called by NVRAM code. If boot with default configuration is detected, default values for NVRAM variables are used.
IsMfgMode | This function determines if the system in in manufacturing mode. This function is called by NVRAM code. If system is in manufacturing mode, manufacturing values for NVRAM variables are used.
IsNvramDataCompatible | This function determines if the current NVRAM data (mainly Setup-related variables) is compatible with the current firmware.
IsRecovery | This function determines if the system is supposed to boot in recovery mode
IsResetConfigMode | This function determines if the system configuration needs to be reset. This function is called by NVRAM code.
NoConfigChanges | This function determines if the system has not been opened since the last boot. Chassis Intrusion sensor used
OEM_Get4080PinCableStatus | Detect whether 40/80 pin cable is connected.
PreserveSetupPassword | Save the Setup Password


CallOneParamHooks in the OEMPort.c

Function : CallOneParamHooks

File: OEMPort.c
Description:
This function calls a list of function defined at build time and
return whether the functions completed successfully or not
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to the PeiServices Table
Output:
BOOLEAN
- - TRUE - all functions returned correctly
- - FALSE - one of the functions failed during execution
Notes:
Similar to CallTwoParamHooks except that these function only require
the PeiServices pointer as a parameter


CallTwoParamHooks in the OEMPort.c

Function : CallTwoParamHooks

File: OEMPort.c
Description:
This function calls a list of function defined at build time and
return whether the functions completed successfully or not
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to the PeiServices Table
IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *ReadVariablePpi - pointer to
the Read Only Variable 2 PPI
Output:
BOOLEAN
- - TRUE - all functions returned correctly
- - FALSE - one of the functions failed during execution
Notes:
Similar to CallOneParamHooks except that these function also require
a pointer to the Read Only Variable 2 PPI


DxeIsNvramDataCompatible in the OEMPort.c

Function : DxeIsNvramDataCompatible

File: OEMPort.c
Description:
This function determines if the current NVRAM data
(mainly Setup-related variables) is compatible with the current firmware.
This function is called by NVRAM Driver.
Input:
GetVariable - pointer to EFI_GET_VARIABLE function. The pointer can be used
 to read existing NVRAM variables.
Output:
TRUE - the NVRAM data is compatible
FALSE - the NVRAM data is not compatible


IsCtrlHomePressed in the OEMPort.c

Function : IsCtrlHomePressed

File: OEMPort.c
Description:
This function detects if the Ctrl + Home key press has been made.
Is function is only included if KBC_SUPPORT is enabled.  It enables
the keyboard checks for the Ctrl + Home key press and then disables
the keyboard
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to the PeiServices Table
Output:
BOOLEAN
- - TRUE - Ctrl + Home was pressed
- - FALSE - Ctrl + Home not detected
Notes:


IsDefaultConfigMode in the OEMPort.c

Function : IsDefaultConfigMode

File: OEMPort.c
Description:
This function determines if the system should boot with the default configuration.
This function is called by NVRAM code.
If boot with default configuration is detected, default values for NVRAM
variables are used.
Input:
**PeiServices - pointer to a pointer to the PEI Services Table.
*ReadVariablePpi - pointer to EFI_PEI_READ_ONLY_VARIABLE2_PPI PPI. The pointer
      can be used to read and enumerate existing NVRAM variables.
Output:
TRUE - Boot with default configuration is detected
FALSE - Boot with default configuration is not detected
Notes:
This routine is callsed very early, prior to SBPEI and NBPEI


IsMfgMode in the OEMPort.c

Function : IsMfgMode

File: OEMPort.c
Description:
This function determines if the system in in manufacturing mode.
This function is called by NVRAM code.
If system is in manufacturing mode, manufacturing values for NVRAM variables
are used.
Input:
**PeiServices - pointer to a pointer to the PEI Services Table.
*ReadVariablePpi - pointer to EFI_PEI_READ_ONLY_VARIABLE2_PPI PPI. The pointer
      can be used to read and enumerate existing NVRAM variables.
Output:
TRUE - Manufacturing mode is detected
FALSE - Manufacturing mode is not detected
Notes:
This routine is called very early, prior to SBPEI and NBPEI


IsNvramDataCompatible in the OEMPort.c

Function : IsNvramDataCompatible

File: OEMPort.c
Description:
This function determines if the current NVRAM data
(mainly Setup-related variables) is compatible with the current firmware.
Input:
**PeiServices - pointer to a pointer to the PEI Services Table.
*ReadVariablePpi - pointer to EFI_PEI_READ_ONLY_VARIABLE2_PPI PPI.
      The pointer can be used to read and enumerate existing
      NVRAM variables.
Output:
TRUE - the NVRAM data is compatible
FALSE - the NVRAM data is not compatible
Notes:
This function is called by NVRAM PEIM.


IsRecovery in the OEMPort.c

Function : IsRecovery

File: OEMPort.c
Description:
This function determines if the system is supposed to boot in recovery mode
Input:
**PeiServices - pointer to the Pei Services function and data structure
Output:
TRUE - The system is booting in recovery mode
FALSE - Normal Boot


IsResetConfigMode in the OEMPort.c

Function : IsResetConfigMode

File: OEMPort.c
Description:
This function determines if the system configuration needs to be reset.
This function is called by NVRAM code.
Input:
**PeiServices - pointer to a pointer to the PEI Services Table.
*ReadVariablePpi - pointer to EFI_PEI_READ_ONLY_VARIABLE2_PPI PPI. The
      pointer can be used to read and enumerate existing NVRAM
      variables.
Output:
TRUE - Reset Configuration condition is detected
FALSE - Reset Configuration condition is not detected
Notes:
This routine is called very early, prior to SBPEI and NBPEI


NoConfigChanges in the OEMPort.c

Function : NoConfigChanges

File: OEMPort.c
Description:
This function determines if the system has not been opened since the
last boot.  Chassis Intrusion sensor used
Input:
**PeiServices - pointer to the Pei Services function and data structure
Output:
TRUE - The Chassis has not been opened
FALSE - The Chassis has been opened


OEM_Get4080PinCableStatus in the OEMPort.c

Function : OEM_Get4080PinCableStatus

File: OEMPort.c
Description:
Detect whether 40/80 pin cable is connected.
Input:
*PciIO    PCI I/O protocol pointer
Channel   Channel information
Output:
TRUE  80 Pin cable connected
FALSE 40 Pin Cable connected
Notes:
Make use of PciIO protocol to distinguish between multiple IDE controllers.


PreserveSetupPassword in the OEMPort.c

Function : PreserveSetupPassword

File: OEMPort.c
Description:
Save the Setup Password
Input:
EFI_PEI_SERVICES                        **PeiServices,
CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI   *ReadVariablePpi
Output:
NONE
Returns:
NONE


OemSetup.c

Description:
OEM Template Setup Routines

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

Function | Description
InitBoardStrings | This function initializes the board related setup option values


InitBoardStrings in the OemSetup.c

Function : InitBoardStrings

File: OemSetup.c
Description:
This function initializes the board related setup option values
Input:
HiiHandle - Handle to HII database
Class - Indicates the setup class
Output:
None


ReportFV2.c

Description:
Implementation of flexible ROM layout infrastructure support

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

Function | Description
CheckBeforePublishing | Function to verify if FvPPI should be installed. On recovery only PPI for FV with DXE_CORE FFS should be installed from recovery capsule
CreateFvHob | Function to create FV hob for given ROM layout unit
CreateFvHob2 | Function to create FV hob type 2 for given ROM layout unit
CreateFvInfoPpi | Function to install FwVolume info PPI for given ROM layout unit
EfiReadSection | Function to read section of specific type from given FFS file
FindFvHob | Function to find FV Hob for corresponding ROM layout unit
GetRomLayout | Function to read ROM_LAYOUT data from FFS file
InitRecovery | Function to initialize recovery process
ProcessDxeFvInDxeIplHook | Porting hook to support OEM-specific FV validation control flow before passing control to DXE
ProcessFvBeforePublishingHook | Porting hook to support OEM-specific FV validation control flow
PublishFv | Function to publish Firmware Volume for corresponding ROM layout unit
PublishNestedFv | Function to publish Nested Firmware Volume for corresponding ROM layout unit
RelocateFv | Function to relocate Firmware Volume into memory for corresponding ROM layout unit
RemoveFvHob | Function to remove FV Hob for corresponding ROM layout unit
ReportFV2Dxe | Function to publish PEI Firmware Volumes in PEI phase right before passing control to DXE core
ReportFV2Pei | Function to publish PEI Firmware Volumes early in PEI phase
ReportFV2PeiAfterMem | Function to publish PEI Firmware Volumes in PEI phase after memory is available
VerifyFwVolume | Function to verify that FV is not corrupted


CheckBeforePublishing in the ReportFV2.c

Function : CheckBeforePublishing

File: ReportFV2.c
Description:
Function to verify if FvPPI should be installed.
On recovery only PPI for FV with DXE_CORE FFS should be installed
from recovery capsule
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN EFI_FIRMWARE_VOLUME_HEADER *Fv - pointer to FV to check
Output:
EFI_SUCCESS if FV should be published, EFI_ERROR otherwise


CreateFvHob in the ReportFV2.c

Function : CreateFvHob

File: ReportFV2.c
Description:
Function to create FV hob for given ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit to process
Output:
EFI_SUCCESS if Hob created successfully


CreateFvHob2 in the ReportFV2.c

Function : CreateFvHob2

File: ReportFV2.c
Description:
Function to create FV hob type 2 for given ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit to process
IN EFI_GUID *FvName - pointer to FV name
IN EFI_GUID *FfsName - pointer to parent FFS file
Output:
EFI_SUCCESS if Hob created successfully


CreateFvInfoPpi in the ReportFV2.c

Function : CreateFvInfoPpi

File: ReportFV2.c
Description:
Function to install FwVolume info PPI for given ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit to process
IN EFI_GUID *FvName - pointer to parent FV name
IN EFI_GUID *FfsName - pointer to parent FFS file
Output:
EFI_SUCCESS if PPI installed


EfiReadSection in the ReportFV2.c

Function : EfiReadSection

File: ReportFV2.c
Description:
Function to read section of specific type from given FFS file
Input:
IN EFI_PEI_SERVICES **ppPS - pointer to PEI services
IN EFI_SECTION_TYPE SectionType - type of section to read
IN EFI_FFS_FILE_HEADER *pFile - pointer to FFS file to read from
OUT VOID **ppData - pointer for output buffer
Output:
EFI_SUCCESS if reading completed successfully


FindFvHob in the ReportFV2.c

Function : FindFvHob

File: ReportFV2.c
Description:
Function to find FV Hob for corresponding ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit to find matching Hob
OUT EFI_HOB_FIRMWARE_VOLUME **FvHob - pointer to output buffer
Output:
EFI_SUCCESS if corresponding Hob found


GetRomLayout in the ReportFV2.c

Function : GetRomLayout

File: ReportFV2.c
Description:
Function to read ROM_LAYOUT data from FFS file
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
OUT ROM_AREA **Layout - pointer to output buffer
Output:
EFI_SUCCESS if ROM layout is retrieved


InitRecovery in the ReportFV2.c

Function : InitRecovery

File: ReportFV2.c
Description:
Function to initialize recovery process
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
Output:
None


ProcessDxeFvInDxeIplHook in the ReportFV2.c

Function : ProcessDxeFvInDxeIplHook

File: ReportFV2.c
Description:
Porting hook to support OEM-specific FV validation control flow
before passing control to DXE
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN OUT ROM_AREA *Area - pointer to ROM Area, which contains FV
                       to be processed
Output:
TRUE if validation is passed, FALSE otherwise


ProcessFvBeforePublishingHook in the ReportFV2.c

Function : ProcessFvBeforePublishingHook

File: ReportFV2.c
Description:
Porting hook to support OEM-specific FV validation control flow
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN OUT ROM_AREA *Area - pointer to ROM Area, which contains FV
                       to be processed
IN UINT32 FvType - FV type
Output:
TRUE if validation is passed, FALSE otherwise


PublishFv in the ReportFV2.c

Function : PublishFv

File: ReportFV2.c
Description:
Function to publish Firmware Volume for corresponding ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit describing FV
IN BOOLEAN Nested - TRUE if published FV is nested, FALSE otherwise
Output:
EFI_SUCCESS if FV published successfully


PublishNestedFv in the ReportFV2.c

Function : PublishNestedFv

File: ReportFV2.c
Description:
Function to publish Nested Firmware Volume for corresponding ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit describing FV
Output:
EFI_SUCCESS if FV published successfully


RelocateFv in the ReportFV2.c

Function : RelocateFv

File: ReportFV2.c
Description:
Function to relocate Firmware Volume into memory for corresponding
ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit describing FV
Output:
EFI_SUCCESS if FV relocated successfully


RemoveFvHob in the ReportFV2.c

Function : RemoveFvHob

File: ReportFV2.c
Description:
Function to remove FV Hob for corresponding ROM layout unit
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN ROM_AREA *Area - pointer to ROM layout unit to remove matching Hob
                   or NULL to remove all FV Hobs
Output:
None


ReportFV2Dxe in the ReportFV2.c

Function : ReportFV2Dxe

File: ReportFV2.c
Description:
Function to publish PEI Firmware Volumes in PEI phase right before
passing control to DXE core
Input:
IN VOID* RecoveryCapsule - pointer to recovery capsule if in Recovery mode
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
Output:
EFI_SUCCESS if all FVs published successfully


ReportFV2Pei in the ReportFV2.c

Function : ReportFV2Pei

File: ReportFV2.c
Description:
Function to publish PEI Firmware Volumes early in PEI phase
Input:
IN EFI_FFS_FILE_HEADER *FfsHeader - pointer to image FFS file
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
Output:
EFI_SUCCESS if all FVs published successfully


ReportFV2PeiAfterMem in the ReportFV2.c

Function : ReportFV2PeiAfterMem

File: ReportFV2.c
Description:
Function to publish PEI Firmware Volumes in PEI phase after
memory is available
Input:
IN EFI_FFS_FILE_HEADER *FfsHeader - pointer to image FFS file
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
Output:
EFI_SUCCESS if all FVs published successfully


VerifyFwVolume in the ReportFV2.c

Function : VerifyFwVolume

File: ReportFV2.c
Description:
Function to verify that FV is not corrupted
Input:
IN EFI_PEI_SERVICES **PeiServices - pointer to PEI services
IN EFI_FIRMWARE_VOLUME_HEADER *Fv - pointer to FV to verify
Output:
EFI_SUCCESS if verification passed


Security.vfr

Description:
Setup script for the "Security" top level setup screen


Setup.c

Description:
This file contains supporting functions, data types and data that
correspond to the Setup driver.

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

Function | Description
Callback | This function is used to identify the function to call when an interactive item has been triggered in the setup browser based on the information in the Callback protocol and the SetupCallBack Array
GetFirstIsoLang | This function returns first language from passed ISO list
GetFirstRfcLang | This function returns first language from passed RFC list
GetLangVariable | This function returns language variable stored in NVRAM
InitLanguages | Determine the current language that will be used based on language related EFI Variables.
IsoListToRfcList | This function coverts list of ISO language tags to a list of RFC language tags
IsoToRfc | This function takes a language string based on the ISO standard and returns a string that represents the same language in the RFC standard
IsVarisbleExist | Helper routine that checks if a given variable exists
RfcListToIsoList | This function coverts list of RFC language tags to a list of ISO language tags
RfcToIso | This function takes a language string based on the RFC standard and returns a string that represents the same language in the ISO standard
SetLang | This function stores "PlatformLang" variable
SetLangCodes | This function stores "PlatformLangCodes" variable
SetupCallback | This function publishes all HII resources and initializes the HII databases There is a token ALWAYS_PUBLISH_HII_RESOURCES that would call this function on every boot not just when the user tries to enter Setup
SetupEntry | This function is the entry point for the Setup driver. It registers the the Setup Callback functions and then it checks if the "Setup" and "Lang" variables are defined. If not it is a first boot (first flash or first boot after BIOS upgrade) and these variables will need to be defined. If "Setup" and "Lang" variables are defined, then make sure the language variables all agree and then return
SynchornizeLanguageVariables | This function makes sure that all the Language variable are set to the same value.

The following tables are used in the file: Setup.c.

Table | Description
InitMain | This function updates a few generic BIOS strings that are used on the setup pages.
InitString | This function updates a string defined by the StrRef Parameter in the HII database with the string and data passed in.
InitStrings | This function is called for each Formset and initializes strings based on the porting provided and then updates the HII database
RevisionToString | This function converts spec revision number to string
SETUP_CALLBACK | These Data Structure define a structure used to match a specific Callback Protocol to an HII Form through the use of Class and SubClass values
SETUP_ITEM_CALLBACK | This Data Structure is used by the setup infrastructure to define Callback functions that should be used for interacting with setup forms or individual questions.
SetupCallBack | This array contains the different Hii packages that are used in the system

The following descriptions are used in the file: Setup.c.

Header | Description
Callback_Protocols | These Variable definitions define the different formsets and what Callback protocol should be used for each one
FormsetVisible | This array contains information that indicates to the system whether or not a formset is visible when Setup is loaded. Reference: SetupCallBack


Callback in the Setup.c

Function : Callback

File: Setup.c
Description:
This function is used to identify the function to call when an interactive
item has been triggered in the setup browser based on the information in
the Callback protocol and the SetupCallBack Array
Input:
IN EFI_FORM_CALLBACK_PROTOCOL *This - Pointer to the instance of the Callback
                         protocol
IN UINT16 KeyValue - Unique value that defines the type of data to expect in
        the Data parameter
IN EFI_IFR_DATA_ARRAY *Data - Data defined by KeyValue Parameter
OUT EFI_HII_CALLBACK_PACKET **Packet - Data passed from the Callback back to
                          the setup Browser
Output:
EFI_SUCCESS


Callback_Protocols in the Setup.c

General : Callback_Protocols

File: Setup.c
Description:
These Variable definitions define the different formsets and what Callback
protocol should be used for each one


FormsetVisible in the Setup.c

General : FormsetVisible

File: Setup.c
Description:
This array contains information that indicates to the system whether or not
a formset is visible when Setup is loaded.

Reference:
SetupCallBack
Notes:
Formset index in this array should match with the formset index in the
SetupCallBack array


GetFirstIsoLang in the Setup.c

Function : GetFirstIsoLang

File: Setup.c
Description:
This function returns first language from passed ISO list
Input:
IN CHAR8 *IsoList - string that represents list of one or more ISO languages
OUT UINTN *LangSize - pointer to store size of output buffer
Output:
CHAR8 * - A string that contains first language


GetFirstRfcLang in the Setup.c

Function : GetFirstRfcLang

File: Setup.c
Description:
This function returns first language from passed RFC list
Input:
IN CHAR8 *RfcList - string that represents list of one or more RFC languages
OUT UINTN *LangSize - pointer to store size of output buffer
Output:
CHAR8 * - A string that contains first language


GetLangVariable in the Setup.c

Function : GetLangVariable

File: Setup.c
Description:
This function returns language variable stored in NVRAM
Input:
IN CHAR16 *VariableName - Human-readable name of language variable
EFI_GUID *VariableGuid - pointer to variable GUID
UINTN *VariableSize - pointer to store output buffer size
Output:
CHAR8 * - A string that contains list of languages supported by platform


InitLanguages in the Setup.c

Function : InitLanguages

File: Setup.c
Description:
Determine the current language that will be used based on language
related EFI Variables.
Input:
EFI_HII_HANDLE HiiHandle - handle that that identifies used Hii Package
Output:
None
Notes:


InitMain in the Setup.c

Table : InitMain

File: Setup.c
Description:
This function updates a few generic BIOS strings that are used on the
setup pages.
Input:
EFI_HII_HANDLE HiiHandle - handle that identifies used Hii Package
Output:
None
Notes:


InitString in the Setup.c

Table : InitString

File: Setup.c
Description:
This function updates a string defined by the StrRef Parameter in the HII
database with the string and data passed in.
Input:
EFI_HII_HANDLE HiiHandle - handle that identifies used Hii Package
STRING_REF StrRef - String Token defining string in the database to update
CHAR16 *sFormat - string with format descriptors in it
... - extra paramaters that define data that correlate to the format
descriptors in the String
Output:
None
Notes:


InitStrings in the Setup.c

Table : InitStrings

File: Setup.c
Description:
This function is called for each Formset and initializes strings based on
the porting provided and then updates the HII database
Input:
EFI_HII_HANDLE HiiHandle - handle that that identifies used Hii Package
CALLBACK_INFO *pCallBackFound - pointer to an instance of CALLBACK_INFO
                   that works with HiiHandle
Output:
None
Notes:


IsoListToRfcList in the Setup.c

Function : IsoListToRfcList

File: Setup.c
Description:
This function coverts list of ISO language tags to a list of RFC language tags
Input:
IN CHAR8 *IsoList - string that represents list of one or more ISO language strings
IN UINTN IsoListSize - number of ISO entries in the list
OUT UINTN *RfcListSize - pointer to store size of output buffer
Output:
VOID * - String that represents the RFC version of the ISO language codes passed
Notes:
ISO tags are 3 characters in size
RFC tags are 42(max) characters plus a ';' that ends each tag


IsoToRfc in the Setup.c

Function : IsoToRfc

File: Setup.c
Description:
This function takes a language string based on the ISO standard and
returns a string that represents the same language in the RFC standard
Input:
IN CHAR8 *IsoLang - ASCII string that represents language in the ISO format
Output:
CHAR8 * - String that represents RFC version of the ISO language code passed
Notes:


IsVarisbleExist in the Setup.c

Function : IsVarisbleExist

File: Setup.c
Description:
Helper routine that checks if a given variable exists
Input:
IN CHAR16 *VariableName - Name of the variable to check on
IN EFI_GUID *VendorGuid - GUID of the variable to check on
Output:
TRUE - if variable exsits
FALSE - if variable does not exist


RevisionToString in the Setup.c

Table : RevisionToString

File: Setup.c
Description:
This function converts spec revision number to string
Input:
OUT CHAR16 *String - pointer to string to store output
IN UINT32 Revision - spec revision number
Output:
None


RfcListToIsoList in the Setup.c

Function : RfcListToIsoList

File: Setup.c
Description:
This function coverts list of RFC language tags to a list of ISO language tags
Input:
IN CHAR8 *RfcList - string that represents list of one or more RFC language strings
IN UINTN RfcListSize - number of RFC entries in the list
OUT UINTN *IsoListSize - pointer to store size of output buffer
Output:
CHAR8 * - A string that corresponds to the ISO version of the RFC language codes
passed
Notes:
ISO tags are 3 characters in size
RFC tags are 42(max) characters plus a ';' that ends each tag


RfcToIso in the Setup.c

Function : RfcToIso

File: Setup.c
Description:
This function takes a language string based on the RFC standard and
returns a string that represents the same language in the ISO standard
Input:
IN CHAR8 *RfcLang - ASCII string that represents a language in RFC standard
Output:
CHAR8 * - String that represents ISO version of the RFC language code passed
Notes:


SetLang in the Setup.c

Function : SetLang

File: Setup.c
Description:
This function stores "PlatformLang" variable
Input:
IN CHAR16 *VariableName - Human-readable name of language variable
CHAR8* LangBuffer - pointer to alanguage code to store
UINTN LangBufferSize - size of the passed buffer
Output:
None


SetLangCodes in the Setup.c

Function : SetLangCodes

File: Setup.c
Description:
This function stores "PlatformLangCodes" variable
Input:
IN CHAR16 *VariableName - Human-readable name of language variable
CHAR8* LangBuffer - pointer to list of language codes to store
UINTN LangBufferSize - size of the passed buffer
Output:
None


SETUP_CALLBACK in the Setup.c

Table : SETUP_CALLBACK

File: Setup.c
Fields:

Type | Name | Description
EFI_FORM_CALLBACK_PROTOCOL | Callback | - Callback Protocol Instance for the
Class | and | SubClass defined below
UINT16 | Class | - Value defined to identify a particular Hii form
UINT16 | SubClass | - Secondary value used to uniquely define the an Hii form

Description:
These Data Structure define a structure used to match a specific
Callback Protocol to an HII Form through the use of Class and SubClass
values
Notes:


SETUP_ITEM_CALLBACK in the Setup.c

Table : SETUP_ITEM_CALLBACK

File: Setup.c
Fields:

Type | Name | Description
UINT16 | Class | - Primary identification value of an Hii Formset
UINT16 | SubClass | - Secondary identification value of an Hii Formset
UINT16 | Key | - A unique value that identifies a specific item on a setup form
SETUP_ITEM_CALLBACK_HANDLER | *UpdateItem | - function used to update an item
defined | by | the Class, SubClass and Key parameters

Description:
This Data Structure is used by the setup infrastructure to define
Callback functions that should be used for interacting with setup forms
or individual questions.
Notes:


SetupCallBack in the Setup.c

Table : SetupCallBack

File: Setup.c
Fields:

Type | Name | Description
EFI_GUID* | pGuid | - GUID used for future references
EFI_FORM_CALLBACK_PROTOCOL* | pFormCallback | - Structure that defines the Callback
that | occurs | for this package
UINT16 | Class | - Formset Class of the Form Callback Protocol passed in
UINT16 | SubClass | - Formset Sub Class of the Form Callback Protocol passed in
EFI_HII_HANDLE | HiiHandle | - handle that identifies used Hii Package

Description:
This array contains the different Hii packages that are used in the system
Notes:
The HiiHandle is updated in the LoadResources function when the Hii Packages
are loaded


SetupCallback in the Setup.c

Function : SetupCallback

File: Setup.c
Description:
This function publishes all HII resources and initializes the HII databases
There is a token ALWAYS_PUBLISH_HII_RESOURCES that would call this function
on every boot not just when the user tries to enter Setup
Input:
IN EFI_EVENT Event - Event that was triggered
IN VOID *Context - data pointer to context information
Output:
None
Notes:


SetupEntry in the Setup.c

Function : SetupEntry

File: Setup.c
Description:
This function is the entry point for the Setup driver. It registers the
the Setup Callback functions and then it checks if the
"Setup" and "Lang" variables are defined. If not it is a first boot
(first flash or first boot after BIOS upgrade) and these variables will
need to be defined.
If "Setup" and "Lang" variables are defined, then make sure the language
variables all agree and then return
Input:
IN EFI_HANDLE ImageHandle - Image handle
IN EFI_SYSTEM_TABLE *SystemTable - pointer to the UEFI System Table
Output:
EFI_SUCCESS
Notes:


SynchornizeLanguageVariables in the Setup.c

Function : SynchornizeLanguageVariables

File: Setup.c
Description:
This function makes sure that all the Language variable are set to the
same value.
Input:
None
Output:
None
Notes:
Uses the following NVRAM variables
LangCodes, PlatformLangCodes, Lang, PlatformLang, LastLang


Setup.dxs

Description:
Dependancy expression for the Setup component


Setup.mak

Description:
This file contains the build commands for the setup component.


SetupPrivate.h

Description:
Internal header of the Setup Component


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.

  • A
  • C
  • D
  • E
  • F
  • G
  • I
  • N
  • O
  • P
  • R
  • S
  • V


Functions in Alphabetical Order

A

Table | Description
AmiSetupGetCallbackParameters | This function returns Callback parameters from FormBrowser
AmiSetupGetCallbacks | This function returns all registered callbacks
AmiSetupRegisterCallback | This function registers setup control Callback
AmiSetupUnRegisterCallback | This function unregisters previously registered Callback


Functions in Alphabetical Order

C

Function | Description
Callback | This function is used to identify the function to call when an interactive item has been triggered in the setup browser based on the information in the Callback protocol and the SetupCallBack Array
CallOneParamHooks | This function calls a list of function defined at build time and return whether the functions completed successfully or not
CallTwoParamHooks | This function calls a list of function defined at build time and return whether the functions completed successfully or not
CheckBeforePublishing | Function to verify if FvPPI should be installed. On recovery only PPI for FV with DXE_CORE FFS should be installed from recovery capsule
CreateFvHob | Function to create FV hob for given ROM layout unit
CreateFvHob2 | Function to create FV hob type 2 for given ROM layout unit
CreateFvInfoPpi | Function to install FwVolume info PPI for given ROM layout unit
CsmPlatform_GetAtapiDeviceType | This function is the member function GetAtapiDeviceType of the CsmPlatformProtocol. Until ported, this function returns EFI_UNSUPPORTED
CsmPlatform_PostProcessOpRom | This function is member function PostProcessOpRom of the CsmPlatformProtocol.
CsmPlatform_PreProcessOpRom | This function is the member function PreProcessOpRom of the CsmPlatformProtocol.


Functions in Alphabetical Order

D

Function | Description
DxeIsNvramDataCompatible | This function determines if the current NVRAM data (mainly Setup-related variables) is compatible with the current firmware. This function is called by NVRAM Driver.


Functions in Alphabetical Order

E

Function | Description
EfiReadSection | Function to read section of specific type from given FFS file


Functions in Alphabetical Order

F

Function | Description
FindFvHob | Function to find FV Hob for corresponding ROM layout unit


Functions in Alphabetical Order

G

Function | Description
GetFirstIsoLang | This function returns first language from passed ISO list
GetFirstRfcLang | This function returns first language from passed RFC list
GetLangVariable | This function returns language variable stored in NVRAM
GetRomLayout | Function to read ROM_LAYOUT data from FFS file


Functions in Alphabetical Order

I

Function | Description
InitBoardStrings | This function initializes the board related setup option values
InitLanguages | Determine the current language that will be used based on language related EFI Variables.
InitRecovery | Function to initialize recovery process
InstallCsmPlatformProtocol | This function is the entry point for the OEM DXE portion of the Board template driver
IsCtrlHomePressed | This function detects if the Ctrl + Home key press has been made. Is function is only included if KBC_SUPPORT is enabled. It enables the keyboard checks for the Ctrl + Home key press and then disables the keyboard
IsDefaultConfigMode | This function determines if the system should boot with the default configuration. This function is called by NVRAM code. If boot with default configuration is detected, default values for NVRAM variables are used.
IsMfgMode | This function determines if the system in in manufacturing mode. This function is called by NVRAM code. If system is in manufacturing mode, manufacturing values for NVRAM variables are used.
IsNvramDataCompatible | This function determines if the current NVRAM data (mainly Setup-related variables) is compatible with the current firmware.
IsoListToRfcList | This function coverts list of ISO language tags to a list of RFC language tags
IsoToRfc | This function takes a language string based on the ISO standard and returns a string that represents the same language in the RFC standard
IsRecovery | This function determines if the system is supposed to boot in recovery mode
IsResetConfigMode | This function determines if the system configuration needs to be reset. This function is called by NVRAM code.
IsVarisbleExist | Helper routine that checks if a given variable exists

Table | Description
InitAmiSetupProtocol | This function installs AMI Setup protocol
InitMain | This function updates a few generic BIOS strings that are used on the setup pages.
InitString | This function updates a string defined by the StrRef Parameter in the HII database with the string and data passed in.
InitStrings | This function is called for each Formset and initializes strings based on the porting provided and then updates the HII database


Functions in Alphabetical Order

N

Function | Description
NoConfigChanges | This function determines if the system has not been opened since the last boot. Chassis Intrusion sensor used


Functions in Alphabetical Order

O

Function | Description
OEM_Get4080PinCableStatus | Detect whether 40/80 pin cable is connected.
OEMDXE_Init | This function is the entry point for this DXE. This function programs OEM defined values in the DXE stage
OEMPEI_Init | This function is the entry point for this PEI. This function programs OEM related changes common to complete board. This might involve programming SB/NB & SIO


Functions in Alphabetical Order

P

Function | Description
PreserveSetupPassword | Save the Setup Password
ProcessDxeFvInDxeIplHook | Porting hook to support OEM-specific FV validation control flow before passing control to DXE
ProcessFvBeforePublishingHook | Porting hook to support OEM-specific FV validation control flow
PublishFv | Function to publish Firmware Volume for corresponding ROM layout unit
PublishNestedFv | Function to publish Nested Firmware Volume for corresponding ROM layout unit


Functions in Alphabetical Order

R

Function | Description
RelocateFv | Function to relocate Firmware Volume into memory for corresponding ROM layout unit
RemoveFvHob | Function to remove FV Hob for corresponding ROM layout unit
ReportFV2Dxe | Function to publish PEI Firmware Volumes in PEI phase right before passing control to DXE core
ReportFV2Pei | Function to publish PEI Firmware Volumes early in PEI phase
ReportFV2PeiAfterMem | Function to publish PEI Firmware Volumes in PEI phase after memory is available
RestoreSetupPassword | Restore previous Password
RfcListToIsoList | This function coverts list of RFC language tags to a list of ISO language tags
RfcToIso | This function takes a language string based on the RFC standard and returns a string that represents the same language in the ISO standard

Table | Description
RevisionToString | This function converts spec revision number to string


Functions in Alphabetical Order

S

Function | Description
SetLang | This function stores "PlatformLang" variable
SetLangCodes | This function stores "PlatformLangCodes" variable
SetupCallback | This function publishes all HII resources and initializes the HII databases There is a token ALWAYS_PUBLISH_HII_RESOURCES that would call this function on every boot not just when the user tries to enter Setup
SetupEntry | This function is the entry point for the Setup driver. It registers the the Setup Callback functions and then it checks if the "Setup" and "Lang" variables are defined. If not it is a first boot (first flash or first boot after BIOS upgrade) and these variables will need to be defined. If "Setup" and "Lang" variables are defined, then make sure the language variables all agree and then return
SignalProtocolEvent | Internal function that installs/uninstall protocol with a specified GUID. Such protocols can be used as event signaling mechanism.
SynchornizeLanguageVariables | This function makes sure that all the Language variable are set to the same value.

Table | Description
SETUP_CALLBACK | These Data Structure define a structure used to match a specific Callback Protocol to an HII Form through the use of Class and SubClass values
SETUP_ITEM_CALLBACK | This Data Structure is used by the setup infrastructure to define Callback functions that should be used for interacting with setup forms or individual questions.
SetupCallBack | This array contains the different Hii packages that are used in the system


Functions in Alphabetical Order

V

Function | Description
VerifyFwVolume | Function to verify that FV is not corrupted


General Information

Header | Description
Callback_Protocols | These Variable definitions define the different formsets and what Callback protocol should be used for each one
FormsetVisible | This array contains information that indicates to the system whether or not a formset is visible when Setup is loaded. Reference: SetupCallBack