BootMaintenanceManagerUiLib depend on the LeagcyBootMaintUiLib to show the legacy menus. So we need to do the actions related to LegacyUi in BMM after the LeagcyBootMaintUiLib have been initialized. So now : 1). update menus (including legacy menus), 2) re-scan boot options (including legacy boot option) when opening the BMM form. We think when opening BMM form, the LeagcyBootMaintUiLib must have been initialized. Cc: Liming Gao <liming.gao@intel.com> Cc: Eric Dong <eric.dong@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			361 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			361 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ///** @file
 | |
| //  Boot Maintenance Utility Formset
 | |
| //
 | |
| //  Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>
 | |
| //  This program and the accompanying materials
 | |
| //  are licensed and made available under the terms and conditions of the BSD License
 | |
| //  which accompanies this distribution.  The full text of the license may be found at
 | |
| //  http://opensource.org/licenses/bsd-license.php
 | |
| //  
 | |
| //  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
| //  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| //  
 | |
| //**/
 | |
| 
 | |
| #include "FormGuid.h"
 | |
| 
 | |
| formset
 | |
|   guid = BOOT_MAINT_FORMSET_GUID,
 | |
|   title = STRING_TOKEN(STR_FORM_MAIN_TITLE),
 | |
|   help = STRING_TOKEN(STR_BOOT_MAINT_MANAGER_HELP),
 | |
|   classguid = gEfiIfrFrontPageGuid,
 | |
| 
 | |
|   varstore BMM_FAKE_NV_DATA,
 | |
|     varid = VARSTORE_ID_BOOT_MAINT,
 | |
|     name = BmmData,
 | |
|     guid = BOOT_MAINT_FORMSET_GUID;
 | |
| 
 | |
|   form formid = FORM_MAIN_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_MAIN_TITLE);
 | |
|        //
 | |
|        // Add this invisible text in order to indicate enter Boot Maintenance Manager form.
 | |
|        // To trigger the form open action.
 | |
|        //
 | |
|        suppressif TRUE;
 | |
|           text
 | |
|               help  = STRING_TOKEN(STR_NONE),
 | |
|               text  = STRING_TOKEN(STR_NONE),
 | |
|               flags = INTERACTIVE,
 | |
|               key   = KEY_VALUE_TRIGGER_FORM_OPEN_ACTION;
 | |
|        endif;
 | |
|          
 | |
|     label LABEL_FORM_MAIN_START;
 | |
|     //
 | |
|     // This is where we will dynamically add a Action type op-code to show 
 | |
|     // the platform information.
 | |
|     //
 | |
|     label LABEL_FORM_MAIN_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_BOOT_SETUP_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE);
 | |
| 
 | |
|        goto FORM_MAIN_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
 | |
|             help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
 | |
|             //flags = INTERACTIVE,
 | |
|             //key = FORM_MAIN_ID;
 | |
| 
 | |
|        goto FORM_BOOT_SETUP_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE),
 | |
|             help = STRING_TOKEN(STR_FORM_BOOT_ADD_HELP),
 | |
|             flags = INTERACTIVE,
 | |
|             key = FORM_BOOT_ADD_ID;
 | |
| 
 | |
|        goto FORM_BOOT_DEL_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE),
 | |
|             help = STRING_TOKEN(STR_FORM_BOOT_IMMEDIATE_HELP),
 | |
|             flags = INTERACTIVE,
 | |
|             key = FORM_BOOT_DEL_ID;
 | |
| 
 | |
|        goto FORM_BOOT_CHG_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),
 | |
|             help = STRING_TOKEN(STR_FORM_BOOT_IMMEDIATE_HELP),
 | |
|             flags = INTERACTIVE,
 | |
|             key = FORM_BOOT_CHG_ID;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_DRIVER_SETUP_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE);
 | |
| 
 | |
|        goto FORM_MAIN_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
 | |
|             help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
 | |
|             //help = STRING_TOKEN(STR_FORM_GOTO_MAIN),
 | |
|             //flags = INTERACTIVE,
 | |
|             //key = FORM_MAIN_ID;
 | |
| 
 | |
|        goto FORM_DRV_ADD_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE),
 | |
|             help = STRING_TOKEN(STR_FORM_DRV_ADD_HELP),
 | |
|             flags = INTERACTIVE,
 | |
|             key = FORM_DRV_ADD_ID;
 | |
| 
 | |
|        goto FORM_DRV_DEL_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE),
 | |
|             help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
 | |
|             flags = INTERACTIVE,
 | |
|             key = FORM_DRV_DEL_ID;
 | |
| 
 | |
|        goto FORM_DRV_CHG_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),
 | |
|             help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
 | |
