diff --git a/src/soc/qualcomm/common/include/soc/qclib_common.h b/src/soc/qualcomm/common/include/soc/qclib_common.h
index 648b29d..f38ed77 100644
--- a/src/soc/qualcomm/common/include/soc/qclib_common.h
+++ b/src/soc/qualcomm/common/include/soc/qclib_common.h
@@ -27,6 +27,14 @@
 /* BA_BMASK_VALUES (blob_attributes bit mask values) */
 #define QCLIB_BA_SAVE_TO_STORAGE 0x00000001
 
+enum qclib_cbfs_file {
+	QCLIB_CBFS_PMICCFG,
+	QCLIB_CBFS_QCSDI,
+	QCLIB_CBFS_QCLIB,
+	QCLIB_CBFS_DCB,
+	QCLIB_CBFS_MAX
+};
+
 struct qclib_cb_if_table_entry {
 	char       name[QCLIB_TE_NAME_LENGTH];  /* 0x00 TE_NAME */
 	uint64_t   blob_address;		/* 0x18 blob addr in SRAM */
@@ -60,4 +68,7 @@
 void qclib_load_and_run(void);
 int  qclib_soc_blob_load(void);
 
+const char *qclib_file_default(enum qclib_cbfs_file file);
+const char *qclib_file(enum qclib_cbfs_file file);
+
 #endif  // _SOC_QUALCOMM_QCLIB_COMMON_H_
diff --git a/src/soc/qualcomm/common/qclib.c b/src/soc/qualcomm/common/qclib.c
index 2829cb4..90bcc20 100644
--- a/src/soc/qualcomm/common/qclib.c
+++ b/src/soc/qualcomm/common/qclib.c
@@ -62,6 +62,25 @@
 	.reserved = 0,
 };
 
+const char *qclib_file_default(enum qclib_cbfs_file file)
+{
+	switch (file) {
+	case QCLIB_CBFS_PMICCFG:
+		return CONFIG_CBFS_PREFIX "/pmiccfg";
+	case QCLIB_CBFS_QCSDI:
+		return CONFIG_CBFS_PREFIX "/qcsdi";
+	case QCLIB_CBFS_QCLIB:
+		return CONFIG_CBFS_PREFIX "/qclib";
+	case QCLIB_CBFS_DCB:
+		return CONFIG_CBFS_PREFIX "/dcb";
+	default:
+		die("unknown QcLib file %d", file);
+	}
+}
+
+const char *qclib_file(enum qclib_cbfs_file file)
+	__attribute__((weak, alias("qclib_file_default")));
+
 void qclib_add_if_table_entry(const char *name, void *base,
 				uint32_t size, uint32_t attrs)
 {
@@ -181,7 +200,7 @@
 	qclib_add_if_table_entry(QCLIB_TE_MEM_CHIP_INFO, NULL, 0, 0);
 
 	/* Attempt to load PMICCFG Blob */
-	data_size = cbfs_load(CONFIG_CBFS_PREFIX "/pmiccfg",
+	data_size = cbfs_load(qclib_file(QCLIB_CBFS_PMICCFG),
 			_pmic, REGION_SIZE(pmic));
 	if (!data_size) {
 		printk(BIOS_ERR, "[%s] /pmiccfg failed\n", __func__);
@@ -190,7 +209,7 @@
 	qclib_add_if_table_entry(QCLIB_TE_PMIC_SETTINGS, _pmic, data_size, 0);
 
 	/* Attempt to load DCB Blob */
-	data_size = cbfs_load(CONFIG_CBFS_PREFIX "/dcb",
+	data_size = cbfs_load(qclib_file(QCLIB_CBFS_DCB),
 			_dcb, REGION_SIZE(dcb));
 	if (!data_size) {
 		printk(BIOS_ERR, "[%s] /dcb failed\n", __func__);
@@ -213,7 +232,7 @@
 		!vboot_is_gbb_flag_set(VB2_GBB_FLAG_RUNNING_FAFT))) {
 		struct prog qcsdi =
 			PROG_INIT(PROG_REFCODE,
-				CONFIG_CBFS_PREFIX "/qcsdi");
+				qclib_file(QCLIB_CBFS_QCSDI));
 
 		/* Attempt to load QCSDI elf */
 		if (cbfs_prog_stage_load(&qcsdi))
@@ -228,7 +247,7 @@
 
 	/* Attempt to load QCLib elf */
 	struct prog qclib =
-		PROG_INIT(PROG_REFCODE, CONFIG_CBFS_PREFIX "/qclib");
+		PROG_INIT(PROG_REFCODE, qclib_file(QCLIB_CBFS_QCLIB));
 
 	if (cbfs_prog_stage_load(&qclib))
 		goto fail;
