EmbeddedPkg/AndroidBoot: boot android kernel from storage

Add an android kernel loader that could load kernel from storage
device.
This android boot image BDS add addtitional cmdline/dtb/ramfs
support besides kernel that is introduced by Android boot header.

This patch is derived from Haojian's code as below link.
https://patches.linaro.org/patch/94683/

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jun Nie <jun.nie@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Jun Nie
2017-08-17 20:58:59 +08:00
committed by Leif Lindholm
parent ce13d2d8c8
commit fa74dd2217
8 changed files with 779 additions and 0 deletions

View File

@ -0,0 +1,64 @@
#/** @file
#
# Copyright (c) 2013-2015, ARM Ltd. All rights reserved.<BR>
# Copyright (c) 2017, Linaro. All rights reserved.
#
# 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 = 0x00010019
BASE_NAME = AndroidBootApp
FILE_GUID = 3a738b36-b9c5-4763-abbd-6cbd4b25f9ff
MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 1.0
ENTRY_POINT = AndroidBootAppEntryPoint
[Sources.common]
AndroidBootApp.c
[LibraryClasses]
AndroidBootImgLib
BaseLib
BaseMemoryLib
BdsLib
DebugLib
DevicePathLib
DxeServicesTableLib
FdtLib
MemoryAllocationLib
PcdLib
PrintLib
UefiApplicationEntryPoint
UefiBootServicesTableLib
UefiLib
UefiRuntimeServicesTableLib
[Protocols]
gAndroidFastbootPlatformProtocolGuid
gEfiBlockIoProtocolGuid
gEfiDevicePathFromTextProtocolGuid
gEfiSimpleTextOutProtocolGuid
gEfiSimpleTextInProtocolGuid
[Packages]
EmbeddedPkg/EmbeddedPkg.dec
MdeModulePkg/MdeModulePkg.dec
MdePkg/MdePkg.dec
[Packages.ARM, Packages.AARCH64]
ArmPkg/ArmPkg.dec
ArmPlatformPkg/ArmPlatformPkg.dec
[Guids]
gFdtTableGuid
[Pcd]
gEmbeddedTokenSpaceGuid.PcdAndroidBootDevicePath