diff options
author | niruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-03-01 06:46:24 +0000 |
---|---|---|
committer | niruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-03-01 06:46:24 +0000 |
commit | 6617d838fa77334dd423e71561dd5e0a69025599 (patch) | |
tree | c3e1af38884c62fc7e999050ba48f0f154f8b6ce /IntelFrameworkModulePkg | |
parent | 157136700dd0a95afa6d9046b58d110bb3c5ef51 (diff) | |
download | edk2-6617d838fa77334dd423e71561dd5e0a69025599.zip edk2-6617d838fa77334dd423e71561dd5e0a69025599.tar.gz edk2-6617d838fa77334dd423e71561dd5e0a69025599.tar.bz2 |
Fix the bug that BDS assumes any boot option resides in the FV is Shell which causes that the non-Shell FV boot option is removed by GenericBdsLib.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11342 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFrameworkModulePkg')
-rw-r--r-- | IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c index 0005eb3..6f49ea1 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c @@ -2326,14 +2326,17 @@ BdsLibIsValidEFIBootOptDevicePathExt ( }
//
- // Check if it's a valid boot option for internal Shell
+ // Check if it's a valid boot option for internal FV application
//
if (EfiGetNameGuidFromFwVolDevicePathNode ((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *) LastDeviceNode) != NULL) {
//
- // If the boot option point to Internal FV shell, make sure it is valid
+ // If the boot option point to internal FV application, make sure it is valid
//
TempDevicePath = DevPath;
- Status = BdsLibUpdateFvFileDevicePath (&TempDevicePath, PcdGetPtr(PcdShellFile));
+ Status = BdsLibUpdateFvFileDevicePath (
+ &TempDevicePath,
+ EfiGetNameGuidFromFwVolDevicePathNode ((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *) LastDeviceNode)
+ );
if (Status == EFI_ALREADY_STARTED) {
return TRUE;
} else {
|