target,project: msm8996: Change to detect VB on runtime
Change to enable detection of VB on runtime, and load appropriate
binaries.
Change-Id: Ic8ab5341b7cb61447210bd14494cb9abc3100e07
diff --git a/project/msm8996.mk b/project/msm8996.mk
index aa9fb8e..b6f7603 100644
--- a/project/msm8996.mk
+++ b/project/msm8996.mk
@@ -21,7 +21,6 @@
ENABLE_QGIC3 := 1
ENABLE_SECAPP_LOADER := 1
ENABLE_PARTIAL_GOODS_SUPPORT := 1
-ENABLE_RPMB_SUPPORT := 1
ENABLE_GLINK_SUPPORT := 1
ENABLE_PWM_SUPPORT := true
ENABLE_LPAE_SUPPORT := 1
@@ -54,6 +53,7 @@
ifeq ($(VERIFIED_BOOT),1)
#enable fbcon display menu
ENABLE_FBCON_DISPLAY_MSG := 1
+ENABLE_RPMB_SUPPORT := 1
endif
ifeq ($(ENABLE_FBCON_DISPLAY_MSG),1)
diff --git a/target/msm8996/init.c b/target/msm8996/init.c
index 539d98d..4e9825e 100644
--- a/target/msm8996/init.c
+++ b/target/msm8996/init.c
@@ -179,7 +179,9 @@
mmc_put_card_to_sleep(dev);
}
- if (is_sec_app_loaded())
+#if VERIFIED_BOOT
+ if (target_get_vb_version() == VB_V2 &&
+ is_sec_app_loaded())
{
if (send_milestone_call_to_tz() < 0)
{
@@ -187,6 +189,7 @@
ASSERT(0);
}
}
+#endif
#if ENABLE_WBC
if (board_hardware_id() == HW_PLATFORM_MTP)
@@ -203,11 +206,16 @@
/* Tear down glink channels */
rpm_glink_uninit();
- if (rpmb_uninit() < 0)
+#if VERIFIED_BOOT
+ if (target_get_vb_version() == VB_V2)
{
- dprintf(CRITICAL, "RPMB uninit failed\n");
- ASSERT(0);
+ if (rpmb_uninit() < 0)
+ {
+ dprintf(CRITICAL, "RPMB uninit failed\n");
+ ASSERT(0);
+ }
}
+#endif
}
@@ -329,7 +337,6 @@
void target_init(void)
{
- int ret = 0;
dprintf(INFO, "target_init()\n");
pmic_info_populate();
@@ -397,38 +404,39 @@
};
#endif
- /* Initialize Qseecom */
- ret = qseecom_init();
-
- if (ret < 0)
+#if VERIFIED_BOOT
+ if (VB_V2 == target_get_vb_version())
{
- dprintf(CRITICAL, "Failed to initialize qseecom, error: %d\n", ret);
- ASSERT(0);
- }
+ /* Initialize Qseecom */
+ if (qseecom_init() < 0)
+ {
+ dprintf(CRITICAL, "Failed to initialize qseecom\n");
+ ASSERT(0);
+ }
- /* Start Qseecom */
- ret = qseecom_tz_init();
+ /* Start Qseecom */
+ if (qseecom_tz_init() < 0)
+ {
+ dprintf(CRITICAL, "Failed to start qseecom\n");
+ ASSERT(0);
+ }
- if (ret < 0)
- {
- dprintf(CRITICAL, "Failed to start qseecom, error: %d\n", ret);
- ASSERT(0);
- }
+ if (rpmb_init() < 0)
+ {
+ dprintf(CRITICAL, "RPMB init failed\n");
+ ASSERT(0);
+ }
- if (rpmb_init() < 0)
- {
- dprintf(CRITICAL, "RPMB init failed\n");
- ASSERT(0);
+ /*
+ * Load the sec app for first time
+ */
+ if (load_sec_app() < 0)
+ {
+ dprintf(CRITICAL, "Failed to load App for verified\n");
+ ASSERT(0);
+ }
}
-
- /*
- * Load the sec app for first time
- */
- if (load_sec_app() < 0)
- {
- dprintf(CRITICAL, "Failed to load App for verified\n");
- ASSERT(0);
- }
+#endif
}
unsigned board_machtype(void)