Hi,
I'm having an issue with the following the device AW-CM276NF installed on a iMX8MN som. Basically I'm trying to enable the 80211ac with high throughput in hostapd as part of an experiment. Hostapd can start fine and the width of the channel shows 80MHz:
iw dev phy#0 Interface wlan0 ifindex 4 wdev 0x1 addr ec:2e:98:87:34:69 ssid WIFITEST type AP channel 36 (5180 MHz), width: 80 MHz, center1: 5210 MHz
According to the specs in the datasheet, this device should have this datarates capabilities:
802.11b: 1, 2, 5.5, 11Mbps
802.11a/g: 6, 9, 12, 18, 24, 36, 48, 54Mbps
802.11n: up to 150Mbps-single802.11n: up to 300Mbps-2x2 MIMO
802.11ac:up to 192.6Mbps (20MHz channel)
802.11ac:up to 400Mbps (40MHz channel)
802.11ac:up to 866.7Mbps (80MHz channel)
hostapd is compiled with support for the 80211ac:
# IEEE 802.11n (High Throughput) support CONFIG_IEEE80211N=y # IEEE 802.11ac (Very High Throughput) support CONFIG_IEEE80211AC=y
here is an example of the config file hostapd.conf:
interface=wlan0
country_code=US ssid=WIFITEST wpa_passphrase=12345678 ctrl_interface=/var/run/hostapd
logger_stdout=-1
logger_stdout_level=0
driver=nl80211
hw_mode=a
ht_capab=[HT40+]
ieee80211ac=1
require_ht=1
ieee80211n=1
require_vht=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
I'm attaching the output of iw list:
iw list Wiphy mwiphy0 max # scan SSIDs: 10 max scan IEs length: 256 bytes max # sched scan SSIDs: 10 max # match sets: 10 max # scan plans: 3 max scan plan interval: -1 max scan plan iterations: 100 Fragmentation threshold: 0 RTS threshold: 0 Retry short long limit: 7 Coverage class: 0 (up to 0m) Device supports AP-side u-APSD. Device supports T-DLS. Supported Ciphers: * WEP40 (00-0f-ac:1) * WEP104 (00-0f-ac:5) * TKIP (00-0f-ac:2) * CCMP-128 (00-0f-ac:4) * WPI-SMS4 (00-14-72:1) * CMAC (00-0f-ac:6) * GMAC-256 (00-0f-ac:12) * GCMP-128 (00-0f-ac:8) * GCMP-256 (00-0f-ac:9) * CCMP-256 (00-0f-ac:10) Available Antennas: TX 0x3 RX 0x3 Configured Antennas: TX 0x1 RX 0x1 Supported interface modes: * managed * AP * monitor * P2P-client * P2P-GO Band 1: Capabilities: 0x17ff RX LDPC HT20/HT40 SM Power Save disabled RX Greenfield RX HT20 SGI RX HT40 SGI TX STBC RX STBC 3-streams HT Delayed Block Ack Max AMSDU length: 3839 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: No restriction (0x00) HT TX/RX MCS rate indexes supported: 0-15, 32 Bitrates (non-HT): * 1.0 Mbps * 2.0 Mbps * 5.5 Mbps * 11.0 Mbps * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps Frequencies: * 2412 MHz [1] (20.0 dBm) * 2417 MHz [2] (20.0 dBm) * 2422 MHz [3] (20.0 dBm) * 2427 MHz [4] (20.0 dBm) * 2432 MHz [5] (20.0 dBm) * 2437 MHz [6] (20.0 dBm) * 2442 MHz [7] (20.0 dBm) * 2447 MHz [8] (20.0 dBm) * 2452 MHz [9] (20.0 dBm) * 2457 MHz [10] (20.0 dBm) * 2462 MHz [11] (20.0 dBm) * 2467 MHz [12] (disabled) * 2472 MHz [13] (disabled) * 2484 MHz [14] (disabled) Band 2: Capabilities: 0x17ff RX LDPC HT20/HT40 SM Power Save disabled RX Greenfield RX HT20 SGI RX HT40 SGI TX STBC RX STBC 3-streams HT Delayed Block Ack Max AMSDU length: 3839 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: No restriction (0x00) HT TX/RX MCS rate indexes supported: 0-15, 32 VHT Capabilities (0x339001b0): Max MPDU length: 3895 Supported Channel Width: neither 160 nor 80+80 RX LDPC short GI (80 MHz) TX STBC MU Beamformee RX antenna pattern consistency TX antenna pattern consistency VHT RX MCS set: 1 streams: not supported 2 streams: not supported 3 streams: not supported 4 streams: not supported 5 streams: not supported 6 streams: not supported 7 streams: not supported 8 streams: not supported VHT RX highest supported: 390 Mbps VHT TX MCS set: 1 streams: MCS 0-9 2 streams: MCS 0-9 3 streams: not supported 4 streams: not supported 5 streams: not supported 6 streams: not supported 7 streams: not supported 8 streams: not supported VHT TX highest supported: 780 Mbps Bitrates (non-HT): * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps Frequencies: * 5180 MHz [36] (20.0 dBm) * 5200 MHz [40] (20.0 dBm) * 5220 MHz [44] (20.0 dBm) * 5240 MHz [48] (20.0 dBm) * 5260 MHz [52] (20.0 dBm) (radar detection) * 5280 MHz [56] (20.0 dBm) (radar detection) * 5300 MHz [60] (20.0 dBm) (radar detection) * 5320 MHz [64] (20.0 dBm) (radar detection) * 5500 MHz [100] (20.0 dBm) (radar detection) * 5520 MHz [104] (20.0 dBm) (radar detection) * 5540 MHz [108] (20.0 dBm) (radar detection) * 5560 MHz [112] (20.0 dBm) (radar detection) * 5580 MHz [116] (20.0 dBm) (radar detection) * 5600 MHz [120] (20.0 dBm) (radar detection) * 5620 MHz [124] (20.0 dBm) (radar detection) * 5640 MHz [128] (20.0 dBm) (radar detection) * 5660 MHz [132] (20.0 dBm) (radar detection) * 5680 MHz [136] (20.0 dBm) (radar detection) * 5700 MHz [140] (20.0 dBm) (radar detection) * 5720 MHz [144] (20.0 dBm) (radar detection) * 5745 MHz [149] (20.0 dBm) * 5765 MHz [153] (20.0 dBm) * 5785 MHz [157] (20.0 dBm) * 5805 MHz [161] (20.0 dBm) * 5825 MHz [165] (20.0 dBm) Supported commands: * new_interface * set_interface * new_key * start_ap * new_station * set_bss * deauthenticate * disassociate * set_pmksa * del_pmksa * flush_pmksa * remain_on_channel * set_tx_bitrate_mask * frame * frame_wait_cancel * set_wiphy_netns * set_channel * tdls_mgmt * tdls_oper * start_sched_scan * connect * disconnect * channel_switch * set_qos_map * update_ft_ies Supported TX frame types: * managed: 0x50 0xd0 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-client: 0x50 0xd0 * P2P-GO: 0x10 0x30 0x50 0xb0 0xd0 Supported RX frame types: * managed: 0x40 0xd0 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * P2P-client: 0x40 0xd0 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 WoWLAN support: * wake up on anything (device continues operating normally) * wake up on magic packet * wake up on pattern match, up to 10 patterns of 1-20 bytes, maximum packet offset 50 bytes * can do GTK rekeying * wake up on GTK rekey failure software interface modes (can always be added): valid interface combinations: * #{ managed, AP, monitor, P2P-client, P2P-GO } <= 4, total <= 4, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz } Device has client inactivity timer. Device supports scan flush. Userspace should do OBSS scan and generate 20/40 coex reports Device supports TDLS channel switching Device supports randomizing MAC-addr in scans. Device supports randomizing MAC-addr in sched scans. Coalesce support: * Maximum 8 coalesce rules supported * Each rule contains upto 4 patterns of 1-20 bytes, maximum packet offset 100 bytes * Maximum supported coalescing delay 100 msecs Supported extended features: * [ SET_SCAN_DWELL ]: scan dwell setting
The firmware in use is the: nxp/sdsd8997_combo_v4.bin exactly the same as (mrvl/sdsd8997_combo_v4.bin)
The device-tree configuration looks as such:
&usdhc1 { pinctrl-names = "default", "state_100mhz", "state_200mhz"; pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_wlan>; pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_usdhc1_wlan>; pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_usdhc1_wlan>; bus-width = <4>; non-removable; vmmc-supply = <®_wifi_ac_en>; status = "okay"; #address-cells = <1>; #size-cells = <0>; sd8xxx-wlan { //drvdbg = <0x37>; drv_mode = <0x2>; cfg80211_wext = <0xf>; //uap_name = "wlan"; not loaded from dts, must be specified as module parameter max_vir_bss = <1>; cal_data_cfg = "nxp/cal_data.conf"; fw_name = "nxp/sdsd8997_combo_v4.bin"; reg_alpha2 = "US"; p2p_enh = <1>; auto_ds = <0>; inact_tmo = <3000>; gtk_rekey_offload = <1>; cfg80211_drcs = <0>; antcfg = <0x11>; };
The issue is that most of the clients cannot connect to the AP even though they support the 80211ac. I can see that they can connect for a while and even get a DHCP offer but after a short time they disconnect and in dmesg I see the following:
dnsmasq:
Mar 9 13:30:14 dnsmasq-dhcp[455]: DHCPDISCOVER(wlan0) 10.0.1.62 54:ef:33:fb:f7:e5 Mar 9 13:30:14 dnsmasq-dhcp[455]: DHCPOFFER(wlan0) 10.0.1.62 54:ef:33:fb:f7:e5
hostapd logs:
hostapd /etc/hostapd.conf rfkill: Cannot open RFKILL control device wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE wlan0: interface state COUNTRY_UPDATE->HT_SCAN wlan0: interface state HT_SCAN->ENABLED wlan0: AP-ENABLED wlan0: STA 54:ef:33:fb:f7:e5 IEEE 802.11: associated wlan0: AP-STA-CONNECTED 54:ef:33:fb:f7:e5 wlan0: STA 54:ef:33:fb:f7:e5 IEEE 802.11: disassociated wlan0: AP-STA-DISCONNECTED 54:ef:33:fb:f7:e5
dmesg issue:
[11442.950584] wlan: Starting AP [11442.951401] Get ht_cap from beacon ies: 0xe [11442.951597] Get vht_cap from beacon ies: 0x0 [11442.964272] wlan: AP started [11442.967163] Set AC=3, txop=47 cwmin=3, cwmax=7 aifs=1 [11442.969300] Set AC=2, txop=94 cwmin=7, cwmax=15 aifs=1 [11442.972104] Set AC=0, txop=0 cwmin=15, cwmax=63 aifs=3 [11442.977102] Set AC=1, txop=0 cwmin=15, cwmax=1023 aifs=7 [11474.872685] wlan: EVENT: MICRO_AP_STA_ASSOC 54:XX:XX:XX:f7:e5 [11520.418729] wlan: EVENT: MICRO_AP_STA_DEAUTH 54:XX:XX:XX:f7:e5 [11520.419438] wlan: deauth station 54:XX:XX:XX:f7:e5 [11520.425281] CMD_RESP: cmd 0xb5 error, result=0x1 [11520.430052] IOCTL failed: 000000005ad4fa5d id=0x20000, sub_id=0x2000d action=1, status_code=0x1
I'm not sure if this depends on client as some other clients seem to connect even though there is the issue in dmesg (mobile phones especially), but my linux laptop cannot connect at all. I also tried using another laptop with a dongle capable of doing 80211ac, but no luck.
With the 80211n and a 40MHz channel it works fine for all devices and I can reach a datarate of 120Mbps. Here is the correct dmesg output:
[11853.464190] wlan: Starting AP
[11853.465632] Get ht_cap from beacon ies: 0xe
[11853.479049] wlan: AP started
[11853.485565] Set AC=3, txop=47 cwmin=3, cwmax=7 aifs=1
[11853.487616] Set AC=2, txop=94 cwmin=7, cwmax=15 aifs=1
[11853.489762] Set AC=0, txop=0 cwmin=15, cwmax=63 aifs=3
[11853.491811] Set AC=1, txop=0 cwmin=15, cwmax=1023 aifs=7
[11866.337368] wlan: EVENT: MICRO_AP_STA_ASSOC 54:XX:XX:XX:f7:e5
Do you have any suggestions? Am I missing anything here?
Thank you!