lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aTZxrhpYhoOP+VDz@hu-qianyu-lv.qualcomm.com>
Date: Sun, 7 Dec 2025 22:35:26 -0800
From: Qiang Yu <qiang.yu@....qualcomm.com>
To: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
Cc: Manivannan Sadhasivam <mani@...nel.org>, mhi@...ts.linux.dev,
        linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org,
        Mayank Rana <mayank.rana@....qualcomm.com>,
        Baochen Qiang <quic_bqiang@...cinc.com>
Subject: Re: [PATCH v3] mhi: host: Add standard elf image download
 functionality

On Sat, Dec 06, 2025 at 01:25:34PM +0200, Dmitry Baryshkov wrote:
> On Mon, Dec 01, 2025 at 06:33:15PM -0800, Qiang Yu wrote:
> > From: Mayank Rana <mayank.rana@....qualcomm.com>
> > 
> > Currently, the FBC image is a non-standard ELF file that contains a single
> > ELF header, followed by segments for SBL, and WLAN FW. However, TME-L
> > (Trust Management Engine Lite) supported devices (eg. QCC2072) requires
> > separate ELF headers for SBL and WLAN FW segments due to TME-L image
> > authentication requirement.
> > 
> > Current image format contains two sections in a single binary:
> > - First 512KB: ELF header + SBL segments
> > - Remaining: WLAN FW segments
> > 
> > The TME-L supported image format contains two sections with two elf
> > headers in a single binary:
> > - First 512KB: First ELF header + SBL segments
> > - Remaining: Second ELF header + WLAN FW segments
> > 
> > Download behavior:
> > - Legacy: 1. First 512KB via BHI (ELF header + SBL)
> >           2. Full image via BHIe
> > 
> > - TME-L: 1. First 512KB via BHI (First ELF header + SBL)
> >          2. Remaining via BHIe (Second ELF header + WLAN FW segments)
> > 
> > Add standard_elf_image flag to mhi_controller_config to indicate TME-L
> > supported image format. When set, MHI skips the first 512KB during WLAN FW
> > download over BHIe as it is loaded in BHI phase.
> 
> What is standard about it?

The TME-L requires standard elf image format which includes single EFL
header and WLAN FW segment.

The "standard_elf_image" seems misleading. Since the new image format is
required for TME-L image authentication, how about using 
tme_supported_image?

> 
> > 
> > Reviewed-by: Baochen Qiang <quic_bqiang@...cinc.com>
> > Signed-off-by: Mayank Rana <mayank.rana@....qualcomm.com>
> > Co-developed-by: Qiang Yu <qiang.yu@....qualcomm.com>
> > Signed-off-by: Qiang Yu <qiang.yu@....qualcomm.com>
> > ---
> > Changes in v3:
> > - Reword commit message.
> > - Reword comments of standard_elf_image flag
> > - Add reviewed-by tag.
> > - Link to v2: https://lore.kernel.org/mhi/20250603-standard_elf_image_load_support-v2-1-cce97644e99e@oss.qualcomm.com/
> > 
> > Changes in v2:
> > - V1 patch is paused because of no user. WLAN team plan to add support for
> >   new WLAN chip that requires this patch, so send v2.
> > - Change author and SOB with new mail address.
> > - Reword commit message.
> > - Place standard_elf_image flag after wake_set in struct mhi_controller
> > - Link to v1: https://lore.kernel.org/mhi/1689907189-21844-1-git-send-email-quic_qianyu@quicinc.com/
> > ---
> >  drivers/bus/mhi/host/boot.c | 7 +++++++
> >  include/linux/mhi.h         | 4 ++++
> >  2 files changed, 11 insertions(+)
> > 
> > diff --git a/drivers/bus/mhi/host/boot.c b/drivers/bus/mhi/host/boot.c
> > index 205d83ac069f15a19ab2d66a63692e5d60334d4c..64fb7a257d3529167eddf1153d34cc6b25735809 100644
> > --- a/drivers/bus/mhi/host/boot.c
> > +++ b/drivers/bus/mhi/host/boot.c
> > @@ -584,6 +584,13 @@ void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl)
> >  	 * device transitioning into MHI READY state
> >  	 */
> >  	if (fw_load_type == MHI_FW_LOAD_FBC) {
> > +		dev_dbg(dev, "standard_elf_image:%s\n",
> > +			(mhi_cntrl->standard_elf_image ? "True" : "False"));
> > +		if (mhi_cntrl->standard_elf_image) {
> > +			fw_data += mhi_cntrl->sbl_size;
> > +			fw_sz -= mhi_cntrl->sbl_size;
> > +		}
> > +
> >  		ret = mhi_alloc_bhie_table(mhi_cntrl, &mhi_cntrl->fbc_image, fw_sz);
> >  		if (ret) {
> >  			release_firmware(firmware);
> > diff --git a/include/linux/mhi.h b/include/linux/mhi.h
> > index dd372b0123a6da5107b807ff8fe940c567eb2030..a13106bb234d22e3876dff3c0d46f3dee1d9e05c 100644
> > --- a/include/linux/mhi.h
> > +++ b/include/linux/mhi.h
> > @@ -360,6 +360,9 @@ struct mhi_controller_config {
> >   * @bounce_buf: Use of bounce buffer
> >   * @fbc_download: MHI host needs to do complete image transfer (optional)
> >   * @wake_set: Device wakeup set flag
> > + * @standard_elf_image: Flag to determine whether the first 512 KB of the FBC
> > + *                      image need to be skipped when loading WLAN FW over
> > + *                      BHIe interface (optional)
> 
> How does the description correlate to the name of the flag?

The description can be updated as:

 * @tme_supported_image: Flag indicating FBC image format supports TME-L
 *                      (Trust Management Engine Lite) authentication.
 *                      When set, skip first 512KB when loading WLAN FW
 *                      over BHIe interface (optional)
> 
> >   * @irq_flags: irq flags passed to request_irq (optional)
> >   * @mru: the default MRU for the MHI device
> >   *
> > @@ -445,6 +448,7 @@ struct mhi_controller {
> >  	bool bounce_buf;
> >  	bool fbc_download;
> >  	bool wake_set;
> > +	bool standard_elf_image;
> 
> This flag is never set, making it a dead API. If there are other patches
> setting up the flag, please include them into them in the same series.

Let me discuss with Baochen about whether he can include the patch in his
series that actually sets this flag for QCC2072 device.

- Qiang Yu
> 
> >  	unsigned long irq_flags;
> >  	u32 mru;
> >  };
> > 
> > ---
> > base-commit: ac35e04f8000aaaf98635792464647e7a6f3422e
> > change-id: 20251129-wlan_image_load_skip_512k-ddcfe49db8e3
> > 
> > Best regards,
> > -- 
> > Qiang Yu <qiang.yu@....qualcomm.com>
> > 
> 
> -- 
> With best wishes
> Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