Home | History | Annotate | Download | only in OpalPasswordDxe
      1 /** @file
      2 
      3 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 **/
     13 #include "OpalHiiFormValues.h"
     14 
     15 
     16 #define EFI_HII_PLATFORM_SETUP_FORMSET_GUID \
     17   { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } }
     18 
     19 formset
     20   guid      = SETUP_FORMSET_GUID,
     21   title     = STRING_TOKEN(STR_OPAL),
     22   help      = STRING_TOKEN(STR_FORM_SET_HELP),
     23   classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,
     24 
     25   // Define a Buffer Storage (EFI_IFR_VARSTORE) that will be filled
     26   // out initially through extractConfig call
     27   varstore OPAL_HII_CONFIGURATION,           // This is the Data structure type
     28     name  = OpalHiiConfig,                   // Define referenced name in vfr
     29     guid  = SETUP_VARIABLE_GUID;         // GUID of this Buffer storage
     30 
     31 form formid = FORMID_VALUE_MAIN_MENU,
     32     title  = STRING_TOKEN(STR_OPAL);
     33 
     34     //CONFIG_VARIABLE(HII_KEY(HII_KEY_ID_VAR_SUPPORTED_DISKS), SupportedDisks, 0x0, 0xFFFF);
     35     suppressif TRUE;
     36         numeric
     37             name    = SupportedDisks,
     38             varid   = OpalHiiConfig.SupportedDisks,
     39             prompt  = STRING_TOKEN(STR_NULL),
     40             help    = STRING_TOKEN(STR_NULL),
     41             flags   = INTERACTIVE,
     42             key     = 0x800E,   //32782,
     43             minimum = 0x0,
     44             maximum = 0xFFFF,
     45     endnumeric;
     46     endif;
     47 
     48     subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION);
     49 
     50     subtitle text = STRING_TOKEN(STR_NULL);
     51 
     52     text
     53         help   = STRING_TOKEN(STR_NULL),
     54         text   = STRING_TOKEN(STR_MAIN_PHY_DISKS_LBL);
     55 
     56     subtitle text = STRING_TOKEN(STR_NULL);
     57 
     58     //DISK( 0 );
     59     suppressif ( questionref(SupportedDisks) & ( 0x1 ) ) == 0;
     60         goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
     61             prompt  = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_0 ),
     62             help    = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
     63             flags   = INTERACTIVE, \
     64             key     = 0x8001;   //32769
     65     endif;
     66 
     67     //DISK( 1 );
     68     suppressif ( questionref(SupportedDisks) & ( 0x2 ) ) == 0;
     69         goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
     70             prompt  = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_1 ),
     71             help    = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
     72             flags   = INTERACTIVE, \
     73             key     = 0x8101;   //33025
     74     endif;
     75 
     76     //DISK( 2 );
     77     suppressif ( questionref(SupportedDisks) & ( 0x4 ) ) == 0;
     78         goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
     79             prompt  = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_2 ),
     80             help    = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
     81             flags   = INTERACTIVE, \
     82             key     = 0x8201;   //33281
     83     endif;
     84 
     85     //DISK( 3 );
     86     suppressif ( questionref(SupportedDisks) & ( 0x8 ) ) == 0;
     87         goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
     88             prompt  = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_3 ),
     89             help    = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
     90             flags   = INTERACTIVE, \
     91             key     = 0x8301;  // 33537
     92     endif;
     93 
     94     //DISK( 4 );
     95     suppressif ( questionref(SupportedDisks) & ( 0x10 ) ) == 0;
     96         goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
     97             prompt  = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_4 ),
     98             help    = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
     99             flags   = INTERACTIVE, \
    100             key     = 0x8401;  // 33793
    101     endif;
    102 
    103     //DISK( 5 );
    104     suppressif ( questionref(SupportedDisks) & ( 0x20 ) ) == 0;
    105         goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
    106             prompt  = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_5 ),
    107             help    = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
    108             flags   = INTERACTIVE, \
    109             key     = 0x8501;   // 34049
    110     endif;
    111 
    112     //No disks on system
    113     suppressif ideqval OpalHiiConfig.NumDisks > 0;
    114         text
    115             help    = STRING_TOKEN(STR_NULL),
    116             text    = STRING_TOKEN(STR_MAIN_NO_DISKS_PRESENT_LBL);
    117     endif;
    118 
    119     subtitle text = STRING_TOKEN(STR_NULL);
    120 
    121     grayoutif TRUE;
    122       text
    123           help    = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
    124           text    = STRING_TOKEN(STR_BLOCKSID_STATUS);
    125       text
    126           help    = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
    127           text    = STRING_TOKEN(STR_BLOCKSID_STATUS1);
    128       text
    129           help    = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
    130           text    = STRING_TOKEN(STR_BLOCKSID_STATUS2);
    131       text
    132           help    = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
    133           text    = STRING_TOKEN(STR_BLOCKSID_STATUS3);
    134       subtitle text = STRING_TOKEN(STR_NULL);
    135     endif;
    136 
    137     oneof varid   = OpalHiiConfig.EnableBlockSid,
    138       questionid  = 0x8017, // 32791,
    139       prompt      = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID),
    140       help        = STRING_TOKEN(STR_DISK_INFO_GOTO_ENABLE_BLOCKSID_HELP),
    141       flags       = INTERACTIVE,
    142       option text = STRING_TOKEN(STR_NONE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
    143       option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;
    144       option text = STRING_TOKEN(STR_DISABLED), value = 2, flags = RESET_REQUIRED;
    145       option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_TRUE), value = 3, flags = RESET_REQUIRED;
    146       option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_FALSE), value = 4, flags = RESET_REQUIRED;
    147       option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_TRUE), value = 5, flags = RESET_REQUIRED;
    148       option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_FALSE), value = 6, flags = RESET_REQUIRED;
    149     endoneof;
    150 
    151 
    152 
    153 endform;  // MAIN MENU FORM
    154 
    155 //
    156 /////////////////   DISK INFO FORM   /////////////////
    157 //
    158 form formid = FORMID_VALUE_DISK_INFO_FORM_MAIN,
    159     title  = STRING_TOKEN(STR_OPAL);
    160 
    161     suppressif TRUE;
    162         numeric
    163             name    = SelectedDiskAvailableActions,
    164             varid   = OpalHiiConfig.SelectedDiskAvailableActions,
    165             prompt  = STRING_TOKEN(STR_NULL),
    166             help    = STRING_TOKEN(STR_NULL),
    167             flags   = INTERACTIVE,
    168             key     = 0x800F,     // 32783
    169             minimum = 0x0,
    170             maximum = 0xFFFF,
    171     endnumeric;
    172     endif;
    173 
    174     subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION);
    175 
    176     subtitle text = STRING_TOKEN(STR_NULL);
    177 
    178     text
    179         help   = STRING_TOKEN(STR_NULL),
    180         text   = STRING_TOKEN(STR_DISK_INFO_SELECTED_DISK_NAME);
    181 
    182     subtitle text = STRING_TOKEN(STR_NULL);
    183 
    184     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_LOCK ) == 0;
    185         goto FORMID_VALUE_DISK_ACTION_FORM,
    186             prompt  = STRING_TOKEN(STR_DISK_INFO_LOCK),
    187             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_LOCK_HELP),
    188             flags   = INTERACTIVE,
    189             key     = 0x8002;    // 32770
    190     endif;
    191 
    192     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_UNLOCK ) == 0;
    193         goto FORMID_VALUE_DISK_ACTION_FORM,
    194             prompt  = STRING_TOKEN(STR_DISK_INFO_UNLOCK),
    195             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_UNLOCK_HELP),
    196             flags   = INTERACTIVE,
    197             key     = 0x8003; //32771;
    198     endif;
    199 
    200     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_ADMIN_PWD ) == 0;
    201         goto FORMID_VALUE_DISK_ACTION_FORM,
    202             prompt  = STRING_TOKEN(STR_DISK_INFO_SET_ADMIN_PSWD),
    203             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_SET_ADMIN_PSWD_HELP),
    204             flags   = INTERACTIVE,
    205             key     = 0x8004; //32772;
    206         endif;
    207 
    208     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_USER_PWD ) == 0;
    209         goto FORMID_VALUE_DISK_ACTION_FORM,
    210             prompt  = STRING_TOKEN(STR_DISK_INFO_SET_USER_PSWD),
    211             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_SET_USER_PSWD_HELP),
    212             flags   = INTERACTIVE,
    213             key     = 0x8005; //32773;
    214     endif;
    215 
    216     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SECURE_ERASE ) == 0;
    217         goto FORMID_VALUE_DISK_ACTION_FORM,
    218             prompt  = STRING_TOKEN(STR_DISK_INFO_SECURE_ERASE),
    219             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_SECURE_ERASE_HELP),
    220             flags   = INTERACTIVE,
    221             key     = 0x8006; //32774;
    222     endif;
    223 
    224     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_REVERT ) == 0;
    225         goto FORMID_VALUE_DISK_ACTION_FORM,
    226             prompt  = STRING_TOKEN(STR_DISK_INFO_REVERT),
    227             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_PSID_REVERT_HELP),
    228             flags   = INTERACTIVE,
    229             key     = 0x8008; //32776;
    230     endif;
    231 
    232     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_PSID_REVERT ) == 0;
    233         goto FORMID_VALUE_DISK_ACTION_FORM,
    234             prompt  = STRING_TOKEN(STR_DISK_INFO_PSID_REVERT),
    235             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_PSID_REVERT_HELP),
    236             flags   = INTERACTIVE,
    237             key     = 0x8007; //32775;
    238     endif;
    239 
    240     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_DISABLE_USER ) == 0;
    241         goto FORMID_VALUE_DISK_ACTION_FORM,
    242             prompt  = STRING_TOKEN(STR_DISK_INFO_DISABLE_USER),
    243             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_DISABLE_USER_HELP),
    244             flags   = INTERACTIVE,
    245             key     = 0x8009; //32777;
    246     endif;
    247 
    248     suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_ENABLE_FEATURE ) == 0;
    249         goto FORMID_VALUE_DISK_ACTION_FORM,
    250             prompt  = STRING_TOKEN(STR_DISK_INFO_ENABLE_FEATURE),
    251             help    = STRING_TOKEN(STR_DISK_INFO_GOTO_ENABLE_FEATURE_HELP),
    252             flags   = INTERACTIVE,
    253             key     = 0x800A; //32778;
    254     endif;
    255 
    256 endform;  // DISK INFO FORM
    257 
    258 //
    259 /////////////////   DISK ACTION FORM   /////////////////
    260 //
    261 form formid = FORMID_VALUE_DISK_ACTION_FORM,
    262     title  = STRING_TOKEN(STR_OPAL);
    263 
    264     suppressif TRUE;
    265         numeric
    266             name    = AvailableFields,
    267             varid   = OpalHiiConfig.AvailableFields,
    268             prompt  = STRING_TOKEN(STR_NULL),
    269             help    = STRING_TOKEN(STR_NULL),
    270             flags   = INTERACTIVE,
    271             key     = 0x8012,  //32786,
    272             minimum = 0x0,
    273             maximum = 0xFFFF,
    274     endnumeric;
    275     endif;
    276 
    277     subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION);
    278 
    279     subtitle text = STRING_TOKEN(STR_NULL);
    280 
    281     text
    282         help   = STRING_TOKEN(STR_NULL),
    283         text   = STRING_TOKEN(STR_DISK_INFO_SELECTED_DISK_NAME);
    284 
    285     subtitle text = STRING_TOKEN(STR_NULL);
    286 
    287     text
    288         help   = STRING_TOKEN(STR_NULL),
    289         text   = STRING_TOKEN(STR_DISK_ACTION_LBL);
    290 
    291     subtitle text = STRING_TOKEN(STR_NULL);
    292 
    293     suppressif (questionref(AvailableFields) & HII_FIELD_KEEP_USER_DATA) == 0;
    294         grayoutif (questionref(AvailableFields) & HII_FIELD_KEEP_USER_DATA_FORCED) != 0;
    295             checkbox
    296                 name = MyCheckbox,
    297                 varid = OpalHiiConfig.KeepUserData,
    298                 prompt = STRING_TOKEN(STR_KEEP_USER_DATA_PROMPT),
    299                 help = STRING_TOKEN(STR_KEEP_USER_DATA_HELP),
    300                 key = 0x8011,    //32785,
    301             endcheckbox;
    302 
    303             //EMPTY_LINE;
    304             text
    305                 help    = STRING_TOKEN(STR_NULL),
    306                 text    = STRING_TOKEN(STR_NULL);
    307         endif;
    308     endif;
    309 
    310     suppressif (questionref(AvailableFields) & HII_FIELD_PASSWORD) == 0;
    311         password
    312             varid = OpalHiiConfig.Password,
    313             prompt = STRING_TOKEN(STR_PASSWORD_PROMPT),
    314             help = STRING_TOKEN(STR_PASSWORD_HELP),
    315             flags = INTERACTIVE,
    316             key = 0x800C,   //32780,
    317             minsize = 6,
    318             maxsize = 20,
    319         endpassword;
    320     endif;
    321 
    322     suppressif (questionref(AvailableFields) & HII_FIELD_PSID) == 0;
    323         string
    324             varid = OpalHiiConfig.Psid,
    325             prompt = STRING_TOKEN(STR_REVERT_PROMPT),
    326             help = STRING_TOKEN(STR_REVERT_HELP),
    327             flags = INTERACTIVE,
    328             key = 0x800D,   //32781,
    329             minsize = PSID_CHARACTER_LENGTH,
    330             maxsize = PSID_CHARACTER_LENGTH,
    331         endstring;
    332     endif;
    333 
    334     subtitle text = STRING_TOKEN(STR_NULL);
    335 
    336     text
    337         help   = STRING_TOKEN(STR_NULL),
    338         text   = STRING_TOKEN(STR_ACTION_STATUS);
    339 
    340     subtitle text = STRING_TOKEN(STR_NULL);
    341 
    342     goto FORMID_VALUE_MAIN_MENU,
    343         prompt  = STRING_TOKEN(STR_GOTO_HOME),
    344         help    = STRING_TOKEN(STR_GOTO_HOME_HELP),
    345         flags   = INTERACTIVE,
    346         key     = 0x8000;   //32768;
    347 
    348 endform;  // DISK ACTION FORM
    349 
    350 endformset;
    351