Re: [PATCH v4 5/9] bus: mhi: Add QDU100 variant and image_id firmware fallback
Kishore Batta <[email protected]> Tue, 14 Apr 2026 15:21:56 +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 | <[email protected]> |
On 4/13/2026 5:04 PM, Manivannan Sadhasivam wrote: > On Thu, Mar 19, 2026 at 12:01:45PM +0530, Kishore Batta wrote: >> The Sahara driver currently selects a firmware image table based on the >> attached device, but it does not recognize QDU100 devices that expose the >> protocol on the SAHARA MHI channel. As a result, the host cannot associate >> QDU100 devices with the correct firmware namespace during image transfer. >> >> Extend the probe-time variant selection to match the SAHARA MHI channel >> and associate it with the QDU100 firmware folder. Add an image_id based >> firmware lookup fallback for cases where an image does not have an explicit >> table entry. This allows required images to be provisioned by the platform >> without requiring device specific client drivers or additional registration >> mechanisms. >> >> This change only affects devices matched on the SAHARA channel and does not >> change behavior for existing AIC100 and AIC200 devices. >> >> Signed-off-by: Kishore Batta <[email protected]> >> --- >> drivers/bus/mhi/sahara/sahara.c | 77 ++++++++++++++++++++++++++++++++++++++--- >> 1 file changed, 72 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/bus/mhi/sahara/sahara.c b/drivers/bus/mhi/sahara/sahara.c >> index 8f1c0d72066c0cf80c09d78bfc51df2e482133b9..4ea14c57774f51a778289d7409372a6ab21fea60 100644 >> --- a/drivers/bus/mhi/sahara/sahara.c >> +++ b/drivers/bus/mhi/sahara/sahara.c >> @@ -234,6 +234,36 @@ 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", >> + [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", >> +}; > Why the Sahara driver hardcodes these firmware names in the first place? Sahara > is just a protocol to transfer these images to the device, so this driver > shouldn't have any device specific info hardcoded. IMO, this should just act as > a pure library. These firmware names should come from MHI controller drivers > instead. > > - Mani ACK. I will move these image tables to respective MHI controller drivers by implementing a registration mechanism. >