diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2018-04-24 11:06:05 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-04-24 11:06:05 -0700 |
commit | df4801ad225b6ba2db85f7ea88f56be3b0bb81e9 (patch) | |
tree | a0cdbc46366ce05df4707d6d1c1f219f567ab55e | |
parent | 23d9060a67611e5907ee52f082263563b77b3428 (diff) | |
parent | 8dc65f57e7611ccc87fcbfbf3f207286d287ad27 (diff) |
Merge "QcomModulePkg: System-As-Root on non-A/B for VB1 targets"
-rw-r--r-- | AndroidBoot.mk | 7 | ||||
-rw-r--r-- | QcomModulePkg/Include/Library/BootLinux.h | 1 | ||||
-rw-r--r-- | QcomModulePkg/Library/BootLib/BootLinux.c | 12 | ||||
-rw-r--r-- | QcomModulePkg/Library/BootLib/UpdateCmdLine.c | 20 | ||||
-rw-r--r-- | QcomModulePkg/QcomModulePkg.dsc | 5 | ||||
-rw-r--r-- | makefile | 1 |
6 files changed, 38 insertions, 8 deletions
diff --git a/AndroidBoot.mk b/AndroidBoot.mk index e779e994b7..ba448dff6f 100644 --- a/AndroidBoot.mk +++ b/AndroidBoot.mk @@ -18,6 +18,12 @@ else VERIFIED_BOOT := VERIFIED_BOOT=0 endif +ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true) + BUILD_SYSTEM_ROOT_IMAGE := BUILD_SYSTEM_ROOT_IMAGE=1 +else + BUILD_SYSTEM_ROOT_IMAGE := BUILD_SYSTEM_ROOT_IMAGE=0 +endif + ifeq ($(BOARD_AVB_ENABLE),true) VERIFIED_BOOT_2 := VERIFIED_BOOT_2=1 else @@ -70,6 +76,7 @@ $(TARGET_ABL): abl_clean | $(ABL_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET) $(MAKE) -C bootable/bootloader/edk2 \ BOOTLOADER_OUT=../../../$(ABL_OUT) \ all \ + $(BUILD_SYSTEM_ROOT_IMAGE) \ $(VERIFIED_BOOT) \ $(VERIFIED_BOOT_2) \ $(VERIFIED_BOOT_LE) \ diff --git a/QcomModulePkg/Include/Library/BootLinux.h b/QcomModulePkg/Include/Library/BootLinux.h index e742393aa9..bb1e83af26 100644 --- a/QcomModulePkg/Include/Library/BootLinux.h +++ b/QcomModulePkg/Include/Library/BootLinux.h @@ -151,6 +151,7 @@ EFI_STATUS LaunchApp (IN UINT32 Argc, IN CHAR8 **Argv); BOOLEAN TargetBuildVariantUser (VOID); BOOLEAN IsLEVariant (VOID); +BOOLEAN IsBuildAsSystemRootImage (VOID); EFI_STATUS GetImage (CONST BootInfo *Info, VOID **ImageBuffer, diff --git a/QcomModulePkg/Library/BootLib/BootLinux.c b/QcomModulePkg/Library/BootLib/BootLinux.c index 3ad2848a99..9c616d9706 100644 --- a/QcomModulePkg/Library/BootLib/BootLinux.c +++ b/QcomModulePkg/Library/BootLib/BootLinux.c @@ -912,6 +912,18 @@ BOOLEAN IsLEVariant (VOID) } #endif +#ifdef BUILD_SYSTEM_ROOT_IMAGE +BOOLEAN IsBuildAsSystemRootImage (VOID) +{ + return TRUE; +} +#else +BOOLEAN IsBuildAsSystemRootImage (VOID) +{ + return FALSE; +} +#endif + VOID ResetBootDevImage (VOID) { diff --git a/QcomModulePkg/Library/BootLib/UpdateCmdLine.c b/QcomModulePkg/Library/BootLib/UpdateCmdLine.c index 82255c33c3..955162801a 100644 --- a/QcomModulePkg/Library/BootLib/UpdateCmdLine.c +++ b/QcomModulePkg/Library/BootLib/UpdateCmdLine.c @@ -450,20 +450,26 @@ UpdateCmdLineParams (UpdateCmdLineParamList *Param, Param->SlotSuffixAscii); Src = Param->SlotSuffixAscii; STR_COPY (Dst, Src); + } - /* Skip Initramfs*/ - if (!Param->Recovery) { - Src = Param->SkipRamFs; - --Dst; - STR_COPY (Dst, Src); - } + if ((IsBuildAsSystemRootImage () && + (GetAVBVersion () == AVB_1) && + !Param->MultiSlotBoot) || + (Param->MultiSlotBoot && + !IsBootDevImage ())) { + /* Skip Initramfs*/ + if (!Param->Recovery) { + Src = Param->SkipRamFs; + --Dst; + STR_COPY (Dst, Src); + } /*Add Multi slot command line suffix*/ Src = Param->MultiSlotCmdSuffix; --Dst; STR_COPY (Dst, Src); } - return EFI_SUCCESS; + return EFI_SUCCESS; } /*Update command line: appends boot information to the original commandline diff --git a/QcomModulePkg/QcomModulePkg.dsc b/QcomModulePkg/QcomModulePkg.dsc index 5a0797e359..134d38ee9f 100644 --- a/QcomModulePkg/QcomModulePkg.dsc +++ b/QcomModulePkg/QcomModulePkg.dsc @@ -1,5 +1,5 @@ #/* -# * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. +# * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. # * # * Redistribution and use in source and binary forms, with or without # * modification, are permitted provided that the following conditions are @@ -113,6 +113,9 @@ !if $(ENABLE_LE_VARIANT) == 1 GCC:*_*_*_CC_FLAGS = -DENABLE_LE_VARIANT !endif + !if $(BUILD_SYSTEM_ROOT_IMAGE) + GCC:*_*_*_CC_FLAGS = -DBUILD_SYSTEM_ROOT_IMAGE + !endif [PcdsFixedAtBuild.common] @@ -85,6 +85,7 @@ ABL_FV_IMG: EDK_TOOLS_BIN -t $(TARGET_TOOLS) \ -b $(TARGET) \ -D ABL_OUT_DIR=$(ANDROID_PRODUCT_OUT) \ + -D BUILD_SYSTEM_ROOT_IMAGE=$(BUILD_SYSTEM_ROOT_IMAGE) \ -D VERIFIED_BOOT=$(VERIFIED_BOOT) \ -D VERIFIED_BOOT_2=$(VERIFIED_BOOT_2) \ -D VERIFIED_BOOT_LE=$(VERIFIED_BOOT_LE) \ |