summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
AgeCommit message (Collapse)Author
2016-06-21IntelFrameworkModulePkg: Replace UnicodeStrToAsciiStr/AsciiStrToUnicodeStrStar Zeng
It is the follow up of 3ab41b7a325ca11a12b42f5ad1661c4b6791cb49 to replace UnicodeStrToAsciiStr/AsciiStrToUnicodeStr with UnicodeStrToAsciiStrS/AsciiStrToUnicodeStrS. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Jeff Fan <jeff.fan@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
2015-07-26IntelFrameworkModulePkg: GenericBdsLib: set Status before useLaszlo Ersek
The recent patch titled IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() call has exposed a preexistent bug in the BdsLibBootViaBootOption() function, and now the IA32 build of OVMF fails with: In function 'BdsLibBootViaBootOption': error: 'Status' may be used uninitialized in this function Namely, we have the following (simplified) data flow: // // Status and ImageHandle both start out uninitialized // /* ... */ ImageHandle = BdsExpandUsbShortFormDevicePath (DevicePath); /* ... */ if (ImageHandle == NULL) { /* ... */ } if ((ImageHandle == NULL) || (EFI_ERROR(Status))) { /* ... */ */ If BdsExpandUsbShortFormDevicePath() returns a non-NULL value, then the second "if" statement will check Status without the function having initialized or assigned it. When BdsExpandUsbShortFormDevicePath() returns non-NULL, Status should be EFI_SUCCESS; so let us assign it that value up-front. Note that the bug existed before the patch IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() call That is, the bug was not introduced, only exposed, by the patch -- in the pre-patch state, although the Status variable was set early and unconditionally, the error code that it may have carried from the failed gEfiAcpiS3SaveProtocolGuid lookup had nothing to do with the second "if" statement above. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Jeff Fan <jeff.fan@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18061 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-26IntelFrameworkModulePkg/GenericBdsLib: remove AcpiS3->S3Save() callArd Biesheuvel
The AcpiS3->S3Save() call needs to occur before the end-of-DXE event is signalled. The end-of-DXE event needs to be signalled prior to invoking any UEFI drivers, applications, or connecting consoles. This means the call to S3Save() that occurs in BdsLibBootViaBootOption() violates the ordering constraints, and should be removed. Since it is the responsibility of the platform BDS to signal the end-of-DXE event, it should also perform the AcpiS3->S3Save() call at an appropriate time. Commit message update from Laszlo Ersek <lersek@redhat.com>: Following Jiewen Yao's idea in http://thread.gmane.org/gmane.comp.bios.tianocore.devel/16088/focus=16146 platforms that (1) use this exact instance of GenericBdsLib, *and* (2) support S3 should now collect the S3 state (3) in an End-of-Dxe callback in their AcpiS3SaveDxe drivers, *or* (4) with an explicit AcpiS3->S3Save() call made to their AcpiS3SaveDxe drivers from their PlatformBdsLib instances. OvmfPkg, which uses this GenericBdsLib instance, and has its own AcpiS3SaveDxe fork, follows (3). Vlv2TbltDevicePkg, which has a GenericBdsLib fork, and uses IntelFrameworkModulePkg/Universal/Acpi/AcpiS3SaveDxe, follows (4). There are no other platforms in the public edk2 repository that support S3. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jiewen Yao <Jiewen.Yao@intel.com> [lersek@redhat.com: updated commit message] Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Jeff Fan <jeff.fan@intel.com> Cc: Jiewen Yao <Jiewen.Yao@intel.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18036 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-07IntelFrameworkModulePkg: Put report status code after event was signaled per ↵Elvin Li
PI spec. For PI spec vol3, "EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT The event with GUID EFI_EVENT_LEGACY_BOOT_GUID was signaled." "EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT The EFI_EVENT_GROUP_READY_TO_BOOT event was signaled." However, in current code base, they are reported before events were signaled. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Elvin Li <elvin.li@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17124 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-22Remove unnecessary RT attribute from LegacyDevOrder variable.Ruiyu Ni
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16545 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-08Add type cast on variable before operation.Jeff Fan
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Eric Dong <Eric.Dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15778 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-01IntelFrameworkModulePkg BdsLib: Fix potential memory leak when calling ↵Chen Fan
BdsLibGetVariableAndSize Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ruiyu Ni<ruiyu.ni@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15732 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-24Fix one memory leak.Eric Dong
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15674 6f19259b-4bc3-4df7-8a09-765794883524
2014-06-25Refine code to make it more safely.Eric Dong
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15592 6f19259b-4bc3-4df7-8a09-765794883524
2014-06-20Do not create boot option for logical block io device.Ruiyu Ni
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Elvin Li <elvin.li@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15575 6f19259b-4bc3-4df7-8a09-765794883524
2014-06-18Create boot option for all block IO devices no matter what the device path ↵Ruiyu Ni
looks like. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15564 6f19259b-4bc3-4df7-8a09-765794883524
2014-05-22Remove the RT attribute for HDDP variable and validate the variable content ↵Ruiyu Ni
before using it. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15545 6f19259b-4bc3-4df7-8a09-765794883524
2014-04-28Early return when the "BootOrder" variable doesn't exist to avoid ↵Ruiyu Ni
SetVariable() return EFI_NOT_FOUND. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15489 6f19259b-4bc3-4df7-8a09-765794883524
2014-03-25Report the setting variable failure to platform through the status code when ↵Ruiyu Ni
core cannot handle the error. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15385 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-07Fix wrong parameter usage in GenericBdsLibConstructorczhang46
Signed-off-by : Chao Zhang <chao.b.zhang@intel.com> Reviewed-by : Ni Ruiyu <ruiyu.ni@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14826 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-26Fix the BdsExpandPartitionPartialDevicePathToFull() hang issue by duplicates ↵Ruiyu Ni
BlockIoDevicePath when the CachedDevicePath returned from BdsLibDelPartMatchInstance() is NULL. Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Chao B Zhang <chao.b.zhang@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14733 6f19259b-4bc3-4df7-8a09-765794883524
2013-05-23Move the memory allocation and variable set to BdsEntry, use VariableLock ↵lzeng14
protocol to lock the L”PerfDataMemAddr” variable and prevent malware to update it. Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14386 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-30Add missing status code in several modules.li-elvin
Signed-off-by: Li Elvin <elvin.li@intel.com> Reviewed-by: Yao Jiewen <jiewen.yao@intel.com> Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com> Reviewed-by: Gao Liming <liming.gao@intel.com> Reviewed-by: Tian Feng <feng.tian@intel.com> Reviewed-by: Fan Jeff <jeff.fan@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13889 6f19259b-4bc3-4df7-8a09-765794883524
2012-06-19Align the perf data between FPDT and DP.lzeng14
Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13461 6f19259b-4bc3-4df7-8a09-765794883524
2012-06-01Refine BdsDxe driver and GenericBdsLib library so that the GenericBdsLib ↵niruiyu
doesn't depend on the BdsDxe implementation. Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13418 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-31Fixed build failed.ydong10
Signed-off-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13406 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-30Add new interface GetVariable2 and GetEfiGlobalVariable2 to return more ↵ydong10
info. Also replace old interface with new one. Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13375 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-18Clean ParentHandle field when image is loaded directly from the firmware's ↵ydong10
boot manager. Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13324 6f19259b-4bc3-4df7-8a09-765794883524
2012-04-19Add code to check boot option variable before use itydong10
Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13203 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-23Add BootlogoOnly feature in BDS for BGRTczhang46
Signed-off-by: czhang46 Reviewed-by: li-elvin, hhtian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13116 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-08Introduce video resolution and text mode PCDs for BIOS setup in BDS module. ↵li-elvin
User can use these PCDs to customize video resolution and text mode for setup when launching BIOS setup. Signed-off-by: li-elvin Reviewed-by: niruiyu git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12671 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-24Fix BDS bug to signal ReadyToBoot event before loading the boot option.niruiyu
Signed-off-by: niruiyu Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12557 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-18Clean up the private GUID definition in module Level.lgao4
0. Remove the unused private GUID from module source files. 1. Use gEfiCallerIdGuid replace of the private module GUID. 2. Add the public header files to define HII FormSet and PackageList GUID used in every HII driver. 3. Publish EFI_LEGACY_DEV_ORDER_VARIABLE_GUID from BdsDxe driver and EFI_UPDATE_DATA_FILE_GUID from UpdateDriverDxe to IntelFrameworkModulePkg Include directory. Signed-off-by: lgao4 Reviewed-by: ydong10 gdong1 tye jfan12 wli12 rsun3 jyao1 ftian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12374 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-25IntelFrameworkModulePkg/GenericBdsLib: update GenericBdsLib to report status ↵xdu2
code for OS Loader Load and OS Loader Start. Signed-off-by: xdu2 Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12211 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-25Raise TPL to prevent the BlockIo instance for USB device is removed during ↵niruiyu
the locating the instance and using it. Signed-off-by: niruiyu Reviewed-by: erictian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12203 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-05Fix the BDS to show UEFI hard drive boot option as "EFI Hard Drive" instead ↵niruiyu
of "EFI DVD/CDROM" Signed-off-by: niruiyu Reviewed-by: li-elvin git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11974 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-05Add the support for Boot Option with all 0xff USB class Device Path.qianouyang
Signed-off-by: qianouyang Reviewed-by: xdu2 Reviewed-by: niruiyu git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11972 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-27Update the comments to describe the purpose of Removable array.niruiyu
Signed-off-by: niruiyu Reviewed-by: li-elvin git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11709 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-26Originally BDS only creates boot options for removable media, the patch ↵niruiyu
creates boot options for fixed media as well. Signed-off-by: niruiyu Reviewed-by: li-elvin git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11707 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-01Fix the bug that BDS assumes any boot option resides in the FV is Shell ↵niruiyu
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
2010-12-24Add support for BootOption with USB Class or USB WWID device path node.xdu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11198 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-26Fix the checking logic for the boot option enumeration.niruiyu
Fix the memory leak issue. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11098 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-22Use PcdResetOnMemoryTypeInformationChange in MdeModulePkg to control whether ↵niruiyu
to reset system when memory type information changes. Check memory type information after signaling the ReadyToBoot event. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11080 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-08Remove unnecessary mBdsImageHandle.niruiyu
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11012 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-28remove unnecessary EFI64_SHADOW_ALL_LEGACY_ROM in GenericBdsLib.niruiyu
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10548 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23Update the copyright notice formathhtian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10414 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-11To follow UEFI spec 2.3 chapter 3.4.1.1, add the ConnectSingleController for ↵niruiyu
removable media boot. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9987 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-03For network dynamic media detect support: invoke Snp->GetStatus() before use ↵xdu2
Snp->Mode->MediaPresent. Upon successful return of Snp->GetStatus(), the Snp->Mode->MediaPresent will be updated to indicate the latest media status. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9918 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-27Update BDS boot option description string to use UNI file string in ↵gikidy
GenericBdsLib for localization. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9836 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-251.Change the behavior of BdsBoot, to enumerate Boot Options by ↵tye1
EfiLoadFileProtocol, other than EfiManagedNetworkServiceBindingProtocol. 2.Add MSG_IPv4_DP and MSG_IPv6_DP into boot type of BDS_EFI_MESSAGE_MAC_BOOT. 3.Change the file header format of inf file and remove the MNP dependency. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9799 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-18Minor code enhancement.gikidy
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9792 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-08Minor code enhancement.xli24
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9692 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-30Update GenericBdsLib to support BootOption for VLAN device.xdu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9650 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-08Don't need call SAP measure GPT table, which can be covered in SAP ↵lgao4
implementation. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9541 6f19259b-4bc3-4df7-8a09-765794883524
2009-08-31Beatify the debug string for displaying boot device when boot EFI device path.klu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9209 6f19259b-4bc3-4df7-8a09-765794883524