|             flags = INTERACTIVE,
 | |
|             key = FORM_DRV_CHG_ID;
 | |
|   endform;
 | |
| 
 | |
|    form formid = FORM_BOOT_ADD_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_BOOT_ADD_DESC_TITLE);
 | |
| 
 | |
|        label FORM_BOOT_ADD_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|        subtitle text = STRING_TOKEN(STR_NULL_STRING);
 | |
| 
 | |
|        string    varid    = BmmData.BootDescriptionData,
 | |
|                  questionid = KEY_VALUE_BOOT_DESCRIPTION,
 | |
|                  prompt   = STRING_TOKEN(STR_LOAD_OPTION_DESC),
 | |
|                  help     = STRING_TOKEN(STR_NULL_STRING),
 | |
|                  flags    = INTERACTIVE,
 | |
|                  minsize  = 6,
 | |
|                  maxsize  = 75,
 | |
|        endstring;
 | |
| 
 | |
|        string    varid    = BmmData.BootOptionalData,
 | |
|                  questionid = KEY_VALUE_BOOT_OPTION,
 | |
|                  prompt   = STRING_TOKEN(STR_OPTIONAL_DATA),
 | |
|                  help     = STRING_TOKEN(STR_NULL_STRING),
 | |
|                  flags    = INTERACTIVE,
 | |
|                  minsize  = 0,
 | |
|                  maxsize  = 120,
 | |
|        endstring;
 | |
| 
 | |
|        subtitle text = STRING_TOKEN(STR_NULL_STRING);
 | |
| 
 | |
|        text
 | |
|          help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
 | |
|          text   = STRING_TOKEN(STR_SAVE_AND_EXIT),
 | |
|          flags  = INTERACTIVE,
 | |
|          key    = KEY_VALUE_SAVE_AND_EXIT_BOOT;
 | |
| 
 | |
|        text
 | |
|          help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
 | |
|          text   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
 | |
|          flags  = INTERACTIVE,
 | |
|          key    = KEY_VALUE_NO_SAVE_AND_EXIT_BOOT;
 | |
|          
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_BOOT_DEL_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE);
 | |
| 
 | |
|        label FORM_BOOT_DEL_ID;
 | |
|        label LABEL_END;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_BOOT_CHG_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE);
 | |
| 
 | |
|        label FORM_BOOT_CHG_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_DRV_ADD_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE);
 | |
| 
 | |
|        goto FORM_MAIN_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
 | |
|             help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
 | |
|             //flags = INTERACTIVE,
 | |
|             //key = FORM_MAIN_ID;
 | |
| 
 | |
|        goto FORM_DRIVER_SETUP_ID,
 | |
|             prompt = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),
 | |
|             help = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),
 | |
|             flags = INTERACTIVE,
 | |
|             key = FORM_DRV_ADD_FILE_ID;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_DRV_ADD_FILE_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_DRV_ADD_DESC_TITLE);
 | |
|        
 | |
|        label FORM_DRV_ADD_FILE_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|        subtitle text = STRING_TOKEN(STR_NULL_STRING);
 | |
| 
 | |
|        string    varid    = BmmData.DriverDescriptionData,
 | |
|                  questionid = KEY_VALUE_DRIVER_DESCRIPTION,
 | |
|                  prompt   = STRING_TOKEN(STR_LOAD_OPTION_DESC),
 | |
|                  help     = STRING_TOKEN(STR_NULL_STRING),
 | |
|                  flags    = INTERACTIVE,
 | |
|                  minsize  = 6,
 | |
|                  maxsize  = 75,
 | |
|        endstring;
 | |
| 
 | |
|        string    varid    = BmmData.DriverOptionalData,
 | |
|                  questionid = KEY_VALUE_DRIVER_OPTION,
 | |
|                  prompt   = STRING_TOKEN(STR_OPTIONAL_DATA),
 | |
|                  help     = STRING_TOKEN(STR_NULL_STRING),
 | |
|                  flags    = INTERACTIVE,
 | |
|                  minsize  = 0,
 | |
|                  maxsize  = 120,
 | |
|        endstring;
 | |
| 
 | |
|        checkbox varid    = BmmData.ForceReconnect,
 | |
|                prompt   = STRING_TOKEN(STR_LOAD_OPTION_FORCE_RECON),
 | |
|                help     = STRING_TOKEN(STR_LOAD_OPTION_FORCE_RECON),
 | |
|                flags    = CHECKBOX_DEFAULT,
 | |
|                key      = 0,
 | |
|        endcheckbox;
 | |
| 
 | |
|        subtitle text = STRING_TOKEN(STR_NULL_STRING);
 | |
| 
 | |
|        text
 | |
|          help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
 | |
