summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-04-24 11:06:05 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-04-24 11:06:05 -0700
commitdf4801ad225b6ba2db85f7ea88f56be3b0bb81e9 (patch)
treea0cdbc46366ce05df4707d6d1c1f219f567ab55e
parent23d9060a67611e5907ee52f082263563b77b3428 (diff)
parent8dc65f57e7611ccc87fcbfbf3f207286d287ad27 (diff)
Merge "QcomModulePkg: System-As-Root on non-A/B for VB1 targets"
-rw-r--r--AndroidBoot.mk7
-rw-r--r--QcomModulePkg/Include/Library/BootLinux.h1
-rw-r--r--QcomModulePkg/Library/BootLib/BootLinux.c12
-rw-r--r--QcomModulePkg/Library/BootLib/UpdateCmdLine.c20
-rw-r--r--QcomModulePkg/QcomModulePkg.dsc5
-rw-r--r--makefile1
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]
diff --git a/makefile b/makefile
index f4688051ec..3f3650710a 100644
--- a/makefile
+++ b/makefile
@@ -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) \