One of the last remaining modules with a dependency on the deprecated BdsLib implementation from ArmPkg is the Android fastboot application. Its only dependency on BdsLib is BdsStartEfiApplication(), which is used in the most peculiar way: the fastboot app loads the kernel image into memory, and creates a MemoryMapped() device path for it. It then proceeds and calls BdsStartEfiApplication(), which explicitly loads the contents of the devicepath into memory, creating a second in-memory copy of the kernel image, after which it invokes gBS->LoadImage() with a buffer address and size (while it is perfectly capable of loading from a devicepath directly) Since we know the device path is fully qualified and connected, and does not require any of the additional processing that BdsStartEfiApplication() does when dereferencing a device path, we should be able to pass this devicepath into LoadImage() directly. So create a simplified local clone of BdsStartEfiApplication(), and drop the dependency on BdsLib. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
59 lines
1.6 KiB
INI
59 lines
1.6 KiB
INI
#/** @file
|
|
#
|
|
# Copyright (c) 2013-2015, ARM Ltd. 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.
|
|
#
|
|
#
|
|
#**/
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = AndroidFastbootApp
|
|
FILE_GUID = 9588502a-5370-11e3-8631-d7c5951364c8
|
|
MODULE_TYPE = UEFI_APPLICATION
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = FastbootAppEntryPoint
|
|
|
|
[Sources.common]
|
|
AndroidFastbootApp.c
|
|
AndroidBootImg.c
|
|
|
|
[Sources.ARM, Sources.AARCH64]
|
|
Arm/BootAndroidBootImg.c
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
BaseMemoryLib
|
|
DebugLib
|
|
DevicePathLib
|
|
DxeServicesTableLib
|
|
MemoryAllocationLib
|
|
PcdLib
|
|
PrintLib
|
|
UefiApplicationEntryPoint
|
|
UefiBootServicesTableLib
|
|
UefiLib
|
|
UefiRuntimeServicesTableLib
|
|
|
|
[Protocols]
|
|
gAndroidFastbootTransportProtocolGuid
|
|
gAndroidFastbootPlatformProtocolGuid
|
|
gEfiLoadedImageProtocolGuid
|
|
gEfiSimpleTextOutProtocolGuid
|
|
gEfiSimpleTextInProtocolGuid
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
EmbeddedPkg/EmbeddedPkg.dec
|
|
|
|
[Packages.ARM, Packages.AARCH64]
|
|
ArmPkg/ArmPkg.dec
|
|
ArmPlatformPkg/ArmPlatformPkg.dec
|