summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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/Library/FastbootLib/FastbootCmds.c5
-rw-r--r--QcomModulePkg/QcomModulePkg.dsc5
-rw-r--r--makefile1
7 files changed, 43 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/Library/FastbootLib/FastbootCmds.c b/QcomModulePkg/Library/FastbootLib/FastbootCmds.c
index c8c3827f98..a86c7767d7 100644
--- a/QcomModulePkg/Library/FastbootLib/FastbootCmds.c
+++ b/QcomModulePkg/Library/FastbootLib/FastbootCmds.c
@@ -105,6 +105,7 @@ STATIC CHAR8 StrBatteryVoltage[MAX_RSP_SIZE];
STATIC CHAR8 StrBatterySocOk[MAX_RSP_SIZE];
STATIC CHAR8 ChargeScreenEnable[MAX_RSP_SIZE];
STATIC CHAR8 OffModeCharge[MAX_RSP_SIZE];
+STATIC CHAR8 StrSocVersion[MAX_RSP_SIZE];
struct GetVarSlotInfo {
CHAR8 SlotSuffix[MAX_SLOT_SUFFIX_SZ];
@@ -2870,6 +2871,10 @@ FastbootCommandSetup (IN VOID *base, IN UINT32 size)
FastbootPublishVar ("off-mode-charge", ChargeScreenEnable);
FastbootPublishVar ("unlocked", IsUnlocked () ? "yes" : "no");
+ AsciiSPrint (StrSocVersion, sizeof (StrSocVersion), "%x",
+ BoardPlatformChipVersion ());
+ FastbootPublishVar ("hw-revision", StrSocVersion);
+
/* Register handlers for the supported commands*/
UINT32 FastbootCmdCnt = sizeof (cmd_list) / sizeof (cmd_list[0]);
for (i = 1; i < FastbootCmdCnt; i++)
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) \