| 1 | [[PageOutline]] |
| 2 | |
| 3 | = Flexible Socket Architecture (FSA) |
| 4 | |
| 5 | Flexible Socket Architecture is a custom connector form-factor present on the Gateworks 'Venice-Flex' product line currently consisting of the following boards: |
| 6 | * GW82xx |
| 7 | |
| 8 | The goal of the FSA socket is to bridge the gap between the various socket formats: |
| 9 | * MiniPCIe |
| 10 | * M.2 E-Key |
| 11 | * M.2 B-Key |
| 12 | * M.2 M-Key |
| 13 | |
| 14 | == GW82xx Baseboard |
| 15 | The GW82xx has two FSA sockets: |
| 16 | * FSA1 (J29): USB2.0, USB3.0, PCIE3.0 (2x 1x lanes), SPI, Power Enable |
| 17 | * FSA2 (J30): USB2.0, USB3.0, PCIE3.0 (2x 1x lanes), PCM, UART (4-wire), SPI, SDIO (1.8V), GPIO (3x), Power Enable |
| 18 | |
| 19 | |
| 20 | == GW16FE0 FSA M.2 E-Key Adapter |
| 21 | The GW16FE0 E-Key Adapter provides an M.2 E-Key socket with the following: |
| 22 | * I2C (1.8V CLK/SDA/ALERT#) |
| 23 | * USB2.0 |
| 24 | * PCIE3.0 (with PERST# 3.3V) |
| 25 | * PCM (1.8V) |
| 26 | * UART (1.8V 4-wire) |
| 27 | * SPI (1.8V 1 chip-select) |
| 28 | * GPIO1 (W_DISALBE1# 3.3V) |
| 29 | * GPIO2 (W_DISABLE2# 3.3V) |
| 30 | * GPIO4 (ALERT# 1.8V) |
| 31 | * LED1# (OD Yellow) |
| 32 | * LED2# (OD Yellow) |
| 33 | * Power Enable (baseboard GPIO) |
| 34 | |
| 35 | Pinout (from baseboard perspective): |
| 36 | ||= pin =||= signal =||= signal =||= pin =|| |
| 37 | || 1 || GND || 3.3V || 2 || |
| 38 | || 3 || USB_DP || 3.3V || 4 || |
| 39 | || 5 || USB_DN || LED1#(OD) || 6 || |
| 40 | || 7 || GND || PCM_CLK(I/O)(1.8V) || 8 || |
| 41 | || 9 || SDIO_CLK(O)(1.8V) || PCM_SYNC(I/O)(1.8V) || 10 || |
| 42 | || 11 || SDIO_CMD(O)(1.8V) || PCM_IN(I)(1.8V) || 12 || |
| 43 | || 13 || SDIO_D0(O)(1.8V) || PCM_OUT(O)(1.8V) || 14 || |
| 44 | || 15 || SDIO_D1(O)(1.8V) || LED2#(OD) || 16 || |
| 45 | || 17 || SDIO_D2(O)(1.8V) || GND || 18 || |
| 46 | || 19 || SDIO_D3(O)(1.8V) || NC || 20 || |
| 47 | || 21 || NC || UART_RXD(I)(1.8V) || 22 || |
| 48 | || 23 || SDIO_RST#(O)(1.8V) || KEY || 24 || |
| 49 | || 25 || KEY || KEY || 26 || |
| 50 | || 27 || KEY || KEY || 28 || |
| 51 | || 29 || KEY || KEY || 30 || |
| 52 | || 31 || KEY || UART_TXD(O)(1.8V) || 32 || |
| 53 | || 33 || GND || UART_CTS(I)(1.8V) || 34 || |
| 54 | || 35 || PCIE_TXP || UART_RTS(O)(1.8V) || 36 || |
| 55 | || 37 || PCIE_TXN || SPI_MOSI(O)(1.8V)^^^2^^^ || 38 || |
| 56 | || 39 || GND || SPI_MISO(I)(1.8V)^^^2^^^ || 40 || |
| 57 | || 41 || PCIE_RXP || SPI_CLK(O)(1.8V)^^^2^^^ || 42 || |
| 58 | || 43 || PCIE_RXN || COEX1^^^1^^^ || 44 || |
| 59 | || 45 || GND || COEX2^^^1^^^ || 46 || |
| 60 | || 47 || PCIE_CKP || COEX3^^^1^^^^ || 48 || |
| 61 | || 49 || PCIE_CKN || NC || 50 || |
| 62 | || 51 || GND || PERST#(O)(3.3V) || 52 || |
| 63 | || 53 || NC || W_DISABLE2(O)(3.3V)|| 54 || |
| 64 | || 55 || NC || W_DISABLE1(O)(3.3V)|| 56 || |
| 65 | || 57 || GND || I2C_SDA(I/O)(1.8V) || 58 || |
| 66 | || 59 || NC || I2C_CLK(O)(1.8V) || 60 || |
| 67 | || 61 || NC || ALERT#(I)(1.8V) || 62 || |
| 68 | || 63 || GND || SPI_SS0(O)(1.8V)^^^2^^^ || 64 || |
| 69 | || 65 || NC || NC || 66 || |
| 70 | || 67 || NC || NC || 68 || |
| 71 | || 69 || GND || NC || 70 || |
| 72 | || 71 || NC || 3.3V || 72 || |
| 73 | || 73 || NC || 3.3V || 74 || |
| 74 | || 75 || GND || || || |
| 75 | 1. The COEX[1..3] signals are ganged to each FSA socket on the baseboard |
| 76 | 2. There are no SPI pins defined in the M.2 specification; MOSI/MSIO/CLK above are defined as 'VENDOR SPECIFIED', SPI_SS0 (pin 64) is defined as RESERVED in v1-v3 of the M.2 specification and as VIO 1.8V in the v4 specification, and ALERT# is defined as an I2C interrupt which can also be used as a SPI interrupt. |
| 77 | |
| 78 | |
| 79 | === Card: Intel 9260 M.2 E-Key WiFi5 (802.11ac) / BT5.1 |
| 80 | The Intel 9260 M.2 E-Key combo card uses PCI for !WiFi and USB2.0 for Bluetooth |
| 81 | |
| 82 | Pin Details: |
| 83 | * W_DISABLE1# WLAN_EN (drive high to enable !WiFi RF; low to disable) |
| 84 | * W_DISABLE2# BT_EN (drive high to enable USB/BT) |
| 85 | |
| 86 | !WiFi details: |
| 87 | * WiFi5 802.11ac |
| 88 | * PCIe 0x8086:0x2526 |
| 89 | * supported by iwlwifi; drivers/net/wireless/intel/iwlwifi CONFIG_IWLWIFI |
| 90 | * registers 6 MSI interrupts |
| 91 | * Example usage: |
| 92 | - driver |
| 93 | {{{#!bash |
| 94 | [ 8.222036] iwlwifi 0000:07:00.0: enabling device (0000 -> 0002) |
| 95 | [ 8.287908] iwlwifi 0000:07:00.0: Detected crf-id 0x2816, cnv-id 0x1000200 wfpm id 0x80000000 |
| 96 | [ 8.287937] iwlwifi 0000:07:00.0: PCI dev 2526/0014, rev=0x321, rfid=0x105110 |
| 97 | [ 8.288081] iwlwifi 0000:07:00.0: _request_firmware iwlwifi-9260-th-b0-jf-b0-46.ucode |
| 98 | [ 8.308533] iwlwifi 0000:07:00.0: Loaded FW: iwlwifi-9260-th-b0-jf-b0-46.ucode, sha256: 05f4c12514fddfd56fea660b3d2eb6b6e6f |
| 99 | 4a87a324d5d40464050312ddca911 |
| 100 | [ 8.308682] iwlwifi 0000:07:00.0: WRT: Overriding region id 0 |
| 101 | [ 8.308693] iwlwifi 0000:07:00.0: WRT: Overriding region id 1 |
| 102 | [ 8.308701] iwlwifi 0000:07:00.0: WRT: Overriding region id 2 |
| 103 | [ 8.308706] iwlwifi 0000:07:00.0: WRT: Overriding region id 3 |
| 104 | [ 8.308711] iwlwifi 0000:07:00.0: WRT: Overriding region id 4 |
| 105 | [ 8.308717] iwlwifi 0000:07:00.0: WRT: Overriding region id 6 |
| 106 | [ 8.308722] iwlwifi 0000:07:00.0: WRT: Overriding region id 8 |
| 107 | [ 8.308728] iwlwifi 0000:07:00.0: WRT: Overriding region id 9 |
| 108 | [ 8.308733] iwlwifi 0000:07:00.0: WRT: Overriding region id 10 |
| 109 | [ 8.308738] iwlwifi 0000:07:00.0: WRT: Overriding region id 11 |
| 110 | [ 8.308744] iwlwifi 0000:07:00.0: WRT: Overriding region id 15 |
| 111 | [ 8.308750] iwlwifi 0000:07:00.0: WRT: Overriding region id 16 |
| 112 | [ 8.308755] iwlwifi 0000:07:00.0: WRT: Overriding region id 18 |
| 113 | [ 8.308761] iwlwifi 0000:07:00.0: WRT: Overriding region id 19 |
| 114 | [ 8.308766] iwlwifi 0000:07:00.0: WRT: Overriding region id 20 |
| 115 | [ 8.308772] iwlwifi 0000:07:00.0: WRT: Overriding region id 21 |
| 116 | [ 8.308778] iwlwifi 0000:07:00.0: WRT: Overriding region id 28 |
| 117 | [ 8.309979] iwlwifi 0000:07:00.0: _request_firmware iwl-debug-yoyo.bin |
| 118 | [ 8.310663] iwlwifi 0000:07:00.0: loaded firmware version 46.7e3e4b69.0 9260-th-b0-jf-b0-46.ucode op_mode iwlmvm |
| 119 | [ 8.732849] iwlwifi 0000:07:00.0: Detected Intel(R) Wireless-AC 9260 160MHz, REV=0x321 |
| 120 | [ 8.890083] iwlwifi 0000:07:00.0: reporting RF_KILL (radio disabled) |
| 121 | [ 8.945928] iwlwifi 0000:07:00.0: base HW address: d8:3b:bf:ba:5e:a5, OTP minor version: 0x4 |
| 122 | root@noble-venice:~# ls -l /sys/class/net/wlan0 |
| 123 | lrwxrwxrwx 1 root root 0 Oct 28 19:49 /sys/class/net/wlan0 -> ../../devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00 |
| 124 | .0/0000:01:00.0/0000:02:05.0/0000:07:00.0/net/wlan0 |
| 125 | }}} |
| 126 | |
| 127 | Bluetooth details: |
| 128 | * Bluetooth 5.1 |
| 129 | * USB2.0: 0x8087:0x0025 (needs W_DISABLE2# BT_EN asserted high) |
| 130 | * supported by btusb; drivers/bluetooth/btusb.c CONFIG_BT_HCIBTUSB |
| 131 | |
| 132 | |
| 133 | === Card: LAIRD 453-00048 LWB5+ M.2 E-Key (SDIO/UART) WiFi5 (802.11ac) / BT5.2 |
| 134 | The LAIRD 453-00048 LWB5+ M.2 E-Key combo radio uses SDIO for !WiFi and UART for Bluetooth and is based on the LAIRD 453-00047 module. The module on this board is resistor strapped to select the 1.8V SDIO for !WiFi and USB for Bluetooth. |
| 135 | |
| 136 | See: |
| 137 | * [https://www.ezurio.com/documentation/product-brief-sterling-lwb5 Product-Brief-Sterling-LWB5-M2] |
| 138 | * [https://www.ezurio.com/documentation/datasheet-sterling-lwb5-m2 Datasheet-Sterling-LWB5-M2] |
| 139 | |
| 140 | Pin Considerations: |
| 141 | * W_DISABLE1# WLAN_EN (needs to be asserted high for !WiFi) |
| 142 | * W_DISABLE2# BT_EN (needs to be asserted high for Bluetooth) |
| 143 | |
| 144 | A device-tree overlay is required to bind the proper wifi and bluetooth drivers: |
| 145 | {{{#!bash |
| 146 | &usdhc1 { |
| 147 | wifi@0 { |
| 148 | compatible = "cypress,cyw4373-fmac", "brcm,bcm4329-fmac"; |
| 149 | reg = <0>; |
| 150 | }; |
| 151 | }; |
| 152 | |
| 153 | &uart3 { |
| 154 | bluetooth { |
| 155 | compatible = "brcm,bcm4330-bt"; |
| 156 | }; |
| 157 | }; |
| 158 | }}} |
| 159 | |
| 160 | !WiFi Details: |
| 161 | * WiFi5 802.11ac |
| 162 | * SDIO 0x02d0:0x4373 SDR104 |
| 163 | {{{#!bash |
| 164 | # cat /sys/bus/mmc/devices/mmc0\:0001/{vendor,device} |
| 165 | 0x02d0 |
| 166 | 0x4373 |
| 167 | # dmesg | grep mmc0 |
| 168 | [ 1.012822] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA |
| 169 | [ 1.041288] mmc_sdio_init_card mmc0 quirks=0x0 ocr_card=0x300000 (1.8v=1) |
| 170 | [ 1.048092] mmc_sdio_init_card mmc0 setting voltage to 1.8V |
| 171 | [ 1.208613] mmc0: new ultra high speed SDR104 SDIO card at address 0001 |
| 172 | # cat /sys/kernel/debug/mmc0/ios |
| 173 | clock: 25000000 Hz |
| 174 | actual clock: 25000000 Hz |
| 175 | vdd: 21 (3.3 ~ 3.4 V) |
| 176 | bus mode: 2 (push-pull) |
| 177 | chip select: 0 (don't care) |
| 178 | power mode: 2 (on) |
| 179 | bus width: 2 (4 bits) |
| 180 | timing spec: 6 (sd uhs SDR104) |
| 181 | signal voltage: 1 (1.80 V) |
| 182 | driver type: 0 (driver type B) |
| 183 | }}} |
| 184 | * firmware: https://www.ezurio.com/support/faqs/what-are-all-these-firmware-files-sterling-lwb5 |
| 185 | - have to symlink the generic brcmfmac4373-sdio.bin firmware to your board specific firmware? (brcmfmac4373-sdio.gateworks,imx8mp-gw82xx-2x.bin) |
| 186 | * supported by brcmfmac driver; ./drivers/net/wireless/broadcom/brcm80211/brcmfmac CONFIG_BRCMFMAC |
| 187 | |
| 188 | Bluetooth Details: |
| 189 | * Bluetooth 5.2 |
| 190 | * supported by hci_bcm driver; drivers/bluetooth/hci_bcm.c CONFIG_BT_BCM |
| 191 | |
| 192 | |
| 193 | |
| 194 | === Card: Silex SDMAX M.2 E-Key SDIO/UART WiFi6 / BT5.3 |
| 195 | The Silex SDMAX Wifi6+BT5.3 802.11ax M.2 E-Key combo radio is based on the NXP IW611 chip using SDIO for wifi and UART for bluetooth: |
| 196 | * https://www.silextechnology.com/connectivity-solutions/embedded-wireless/sx-sdmax |
| 197 | * https://www.silextechnology.com/productspecs/sx-sdmax-product-specification |
| 198 | |
| 199 | Pin Details: |
| 200 | * W_DISABLE1# PDn (drive low to power down) |
| 201 | * W_DISABLE2# BT_RESET (drive low to reset BT) |
| 202 | |
| 203 | !Wifi details: |
| 204 | * Wifi6 802.11ax |
| 205 | * SDIO 0x0471:0x0204 SDR104 |
| 206 | {{{#!bash |
| 207 | # dmesg | grep mmc0 |
| 208 | [ 1.007858] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA |
| 209 | [ 1.119413] mmc0: new ultra high speed SDR104 SDIO card at address 0001 |
| 210 | # cat /sys/bus/mmc/devices/mmc0\:0001/{vendor,device} |
| 211 | 0x0471 |
| 212 | 0x0204 |
| 213 | # cat /sys/kernel/debug/mmc0/ios |
| 214 | clock: 25000000 Hz |
| 215 | actual clock: 25000000 Hz |
| 216 | vdd: 21 (3.3 ~ 3.4 V) |
| 217 | bus mode: 2 (push-pull) |
| 218 | chip select: 0 (don't care) |
| 219 | power mode: 2 (on) |
| 220 | bus width: 2 (4 bits) |
| 221 | timing spec: 6 (sd uhs SDR104) |
| 222 | signal voltage: 1 (1.80 V) |
| 223 | driver type: 0 (driver type B) |
| 224 | }}} |
| 225 | * supported by the mwifiex driver |
| 226 | - as of Linux 6.6 at least you need the out-of-tree mwifiex driver; the out-of-tree mwifiex driver has support for 5.4, 5.10, 5.15, 6.1, 6.6 (based on NXP bsp branch naming) |
| 227 | {{{#!bash |
| 228 | # get firmware (out-of-tree mwifiex requires a conf file) |
| 229 | git clone https://github.com/nxp-imx/imx-firmware.git |
| 230 | cp imx-firmware/nxp/wifi_mod_para.conf imx-firmware/nxp/FwImage_IW612_SD/* /lib/firmware/nxp/ |
| 231 | # build driver |
| 232 | git clone https://github.com/nxp-imx/mwifiex.git -b lf-6.6.3_1.0.0 |
| 233 | make -C /lib/modules/$(uname -r)/build M=$PWD/mwifiex/mxm_wifiex/wlan_src |
| 234 | # load driver |
| 235 | insmod mwifiex/mxm_wifiex/wlan_src/mlan.ko |
| 236 | insmod mwifiex/mxm_wifiex/wlan_src/moal.ko mod_para=nxp/wifi_mod_para.conf |
| 237 | [ 86.896141] wlan: Loading MWLAN driver |
| 238 | [ 86.900322] wlan: Register to Bus Driver... |
| 239 | [ 86.904773] vendor=0x0471 device=0x0205 class=0 function=1 |
| 240 | [ 86.910432] Attach moal handle ops, card interface type: 0x109 |
| 241 | [ 86.916324] rps set to 0 from module param |
| 242 | [ 86.920471] wlan_sdio mmc0:0001:1: _request_firmware nxp/wifi_mod_para.conf |
| 243 | [ 86.931066] wlan_sdio mmc0:0001:1: Loaded FW: nxp/wifi_mod_para.conf, sha256: 8ab3a368b9a8b8003de96c94b27847d9cfc6a428248af35b2a9d4e3f53460993 |
| 244 | [ 86.943911] SDIW612: init module param from usr cfg |
| 245 | [ 86.948864] card_type: SDIW612, config block: 0 |
| 246 | [ 86.953430] cfg80211_wext=0xf |
| 247 | [ 86.956408] max_vir_bss=1 |
| 248 | [ 86.959099] cal_data_cfg=none |
| 249 | [ 86.962116] ps_mode = 1 |
| 250 | [ 86.964589] auto_ds = 1 |
| 251 | [ 86.967051] host_mlme=enable |
| 252 | [ 86.969946] fw_name=nxp/sduart_nw61x_v1.bin.se |
| 253 | [ 86.974434] SDIO: max_segs=128 max_seg_size=65535 |
| 254 | [ 86.979160] rx_work=1 cpu_num=4 |
| 255 | [ 86.982319] Enable moal_recv_amsdu_packet |
| 256 | [ 86.986376] Attach mlan adapter operations.card_type is 0x109. |
| 257 | [ 86.992806] wlan: Enable TX SG mode |
| 258 | [ 86.996337] wlan: Enable RX SG mode |
| 259 | [ 87.003840] Request firmware: nxp/sduart_nw61x_v1.bin.se |
| 260 | [ 87.009193] wlan_sdio mmc0:0001:1: _request_firmware nxp/sduart_nw61x_v1.bin.se |
| 261 | [ 87.027218] wlan_sdio mmc0:0001:1: Loaded FW: nxp/sduart_nw61x_v1.bin.se, sha256: 3a863f0a2f457ecb1fb838c66fff074fa967545b78397a1ef14b2289e85c24fd |
| 262 | [ 87.326643] Wlan: FW download over, firmwarelen=1004248 downloaded 916048 |
| 263 | [ 87.731821] WLAN FW is active |
| 264 | [ 87.734802] on_time is 87519080591 |
| 265 | [ 87.757772] VDLL image: len=88200 |
| 266 | [ 87.761457] fw_cap_info=0x487cff03, dev_cap_mask=0xffffffff |
| 267 | [ 87.767086] uuid: af55156e818b5e64a916b21032b7c73b |
| 268 | [ 87.771916] max_p2p_conn = 8, max_sta_conn = 16 |
| 269 | [ 87.797069] Register NXP 802.11 Adapter mlan0 |
| 270 | [ 87.801642] wlan: uap%d set max_mtu 2000 |
| 271 | [ 87.807759] Register NXP 802.11 Adapter uap0 |
| 272 | [ 87.823977] Register NXP 802.11 Adapter wfd0 |
| 273 | [ 87.829691] wlan: version = SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92) |
| 274 | [ 87.844678] wlan: Register to Bus Driver Done |
| 275 | [ 87.849116] wlan: Driver loaded successfully |
| 276 | root@noble-venice:~# ls /sys/class/net/ |
| 277 | can0 can1 eth0 eth1 lo mlan0 uap0 wfd0 |
| 278 | }}} |
| 279 | |
| 280 | Bluetooth details: |
| 281 | * Bluetooth 5.3 BR/EDR/LE |
| 282 | * the mwifiex wifi driver must be loaded first configured to load the combo firmware (nxp/uartspi_n61x_v1.bin.se) for bluetooth operation |
| 283 | * supported by hciuart driver; drivers/bluetooth/hci_* CONFIG_BT_HCIUART* (must start at 115200bd then can switch to 3000000bd using hci vendor command) |
| 284 | {{{#!bash |
| 285 | # start out at 115200 bd |
| 286 | root@noble-venice:~# hciattach /dev/ttymxc2 any 115200 flow |
| 287 | [ 319.957921] Bluetooth: Core ver 2.22 |
| 288 | [ 319.961601] NET: Registered PF_BLUETOOTH protocol family |
| 289 | [ 319.966938] Bluetooth: HCI device and connection manager initialized |
| 290 | [ 319.973321] Bluetooth: HCI socket layer initialized |
| 291 | [ 319.978216] Bluetooth: L2CAP socket layer initialized |
| 292 | [ 319.983296] Bluetooth: SCO socket layer initialized |
| 293 | [ 320.034524] Bluetooth: HCI UART driver ver 2.3 |
| 294 | [ 320.039019] Bluetooth: HCI UART protocol H4 registered |
| 295 | [ 320.044176] Bluetooth: HCI UART protocol BCSP registered |
| 296 | [ 320.049592] Bluetooth: HCI UART protocol LL registered |
| 297 | [ 320.054756] Bluetooth: HCI UART protocol ATH3K registered |
| 298 | [ 320.060276] Bluetooth: HCI UART protocol Three-wire (H5) registered |
| 299 | [ 320.066807] Bluetooth: HCI UART protocol Intel registered |
| 300 | [ 320.072441] Bluetooth: HCI UART protocol Broadcom registered |
| 301 | [ 320.078188] Bluetooth: HCI UART protocol QCA registered |
| 302 | [ 320.083442] Bluetooth: HCI UART protocol AG6XX registered |
| 303 | [ 320.088905] Bluetooth: HCI UART protocol Marvell registered |
| 304 | Device setup complete |
| 305 | [ 320.310779] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 |
| 306 | [ 320.316127] Bluetooth: BNEP filters: protocol multicast |
| 307 | [ 320.321436] Bluetooth: BNEP socket layer initialized |
| 308 | [ 320.332546] Bluetooth: MGMT ver 1.22 |
| 309 | root@noble-venice:~# hciconfig |
| 310 | hci0: Type: Primary Bus: UART |
| 311 | BD Address: 1C:BC:EC:13:D0:25 ACL MTU: 1021:7 SCO MTU: 120:6 |
| 312 | UP RUNNING |
| 313 | RX bytes:860 acl:0 sco:0 events:60 errors:0 |
| 314 | TX bytes:2780 acl:0 sco:0 commands:60 errors:0 |
| 315 | |
| 316 | root@noble-venice:~# hciconfig hci0 up |
| 317 | root@noble-venice:~# hciconfig hci0 |
| 318 | hci0: Type: Primary Bus: UART |
| 319 | BD Address: 1C:BC:EC:13:D0:25 ACL MTU: 1021:7 SCO MTU: 120:6 |
| 320 | UP RUNNING |
| 321 | RX bytes:860 acl:0 sco:0 events:60 errors:0 |
| 322 | TX bytes:2780 acl:0 sco:0 commands:60 errors:0 |
| 323 | |
| 324 | root@noble-venice:~# hcitool -i hci0 scan |
| 325 | Scanning ... |
| 326 | Scanning ... |
| 327 | 0C:C4:13:19:C4:64 Pixel 6 |
| 328 | |
| 329 | # now lets switch to 3mbd |
| 330 | root@noble-venice:~# hcitool -i hci0 cmd 0x3f 0x0009 0xc0 0xc6 0x2d 0x00 |
| 331 | < HCI Command: ogf 0x3f, ocf 0x0009, plen 4 |
| 332 | C0 C6 2D 00 |
| 333 | > HCI Event: 0x0e plen 4 |
| 334 | 01 09 FC 00 |
| 335 | root@noble-venice:~# killall hciattach |
| 336 | [ 392.862476] Bluetooth: hci0: sending frame failed (-49) |
| 337 | [ 392.867770] Bluetooth: hci0: Opcode 0x0c03 failed: -49 |
| 338 | |
| 339 | root@noble-venice:~# hciattach /dev/ttymxc2 any -s 3000000 3000000 flow |
| 340 | Device setup complete |
| 341 | [ 399.083288] Bluetooth: MGMT ver 1.22 |
| 342 | hciconfig hci0 up |
| 343 | root@noble-venice:~# hciconfig hci0 |
| 344 | hci0: Type: Primary Bus: UART |
| 345 | BD Address: 1C:BC:EC:13:D0:25 ACL MTU: 1021:7 SCO MTU: 120:6 |
| 346 | UP RUNNING |
| 347 | RX bytes:825 acl:0 sco:0 events:55 errors:0 |
| 348 | TX bytes:1795 acl:0 sco:0 commands:55 errors:0 |
| 349 | |
| 350 | root@noble-venice:~# hcitool -i hci0 scan |
| 351 | Scanning ... |
| 352 | 0C:C4:13:19:C4:64 Pixel 6 |
| 353 | }}} |
| 354 | * also supported by btnxpuart driver; drivers/bluetooth/btnxpuart.c CONFIG_BT_NXPUART (make sure to not load the driver until mwifiex has loaded the firmware) |
| 355 | {{{#!bash |
| 356 | # modprobe btnxpuart |
| 357 | [ 137.086491] Bluetooth: Core ver 2.22 |
| 358 | [ 137.090174] NET: Registered PF_BLUETOOTH protocol family |
| 359 | [ 137.095519] Bluetooth: HCI device and connection manager initialized |
| 360 | [ 137.101909] Bluetooth: HCI socket layer initialized |
| 361 | [ 137.106805] Bluetooth: L2CAP socket layer initialized |
| 362 | [ 137.111891] Bluetooth: SCO socket layer initialized |
| 363 | [ 137.337842] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 |
| 364 | [ 137.343186] Bluetooth: BNEP filters: protocol multicast |
| 365 | [ 137.348445] Bluetooth: BNEP socket layer initialized |
| 366 | [ 137.348448] Bluetooth: MGMT ver 1.22^^^ works |
| 367 | # hciconfig hci0 up && hcitool -i hci0 scan |
| 368 | }}} |
| 369 | - note the btnxpuart driver will load the nxp/uartspi_n61x_v1.bin.se, firmware via hci if mwifiex has not been loaded and wifi is not being used |
| 370 | - btnxpuart initial baudrate must be 115200bd until firmware is loaded at which point it will automatically switch to 3000000bd |
| 371 | - btnxpuart requires a device-tree node (see below) |
| 372 | |
| 373 | device-tree for GW8201-A+GW7020+GW16FE0-A revision: |
| 374 | {{{#!bash |
| 375 | /* FSA1 */ |
| 376 | &uart3 { |
| 377 | pinctrl-names = "default"; |
| 378 | pinctrl-0 = <&pinctrl_uart3>; |
| 379 | /* reparent clock for up to 4mbd support */ |
| 380 | assigned-clocks = <&clk IMX8MP_CLK_UART3>; |
| 381 | assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>; |
| 382 | cts-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; |
| 383 | rts-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; |
| 384 | status = "okay"; |
| 385 | |
| 386 | /* if using btnxpuart this is needed; if hci_uart do not define this */ |
| 387 | bluetooth { |
| 388 | compatible = "nxp,88w8987-bt"; |
| 389 | fw-init-baudrate = <115200>; /* Note this is the default if the prop is omitted */ |
| 390 | }; |
| 391 | }; |
| 392 | |
| 393 | &iomuxc { |
| 394 | pinctrl_uart3: uart3grp { |
| 395 | fsl,pins = < |
| 396 | MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x140 |
| 397 | MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x140 |
| 398 | MX8MP_IOMUXC_ECSPI1_MISO__GPIO5_IO08 0x140 /* cts */ |
| 399 | MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x140 /* rts */ |
| 400 | >; |
| 401 | }; |
| 402 | }; |
| 403 | }}} |
| 404 | |
| 405 | |
| 406 | === Card: ublox MAYA-W2 M.2 E-Key SDIO/UART/PCM/SPI tri-radio WiFi6 / BT5.4 / 802.15.4 combo |
| 407 | The ublox MAYA M.2 E-Key tri-radio combo card is based on the NXP IW612 chip using SDIO for !WiFi, UART/PCM for Bluetooth, and SPI for 802.15.4 Thread. |
| 408 | |
| 409 | See also: |
| 410 | * MAYA-W2_SIM_UBX-22011459.pdf |
| 411 | |
| 412 | Pin details: |
| 413 | * W_DISABLE1# FSA_GPIO1 PDn (assert high to power card) |
| 414 | * W_DISABLE2# FSA_GPIO2 BT_RESET (assert high to take BT out of reset) |
| 415 | * LED1/LED2 unused |
| 416 | |
| 417 | !WiFi details: |
| 418 | * WiFi6 802.11ax dual-band |
| 419 | * SDIO 0x471:0x0204 |
| 420 | {{{#!bash |
| 421 | # dmesg | grep mmc0 |
| 422 | [ 1.007660] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA |
| 423 | [ 1.034751] mmc_sdio_init_card mmc0 quirks=0x0 ocr_card=0x300000 (1.8v=1) |
| 424 | [ 1.044515] mmc_sdio_init_card mmc0 setting voltage to 1.8V |
| 425 | [ 1.193261] mmc0: new ultra high speed SDR104 SDIO card at address 0001 |
| 426 | # cat /sys/bus/mmc/devices/mmc0:0001/{vendor,device} |
| 427 | 0x0471 |
| 428 | 0x0204 |
| 429 | # cat /sys/kernel/debug/mmc0/ios |
| 430 | clock: 208000000 Hz |
| 431 | vdd: 21 (3.3 ~ 3.4 V)[ 55.900039] mlan: module verification failed: signature and/or required key missing - tai |
| 432 | nting kernel |
| 433 | |
| 434 | bus mode: 2 (push-pull) |
| 435 | chip select: 0 (don't care) |
| 436 | power mode: 2 (on) |
| 437 | bus width: 2 (4 bits) |
| 438 | timing spec: 6 (sd uhs SDR104) |
| 439 | signal voltage: 1 (1.80 V) |
| 440 | driver type: 0 (driver type B) |
| 441 | }}} |
| 442 | * supported by the mwifiex driver (as of Linux 6.6 at least you need the out-of-tree mwifiex driver) |
| 443 | {{{#!bash |
| 444 | # get firmware (out-of-tree mwifiex requires a conf file) |
| 445 | git clone https://github.com/nxp-imx/imx-firmware.git |
| 446 | cp imx-firmware/nxp/wifi_mod_para.conf imx-firmware/nxp/FwImage_IW612_SD/* /lib/firmware/nxp/ |
| 447 | # build driver |
| 448 | git clone https://github.com/nxp-imx/mwifiex.git -b lf-6.6.3_1.0.0 |
| 449 | make -C /lib/modules/$(uname -r)/build M=$PWD/mwifiex/mxm_wifiex/wlan_src |
| 450 | # load driver |
| 451 | insmod mwifiex/mxm_wifiex/wlan_src/mlan.ko |
| 452 | insmod mwifiex/mxm_wifiex/wlan_src/moal.ko mod_para=nxp/wifi_mod_para.conf |
| 453 | [ 146.092851] wlan: Loading MWLAN driver |
| 454 | [ 146.096939] wlan: Register to Bus Driver... |
| 455 | [ 146.101327] vendor=0x0471 device=0x0205 class=0 function=1 |
| 456 | [ 146.107030] Attach moal handle ops, card interface type: 0x109 |
| 457 | [ 146.112890] rps set to 0 from module param |
| 458 | [ 146.117032] wlan_sdio mmc0:0001:1: _request_firmware nxp/wifi_mod_para.conf |
| 459 | [ 146.124214] wlan_sdio mmc0:0001:1: Loaded FW: nxp/wifi_mod_para.conf, sha256: f846d679de6e3c32db51cb28df05fac588018d34073e19a255ab45901c9 |
| 460 | 4f6e7 |
| 461 | [ 146.137040] SDIW612: init module param from usr cfg |
| 462 | [ 146.141937] card_type: SDIW612, config block: 0 |
| 463 | [ 146.146486] cfg80211_wext=0xf |
| 464 | [ 146.149462] max_vir_bss=1 |
| 465 | [ 146.152100] cal_data_cfg=none |
| 466 | [ 146.155097] ps_mode = 1 |
| 467 | [ 146.157552] auto_ds = 1 |
| 468 | [ 146.160025] host_mlme=enable |
| 469 | [ 146.162928] fw_name=nxp/sduart_nw61x_v1.bin.se |
| 470 | [ 146.167415] SDIO: max_segs=128 max_seg_size=65535 |
| 471 | [ 146.172144] rx_work=1 cpu_num=4 |
| 472 | [ 146.175307] Enable moal_recv_amsdu_packet |
| 473 | [ 146.179358] Attach mlan adapter operations.card_type is 0x109. |
| 474 | [ 146.185634] wlan: Enable TX SG mode |
| 475 | [ 146.189150] wlan: Enable RX SG mode |
| 476 | [ 146.194044] Request firmware: nxp/sduart_nw61x_v1.bin.se |
| 477 | [ 146.199379] wlan_sdio mmc0:0001:1: _request_firmware nxp/sduart_nw61x_v1.bin.se |
| 478 | [ 146.218147] wlan_sdio mmc0:0001:1: Loaded FW: nxp/sduart_nw61x_v1.bin.se, sha256: 3a863f0a2f457ecb1fb838c66fff074fa967545b78397a1ef14b228 |
| 479 | 9e85c24fd |
| 480 | [ 146.522473] Wlan: FW download over, firmwarelen=1004248 downloaded 916048 |
| 481 | [ 146.926002] WLAN FW is active |
| 482 | [ 146.928984] on_time is 146755067377 |
| 483 | [ 146.953100] VDLL image: len=88200 |
| 484 | [ 146.956808] fw_cap_info=0x487cff03, dev_cap_mask=0xffffffff |
| 485 | [ 146.962416] uuid: a559bd0eabc155d9a2ebd1624c432f5c |
| 486 | [ 146.967245] max_p2p_conn = 8, max_sta_conn = 16 |
| 487 | [ 146.993650] Register NXP 802.11 Adapter mlan0 |
| 488 | [ 146.998191] wlan: uap%d set max_mtu 2000 |
| 489 | [ 147.004930] Register NXP 802.11 Adapter uap0 |
| 490 | [ 147.017128] Register NXP 802.11 Adapter wfd0 |
| 491 | [ 147.024401] wlan: version = SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92) |
| 492 | [ 147.037465] wlan: Register to Bus Driver Done |
| 493 | [ 147.041938] wlan: Driver loaded successfully |
| 494 | }}} |
| 495 | * see MAYA-W2_SIM_UBX-22011459.pdf for details |
| 496 | * uartspi_n61x_v1.bin.se is the wifi standalone firmware for download via wifi driver |
| 497 | * sduart_nw61x_v1.bin.se is the combo firmware for wifi/bt downloaded via wifi driver |
| 498 | |
| 499 | Bluetooth details: |
| 500 | * Bluetooth 5.4 BLE/LE |
| 501 | * the mwifiex wifi driver must be loaded first configured to load the combo firmware (nxp/uartspi_n61x_v1.bin.se) for bluetooth operation (so you probably want to blacklist this from loading automatically) |
| 502 | * supported by btnxpuart driver; drivers/bluetooth/btnxpuart.c CONFIG_BT_NXPUART: |
| 503 | {{{#!bash |
| 504 | # modprobe btnxpuart |
| 505 | [ 147.136762] Bluetooth: Core ver 2.22 |
| 506 | [ 147.140455] NET: Registered PF_BLUETOOTH protocol family |
| 507 | [ 147.145863] Bluetooth: HCI device and connection manager initialized |
| 508 | [ 147.152449] Bluetooth: HCI socket layer initialized |
| 509 | [ 147.157415] Bluetooth: L2CAP socket layer initialized |
| 510 | [ 147.162537] Bluetooth: SCO socket layer initialized |
| 511 | [ 147.348601] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 |
| 512 | [ 147.353949] Bluetooth: BNEP filters: protocol multicast |
| 513 | [ 147.359207] Bluetooth: BNEP socket layer initialized |
| 514 | [ 148.324754] Bluetooth: MGMT ver 1.22 |
| 515 | # hciconfig hci0 up && hcitool -i hci0 scan |
| 516 | hci0: Type: Primary Bus: UART |
| 517 | BD Address: 6C:1D:EB:9B:D6:0C ACL MTU: 1021:7 SCO MTU: 120:6 |
| 518 | UP RUNNING |
| 519 | RX bytes:860 acl:0 sco:0 events:60 errors:0 |
| 520 | TX bytes:2295 acl:0 sco:0 commands:60 errors:0 |
| 521 | |
| 522 | Scanning ... |
| 523 | 28:39:5E:5B:0B:BF n/a |
| 524 | }}} |
| 525 | |
| 526 | Thread details: |
| 527 | * spidev using Open Thread Border Router which is part of the NXP Matter implementation |
| 528 | * the M.2 card has an on-board I/O expander with an output that enables the SPI transmit buffer; you must drive this high for SPI to respond (likely defaulted low for compatibility as these are vendor-defined pins): |
| 529 | * openthread: |
| 530 | {{{#!bash |
| 531 | # install build tools |
| 532 | apt update |
| 533 | apt install -y build-essential git |
| 534 | # clone repo |
| 535 | git clone https://github.com/openthread/openthread |
| 536 | cd openthread |
| 537 | # build the spi-hdlc-adapter tool |
| 538 | gcc tools/spi-hdlc-adapter/spi-hdlc-adapter.c -o spi-hdlc-adapter |
| 539 | ./spi-hdlc-adapter -v /dev/spidev1.2 |
| 540 | # FSA1_GPIO2 (GPIO4_24) is W_DISABLE2# used as BT_18_4_RST |
| 541 | # FSA1_ALERT (GPIO4_4) is SPI_INT |
| 542 | echo 120 > /sys/class/gpio/export |
| 543 | echo 100 > /sys/class/gpio/export |
| 544 | ./spi-hdlc-adapter --gpio-res=/sys/class/gpio/gpio120 --gpio-int=/sys/class/gpio/gpio100 --spi-align-allowance=16 -v /dev/spidev1.2 |
| 545 | Cntl-C |
| 546 | echo 120 > /sys/class/gpio/unexport |
| 547 | echo 100 > /sys/class/gpio/unexport |
| 548 | # build oc-cli |
| 549 | apt-get --no-install-recommends install -y g++ lsb-release cmake ninja-build shellcheck |
| 550 | # build POSIX CLI |
| 551 | ./script/cmake-build posix -DOT_POSIX_RCP_SPI_BUS=ON |
| 552 | # FSA1_GPIO2 (GPIO4_24) is W_DISABLE2# used as BT_18_4_RST |
| 553 | # FSA1_ALERT (GPIO4_4) is SPI_INT |
| 554 | ./build/posix/src/posix/ot-cli -v -d3 'spinel+spi:///dev/spidev1.2?gpio-reset-device=/dev/gpiochip3&gpio-reset-line=24&gpio-int-device=/dev/gpiochip3&gpio-int-line=4&spi-mode=0&spi-speed=1000000&spi-reset-delay=0&spi-align-allowance=16' |
| 555 | }}} |
| 556 | |
| 557 | device-tree for GW8201-A+GW7020+GW16FE0-A revision in FSA1 socket: |
| 558 | {{{#!bash |
| 559 | /* Bluetooth */ |
| 560 | &uart3 { |
| 561 | pinctrl-names = "default"; |
| 562 | pinctrl-0 = <&pinctrl_uart3>; |
| 563 | /* reparent clock for up to 4mbd support */ |
| 564 | assigned-clocks = <&clk IMX8MP_CLK_UART3>; |
| 565 | assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>; |
| 566 | cts-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; |
| 567 | rts-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; |
| 568 | status = "okay"; |
| 569 | bluetooth { |
| 570 | compatible = "nxp,88w8987-bt"; |
| 571 | fw-init-baudrate = <3000000>; |
| 572 | }; |
| 573 | }; |
| 574 | |
| 575 | /* Thread */ |
| 576 | &ecspi2 { |
| 577 | /* ublox MAYA in FSA1 (CS2) */ |
| 578 | spidev@2 { |
| 579 | reg = <2>; |
| 580 | compatible = "lwn,bk4"; |
| 581 | spi-max-frequency = <1000000>; |
| 582 | }; |
| 583 | } |
| 584 | |
| 585 | /* I2C port expander */ |
| 586 | &fsa1_i2c { |
| 587 | gpio@21 { |
| 588 | compatible = "nxp,pcal9554b"; |
| 589 | reg = <0x21>; |
| 590 | gpio-controller; |
| 591 | #gpio-cells = <2>; |
| 592 | gpio-line-names = |
| 593 | "spien", "thread_rst#", "wake_wlan", "wake_btthread", |
| 594 | "btthread_reset_in", "", "", "", ""; |
| 595 | |
| 596 | spien_hog { |
| 597 | gpio-hog; |
| 598 | output-high; |
| 599 | gpios = <0 GPIO_ACTIVE_HIGH>; |
| 600 | line-name = "spien"; |
| 601 | }; |
| 602 | |
| 603 | threadrst_hog { |
| 604 | gpio-hog; |
| 605 | output-high; |
| 606 | gpios = <1 GPIO_ACTIVE_HIGH>; |
| 607 | line-name = "thread_rst#"; |
| 608 | }; |
| 609 | |
| 610 | wlanwake_hog { |
| 611 | gpio-hog; |
| 612 | output-low; |
| 613 | gpios = <2 GPIO_ACTIVE_HIGH>; |
| 614 | line-name = "wlan_wake#"; |
| 615 | }; |
| 616 | |
| 617 | threadwake_hog { |
| 618 | gpio-hog; |
| 619 | output-low; |
| 620 | gpios = <3 GPIO_ACTIVE_HIGH>; |
| 621 | line-name = "thread_wake#"; |
| 622 | }; |
| 623 | |
| 624 | threadrstin_hog { |
| 625 | gpio-hog; |
| 626 | input; |
| 627 | gpios = <4 GPIO_ACTIVE_HIGH>; |
| 628 | line-name = "threadrstin"; |
| 629 | }; |
| 630 | }; |
| 631 | }; |
| 632 | |
| 633 | &iomuxc { |
| 634 | pinctrl_uart3: uart3grp { |
| 635 | fsl,pins = < |
| 636 | MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x140 |
| 637 | MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x140 |
| 638 | MX8MP_IOMUXC_ECSPI1_MISO__GPIO5_IO08 0x140 /* cts */ |
| 639 | MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x140 /* rts */ |
| 640 | >; |
| 641 | }; |
| 642 | }; |
| 643 | }}} |
| 644 | * note the default baudrate is 3000000 baud after the firmware is loaded (by the mwifiex driver) |
| 645 | * note the on-board port expander P0 needs to be driven high to enable the on-board SPI buffer |
| 646 | |
| 647 | |
| 648 | === Card: ublox JODY M.2 E-Key PCIe/UART/PCM dual-radio WiFi6 / BT 5.3 combo |
| 649 | The ublox JODY-W3 M.2 E-Key dual-radio combo card is based on the NXP 88W9098 chip using PCIe/SDIO for !WiFi, and UART/PCM for Bluetooth. |
| 650 | |
| 651 | See also: |
| 652 | * [https://content.u-blox.com/sites/default/files/documents/M2-JODY-W3_DataSheet_UBX-21000485.pdf M2-JODY-W3_DataSheet_UBX-21000485.pdf] |
| 653 | * [https://content.u-blox.com/sites/default/files/documents/JODY-W3_DataSheet_UBX-19010615.pdf JODY-W3 Series DataSheet_UBX-19010615.pdf] |
| 654 | * [https://content.u-blox.com/sites/default/files/JODY-W2_JODY-W3-Linux_Bluetooth-Audio_AppNote_UBX-20029333.pdf JODY-W2_JODY-W3-Linux_Bluetooth-Audio_AppNote_UBX-20029333.pdf] |
| 655 | |
| 656 | By default the M2-JODY-W3 card is configured to use PCIe for !WiFi but a resistor strapping option on the card exists to use SDIO for !WiFi (see [https://content.u-blox.com/sites/default/files/documents/M2-JODY-W3_DataSheet_UBX-21000485.pdf M2-JODY-W3 datasheet]). Additionally a resistor strapping option can change VIO from the default 1.8V to 3.3V for the W_DISABLE1#, W_DISABLE2# and UART_WAKE# signals. |
| 657 | |
| 658 | Pin details: |
| 659 | * W_DISABLE1# FSA_GPIO1 PDn (assert high to power card) |
| 660 | * W_DISABLE2# FSA_GPIO2 BT_RESET (assert high to take BT out of reset) |
| 661 | * LED1/LED2 unused |
| 662 | |
| 663 | !WiFi details: |
| 664 | * WiFi6 802.11ax dual-band |
| 665 | * PCIe 0x1b4b:0x2b43 (function 1) and 0x1b4b:0x2b44 (function 2) |
| 666 | * supported by the mwifiex driver (as of Linux 6.6 at least you need the out-of-tree mwifiex driver) |
| 667 | {{{#!bash |
| 668 | # get firmware (out-of-tree mwifiex requires a conf file) |
| 669 | git clone https://github.com/nxp-imx/imx-firmware.git |
| 670 | cp imx-firmware/nxp/wifi_mod_para.conf imx-firmware/nxp/FwImage_9098_PCIE/* /lib/firmware/nxp/ |
| 671 | # build driver |
| 672 | git clone https://github.com/nxp-imx/mwifiex.git -b lf-6.6.3_1.0.0 |
| 673 | make -C /lib/modules/$(uname -r)/build M=$PWD/mwifiex/mxm_wifiex/wlan_src |
| 674 | # load driver |
| 675 | insmod mwifiex/mxm_wifiex/wlan_src/mlan.ko |
| 676 | insmod mwifiex/mxm_wifiex/wlan_src/moal.ko mod_para=nxp/wifi_mod_para.conf |
| 677 | [ 88.049771] wlan: Loading MWLAN driver |
| 678 | [ 88.053927] wlan: Register to Bus Driver... |
| 679 | [ 88.058461] PCI memory map Virt0: 00000000a73ddc41 PCI memory map Virt2: 00000000e0878cd5 |
| 680 | [ 88.066707] Attach moal handle ops, card interface type: 0x206 |
| 681 | [ 88.072575] rps set to 0 from module param |
| 682 | [ 88.078267] PCIE9098: init module param from usr cfg |
| 683 | [ 88.083316] card_type: PCIE9098, config block: 0 |
| 684 | [ 88.087975] cfg80211_wext=0xf |
| 685 | [ 88.090980] max_vir_bss=1 |
| 686 | [ 88.093614] cal_data_cfg=none |
| 687 | [ 88.096610] ps_mode = 1 |
| 688 | [ 88.099084] auto_ds = 1 |
| 689 | [ 88.101543] host_mlme=enable |
| 690 | [ 88.104450] fw_name=nxp/pcieuart9098_combo_v1.bin |
| 691 | [ 88.109204] rx_work=1 cpu_num=4 |
| 692 | [ 88.115019] Request firmware: nxp/pcieuart9098_combo_v1.bin |
| 693 | [ 88.674795] WLAN FW is active |
| 694 | [ 88.677775] on_time is 88463011256 |
| 695 | [ 88.713355] Register NXP 802.11 Adapter mlan0 |
| 696 | [ 88.718062] wlan: uap%d set max_mtu 2000 |
| 697 | [ 88.726907] Register NXP 802.11 Adapter uap0 |
| 698 | [ 88.750747] Register NXP 802.11 Adapter wfd0 |
| 699 | [ 88.756708] wlan: version = PCIE9098--17.92.1.p149.131-MM6X17437.p3-GPL-(FP92) |
| 700 | [ 88.765023] PCI memory map Virt0: 00000000ea6851b2 PCI memory map Virt2: 00000000e8001719 |
| 701 | [ 88.775806] Attach moal handle ops, card interface type: 0x206 |
| 702 | [ 88.781820] rps set to 0 from module param |
| 703 | [ 88.791183] PCIE9098: init module param from usr cfg |
| 704 | [ 88.796258] card_type: PCIE9098, config block: 1 |
| 705 | [ 88.800994] cfg80211_wext=0xf |
| 706 | [ 88.804003] max_vir_bss=1 |
| 707 | [ 88.808088] cal_data_cfg=none |
| 708 | [ 88.811100] ps_mode = 1 |
| 709 | [ 88.813553] auto_ds = 1 |
| 710 | [ 88.816070] host_mlme=enable |
| 711 | [ 88.822850] fw_name=nxp/pcieuart9098_combo_v1.bin |
| 712 | [ 88.830099] rx_work=1 cpu_num=4 |
| 713 | [ 88.848531] Request firmware: nxp/pcieuart9098_combo_v1.bin |
| 714 | [ 88.856748] WLAN FW is active |
| 715 | [ 88.859755] on_time is 88644991126 |
| 716 | [ 88.884288] Register NXP 802.11 Adapter mmlan0 |
| 717 | [ 88.889110] wlan: muap%d set max_mtu 2000 |
| 718 | [ 88.894440] Register NXP 802.11 Adapter muap0 |
| 719 | [ 88.916583] Register NXP 802.11 Adapter mwfd0 |
| 720 | [ 88.921118] wlan: version = PCIE9098--17.92.1.p149.131-MM6X17437.p3-GPL-(FP92) |
| 721 | [ 88.929262] wlan: Register to Bus Driver Done |
| 722 | [ 88.933703] wlan: Driver loaded successfully |
| 723 | root@noble-venice:~# ls /sys/class/net |
| 724 | can0 can1 eth0 eth1 lo mlan0 mmlan0 muap0 mwfd0 uap0 wfd0 |
| 725 | }}} |
| 726 | |
| 727 | Bluetooth details: |
| 728 | * Bluetooth 5.3 BR/EDR/LE |
| 729 | * the mwifiex wifi driver must be loaded first configured to load the combo firmware (nxp/pcieuart9098_combo_v1.bin,) for bluetooth operation (so you probably want to blacklist this from loading automatically) |
| 730 | * supported by btnxpuart driver; drivers/bluetooth/btnxpuart.c CONFIG_BT_NXPUART: |
| 731 | {{{#!bash |
| 732 | # modprobe btnxpuart |
| 733 | [ 147.136762] Bluetooth: Core ver 2.22 |
| 734 | [ 147.140455] NET: Registered PF_BLUETOOTH protocol family |
| 735 | [ 147.145863] Bluetooth: HCI device and connection manager initialized |
| 736 | [ 147.152449] Bluetooth: HCI socket layer initialized |
| 737 | [ 147.157415] Bluetooth: L2CAP socket layer initialized |
| 738 | [ 147.162537] Bluetooth: SCO socket layer initialized |
| 739 | [ 147.348601] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 |
| 740 | [ 147.353949] Bluetooth: BNEP filters: protocol multicast |
| 741 | [ 147.359207] Bluetooth: BNEP socket layer initialized |
| 742 | [ 148.324754] Bluetooth: MGMT ver 1.22 |
| 743 | # hciconfig hci0 up && hcitool -i hci0 scan |
| 744 | hci0: Type: Primary Bus: UART |
| 745 | BD Address: 6C:1D:EB:9B:D6:0C ACL MTU: 1021:7 SCO MTU: 120:6 |
| 746 | UP RUNNING |
| 747 | RX bytes:860 acl:0 sco:0 events:60 errors:0 |
| 748 | TX bytes:2295 acl:0 sco:0 commands:60 errors:0 |
| 749 | |
| 750 | Scanning ... |
| 751 | 28:39:5E:5B:0B:BF n/a |
| 752 | }}} |
| 753 | |
| 754 | device-tree for GW8201-A+GW7020+GW16FE0-A revision in FSA1 socket: |
| 755 | {{{#!bash |
| 756 | /* Bluetooth */ |
| 757 | &uart3 { |
| 758 | pinctrl-names = "default"; |
| 759 | pinctrl-0 = <&pinctrl_uart3>; |
| 760 | /* reparent clock for up to 4mbd support */ |
| 761 | assigned-clocks = <&clk IMX8MP_CLK_UART3>; |
| 762 | assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>; |
| 763 | cts-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; |
| 764 | rts-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; |
| 765 | status = "okay"; |
| 766 | bluetooth { |
| 767 | compatible = "nxp,88w8987-bt"; |
| 768 | fw-init-baudrate = <3000000>; |
| 769 | }; |
| 770 | }; |
| 771 | |
| 772 | &iomuxc { |
| 773 | pinctrl_uart3: uart3grp { |
| 774 | fsl,pins = < |
| 775 | MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x140 |
| 776 | MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x140 |
| 777 | MX8MP_IOMUXC_ECSPI1_MISO__GPIO5_IO08 0x140 /* cts */ |
| 778 | MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x140 /* rts */ |
| 779 | >; |
| 780 | }; |
| 781 | }; |
| 782 | }}} |
| 783 | * note the default baudrate is 3000000 baud after the firmware is loaded (by the mwifiex driver) |
| 784 | * note the on-board port expander P0 needs to be driven high to enable the on-board SPI buffer |
| 785 | |
| 786 | |
| 787 | === Card: !AzureWave AW-CM276MA M.2 E-Key PCIE-UART WiFi5 / BT 5.3 combo |
| 788 | The AzureWave AW-CM276MA Wifi5+BT5.3 M.2 E-Key combo radio based on the NXP 88W8997 chipset uses PCIe and UART for BT: |
| 789 | - https://www.azurewave.com/img/nxp/AW-CM276MA-SUR_DS_B4_C_STD.pdf |
| 790 | |
| 791 | !WiFi details: |
| 792 | * WiFi5 802.11ac |
| 793 | * PCIe: 0x1b4b:0x2b42 |
| 794 | * supported by in-kernel 6.6 mwifiex driver (loads mrvl/pcieuart8997_combo_v4.bin combo firmware reuqired for pcie/bluetooth) |
| 795 | * supported by out-of-tree mwifiex driver as well with firmware nxp/pcieuart8997_combo_v4.bin from imx-firmware |
| 796 | {{{#!bash |
| 797 | [ 32.919130] wlan: Loading MWLAN driver |
| 798 | [ 32.923299] wlan: Register to Bus Driver... |
| 799 | [ 32.927735] wlan_pcie 0000:03:00.0: enabling device (0000 -> 0002)[ 32.934062] PCI memory map Virt0: 0000000078035496 PCI memory map Virt2: 00000000dc1c2bc9 |
| 800 | [ 32.942283] Attach moal handle ops, card interface type: 0x204 |
| 801 | [ 32.948144] rps set to 0 from module param |
| 802 | [ 32.952266] wlan_pcie 0000:03:00.0: _request_firmware nxp/wifi_mod_awcm276ma.conf |
| 803 | [ 32.963086] wlan_pcie 0000:03:00.0: Loaded FW: nxp/wifi_mod_awcm276ma.conf, sha256: b6e2dbc1bdfdc60ceda5674c7a95425ce9056328af3ab9ec6b1f0 |
| 804 | c02d916a71d |
| 805 | [ 32.976426] PCIE8997: init module param from usr cfg |
| 806 | [ 32.981414] card_type: PCIE8997, config block: 0 |
| 807 | [ 32.986057] cfg80211_wext=0xf |
| 808 | [ 32.989046] max_vir_bss=1 |
| 809 | [ 32.991696] cal_data_cfg=none |
| 810 | [ 32.994691] ps_mode = 1 |
| 811 | [ 32.997144] auto_ds = 1 |
| 812 | [ 32.999613] host_mlme=enable |
| 813 | [ 33.002515] fw_name=nxp/pcieuart8997_combo_v4.bin |
| 814 | [ 33.007263] rx_work=1 cpu_num=4 |
| 815 | [ 33.010430] Enable moal_recv_amsdu_packet |
| 816 | [ 33.014487] Attach mlan adapter operations.card_type is 0x204. |
| 817 | [ 33.022569] Request firmware: nxp/pcieuart8997_combo_v4.bin |
| 818 | [ 33.028166] wlan_pcie 0000:03:00.0: _request_firmware nxp/pcieuart8997_combo_v4.bin |
| 819 | [ 33.043994] wlan_pcie 0000:03:00.0: Loaded FW: nxp/pcieuart8997_combo_v4.bin, sha256: 5d08062fe8dd7d2b7f3e26646cfb42288f0de111fc70c86a03f |
| 820 | bafbc37050b9f |
| 821 | [ 33.661253] FW download over, size 621276 bytes |
| 822 | [ 34.382556] WLAN FW is active |
| 823 | [ 34.385539] on_time is 34479014993 |
| 824 | [ 34.431874] VDLL image: len=8652 |
| 825 | [ 34.435158] FW country code WW does not match with US |
| 826 | [ 34.440399] fw_cap_info=0x587c6fa3, dev_cap_mask=0xffffffff |
| 827 | [ 34.446025] max_p2p_conn = 8, max_sta_conn = 8 |
| 828 | [ 34.474292] Register NXP 802.11 Adapter mlan0 |
| 829 | [ 34.478819] wlan: uap%d set max_mtu 2000 |
| 830 | [ 34.484964] Register NXP 802.11 Adapter uap0 |
| 831 | [ 34.496213] Register NXP 802.11 Adapter wfd0 |
| 832 | [ 34.500799] wlan: version = PCIE8997--16.92.21.p119.2-MM6X16437.p3-GPL-(FP92) |
| 833 | [ 34.508656] wlan: Register to Bus Driver Done |
| 834 | [ 34.513081] wlan: Driver loaded successfully |
| 835 | }}} |
| 836 | |
| 837 | Bluetooth details: |
| 838 | * Bluetooth 5.3 |
| 839 | * the mwifiex wifi driver must be loaded first configured to load the combo firmware for bluetooth operation (so you probably want to blacklist this from loading automatically) |
| 840 | * supported by btnxpuart driver; drivers/bluetooth/btnxpuart.c CONFIG_BT_NXPUART |
| 841 | |
| 842 | device-tree for GW8201-A+GW7020+GW16FE0-A revision in FSA1 socket: |
| 843 | {{{#!bash |
| 844 | /* Bluetooth */ |
| 845 | &uart3 { |
| 846 | pinctrl-names = "default"; |
| 847 | pinctrl-0 = <&pinctrl_uart3>; |
| 848 | /* reparent clock for up to 4mbd support */ |
| 849 | assigned-clocks = <&clk IMX8MP_CLK_UART3>; |
| 850 | assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>; |
| 851 | cts-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; |
| 852 | rts-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; |
| 853 | status = "okay"; |
| 854 | bluetooth { |
| 855 | compatible = "nxp,88w8987-bt"; |
| 856 | }; |
| 857 | }; |
| 858 | |
| 859 | &iomuxc { |
| 860 | pinctrl_uart3: uart3grp { |
| 861 | fsl,pins = < |
| 862 | MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x140 |
| 863 | MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x140 |
| 864 | MX8MP_IOMUXC_ECSPI1_MISO__GPIO5_IO08 0x140 /* cts */ |
| 865 | MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09 0x140 /* rts */ |
| 866 | >; |
| 867 | }; |
| 868 | }; |
| 869 | }}} |
| 870 | * no fw-init-baudrate = <300000> (not sure why I had to drop this low) |
| 871 | |
| 872 | |
| 873 | === Card: Silex SX-PCEAX PCI/USB WiFi6E / BT 5.2 combo card |
| 874 | The Silex SX-PCEAX combo card uses the QCA2066 chipset with PCI for wifi and USB for bluetooth: |
| 875 | * https://www.qualcomm.com/products/technology/wi-fi/qca206x |
| 876 | * Silex recommends using Qualcomm's LEA driver with their patches (requires license agreement with Silex) |
| 877 | |
| 878 | Pin Details: |
| 879 | * M2.54 W_DISABLE2# input; BT_EN active high to enable USB/bluetooth |
| 880 | * M2.56 W_DISABLE1# N/C (datasheet rev AX Sept 2022 shows this as not used) |
| 881 | * M2.6 LED1# N/C (datasheet rev AX Sept 2022 shows this as not used) |
| 882 | * M2.16 LED2# N/C (datasheet rev AX Sept 2022 shows this as not used) |
| 883 | |
| 884 | !WiFi details: |
| 885 | * Wifi6E 802.11ax |
| 886 | * PCIe 3.0 0x17cb:0x1103 |
| 887 | * supported by the ath11k driver but needs a board-2.bin and regdb from Silex: |
| 888 | {{{#!bash |
| 889 | # firmware |
| 890 | unzip ath11k_board-data_regdb_GF_SEC.zip (documentation says it was tested with 5.17.0) |
| 891 | cp ath11k_board-data_regdb_GF_SEC/board-2_US_EU_JP.bin /lib/firmware/ath11k/WCN6855/hw2.1/board-2.bin |
| 892 | cp ath11k_board-data_regdb_GF_SEC/regdb.bin /lib/firmware/ath11k/WCN6855/hw2.1/regdb.bin |
| 893 | rm /lib/firmware/ath11k/WCN6855/hw2.1/regdb.bin.zst |
| 894 | # reboot |
| 895 | [ 8.346705] ath11k_pci 0000:03:00.0: BAR 0: assigned [mem 0x18200000-0x183fffff 64bit] |
| 896 | [ 8.346761] ath11k_pci 0000:03:00.0: enabling device (0000 -> 0002) |
| 897 | [ 8.352980] ath11k_pci 0000:03:00.0: MSI vectors: 1 |
| 898 | [ 8.353012] ath11k_pci 0000:03:00.0: wcn6855 hw2.1 |
| 899 | [ 8.605970] mhi mhi0: _request_firmware ath11k/WCN6855/hw2.1/amss.bin |
| 900 | [ 8.703674] mhi mhi0: Loaded FW: ath11k/WCN6855/hw2.1/amss.bin, sha256: 8f10357b53b40238333f0b055b4829fc8dd87994aa2476ae3fa |
| 901 | 92234d8f31065 |
| 902 | [ 9.423579] ath11k_pci 0000:03:00.0: chip_id 0x12 chip_family 0xb board_id 0xff soc_id 0x400c1211 |
| 903 | [ 9.423603] ath11k_pci 0000:03:00.0: fw_version 0x1106196e fw_build_timestamp 2024-01-12 11:30 fw_build_id WLAN.HSP.1.1-031 |
| 904 | 25-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37 |
| 905 | [ 9.423620] ath11k_pci 0000:03:00.0: _request_firmware ath11k/WCN6855/hw2.1/board-2.bin |
| 906 | [ 9.438310] ath11k_pci 0000:03:00.0: Loaded FW: ath11k/WCN6855/hw2.1/board-2.bin, sha256: 365c275d820bc493f6788e6859a813dd2 |
| 907 | 3c92c730241139779d55b9b2f25cce3 |
| 908 | [ 9.438452] ath11k_pci 0000:03:00.0: _request_firmware ath11k/WCN6855/hw2.1/board-2.bin |
| 909 | [ 9.442371] ath11k_pci 0000:03:00.0: Loaded FW: ath11k/WCN6855/hw2.1/board-2.bin, sha256: 365c275d820bc493f6788e6859a813dd2 |
| 910 | 3c92c730241139779d55b9b2f25cce3 |
| 911 | [ 9.442532] ath11k_pci 0000:03:00.0: _request_firmware ath11k/WCN6855/hw2.1/regdb.bin |
| 912 | [ 9.445073] ath11k_pci 0000:03:00.0: Loaded FW: ath11k/WCN6855/hw2.1/regdb.bin, sha256: 0c8ae0f1224c240ba41df6407492d6f7b61 |
| 913 | 2d761c01391e969fbdec4c443d889 |
| 914 | [ 9.453593] ath11k_pci 0000:03:00.0: _request_firmware ath11k/WCN6855/hw2.1/board-2.bin |
| 915 | [ 9.457116] ath11k_pci 0000:03:00.0: Loaded FW: ath11k/WCN6855/hw2.1/board-2.bin, sha256: 365c275d820bc493f6788e6859a813dd2 |
| 916 | 3c92c730241139779d55b9b2f25cce3 |
| 917 | [ 9.483549] ath11k_pci 0000:03:00.0: _request_firmware ath11k/WCN6855/hw2.1/m3.bin |
| 918 | [ 9.488994] ath11k_pci 0000:03:00.0: Loaded FW: ath11k/WCN6855/hw2.1/m3.bin, sha256: 9b9b226abf8ce0e005209e53c0c9a4443abaf7 |
| 919 | b3def7fefe7e5c5676255c7bdc |
| 920 | [ 9.533962] ath11k_pci 0000:03:00.0: leaving PCI ASPM disabled to avoid MHI M2 problems |
| 921 | # interface |
| 922 | root@noble-venice:~# ls -l /sys/class/net/wlan0 |
| 923 | lrwxrwxrwx 1 root root 0 Oct 28 19:02 /sys/class/net/wlan0 -> ../../devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00 |
| 924 | .0/0000:01:00.0/0000:02:01.0/0000:03:00.0/net/wlan0 |
| 925 | }}} |
| 926 | |
| 927 | Bluetooth Details: |
| 928 | * Bluetooth 5.2 BR/EDR/LE |
| 929 | * USB2.0 0x0cf3:0xe600 |
| 930 | * supported by the btusb driver; drivers/bluetooth/btusb.c CONFIG_BT_HCIBTUSB: |
| 931 | {{{#!bash |
| 932 | root@noble-venice:~# dmesg | grep Bluetooth |
| 933 | [ 8.188778] Bluetooth: Core ver 2.22 |
| 934 | [ 8.188899] Bluetooth: HCI device and connection manager initialized |
| 935 | [ 8.189878] Bluetooth: HCI socket layer initialized |
| 936 | [ 8.189901] Bluetooth: L2CAP socket layer initialized |
| 937 | [ 8.189932] Bluetooth: SCO socket layer initialized |
| 938 | [ 8.340707] Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00130201.bin |
| 939 | [ 8.340712] Bluetooth: hci0: QCA: patch rome 0x130201 build 0x65e2, firmware rome 0x130201 build 0x38e6 |
| 940 | [ 8.910493] Bluetooth: hci0: using NVM file: qca/nvm_usb_00130201_gf.bin |
| 941 | [ 9.047564] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported. |
| 942 | [ 9.316899] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 |
| 943 | [ 9.316916] Bluetooth: BNEP filters: protocol multicast |
| 944 | [ 9.316929] Bluetooth: BNEP socket layer initialized |
| 945 | [ 9.323882] Bluetooth: MGMT ver 1.22 |
| 946 | root@noble-venice:~# hciconfig hci0 |
| 947 | hci0: Type: Primary Bus: USB |
| 948 | BD Address: 1C:BC:EC:01:43:B5 ACL MTU: 1024:7 SCO MTU: 240:8 |
| 949 | UP RUNNING |
| 950 | RX bytes:954 acl:0 sco:0 events:75 errors:0 |
| 951 | TX bytes:2870 acl:0 sco:0 commands:75 errors:0 |
| 952 | |
| 953 | root@noble-venice:~# hcitool -i hci0 scan |
| 954 | Scanning ... |
| 955 | }}} |
| 956 | |
| 957 | |
| 958 | == GW16FB0 FSA M.2 B-Key Adapter |
| 959 | The GW16FB0 B-Key Adapter provides an M.2 B-Key socket with the following: |
| 960 | * GPIO5 (drive-high; drive-low; high-Z 1.8V) |
| 961 | * GPIO6 (drive-high; drive-low; high-Z 1.8V) |
| 962 | * DPR (drive-high or drive-low 1.8V) |
| 963 | * WP# (OD; high-Z or drive-low) |
| 964 | * W_DISALBE1# (OD|drive-high|drive-low @1.8V or 3.3V) |
| 965 | * W_DISABLE2# (OD|drive-high|drive-low @1.8V or 3.3V) |
| 966 | * RESET# (OD|drive-high|drive-low @1.8V or 3.3V) |
| 967 | * CRDPWROFF# (OD|drive-high|drive-low @1.8V or 3.3V) |
| 968 | * CONFIG[0-3] |
| 969 | * COEX[0-2] |
| 970 | * SIM1 |
| 971 | * SIM2 |
| 972 | * USB2.0 |
| 973 | * PCIE3.0 (with PERST# 3.3V) |
| 974 | * LED1# (OD Yellow) |
| 975 | |
| 976 | Pinout (from baseboard perspective): |
| 977 | ||= pin =||= signal =||= signal =||= pin =|| |
| 978 | || 1 || CONFIG3(I)(3.3V pu)|| 3.3V || 2 || |
| 979 | || 3 || GND || 3.3V || 4 || |
| 980 | || 5 || GND || CRDPWROFF#(O/OD) || 6 || |
| 981 | || 7 || USB_DP || W_DISABLE1#(O/OD) || 8 || |
| 982 | || 9 || USB_DM || LED1#(OD) || 10 || |
| 983 | || 11 || GND || KEY || 12 || |
| 984 | || 13 || KEY || KEY || 14 || |
| 985 | || 15 || KEY || KEY || 16 || |
| 986 | || 17 || KEY || KEY || 18 || |
| 987 | || 19 || KEY || GPIO5(O/OD) || 20 || |
| 988 | || 21 || CONFIG0(I)(3.3V pu)|| GPIO6(O/OD) || 22 || |
| 989 | || 23 || NC || NC || 24 || |
| 990 | || 25 || DPR || W_DISABLE2#(O/OD) || 26 || |
| 991 | || 27 || GND || NC || 28 || |
| 992 | || 29 || USB_RXN || SIM1_RST^^^3^^^ || 30 || |
| 993 | || 31 || USB_RXP || SIM1_CLK^^^3^^^ || 32 || |
| 994 | || 33 || GND || SIM1_DAT^^^3^^^ || 34 || |
| 995 | || 35 || USB_TXN || SIM1_PWR^^^3^^^ || 36 || |
| 996 | || 37 || USB_TXP || NC || 38 || |
| 997 | || 39 || GND || SIM2_DET^^^3^^^ || 40 || |
| 998 | || 41 || PCIE_RXN || SIM2_DAT^^^3^^^ || 42 || |
| 999 | || 43 || PCIE_RXP || SIM2_CLK^^^3^^^ || 44 || |
| 1000 | || 45 || GND || SIM2_RST^^^3^^^ || 46 || |
| 1001 | || 47 || PCIE_TXN || SIM2_PWR^^^3^^^ || 48 || |
| 1002 | || 49 || PCIE_TXP || PERST#(O)(3.3V) || 50 || |
| 1003 | || 51 || GND || NC || 52 || |
| 1004 | || 53 || PCIE_CKN || NC || 54 || |
| 1005 | || 55 || PCIE_CKP || NC || 56 || |
| 1006 | || 57 || GND || NC || 58 || |
| 1007 | || 59 || NC || COEX3^^^1^^^ || 60 || |
| 1008 | || 61 || NC || COEX2^^^1^^^ || 62 || |
| 1009 | || 63 || NC || COEX1^^^1^^^ || 64 || |
| 1010 | || 65 || NC || SIM1_DET^^^3^^^ || 66 || |
| 1011 | || 67 || RESET#(O/OD) || WP#(O/OD) || 68 || |
| 1012 | || 69 || CONFIG1(I)(3.3V pu)|| 3.3V || 70 || |
| 1013 | || 71 || GND || 3.3V || 72 || |
| 1014 | || 73 || GND || 3.3V || 74 || |
| 1015 | || 75 || CONFIG2(I)(3.3V pu)|| || || |
| 1016 | 1. The COEX[1..3] signals are ganged to each FSA socket on the baseboard |
| 1017 | 2. CONFIG[0..3] are inputs to the port expander with onboard pullups |
| 1018 | 3. The SIM signals do not connect to the baseboard SoC and go directly to the on-board SIM connector |
| 1019 | |
| 1020 | The following GPIO's are highly customizable via a dip-switch and I/O port expander: |
| 1021 | * W_DISALBLE1#: output level is fsa_wdisable1# gpio |
| 1022 | - OD: DIP[1]=on DIP[2]=don't-care |
| 1023 | - @1.8V: DIP[1]=off DIP[2]=on |
| 1024 | - @3.3V: DIP[1]=off DIP[2]=off |
| 1025 | * CRDPWROFF#: output level is fsa_crdpwroff# gpio |
| 1026 | - OD: DIP[3]=on DIP[4]=don't-care |
| 1027 | - @1.8V: DIP[3]=off DIP[4]=on |
| 1028 | - @3.3V: DIP[3]=off DIP[4]=off |
| 1029 | * RESET#: output level is fsa_reset# gpio |
| 1030 | - OD: DIP[5]=on DIP[6]=don't-care |
| 1031 | - @1.8V: DIP[5]=off DIP[6]=on |
| 1032 | - @3.3V: DIP[5]=off DIP[6]=off |
| 1033 | * W_DISABLE2#: output level is fsa_wdisable1# gpio |
| 1034 | - OD: DIP[7]=on DIP[8]=don't-care |
| 1035 | - @1.8V: DIP[7]=off DIP[8]=on |
| 1036 | - @3.3V: DIP[7]=off DIP[8]=off |
| 1037 | * GPIO5: |
| 1038 | - high-Z: gpio5_oe#=high |
| 1039 | - 1.8V: gpio5_oe#=low, DIP[9]=off |
| 1040 | - 0V: gpio5_oe=low, DIP[9]=on |
| 1041 | * GPIO6: |
| 1042 | - high-Z: gpio6_oe#=high |
| 1043 | - 1.8V: gpio6_oe#=low, DIP[10]=off |
| 1044 | - 0V: gpio6_oe=low, DIP[10]=on |
| 1045 | |
| 1046 | |
| 1047 | === Card: Compex WLTB7002E25 M.2 B-Key/M-Key WiFi7 radio |
| 1048 | The Compex WLTB7002 is a Wifi7 802.11be M.2 B-Key PCIE based radio using a Qualcomm chipset and supported by the ath12k driver. Note that the early product naming was WLTM which was changed to WLTB (the card we have says WLTM). |
| 1049 | |
| 1050 | Pin Details: |
| 1051 | * PERST# has a pu to 3.3V on card |
| 1052 | * CONFIG[0..3]=1111 |
| 1053 | * DIP[1..10]=1101011111 (W_DISABLE1# OD) |
| 1054 | * M2.8 W_DISABLE1# OD |
| 1055 | |
| 1056 | !WiFi details: |
| 1057 | * WiFi7 802.11be |
| 1058 | * PCIe 0x17cb 0x1109 |
| 1059 | * ath12: |
| 1060 | * firmware: ath12k/QCN9274/hw2.0 |
| 1061 | - board-2.bin and firmware-2.bin (from https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware; several options for firmware-2.bin all which work accept for QCN9274/hw2.0/testing/1.4.1/WLAN.WBE.1.4.1-00103-QCAHKSWPL_SILICONZ-1/firmware-2.bin) |
| 1062 | - regdb.bin and board.bin (not publicly available and are provided by Compex :sales@compex.com.sg) |
| 1063 | * driver: |
| 1064 | {{{#!bash |
| 1065 | root@noble-venice:~# cat /proc/cmdline |
| 1066 | console=ttymxc1,115200 root=/dev/mmcblk2p1 rootwait net.ifnames=0 cma=196M |
| 1067 | root@noble-venice:~# dmesg | grep ath12 |
| 1068 | [ 9.439459] ath12k_pci 0000:07:00.0: BAR 0 [mem 0x18200000-0x183fffff 64bit]: assigned |
| 1069 | [ 9.439514] ath12k_pci 0000:07:00.0: enabling device (0000 -> 0002) |
| 1070 | [ 9.440236] ath12k_pci 0000:07:00.0: MSI vectors: 16 |
| 1071 | [ 9.440262] ath12k_pci 0000:07:00.0: Hardware name: qcn9274 hw2.0 |
| 1072 | [ 9.651582] ath12k_pci 0000:07:00.0: Loaded FW: ath12k/QCN9274/hw2.0/firmware-2.bin, sha256: 6d2330c27a55b5a64a303bfcf6a05b |
| 1073 | dfe8a8e32f61fccff0b7ac980eee71a019 |
| 1074 | [ 10.430023] ath12k_pci 0000:07:00.0: memory type 10 not supported |
| 1075 | [ 10.435234] ath12k_pci 0000:07:00.0: chip_id 0x0 chip_family 0xb board_id 0x101a soc_id 0x401a2200 |
| 1076 | [ 10.435258] ath12k_pci 0000:07:00.0: fw_version 0x111300d6 fw_build_timestamp 2024-08-06 08:43 fw_build_id QC_IMAGE_VERSION |
| 1077 | _STRING=WLAN.WBE.1.1.1-00214-QCAHKSWPL_SILICONZ-1 |
| 1078 | [ 10.439493] ath12k_pci 0000:07:00.0: Loaded FW: ath12k/QCN9274/hw2.0/board-2.bin, sha256: c75e2f2a343d171ff2796d6b5f2d9a629 |
| 1079 | 8f5e5c5a4235bb2a061d6138233e2e5 |
| 1080 | [ 10.440555] ath12k_pci 0000:07:00.0: Loaded FW: ath12k/QCN9274/hw2.0/board-2.bin, sha256: c75e2f2a343d171ff2796d6b5f2d9a629 |
| 1081 | 8f5e5c5a4235bb2a061d6138233e2e5 |
| 1082 | [ 10.441504] ath12k_pci 0000:07:00.0: Loaded FW: ath12k/QCN9274/hw2.0/regdb.bin, sha256: a36fbe1cdaa83c8ae6792614bfa0e3b9fa2 |
| 1083 | f1a0d01b07fdafad3ace46d34bc9a |
| 1084 | [ 10.449868] ath12k_pci 0000:07:00.0: Loaded FW: ath12k/QCN9274/hw2.0/board-2.bin, sha256: c75e2f2a343d171ff2796d6b5f2d9a629 |
| 1085 | 8f5e5c5a4235bb2a061d6138233e2e5 |
| 1086 | [ 10.450680] ath12k_pci 0000:07:00.0: Loaded FW: ath12k/QCN9274/hw2.0/board-2.bin, sha256: c75e2f2a343d171ff2796d6b5f2d9a629 |
| 1087 | 8f5e5c5a4235bb2a061d6138233e2e5 |
| 1088 | [ 10.452542] ath12k_pci 0000:07:00.0: Loaded FW: ath12k/QCN9274/hw2.0/board.bin, sha256: cc31d22d444fe3e574891ad0470bf64092b |
| 1089 | 75ece32dd229c27fbd60835ef61a3 |
| 1090 | [ 13.055026] ath12k_pci 0000:07:00.0: Invalid module id 2 |
| 1091 | [ 13.055062] ath12k_pci 0000:07:00.0: failed to parse tlv -22 |
| 1092 | root@noble-venice:~# ls -l /sys/class/net/wlan* |
| 1093 | lrwxrwxrwx 1 root root 0 Apr 19 2024 /sys/class/net/wlan0 -> ../../devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00 |
| 1094 | .0/0000:01:00.0/0000:02:05.0/0000:07:00.0/net/wlan0 |
| 1095 | lrwxrwxrwx 1 root root 0 Apr 19 2024 /sys/class/net/wlan1 -> ../../devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00 |
| 1096 | .0/0000:01:00.0/0000:02:05.0/0000:07:00.0/net/wlan1 |
| 1097 | }}} |
| 1098 | * There is a patch posted (not accepted yet) which fixes the 'Invalid module id2' 'failed to parse tlv -22' issue (https://patchwork.kernel.org/project/linux-wireless/patch/20231030222700.18914-2-quic_rajkbhag@quicinc.com/) |
| 1099 | * Note that additional cma is needed (cma=196M) for this card |
| 1100 | * Note that Linux 6.9 or newer is likely required (tested 6.9, 6.10, 6.11, 6.12-rc6; 6.6 is too old, not sure about 6.7, 6.8) |
| 1101 | * iperf3 showed TX/RX rate of 503/499 mbps |
| 1102 | |
| 1103 | |
| 1104 | === Card: Quectel EM06 M.2 B-Key Modem |
| 1105 | The Quectel EM06 B-Key Modem is a USB2.0 Category 6 LTE modem with dual-sim and GNSS support. |
| 1106 | |
| 1107 | Pin Details: |
| 1108 | * DIP[1..10]=1x01011xxx (W_DISABLE1 OD, CARD_POWER_OFF driven@1.8V, RESET# driven@1.8V, W_DISABLE2 OD) |
| 1109 | * CONFIG[0..3]=0011 |
| 1110 | * GPIO5 and GPIO6 are used for PCM CLK and DAT input |
| 1111 | * W_DISABLE1# Disable Modem |
| 1112 | * W_DISABLE2# Disable GPS |
| 1113 | * WWAN_LED# RF Status |
| 1114 | * dual-sim |
| 1115 | |
| 1116 | Modem Details: |
| 1117 | * DIP[1..10]=1101011100 (W_DISABLE1 OD, CARD_POWER_OFF driven@1.8V, RESET# driven@1.8V, W_DISABLE2 OD, GPIO5 and GPIO6 driven low at power-up until U-Boot drives the OE's high) |
| 1118 | * CONFIG[0..3]=1111 |
| 1119 | * USB2.0 2c7c:0306 |
| 1120 | * drivers: option/USB_SERIAL_OPTION, cdc_mbim/USB_NET_CDC_MBIM |
| 1121 | {{{#!bash |
| 1122 | root@noble-venice:~# mmcli -m 0 |
| 1123 | ----------------------------------- |
| 1124 | General | path: /org/freedesktop/ModemManager1/Modem/0 |
| 1125 | | device id: 3a44c51e195b25f52092cb3bf35d5c7102a7b6fc |
| 1126 | ----------------------------------- |
| 1127 | Hardware | manufacturer: Quectel |
| 1128 | | model: EM06-A |
| 1129 | | firmware revision: EM06ALAR03A05M4G |
| 1130 | | carrier config: ROW_Generic_3GPP |
| 1131 | | carrier config revision: 06010821 |
| 1132 | | h/w revision: EM06-A |
| 1133 | | supported: gsm-umts, lte |
| 1134 | | current: gsm-umts, lte |
| 1135 | | equipment id: 861364040064220 |
| 1136 | ----------------------------------- |
| 1137 | System | device: /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.1.auto/usb3/3-1/3-1.2 |
| 1138 | | physdev: /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.1.auto/usb3/3-1/3-1.2 |
| 1139 | | drivers: option, cdc_mbim |
| 1140 | | plugin: quectel |
| 1141 | | primary port: cdc-wdm0 |
| 1142 | | ports: cdc-wdm0 (mbim), ttyUSB0 (ignored), ttyUSB1 (gps), |
| 1143 | | ttyUSB2 (at), ttyUSB3 (at), wwan0 (net) |
| 1144 | ----------------------------------- |
| 1145 | Status | lock: sim-pin2 |
| 1146 | | unlock retries: sim-pin2 (3) |
| 1147 | | state: disabled |
| 1148 | | power state: on |
| 1149 | ----------------------------------- |
| 1150 | Modes | supported: allowed: 3g; preferred: none |
| 1151 | | allowed: 4g; preferred: none |
| 1152 | | allowed: 3g, 4g; preferred: 4g |
| 1153 | | allowed: 3g, 4g; preferred: 3g |
| 1154 | | current: allowed: 3g, 4g; preferred: 4g |
| 1155 | ----------------------------------- |
| 1156 | Bands | supported: utran-4, utran-5, utran-2, eutran-2, eutran-4, eutran-5, |
| 1157 | | eutran-7, eutran-12, eutran-13, eutran-25, eutran-26, eutran-29, |
| 1158 | | eutran-30, eutran-41, eutran-66 |
| 1159 | | current: utran-4, utran-5, utran-2, eutran-2, eutran-4, eutran-5, |
| 1160 | | eutran-7, eutran-12, eutran-13, eutran-25, eutran-26, eutran-29, |
| 1161 | | eutran-30, eutran-41, eutran-66 |
| 1162 | ----------------------------------- |
| 1163 | IP | supported: ipv4, ipv6, ipv4v6 |
| 1164 | ----------------------------------- |
| 1165 | 3GPP | imei: 861364040064220 |
| 1166 | | enabled locks: fixed-dialing |
| 1167 | ----------------------------------- |
| 1168 | 3GPP EPS | ue mode of operation: csps-2 |
| 1169 | ----------------------------------- |
| 1170 | SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 |
| 1171 | root@noble-venice:~# mmcli -m 0 --sim 0 |
| 1172 | ------------------------------- |
| 1173 | General | path: /org/freedesktop/ModemManager1/SIM/0 |
| 1174 | ------------------------------- |
| 1175 | Properties | active: yes |
| 1176 | | imsi: 234500007828248 |
| 1177 | | iccid: 8944501109208282487 |
| 1178 | | operator id: 23450 |
| 1179 | | operator name: Hologram |
| 1180 | | gid1: FFFFFFFF |
| 1181 | | gid2: FFFFFFFF |
| 1182 | }}} |
| 1183 | |
| 1184 | |
| 1185 | === Card: Sierra Wireless EM9191 B-Key Modem |
| 1186 | |
| 1187 | Pin Details: |
| 1188 | * Full_Card_Power_Off# —Active-low input from the host—Low turns the module off, high turns the module on. |
| 1189 | * W_DISABLE1# pu W_DISABLE#—Active low input from the host—Low disables the main RF radio or triggers a ‘Dying Gasp’ SMS, depending on configuration. |
| 1190 | * W_DISABLE2# pu GPS_DISABLE#—Active low input from the host—Low disables the GNSS radio receiver. |
| 1191 | * RESET#—Active low input from the host—Low resets the module. |
| 1192 | * Dynamic power control (DPR)—Signal used to adjust Tx power to meet FCC SAR requirements. For details, see |
| 1193 | * GPIO5/GPIO6 drive high for USB3.0 or drive low for PCIe |
| 1194 | * LED# blinks on 0.5s every 5 seconds or so |
| 1195 | |
| 1196 | Modem Details: |
| 1197 | * DIP[1..10]=1101011100 (W_DISABLE1 OD, CARD_POWER_OFF driven@1.8V, RESET# driven@1.8V, W_DISABLE2 OD, GPIO5 and GPIO6 driven low at power-up until U-Boot drives the OE's high) |
| 1198 | * CONFIG[0..3]=0011 |
| 1199 | * USB3.0 1199:90d3 |
| 1200 | * drivers: option/USB_SERIAL_OPTION, cdc_mbim/USB_NET_CDC_MBIM |
| 1201 | {{{#!bash |
| 1202 | root@noble-venice:~# dmesg | egrep option\|mbim |
| 1203 | [ 0.000000] earlycon: ec_imx6q0 at MMIO 0x0000000030890000 (options '115200') |
| 1204 | [ 7.866598] usbcore: registered new interface driver option |
| 1205 | [ 7.871271] option 2-1:1.3: GSM modem (1-port) converter detected |
| 1206 | [ 7.873704] option 2-1:1.4: GSM modem (1-port) converter detected |
| 1207 | [ 7.988211] cdc_mbim 2-1:1.0: setting rx_max = 16384 |
| 1208 | [ 8.046418] cdc_mbim 2-1:1.0: cdc-wdm0: USB WDM device |
| 1209 | [ 8.123786] cdc_mbim 2-1:1.0 wwan0: register 'cdc_mbim' at usb-xhci-hcd.0.auto-1, CDC MBIM, 6a:f5:5b:cf:07:fd |
| 1210 | [ 8.123962] usbcore: registered new interface driver cdc_mbim |
| 1211 | }}} |
| 1212 | * modemmanager: |
| 1213 | {{{#!bash |
| 1214 | root@noble-venice:~# mmcli -m 0 |
| 1215 | ---------------------------------- |
| 1216 | General | path: /org/freedesktop/ModemManager1/Modem/0 |
| 1217 | | device id: 54d8f189055cd3252fc067e8f4e7e41fe9f4831f |
| 1218 | ---------------------------------- |
| 1219 | Hardware | manufacturer: Sierra Wireless, Incorporated |
| 1220 | | model: Sierra Wireless EM9191 |
| 1221 | | firmware revision: 01.07.19.00_GENERI_016.010_000 |
| 1222 | | carrier config: default |
| 1223 | | h/w revision: EM9191 |
| 1224 | | supported: gsm-umts, lte, 5gnr |
| 1225 | | current: gsm-umts, lte, 5gnr |
| 1226 | | equipment id: 355890340103204 |
| 1227 | ---------------------------------- |
| 1228 | System | device: /sys/devices/platform/soc@0/32f10100.usb/38100000.usb/xhci-hcd.0.auto/usb2/2-1 |
| 1229 | | physdev: /sys/devices/platform/soc@0/32f10100.usb/38100000.usb/xhci-hcd.0.auto/usb2/2-1 |
| 1230 | | drivers: option, cdc_mbim |
| 1231 | | plugin: sierra |
| 1232 | | primary port: cdc-wdm0 |
| 1233 | | ports: cdc-wdm0 (mbim), ttyUSB0 (at), wwan0 (net) |
| 1234 | ---------------------------------- |
| 1235 | Status | lock: sim-pin2 |
| 1236 | | unlock retries: sim-pin2 (3) |
| 1237 | | state: disabled |
| 1238 | | power state: on |
| 1239 | ---------------------------------- |
| 1240 | Modes | supported: allowed: 3g; preferred: none |
| 1241 | | allowed: 4g; preferred: none |
| 1242 | | allowed: 3g, 4g; preferred: 4g |
| 1243 | | allowed: 3g, 4g; preferred: 3g |
| 1244 | | allowed: 5g; preferred: none |
| 1245 | | allowed: 4g, 5g; preferred: 5g |
| 1246 | | allowed: 4g, 5g; preferred: 4g |
| 1247 | | allowed: 3g, 5g; preferred: 5g |
| 1248 | | allowed: 3g, 5g; preferred: 3g |
| 1249 | | allowed: 3g, 4g, 5g; preferred: 5g |
| 1250 | | allowed: 3g, 4g, 5g; preferred: 4g |
| 1251 | | allowed: 3g, 4g, 5g; preferred: 3g |
| 1252 | | current: allowed: 3g, 4g, 5g; preferred: 4g |
| 1253 | ---------------------------------- |
| 1254 | Bands | supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, |
| 1255 | | utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, |
| 1256 | | eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, |
| 1257 | | eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, |
| 1258 | | eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, |
| 1259 | | eutran-40, eutran-41, eutran-42, eutran-46, eutran-48, eutran-66, |
| 1260 | | eutran-71, utran-19, ngran-1, ngran-2, ngran-3, ngran-5, ngran-28, |
| 1261 | | ngran-41, ngran-66, ngran-71, ngran-77, ngran-78, ngran-79 |
| 1262 | | current: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, |
| 1263 | | utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, |
| 1264 | | eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, |
| 1265 | | eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, |
| 1266 | | eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, |
| 1267 | | eutran-40, eutran-41, eutran-42, eutran-46, eutran-48, eutran-66, |
| 1268 | | eutran-71, utran-19, ngran-1, ngran-2, ngran-3, ngran-5, ngran-28, |
| 1269 | | ngran-41, ngran-66, ngran-71, ngran-77, ngran-78, ngran-79 |
| 1270 | ---------------------------------- |
| 1271 | IP | supported: ipv4, ipv6, ipv4v6 |
| 1272 | ---------------------------------- |
| 1273 | 3GPP | imei: 355890340103204 |
| 1274 | | enabled locks: fixed-dialing |
| 1275 | ---------------------------------- |
| 1276 | 3GPP EPS | ue mode of operation: csps-2 |
| 1277 | | initial bearer apn: psntneofin |
| 1278 | | initial bearer ip type: ipv4v6 |
| 1279 | ---------------------------------- |
| 1280 | SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 |
| 1281 | | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active) |
| 1282 | }}} |
| 1283 | |
| 1284 | |
| 1285 | === Card: Sierra Wireless EM7455 B-Key Modem |
| 1286 | The Sierra Wireless EM7455 B-Key Modem is a USB3.0 Category 6 LTE modem with dual-sim and GNSS support. |
| 1287 | |
| 1288 | Pin Details: |
| 1289 | * DIP[1..10]=1x01011xxx (W_DISABLE1 OD, CARD_POWER_OFF driven@1.8V, RESET# driven@1.8V, W_DISABLE2 OD) |
| 1290 | * CONFIG[0..3]=0011 |
| 1291 | * W_DISABLE1# Disable Modem |
| 1292 | * W_DISABLE2# Disable GPS |
| 1293 | * LED# WWAN Radio On indicator |
| 1294 | * GPIO5 and GPIO6 are N/C |
| 1295 | * dual-sim |
| 1296 | |
| 1297 | Modem Details: |
| 1298 | * USB3.0 1199:9079 |
| 1299 | - drivers: cdc_mbim/USB_NET_CDC_MBIM |
| 1300 | {{{#!bash |
| 1301 | root@noble-venice:~# dmesg | egrep mbim |
| 1302 | [ 15.407976] cdc_mbim 2-1:1.12: cdc-wdm0: USB WDM device |
| 1303 | [ 15.408552] cdc_mbim 2-1:1.12 wwan0: register 'cdc_mbim' at usb-xhci-hcd.0.auto-1, CDC MBIM, 52:79:74:f9:6c:a9 |
| 1304 | [ 15.408712] usbcore: registered new interface driver cdc_mbim |
| 1305 | }}} |
| 1306 | - modemmanager: |
| 1307 | {{{#!bash |
| 1308 | root@noble-venice:~# mmcli --version |
| 1309 | mmcli 1.23.4 |
| 1310 | Copyright (2011 - 2023) Aleksander Morgado |
| 1311 | License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html> |
| 1312 | This is free software: you are free to change and redistribute it. |
| 1313 | There is NO WARRANTY, to the extent permitted by law. |
| 1314 | root@noble-venice:~# mmcli -m 0 |
| 1315 | -------------------------------- |
| 1316 | General | path: /org/freedesktop/ModemManager1/Modem/0 |
| 1317 | | device id: ec2f88be52b588f89e0f12a21c4c5bb5cf5387a2 |
| 1318 | -------------------------------- |
| 1319 | Hardware | manufacturer: Sierra Wireless, Incorporated |
| 1320 | | model: Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A |
| 1321 | | firmware revision: SWI9X30C_02.08.02.00 |
| 1322 | | carrier config: default |
| 1323 | | h/w revision: EM7455 |
| 1324 | | supported: gsm-umts, lte |
| 1325 | | current: gsm-umts, lte |
| 1326 | | equipment id: 014582002248145 |
| 1327 | -------------------------------- |
| 1328 | System | device: /sys/devices/platform/soc@0/32f10100.usb/38100000.usb/xhci-hcd.0.auto/usb2/2-1 |
| 1329 | | physdev: /sys/devices/platform/soc@0/32f10100.usb/38100000.usb/xhci-hcd.0.auto/usb2/2-1 |
| 1330 | | drivers: cdc_mbim, qcserial |
| 1331 | | plugin: sierra |
| 1332 | | primary port: cdc-wdm0 |
| 1333 | | ports: cdc-wdm0 (mbim), ttyUSB0 (ignored), ttyUSB1 (gps), |
| 1334 | | ttyUSB2 (at), wwan0 (net) |
| 1335 | -------------------------------- |
| 1336 | Status | lock: sim-pin2 |
| 1337 | | unlock retries: sim-pin2 (3) |
| 1338 | | state: disabled |
| 1339 | | power state: low |
| 1340 | -------------------------------- |
| 1341 | Modes | supported: allowed: 3g; preferred: none |
| 1342 | | allowed: 4g; preferred: none |
| 1343 | | allowed: 3g, 4g; preferred: 4g |
| 1344 | | allowed: 3g, 4g; preferred: 3g |
| 1345 | | current: allowed: 3g, 4g; preferred: 4g |
| 1346 | -------------------------------- |
| 1347 | Bands | supported: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2, |
| 1348 | | eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, |
| 1349 | | eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-41 |
| 1350 | | current: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2, |
| 1351 | | eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, |
| 1352 | | eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-41 |
| 1353 | -------------------------------- |
| 1354 | IP | supported: ipv4, ipv6, ipv4v6 |
| 1355 | -------------------------------- |
| 1356 | 3GPP | imei: 014582002248145 |
| 1357 | | enabled locks: fixed-dialing |
| 1358 | -------------------------------- |
| 1359 | 3GPP EPS | ue mode of operation: csps-2 |
| 1360 | -------------------------------- |
| 1361 | SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 |
| 1362 | | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active) |
| 1363 | | slot 2: /org/freedesktop/ModemManager1/SIM/1 |
| 1364 | }}} |
| 1365 | |
| 1366 | |
| 1367 | === Card: Telit FN980 B-Key Modem |
| 1368 | The Telit FN980 B-Key Modem is a USB3.0/PCIe based modem. The early hardware v1.0 uses AT commands to select between PCI and USB interfaces. |
| 1369 | |
| 1370 | Modem Details: |
| 1371 | * bus selection |
| 1372 | - v1.2 hw pin20 GPIO5 low enables PCIe mode |
| 1373 | - v1.0 (what we have) requires an AT command to switch back and forth. Note that when in PCI mode a device still enumerates on USB 3.0 as well (but its not used) |
| 1374 | {{{#!bash |
| 1375 | DEVICE=/dev/ttyUSB3 |
| 1376 | stty -F $DEVICE ignbrk -brkint -icrnl -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke # config tty |
| 1377 | cat $DEVICE & # background process to read TTY responses |
| 1378 | at() { echo -n -e "$1\r" > $DEVICE; } # script for at cmds |
| 1379 | at "ATI" # identify modem |
| 1380 | at "AT#USBPCISWITCH?" # read switch |
| 1381 | at "AT#USBPCISWITCH=0" # set USB |
| 1382 | at "AT#USBPCISWITCH=1,5,0" # set PCI |
| 1383 | at "AT#REBOOT" # reboot modem |
| 1384 | }}} |
| 1385 | * PCIe mode: |
| 1386 | - 0x17cb:0x0306 |
| 1387 | - drivers: mhi_net, mhi-pci-generic |
| 1388 | {{{#!bash |
| 1389 | [ 8.764392] mhi-pci-generic 0000:03:00.0: MHI PCI device found: telit-fn980-hwv1 |
| 1390 | [ 8.764420] mhi-pci-generic 0000:03:00.0: BAR 0: assigned [mem 0x18100000-0x18100fff 64bit] |
| 1391 | [ 8.764465] mhi-pci-generic 0000:03:00.0: enabling device (0000 -> 0002) |
| 1392 | [ 8.778878] mhi mhi0: Requested to power ON |
| 1393 | [ 8.778922] mhi mhi0: Power on setup success |
| 1394 | }}} |
| 1395 | - modemmanager: |
| 1396 | {{{#!bash |
| 1397 | root@noble-venice:~# mmcli -m 0 |
| 1398 | ---------------------------------- |
| 1399 | General | path: /org/freedesktop/ModemManager1/Modem/0 |
| 1400 | | device id: b9bb1ca601e8da746a588c18447cb5390535b85b |
| 1401 | ---------------------------------- |
| 1402 | Hardware | manufacturer: Telit |
| 1403 | | model: FN980m |
| 1404 | | firmware revision: M0H.020002-B009 |
| 1405 | | carrier config: default |
| 1406 | | h/w revision: 1.00 |
| 1407 | | supported: gsm-umts, lte, 5gnr, tds |
| 1408 | | cdma-evdo, lte, 5gnr, tds |
| 1409 | | lte, 5gnr, tds |
| 1410 | | cdma-evdo, gsm-umts, lte, 5gnr, tds |
| 1411 | | current: gsm-umts, lte, 5gnr, tds |
| 1412 | | equipment id: 350313452002366 |
| 1413 | ---------------------------------- |
| 1414 | System | device: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:01 |
| 1415 | .0/0000:03:00.0 |
| 1416 | | physdev: /sys/devices/platform/soc@0/33800000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:01 |
| 1417 | .0/0000:03:00.0 |
| 1418 | | drivers: mhi_net, mhi-pci-generic |
| 1419 | | plugin: telit |
| 1420 | | primary port: wwan0qmi0 |
| 1421 | | ports: mhi_hwip0 (net), wwan0qmi0 (qmi) |
| 1422 | ---------------------------------- |
| 1423 | Status | lock: sim-pin2 |
| 1424 | | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10) |
| 1425 | | state: disabled |
| 1426 | | power state: on |
| 1427 | ---------------------------------- |
| 1428 | Modes | supported: allowed: 2g; preferred: none |
| 1429 | | allowed: 3g; preferred: none |
| 1430 | | allowed: 2g, 3g; preferred: 3g |
| 1431 | | allowed: 2g, 3g; preferred: 2g |
| 1432 | | allowed: 2g, 4g; preferred: 4g |
| 1433 | | allowed: 2g, 4g; preferred: 2g |
| 1434 | | allowed: 3g, 4g; preferred: 4g |
| 1435 | | allowed: 3g, 4g; preferred: 3g |
| 1436 | | allowed: 2g, 3g, 4g; preferred: 4g |
| 1437 | | allowed: 2g, 3g, 4g; preferred: 3g |
| 1438 | | allowed: 2g, 3g, 4g; preferred: 2g |
| 1439 | | allowed: 2g, 5g; preferred: 5g |
| 1440 | | allowed: 2g, 5g; preferred: 2g |
| 1441 | | allowed: 3g, 5g; preferred: 5g |
| 1442 | | allowed: 3g, 5g; preferred: 3g |
| 1443 | | allowed: 2g, 3g, 5g; preferred: 5g |
| 1444 | | allowed: 2g, 3g, 5g; preferred: 3g |
| 1445 | | allowed: 2g, 3g, 5g; preferred: 2g |
| 1446 | | allowed: 2g, 4g, 5g; preferred: 5g |
| 1447 | | allowed: 2g, 4g, 5g; preferred: 4g |
| 1448 | | allowed: 2g, 4g, 5g; preferred: 2g |
| 1449 | | allowed: 3g, 4g, 5g; preferred: 5g |
| 1450 | | allowed: 3g, 4g, 5g; preferred: 4g |
| 1451 | | allowed: 3g, 4g, 5g; preferred: 3g |
| 1452 | | allowed: 2g, 3g, 4g, 5g; preferred: 5g |
| 1453 | | allowed: 2g, 3g, 4g, 5g; preferred: 4g |
| 1454 | | allowed: 2g, 3g, 4g, 5g; preferred: 3g |
| 1455 | | allowed: 2g, 3g, 4g, 5g; preferred: 2g |
| 1456 | | current: allowed: 3g; preferred: none |
| 1457 | ---------------------------------- |
| 1458 | Bands | supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, |
| 1459 | | utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, |
| 1460 | | eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, |
| 1461 | | eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, |
| 1462 | | eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, |
| 1463 | | eutran-40, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48, |
| 1464 | | eutran-66, eutran-71, utran-19, ngran-1, ngran-2, ngran-3, ngran-5, |
| 1465 | | ngran-7, ngran-8, ngran-12, ngran-20, ngran-25, ngran-28, ngran-38, |
| 1466 | | ngran-40, ngran-41, ngran-48, ngran-66, ngran-71, ngran-77, ngran-78, |
| 1467 | | ngran-79 |
| 1468 | | current: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, |
| 1469 | | utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, |
| 1470 | | eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, |
| 1471 | | eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, |
| 1472 | | eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, |
| 1473 | | eutran-40, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48, |
| 1474 | | eutran-66, eutran-71, utran-19 |
| 1475 | ---------------------------------- |
| 1476 | IP | supported: ipv4, ipv6, ipv4v6 |
| 1477 | ---------------------------------- |
| 1478 | 3GPP | imei: 350313452002366 |
| 1479 | | enabled locks: fixed-dialing |
| 1480 | ---------------------------------- |
| 1481 | 3GPP EPS | initial bearer ip type: ipv4v6 |
| 1482 | ---------------------------------- |
| 1483 | SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 |
| 1484 | | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active) |
| 1485 | | slot 2: none |
| 1486 | }}} |
| 1487 | * USB3.0 mode: |
| 1488 | - USB3.0 1bc7:1050 |
| 1489 | - drivers: option/USB_SERIAL_OPTION qmi_wwan/USB_NET_QMI_WWAN |
| 1490 | - modemmanager: |
| 1491 | {{{#!bash |
| 1492 | root@noble-venice:~# mmcli -m 0 |
| 1493 | ---------------------------------- |
| 1494 | General | path: /org/freedesktop/ModemManager1/Modem/0 |
| 1495 | | device id: c04a4fdf1b3d082ea319157f172714fef001f97f |
| 1496 | ---------------------------------- |
| 1497 | Hardware | manufacturer: Telit |
| 1498 | | model: FN980m |
| 1499 | | firmware revision: M0H.020002-B009 |
| 1500 | | carrier config: default |
| 1501 | | h/w revision: 1.00 |
| 1502 | | supported: gsm-umts, lte, 5gnr, tds |
| 1503 | | cdma-evdo, lte, 5gnr, tds |
| 1504 | | lte, 5gnr, tds |
| 1505 | | cdma-evdo, gsm-umts, lte, 5gnr, tds |
| 1506 | | current: gsm-umts, lte, 5gnr, tds |
| 1507 | | equipment id: 350313452002366 |
| 1508 | ---------------------------------- |
| 1509 | System | device: /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.1.auto/usb4/4-1/4-1.2 |
| 1510 | | physdev: /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.1.auto/usb4/4-1/4-1.2 |
| 1511 | | drivers: option, qmi_wwan |
| 1512 | | plugin: telit |
| 1513 | | primary port: cdc-wdm0 |
| 1514 | | ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (ignored), |
| 1515 | | ttyUSB2 (at), ttyUSB3 (at), ttyUSB4 (ignored), wwan0 (net) |
| 1516 | ---------------------------------- |
| 1517 | Status | lock: sim-pin2 |
| 1518 | | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10) |
| 1519 | | state: disabled |
| 1520 | | power state: on |
| 1521 | ---------------------------------- |
| 1522 | Modes | supported: allowed: 2g; preferred: none |
| 1523 | | allowed: 3g; preferred: none |
| 1524 | | allowed: 2g, 3g; preferred: 3g |
| 1525 | | allowed: 2g, 3g; preferred: 2g |
| 1526 | | allowed: 2g, 4g; preferred: 4g |
| 1527 | | allowed: 2g, 4g; preferred: 2g |
| 1528 | | allowed: 3g, 4g; preferred: 4g |
| 1529 | | allowed: 3g, 4g; preferred: 3g |
| 1530 | | allowed: 2g, 3g, 4g; preferred: 4g |
| 1531 | | allowed: 2g, 3g, 4g; preferred: 3g |
| 1532 | | allowed: 2g, 3g, 4g; preferred: 2g |
| 1533 | | allowed: 2g, 5g; preferred: 5g |
| 1534 | | allowed: 2g, 5g; preferred: 2g |
| 1535 | | allowed: 3g, 5g; preferred: 5g |
| 1536 | | allowed: 3g, 5g; preferred: 3g |
| 1537 | | allowed: 2g, 3g, 5g; preferred: 5g |
| 1538 | | allowed: 2g, 3g, 5g; preferred: 3g |
| 1539 | | allowed: 2g, 3g, 5g; preferred: 2g |
| 1540 | | allowed: 2g, 4g, 5g; preferred: 5g |
| 1541 | | allowed: 2g, 4g, 5g; preferred: 4g |
| 1542 | | allowed: 2g, 4g, 5g; preferred: 2g |
| 1543 | | allowed: 3g, 4g, 5g; preferred: 5g |
| 1544 | | allowed: 3g, 4g, 5g; preferred: 4g |
| 1545 | | allowed: 3g, 4g, 5g; preferred: 3g |
| 1546 | | allowed: 2g, 3g, 4g, 5g; preferred: 5g |
| 1547 | | allowed: 2g, 3g, 4g, 5g; preferred: 4g |
| 1548 | | allowed: 2g, 3g, 4g, 5g; preferred: 3g |
| 1549 | | allowed: 2g, 3g, 4g, 5g; preferred: 2g |
| 1550 | | current: allowed: 3g; preferred: none |
| 1551 | ---------------------------------- |
| 1552 | Bands | supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, |
| 1553 | | utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, |
| 1554 | | eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, |
| 1555 | | eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, |
| 1556 | | eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, |
| 1557 | | eutran-40, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48, |
| 1558 | | eutran-66, eutran-71, utran-19, ngran-1, ngran-2, ngran-3, ngran-5, |
| 1559 | | ngran-7, ngran-8, ngran-12, ngran-20, ngran-25, ngran-28, ngran-38, |
| 1560 | | ngran-40, ngran-41, ngran-48, ngran-66, ngran-71, ngran-77, ngran-78, |
| 1561 | | ngran-79 |
| 1562 | | current: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, |
| 1563 | | utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, |
| 1564 | | eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, |
| 1565 | | eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, |
| 1566 | | eutran-29, eutran-30, eutran-32, eutran-34, eutran-38, eutran-39, |
| 1567 | | eutran-40, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48, |
| 1568 | | eutran-66, eutran-71, utran-19 |
| 1569 | ---------------------------------- |
| 1570 | IP | supported: ipv4, ipv6, ipv4v6 |
| 1571 | ---------------------------------- |
| 1572 | 3GPP | imei: 350313452002366 |
| 1573 | | enabled locks: fixed-dialing |
| 1574 | ---------------------------------- |
| 1575 | 3GPP EPS | ue mode of operation: csps-2 |
| 1576 | | initial bearer ip type: ipv4v6 |
| 1577 | ---------------------------------- |
| 1578 | SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 |
| 1579 | | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active) |
| 1580 | | slot 2: none |
| 1581 | }}} |
| 1582 | |
| 1583 | === Card: Telit LN920 B-Key Modem |
| 1584 | The [[https://www.telit.com/devices/ln920-series/ Telit LN920]] B-Key modem is a USB3.0 Category 6 LTE modem with dual-sim and GNSS support. |
| 1585 | |
| 1586 | Pin Details: |
| 1587 | * W_DISABLE1# Disable Modem |
| 1588 | * W_DISABLE2# Disable GPS |
| 1589 | * GPIO5 and GPIO6 are used for 1.8V I2S_CLK and I2S_DAT inputs |
| 1590 | * LED illuminates when the modem is enumerated in Linux |
| 1591 | * DIP[1..10]=1x01011xxx (W_DISABLE1 OD, CARD_POWER_OFF driven@1.8V, RESET# driven@1.8V, W_DISABLE2 OD) |
| 1592 | * CONFIG[0..3]=0011 |
| 1593 | * dual-sim support |
| 1594 | |
| 1595 | Modem Details: |
| 1596 | * USB3.0 1bc7:1060 |
| 1597 | - drivers: option/USB_SERIAL_OPTION qmi_wwan/USB_NET_QMI_WWAN |
| 1598 | {{{#!bash |
| 1599 | root@noble-venice:~# dmesg | egrep GSM\|wdm |
| 1600 | [ 19.499182] usbcore: registered new interface driver cdc_wdm |
| 1601 | [ 19.507831] usbserial: USB Serial support registered for GSM modem (1-port) |
| 1602 | [ 19.508079] option 2-1:1.0: GSM modem (1-port) converter detected |
| 1603 | [ 19.508409] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0 |
| 1604 | [ 19.508719] option 2-1:1.3: GSM modem (1-port) converter detected |
| 1605 | [ 19.509063] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1 |
| 1606 | [ 19.509255] option 2-1:1.4: GSM modem (1-port) converter detected |
| 1607 | [ 19.509574] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB2 |
| 1608 | [ 19.509774] option 2-1:1.5: GSM modem (1-port) converter detected |
| 1609 | [ 19.510059] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB3 |
| 1610 | [ 19.510208] option 2-1:1.6: GSM modem (1-port) converter detected |
| 1611 | [ 19.510417] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB4 |
| 1612 | [ 19.528989] qmi_wwan 2-1:1.2: cdc-wdm0: USB WDM device |
| 1613 | }}} |
| 1614 | - modemmanager: |
| 1615 | {{{#!bash |
| 1616 | root@noble-venice:~# mmcli --version |
| 1617 | mmcli 1.23.4 |
| 1618 | Copyright (2011 - 2023) Aleksander Morgado |
| 1619 | License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html> |
| 1620 | This is free software: you are free to change and redistribute it. |
| 1621 | There is NO WARRANTY, to the extent permitted by law. |
| 1622 | root@noble-venice:~# mmcli -m 0 |
| 1623 | ---------------------------------- |
| 1624 | General | path: /org/freedesktop/ModemManager1/Modem/0 |
| 1625 | | device id: e58cc432de177ace69c862b52587b449f1954cbc |
| 1626 | ---------------------------------- |
| 1627 | Hardware | manufacturer: Telit |
| 1628 | | model: LN920A12-WW |
| 1629 | | firmware revision: M0L.000002 |
| 1630 | | carrier config: default |
| 1631 | | h/w revision: 1.10 |
| 1632 | | supported: gsm-umts, lte |
| 1633 | | current: gsm-umts, lte |
| 1634 | | equipment id: 354175753093121 |
| 1635 | ---------------------------------- |
| 1636 | System | device: /sys/devices/platform/soc@0/32f10100.usb/38100000.usb/xhci-hcd.0.auto/usb2/2-1 |
| 1637 | | physdev: /sys/devices/platform/soc@0/32f10100.usb/38100000.usb/xhci-hcd.0.auto/usb2/2-1 |
| 1638 | | drivers: option, qmi_wwan |
| 1639 | | plugin: telit |
| 1640 | | primary port: cdc-wdm0 |
| 1641 | | ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (gps), |
| 1642 | | ttyUSB2 (at), ttyUSB3 (at), ttyUSB4 (ignored), wwan0 (net) |
| 1643 | ---------------------------------- |
| 1644 | Status | lock: sim-pin2 |
| 1645 | | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10) |
| 1646 | | state: disabled |
| 1647 | | power state: on |
| 1648 | ---------------------------------- |
| 1649 | Modes | supported: allowed: 3g; preferred: none |
| 1650 | | allowed: 4g; preferred: none |
| 1651 | | allowed: 3g, 4g; preferred: 4g |
| 1652 | | allowed: 3g, 4g; preferred: 3g |
| 1653 | | current: allowed: 3g, 4g; preferred: 4g |
| 1654 | ---------------------------------- |
| 1655 | Bands | supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8, |
| 1656 | | utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, |
| 1657 | | eutran-7, eutran-8, eutran-12, eutran-13, eutran-14, eutran-17, |
| 1658 | | eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28, |
| 1659 | | eutran-29, eutran-30, eutran-38, eutran-39, eutran-40, eutran-41, |
| 1660 | | eutran-42, eutran-43, eutran-48, eutran-66, eutran-71, utran-19 |
| 1661 | | current: utran-1, utran-4, utran-5, utran-8, utran-9, utran-2, |
| 1662 | | eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8, |
| 1663 | | eutran-12, eutran-13, eutran-14, eutran-17, eutran-18, eutran-19, |
| 1664 | | eutran-20, eutran-25, eutran-26, eutran-28, eutran-29, eutran-30, |
| 1665 | | eutran-38, eutran-39, eutran-40, eutran-41, eutran-42, eutran-43, |
| 1666 | | eutran-48, eutran-66, eutran-71, utran-19 |
| 1667 | ---------------------------------- |
| 1668 | IP | supported: ipv4, ipv6, ipv4v6 |
| 1669 | ---------------------------------- |
| 1670 | 3GPP | imei: 354175753093121 |
| 1671 | | enabled locks: fixed-dialing |
| 1672 | ---------------------------------- |
| 1673 | 3GPP EPS | ue mode of operation: csps-2 |
| 1674 | | initial bearer ip type: ipv4v6 |
| 1675 | ---------------------------------- |
| 1676 | SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 |
| 1677 | | sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active) |
| 1678 | | slot 2: /org/freedesktop/ModemManager1/SIM/1 |
| 1679 | }}} |