Sierra EM9291 module not enumerating as a usb device on imx93

Hi,
I am working on imx93 board and i have a GSM module of sierra em9291, which is connected to the obu board using M.2 slot. The device is expected to be detected as a USB device, but the module is not getting detected. It is confirmed that the module is working. I am attaching the dmesg received while booting the obu board.

[ 0.931828] VFIO - User Level meta-driver version: 0.3
[ 0.938331] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 0.944887] ehci-pci: EHCI PCI platform driver
[ 0.949365] ehci-platform: EHCI generic platform driver
[ 0.954737] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 0.960930] ohci-pci: OHCI PCI platform driver
[ 0.965405] ohci-platform: OHCI generic platform driver
[ 0.971142] usbcore: registered new interface driver uas
[ 0.976500] usbcore: registered new interface driver usb-storage
[ 0.982570] usbcore: registered new interface driver usbserial_generic
[ 0.989104] usbserial: USB Serial support registered for generic
[ 0.995126] usbcore: registered new interface driver ftdi_sio
[ 1.000867] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 1.008187] usbcore: registered new interface driver qcaux
[ 1.013668] usbserial: USB Serial support registered for qcaux
[ 1.019508] usbcore: registered new interface driver qcserial
[ 1.025262] usbserial: USB Serial support registered for Qualcomm USB modem
[ 1.032230] usbcore: registered new interface driver sierra
[ 1.037803] usbserial: USB Serial support registered for Sierra USB modem
[ 1.044605] usbcore: registered new interface driver usb_serial_simple
[ 1.051134] usbserial: USB Serial support registered for carelink
[ 1.057225] usbserial: USB Serial support registered for zio
[ 1.062885] usbserial: USB Serial support registered for funsoft
[ 1.068896] usbserial: USB Serial support registered for flashloader
[ 1.075243] usbserial: USB Serial support registered for google
[ 1.081165] usbserial: USB Serial support registered for libtransistor
[ 1.087688] usbserial: USB Serial support registered for vivopay
[ 1.093694] usbserial: USB Serial support registered for moto_modem
[ 1.099962] usbserial: USB Serial support registered for motorola_tetra
[ 1.106578] usbserial: USB Serial support registered for nokia
[ 1.112406] usbserial: USB Serial support registered for novatel_gps
[ 1.118758] usbserial: USB Serial support registered for hp4x
[ 1.124505] usbserial: USB Serial support registered for suunto
[ 1.130430] usbserial: USB Serial support registered for siemens_mpi
[ 1.136787] usbcore: registered new interface driver usb_ehset_test
[ 1.144781] bbnsm_pwrkey 44440000.bbnsm:pwrkey: KEY_POWER without setting in dts
[ 1.153199] input: 44440000.bbnsm:pwrkey as /devices/platform/soc@0/44000000.bus/44440000.bbnsm/44440000.bbnsm:pwrkey/input/input0
[ 1.168562] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc1
[ 1.174625] i2c_dev: i2c /dev entries driver
[ 1.180869] Bluetooth: HCI UART driver ver 2.3
[ 1.185332] Bluetooth: HCI UART protocol H4 registered
[ 1.190459] Bluetooth: HCI UART protocol BCSP registered
[ 1.195781] Bluetooth: HCI UART protocol LL registered
[ 1.200911] Bluetooth: HCI UART protocol ATH3K registered
[ 1.206312] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 1.212646] Bluetooth: HCI UART protocol Broadcom registered
[ 1.218306] Bluetooth: HCI UART protocol QCA registered
[ 1.224585] sdhci: Secure Digital Host Controller Interface driver
[ 1.230771] sdhci: Copyright(c) Pierre Ossman
[ 1.235471] Synopsys Designware Multimedia Card Interface Driver
[ 1.241788] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.248334] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.255190] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping …
[ 1.262002] usbcore: registered new interface driver usbhid
[ 1.267582] usbhid: USB HID core driver
[ 1.274075] cs_system_cfg: CoreSight Configuration manager initialised
[ 1.279383] mmc0: SDHCI controller on 42850000.mmc [42850000.mmc] using ADMA
[ 1.281330] optee: probing for conduit method.
[ 1.292295] optee: revision 3.21 (4e322819)
[ 1.292765] optee: dynamic shared memory is enabled
[ 1.302169] optee: initialized driver
[ 1.309028] NET: Registered PF_LLC protocol family
[ 1.314219] NET: Registered PF_INET6 protocol family
[ 1.319851] Segment Routing with IPv6
[ 1.323558] In-situ OAM (IOAM) with IPv6
[ 1.327546] NET: Registered PF_PACKET protocol family
[ 1.332736] Bluetooth: RFCOMM TTY layer initialized
[ 1.337666] Bluetooth: RFCOMM socket layer initialized
[ 1.342834] Bluetooth: RFCOMM ver 1.11
[ 1.346599] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1.351905] Bluetooth: BNEP filters: protocol multicast
[ 1.357134] Bluetooth: BNEP socket layer initialized
[ 1.362102] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 1.368173] Bluetooth: HIDP socket layer initialized
[ 1.373462] 8021q: 802.1Q VLAN Support v1.8
[ 1.377770] 9pnet: Installing 9P2000 support
[ 1.382072] tsn generic netlink module v1 init…
[ 1.386857] Key type dns_resolver registered
[ 1.391436] Loading compiled-in X.509 certificates
[ 1.401620] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[ 1.406271] usb_phy_generic soc@0:usbphynop1: supply vcc not found, using dummy regulator
[ 1.412543] mmcblk0: mmc0:0001 IB2916 14.6 GiB
[ 1.416324] usb_phy_generic soc@0:usbphynop1: dummy supplies not allowed for exclusive requests
[ 1.429790] usb_phy_generic soc@0:usbphynop2: supply vcc not found, using dummy regulator
[ 1.429826] mmcblk0boot0: mmc0:0001 IB2916 4.00 MiB
[ 1.438122] usb_phy_generic soc@0:usbphynop2: dummy supplies not allowed for exclusive requests
[ 1.444228] mmcblk0boot1: mmc0:0001 IB2916 4.00 MiB
[ 1.457681] mmcblk0rpmb: mmc0:0001 IB2916 4.00 MiB, chardev (510:0)
[ 1.462392] fsl_lpspi 42550000.spi: dma setup error -19, use pio
[ 1.471555] fsl_lpspi 42700000.spi: dma setup error -19, use pio
[ 1.481628] sdhci-esdhc-imx 42860000.mmc: Got CD GPIO
[ 1.483514] rtc-rs5c372 0-0032: r2223x found, 24hr
[ 1.491776] rtc-rs5c372 0-0032: eco mode enabled
[ 1.497022] rtc-rs5c372 0-0032: rtc oscillator interruption detected. Please reset the rtc clock.
[ 1.506032] rtc-rs5c372 0-0032: registered as rtc0
[ 1.511293] rtc-rs5c372 0-0032: rtc oscillator interruption detected. Please reset the rtc clock.
[ 1.518103] mmc1: SDHCI controller on 42860000.mmc [42860000.mmc] using ADMA
[ 1.520159] rtc-rs5c372 0-0032: hctosys: unable to read the hardware clock
[ 1.534862] i2c i2c-0: LPI2C adapter registered
[ 1.540762] VCC_SOC_0V8: Bringing 900000uV into 800000-800000uV
[ 1.550695] rn5t618 1-0030: running in single/master mode
[ 1.556229] i2c i2c-1: LPI2C adapter registered
[ 1.561451] i2c i2c-2: LPI2C adapter registered
[ 1.567013] pca953x 4-0022: supply vcc not found, using dummy regulator
[ 1.573737] pca953x 4-0022: using AI
[ 1.578406] gpio-488 (boot_sel0): hogged as input
[ 1.583227] gpio-489 (boot_sel1): hogged as input
[ 1.588029] gpio-490 (boot_sel2): hogged as input
[ 1.593032] gpio-498 (wifi_en): hogged as output/low
[ 1.598179] gpio-499 (gbe0_rst): hogged as output/high
[ 1.603518] gpio-500 (gbe1_rst): hogged as output/high
[ 1.608840] gpio-501 (usb_rst): hogged as output/low
[ 1.614112] i2c i2c-4: LPI2C adapter registered
[ 1.618686] mmc1: host does not support reading read-only switch, assuming write-enable
[ 1.624451] pps pps0: new PPS source ptp0
[ 1.634301] fec 42890000.ethernet eth0: registered PHC device 0
[ 1.641039] imx-dwmac 428a0000.ethernet: IRQ eth_lpi not found
[ 1.647260] imx-dwmac 428a0000.ethernet: User ID: 0x10, Synopsys ID: 0x52
[ 1.654155] imx-dwmac 428a0000.ethernet: DWMAC4/5
[ 1.659958] imx-dwmac 428a0000.ethernet: DMA HW capability register supported
[ 1.667100] imx-dwmac 428a0000.ethernet: RX Checksum Offload Engine supported
[ 1.674235] imx-dwmac 428a0000.ethernet: TX Checksum insertion supported
[ 1.680926] imx-dwmac 428a0000.ethernet: Wake-Up On Lan supported
[ 1.687072] imx-dwmac 428a0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[ 1.694737] imx-dwmac 428a0000.ethernet: Enabled L3L4 Flow TC (entries=8)
[ 1.701520] imx-dwmac 428a0000.ethernet: Enabled RFS Flow TC (entries=8)
[ 1.708233] imx-dwmac 428a0000.ethernet: Enabling HW TC (entries=256, max_off=256)
[ 1.715805] imx-dwmac 428a0000.ethernet: Using 32 bits DMA width
[ 1.721914] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[ 1.727699] ci_hdrc ci_hdrc.0: EHCI Host Controller
[ 1.729047] mmcblk1: mmc1:aaaa SK32G 29.7 GiB
[ 1.733484] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[ 1.745048] mmcblk1: p1 p2
[ 1.760163] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[ 1.765999] hub 1-0:1.0: USB hub found
[ 1.769782] hub 1-0:1.0: 1 port detected
[ 1.777856] ci_hdrc ci_hdrc.1: EHCI Host Controller
[ 1.782766] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2
[ 1.804160] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[ 1.810031] hub 2-0:1.0: USB hub found
[ 1.813807] hub 2-0:1.0: 1 port detected
[ 1.819619] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.828751] cfg80211: Loaded X.509 cert ‘sforshee: 00b28ddf47aef9cea7’
[ 1.835382] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 1.836751] ALSA device list:
[ 1.844007] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[ 1.847023] No soundcards found.
[ 1.872310] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[ 1.882126] VFS: Mounted root (ext4 filesystem) on device 179:98.
[ 1.888794] devtmpfs: mounted
[ 1.893640] Freeing unused kernel memory: 2816K
[ 1.898295] Run /sbin/init as init process
[ 2.028179] usb 1-1: new full-speed USB device number 2 using ci_hdrc
[ 2.040991] systemd[1]: System time before build time, advancing clock.
[ 2.062635] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[ 2.093842] usb 2-1: new high-speed USB device number 2 using ci_hdrc
[ 2.096607] systemd[1]: Detected architecture arm64.

