summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg
diff options
context:
space:
mode:
authorniruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>2011-03-01 06:46:24 +0000
committerniruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>2011-03-01 06:46:24 +0000
commit6617d838fa77334dd423e71561dd5e0a69025599 (patch)
treec3e1af38884c62fc7e999050ba48f0f154f8b6ce /IntelFrameworkModulePkg
parent157136700dd0a95afa6d9046b58d110bb3c5ef51 (diff)
downloadedk2-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.c9
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 {