135 lines
5.0 KiB
Plaintext
135 lines
5.0 KiB
Plaintext
/** @file
|
|
|
|
Secure Option ROM Control VFR implementation.
|
|
|
|
;******************************************************************************
|
|
;* Copyright (c) 2014 - 2018, Insyde Software Corporation. All Rights Reserved.
|
|
;*
|
|
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
;* transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
;* any part of this publication in any form, by any means, without the prior
|
|
;* written permission of Insyde Software Corporation.
|
|
;*
|
|
;******************************************************************************
|
|
*/
|
|
|
|
#include "SetupDataStruc.h"
|
|
|
|
formset
|
|
guid = SECURE_OPTION_ROM_CONTROL_FORMSET_GUID,
|
|
title = STRING_TOKEN(STR_SECURE_OPTION_ROM_CONTROL_FORMSET),
|
|
help = STRING_TOKEN(STR_SECURE_OPTION_ROM_CONTROL_FORMSET_HELP),
|
|
classguid = SECURE_OPTIONROM_CLASS_GUID,
|
|
|
|
//
|
|
// Define a Buffer Storage (EFI_IFR_VARSTORE)
|
|
//
|
|
varstore SECURE_OPROM_CONTROL_CONFIGURATION, // This is the data structure type
|
|
varid = CONFIG_VARSTORE_ID, // Optional VarStore ID
|
|
name = SecOpRomConfig, // Define referenced name in vfr
|
|
guid = SECURE_OPTION_ROM_CONTROL_FORMSET_GUID; // GUID of this buffer storage
|
|
|
|
//
|
|
// Varstore for dynamic option ROM policy setting
|
|
//
|
|
varstore OPTION_ROM_POLICY_SETTING,
|
|
varid = SETTING_VARSTORE_ID,
|
|
name = OpRomSetting,
|
|
guid = SECURE_OPTION_ROM_CONTROL_FORMSET_GUID;
|
|
|
|
namevaluevarstore SecOpRomConfigNameValue,
|
|
name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0),
|
|
guid = SECURE_OPTION_ROM_CONTROL_FORMSET_GUID;
|
|
|
|
//
|
|
// Form SECURE_OPTION_ROM_CONTROL_FORM_ID
|
|
//
|
|
form
|
|
formid = SECURE_OPTION_ROM_CONTROL_FORM_ID, title = STRING_TOKEN(STR_SECURE_OPTION_ROM_CONTROL);
|
|
|
|
subtitle
|
|
text = STRING_TOKEN(STR_SECURE_OPTION_ROM_CONTROL);
|
|
|
|
#if FeaturePcdGet (PcdH2OPciOptionRomSecurityControlBySlot)
|
|
oneof
|
|
varid = SecOpRomConfig.OptionRomPolicy,
|
|
questionid = KEY_OPROM_POLICY_CONTROL,
|
|
prompt = STRING_TOKEN(STR_ON_BOARD_DEFAULT_OPTION_ROM_POLICY_TEXT),
|
|
help = STRING_TOKEN(STR_ON_BOARD_DEFAULT_OPTION_ROM_POLICY_HELP),
|
|
option text = STRING_TOKEN(STR_AUTO_TEXT), value = 0, flags = DEFAULT;
|
|
option text = STRING_TOKEN(STR_NONE_TEXT), value = 1, flags = 0;
|
|
option text = STRING_TOKEN(STR_LEGACY_ROM_TEXT), value = 2, flags = 0;
|
|
option text = STRING_TOKEN(STR_UNSIGNED_EFI_ROM_TEXT), value = 3, flags = 0;
|
|
option text = STRING_TOKEN(STR_SIGNED_EFI_ROM_TEXT), value = 4, flags = 0;
|
|
option text = STRING_TOKEN(STR_ALL_TEXT), value = 5, flags = 0;
|
|
endoneof;
|
|
|
|
subtitle
|
|
text = STRING_TOKEN(STR_BLANK_STRING);
|
|
|
|
label SECURE_OPTION_ROM_POLICY_LABEL;
|
|
label SECURE_OPTION_ROM_POLICY_END_LABEL;
|
|
#else
|
|
oneof
|
|
varid = SecOpRomConfig.OptionRomPolicy,
|
|
questionid = KEY_OPROM_POLICY_CONTROL,
|
|
prompt = STRING_TOKEN(STR_DEFAULT_OPTION_ROM_POLICY_TEXT),
|
|
help = STRING_TOKEN(STR_DEFAULT_OPTION_ROM_POLICY_HELP),
|
|
option text = STRING_TOKEN(STR_AUTO_TEXT), value = 0, flags = DEFAULT;
|
|
option text = STRING_TOKEN(STR_NONE_TEXT), value = 1, flags = 0;
|
|
option text = STRING_TOKEN(STR_LEGACY_ROM_TEXT), value = 2, flags = 0;
|
|
option text = STRING_TOKEN(STR_UNSIGNED_EFI_ROM_TEXT), value = 3, flags = 0;
|
|
option text = STRING_TOKEN(STR_SIGNED_EFI_ROM_TEXT), value = 4, flags = 0;
|
|
option text = STRING_TOKEN(STR_ALL_TEXT), value = 5, flags = 0;
|
|
endoneof;
|
|
|
|
suppressif
|
|
ideqval SecOpRomConfig.OptionRomPolicy == 0;
|
|
label SECURE_OPTION_ROM_POLICY_LABEL;
|
|
label SECURE_OPTION_ROM_POLICY_END_LABEL;
|
|
endif;
|
|
|
|
subtitle
|
|
text = STRING_TOKEN(STR_BLANK_STRING);
|
|
|
|
suppressif
|
|
ideqval SecOpRomConfig.OptionRomPolicy == 0;
|
|
text
|
|
help = STRING_TOKEN(STR_ADD_NEW_OPTION_ROM_POLICY_HELP),
|
|
text = STRING_TOKEN(STR_ADD_NEW_OPTION_ROM_POLICY_TEXT),
|
|
flags = INTERACTIVE,
|
|
key = KEY_OPROM_POLICY_INSERT;
|
|
endif;
|
|
|
|
suppressif
|
|
ideqval SecOpRomConfig.OptionRomPolicy == 0;
|
|
text
|
|
help = STRING_TOKEN(STR_DELETE_OPROM_POLICY_HELP),
|
|
text = STRING_TOKEN(STR_DELETE_OPROM_POLICY_STRING),
|
|
flags = INTERACTIVE,
|
|
key = KEY_OPROM_POLICY_DELETE;
|
|
endif;
|
|
#endif
|
|
|
|
//
|
|
// This Opcode is for F9 load default.
|
|
//
|
|
suppressif
|
|
TRUE;
|
|
|
|
numeric varid = SecOpRomConfigNameValue[0], // This numeric take NameValueVar0 as storage
|
|
questionid = KEY_LOAD_DEFAULT,
|
|
prompt = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0),
|
|
help = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0),
|
|
flags = NUMERIC_SIZE_1 | INTERACTIVE, // Size of this numeric is 1 byte
|
|
extflags = SETUP_CHANGE_LIST_IGNORE,
|
|
minimum = 0,
|
|
maximum = 0xff,
|
|
step = 0,
|
|
default = 0,
|
|
endnumeric;
|
|
endif;
|
|
endform;
|
|
endformset;
|
|
|