Hi all,
Following the recent merge of B-key support into snapshot on the BPI-R4, I'm trying to bring up a T99W175 modem. The issue I'm facing is that while the modem is now appearing on the PCI bus (hooray!) it's not appearing to ModemManager.
First, lspci showing the device coming up w/ the generic MHI driver:
0003:01:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc SDX55 [Snapdragon X55 5G]
Subsystem: Qualcomm Technologies, Inc Device 010c
Flags: bus master, fast devsel, latency 0, IRQ 123
Memory at 20200000 (64-bit, non-prefetchable) [size=4K]
Memory at 20201000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=8/32 Maskable+ 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Secondary PCI Express
Capabilities: [168] Physical Layer 16.0 GT/s <?>
Capabilities: [18c] Lane Margining at the Receiver <?>
Capabilities: [19c] Transaction Processing Hints
Capabilities: [228] Latency Tolerance Reporting
Capabilities: [230] L1 PM Substates
Capabilities: [240] Data Link Feature <?>
Kernel driver in use: mhi-pci-generic
Kernel logs showing the bringup of the device:
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: [17cb:0306] type 00 class 0xff0000
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: reg 0x18: [mem 0x00000000-0x00000fff 64bit]
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: PME# supported from D0 D3hot D3cold
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: PME# disabled
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: 7.876 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x1 link at 0003:00:00.0 (capable of 31.506 Gb/s with 16.0 GT/s PCIe x2 link)
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: BAR 0: assigned [mem 0x20200000-0x20200fff 64bit]
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: BAR 2: assigned [mem 0x20201000-0x20201fff 64bit]
[Sat Mar 16 18:07:22 2024] pci 0003:01:00.0: Max Payload Size set to 256/ 256 (was 128), Max Read Rq 256
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: assign IRQ: got 0
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: MHI PCI device found: foxconn-sdx55
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: BAR 0: assigned [mem 0x20200000-0x20200fff 64bit]
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: enabling device (0000 -> 0002)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: enabling bus mastering
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x0 (reading 0xe0b0105b)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x4 (reading 0x100406)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x8 (reading 0xff000000)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0xc (reading 0x10)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x10 (reading 0x20200004)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x14 (reading 0x0)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x18 (reading 0x20201004)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x1c (reading 0x0)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x20 (reading 0x0)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x24 (reading 0x0)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x28 (reading 0x0)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x2c (reading 0xe0b0105b)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x30 (reading 0x0)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x34 (reading 0x40)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x38 (reading 0x0)
[Sat Mar 16 18:07:31 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x3c (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x0 (reading 0xe0b0105b)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x4 (reading 0x100402)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x8 (reading 0xff000000)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0xc (reading 0x10)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x10 (reading 0x20200004)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x14 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x18 (reading 0x20201004)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x1c (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x20 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x24 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x28 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x2c (reading 0xe0b0105b)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x30 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x34 (reading 0x40)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x38 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x3c (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: PME# enabled
[Sat Mar 16 18:07:38 2024] mhi-pci-generic 0003:01:00.0: PME# disabled
[Sat Mar 16 18:07:38 2024] mhi-pci-generic 0003:01:00.0: enabling bus mastering
MHI specific logs:
[Sat Mar 16 18:07:34 2024] mhi mhi1: Requested to power ON
[Sat Mar 16 18:07:34 2024] mhi mhi1: Power on setup success
[Sat Mar 16 18:07:34 2024] mhi mhi1: Wait for device to enter SBL or Mission mode
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x0 (reading 0xe0b0105b)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x4 (reading 0x100402)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x8 (reading 0xff000000)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0xc (reading 0x10)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x10 (reading 0x20200004)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x14 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x18 (reading 0x20201004)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x1c (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x20 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x24 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x28 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x2c (reading 0xe0b0105b)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x30 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x34 (reading 0x40)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x38 (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: saving config space at offset 0x3c (reading 0x0)
[Sat Mar 16 18:07:36 2024] mhi-pci-generic 0003:01:00.0: PME# enabled
[Sat Mar 16 18:07:38 2024] mhi-pci-generic 0003:01:00.0: PME# disabled
[Sat Mar 16 18:07:38 2024] mhi-pci-generic 0003:01:00.0: enabling bus mastering
But, no modems:
root@bpi-r4:~# mmcli -L
No modems were found
Debug log from ModemManager:
root@bpi-r4:~# ModemManager --log-level=DEBUG
[4401]: <msg> ModemManager (version 1.22.0) starting in system bus...
[4401]: <dbg> [charsets] detecting platform iconv() support...
[4401]: <dbg> [charsets] UTF-8: iconv conversion to/from charset is supported
[4401]: <dbg> [charsets] UCS-2BE: iconv conversion to/from charset is supported
[4401]: <dbg> [charsets] ASCII: iconv conversion to/from charset is supported
[4401]: <dbg> [charsets] ISO8859-1: iconv conversion to/from charset is supported
[4401]: <dbg> [charsets] CP437: iconv conversion to/from charset is supported
[4401]: <dbg> [charsets] CP850: iconv conversion to/from charset is supported
[4401]: <dbg> [charsets] UTF-16BE: iconv conversion to/from charset is supported
[4401]: <dbg> bus acquired, creating manager...
[4401]: <dbg> [auth-provider] singleton created
[4401]: <dbg> [filter] created
[4401]: <dbg> [filter] explicit allowlist: yes
[4401]: <dbg> [filter] explicit blocklist: yes
[4401]: <dbg> [filter] plugin allowlist: yes
[4401]: <dbg> [filter] qrtr devices allowed: yes
[4401]: <dbg> [filter] virtual devices forbidden: yes
[4401]: <dbg> [filter] net devices allowed: yes
[4401]: <dbg> [filter] usbmisc devices allowed: yes
[4401]: <dbg> [filter] rpmsg devices allowed: yes
[4401]: <dbg> [filter] wwan devices allowed: yes
[4401]: <dbg> [filter] tty devices:
[4401]: <dbg> [filter] platform driver check: yes
[4401]: <dbg> [filter] driver check: yes
[4401]: <dbg> [filter] cdc-acm interface check: yes
[4401]: <dbg> [filter] with net check: yes
[4401]: <dbg> [filter] default: forbidden
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'zte'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 19d2
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'x22x'
[4401]: <dbg> [filter] registered plugin allowlist tag: ID_MM_X22X_TAGGED
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1bbb
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 0b3c
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'wavecom'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 114f
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'via'
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'u-blox'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1546
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'tp-link'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 2357
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'thuraya'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1a26
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'telit'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1bc7
[4401]: <dbg> [filter] registered plugin allowlist subsystem vendor id: 17cb:1c5d
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'simtech'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1e0e
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'sierra-legacy'
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'sierra'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1199
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'samsung'
[4401]: <dbg> [filter] registered plugin allowlist product id: 04e8:6872
[4401]: <dbg> [filter] registered plugin allowlist product id: 04e8:6906
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'quectel'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 2c7c
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1eac
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'qcom-soc'
[4401]: <dbg> [filter] registered plugin allowlist tag: ID_MM_QCOM_SOC
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'pantech'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 106c
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'option-hso'
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'option'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 0af0
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1931
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'novatel-lte'
[4401]: <dbg> [filter] registered plugin allowlist product id: 1410:9010
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'novatel'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1410
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'nokia-icera'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 0421
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'nokia'
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'motorola'
[4401]: <dbg> [filter] registered plugin allowlist tag: ID_MM_MTK_TAGGED
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'motorola'
[4401]: <dbg> [filter] registered plugin allowlist product id: 22b8:3802
[4401]: <dbg> [filter] registered plugin allowlist product id: 22b8:4902
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'ericsson-mbm'
[4401]: <dbg> [filter] registered plugin allowlist tag: ID_MM_ERICSSON_MBM
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'longcheer'
[4401]: <dbg> [filter] registered plugin allowlist tag: ID_MM_LONGCHEER_TAGGED
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1c9e
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'linktop'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 230d
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'iridium'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1edd
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'Intel'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 8086
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'huawei'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 12d1
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'haier'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 201e
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'gosuncn'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 305a
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'generic'
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'foxconn'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 0489
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 105b
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'fibocom'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 2cb7
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1782
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'd-link'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 2001
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'dell'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 413c
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'cinterion'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1e2d
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 0681
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 1269
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'broadmobi'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 2020
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'anydata'
[4401]: <dbg> [filter] registered plugin allowlist vendor id: 16d5
[4401]: <dbg> [plugin-manager] loaded builtin plugin 'altair-lte'
[4401]: <dbg> [filter] registered plugin allowlist product id: 216f:0047
[4401]: <dbg> [plugin-manager] successfully loaded 40 plugins registering 6 subsystems: tty, net, usbmisc, wwan, rpmsg, qrtr
[4401]: <dbg> [qrtr] socket lookup from 1:0
[4401]: <dbg> [qrtr] added server on 7:1 -> service 69, version 1, instance 1
[4401]: <dbg> [qrtr] created new node 7
[4401]: <dbg> [qrtr] initial lookup finished
[4401]: <dbg> [qrtr-bus-watcher] qrtr node 7 added
[4401]: <dbg> [qrtr-bus-watcher] waiting for modem services on node 7
[4401]: <dbg> service name 'org.freedesktop.ModemManager1' was acquired
[4401]: <dbg> [base-manager] unsupported automatic device scan...
[4401]: <dbg> [qrtr-bus-watcher] qrtr node 7 doesn't have required services to be considered a control node
[4401]: <dbg> [base-manager] kernel event reported:
[4401]: <dbg> [base-manager] action: remove
[4401]: <dbg> [base-manager] subsystem: wwan
[4401]: <dbg> [base-manager] name: wwan0qcdm0
[4401]: <dbg> [base-manager] uid: n/a
[4401]: <dbg> [base-manager] kernel event reported:
[4401]: <dbg> [base-manager] action: remove
[4401]: <dbg> [base-manager] subsystem: wwan
[4401]: <dbg> [base-manager] name: wwan0mbim0
[4401]: <dbg> [base-manager] uid: n/a
[4401]: <dbg> [base-manager] kernel event reported:
[4401]: <dbg> [base-manager] action: remove
[4401]: <dbg> [base-manager] subsystem: wwan
[4401]: <dbg> [base-manager] name: wwan0at0
[4401]: <dbg> [base-manager] uid: n/a
[4401]: <dbg> [base-manager] kernel event reported:
[4401]: <dbg> [base-manager] action: remove
[4401]: <dbg> [base-manager] subsystem: net
[4401]: <dbg> [base-manager] name: wwan0
[4401]: <dbg> [base-manager] uid: n/a
Then this appeared in the kernel log:
[ 119.463256] mhi-pci-generic 0003:01:00.0: firmware crashed (6)
In /dev, there's no qmi, mbim, tty or cdc devices that seem to indicate the modem is function. However, in /sys there's evidence the device is working ok on the MHI bus:
root@bpi-r4:~# tree /sys/bus/mhi/devices/mhi1
/sys/bus/mhi/devices/mhi1
├── mhi1_IPCR
│ ├── driver -> ../../../../../../../../../bus/mhi/drivers/qcom_mhi_qrtr
│ ├── oem_pk_hash
│ ├── power
│ │ ├── autosuspend_delay_ms
│ │ ├── control
│ │ ├── runtime_active_time
│ │ ├── runtime_status
│ │ └── runtime_suspended_time
│ ├── serial_number
│ ├── soc_reset
│ ├── subsystem -> ../../../../../../../../../bus/mhi
│ └── uevent
├── mhi1_LOOPBACK
│ ├── oem_pk_hash
│ ├── power
│ │ ├── autosuspend_delay_ms
│ │ ├── control
│ │ ├── runtime_active_time
│ │ ├── runtime_status
│ │ └── runtime_suspended_time
│ ├── serial_number
│ ├── soc_reset
│ ├── subsystem -> ../../../../../../../../../bus/mhi
│ └── uevent
├── oem_pk_hash
├── power
│ ├── autosuspend_delay_ms
│ ├── control
│ ├── runtime_active_time
│ ├── runtime_status
│ └── runtime_suspended_time
├── serial_number
├── soc_reset
├── subsystem -> ../../../../../../../../bus/mhi
└── uevent
mhi0 is my 802.11 card, a Qualcomm ath11k card that is working just fine.
I suspect that an issue might be that the PCI ID on my modem is not correct, as the device has the words "X02: Prototype Sample" as well as DW5930e-eSim written on it.
Has anyone seen anything like this before? Any idea on how to get Modem Manager it interact with it? Maybe I need to change the pci IDs for come drivers? Over on the banana pi forum, Daniel has got a T99W175 running, but not sure if it's the same exact hardware.