audk/ArmPkg/Library
Mark Salter 10ddca8db9 ArmPkg/BdsLib: Fix booting with partial paths
Boot entries created by efibootmgr may contain a partial device path
to the EFI application to boot. These entries begin with a partition
device path whereas entries created via ARM Boot Manager contain a
full path to the EFI application. The ARM BDS code will fill in the
missing parts of this partial device path as it does for removeable
device paths. This allows the application to be loaded and started.
However, the current code passes the original partial device path to
gBS->LoadImage() and thus LoadImage is unable to find a DeviceHandle
for the path. This means the application being booted cannot find the
boot device from the Loaded Image Protocol structure. In the case of
grub, this prevents the grub config file from being found. This patch
fixes this by making sure the full path is propagated back to the
caller of gBS->LoadImage() so that a proper DeviceHandle gets passed
to the application being booted.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15518 6f19259b-4bc3-4df7-8a09-765794883524
2014-05-08 15:09:27 +00:00
..
ArmArchTimerLib ArmPkg: Move definition of ArmIsArchTimerImplemented / ArmReadIdPfrN to ArmLib 2013-11-28 21:37:36 +00:00
ArmCacheMaintenanceLib
ArmDisassemblerLib ArmPkg/ArmDisassemblerLib: Fixed logical/bitwise operator confusion 2013-12-10 16:38:17 +00:00
ArmDmaLib ArmPkg/ArmDmaLib: Fixed the calculation of the Base Address of the Buffer 2013-09-02 13:13:29 +00:00
ArmLib ARM Packages: Use AND instead of BIC instruction with immediate 2014-05-08 14:59:04 +00:00
ArmSmcLib ARM Packages: Remove GCC filter for AARCH64 assembly files 2014-05-08 14:54:11 +00:00
ArmSmcLibNull ARM Packages: Remove GCC filter for AARCH64 assembly files 2014-05-08 14:54:11 +00:00
BaseMemoryLibStm ArmPkg: Added Aarch64 support 2013-07-18 18:07:46 +00:00
BaseMemoryLibVstm
BasePeCoffLib ArmPkg: Update the AArch64 Image File Machine Type to match the PE/COFF spec 2013-07-24 15:31:19 +00:00
BdsLib ArmPkg/BdsLib: Fix booting with partial paths 2014-05-08 15:09:27 +00:00
CompilerIntrinsicsLib ARM Packages: use GCC_ASM_EXPORT to export functions 2014-05-08 14:55:52 +00:00
DebugAgentSymbolsBaseLib ARM Packages: Remove GCC filter for AARCH64 assembly files 2014-05-08 14:54:11 +00:00
DebugPeCoffExtraActionLib ArmPkg/DebugPeCoffExtraActionLib: Fixed the printing of the location of the EFI modules 2013-11-28 21:39:46 +00:00
DebugUncachedMemoryAllocationLib
DefaultExceptionHandlerLib ArmPkg: Added Aarch64 support 2013-07-18 18:07:46 +00:00
PeiServicesTablePointerLib
RvdPeCoffExtraActionLib
SemiHostingDebugLib
SemiHostingSerialPortLib
SemihostLib ARM Packages: Remove GCC filter for AARCH64 assembly files 2014-05-08 14:54:11 +00:00
UncachedMemoryAllocationLib