summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/soc/qualcomm/common/qclib.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/soc/qualcomm/common/qclib.c b/src/soc/qualcomm/common/qclib.c
index 6bf2f0ed252c..d06cb429eb5b 100644
--- a/src/soc/qualcomm/common/qclib.c
+++ b/src/soc/qualcomm/common/qclib.c
@@ -13,6 +13,8 @@
#include <soc/mmu_common.h>
#include <soc/qclib_common.h>
#include <soc/symbols_common.h>
+#include <security/vboot/misc.h>
+#include <vb2_api.h>
struct qclib_cb_if_table qclib_cb_if_table = {
.magic = QCLIB_MAGIC_NUMBER,
@@ -144,9 +146,11 @@ void qclib_load_and_run(void)
qclib_cb_if_table.global_attributes =
QCLIB_GA_ENABLE_UART_LOGGING;
- if (CONFIG(QC_SDI_ENABLE)) {
+ if (CONFIG(QC_SDI_ENABLE) && (!CONFIG(VBOOT) ||
+ !vboot_is_gbb_flag_set(VB2_GBB_FLAG_RUNNING_FAFT))) {
struct prog qcsdi =
- PROG_INIT(PROG_REFCODE, CONFIG_CBFS_PREFIX "/qcsdi");
+ PROG_INIT(PROG_REFCODE,
+ CONFIG_CBFS_PREFIX "/qcsdi");
/* Attempt to load QCSDI elf */
if (prog_locate(&qcsdi))
@@ -155,8 +159,8 @@ void qclib_load_and_run(void)
if (cbfs_prog_stage_load(&qcsdi))
goto fail;
- qclib_add_if_table_entry(QCLIB_TE_QCSDI, prog_entry(&qcsdi),
- prog_size(&qcsdi), 0);
+ qclib_add_if_table_entry(QCLIB_TE_QCSDI,
+ prog_entry(&qcsdi), prog_size(&qcsdi), 0);
printk(BIOS_INFO, "qcsdi.entry[%p]\n", qcsdi.entry);
}