|          text   = STRING_TOKEN(STR_SAVE_AND_EXIT),
 | |
|          flags  = INTERACTIVE,
 | |
|          key    = KEY_VALUE_SAVE_AND_EXIT_DRIVER;  //BUGBUB: allow duplicate key in one formset???
 | |
| 
 | |
|        text
 | |
|          help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
 | |
|          text   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
 | |
|          flags  = INTERACTIVE,
 | |
|          key    = KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_DRV_DEL_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE);
 | |
| 
 | |
|        label FORM_DRV_DEL_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_DRV_CHG_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE);
 | |
| 
 | |
|        label FORM_DRV_CHG_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_CON_MAIN_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE);
 | |
| 
 | |
|        goto FORM_MAIN_ID,
 | |
|        prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
 | |
|        help = STRING_TOKEN(STR_FORM_GOTO_MAIN);
 | |
|        //flags = INTERACTIVE,
 | |
|        //key = FORM_MAIN_ID;
 | |
| 
 | |
|        goto FORM_CON_IN_ID,
 | |
|        prompt = STRING_TOKEN(STR_FORM_CON_IN_TITLE),
 | |
|        help = STRING_TOKEN(STR_FORM_CON_IN_HELP),
 | |
|        flags = INTERACTIVE,
 | |
|        key = FORM_CON_IN_ID;
 | |
| 
 | |
|        goto FORM_CON_OUT_ID,
 | |
|        prompt = STRING_TOKEN(STR_FORM_CON_OUT_TITLE),
 | |
|        help = STRING_TOKEN(STR_FORM_CON_OUT_HELP),
 | |
|        flags = INTERACTIVE,
 | |
|        key = FORM_CON_OUT_ID;
 | |
| 
 | |
|        goto FORM_CON_ERR_ID,
 | |
|        prompt = STRING_TOKEN(STR_FORM_STD_ERR_TITLE),
 | |
|        help = STRING_TOKEN(STR_FORM_STD_ERR_HELP),
 | |
|        flags = INTERACTIVE,
 | |
|        key = FORM_CON_ERR_ID;
 | |
| 
 | |
|        goto FORM_CON_MODE_ID,
 | |
|        prompt = STRING_TOKEN(STR_FORM_MODE_TITLE),
 | |
|        help = STRING_TOKEN(STR_FORM_MODE_HELP),
 | |
|        flags = INTERACTIVE,
 | |
|        key = FORM_CON_MODE_ID;
 | |
| 
 | |
|        goto FORM_CON_COM_ID,
 | |
|        prompt = STRING_TOKEN(STR_FORM_COM_TITLE),
 | |
|        help = STRING_TOKEN(STR_FORM_COM_HELP),
 | |
|        flags = INTERACTIVE,
 | |
|        key = FORM_CON_COM_ID;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_CON_MODE_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_MODE_TITLE);
 | |
| 
 | |
|        label FORM_CON_MODE_ID;
 | |
|        label LABEL_END;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_CON_COM_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_COM_TITLE);
 | |
| 
 | |
|        label FORM_CON_COM_ID;
 | |
|        label LABEL_END;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_CON_COM_SETUP_ID,
 | |
|        title = STRING_TOKEN(STR_CON_COM_SETUP);
 | |
| 
 | |
|        label FORM_CON_COM_SETUP_ID;
 | |
|        label LABEL_END;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_FILE_SEEK_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);
 | |
| 
 | |
|        label FORM_FILE_SEEK_ID;
 | |
|        label LABEL_END;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_FILE_NEW_SEEK_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);
 | |
| 
 | |
|        label FORM_FILE_NEW_SEEK_ID;
 | |
|        label LABEL_END;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_DRV_ADD_HANDLE_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_DRV_ADD_HANDLE_TITLE);
 | |
| 
 | |
|        label FORM_DRV_ADD_HANDLE_ID;
 | |
|        label LABEL_END;
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_DRV_ADD_HANDLE_DESC_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_DRV_ADD_DESC_TITLE);
 | |
| 
 | |
|        label FORM_DRV_ADD_HANDLE_DESC_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_CON_IN_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_CON_IN_TITLE);
 | |
| 
 | |
|        label FORM_CON_IN_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_CON_OUT_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_CON_OUT_TITLE);
 | |
| 
 | |
|        label FORM_CON_OUT_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
|   form formid = FORM_CON_ERR_ID,
 | |
|        title = STRING_TOKEN(STR_FORM_STD_ERR_TITLE);
 | |
| 
 | |
|        label FORM_CON_ERR_ID;
 | |
|        label LABEL_END;
 | |
| 
 | |
|   endform;
 | |
| 
 | |
| endformset;
 |