diff options
-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/Library/FastbootLib/FastbootCmds.c | 5 | ||||
-rw-r--r-- | QcomModulePkg/QcomModulePkg.dsc | 5 | ||||
-rw-r--r-- | makefile | 1 |
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] @@ -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) \ |