American Megatrends, Inc.

FixedBootOrder

Copyright

Release Notes

© American Megatrends, Inc.


Release Notes - NDA Required

Component Information:
Component Title: FixedBootOrder
Component Reference Name: FixedBootOrder Demo
Component Type: eModule
Release Date: 2011-03-22
Source Control Label: 4.6.4_FixedBootOrder_07
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo

Dependencies
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_02_1205_Beta
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
Filename | Description
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.sd | Form set to control boot priority
FixedBootOrder.uni | Unicode strings used for TSE
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FBOHii.c | HiiDatabase Related Functions
FBOHii.h | FBOHii Function are defined in this File

Non-Compiled BIN and LIB File(s) in Flavor:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
1.Remove files boot.vfr and setup.c
2.Use ELINK SetupItemCallbacks in UEFI2.1
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #51709 - FixedBootOrder should not change any core files, also include OEM changes done before.
Files changed for EIP fixes:
FixedBootOrder.sdl (EIP #51709)
FixedBootOrder.sd (EIP #51709)
FixedBootOrder.c (EIP #51709)
FBOSetOrder.c (EIP #51709)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
Link to old Release History.htm files


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2011-06-17
Source Control Label: 4.6.4_FixedBootOrder_08
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo

Dependencies
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_02_1205_Beta or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
Component file list
Filename | Description
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.sd | Form set to control boot priority
FixedBootOrder.uni | Unicode strings file
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FBOHii.c | HiiDatabase Related Functions
FBOHii.h | FBOHii Function are defined in this File

Non-Compiled BIN and LIB File(s) in Flavor:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
None
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #58806 - Disabled & Enable boot device will hang up.
EIP #57950 - Fdd disappear under OS if BBS order disable FDD.
EIP #57727 - It always increase one device while reboot in F12 (Boot device menu) even you only insert one HDD in it.
EIP #57272 - S4 resume fail.
EIP #54209 - NetBootHotKey eModule Functionality with TSE 1210 Verification Check.
EIP #35562 - Boot#### variables are not read and created with upper case characters.
Files changed for EIP fixes:
FBOSetOrder.c (EIP #35562, #54209, #57272, #57727, #57950)
FixedBootOrder.c (EIP #35562, #58806)
FixedBootOrder.h (EIP #35562)
FixedBootOrder.sdl (EIP #57950)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_07


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2011-11-21
Source Control Label: 4.6.4.1_FixedBootOrder_09
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo

Dependencies
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_02_1205_Beta or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
Fixed Boot Order infrastructure implemented in Aptio Core allows custom handling of available boot options to meet specific customer needs. Custom boot behavior may include different requests, such as always boot from specific device, default support of various kinds of grouping of boot devices (SATA drives,USB CDROM, USB HDD drives, USB Floppy drives) and a lot more. Current implementation takes care of discovering all bootable devices in system, preliminary prioritize of them and also storing final order in NVRAM. OEM engineer only required implementing complimentary sorting of boot devices, to create desirable order.
Component file list
Filename | Description
FixedBootOrder.cif | Component Information File
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.sd | Form set to control boot priority
FixedBootOrder.uni | Unicode strings file
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FBOHii.c | HiiDatabase Related Functions
FBOHii.h | FBOHii Function are defined in this File

Non-Compiled BIN and LIB File(s) in Flavor:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
None
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #72633 - CHM for FixedBootOrder Has No Component Description.
Files changed for EIP fixes:
FixedBootOrder.chm (EIP #72633)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_08


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2012-06-07
Source Control Label: 4.6.4.1_FixedBootOrder_10
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_02_1205_Beta or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: Board
Dependent Component Reference Name: Board
Dependent Source Control Label: 4.6.5.0_Board_27
Dependent Source Control Location: SS: $/Alaska/BIN/Board

File Dependencies
N0NE

Protocol Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
None
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #91056 - FixedBootOrder Module needs support CsmOptOut Launch CSM is Never.
EIP #87316 - FixedBootOrder Module needs support CsmOptOut Boot Filter UEFI Only. Set BBS Table BootPriority to BBS_IGNORE_ENTRY.
EIP #87891 - When Manufacturing defaults are loaded, all the Fixed Boot Order device entries show CD/DVD option. In addition, when AMIBCP is used to modify defaults for the Failsafe entries, the CD/DVD appears multiple times. To fix the issue, "MANUFACTURING" flag was defined for each boot device entry in FixedBootOrder.sd.
Files changed for EIP fixes:
FBOSetOrder.c FixedBootOrder.c (EIP #91056)
FBOSetOrder.c (EIP #87316)
FixedBootOrder.sd (EIP #87891)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2012-06-13
Source Control Label: 4.6.4.1_FixedBootOrder_11
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_02_1205_Beta or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: Board
Dependent Component Reference Name: Board
Dependent Source Control Label: 4.6.5.0_Board_27
Dependent Source Control Location: SS: $/Alaska/BIN/Board

File Dependencies
N0NE

Protocol Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #92141 - build error with TSE 1227.
Files changed for EIP fixes:
FBOSetOrder.c (EIP #92141)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_10
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2012-06-28
Source Control Label: 4.6.5.1_FixedBootOrder_12
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_15_1226 or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: TseDefaultBootOrder
Dependent Component Reference Name: TseDefaultBootOrder
Dependent Source Control Label: 4.6.4.1_DefBootOrder_1.2 or Latest
Dependent Source Control Location: SS: $/Alaska/BIN/Modules/BootOptionPolicies/TseDefaultBootOrder

File Dependencies
N0NE

Protocol Dependencies
N0NE
Component Description:
Fixed Boot Order infrastructure implemented in Aptio Core allows custom handling of available boot options to meet specific customer needs. Custom boot behavior may include different requests, such as always boot from specific device, default support of various kinds of grouping of boot devices (SATA drives,USB CDROM, USB HDD drives, USB Floppy drives) and a lot more. Current implementation takes care of discovering all bootable devices in system, preliminary prioritize of them and also storing final order in NVRAM. OEM engineer only required implementing complimentary sorting of boot devices, to create desirable order.
Component file list
Filename | Description
FixedBootOrder.cif | Component Information File
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FixedBootOrderHII.c | HiiDatabase Related Functions
FixedBootOrderHII.h | FixedBootOrder HiiDatabase Function are defined in this File
FixedBootOrderTSE.h | TSE Related Functions

ModulePart Name: Default FixedBootOrder
ModulePart Description: Default setting module part for Fixed Boot Order
Filename | Description
DefaultFixedBootOrder.cif | Component Information File
DefaultFixedBootOrder.sdl | SDL file
DefaultFixedBootOrder.c | Main file
DefaultFixedBootOrder.uni | Unicode string file
DefaultFixedBootOrder.sd | FixedBootOrder setup options
DefaultFixedBootOrder.mak | Make file becomes part of the BIOS build process
ModulePart Name: Style - Up/Down move mode
ModulePart Description: Use up/down style to change boot option priority
Filename | Description
FixedBootOrderStyle.cif | Component Information File
FixedBootOrderStyle.sdl | SDL file
FixedBootOrderStyle.c | Main file
FixedBootOrderStyle.mak | Make file becomes part of the BIOS build process
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #56828 - Make a new FixedBootOrder module by utilizing 4.6.4.1 BDS functionality.
Files changed for EIP fixes:
FBOSetOrder.c (EIP #56828)
FixedBootOrder.c (EIP #56828)
FixedBootOrderHII.c (EIP #56828)
FixedBootOrderTSE.c (EIP #56828)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
(2). add FixedBootOrder item callback in setup.c follow TAG FixedBootOrder
function: Callback

        if (SetupCallBack[i].Class == pCallback->Class && SetupCallBack[i].SubClass == pCallback->SubClass)
        {
            SETUP_ITEM_CALLBACK *pItemCallback = SetupItemCallback;
            while(pItemCallback->UpdateItem)
            {
                if (    pItemCallback->Class == pCallback->Class
                    &&  pItemCallback->SubClass == pCallback->SubClass
                    &&  pItemCallback->Key == KeyValue
                ){
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
#if EFI_SPECIFICATION_VERSION>0x20000
                    if (Status != EFI_UNSUPPORTED) break;
#endif
                }

#if FIXED_BOOT_ORDER_SUPPORT              //(FixedBootOrder)>
                if( pItemCallback->Key == 0x1001 )
                {
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
                }
#endif                                    //<(FixedBootOrder)
                pItemCallback++;
            }
        }
(3). Use 4.6.2_TSE_2_14_1219 label update file list
EDK\MiniSetup\uefi2.1\Hii.c
RSC file version 28
Compiler error with call function SETUP_DEBUG_UEFI
mask all function SETUP_DEBUG_UEFI
EDK\MiniSetup\uefi2.1\Parse.c
RSC file version 36
EDK\MiniSetup\BootOnly\Boot.c
RSC file version 24
EDK\MiniSetup\BootOnly\Bbs.c
RSC file version 21
EDK\MiniSetup\TseAdvanced\Special.c
RSC file version 26
Compiler error: funtion UefiSetHelpField undefine.
mask from line 1186 to 1193.
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_11
FixedBootOrder_10
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2012-11-09
Source Control Label: 4.6.5.1_FixedBootOrder_13
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_15_1226 or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: TseDefaultBootOrder
Dependent Component Reference Name: TseDefaultBootOrder
Dependent Source Control Label: 4.6.4.1_DefBootOrder_1.2 or Latest
Dependent Source Control Location: SS: $/Alaska/BIN/Modules/BootOptionPolicies/TseDefaultBootOrder

File Dependencies
N0NE

Protocol Dependencies
N0NE
Component Description:
Fixed Boot Order infrastructure implemented in Aptio Core allows custom handling of available boot options to meet specific customer needs. Custom boot behavior may include different requests, such as always boot from specific device, default support of various kinds of grouping of boot devices (SATA drives,USB CDROM, USB HDD drives, USB Floppy drives) and a lot more. Current implementation takes care of discovering all bootable devices in system, preliminary prioritize of them and also storing final order in NVRAM. OEM engineer only required implementing complimentary sorting of boot devices, to create desirable order.
Component file list
Filename | Description
FixedBootOrder.cif | Component Information File
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FixedBootOrderHII.c | HiiDatabase Related Functions
FixedBootOrderHII.h | FixedBootOrder HiiDatabase Function are defined in this File
FixedBootOrderTSE.h | TSE Related Functions

ModulePart Name: Default FixedBootOrder
ModulePart Description: Default setting module part for Fixed Boot Order
Filename | Description
DefaultFixedBootOrder.cif | Component Information File
DefaultFixedBootOrder.sdl | SDL file
DefaultFixedBootOrder.c | Main file
DefaultFixedBootOrder.uni | Unicode string file
DefaultFixedBootOrder.sd | FixedBootOrder setup options
DefaultFixedBootOrder.mak | Make file becomes part of the BIOS build process
ModulePart Name: Style - Up/Down move mode
ModulePart Description: Use up/down style to change boot option priority
Filename | Description
FixedBootOrderStyle.cif | Component Information File
FixedBootOrderStyle.sdl | SDL file
FixedBootOrderStyle.c | Main file
FixedBootOrderStyle.mak | Make file becomes part of the BIOS build process
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #96232 - Support USB Floppy in UEFI mode.
EIP #99368 - WHCK - Boot from USB.
EIP #100223 - does not recognize a USB device correctly.
EIP #101408 - FxiedBootOrder for multi-language problem.
EIP #103171 - FixedBootOrder should not change setup.c after 4.6.5.4.
Files changed for EIP fixes:
FBOSetOrder.c (EIP #99368, #100223)
FixedBootOrder.c (EIP #101408,#103171)
FixedBootOrder.h (EIP #96232)
DefaultFixedBootOrder.c (EIP #96232)
DefaultFixedBootOrder.sd (EIP #96232)
DefaultFixedBootOrder.uni (EIP #96232)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
(2). Module Board label version 4.6.5.4_Board_31 below,
need add FixedBootOrder item callback in setup.c follow TAG FixedBootOrder
function: Callback

        if (SetupCallBack[i].Class == pCallback->Class && SetupCallBack[i].SubClass == pCallback->SubClass)
        {
            SETUP_ITEM_CALLBACK *pItemCallback = SetupItemCallback;
            while(pItemCallback->UpdateItem)
            {
                if (    pItemCallback->Class == pCallback->Class
                    &&  pItemCallback->SubClass == pCallback->SubClass
                    &&  pItemCallback->Key == KeyValue
                ){
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
#if EFI_SPECIFICATION_VERSION>0x20000
                    if (Status != EFI_UNSUPPORTED) break;
#endif
                }

#if FIXED_BOOT_ORDER_SUPPORT              //(FixedBootOrder)>
                if( pItemCallback->Key == 0x1001 )
                {
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
                }
#endif                                    //<(FixedBootOrder)
                pItemCallback++;
            }
        }
(3). Use 4.6.2_TSE_2_14_1219 label update file list
EDK\MiniSetup\uefi2.1\Hii.c
RSC file version 28
Compiler error with call function SETUP_DEBUG_UEFI
mask all function SETUP_DEBUG_UEFI
EDK\MiniSetup\uefi2.1\Parse.c
RSC file version 36
EDK\MiniSetup\BootOnly\Boot.c
RSC file version 24
EDK\MiniSetup\BootOnly\Bbs.c
RSC file version 21
EDK\MiniSetup\TseAdvanced\Special.c
RSC file version 26
Compiler error: funtion UefiSetHelpField undefine.
mask from line 1186 to 1193.
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_12
FixedBootOrder_11
FixedBootOrder_10
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2013-02-21
Source Control Label: 4.6.5.1_FixedBootOrder_14
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_15_1226 or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: TseDefaultBootOrder
Dependent Component Reference Name: TseDefaultBootOrder
Dependent Source Control Label: 4.6.4.1_DefBootOrder_1.2 or Latest
Dependent Source Control Location: SS: $/Alaska/BIN/Modules/BootOptionPolicies/TseDefaultBootOrder

File Dependencies
N0NE

Protocol Dependencies
N0NE
Component Description:
Fixed Boot Order infrastructure implemented in Aptio Core allows custom handling of available boot options to meet specific customer needs. Custom boot behavior may include different requests, such as always boot from specific device, default support of various kinds of grouping of boot devices (SATA drives,USB CDROM, USB HDD drives, USB Floppy drives) and a lot more. Current implementation takes care of discovering all bootable devices in system, preliminary prioritize of them and also storing final order in NVRAM. OEM engineer only required implementing complimentary sorting of boot devices, to create desirable order.
Component file list
Filename | Description
FixedBootOrder.cif | Component Information File
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FixedBootOrderHII.c | HiiDatabase Related Functions
FixedBootOrderHII.h | FixedBootOrder HiiDatabase Function are defined in this File
FixedBootOrderTSE.h | TSE Related Functions

ModulePart Name: Default FixedBootOrder
ModulePart Description: Default setting module part for Fixed Boot Order
Filename | Description
DefaultFixedBootOrder.cif | Component Information File
DefaultFixedBootOrder.sdl | SDL file
DefaultFixedBootOrder.c | Main file
DefaultFixedBootOrder.uni | Unicode string file
DefaultFixedBootOrder.sd | FixedBootOrder setup options
DefaultFixedBootOrder.mak | Make file becomes part of the BIOS build process
ModulePart Name: Style - Up/Down move mode
ModulePart Description: Use up/down style to change boot option priority
Filename | Description
FixedBootOrderStyle.cif | Component Information File
FixedBootOrderStyle.sdl | SDL file
FixedBootOrderStyle.c | Main file
FixedBootOrderStyle.mak | Make file becomes part of the BIOS build process
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #107440 - In UEFI mode, system should be only boot with EFI boot device.However, system will boot into DOS when enter "exit" in EFI shell.
EIP #107268 - Add support managing default boot order list using.
EIP #112714 - Add include file elink.
EIP #114004 - USB floppy in legacy mode is display correct, but it would be display "USB KEY Drive BBS Priorities" in UEFI mode.
EIP #114186 - BSU Exit Page, Boot Override appears Unknown Device
Files changed for EIP fixes:
FBOSetOrder.c (EIP #114186,#107268,#107440)
FixedBootOrder.c (EIP #112714,#107268)
FixedBootOrder.sdl (EIP #112714)
FixedBootOrder.mak (EIP #112714)
FixedBootOrderTSE.c (EIP #107268)
DefaultFixedBootOrder.sd (EIP #107268,#114004)
DefaultFixedBootOrder.uni (EIP #107268)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
(2). Module Board label version 4.6.5.4_Board_31 below,
need add FixedBootOrder item callback in setup.c follow TAG FixedBootOrder
function: Callback

        if (SetupCallBack[i].Class == pCallback->Class && SetupCallBack[i].SubClass == pCallback->SubClass)
        {
            SETUP_ITEM_CALLBACK *pItemCallback = SetupItemCallback;
            while(pItemCallback->UpdateItem)
            {
                if (    pItemCallback->Class == pCallback->Class
                    &&  pItemCallback->SubClass == pCallback->SubClass
                    &&  pItemCallback->Key == KeyValue
                ){
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
#if EFI_SPECIFICATION_VERSION>0x20000
                    if (Status != EFI_UNSUPPORTED) break;
#endif
                }

#if FIXED_BOOT_ORDER_SUPPORT              //(FixedBootOrder)>
                if( pItemCallback->Key == 0x1001 )
                {
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
                }
#endif                                    //<(FixedBootOrder)
                pItemCallback++;
            }
        }
(3). Use 4.6.2_TSE_2_14_1219 label update file list
EDK\MiniSetup\uefi2.1\Hii.c
RSC file version 28
Compiler error with call function SETUP_DEBUG_UEFI
mask all function SETUP_DEBUG_UEFI
EDK\MiniSetup\uefi2.1\Parse.c
RSC file version 36
EDK\MiniSetup\BootOnly\Boot.c
RSC file version 24
EDK\MiniSetup\BootOnly\Bbs.c
RSC file version 21
EDK\MiniSetup\TseAdvanced\Special.c
RSC file version 26
Compiler error: funtion UefiSetHelpField undefine.
mask from line 1186 to 1193.
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_13
FixedBootOrder_12
FixedBootOrder_11
FixedBootOrder_10
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2013-05-31
Source Control Label: 4.6.5.1_FixedBootOrder_15
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_15_1226 or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: TseDefaultBootOrder
Dependent Component Reference Name: TseDefaultBootOrder
Dependent Source Control Label: 4.6.4.1_DefBootOrder_1.2 or Latest
Dependent Source Control Location: SS: $/Alaska/BIN/Modules/BootOptionPolicies/TseDefaultBootOrder

File Dependencies
N0NE

Protocol Dependencies
N0NE
Component Description:
Fixed Boot Order infrastructure implemented in Aptio Core allows custom handling of available boot options to meet specific customer needs. Custom boot behavior may include different requests, such as always boot from specific device, default support of various kinds of grouping of boot devices (SATA drives,USB CDROM, USB HDD drives, USB Floppy drives) and a lot more. Current implementation takes care of discovering all bootable devices in system, preliminary prioritize of them and also storing final order in NVRAM. OEM engineer only required implementing complimentary sorting of boot devices, to create desirable order.
Component file list
Filename | Description
FixedBootOrder.cif | Component Information File
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FixedBootOrderHII.c | HiiDatabase Related Functions
FixedBootOrderHII.h | FixedBootOrder HiiDatabase Function are defined in this File
FixedBootOrderTSE.h | TSE Related Functions

ModulePart Name: Default FixedBootOrder
ModulePart Description: Default setting module part for Fixed Boot Order
Filename | Description
DefaultFixedBootOrder.cif | Component Information File
DefaultFixedBootOrder.sdl | SDL file
DefaultFixedBootOrder.c | Main file
DefaultFixedBootOrder.uni | Unicode string file
DefaultFixedBootOrder.sd | FixedBootOrder setup options
DefaultFixedBootOrder.mak | Make file becomes part of the BIOS build process
ModulePart Name: Style - Up/Down move mode
ModulePart Description: Use up/down style to change boot option priority
Filename | Description
FixedBootOrderStyle.cif | Component Information File
FixedBootOrderStyle.sdl | SDL file
FixedBootOrderStyle.c | Main file
FixedBootOrderStyle.mak | Make file becomes part of the BIOS build process
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #122146 - Support Dual mode default priority with tool AMIBCP.
EIP #101213 - FixedBootOrder should match the BootOrder variable.
EIP #118170 - Windows Boot Manager will become disable on BBS Priorities when change Boot option filter
EIP #121259 - when selected save & exit from setup exit page, the system can't boot into Dos.
Files changed for EIP fixes:
FBOSetOrder.c (EIP #122146,#101213,#118170)
FixedBootOrder.c (EIP #123284,#122146,#116436)
FixedBootOrder.sdl (EIP #123284)
FixedBootOrderTSE.c (EIP #123284,#122146,#121259)
DefaultFixedBootOrder.c (EIP #123284,#122146,#101213)
DefaultFixedBootOrder.sd (EIP #122146)
DefaultFixedBootOrder.uni (EIP #123284,#122146)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
(2). Module Board label version 4.6.5.4_Board_31 below,
need add FixedBootOrder item callback in setup.c follow TAG FixedBootOrder
function: Callback

        if (SetupCallBack[i].Class == pCallback->Class && SetupCallBack[i].SubClass == pCallback->SubClass)
        {
            SETUP_ITEM_CALLBACK *pItemCallback = SetupItemCallback;
            while(pItemCallback->UpdateItem)
            {
                if (    pItemCallback->Class == pCallback->Class
                    &&  pItemCallback->SubClass == pCallback->SubClass
                    &&  pItemCallback->Key == KeyValue
                ){
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
#if EFI_SPECIFICATION_VERSION>0x20000
                    if (Status != EFI_UNSUPPORTED) break;
#endif
                }

#if FIXED_BOOT_ORDER_SUPPORT              //(FixedBootOrder)>
                if( pItemCallback->Key == 0x1001 )
                {
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
                }
#endif                                    //<(FixedBootOrder)
                pItemCallback++;
            }
        }
(3). Use 4.6.2_TSE_2_14_1219 label update file list
EDK\MiniSetup\uefi2.1\Hii.c
RSC file version 28
Compiler error with call function SETUP_DEBUG_UEFI
mask all function SETUP_DEBUG_UEFI
EDK\MiniSetup\uefi2.1\Parse.c
RSC file version 36
EDK\MiniSetup\BootOnly\Boot.c
RSC file version 24
EDK\MiniSetup\BootOnly\Bbs.c
RSC file version 21
EDK\MiniSetup\TseAdvanced\Special.c
RSC file version 26
Compiler error: funtion UefiSetHelpField undefine.
mask from line 1186 to 1193.
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_14
FixedBootOrder_13
FixedBootOrder_12
FixedBootOrder_11
FixedBootOrder_10
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2014-06-03
Source Control Label: 4.6.5.1_FixedBootOrder_16
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_15_1226 or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: TseDefaultBootOrder
Dependent Component Reference Name: TseDefaultBootOrder
Dependent Source Control Label: 4.6.4.1_DefBootOrder_1.2 or Latest
Dependent Source Control Location: SS: $/Alaska/BIN/Modules/BootOptionPolicies/TseDefaultBootOrder

File Dependencies
N0NE

Protocol Dependencies
N0NE
Component Description:
Fixed Boot Order infrastructure implemented in Aptio Core allows custom handling of available boot options to meet specific customer needs. Custom boot behavior may include different requests, such as always boot from specific device, default support of various kinds of grouping of boot devices (SATA drives,USB CDROM, USB HDD drives, USB Floppy drives) and a lot more. Current implementation takes care of discovering all bootable devices in system, preliminary prioritize of them and also storing final order in NVRAM. OEM engineer only required implementing complimentary sorting of boot devices, to create desirable order.
Component file list
Filename | Description
FixedBootOrder.cif | Component Information File
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FixedBootOrderHII.c | HiiDatabase Related Functions
FixedBootOrderHII.h | FixedBootOrder HiiDatabase Function are defined in this File
FixedBootOrderTSE.h | TSE Related Functions

ModulePart Name: Default FixedBootOrder
ModulePart Description: Default setting module part for Fixed Boot Order
Filename | Description
DefaultFixedBootOrder.cif | Component Information File
DefaultFixedBootOrder.sdl | SDL file
DefaultFixedBootOrder.c | Main file
DefaultFixedBootOrder.uni | Unicode string file
DefaultFixedBootOrder.sd | FixedBootOrder setup options
DefaultFixedBootOrder.mak | Make file becomes part of the BIOS build process
ModulePart Name: Style - Up/Down move mode
ModulePart Description: Use up/down style to change boot option priority
Filename | Description
FixedBootOrderStyle.cif | Component Information File
FixedBootOrderStyle.sdl | SDL file
FixedBootOrderStyle.c | Main file
FixedBootOrderStyle.mak | Make file becomes part of the BIOS build process
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #129692 - BBS Priorities become DISABLE when set ENABLE in Boot Option Priorities.
EIP #143078 - Set LOAD_OPTION_ACTIVE must be 0 when LOAD_OPTION_HIDDEN=1.
EIP #167196 - Runtime attribute set for the some of the variable used by FixedBootOrder needs to be reviewed.
EIP #143740 - Add a token "FBO_WTG_PRIORITY_UPDATE" for setting Windows To Go boot option to 1st priority.
EIP #137765 - Setup Item abnormal after remove USB KEY.
EIP #128779 - UEFI USB CD/DVD Drive BBS Priotites displayed incorrectly.
Files changed for EIP fixes:
FBOSetOrder.c (EIP #128779, #129692, #143740, #167196)
FixedBootOrder.c (EIP #137765, #143078, #167196)
FixedBootOrder.sdl (EIP #143740, #143078 )
FixedBootOrderTSE.c (EIP #129692, #143078, #167196)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
(2). Module Board label version 4.6.5.4_Board_31 below,
need add FixedBootOrder item callback in setup.c follow TAG FixedBootOrder
function: Callback

        if (SetupCallBack[i].Class == pCallback->Class && SetupCallBack[i].SubClass == pCallback->SubClass)
        {
            SETUP_ITEM_CALLBACK *pItemCallback = SetupItemCallback;
            while(pItemCallback->UpdateItem)
            {
                if (    pItemCallback->Class == pCallback->Class
                    &&  pItemCallback->SubClass == pCallback->SubClass
                    &&  pItemCallback->Key == KeyValue
                ){
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
#if EFI_SPECIFICATION_VERSION>0x20000
                    if (Status != EFI_UNSUPPORTED) break;
#endif
                }

#if FIXED_BOOT_ORDER_SUPPORT              //(FixedBootOrder)>
                if( pItemCallback->Key == 0x1001 )
                {
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
                }
#endif                                    //<(FixedBootOrder)
                pItemCallback++;
            }
        }
(3). Use 4.6.2_TSE_2_14_1219 label update file list
EDK\MiniSetup\uefi2.1\Hii.c
RSC file version 28
Compiler error with call function SETUP_DEBUG_UEFI
mask all function SETUP_DEBUG_UEFI
EDK\MiniSetup\uefi2.1\Parse.c
RSC file version 36
EDK\MiniSetup\BootOnly\Boot.c
RSC file version 24
EDK\MiniSetup\BootOnly\Bbs.c
RSC file version 21
EDK\MiniSetup\TseAdvanced\Special.c
RSC file version 26
Compiler error: funtion UefiSetHelpField undefine.
mask from line 1186 to 1193.
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_15
FixedBootOrder_14
FixedBootOrder_13
FixedBootOrder_12
FixedBootOrder_11
FixedBootOrder_10
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

© American Megatrends Inc.


eModule Release Notes

AMIBIOS Component Release Notes

Component Information:

Component Name: FixedBootOrder Demo

Component Type: eModule

Release Date: November 12, 2010

Source Control Label: 4.6.4_FixedBootOrder_06

Source Control Location: $Alaska/BIN/Modules/Template/FixedBootOrder Demo

Component Description:

This component is an example for OEM to change the boot priority with minimum core changes.

It totally ignores BOOT####, BootOrder variables and sets the order for CSM only.

Filename | Description
FixedBootOrder.c | This file is linked to TSE to avoid boot priorities to be duplicated using form callback.
FBOSetOrder.c | This file contains the function to set boot order. It is linked to TSE source module with EDK.
FixedBootOrder.h | This file is the header file for include.
FixedBootOrder.dxs | Dependency file.
FixedBootOrder.mak | Makefile to link FixedBootOrder.OBJ to setup binary. Modifying build\AMITSE.MAK so that FixedBootOrder.sd strings can be used in minisetup.
FixedBootOrder.sd | Form set to control boot priority.
FixedBootOrder.sdl | SDL parameters.
FixedBootOrder.uni | Unicode strings used for TSE.
FBOHii.h | This file is the header file for include.
FBOHii.c | This files is function library to use protocol HiiDatabase.
Setup.c | Modified setup.c of 4.6.4.0_Board_24 or latest.
Boot.VFR | Modified boot.vfr of core 4.6.3 to remove the original boot form set since we have our own to overrides it.
Minisetup.c | Modified from TSE version 4.6.2_TSE_1_23_1109_BETA, preventing from popup change the boot order when user cancel the selection.
Bbs.c | Modified from TSE version 4.6.2_TSE_1_23_1109_BETA, it signal an new event after TSE sets the BBS_TABLE.BootPriority so that we can have the final boot priority.

Fixes

None

New Features in Latest Release

1. Support UEFI 2.1

2. Support type of Group Submenu.

ODD_FORM, HDD_FORM, USBFDD_FORM, USBODD_FORM, USBHDD_FORM, USBKEY_FORM, NET_FORM, UEFI_FORM.

3. Add type : UEFI

4. Update variable “BootOrder” and “LegacyDevOrder”.

Errata & Known Issues

This module only works with CSM is enabled.

Implementation Guide

Make sure you compare your current boot.vfr while adding this module!

Since this is only a sample code module, OEM modifications are still necessary.

n Customize boot options

n FixedBootOrder.c

Search “TODO:” inside FixedBootOrder.c

1. Change / add BOOT_XXX enum

2. Change / add string token in gFixedStrTokens

3. Change / add new “case BOOT_XXX” in OemFixedBootOrder(): “switch (pSetup->OEMPriorities[j])”

Please use BBS_TABLE *BbsTable to identify a specific device. See sample code inside each “case” block.

n FixedBootOrder.sd

Each boot priority (Select xth Boot Priority) has one “oneof”.

“key=” in each “oneof” is the xth boot priority. For example, key=3 for “Select 3rd Boot Priority”).

In UEFI2.1 mode the key can’t redefine, use bit 0-3 to define key, other bit 4-15 don’t care.

SubMenu Group key use bit 4-7 define, other bit 0-3, 8-15 don’t care.

Each “option” in “oneof” must match the order in FixedBootOrder.c:BOOT_XXX enum.

n FixedBootOrder.uni

STR_BOOT_ORDER_x – Number of these strings match the FIXED_BOOT_NUM_OF_CONTROL

STR_BOOT_XXXX – number of these strings match the FIXED_BOOT_TOTAL_BOOT_OPTIONS

n SDL tokens

n FIXED_BOOT_NUM_OF_CONTROL

Number of boot priority controls to be displayed in TSE (default = 4).

For example, if FIXED_BOOT_NUM_OF_CONTRO=4 the TSE boot menu will be looked like:

Select 1st Boot Priority [Hard Disk]

    Select 2nd Boot Priority [CD/DVD ROM]

    Select 3rd Boot Priority [Network Device]

    Select 4th Boot Priority [USB Floppy]

Total 4 controls will be displayed in Boot Menu.

n FIXED_BOOT_TOTAL_BOOT_OPTIONS

Total boot options available (default = 6). FIXED_BOOT_TOTAL_BOOT_OPTIONS >= FIXED_BOOT_NUM_OF_CONTROL.

For examples, if FIXED_BOOT_TOTAL_BOOT_OPTIONS=6

    Select 1st Boot Priority [Hard Disk]

When ENTER key is pressed it will displayed:

    Select 1st Boot Priority [Hard Disk]

Select 1st Boot Priority

Hard Disk

CD/DVD ROM

Network Device

USB Floppy

USB Hard Disk

USB CD/DVD ROM

Total 6 options will be popped up

n FIXED_BOOT_INCLUDE_DISABLED_OPTION=1

Include Disabled to each boot priority control (displayed as below in TSE).

    Select 1st Boot Priority [Hard Disk]

Select 1st Boot Priority

Hard Disk

CD/DVD ROM

Network Device

USB Floppy

USB Hard Disk

USB CD/DVD ROM

Disabled

Each priority can be set to Disabled without order changed or removed, examples as below:

Select 1st Boot Priority [Disabled]

Select 2nd Boot Priority [Disabled]

Select 3rd Boot Priority [Hard Disk]

Select 4th Boot Priority [Disabled]

NOTE: System will be reset after priorities got changed if this token is set to 1.

n FIXED_BOOT_SWAP_POLICY

0 – swap the duplicated option after option is selected.

1 – swap the nearby option, used for moving up and down the option.

Assume boot order for =1:

Hard Disk

CD / DVD ROM

Network Device

USB Floppy (<- cursor is here)

USB HardDisk

USB CD/DVD ROM

USB Key

Press “+”

Hard Disk

CD / DVD ROM

Network Device

USB HardDisk (<- cursor is here)

USB Floppy

USB CD/DVD ROM

USB Key

Press “-”

Hard Disk

CD / DVD ROM

Network Device

USB Floppy (<- cursor is here)

USB HardDisk

USB CD/DVD ROM

USB Key

Revision History

n 4.6.4_FixedBootOrder_06

n Remove TSE ELINK “ProcessProceedToBootHook.”

n Add TSE ELINK “PostManagerHandShakeHookHook.”

n Add TSE ELINK “SavedConfigChangesHook.”

n Add TSE ELINK “LoadedConfigDefaultsHook.”

n Add TSE ELINK “ProcessProceedToBootNowHook”, Need Upgrade TSE to ver 2.10.1205 or Latest.

n TAG: EIP30347

Improvement: The FixedBootOrder function caused the side effect -"AMT_TC010( IDE-Redirection).

[Description]

Check variable "AmtBootOption" created, OemFixedBootOrder() don't change BBS_TABE Boot priority.

n TAG: EIP47257

Improvement: Load Default user define HDD order will lost.

[Description]

Modified routine BbsChecksum(), If can't get hard disk serial number. use device name to make checksum.

n TAG: EIP43701

Improvement: The screen of Boot Device Priority of Bios Setup is corrupted.

[Description]

Add function BackUpDeviceName() backup all BBS_TABLE DescString.

n TAG: EIP41634

Improvement: UEFI 2.1 Support (the component is updated to support Framework andUEFI 2.1 HII).

[Description]

1.Add callback function FixedBootOrderFormCallBack() for UEFI2.1

2.Add function FBO_SetBrowserData(),FBO_BufToHexString(),FBO_NibbleToHexChar().

3.Use protocol Hiidatabase to change submenu oneof option display length.

4.Add Files FBOHii.c FBOHii.h

n TAG: EIP33514

Improvement: Modify function FixedBootOrderSaveChange().

[Description]

1.Change BOOT#### LoadOption Bit Active status.

2.Update variable BootOrder after SaveChange.

n TAG: EIP33900

Improvement: add function FixedBootOrderLoadedConfigDefaults() for TSE

ELINK LoadedConfigDefaults().

[Description]

1.FBOSetOrder.c add function CreateDefaultDevOrder().

2.LoadedConfigDefaults(), Call FixedBootOrderProtocol->load_default_string().

n TAG: EIP30275

Improvement: Windows Boot Manager delete and restore.

[Description]

1. Add function WindowsBootManager().

n TAG: EIP33900

Improvement: Update variable "BootOrder" and "LegacyDevOrder"

[Description]

1.Add function UpdateBootOrder().

n TAG: EIP22689

TAG: EIP22689

Improvement: Support submenu function.

1.FixedBootOrder.sd add form set for each group. ODD_FORM, HDD_FORM, USBFDD_FORM, USBODD_FORM, USBHDD_FORM, USBKEY_FORM, NET_FORM, UEFI_FORM.

2.FixedBootOrder.c add each group StringInit and Setupcallback control routine.

n Compatibility:

This module is based on the following labels:

n Core: 4.6.4

n TSE source: 4.6.2_TSE_2_10_1205 or Latest.

.. 1

n 4.6.3_FixedBootOrder_05

n bbs.c and minisetup.c are removed.

Use eLink BeforeLegacyBootLaunchHook and ProcessProceedToBootHook instead of modifying TSE core files.

n FBOSetOrder.c is added, it separates the OemFixedBootOrder from original FixedBootOrder.c. This file is linked to minisetup to use the eLinks: BeforeLegacyBootLaunchHook and ProcessProceedToBootHook.

n It does not depend on the TSE version you use because there is no TSE core files are modified.

n CIF2MAK override “/x” compatible

All #include use the <>, no “” is allowed. Also, there is no path inside <>.

n USB Key type is added: 64GB > USB KEY != USB floppy >= 2MB

Total 7 boot types now:

1) BOOT_HDD

2) BOOT_ODD

3) BOOT_NETWORK

4) BOOT_USB_FLOOPY

5) BOOT_USB_HDD

6) BOOT_USB_ODD

7) BOOT_USB_KEY

n FIXED_BOOT_SWAP_POLICY is added

=0 – swap the duplicated option after option is selected.

=1 – swap the nearby option, used for moving up and down the option.

n 4.6.3_TSE1109_FixedBootOrder_04

n TAG: EIP19207

Bug fix: Fixed build error if x64_BUILD=1

Symtom: "AmiDxeLib.lib(x64CLib.obj) : error LNK2005: memset already defined in EfiDriverLib.lib(memset.obj)"

"Build\Setup.dll : fatal error LNK1169: one or more multiply defined symbols found"

Root cause: memset() is defined and linked in AMIDXELIB:x64CLib.c:memset and EFIDRIVERLIB:EFICOMMONLIB:COMPILERSTUB:memset.c

n Changed makefile to use inference rules to make file override working with CIF2MAK.

n 4.6.3_TSE1109_FixedBootOrder_03

n Do not need to reset the system if disabled options are included.

n Changed not to use BOOT#### variables.

BOOT#### variables can not control the individual boot device order in a type.

n Fixed boot priority can not fall through to different type of device if the first device of previous type is not bootable.

For example, USB CDROM (not bootable) -> HDD (bootable) -> CDROM (bootable)

It should boot to HDD but it booted to CDROM because FLEXBOOT=0 in CSM and BOOT#### can not control individual device boot order in device type.

n (EIP12189) Fixed it will not go through the original boot device of FixedBootOrder after Boot Override failed (TSE_CONTINUE_BOOT_NOW_ON_FAIL=1).

n Differences to previous version

1. Variables

In this version we only need to have BBS_TABLE.BootPriority changed according to SETUP_DATA: OEMPriorities[]. No other variables changes are needed.

2. TSE eLinks

We do not need TSE eLinks anymore in this version because we set BBS_TABLE.BootPriority instead. Using eLinks can not prevent BootPriority being changed by TSE. So we need to signal a new event in TSE.

n Please use CSM label 4.6.3.1_CSM.7.44_58 or later.

n 4.6.3_TSE1109_FixedBootOrder_02

n Adds Disabled option to each boot priority.

When set to Disabled, boot order will not be changed. It allows all options to be disabled but still remain on the boot menu.

n Makes system reset after priorities got changed.

Doing this is to synchronize the TSE internal and EFI variables.

n 4.6.3_TSE1109_FixedBootOrder_01

Initial release.

n OEM priority variable used: SETUP_DATA: OEMPriorities[]

The number of priorities must be the same to FIXED_BOOT_TOTAL_BOOT_OPTIONS.

n How it works

1. It hides the original boot priority menu by modifying the boot.vfr.

2. Then created a new form set so we can have our own boot priority in FixedBootOrder.sd.

3. To make system boot according to our own boot priority, we need to set following variables according to OEMPriorities[]:

1) Boot#### (#### = 0000, 0001, 0002, etc.)

2) LegacyDevOrder

3) BootOrder

n SDL tokens

n FIXED_BOOT_NUM_OF_CONTROL

Number of boot priority controls to be displayed in TSE (default = 4).

n FIXED_BOOT_TOTAL_BOOT_OPTIONS

Total boot options available (default = 6). FIXED_BOOT_TOTAL_BOOT_OPTIONS >= FIXED_BOOT_NUM_OF_CONTROL.

n Current supported boot types are for only 6 (FIXED_BOOT_TOTAL_BOOT_OPTIONS=6) as below, you can modify the code yourself for more types.

8) BOOT_HDD

9) BOOT_ODD

10) BOOT_NETWORK

11) BOOT_USB_FLOOPY

12) BOOT_USB_HDD

13) BOOT_USB_ODD

n Core files changed

There are 2 core files are modified, they are included in this module. But please update them if you change the core version.

1) Boot.VFR: OEM boot priority controls will replace the original boot priorities, so we need to remove BBS_ORDER_FORM.

2) HookAnchor.C: needs to turn off the optimization for x64_BUILD=1. The reason is described in issue #11868. This file would be needed before HookAnchor.c fixes this problem only.

n Compatibility:

This module is based on the following labels:

n Core: 4.6.3

n TSE source: 4.6.2_TSE_1_23_1109_BETA

© American Megatrends Inc.


Release Notes - NDA Required

Component Information:
Component Title: Fixed Boot Order
Component Reference Name: FixedBootOrder
Component Type: eModule
Release Date: 2015-04-02
Source Control Label: 4.6.5.1_FixedBootOrder_17
Source Control Location: SS:$Alaska/BIN/Modules/Template/FixedBootOrder Demo
Dependencies
Component Dependencies
ONE
Dependent Component Title: AMITSE
Dependent Component Reference Name: AMITSE
Dependent Source Control Label: 4.6.2_TSE_2_15_1226 or Latest
Dependent Source Control Location: SS: $/Alaska/SOURCE/Modules/AMITSE2_0/AMITSE and $/Alaska/BIN/Modules/AMITSE2_0/AMITSE
TWO
Dependent Component Title: TseDefaultBootOrder
Dependent Component Reference Name: TseDefaultBootOrder
Dependent Source Control Label: 4.6.4.1_DefBootOrder_1.2 or Latest
Dependent Source Control Location: SS: $/Alaska/BIN/Modules/BootOptionPolicies/TseDefaultBootOrder

File Dependencies
N0NE

Protocol Dependencies
N0NE
Component Description:
Fixed Boot Order infrastructure implemented in Aptio Core allows custom handling of available boot options to meet specific customer needs. Custom boot behavior may include different requests, such as always boot from specific device, default support of various kinds of grouping of boot devices (SATA drives,USB CDROM, USB HDD drives, USB Floppy drives) and a lot more. Current implementation takes care of discovering all bootable devices in system, preliminary prioritize of them and also storing final order in NVRAM. OEM engineer only required implementing complimentary sorting of boot devices, to create desirable order.
Component file list
Filename | Description
FixedBootOrder.cif | Component Information File
FixedBootOrder.sdl | SDL file
FBOSetOrder.c | Main file
FixedBootOrder.c | Setup string initial and setup item callback Related Functions
FixedBootOrder.h | Headers, Definitions, Macros and Function Prototypes are defined in this File
FixedBootOrder.mak | Make file becomes part of the BIOS build process
FixedBootOrder.chm | CHM file
FixedBootOrderHII.c | HiiDatabase Related Functions
FixedBootOrderHII.h | FixedBootOrder HiiDatabase Function are defined in this File
FixedBootOrderTSE.h | TSE Related Functions

ModulePart Name: Default FixedBootOrder
ModulePart Description: Default setting module part for Fixed Boot Order
Filename | Description
DefaultFixedBootOrder.cif | Component Information File
DefaultFixedBootOrder.sdl | SDL file
DefaultFixedBootOrder.c | Main file
DefaultFixedBootOrder.uni | Unicode string file
DefaultFixedBootOrder.sd | FixedBootOrder setup options
DefaultFixedBootOrder.mak | Make file becomes part of the BIOS build process
ModulePart Name: Style - Up/Down move mode
ModulePart Description: Use up/down style to change boot option priority
Filename | Description
FixedBootOrderStyle.cif | Component Information File
FixedBootOrderStyle.sdl | SDL file
FixedBootOrderStyle.c | Main file
FixedBootOrderStyle.mak | Make file becomes part of the BIOS build process
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_34, Dated: 2010-10-06
Visual eBios: RSS.5.70.0171, Dated: 2010-10-04
Compiler Tool(s): Microsoft’s Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
NONE
General Bug Fixes:
NONE
EIP addressed in this label:
EIP #171752 - Add FIXED_BOOT_ORDER_SUBMENU_MAX_NUM and FIXED_BOOT_ORDER_GROUP_MAX_NUM.
EIP #184538 - Update staddefault variable checksum when update default variable.
EIP #210628 - Build error when USE_BCP_DEFAULT_PRIORITIES = 1.
EIP #177104 - System shows no boot device when disable all device then change mode.
EIP #180632 - Add a Protocol to change device name.
EIP #198610 - Boot to wrong device when disable group.
EIP #182196 - Support EFI_BROWSER_ACTION_DEFAULT_STANDARD check.
Files changed for EIP fixes:
FixedBootOrder.mak (EIP #184538)
FBOSetOrder.c (EIP #210628)
FixedBootOrder.h (EIP #180632, #171752)
FixedBootOrder.c (EIP #180632, #171752, #182196, #184538 )
FixedBootOrder.sdl (EIP #171752)
FixedBootOrderTSE.c (EIP #177104, #180632, #171752, #198610, #210628)
DefaultFixedBootOrder.sdl (EIP #180632)
DefaultFixedBootOrder.c (EIP #180632)
DefaultFixedBootOrder.sd (EIP #210628)
DefaultFixedBootOrder.uni (EIP #210628)
DefaultFixedBootOrder.mak (EIP #180632)
Known issues and limitations in this label:
(1). modify boot.vfr follow TAG EIP9585, disable original boot option in setup.

1.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
        SEPARATOR
        SUBTITLE(STRING_TOKEN(STR_BOOT_ORDER_SUBTITLE))
        suppressif ideqvallist BOOT_MANAGER.BootCount == 0xFFFF;
            oneof varid = BOOT_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;

        SEPARATOR
        suppressif ideqvallist LEGACY_DEV_INFO.GroupCount == 0xFFFF;
            goto BBS_ORDER_FORM,
            prompt = STRING_TOKEN(STR_EMPTY),
            help = STRING_TOKEN(STR_BBS_ORDER_HELP);
        endif;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)

2.
#if !FIXED_BOOT_ORDER_SUPPORT						//(EIP9585)
    form
        formid = AUTO_ID(BBS_ORDER_FORM),
        title = STRING_TOKEN(STR_BOOT);

        suppressif ideqvallist LEGACY_GROUP_INFO.DeviceCount == 0xFFFF;
            oneof
                varid = LEGACY_DEV_ORDER.Value,
                prompt = STRING_TOKEN(STR_BOOT_ORDER_X),
                help = STRING_TOKEN(STR_BOOT_ORDER_HELP),
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 0,
                    flags = DEFAULT;
                option
                    text = STRING_TOKEN(STR_EMPTY),
                    value = 1,
                    flags = 0;
            endoneof;
        endif;
    endform;
#endif	//#if !FIXED_BOOT_ORDER_SUPPORT			//(EIP9585)
(2). Module Board label version 4.6.5.4_Board_31 below,
need add FixedBootOrder item callback in setup.c follow TAG FixedBootOrder
function: Callback

        if (SetupCallBack[i].Class == pCallback->Class && SetupCallBack[i].SubClass == pCallback->SubClass)
        {
            SETUP_ITEM_CALLBACK *pItemCallback = SetupItemCallback;
            while(pItemCallback->UpdateItem)
            {
                if (    pItemCallback->Class == pCallback->Class
                    &&  pItemCallback->SubClass == pCallback->SubClass
                    &&  pItemCallback->Key == KeyValue
                ){
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
#if EFI_SPECIFICATION_VERSION>0x20000
                    if (Status != EFI_UNSUPPORTED) break;
#endif
                }

#if FIXED_BOOT_ORDER_SUPPORT              //(FixedBootOrder)>
                if( pItemCallback->Key == 0x1001 )
                {
                    Status = pItemCallback->UpdateItem(
                        SetupCallBack[i].HiiHandle,
                        pItemCallback->Class, pItemCallback->SubClass,
                        KeyValue
                    );
                }
#endif                                    //<(FixedBootOrder)
                pItemCallback++;
            }
        }
(3). Use 4.6.2_TSE_2_14_1219 label update file list
EDK\MiniSetup\uefi2.1\Hii.c
RSC file version 28
Compiler error with call function SETUP_DEBUG_UEFI
mask all function SETUP_DEBUG_UEFI
EDK\MiniSetup\uefi2.1\Parse.c
RSC file version 36
EDK\MiniSetup\BootOnly\Boot.c
RSC file version 24
EDK\MiniSetup\BootOnly\Bbs.c
RSC file version 21
EDK\MiniSetup\TseAdvanced\Special.c
RSC file version 26
Compiler error: funtion UefiSetHelpField undefine.
mask from line 1186 to 1193.
Remaining Issues:
NONE
Unit Testing:
NONE
Validation Testing:
NONE
Release History:
FixedBootOrder_16
FixedBootOrder_15
FixedBootOrder_14
FixedBootOrder_13
FixedBootOrder_12
FixedBootOrder_11
FixedBootOrder_10
FixedBootOrder_09
FixedBootOrder_08
FixedBootOrder_07
old Release History.htm

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

  • DefaultFixedBootOrder.c
  • DefaultFixedBootOrder.mak
  • FBOSetOrder.c
  • FixedBootOrder.c
  • FixedBootOrder.h
  • FixedBootOrder.mak
  • FixedBootOrderHII.c
  • FixedBootOrderHII.h
  • FixedBootOrderStyle.c
  • FixedBootOrderStyle.mak
  • FixedBootOrderTSE.c
Built on 17:57:00 04/02/15


DefaultFixedBootOrder.c

Description:
Default FixedBootOrder Boot type setting.

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

Function | Description
FBO_SetBootOptionTags | Go through the entire boot option list and Apply priorities for each entry in the list.
GetUefiBootOptionTag | Function returns device type for given handle


FBO_SetBootOptionTags in the DefaultFixedBootOrder.c

Function : FBO_SetBootOptionTags

File: DefaultFixedBootOrder.c
Description:
Go through the entire boot option list and Apply priorities for
each entry in the list.
Input:
DLIST *BootOptionList - the entire Boot Option List
Output:
none

Note:        To change boot order priorities


GetUefiBootOptionTag in the DefaultFixedBootOrder.c

Function : GetUefiBootOptionTag

File: DefaultFixedBootOrder.c
Description:
Function returns device type for given handle
Input:
EFI_DEVICE_PATH_PROTOCOL *Dp -
Output:
UINT32 - device type


DefaultFixedBootOrder.mak

Description:
This is a make file used to build component


FBOSetOrder.c

Description:
FixedBootOrder Boot Option control

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

Function | Description
BuildFboLegacyDevOrder | Build FboLegacyDevOrder variable from BootOptionList. This variable should be set before we disable the undesried boot options for selected boot mode. So we can get the correct BootOptionList.Attributes reflecting the selection of setup.
BuildUEFIDevOrder | Go through the master boot option list and create memory representation of the uefi dev order variable
CheckIsUSBkey | Using the passed BBS_TABLE entry pointer, determine the device type of the USBKey
FBO_AdjustPriority | first boot order of group, Change this gorup uefi and dual Priorities to Top position.
FBO_AdjustWtgPriority | First boot order of group, Change this gorup uefi Priorities to Top position.
FBO_CompareTagThenBbsIndex | This function returns result of compairing two DLINK tags.
FBO_FindTagPriority | For the passed Tag entry, return the correct boot priority based on the BootOptionTagPriorities global variable that is filled out based on the SDL Token BOOT_OPTION_TAG_PRIORITIES.
FBO_GetBbsEntryDeviceType | Using the passed BBS_TABLE entry pointer, determine the device type of the associated device
FBO_Init | Initialize the module memory, and device map data.
FBO_SetDefaultUEFIDevOrder | Go through the master boot option list and create memory representation of the default uefi order variable
FBO_UpdateBootListPriority | use setup data LegacyPriorities/UefiPriorities/DualPriorities ,set legacy/uefi boot option list priority.
FboSyncBootOptionsFromDevOrder | UefiDevOrder and FboLegacyDevOrder variables contain the disabled flags saved by setup. Need to update the disabled flag to BootOptionList right before any other functions that will process the BootOptionList. BootOptionList will be set to NOT ACTIVE for disabled DevOrder, ACTIVE for enabled one.
FindLegacyDeviceGroupByType | Go through the legacy device order structure and find the legacy dev order group type that we want then return this group.
IsUSBkeyByHandle | determine the device type of the USBKey size.
SearchDevMapByType | Search DevMap data index by device type.
SetLegacyBootOptionPriority | Set legacy boot option list priority.
SetUefiBootOptionPriority | Set uefi boot option list priority.


BuildFboLegacyDevOrder in the FBOSetOrder.c

Function : BuildFboLegacyDevOrder

File: FBOSetOrder.c
Description:
Build FboLegacyDevOrder variable from BootOptionList.
This variable should be set before we disable the undesried boot
options for selected boot mode.  So we can get the correct
BootOptionList.Attributes reflecting the selection of setup.
Input:
None
Output:
FboLegacyDevOrder variable updated


BuildUEFIDevOrder in the FBOSetOrder.c

Function : BuildUEFIDevOrder

File: FBOSetOrder.c
Description:
Go through the master boot option list and create
memory representation of the uefi dev order variable
Input:
DLIST *BootOptionList - the master boot option list
Output:
none

Note:


CheckIsUSBkey in the FBOSetOrder.c

Function : CheckIsUSBkey

File: FBOSetOrder.c
Description:
Using the passed BBS_TABLE entry pointer, determine the device
type of the USBKey
Input:
BBS_TABLE *BbsEntry - pointer to a BBS_TABLE entry
Output:
BOOLEAN


FBO_AdjustPriority in the FBOSetOrder.c

Function : FBO_AdjustPriority

File: FBOSetOrder.c
Description:
first boot order of group, Change this gorup
        uefi and dual Priorities to Top position.
Input:
None
Output:
None


FBO_AdjustWtgPriority in the FBOSetOrder.c

Function : FBO_AdjustWtgPriority

File: FBOSetOrder.c
Description:
First boot order of group, Change this gorup
        uefi Priorities to Top position.
Input:
None
Output:
None


FBO_CompareTagThenBbsIndex in the FBOSetOrder.c

Function : FBO_CompareTagThenBbsIndex

File: FBOSetOrder.c
Description:
This function returns result of compairing two DLINK tags.
Input:
Link1 - pointer to the first tag for compare
Link1 - pointer to the second tag for compare
Output:
INT32 - result of comparing.


FBO_FindTagPriority in the FBOSetOrder.c

Function : FBO_FindTagPriority

File: FBOSetOrder.c
Description:
For the passed Tag entry, return the correct boot priority based on
the BootOptionTagPriorities global variable that is filled out
based on the SDL Token BOOT_OPTION_TAG_PRIORITIES.
Input:
UINT16 Tag - one of the following items of the BOOT_OPTION_TAG enum:
Output:
The index of this item in the FBODevMapData structure, which
also corresponds to the boot priority that should be assigned to this
class of device


FBO_GetBbsEntryDeviceType in the FBOSetOrder.c

Function : FBO_GetBbsEntryDeviceType

File: FBOSetOrder.c
Description:
Using the passed BBS_TABLE entry pointer, determine the device
type of the associated device
Input:
BBS_TABLE *BbsEntry - pointer to a BBS_TABLE entry
Output:
UINT16 - device type


FBO_Init in the FBOSetOrder.c

Function : FBO_Init

File: FBOSetOrder.c
Description:
Initialize the module memory, and device map data.
Input:
None
Output:
None


FBO_SetDefaultUEFIDevOrder in the FBOSetOrder.c

Function : FBO_SetDefaultUEFIDevOrder

File: FBOSetOrder.c
Description:
Go through the master boot option list and create
memory representation of the default uefi order variable
Input:
DLIST *BootOptionList - the master boot option list
Output:
none

Note:


FBO_UpdateBootListPriority in the FBOSetOrder.c

Function : FBO_UpdateBootListPriority

File: FBOSetOrder.c
Description:
use setup data LegacyPriorities/UefiPriorities/DualPriorities
,set legacy/uefi boot option list priority.
Input:
None
Output:
None


FboSyncBootOptionsFromDevOrder in the FBOSetOrder.c

Function : FboSyncBootOptionsFromDevOrder

File: FBOSetOrder.c
Description:
UefiDevOrder and FboLegacyDevOrder variables contain the
disabled flags saved by setup.  Need to update the disabled
flag to BootOptionList right before any other functions
that will process the BootOptionList.
BootOptionList will be set to NOT ACTIVE for disabled
DevOrder, ACTIVE for enabled one.
Input:
None
Output:
None


FindLegacyDeviceGroupByType in the FBOSetOrder.c

Function : FindLegacyDeviceGroupByType

File: FBOSetOrder.c
Description:
Go through the legacy device order structure and find the legacy dev order
group type that we want then return this group.
Input:
LEGACY_DEVICE_ORDER *DevOrder - pointer to the legacy device order
UINTN DevOrderSize - size of the legacy dev order structure
UINT32 Type - Group type to match
Output:
LEGACY_DEVICE_ORDER *


IsUSBkeyByHandle in the FBOSetOrder.c

Function : IsUSBkeyByHandle

File: FBOSetOrder.c
Description:
determine the device type of the USBKey size.
Input:
EFI_HANDLE Handle
Output:
BOOLEAN


SearchDevMapByType in the FBOSetOrder.c

Function : SearchDevMapByType

File: FBOSetOrder.c
Description:
Search DevMap data index by device type.
Input:
IN FBODevMap *pFBODevMap
IN UINT16 DevType
Output:
OUT UINT16
Modified:
None
Notes:
None
Referrals:
None


SetLegacyBootOptionPriority in the FBOSetOrder.c

Function : SetLegacyBootOptionPriority

File: FBOSetOrder.c
Description:
Set legacy boot option list priority.
Input:
DeviceType - Legacy Device type
Priority - pointer of Priority(UINT32).
Output:
none

Note:


SetUefiBootOptionPriority in the FBOSetOrder.c

Function : SetUefiBootOptionPriority

File: FBOSetOrder.c
Description:
Set uefi boot option list priority.
Input:
DeviceType - Uefi Device type
Priority - pointer of Priority(UINT32).
Output:
none

Note:


FixedBootOrder.c

Description:
This file is linked to Setup Binary for form callback

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

Function | Description
FixedBootOrderFormCallBack | Avoid each boot priorities from being duplicated to each other by using INTERACTIVE callback.
FixedBootOrderStringInit | Install a form callback.
GetDevMapDataCount | get the FBODevMap data amount.
GetHiiMapDataCount | get the FBOHiiMap data amount.
GetUEFIBootName | Get Variable Boot#### and return data pointer.
GroupkeyProcess | Avoid each group boot priorities from being duplicated to each other by using INTERACTIVE callback.
HiiAddLanguageBootOptionString | Install multi-language for STR_BOOT_OPTION.
InitialDaulHiiItem | Create Dual mode boot item device Hii Item data.
InitialLegacyHiiItemDefault | Create legacy boot item device Hii Item data.
InitialUefiHiiItemDefault | Create UEFI boot item device Hii Item data.
InitLegacyGroupDefault | Each group device name Hii String Update, and fixed HiiDB Oneof Data.
InitUefiGroupDefault | Each group device name Hii String Update, and fixed HiiDB Oneof Data.
load_default_string | This function called after setup utility loaded config defaults based on user input. change fixedbootorder display default devcie string.
SearchDevMapByType | Search DevMap data index by device type.
SearchHiiMapByType | Search HiiMap data index by device type.
UpdateDeviceHiiString | Update device item multi-language Hii string
UpdateLegacyDeviceHiiString | Update boot option type string token
UpdateUefiDeviceHiiString | Update boot option type string token


FixedBootOrderFormCallBack in the FixedBootOrder.c

Function : FixedBootOrderFormCallBack

File: FixedBootOrder.c
Description:
Avoid each boot priorities from being duplicated to each
        other by using INTERACTIVE callback.
Input:
IN EFI_HII_HANDLE HiiHandle
IN UINT16 Class
IN UINT16 SubClass
IN UINT16 KeyValue
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


FixedBootOrderStringInit in the FixedBootOrder.c

Function : FixedBootOrderStringInit

File: FixedBootOrder.c
Description:
Install a form callback.
Input:
IN EFI_HII_HANDLE 	HiiHandle
IN UINT16 		Class
Output:
Modified:
Notes:

Referrals:

SetupStringInit


GetDevMapDataCount in the FixedBootOrder.c

Function : GetDevMapDataCount

File: FixedBootOrder.c
Description:
get the FBODevMap data amount.
Input:
IN FBODevMap *pFBODevMap
Output:
OUT UINT16
Modified:
None
Notes:
None
Referrals:
None


GetHiiMapDataCount in the FixedBootOrder.c

Function : GetHiiMapDataCount

File: FixedBootOrder.c
Description:
get the FBOHiiMap data amount.
Input:
None
Output:
OUT UINT16
Modified:
None
Notes:
None
Referrals:
None


GetUEFIBootName in the FixedBootOrder.c

Function : GetUEFIBootName

File: FixedBootOrder.c
Description:
Get Variable Boot#### and return data pointer.
Input:
IN UINT16 BootIndex
Output:
EFI_LOAD_OPTION
Modified:
Notes:

Referrals:


GroupkeyProcess in the FixedBootOrder.c

Function : GroupkeyProcess

File: FixedBootOrder.c
Description:
Avoid each group boot priorities from being duplicated to each
        other by using INTERACTIVE callback.
Input:
IN OUT UINT8 *NvRamBootDevice
IN UINT8 *OldBootDevice
IN OUT UINT8 *BootDeviceNum
IN UINT8 DeviceCount
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


HiiAddLanguageBootOptionString in the FixedBootOrder.c

Function : HiiAddLanguageBootOptionString

File: FixedBootOrder.c
Description:
Install multi-language for STR_BOOT_OPTION.
Input:
NONE
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


InitialDaulHiiItem in the FixedBootOrder.c

Function : InitialDaulHiiItem

File: FixedBootOrder.c
Description:
Create Dual mode boot item device Hii Item data.
Input:
EFI_HANDLE HiiHandle
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


InitialLegacyHiiItemDefault in the FixedBootOrder.c

Function : InitialLegacyHiiItemDefault

File: FixedBootOrder.c
Description:
Create legacy boot item device Hii Item data.
Input:
EFI_HANDLE HiiHandle
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


InitialUefiHiiItemDefault in the FixedBootOrder.c

Function : InitialUefiHiiItemDefault

File: FixedBootOrder.c
Description:
Create UEFI boot item device Hii Item data.
Input:
EFI_HANDLE HiiHandle
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


InitLegacyGroupDefault in the FixedBootOrder.c

Function : InitLegacyGroupDefault

File: FixedBootOrder.c
Description:
Each group device name Hii String Update, and fixed HiiDB Oneof
Data.
Input:
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


InitUefiGroupDefault in the FixedBootOrder.c

Function : InitUefiGroupDefault

File: FixedBootOrder.c
Description:
Each group device name Hii String Update, and fixed HiiDB Oneof
Data.
Input:
NONE
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


load_default_string in the FixedBootOrder.c

Function : load_default_string

File: FixedBootOrder.c
Description:
This function called after setup utility loaded config defaults
based on user input. change fixedbootorder display default
devcie string.
Input:
Output:
EFI_STATUS
Modified:
Notes:

Referrals:


SearchDevMapByType in the FixedBootOrder.c

Function : SearchDevMapByType

File: FixedBootOrder.c
Description:
Search DevMap data index by device type.
Input:
IN FBODevMap *pFBODevMap
IN UINT16 DevType
Output:
OUT UINT16
Modified:
None
Notes:
None
Referrals:
None


SearchHiiMapByType in the FixedBootOrder.c

Function : SearchHiiMapByType

File: FixedBootOrder.c
Description:
Search HiiMap data index by device type.
Input:
IN UINT16 DevType
Output:
OUT UINT16
Modified:
None
Notes:
None
Referrals:
None


UpdateDeviceHiiString in the FixedBootOrder.c

Function : UpdateDeviceHiiString

File: FixedBootOrder.c
Description:
Update device item multi-language Hii string
Input:
UINT16 StrToken
CHAR16 *DeviceName
Output:
None
Modified:
Notes:

Referrals:


UpdateLegacyDeviceHiiString in the FixedBootOrder.c

Function : UpdateLegacyDeviceHiiString

File: FixedBootOrder.c
Description:
Update boot option type string token
Input:
IN UINT16 DevType
IN UINT8 Index
Output:
Modified:
Notes:

Referrals:


UpdateUefiDeviceHiiString in the FixedBootOrder.c

Function : UpdateUefiDeviceHiiString

File: FixedBootOrder.c
Description:
Update boot option type string token
Input:
IN UINT16 DevType
IN UINT8 Index
Output:
Modified:
Notes:

Referrals:


FixedBootOrder.h

Description:
Header file of FixedBootOrder module


FixedBootOrder.mak

Description:
This is a make file used to build component


FixedBootOrderHII.c

Description:
HiiDatabase Related Functions

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

Function | Description
CreateHiiIfrEndItem | Create a Ifr End Item.
CreateHiiIfrFormItem | Create a Form Item.
CreateHiiOneOfItem | Create a Hii OneOf Item.
CreateHiiOneOfOptionItem | Create a Hii OneOf Option Item.
CreateHiiRefItem | Create a Hii Ref Item.
CreateHiiSubtitleItem | Create a Subtitle Item.
EfiCompareGuid | To avoid including EDK libs.
FIndVariableID | Search Hii Form Package Data of variable ID.
InitHiiData | Use HiiDatabaseProtocol get hii data package to buffer


CreateHiiIfrEndItem in the FixedBootOrderHII.c

Function : CreateHiiIfrEndItem

File: FixedBootOrderHII.c
Description:
Create a Ifr End Item.
Input:
UINT8 **IfrBufferPtr
Output:
EFI_STATUS
Modified:
NONE
Notes:
NONE
Referrals:
NONE


CreateHiiIfrFormItem in the FixedBootOrderHII.c

Function : CreateHiiIfrFormItem

File: FixedBootOrderHII.c
Description:
Create a Form Item.
Input:
UINT8 **IfrBufferPtr
UINT16 FromID
STRING_REF StrTokenId
Output:
EFI_STATUS
Modified:
NONE
Notes:
NONE
Referrals:
NONE


CreateHiiOneOfItem in the FixedBootOrderHII.c

Function : CreateHiiOneOfItem

File: FixedBootOrderHII.c
Description:
Create a Hii OneOf Item.
Input:
UINT8 **IfrBufferPtr,
UINT16 VarStoreId,
UINT16 VarOffset,
UINT16 CallBackKey,
STRING_REF StrTokenId,
STRING_REF StrTokenHelpId,
UINT8 Flags
Output:
EFI_STATUS
Modified:
NONE
Notes:
NONE
Referrals:
NONE


CreateHiiOneOfOptionItem in the FixedBootOrderHII.c

Function : CreateHiiOneOfOptionItem

File: FixedBootOrderHII.c
Description:
Create a Hii OneOf Option Item.
Input:
UINT8 **IfrBufferPtr
UINT8 Type
UINT16 Index
STRING_REF StrTokenId
Output:
EFI_STATUS
Modified:
NONE
Notes:
NONE
Referrals:
NONE


CreateHiiRefItem in the FixedBootOrderHII.c

Function : CreateHiiRefItem

File: FixedBootOrderHII.c
Description:
Create a Hii Ref Item.
Input:
UINT8 **IfrBufferPtr
UINT16 FromID
STRING_REF StrTokenId1
STRING_REF StrTokenId2
Output:
EFI_STATUS
Modified:
NONE
Notes:
NONE
Referrals:
NONE


CreateHiiSubtitleItem in the FixedBootOrderHII.c

Function : CreateHiiSubtitleItem

File: FixedBootOrderHII.c
Description:
Create a Subtitle Item.
Input:
UINT8 **IfrBufferPtr
STRING_REF StrTokenId
STRING_REF HelpStrTokenId
UINT8 Flags
Output:
EFI_STATUS
Modified:
NONE
Notes:
NONE
Referrals:
NONE


EfiCompareGuid in the FixedBootOrderHII.c

Function : EfiCompareGuid

File: FixedBootOrderHII.c
Description:
To avoid including EDK libs.
Input:
IN EFI_GUID *Guid1,  IN EFI_GUID *Guid2
Output:
BOOLEAN


FIndVariableID in the FixedBootOrderHII.c

Function : FIndVariableID

File: FixedBootOrderHII.c
Description:
Search Hii Form Package Data of variable ID.
Input:
CHAR8 *VarName
Output:
UINT16 VarID
Modified:
NONE
Notes:
NONE
Referrals:
NONE


InitHiiData in the FixedBootOrderHII.c

Function : InitHiiData

File: FixedBootOrderHII.c
Description:
Use HiiDatabaseProtocol get hii data package to buffer
Input:
EFI_HANDLE HiiHandle
Output:
NONE
Modified:
NONE
Notes:
NONE
Referrals:
NONE


FixedBootOrderHII.h

Description:
Header file of FixedBootOrder module


FixedBootOrderStyle.c

Description:
Replace TSE funtion Popupsel.Draw PopupSel.HandleAction
Frame.HandleAction


FixedBootOrderStyle.mak

Description:


FixedBootOrderTSE.c

Description:
TSE Related Functions

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

Function | Description
FBO_Protocol_install | Initialize EFI_FIXED_BOOT_ORDER_PROTOCOL function service.
FixedBootOrderLoadedConfigDefaults | TSE LoadDefault ELINK Hook.
FixedBootOrderSaveChange | Save boot device priority to variable.
FixedBootOrderSetupEnter | TSE Setup enter Hook.
FixedBootOrderToBoot |
GetBootOptionTokenMap | Get BootOptionTokenMap data.
GetDualDevMap | Get Daul DevMap data.
GetHiiMap | Get HiiMap data.
GetLegacyDevMap | Get Legacy DevMap data.
GetUefiDevMap | Get Uefi DevMap data.
SetBootOptionTokenMap | Set BootOptionTokenMap data
SetBootVariable | Set Boot#### variable Enable/Disable.
SetDualDevMap | Set Dual DevMap data to pFBODaulDevMap
SetHiiMap | Set Uefi DevMap data to pFBOHiiMap
SetLegacyDevMap | Set Legacy DevMap data to pFBOLegacyDevMap
SetUefiDevMap | Set Uefi DevMap data to pFBOUefiDevMap


FBO_Protocol_install in the FixedBootOrderTSE.c

Function : FBO_Protocol_install

File: FixedBootOrderTSE.c
Description:
Initialize EFI_FIXED_BOOT_ORDER_PROTOCOL function service.
Input:
None
Output:
None
Modified:
None
Notes:

Referrals:

None


FixedBootOrderLoadedConfigDefaults in the FixedBootOrderTSE.c

Function : FixedBootOrderLoadedConfigDefaults

File: FixedBootOrderTSE.c
Description:
TSE LoadDefault ELINK Hook.
Input:
None
Output:
None
Modified:
None
Notes:

Referrals:

None


FixedBootOrderSaveChange in the FixedBootOrderTSE.c

Function : FixedBootOrderSaveChange

File: FixedBootOrderTSE.c
Description:
Save boot device priority to variable.
Input:
None
Output:
None
Modified:
variable "LegacyDevOrder", "UefiDevOrder".
Notes:

Referrals:

None


FixedBootOrderSetupEnter in the FixedBootOrderTSE.c

Function : FixedBootOrderSetupEnter

File: FixedBootOrderTSE.c
Description:
TSE Setup enter Hook.
Input:
None
Output:
None
Modified:
Notes:

Referrals:

None


FixedBootOrderToBoot in the FixedBootOrderTSE.c

Function : FixedBootOrderToBoot

File: FixedBootOrderTSE.c
Description:
Input:
None
Output:
None
Modified:
variable "LegacyDevOrder", "UefiDevOrder".
Notes:

Referrals:

None


GetBootOptionTokenMap in the FixedBootOrderTSE.c

Function : GetBootOptionTokenMap

File: FixedBootOrderTSE.c
Description:
Get BootOptionTokenMap data.
Input:
None
Output:
*UINT16
Modified:
None
Notes:

Referrals:

None


GetDualDevMap in the FixedBootOrderTSE.c

Function : GetDualDevMap

File: FixedBootOrderTSE.c
Description:
Get Daul DevMap data.
Input:
*FBODevMap
Output:
EFI_STATUS
Modified:
None
Notes:

Referrals:

None


GetHiiMap in the FixedBootOrderTSE.c

Function : GetHiiMap

File: FixedBootOrderTSE.c
Description:
Get HiiMap data.
Input:
None
Output:
*pFBOHiiMap
Modified:
None
Notes:

Referrals:

None


GetLegacyDevMap in the FixedBootOrderTSE.c

Function : GetLegacyDevMap

File: FixedBootOrderTSE.c
Description:
Get Legacy DevMap data.
Input:
None
Output:
*FBODevMap
Modified:
None
Notes:

Referrals:

None


GetUefiDevMap in the FixedBootOrderTSE.c

Function : GetUefiDevMap

File: FixedBootOrderTSE.c
Description:
Get Uefi DevMap data.
Input:
None
Output:
*FBODevMap
Modified:
None
Notes:

Referrals:

None


SetBootOptionTokenMap in the FixedBootOrderTSE.c

Function : SetBootOptionTokenMap

File: FixedBootOrderTSE.c
Description:
Set BootOptionTokenMap data
Input:
UINT16 *p
Output:
EFI_STATUS
Modified:
None
Notes:

Referrals:

None


SetBootVariable in the FixedBootOrderTSE.c

Function : SetBootVariable

File: FixedBootOrderTSE.c
Description:
Set Boot#### variable Enable/Disable.
Input:
UINT16 BootIndex
BOOLEAN EnableDisable
Output:
None
Modified:
variable Boot####.
Notes:

Referrals:


SetDualDevMap in the FixedBootOrderTSE.c

Function : SetDualDevMap

File: FixedBootOrderTSE.c
Description:
Set Dual DevMap data to pFBODaulDevMap
Input:
FBODevMap *p
Output:
EFI_STATUS
Modified:
None
Notes:

Referrals:

None


SetHiiMap in the FixedBootOrderTSE.c

Function : SetHiiMap

File: FixedBootOrderTSE.c
Description:
Set Uefi DevMap data to pFBOHiiMap
Input:
FBOHiiMap *p
Output:
EFI_STATUS
Modified:
None
Notes:

Referrals:

None


SetLegacyDevMap in the FixedBootOrderTSE.c

Function : SetLegacyDevMap

File: FixedBootOrderTSE.c
Description:
Set Legacy DevMap data to pFBOLegacyDevMap
Input:
FBODevMap *p
Output:
EFI_STATUS
Modified:
None
Notes:

Referrals:

None


SetUefiDevMap in the FixedBootOrderTSE.c

Function : SetUefiDevMap

File: FixedBootOrderTSE.c
Description:
Set Uefi DevMap data to pFBOUefiDevMap
Input:
FBODevMap *p
Output:
EFI_STATUS
Modified:
None
Notes:

Referrals:

None


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.

  • B
  • C
  • E
  • F
  • G
  • H
  • I
  • L
  • S
  • U


Functions in Alphabetical Order

B

Function | Description
BuildFboLegacyDevOrder | Build FboLegacyDevOrder variable from BootOptionList. This variable should be set before we disable the undesried boot options for selected boot mode. So we can get the correct BootOptionList.Attributes reflecting the selection of setup.
BuildUEFIDevOrder | Go through the master boot option list and create memory representation of the uefi dev order variable


Functions in Alphabetical Order

C

Function | Description
CheckIsUSBkey | Using the passed BBS_TABLE entry pointer, determine the device type of the USBKey
CreateHiiIfrEndItem | Create a Ifr End Item.
CreateHiiIfrFormItem | Create a Form Item.
CreateHiiOneOfItem | Create a Hii OneOf Item.
CreateHiiOneOfOptionItem | Create a Hii OneOf Option Item.
CreateHiiRefItem | Create a Hii Ref Item.
CreateHiiSubtitleItem | Create a Subtitle Item.


Functions in Alphabetical Order

E

Function | Description
EfiCompareGuid | To avoid including EDK libs.


Functions in Alphabetical Order

F

Function | Description
FBO_AdjustPriority | first boot order of group, Change this gorup uefi and dual Priorities to Top position.
FBO_AdjustWtgPriority | First boot order of group, Change this gorup uefi Priorities to Top position.
FBO_CompareTagThenBbsIndex | This function returns result of compairing two DLINK tags.
FBO_FindTagPriority | For the passed Tag entry, return the correct boot priority based on the BootOptionTagPriorities global variable that is filled out based on the SDL Token BOOT_OPTION_TAG_PRIORITIES.
FBO_GetBbsEntryDeviceType | Using the passed BBS_TABLE entry pointer, determine the device type of the associated device
FBO_Init | Initialize the module memory, and device map data.
FBO_Protocol_install | Initialize EFI_FIXED_BOOT_ORDER_PROTOCOL function service.
FBO_SetBootOptionTags | Go through the entire boot option list and Apply priorities for each entry in the list.
FBO_SetDefaultUEFIDevOrder | Go through the master boot option list and create memory representation of the default uefi order variable
FBO_UpdateBootListPriority | use setup data LegacyPriorities/UefiPriorities/DualPriorities ,set legacy/uefi boot option list priority.
FboSyncBootOptionsFromDevOrder | UefiDevOrder and FboLegacyDevOrder variables contain the disabled flags saved by setup. Need to update the disabled flag to BootOptionList right before any other functions that will process the BootOptionList. BootOptionList will be set to NOT ACTIVE for disabled DevOrder, ACTIVE for enabled one.
FindLegacyDeviceGroupByType | Go through the legacy device order structure and find the legacy dev order group type that we want then return this group.
FIndVariableID | Search Hii Form Package Data of variable ID.
FixedBootOrderFormCallBack | Avoid each boot priorities from being duplicated to each other by using INTERACTIVE callback.
FixedBootOrderLoadedConfigDefaults | TSE LoadDefault ELINK Hook.
FixedBootOrderSaveChange | Save boot device priority to variable.
FixedBootOrderSetupEnter | TSE Setup enter Hook.
FixedBootOrderStringInit | Install a form callback.
FixedBootOrderToBoot |


Functions in Alphabetical Order

G

Function | Description
GetBootOptionTokenMap | Get BootOptionTokenMap data.
GetDevMapDataCount | get the FBODevMap data amount.
GetDualDevMap | Get Daul DevMap data.
GetHiiMap | Get HiiMap data.
GetHiiMapDataCount | get the FBOHiiMap data amount.
GetLegacyDevMap | Get Legacy DevMap data.
GetUEFIBootName | Get Variable Boot#### and return data pointer.
GetUefiBootOptionTag | Function returns device type for given handle
GetUefiDevMap | Get Uefi DevMap data.
GroupkeyProcess | Avoid each group boot priorities from being duplicated to each other by using INTERACTIVE callback.


Functions in Alphabetical Order

H

Function | Description
HiiAddLanguageBootOptionString | Install multi-language for STR_BOOT_OPTION.


Functions in Alphabetical Order

I

Function | Description
InitHiiData | Use HiiDatabaseProtocol get hii data package to buffer
InitialDaulHiiItem | Create Dual mode boot item device Hii Item data.
InitialLegacyHiiItemDefault | Create legacy boot item device Hii Item data.
InitialUefiHiiItemDefault | Create UEFI boot item device Hii Item data.
InitLegacyGroupDefault | Each group device name Hii String Update, and fixed HiiDB Oneof Data.
InitUefiGroupDefault | Each group device name Hii String Update, and fixed HiiDB Oneof Data.
IsUSBkeyByHandle | determine the device type of the USBKey size.


Functions in Alphabetical Order

L

Function | Description
load_default_string | This function called after setup utility loaded config defaults based on user input. change fixedbootorder display default devcie string.


Functions in Alphabetical Order

S

Function | Description
SearchDevMapByType | Search DevMap data index by device type.
SearchDevMapByType | Search DevMap data index by device type.
SearchHiiMapByType | Search HiiMap data index by device type.
SetBootOptionTokenMap | Set BootOptionTokenMap data
SetBootVariable | Set Boot#### variable Enable/Disable.
SetDualDevMap | Set Dual DevMap data to pFBODaulDevMap
SetHiiMap | Set Uefi DevMap data to pFBOHiiMap
SetLegacyBootOptionPriority | Set legacy boot option list priority.
SetLegacyDevMap | Set Legacy DevMap data to pFBOLegacyDevMap
SetUefiBootOptionPriority | Set uefi boot option list priority.
SetUefiDevMap | Set Uefi DevMap data to pFBOUefiDevMap


Functions in Alphabetical Order

U

Function | Description
UpdateDeviceHiiString | Update device item multi-language Hii string
UpdateLegacyDeviceHiiString | Update boot option type string token
UpdateUefiDeviceHiiString | Update boot option type string token


General Information


Copyright

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

Copyright (c) 1999-2011 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.