[PATCH v2 5/9] bus: mhi: Add QDU100 firmware image table
Kishore Batta <[email protected]> Sat, 07 Mar 2026 17:11:26 +0530
| Newsgroups | dev.linux.lists.mhi,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260307-sahara_protocol_new_v2-v2-5-29dc748b5e9c@oss.qualcomm.com> |
Add firmware image table support for the Qualcomm QDU100 device to the sahara protocol driver. The QDU100 device expose the Sahara protocol directly on the SAHARA MHI channel. Select the appropriate firmware image table based on the matched MHI channel, allowing the driver to load QDU100 firmware images without requiring device specific client drivers or additional registration mechanisms. This change integrates QDU100 support into the existing probe time variant selection logic and does not affect the behavior of existing AIC devices. Signed-off-by: Kishore Batta <[email protected]> --- drivers/bus/mhi/sahara/sahara.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/drivers/bus/mhi/sahara/sahara.c b/drivers/bus/mhi/sahara/sahara.c index 8f1c0d72066c0cf80c09d78bfc51df2e482133b9..73ae722122a35b77760a4816bc60e6607aa53455 100644 --- a/drivers/bus/mhi/sahara/sahara.c +++ b/drivers/bus/mhi/sahara/sahara.c @@ -234,6 +234,37 @@ static const char * const aic200_image_table[] = { [78] = "qcom/aic200/pvs.bin", }; +static const char * const qdu100_image_table[] = { + [5] = "qcom/qdu100/uefi.elf", + [8] = "qcom/qdu100/qdsp6sw.mbn", + [16] = "qcom/qdu100/efs1.bin", + [17] = "qcom/qdu100/efs2.bin", + [20] = "qcom/qdu100/efs3.bin", + [23] = "qcom/qdu100/aop.mbn", + [25] = "qcom/qdu100/tz.mbn", + [29] = "qcom/qdu100/zeros_1sector.bin", + [33] = "qcom/qdu100/hypvm.mbn", + [34] = "qcom/qdu100/mdmddr.mbn", + [36] = "qcom/qdu100/multi_image_qti.mbn", + [37] = "qcom/qdu100/multi_image.mbn", + [38] = "qcom/qdu100/xbl_config.elf", + [39] = "qcom/qdu100/abl_userdebug.elf", + [40] = "qcom/qdu100/zeros_1sector.bin", + [41] = "qcom/qdu100/devcfg.mbn", + [42] = "qcom/qdu100/zeros_1sector.bin", + [43] = "qcom/qdu100/kernel_boot.elf", + [45] = "qcom/qdu100/tools_l.elf", + [46] = "qcom/qdu100/Quantum.elf", + [47] = "qcom/qdu100/quest.elf", + [48] = "qcom/qdu100/xbl_ramdump.elf", + [49] = "qcom/qdu100/shrm.elf", + [50] = "qcom/qdu100/cpucp.elf", + [51] = "qcom/qdu100/aop_devcfg.mbn", + [52] = "qcom/qdu100/fw_csm_gsi_3.0.elf", + [53] = "qcom/qdu100/qdsp6sw_dtbs.elf", + [54] = "qcom/qdu100/qupv3fw.elf", +}; + static const struct sahara_variant sahara_variants[] = { { .match = "AIC100", @@ -250,6 +281,14 @@ static const struct sahara_variant sahara_variants[] = { .table_size = ARRAY_SIZE(aic200_image_table), .fw_folder = "aic200", .non_streaming = false, + }, + { + .match = "SAHARA", + .match_is_chan = true, + .image_table = qdu100_image_table, + .table_size = ARRAY_SIZE(qdu100_image_table), + .fw_folder = "qdu100", + .non_streaming = false, } }; -- 2.34.1