Fwd: Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
Any progress in OpenBSD 6.5 to have umsm(4) and umb(4) recognition for the same composite USB device according to USB descriptors dumped for MC7304 and MC7455? 6.4 doesn't recognize mbim device umb(4) when umsm(4) ports enabled on one physical device simultaneously. I'm getting messages like below: umsm8: missing endpoint umsm9: missing endpoint for each umb(4) port on MC7304. Denis Forwarded Message Subject: Re: umsm(4) and umb(4) separate loading for the same composite USB modem device Date: Wed, 15 Aug 2018 16:51:23 +0300 From: Denis To: Bryan Vyhmeister CC: tech@openbsd.org umsm(4) patch is needed to recognize MC7304 by umsm(4) and to have both NMEA and AT ports enabled. Especially, I'm using MC7304's (MC7455 on another platform) NMEA port for NTP time corrections from GLO/GPS. AT port is needed for mode changes by AT commands. Very useful. umb(4) is a good one for modern fast data transmit over MBIM port. So the advantages of simultaneous running umsm(4) and umb(4) drivers for single physical device are: - having NMEA + AT serial discipline working by umsm(4); (any rather 'old' serial discipline functionality can be used like SMS, modem's mode changes by AT commands etc.) - MBIM for fast LTE Cat-3 / Cat-6 data connections by modern umb(4) driver. Denis On 8/15/2018 4:43 AM, Bryan Vyhmeister wrote: > On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: >> Most of modern modems have serial discipline ports and USB Mobile >> Broadband Interface Model (MBIM) interface in some port compositions >> simultaneously. It seems very useful to have different disciplines >> supported by umsm(4) and umb(4) drivers on the same device. >> > >> >> Does it possible to have simultaneously operated AT + NMEA ports by >> umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 >> device in 6.3? > > What is the advantage in having a device attach to both umsm(4) and > umb(4)? What are you trying to accomplish? The EM7455 worked perfectly > with umb(4) until your previous umsm(4) diff and now it only attaches as > umsm(4). Are you wanting to send SMS messages or something like that > with your devices? > > Bryan >
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
I've done USB descriptors dump for MC7304 with two firmware variants: - modem SWI9X15C_05.05.67.00 - voice enambled SWI9X15C_06.03.32.02 as well as descriptors for EM/MC7455 modem firmware. Denis On 8/15/2018 5:41 PM, Mark Kettenis wrote: >> Date: Wed, 15 Aug 2018 09:56:50 +0100 >> From: Stuart Henderson >> >> On 2018/08/14 18:43, Bryan Vyhmeister wrote: >>> On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: Most of modern modems have serial discipline ports and USB Mobile Broadband Interface Model (MBIM) interface in some port compositions simultaneously. It seems very useful to have different disciplines supported by umsm(4) and umb(4) drivers on the same device. >>> Does it possible to have simultaneously operated AT + NMEA ports by umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 device in 6.3? >>> >>> What is the advantage in having a device attach to both umsm(4) and >>> umb(4)? What are you trying to accomplish? The EM7455 worked perfectly >>> with umb(4) until your previous umsm(4) diff and now it only attaches as >>> umsm(4). Are you wanting to send SMS messages or something like that >>> with your devices? >>> >>> Bryan >>> >> >> Denis has a good point because umsm is needed for GPS and as you >> suggest SMS. >> >> What determines which driver attaches when a device is supported by >> multiple drivers? Perhaps the simplest option without more complex work >> to support different interfaces on different drivers would be to have >> the device attach to umb by default but attach to umsm instead if umb is >> disabled in the kernel. Then at least a standard kernel could be used >> with "disable umb" from boot config. > > The return value from the "match" function determines which driver > attaches. The driver that returns the highest value wins. > > However, matching for USB devices is complicated. Drivers already use > different return values (the UMATCH_* constants). On top of that > drivers can claim a whole device or claim just a particular interface > of a device. This requires some careful though to make sure the right > driver attaches. > > What we really need is a full dump of the usb device descriptors, > preferably in all the different UDUSBCOMP modes. >
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
Sierra Wireless MC7304 firmware with voice support (VoLTE): SWI9X15C_06.03.32.02 r26426 CNSHZ-AR-BUILD 2015/01/16 01:32:41 AT!UDUSBCOMP=? 1 - DM AT 23 - DM NMEA MODEM RMNET1 RMNET2 RMNET3 AUDIO 24 - DM NMEA MODEM RMNET1 RMNET2 RMNET3 25 - DM NMEA MODEM AT AUDIO *** AT!UDUSBCOMP=1 (DM, AT) MC7304 VID=0x1199 PID=0x68C0 firmware with voice support (VoLTE) SWI9X15C_06.03.32.02 r26426 CNSHZ-AR-BUILD 2015/01/16 01:32:41 Device Descriptor: -- 0x12bLength 0x01bDescriptorType 0x0200 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x1199 idVendor 0x68C0 idProduct 0x0006 bcdDevice 0x01iManufacturer "Sierra Wireless, Incorporated" 0x02iProduct "MC7304" 0x03iSerialNumber "0123456789ABCDEF" 0x01bNumConfigurations Device Qualifier Descriptor: -- 0x0AbLength 0x06bDescriptorType 0x0200 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x01bNumConfigurations 0x00bReserved Configuration Descriptor: -- 0x09bLength 0x02bDescriptorType 0x0051 wTotalLength (81 bytes) 0x02bNumInterfaces 0x01bConfigurationValue 0x00iConfiguration 0xE0bmAttributes (Self-powered Device, Remote-Wakeup) 0xFAbMaxPower (500 mA) Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x00bInterfaceNumber 0x00bAlternateSetting 0x02bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0xFFbInterfaceSubClass 0xFFbInterfaceProtocol 0x00iInterface Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x81bEndpointAddress (IN endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x01bEndpointAddress (OUT endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x04bInterfaceNumber 0x00bAlternateSetting 0x03bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0x00bInterfaceSubClass 0x00bInterfaceProtocol 0x00iInterface Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x00 0x10 0x01 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x01 0x00 0x00 Unknown Descriptor: -- 0x04bLength 0x24bDescriptorType Hex dump: 0x04 0x24 0x02 0x02 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x06 0x00 0x00 Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x83bEndpointAddress (IN endpoint 3) 0x03bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data) 0x000C wMaxPacketSize(1 x 12 bytes) 0x09bInterval (256 microframes) Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x82bEndpointAddress (IN endpoint 2) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x02bEndpointAddress (OUT endpoint 2) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Other Speed Configuration Descriptor: -- 0x09bLength 0x07bDescriptorType 0x0051 wTotalLength (81 bytes) 0x02bNumInterfaces 0x01bConfigurationValue 0x00iConfiguration 0xE0bmAttributes (Self-powered Device, Remote-Wakeup) 0xFAbMaxPower (500 mA) Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x00bInterfaceNumber 0x00bAlternateSetting 0x02bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0xFFbInterfaceSubClass 0xFFbInterfaceProtocol 0x00iInterface Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x81bEndpointAddress (IN endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0040 wMaxPacketSize(64 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x01bEndpointAddress (OUT endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0040 wMaxPacketSize(64 bytes) 0x00bInterval Interface Descriptor
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
... continuation for AT!UDUSBCOMP=[10-12,14,19] Sierra Wireless MC7304 ordinary firmware (no voice support): SWI9X15C_05.05.67.00 r31378 CARMD-EV-FRMWR1 2016/03/11 14:58:53 0 - reserved NOT SUPPORTED 1 - DM AT SUPPORTED 2 - reserved NOT SUPPORTED 3 - reserved NOT SUPPORTED 4 - reserved NOT SUPPORTED 5 - reserved NOT SUPPORTED 6 - DM NMEA ATQMI SUPPORTED 7 - DM NMEA ATRMNET1 RMNET2 RMNET3SUPPORTED 8 - DM NMEA ATMBIMSUPPORTED 9 - MBIM SUPPORTED 10 - NMEA MBIMSUPPORTED 11 - DM MBIMSUPPORTED 12 - DM NMEA MBIM SUPPORTED 13 - Config1: comp6Config2: comp8 NOT SUPPORTED 14 - Config1: comp6Config2: comp9 SUPPORTED 15 - Config1: comp6Config2: comp10NOT SUPPORTED 16 - Config1: comp6Config2: comp11NOT SUPPORTED 17 - Config1: comp6Config2: comp12NOT SUPPORTED 18 - Config1: comp7Config2: comp8 NOT SUPPORTED 19 - Config1: comp7Config2: comp9 SUPPORTED 20 - Config1: comp7Config2: comp10NOT SUPPORTED 21 - Config1: comp7Config2: comp11NOT SUPPORTED 22 - Config1: comp7Config2: comp12NOT SUPPORTED *** AT!UDUSBCOMP=10 (NMEA, MBIM) MC7304 VID=0x1199 PID=0x68C0 Ordinary firmware (no voice support): SWI9X15C_05.05.67.00 r31378 CARMD-EV-FRMWR1 2016/03/11 14:58:53 Device Descriptor: -- 0x12bLength 0x01bDescriptorType 0x0200 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x1199 idVendor 0x68C0 idProduct 0x0006 bcdDevice 0x01iManufacturer "Sierra Wireless, Incorporated" 0x02iProduct "MC7304" 0x03iSerialNumber "" 0x01bNumConfigurations Device Qualifier Descriptor: -- 0x0AbLength 0x06bDescriptorType 0x0200 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x01bNumConfigurations 0x00bReserved Configuration Descriptor: -- 0x09bLength 0x02bDescriptorType 0x0090 wTotalLength (144 bytes) 0x03bNumInterfaces 0x01bConfigurationValue 0x00iConfiguration 0xE0bmAttributes (Self-powered Device, Remote-Wakeup) 0xFAbMaxPower (500 mA) Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x02bInterfaceNumber 0x00bAlternateSetting 0x03bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0x00bInterfaceSubClass 0x00bInterfaceProtocol 0x00iInterface Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x00 0x10 0x01 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x01 0x00 0x00 Unknown Descriptor: -- 0x04bLength 0x24bDescriptorType Hex dump: 0x04 0x24 0x02 0x02 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x06 0x00 0x00 Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x82bEndpointAddress (IN endpoint 2) 0x03bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data) 0x000C wMaxPacketSize(1 x 12 bytes) 0x09bInterval (256 microframes) Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x81bEndpointAddress (IN endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x01bEndpointAddress (OUT endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Interface Association Descriptor: -- 0x08bLength 0x0BbDescriptorType 0x0CbFirstInterface 0x02bInterfaceCount 0x02bFunctionClass (Communication Device Class) 0x0EbFunctionSubClass 0x00bFunctionProtocol 0x00iFunction Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x0CbInterfaceNumber 0x00bAlternateSetting 0x01bNumEndPoints 0x02bInterfaceClass (Communication Device Class) 0x0EbInterfaceSubClass 0x00bInterfaceProtocol 0x00iInterface CDC Header Functional Descriptor:
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
Sierra Wireless EM/MC7455 AT!USBCOMP=? !USBCOMP: AT!USBCOMP=,, - configuration index to which the composition applies, sould be 1 - 1:Generic, 2:USBIF-MBIM, 3:RNDIS config type 2/3 should only be used for specific SierraPIDs: 68B1, 9068 customized VID/PID should use config type 1 - DIAG - 0x0001, NMEA - 0x0004, MODEM- 0x0008, RMNET0 - 0x0100, RMNET1 - 0x0400, MBIM - 0x1000, *** AT!USBCOMP=1,1,100D (DIAG, NMEA, MODEM/AT, MBIM) - required preferred configuration Sierra Wireless MC7455 Qualcomm® Snapdragon™ X7 LTE-A VID=0x1199 PID=0x9071 Device Descriptor: -- 0x12bLength 0x01bDescriptorType 0x0210 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x1199 idVendor 0x9071 idProduct 0x0006 bcdDevice 0x01iManufacturer "Sierra Wireless, Incorporated" 0x02iProduct "Sierra Wireless MC7455 Qualcomm® Snapdragon™ X7 LTE-A" 0x03iSerialNumber "LQ63925174367653" 0x01bNumConfigurations Device Qualifier Descriptor: -- 0x0AbLength 0x06bDescriptorType 0x0210 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x01bNumConfigurations 0x00bReserved Configuration Descriptor: -- 0x09bLength 0x02bDescriptorType 0x00D8 wTotalLength (216 bytes) 0x05bNumInterfaces 0x01bConfigurationValue 0x00iConfiguration 0xA0bmAttributes (Bus-powered Device, Remote-Wakeup) 0xFAbMaxPower (500 mA) Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x00bInterfaceNumber 0x00bAlternateSetting 0x02bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0xFFbInterfaceSubClass 0xFFbInterfaceProtocol 0x00iInterface Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x81bEndpointAddress (IN endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x01bEndpointAddress (OUT endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x02bInterfaceNumber 0x00bAlternateSetting 0x03bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0x00bInterfaceSubClass 0x00bInterfaceProtocol 0x00iInterface Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x00 0x10 0x01 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x01 0x00 0x00 Unknown Descriptor: -- 0x04bLength 0x24bDescriptorType Hex dump: 0x04 0x24 0x02 0x02 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x06 0x00 0x00 Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x83bEndpointAddress (IN endpoint 3) 0x03bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data) 0x000A wMaxPacketSize(1 x 10 bytes) 0x09bInterval (256 microframes) Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x82bEndpointAddress (IN endpoint 2) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x02bEndpointAddress (OUT endpoint 2) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x03bInterfaceNumber 0x00bAlternateSetting 0x03bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0x00bInterfaceSubClass 0x00bInterfaceProtocol 0x00iInterface Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x00 0x10 0x01 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x01 0x00 0x00 Unknown Descriptor: -- 0x04bLength 0x24bDescriptorType Hex dump: 0x04 0x24 0x02 0x02 Unknown Descriptor: -- 0x05bLength 0x24bDes
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
Sierra Wireless MC7304 ordinary firmware (no voice support): SWI9X15C_05.05.67.00 r31378 CARMD-EV-FRMWR1 2016/03/11 14:58:53 0 - reserved NOT SUPPORTED 1 - DM AT SUPPORTED 2 - reserved NOT SUPPORTED 3 - reserved NOT SUPPORTED 4 - reserved NOT SUPPORTED 5 - reserved NOT SUPPORTED 6 - DM NMEA ATQMI SUPPORTED 7 - DM NMEA ATRMNET1 RMNET2 RMNET3SUPPORTED 8 - DM NMEA ATMBIMSUPPORTED 9 - MBIM SUPPORTED 10 - NMEA MBIMSUPPORTED 11 - DM MBIMSUPPORTED 12 - DM NMEA MBIM SUPPORTED 13 - Config1: comp6Config2: comp8 NOT SUPPORTED 14 - Config1: comp6Config2: comp9 SUPPORTED 15 - Config1: comp6Config2: comp10NOT SUPPORTED 16 - Config1: comp6Config2: comp11NOT SUPPORTED 17 - Config1: comp6Config2: comp12NOT SUPPORTED 18 - Config1: comp7Config2: comp8 NOT SUPPORTED 19 - Config1: comp7Config2: comp9 SUPPORTED 20 - Config1: comp7Config2: comp10NOT SUPPORTED 21 - Config1: comp7Config2: comp11NOT SUPPORTED 22 - Config1: comp7Config2: comp12NOT SUPPORTED *** AT!UDUSBCOMP=8 (DM, NMEA, MODEM/AT, MBIM) - required preferred configuration MC7304 VID=0x1199 PID=0x68C0 Ordinary firmware (no voice support): SWI9X15C_05.05.67.00 r31378 CARMD-EV-FRMWR1 2016/03/11 14:58:53 Device Descriptor: -- 0x12bLength 0x01bDescriptorType 0x0200 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x1199 idVendor 0x68C0 idProduct 0x0006 bcdDevice 0x01iManufacturer "Sierra Wireless, Incorporated" 0x02iProduct "MC7304" 0x03iSerialNumber "" 0x01bNumConfigurations Device Qualifier Descriptor: -- 0x0AbLength 0x06bDescriptorType 0x0200 bcdUSB 0x00bDeviceClass 0x00bDeviceSubClass 0x00bDeviceProtocol 0x40bMaxPacketSize0 (64 bytes) 0x01bNumConfigurations 0x00bReserved Configuration Descriptor: -- 0x09bLength 0x02bDescriptorType 0x00D8 wTotalLength (216 bytes) 0x05bNumInterfaces 0x01bConfigurationValue 0x00iConfiguration 0xE0bmAttributes (Self-powered Device, Remote-Wakeup) 0xFAbMaxPower (500 mA) Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x00bInterfaceNumber 0x00bAlternateSetting 0x02bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0xFFbInterfaceSubClass 0xFFbInterfaceProtocol 0x00iInterface Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x81bEndpointAddress (IN endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x01bEndpointAddress (OUT endpoint 1) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Interface Descriptor: -- 0x09bLength 0x04bDescriptorType 0x02bInterfaceNumber 0x00bAlternateSetting 0x03bNumEndPoints 0xFFbInterfaceClass (Vendor specific) 0x00bInterfaceSubClass 0x00bInterfaceProtocol 0x00iInterface Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x00 0x10 0x01 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x01 0x00 0x00 Unknown Descriptor: -- 0x04bLength 0x24bDescriptorType Hex dump: 0x04 0x24 0x02 0x02 Unknown Descriptor: -- 0x05bLength 0x24bDescriptorType Hex dump: 0x05 0x24 0x06 0x00 0x00 Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x83bEndpointAddress (IN endpoint 3) 0x03bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data) 0x000C wMaxPacketSize(1 x 12 bytes) 0x09bInterval (256 microframes) Endpoint Descriptor: -- 0x07bLength 0x05bDescriptorType 0x82bEndpointAddress (IN endpoint 2) 0x02bmAttributes (Transfer: Bulk / Synch: None / Usage: Data) 0x0200 wMaxPacketSize(512 bytes) 0x00bInterval Endpoint Descriptor: -- 0x07bLength 0x05
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
On Thu, 16 Aug 2018 13:56:13 +0300 Denis wrote: > I can change AT!UDUSBCOMP modes for MC7304 and MC7455 I have in production. > > But how to make full dump of all the USB device descriptors for each > UDUSBCOMP mode? Can I make it by usbdevs - or how? Hi Denis, no that won't work. You could switch the module to each one of the supported modes and query the descriptors. Unfortunately, some of the modes are one way streets, i.e. for the offered APIs of the mode there is no known method to change it back again to some different mode (although I'm quite sure that Sierra Wireless knows how to do it). So to get that information, it's much easier to read the documentation: https://source.sierrawireless.com/resources/airprime/minicard/airprime_mc73xx_usb_driver_developers_guide/# (registration required). In chapter 3.1 "AirPrime MC73xx USB Interfaces" you'll find what you're looking for. Gerhard > > Denis > > On 8/15/2018 5:41 PM, Mark Kettenis wrote: > >> Date: Wed, 15 Aug 2018 09:56:50 +0100 > >> From: Stuart Henderson > >> > >> On 2018/08/14 18:43, Bryan Vyhmeister wrote: > >>> On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: > Most of modern modems have serial discipline ports and USB Mobile > Broadband Interface Model (MBIM) interface in some port compositions > simultaneously. It seems very useful to have different disciplines > supported by umsm(4) and umb(4) drivers on the same device. > > >>> > > Does it possible to have simultaneously operated AT + NMEA ports by > umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 > device in 6.3? > >>> > >>> What is the advantage in having a device attach to both umsm(4) and > >>> umb(4)? What are you trying to accomplish? The EM7455 worked perfectly > >>> with umb(4) until your previous umsm(4) diff and now it only attaches as > >>> umsm(4). Are you wanting to send SMS messages or something like that > >>> with your devices? > >>> > >>> Bryan > >>> > >> > >> Denis has a good point because umsm is needed for GPS and as you > >> suggest SMS. > >> > >> What determines which driver attaches when a device is supported by > >> multiple drivers? Perhaps the simplest option without more complex work > >> to support different interfaces on different drivers would be to have > >> the device attach to umb by default but attach to umsm instead if umb is > >> disabled in the kernel. Then at least a standard kernel could be used > >> with "disable umb" from boot config. > > > > The return value from the "match" function determines which driver > > attaches. The driver that returns the highest value wins. > > > > However, matching for USB devices is complicated. Drivers already use > > different return values (the UMATCH_* constants). On top of that > > drivers can claim a whole device or claim just a particular interface > > of a device. This requires some careful though to make sure the right > > driver attaches. > > > > What we really need is a full dump of the usb device descriptors, > > preferably in all the different UDUSBCOMP modes. > >
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
I can change AT!UDUSBCOMP modes for MC7304 and MC7455 I have in production. But how to make full dump of all the USB device descriptors for each UDUSBCOMP mode? Can I make it by usbdevs - or how? Denis On 8/15/2018 5:41 PM, Mark Kettenis wrote: >> Date: Wed, 15 Aug 2018 09:56:50 +0100 >> From: Stuart Henderson >> >> On 2018/08/14 18:43, Bryan Vyhmeister wrote: >>> On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: Most of modern modems have serial discipline ports and USB Mobile Broadband Interface Model (MBIM) interface in some port compositions simultaneously. It seems very useful to have different disciplines supported by umsm(4) and umb(4) drivers on the same device. >>> Does it possible to have simultaneously operated AT + NMEA ports by umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 device in 6.3? >>> >>> What is the advantage in having a device attach to both umsm(4) and >>> umb(4)? What are you trying to accomplish? The EM7455 worked perfectly >>> with umb(4) until your previous umsm(4) diff and now it only attaches as >>> umsm(4). Are you wanting to send SMS messages or something like that >>> with your devices? >>> >>> Bryan >>> >> >> Denis has a good point because umsm is needed for GPS and as you >> suggest SMS. >> >> What determines which driver attaches when a device is supported by >> multiple drivers? Perhaps the simplest option without more complex work >> to support different interfaces on different drivers would be to have >> the device attach to umb by default but attach to umsm instead if umb is >> disabled in the kernel. Then at least a standard kernel could be used >> with "disable umb" from boot config. > > The return value from the "match" function determines which driver > attaches. The driver that returns the highest value wins. > > However, matching for USB devices is complicated. Drivers already use > different return values (the UMATCH_* constants). On top of that > drivers can claim a whole device or claim just a particular interface > of a device. This requires some careful though to make sure the right > driver attaches. > > What we really need is a full dump of the usb device descriptors, > preferably in all the different UDUSBCOMP modes. >
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
> Date: Wed, 15 Aug 2018 09:56:50 +0100 > From: Stuart Henderson > > On 2018/08/14 18:43, Bryan Vyhmeister wrote: > > On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: > > > Most of modern modems have serial discipline ports and USB Mobile > > > Broadband Interface Model (MBIM) interface in some port compositions > > > simultaneously. It seems very useful to have different disciplines > > > supported by umsm(4) and umb(4) drivers on the same device. > > > > > > > > > > > Does it possible to have simultaneously operated AT + NMEA ports by > > > umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 > > > device in 6.3? > > > > What is the advantage in having a device attach to both umsm(4) and > > umb(4)? What are you trying to accomplish? The EM7455 worked perfectly > > with umb(4) until your previous umsm(4) diff and now it only attaches as > > umsm(4). Are you wanting to send SMS messages or something like that > > with your devices? > > > > Bryan > > > > Denis has a good point because umsm is needed for GPS and as you > suggest SMS. > > What determines which driver attaches when a device is supported by > multiple drivers? Perhaps the simplest option without more complex work > to support different interfaces on different drivers would be to have > the device attach to umb by default but attach to umsm instead if umb is > disabled in the kernel. Then at least a standard kernel could be used > with "disable umb" from boot config. The return value from the "match" function determines which driver attaches. The driver that returns the highest value wins. However, matching for USB devices is complicated. Drivers already use different return values (the UMATCH_* constants). On top of that drivers can claim a whole device or claim just a particular interface of a device. This requires some careful though to make sure the right driver attaches. What we really need is a full dump of the usb device descriptors, preferably in all the different UDUSBCOMP modes.
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
umsm(4) patch is needed to recognize MC7304 by umsm(4) and to have both NMEA and AT ports enabled. Especially, I'm using MC7304's (MC7455 on another platform) NMEA port for NTP time corrections from GLO/GPS. AT port is needed for mode changes by AT commands. Very useful. umb(4) is a good one for modern fast data transmit over MBIM port. So the advantages of simultaneous running umsm(4) and umb(4) drivers for single physical device are: - having NMEA + AT serial discipline working by umsm(4); (any rather 'old' serial discipline functionality can be used like SMS, modem's mode changes by AT commands etc.) - MBIM for fast LTE Cat-3 / Cat-6 data connections by modern umb(4) driver. Denis On 8/15/2018 4:43 AM, Bryan Vyhmeister wrote: > On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: >> Most of modern modems have serial discipline ports and USB Mobile >> Broadband Interface Model (MBIM) interface in some port compositions >> simultaneously. It seems very useful to have different disciplines >> supported by umsm(4) and umb(4) drivers on the same device. >> > >> >> Does it possible to have simultaneously operated AT + NMEA ports by >> umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 >> device in 6.3? > > What is the advantage in having a device attach to both umsm(4) and > umb(4)? What are you trying to accomplish? The EM7455 worked perfectly > with umb(4) until your previous umsm(4) diff and now it only attaches as > umsm(4). Are you wanting to send SMS messages or something like that > with your devices? > > Bryan >
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
On 2018/08/15 09:56, Stuart Henderson wrote: > On 2018/08/14 18:43, Bryan Vyhmeister wrote: > > On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: > > > Most of modern modems have serial discipline ports and USB Mobile > > > Broadband Interface Model (MBIM) interface in some port compositions > > > simultaneously. It seems very useful to have different disciplines > > > supported by umsm(4) and umb(4) drivers on the same device. > > > > > > > > > > > Does it possible to have simultaneously operated AT + NMEA ports by > > > umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 > > > device in 6.3? > > > > What is the advantage in having a device attach to both umsm(4) and > > umb(4)? What are you trying to accomplish? The EM7455 worked perfectly > > with umb(4) until your previous umsm(4) diff and now it only attaches as > > umsm(4). Are you wanting to send SMS messages or something like that > > with your devices? > > > > Bryan > > > > Denis has a good point because umsm is needed for GPS and as you > suggest SMS. > > What determines which driver attaches when a device is supported by > multiple drivers? Perhaps the simplest option without more complex work > to support different interfaces on different drivers would be to have > the device attach to umb by default but attach to umsm instead if umb is > disabled in the kernel. Then at least a standard kernel could be used > with "disable umb" from boot config. > (In case it's not clear I definitely agree with backing out the change for now, the above is me considering ways forward because it definitely seems reasonable to want to use the GPS ..)
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
On 2018/08/14 18:43, Bryan Vyhmeister wrote: > On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: > > Most of modern modems have serial discipline ports and USB Mobile > > Broadband Interface Model (MBIM) interface in some port compositions > > simultaneously. It seems very useful to have different disciplines > > supported by umsm(4) and umb(4) drivers on the same device. > > > > > > > Does it possible to have simultaneously operated AT + NMEA ports by > > umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 > > device in 6.3? > > What is the advantage in having a device attach to both umsm(4) and > umb(4)? What are you trying to accomplish? The EM7455 worked perfectly > with umb(4) until your previous umsm(4) diff and now it only attaches as > umsm(4). Are you wanting to send SMS messages or something like that > with your devices? > > Bryan > Denis has a good point because umsm is needed for GPS and as you suggest SMS. What determines which driver attaches when a device is supported by multiple drivers? Perhaps the simplest option without more complex work to support different interfaces on different drivers would be to have the device attach to umb by default but attach to umsm instead if umb is disabled in the kernel. Then at least a standard kernel could be used with "disable umb" from boot config.
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
Bryan Vyhmeister wrote: > On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: > > Most of modern modems have serial discipline ports and USB Mobile > > Broadband Interface Model (MBIM) interface in some port compositions > > simultaneously. It seems very useful to have different disciplines > > supported by umsm(4) and umb(4) drivers on the same device. > > > > > > > Does it possible to have simultaneously operated AT + NMEA ports by > > umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 > > device in 6.3? > > What is the advantage in having a device attach to both umsm(4) and > umb(4)? What are you trying to accomplish? The EM7455 worked perfectly > with umb(4) until your previous umsm(4) diff and now it only attaches as > umsm(4). Are you wanting to send SMS messages or something like that > with your devices? umb is better. If this causes a regression, it should be backed out.
Re: umsm(4) and umb(4) separate loading for the same composite USB modem device
On Tue, Aug 14, 2018 at 05:53:43PM +0300, Denis wrote: > Most of modern modems have serial discipline ports and USB Mobile > Broadband Interface Model (MBIM) interface in some port compositions > simultaneously. It seems very useful to have different disciplines > supported by umsm(4) and umb(4) drivers on the same device. > > > Does it possible to have simultaneously operated AT + NMEA ports by > umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 > device in 6.3? What is the advantage in having a device attach to both umsm(4) and umb(4)? What are you trying to accomplish? The EM7455 worked perfectly with umb(4) until your previous umsm(4) diff and now it only attaches as umsm(4). Are you wanting to send SMS messages or something like that with your devices? Bryan
umsm(4) and umb(4) separate loading for the same composite USB modem device
Hello there, Most of modern modems have serial discipline ports and USB Mobile Broadband Interface Model (MBIM) interface in some port compositions simultaneously. It seems very useful to have different disciplines supported by umsm(4) and umb(4) drivers on the same device. For instance, Sierra Wireless MC7304 EM/MC7455 wireless cards can be configured to have both MBIM + AT + NMEA ports (AT!UDUSBCOMP=8): AT!UDUSBCOMP=? ... 8 - DM NMEA ATMBIMSUPPORTED 9 - MBIM SUPPORTED 10 - NMEA MBIMSUPPORTED 11 - DM MBIMSUPPORTED 12 - DM NMEA MBIM SUPPORTED ... Currently in OpenBSD 6.3 if AT!UDUSBCOMP=8 was enabled for MC7304 all the ports recognized by umsm(4) driver, so MBIM port return error in this case. If AT!UDUSBCOMP=9 so MBIM interface recognized successfully by umb(4) driver but there is no NMEA+AT ports enabled. Does it possible to have simultaneously operated AT + NMEA ports by umsm(4)driver and MBIM interface by umb(4) driver on the same MC7304 device in 6.3?