When user uses the command "bcfg driver|boot [dump [-v]]", the number of command line value parameters (doesn't include the flag) must be three. We can add this point to check whether using this command correctly. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Tapan Shah <tapandshah@hpe.com>
		
			
				
	
	
		
			160 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // /**
 | |
| //
 | |
| // (C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.<BR>
 | |
| // Copyright (c) 2010 - 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.
 | |
| //
 | |
| // Module Name:
 | |
| //
 | |
| // UefiBcfgCommandsLib.uni
 | |
| //
 | |
| // Abstract:
 | |
| //
 | |
| // String definitions for UEFI Shell 2.0 BCFG command
 | |
| //
 | |
| //
 | |
| // **/
 | |
| 
 | |
| /=#
 | |
| 
 | |
| #langdef   en-US "english"
 | |
| 
 | |
| #string STR_GEN_NO_MEM            #language en-US "%H%s%N: Memory is not available.\r\n"
 | |
| #string STR_GEN_PROBLEM           #language en-US "%H%s%N: Unknown flag - '%H%s%N'\r\n"
 | |
| #string STR_GEN_NO_VALUE          #language en-US "%H%s%N: Missing argument for flag - '%H%s%N'\r\n"
 | |
| #string STR_GEN_PARAM_INV         #language en-US "%H%s%N: Invalid argument - '%H%s%N'\r\n"
 | |
| #string STR_GEN_NO_DRIVER_BOOT    #language en-US "%H%s%N: Driver or Boot must be selected.\r\n"
 | |
| #string STR_GEN_BOOT_ONLY         #language en-US "%H%s%N: Boot must be selected for hot key options.\r\n"
 | |
| #string STR_GEN_TOO_FEW           #language en-US "%H%s%N: Too few arguments.\r\n"
 | |
| #string STR_GEN_TOO_MANY          #language en-US "%H%s%N: Too many arguments\r\n"
 | |
| #string STR_GEN_FILE_OPEN_FAIL    #language en-US "%H%s%N: Cannot open file - '%H%s%N'\r\n"
 | |
| #string STR_GEN_FIND_FAIL         #language en-US "%H%s%N: File not found - '%H%s%N'\r\n"
 | |
| #string STR_GEN_OUT_MEM           #language en-US "%H%s%N: Memory allocation was not successful.\r\n"
 | |
| #string STR_BCFG_WRITE_FAIL       #language en-US "%H%s%N: Unable to write to '%H%s%N'\r\n"
 | |
| #string STR_BCFG_READ_FAIL        #language en-US "%H%s%N: Unable to read from '%H%s%N'\r\n"
 | |
| #string STR_BCFG_VAR_CORRUPT      #language en-US "%H%s%N: Variable '%H%s%N' corrupt.\r\n"
 | |
| #string STR_BCFG_HANDLE           #language en-US "%H%s%N: The handle [%H%02x%N] does not have DevicePath.\r\n"
 | |
| #string STR_BCFG_FILE             #language en-US "%H%s%N: The file '%H%s%N' matches multiple files.\r\n"
 | |
| #string STR_BCFG_FILE_OPEN        #language en-US "%H%s%N: The file '%H%s%N' did not open.\r\n"
 | |
| #string STR_BCFG_FILE_DP          #language en-US "%H%s%N: The file '%H%s%N' could not convert to DevPath.\r\n"
 | |
| #string STR_BCFG_TARGET_NF        #language en-US "%H%s%N: Could not find unused target index.\r\n"
 | |
| #string STR_BCFG_TARGET           #language en-US "Target = %04x.\r\n"
 | |
| #string STR_BCFG_SET_VAR_FAIL     #language en-US "%H%s%N: Unable to set %H%s%N\r\n"
 | |
| #string STR_BCFG_VAR_NO_NUM       #language en-US "%H%s%N: Cannot create Key#### variable: All the numbers from 0x0000 - 0xFFFF have been used.\r\n"
 | |
| #string STR_BCFG_NUMB_RANGE       #language en-US "%H%s%N: Numbers must be under %d.\r\n"
 | |
| #string STR_BCFG_NONE             #language en-US "No options found.\r\n"
 | |
| 
 | |
| #string STR_BCFG_LOAD_OPTIONS     #language en-US "Option: %B%02x%N. Variable: %B%-11s%N\r\n"
 | |
|                                                   "  Desc    - %s\r\n"
 | |
|                                                   "  DevPath - %s\r\n"
 | |
|                                                   "  Optional- %c\r\n"
 | |
| #string STR_GET_HELP_BCFG         #language en-US ""
 | |
| ".TH bcfg 0 "configure boot and driver"\r\n"
 | |
| ".SH NAME\r\n"
 | |
| "Manages the boot and driver options that are stored in NVRAM.\r\n"
 | |
| ".SH SYNOPSIS\r\n"
 | |
| " \r\n"
 | |
| "BCFG driver|boot [dump [-v]] [add # file "desc"] [addp # file "desc"] \r\n"
 | |
| "                 [addh # handle "desc"] [rm #] [mv # #] \r\n"
 | |
| "                 [-opt # [[filename]|["data"]] | \r\n"
 | |
| "                         [KeyData <ScanCode UnicodeChar>]]\r\n"
 | |
| ".SH OPTIONS\r\n"
 | |
| " \r\n"
 | |
| "  -v          - Displays verbose information about options, including the optional\r\n"
 | |
| "                data.\r\n"
 | |
| "  -opt        - Displays or modifies the optional data associated with a \r\n"
 | |
| "                driver or boot option. This parameter is followed by the file name of the\r\n"
 | |
| "                file that contains the binary data to be associated with the\r\n"
 | |
| "                driver or boot option optional data, or the quote\r\n"
 | |
| "                delimited data to be associated with the driver or\r\n"
 | |
| "                boot option optional data.\r\n"
 | |
| "  driver      - Displays or modifies the driver option list.\r\n"
 | |
| "  boot        - Displays or modifies the boot option list.\r\n"
 | |
| "  dump        - Displays the option list.\r\n"
 | |
| "  add         - Adds an option. The # is the number of options to add in\r\n"
 | |
| "                hexadecimal format. The file name is the name of the UEFI application/driver for\r\n"
 | |
| "                the option. The quoted parameter is the description of the\r\n"
 | |
| "                option to be added.\r\n"
 | |
| "  addh        - Adds an option that refers to the driver specified by a handle.\r\n"
 | |
| "                The # is the number of options to add, in hexadecimal format. The\r\n"
 | |
| "                handle is the driver handle, in hexadecimal format. The device path\r\n"
 | |
| "                for the option is retrieved from the handle. The quoted\r\n"
 | |
| "                parameter is the description of the option to be added.\r\n"
 | |
| "  addp        - Adds an option that refers to a specific file. Only the portion\r\n"
 | |
| "                of the device path starting with the hard drive partition is\r\n"
 | |
| "                placed in the option. The # is the number of options to add,\r\n"
 | |
| "                in hexadecimal format. The quoted parameter is the description of the\r\n"
 | |
| "                option being added.\r\n"
 | |
| "  rm          - Removes an option. The parameter lists the number of the options\r\n"
 | |
| "                to remove in hexadecimal format.\r\n"
 | |
| "  mv          - Moves an option. The first numeric parameter is the number of\r\n"
 | |
| "                the option to move in hexadecimal format. The second numeric parameter\r\n"
 | |
| "                is the new number of the option to be moved.\r\n"
 | |
| "  KeyData     - Specifies the packed value associated with a hot-key.\r\n"
 | |
| "  ScanCode    - Specifies the UEFI-defined scan code portion of the\r\n"
 | |
| "                EFI_INPUT_KEY instruction. This value is directly associated\r\n"
 | |
| "                with the preceding KeyData value. When one instance of this\r\n"
 | |
| "                parameter has a non-zero value, the paired UnicodeChar value\r\n"
 | |
| "                will have a zero-based value.\r\n"
 | |
| "  UnicodeChar - Specifies the Unicode value for the character associated with\r\n"
 | |
| "                the preceding KeyData value. When one instance of this\r\n"
 | |
| "                parameter has a non-zero value, the paired ScanCode value\r\n"
 | |
| "                will have a zero-based value.\r\n"
 | |
| ".SH DESCRIPTION\r\n"
 | |
| " \r\n"
 | |
| "NOTES:\r\n"
 | |
| "  1. This command manages the boot and driver options stored in NVRAM.\r\n"
 | |
| "  2. Use the dump option to display Boot#### or Driver#### environment variables.\r\n"
 | |
| "  3. Use the add option to add a new Boot#### or Driver#### \r\n"
 | |
| "     environment variable.\r\n"
 | |
| "  4. Use the rm option to delete a Boot#### or Driver#### \r\n"
 | |
| "     environment variable, and then the mv option to reorder\r\n"
 | |
| "     the Boot#### and Driver#### environment variables.\r\n"
 | |
| "  5. The add, rm, and mv options also update the BootOrder or DriverOrder\r\n"
 | |
| "     environment variables, as appropriate.\r\n"
 | |
| ".SH EXAMPLES\r\n"
 | |
| " \r\n"
 | |
| "EXAMPLES:\r\n"
 | |
| "  * To display driver options:\r\n"
 | |
| "    Shell> bcfg driver dump\r\n"
 | |
| " \r\n"
 | |
| "  * To display boot options:\r\n"
 | |
| "    Shell> bcfg boot dump\r\n"
 | |
| " \r\n"
 | |
| "  * To display verbose information about boot options:\r\n"
 | |
| "    Shell> bcfg boot dump -v\r\n"
 | |
| " \r\n"
 | |
| "  * To add a driver option #5:\r\n"
 | |
| "    Shell> bcfg driver add 5 mydriver.efi "My Driver"\r\n"
 | |
| " \r\n"
 | |
| "  * To add a boot option #3:\r\n"
 | |
| "    Shell> bcfg boot add 3 osloader.efi "My OS"\r\n"
 | |
| " \r\n"
 | |
| "  * To remove boot option #3:\r\n"
 | |
| "    Shell> bcfg boot rm 3\r\n"
 | |
| " \r\n"
 | |
| "  * To move boot option #3 to boot option #7:\r\n"
 | |
| "    Shell> bcfg boot mv 3 7\r\n"
 | |
| " \r\n"
 | |
| "  * To assign a CTRL-B hot-key to boot option #3:\r\n"
 | |
| "    Shell> bcfg boot -opt 3 0x40000200 0 0x42\r\n"
 | |
| ".SH RETURNVALUES\r\n"
 | |
| " \r\n"
 | |
| "RETURN VALUES:\r\n"
 | |
| "  SHELL_SUCCESS             The action was completed as requested.\r\n"
 | |
| "  SHELL_NOT_FOUND           The requested option was not found.\r\n"
 | |
| "  SHELL_INVALID_PARAMETER   One of the passed-in parameters was incorrectly\r\n"
 | |
| "                            formatted or its value was out of bounds.\r\n"
 | |
| "  SHELL_UNSUPPORTED         The action as requested was unsupported.\r\n"
 | |
| "  SHELL_SECURITY_VIOLATION  This function was not performed due to a security\r\n"
 | |
| "                            violation.\r\n"
 | |
| "  SHELL_OUT_OF_RESOURCES    There was insufficient free space for the request\r\n"
 | |
| "                            to be completed.\r\n"
 | |
| 
 |