Welcome to Poky (Yocto Project Reference Distro) 4.0.4 (kirkstone)!

[ 2.172996] systemd[1]: Hostname set to .
[ 2.199166] usb 1-1: not running at top speed; connect to a high speed hub
[ 2.244999] systemd-sysv-generator[162]: SysV service ‘/etc/init.d/cmdline-keyboard.sh’ lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[ 2.271158] hub 2-1:1.0: USB hub found
[ 2.275119] hub 2-1:1.0: 4 ports detected

you can see here:

For your m.2 adaptor: you need to check these pins for connecting with USB:
pin 20 → high (1.8V), pin 22 → high (1.8V)

Thank you for your insights.However pin 20 and 22 of the m.2 port is already connected to high(1.8V)

Can it be connected to windows pc?

The module is working on windows , however it is not getting enumerated on the OBU board which runs imx93 image.

See if this helps

Hello ,

I added the support for sierra em929x in my qcserial.c and qmi_wwan.c. Now this is the dmesg which i get. I am also attaching the driver files which i got from sierra official website.

[ 0.412001] usbcore: registered new interface driver usbfs
[ 0.417403] usbcore: registered new interface driver hub
[ 0.422531] usbcore: registered new device driver usb
[ 0.947802] usbcore: registered new interface driver asix
[ 0.953237] usbcore: registered new interface driver ax88179_178a
[ 0.959343] usbcore: registered new interface driver cdc_ether
[ 0.965189] usbcore: registered new interface driver cdc_eem
[ 0.970862] usbcore: registered new interface driver net1080
[ 0.976554] usbcore: registered new interface driver cdc_subset
[ 0.982493] usbcore: registered new interface driver zaurus
[ 0.988093] usbcore: registered new interface driver sierra_net
[ 0.994025] usbcore: registered new interface driver cdc_ncm
[ 0.999694] usbcore: registered new interface driver qmi_wwan
[ 1.005443] usbcore: registered new interface driver cdc_mbim
[ 1.018389] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 1.034796] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 1.051077] usbcore: registered new interface driver cdc_acm
[ 1.056733] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 1.064752] usbcore: registered new interface driver cdc_wdm
[ 1.070600] usbcore: registered new interface driver uas
[ 1.075953] usbcore: registered new interface driver usb-storage
[ 1.082007] usbcore: registered new interface driver usbserial_generic
[ 1.088535] usbserial: USB Serial support registered for generic
[ 1.094555] usbcore: registered new interface driver ftdi_sio
[ 1.100301] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 1.107612] usbcore: registered new interface driver option
[ 1.113189] usbserial: USB Serial support registered for GSM modem (1-port)
[ 1.120185] usbcore: registered new interface driver qcaux
[ 1.125668] usbserial: USB Serial support registered for qcaux
[ 1.131506] usbcore: registered new interface driver qcserial
[ 1.137254] usbserial: USB Serial support registered for Qualcomm USB modem
[ 1.144214] usbserial: USB Serial support registered for Qualcomm USB modem
[ 1.151181] usbcore: registered new interface driver sierra
[ 1.156768] usbserial: USB Serial support registered for Sierra USB modem
[ 1.163559] usbcore: registered new interface driver usb_serial_simple
[ 1.170085] usbserial: USB Serial support registered for carelink
[ 1.176180] usbserial: USB Serial support registered for zio
[ 1.181835] usbserial: USB Serial support registered for funsoft
[ 1.187841] usbserial: USB Serial support registered for flashloader
[ 1.194195] usbserial: USB Serial support registered for google
[ 1.200113] usbserial: USB Serial support registered for libtransistor
[ 1.206638] usbserial: USB Serial support registered for vivopay
[ 1.212645] usbserial: USB Serial support registered for moto_modem
[ 1.218917] usbserial: USB Serial support registered for motorola_tetra
[ 1.225524] usbserial: USB Serial support registered for nokia
[ 1.231357] usbserial: USB Serial support registered for novatel_gps
[ 1.237709] usbserial: USB Serial support registered for hp4x
[ 1.243458] usbserial: USB Serial support registered for suunto
[ 1.249374] usbserial: USB Serial support registered for siemens_mpi
[ 1.255737] usbcore: registered new interface driver visor
[ 1.261222] usbserial: USB Serial support registered for Handspring Visor / Palm OS
[ 1.268875] usbserial: USB Serial support registered for Sony Clie 5.0
[ 1.275401] usbserial: USB Serial support registered for Sony Clie 3.5
[ 1.281941] usbcore: registered new interface driver usb_ehset_test
[ 1.441809] usbcore: registered new interface driver usbhid
[ 1.450588] usbhid: USB HID core driver
[ 1.591110] usb_phy_generic soc@0:usbphynop1: supply vcc not found, using dummy regulator
[ 1.599967] usb_phy_generic soc@0:usbphynop1: dummy supplies not allowed for exclusive requests
[ 1.614753] usb_phy_generic soc@0:usbphynop2: supply vcc not found, using dummy regulator
[ 1.623087] usb_phy_generic soc@0:usbphynop2: dummy supplies not allowed for exclusive requests
[ 1.844214] gpio-501 (usb_rst): hogged as output/high
[ 1.998619] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[ 2.020156] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[ 2.025987] hub 1-0:1.0: USB hub found

Seems there is hardware issue on your board, i cannot even see the detection …