From fe0e14d716ffab43784f13b9ac8fae6f13672645 Mon Sep 17 00:00:00 2001 From: Venkateshwar S Date: Tue, 30 Dec 2025 02:08:15 -0800 Subject: [PATCH] soc/qualcomm/x1p42100: Skip SHRM meta firmware load in ramdump mode QCLib passes SHRM metadata to TME for authentication and to bring SHRM out of reset. In RAM dump mode, this sequence is unnecessary because the system is preserving state for post-crash analysis. This patch adds a RAM-dump-mode check and ensures: - SHRM metadata is not loaded or populated into the interface table when RAM dump mode is detected, preventing QCLib from sending it to TME. Test=Create an image.serial.bin and verify it boots on X1P42100. Change-Id: I921a2b99543ee462433bec8e8471ad836cabc5dd Signed-off-by: Venkateshwar S Reviewed-on: https://review.coreboot.org/c/coreboot/+/90652 Reviewed-by: Subrata Banik Tested-by: build bot (Jenkins) Reviewed-by: Kapil Porwal --- src/soc/qualcomm/x1p42100/qclib.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/soc/qualcomm/x1p42100/qclib.c b/src/soc/qualcomm/x1p42100/qclib.c index c67b3591f0..6baabccb20 100644 --- a/src/soc/qualcomm/x1p42100/qclib.c +++ b/src/soc/qualcomm/x1p42100/qclib.c @@ -47,15 +47,17 @@ int qclib_soc_override(struct qclib_cb_if_table *table) } qclib_add_if_table_entry(QCLIB_TE_CPR_SETTINGS, _cpr_settings, data_size, 0); - /* Attempt to load shrm_meta Blob */ - data_size = cbfs_load(qclib_file(QCLIB_CBFS_SHRM_META), - _qc_blob_meta, REGION_SIZE(qc_blob_meta)); - if (!data_size) { - printk(BIOS_ERR, "[%s] /shrm_meta failed\n", __func__); - return -1; - } + if (!qclib_check_dload_mode()) { + /* Attempt to load shrm_meta Blob */ + data_size = cbfs_load(qclib_file(QCLIB_CBFS_SHRM_META), + _qc_blob_meta, REGION_SIZE(qc_blob_meta)); + if (!data_size) { + printk(BIOS_ERR, "[%s] /shrm_meta failed\n", __func__); + return -1; + } - qclib_add_if_table_entry(QCLIB_TE_SHRM_META_SETTINGS, _qc_blob_meta, data_size, 0); + qclib_add_if_table_entry(QCLIB_TE_SHRM_META_SETTINGS, _qc_blob_meta, data_size, 0); + } /* hook for platform specific policy configuration */ if (qclib_mainboard_override(table)) {