On Wed, May 15, 2024 at 09:43:53AM +0800, Slark Xiao wrote: > > Send again with text mode. > At 2024-05-15 09:29:20, "Slark Xiao" <slark_xiao@xxxxxxx> wrote: > >At 2024-05-14 22:37:41, "Manivannan Sadhasivam" <manivannan.sadhasivam@xxxxxxxxxx> wrote: > >>On Fri, May 10, 2024 at 11:26:57AM +0800, Slark Xiao wrote: > >>> Align with Qcom SDX72, add ready timeout item for Foxconn SDX72. > >>> And also, add firehose support since SDX72. > >>> > >>> Signed-off-by: Slark Xiao <slark_xiao@xxxxxxx> > >>> --- > >>> drivers/bus/mhi/host/pci_generic.c | 31 ++++++++++++++++++++++++++++++ > >>> 1 file changed, 31 insertions(+) > >>> > >>> diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c > >>> index 08844ee79654..0fd94c193fc6 100644 > >>> --- a/drivers/bus/mhi/host/pci_generic.c > >>> +++ b/drivers/bus/mhi/host/pci_generic.c > >>> @@ -399,6 +399,8 @@ static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = { > >>> MHI_CHANNEL_CONFIG_DL(13, "MBIM", 32, 0), > >>> MHI_CHANNEL_CONFIG_UL(32, "DUN", 32, 0), > >>> MHI_CHANNEL_CONFIG_DL(33, "DUN", 32, 0), > >>> + MHI_CHANNEL_CONFIG_UL_FP(34, "FIREHOSE", 32, 0), > >>> + MHI_CHANNEL_CONFIG_DL_FP(35, "FIREHOSE", 32, 0), > >> > >>This means SDX55 is also supporting FIREHOSE channels, which is not true I > >>believe. > >Actually, I just verified it with my sdx55 and the answer is Yes. These channels > >are common settings for Qcom device which support PCIe mode. BTW, the > >default settings of Qcom and Quectel support firehose for their sdx55 products. > >> > >>> MHI_CHANNEL_CONFIG_HW_UL(100, "IP_HW0_MBIM", 128, 2), > >>> MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0_MBIM", 128, 3), > >>> }; > >>> @@ -419,6 +421,16 @@ static const struct mhi_controller_config modem_foxconn_sdx55_config = { > >>> .event_cfg = mhi_foxconn_sdx55_events, > >>> }; > >>> > >>> +static const struct mhi_controller_config modem_foxconn_sdx72_config = { > >>> + .max_channels = 128, > >>> + .timeout_ms = 20000, > >>> + .ready_timeout_ms = 50000, > >>> + .num_channels = ARRAY_SIZE(mhi_foxconn_sdx55_channels), > >>> + .ch_cfg = mhi_foxconn_sdx55_channels, > >>> + .num_events = ARRAY_SIZE(mhi_foxconn_sdx55_events), > >>> + .event_cfg = mhi_foxconn_sdx55_events, > >>> +}; > >>> + > >>> static const struct mhi_pci_dev_info mhi_foxconn_sdx24_info = { > >>> .name = "foxconn-sdx24", > >>> .config = &modem_foxconn_sdx55_config, > >>> @@ -448,6 +460,16 @@ static const struct mhi_pci_dev_info mhi_foxconn_sdx65_info = { > >>> .sideband_wake = false, > >>> }; > >>> > >>> +static const struct mhi_pci_dev_info mhi_foxconn_sdx72_info = { > >>> + .name = "foxconn-sdx72", > >>> + .edl = "qcom/sdx72m/xbl_s_devprg_ns.melf", > >> > >>What is '.melf'? Is the firmware available somewhere? Did you plan to upstream > >>it to linux-firmware? > >> > >This file similar with "edl.mbn". In SDX72 product, the default "edl" file name is > >"xbl_s_devprg_ns.melf". Currently we don't plan to upstream it to linux-firmware > >since 2 reasons: 1: we share the same fold name sdx72m with qcom or other vendors > >2: this file may be changed since sdx72 product still under developing in our side. we > >may change the base line according to QCOM release. > >>- Mani > >> > And I want to say, the os or driver can't recover device with this "edl" file only. This file > only used when device needs to be changed to firehose mode. After that, we need > a tool and a complete firmware package to do the firehose download. Unfortunately, > there is no open source tool to support this download. Even Qcom PCAT tool only > supports their own VID/PID with their own driver. So the function of mhi driver is: > Put device into firehose mode and enumerate the wwan0firehose0 port. The rest > shall be done by enduser themselves. Can't you use QDL tool? https://github.com/linux-msm/qdl - Mani -- மணிவண்ணன் சதாசிவம்