Dell/Foxconn Snapdragon X55: Problems, cannot connect
Hi all,
I am trying to get the 5G PCIe modem working. ModemManager initialy finds modem but whenever I try to interact with it, it freezes. I'm not sure whether this problem is in ModemManager or kernel, so I'm starting here
- Laptop: Dell Precision 7760
- Modem: Dell DW5930E / Foxconn PCIe 105b:e0b0
- Qualcomm Snapdragon X55 Global 5G Modem
- OS: Gentoo
- Kernel: 6.0.2-amd64
- Software Stack:
- net-misc/modemmanager: 1.18.12
- net-libs/libmbim: 1.26.4
- net-libs/libqmi: 1.30.8
Modules:
find /lib/modules/6.0.2-gentoo | rg -i mhi_
/lib/modules/6.0.2-gentoo/kernel/drivers/net/mhi_net.ko
/lib/modules/6.0.2-gentoo/kernel/drivers/net/wwan/mhi_wwan_ctrl.ko
/lib/modules/6.0.2-gentoo/kernel/drivers/net/wwan/mhi_wwan_mbim.ko
/lib/modules/6.0.2-gentoo/kernel/drivers/bus/mhi/host/mhi_pci_generic.ko
/lib/modules/6.0.2-gentoo/kernel/drivers/bus/mhi/ep/mhi_ep.ko
ModemManager:
mmcli --modem=0
-----------------------------
General | path: /org/freedesktop/ModemManager1/Modem/0
| device id: e679a25716a835f5206791610525cee9df3fb977
-----------------------------
Hardware | manufacturer: foxconn
| model: DELL Snapdragon X55
| firmware revision: T99W175.F0.1.0.0.9.DF.015
| 047
| carrier config: default
| h/w revision: DELL Snapdragon X55
| supported: gsm-umts, lte, 5gnr
| current: gsm-umts, lte, 5gnr
| equipment id: 015836000112938
-----------------------------
System | device: /sys/devices/pci0000:00/0000:00:1c.0/0000:94:00.0
| drivers: mhi-pci-generic
| plugin: foxconn
| primary port: wwan0mbim0
| ports: wwan0 (net), wwan0at0 (at), wwan0mbim0 (mbim),
| wwan0qcdm0 (qcdm)
-----------------------------
Status | state: failed
| failed reason: sim-missing
| power state: low
-----------------------------
Modes | supported: allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 3g, 4g; preferred: 4g
| allowed: 3g, 4g; preferred: 3g
| allowed: 5g; preferred: none
| allowed: 4g, 5g; preferred: 5g
| allowed: 4g, 5g; preferred: 4g
| allowed: 3g, 5g; preferred: 5g
| allowed: 3g, 5g; preferred: 3g
| allowed: 3g, 4g, 5g; preferred: 5g
| allowed: 3g, 4g, 5g; preferred: 4g
| allowed: 3g, 4g, 5g; preferred: 3g
| current: allowed: any; preferred: none
-----------------------------
Bands | supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8,
| utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
| eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17,
| eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28,
| eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39,
| eutran-40, eutran-41, eutran-42, eutran-46, eutran-48, eutran-66,
| eutran-71, utran-19
-----------------------------
IP | supported: ipv4, ipv6, ipv4v6
-----------------------------
SIM | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0
| slot 2: none (active)
lspci:
lspci -nn -d ::0d40 -v
94:00.0 Wireless controller [0d40]: Foxconn International, Inc. Device [105b:e0b0]
Subsystem: Foxconn International, Inc. Device [105b:e0b0]
Flags: bus master, fast devsel, latency 0, IRQ 197, IOMMU group 22
Memory at b1400000 (64-bit, non-prefetchable) [size=4K]
Memory at b1401000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/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 modules: mhi_pci_generic
When I try to connect, it fails like this:
21.10 01:50:21 NetworkManager[3364]: <info> [1666309821.1261] device (wwan0mbim0): Activation: starting connection 'O2' (99e059e4-c741-4404-9b95-7120ddca7c48)
21.10 01:50:21 NetworkManager[3364]: <info> [1666309821.1261] audit: op="connection-activate" uuid="99e059e4-c741-4404-9b95-7120ddca7c48" name="O2" pid=4555 uid=1000 result="success"
21.10 01:50:21 NetworkManager[3364]: <info> [1666309821.1262] device (wwan0mbim0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
21.10 01:50:21 NetworkManager[3364]: <info> [1666309821.1264] manager: NetworkManager state is now CONNECTING
21.10 01:50:21 ModemManager[3124]: <info> [modem0] simple connect started...
21.10 01:50:21 ModemManager[3124]: <info> [modem0] simple connect state (4/8): wait to get fully enabled
21.10 01:50:21 ModemManager[3124]: <info> [modem0] simple connect state (5/8): register
21.10 01:50:21 ModemManager[3124]: <info> [modem0] simple connect state (6/8): bearer
21.10 01:50:21 ModemManager[3124]: <info> [modem0] simple connect state (7/8): connect
21.10 01:50:21 ModemManager[3124]: <info> [modem0] state changed (registered -> connecting)
21.10 01:50:21 kernel: mhi-pci-generic 0000:94:00.0: Unable to change power state from D3cold to D0, device inaccessible
21.10 01:50:21 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:50:21 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0x0 [fault reason 0x05] PTE Write access is not set
21.10 01:50:21 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:50:21 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0x0 [fault reason 0x05] PTE Write access is not set
21.10 01:50:22 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:50:22 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0x0 [fault reason 0x05] PTE Write access is not set
21.10 01:50:32 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:50:32 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0x0 [fault reason 0x05] PTE Write access is not set
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] unexpected port hangup!
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] channel destroyed
21.10 01:50:41 ModemManager[3124]: <info> [modem0] connection to mbim-proxy for /dev/wwan0mbim0 lost, reprobing
21.10 01:50:41 kernel: mhi mhi0: Did not enter M0 state, MHI state: M3, PM state: M3->M0
21.10 01:50:41 kernel: mhi-pci-generic 0000:94:00.0: failed to resume device: -5
21.10 01:50:41 kernel: mhi-pci-generic 0000:94:00.0: device recovery started
21.10 01:50:41 kernel: mhi_wwan_ctrl mhi0_DUN: Failed to queue buffer
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Releasing 'uim' client with flags 'release-cid'...
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Unregistered 'uim' client with ID '2'
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Releasing 'pdc' client with flags 'release-cid'...
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Unregistered 'pdc' client with ID '1'
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Releasing 'loc' client with flags 'release-cid'...
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Unregistered 'loc' client with ID '1'
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Releasing 'nas' client with flags 'release-cid'...
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Unregistered 'nas' client with ID '4'
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Releasing 'dms' client with flags 'release-cid'...
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] Unregistered 'dms' client with ID '1'
21.10 01:50:41 NetworkManager[3364]: <info> [1666309841.8060] device (wwan0mbim0): state change: prepare -> unmanaged (reason 'removed', sys-iface-state: 'removed')
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] unexpected port hangup!
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] channel destroyed
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] MBIM error: Cannot write message: Broken pipe
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] MBIM error: Cannot write message: Broken pipe
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] MBIM error: Cannot write message: Broken pipe
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] MBIM error: Cannot write message: Broken pipe
21.10 01:50:41 ModemManager[3124]: [/dev/wwan0mbim0] MBIM error: Cannot write message: Broken pipe
21.10 01:50:41 ModemManager[3124]: <warn> [modem0/wwan0mbim0/mbim] Couldn't properly close QMI device: Cannot write message: Broken pipe
21.10 01:50:41 NetworkManager[3364]: <info> [1666309841.8065] manager: NetworkManager state is now CONNECTED_LOCAL
21.10 01:50:41 ModemManager[3124]: <info> [base-manager] port wwan0qcdm0 released by device '/sys/devices/pci0000:00/0000:00:1c.0/0000:94:00.0'
21.10 01:50:41 ModemManager[3124]: <info> [base-manager] port wwan0mbim0 released by device '/sys/devices/pci0000:00/0000:00:1c.0/0000:94:00.0'
21.10 01:50:41 ModemManager[3124]: <info> [base-manager] port wwan0at0 released by device '/sys/devices/pci0000:00/0000:00:1c.0/0000:94:00.0'
21.10 01:50:41 NetworkManager[3364]: <warn> [1666309841.8096] modem-broadband[wwan0mbim0]: failed to disconnect modem: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Object does not exist at path “/org/freedesktop/ModemManager1/Modem/0”
21.10 01:50:41 Unhandled UDEV action [ACTION='remove' DEVICE='wwan0']
21.10 01:50:41 ModemManager[3124]: <info> [base-manager] port wwan0 released by device '/sys/devices/pci0000:00/0000:00:1c.0/0000:94:00.0'
21.10 01:50:41 kernel: mhi mhi0: Requested to power ON
21.10 01:50:41 kernel: mhi mhi0: Power on setup success
21.10 01:50:45 kernel: DMAR: DRHD: handling fault status reg 3
21.10 01:50:45 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0xff8f0000 [fault reason 0x05] PTE Write access is not set
21.10 01:50:45 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:50:45 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0xffffd000 [fault reason 0x05] PTE Write access is not set
21.10 01:50:45 ModemManager[3124]: transaction 0x7 aborted, but message is not abortable
21.10 01:50:45 ModemManager[3124]: transaction 0x8 aborted, but message is not abortable
21.10 01:50:45 ModemManager[3124]: transaction 0x9 aborted, but message is not abortable
21.10 01:50:45 ModemManager[3124]: transaction 0xa aborted, but message is not abortable
21.10 01:50:45 ModemManager[3124]: transaction 0xb aborted, but message is not abortable
21.10 01:50:47 syncthing[10721]: Completed initial scan of sendreceive folder "Documents" (gsbe9-zqfda)
21.10 01:50:51 ModemManager[3124]: <warn> [modem0/bearer1] connection attempt #1 failed: Transaction timed out
21.10 01:50:51 ModemManager[3124]: <info> [modem0/bearer1] connection #1 finished: duration 0s, tx: 0 bytes, rx: 0 bytes
21.10 01:51:02 kernel: mhi-pci-generic 0000:94:00.0: reset
21.10 01:51:04 kernel: mhi mhi0: Requested to power ON
21.10 01:51:05 kernel: mhi mhi0: Power on setup success
21.10 01:51:05 kernel: mhi mhi0: Wait for device to enter SBL or Mission mode
21.10 01:51:13 kernel: mhi-pci-generic 0000:94:00.0: failed to suspend device: -16
21.10 01:51:13 Unhandled UDEV action [ACTION='add' DEVICE='wwan0']
21.10 01:51:14 ModemManager[3124]: opening device...
21.10 01:51:14 ModemManager[3124]: [/dev/wwan0mbim0] Couldn't find descriptors file, possibly not using cdc_mbim
21.10 01:51:14 ModemManager[3124]: [/dev/wwan0mbim0] Fallback to default max control message size: 4096
21.10 01:51:40 kernel: mhi-pci-generic 0000:94:00.0: Unable to change power state from D3cold to D0, device inaccessible
21.10 01:51:40 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:51:40 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0x0 [fault reason 0x05] PTE Write access is not set
21.10 01:51:41 syncthing[11646]: Completed initial scan of sendreceive folder "Projects" (pnzny-pxpeu)
21.10 01:51:42 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:51:42 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0x0 [fault reason 0x05] PTE Write access is not set
And from that moment on, there is no modem in ModemManager and all I see are repeated messages:
21.10 01:52:12 kernel: DMAR: DRHD: handling fault status reg 3
21.10 01:52:12 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0xff390000 [fault reason 0x05] PTE Write access is not set
21.10 01:52:12 kernel: DMAR: DRHD: handling fault status reg 2
21.10 01:52:12 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0xff5c3000 [fault reason 0x05] PTE Write access is not set
21.10 01:52:20 kernel: DMAR: DRHD: handling fault status reg 3
21.10 01:52:20 kernel: DMAR: [DMA Write NO_PASID] Request device [94:00.0] fault addr 0xff388000 [fault reason 0x05] PTE Write access is not set
21.10 01:52:47 kernel: dmar_fault: 2 callbacks suppressed
I have tested the modem in Windows (KVM w/ PCI device passthrough) and it seems to work just fine there
Thanks for any pointers or advice!
Edited by Xoores