aic8800D40L
Read time: 20 minute(s)
本文主要描述爱科微 aic8800D40L 芯片的 SDIO WiFi 驱动配置和基本的测试方法。
内核配置
- 驱动选择在 Kernel 中打开需要使用的 aic8800D40L 驱动,并将模块配置为
modules
方式,支持编译到内核里。Device Drivers > Network device support > Wireless LAN [*] AIC wireless Support (/etc/firmware) Firmware & config file path <M> AIC8800 wlan Support < > AIC8800 bluetooth Support
SDK 配置
添加相关工具包
在命令行中输入以下命令进行 SDK
菜单配置
make menuconfig
Third-party packages → wpa_supplicant
[*] iperf3 --->
[*] wpa_supplicant --->
--- wpa_supplicant
[ ] use codeblockbuilt binary instead of building from source
[*] Enable nl80211 support
[*] Enable wext (decodeblockcated)
[ ] Enable wired support
[ ] Enable IBSS RSN
[*] Enable AP mode
[ ] Enable Wi-Fi Display
[ ] Enable mesh networking
[*] Enable autoscan
-*- Enable EAP
[*] Enable HS20
[*] Enable syslog support
[*] Enable WPS
[*] Enable WPA3 support
[*] Install wpa_cli binary
[*] Install wpa_client shared library
[*] Install wpa_passphrase binary
-*- Enable the Unix-socket control interface
[ ] Enable support for the DBus control interface
[*] wireless tools --->
--- wireless tools
[ ] use codeblockbuilt binary instead of building from source
[*] Install shared library
[*] hostapd --->
--- hostapd
[ ] use codeblockbuilt binary instead of building from source
[*] Enable hostap driver
[*] Enable nl80211 driver
[*] Enable wired driver
[*] Enable ACS
[*] Enable EAP
[*] Enable WPS
[*] Enable WPA3 support
[*] Enable VLAN support
[*] Enable dynamic VLAN support
[*] Use netlink-based API for VLAN operations
[*] AIC8800 firmware ---
加载与功能验证
加载
编译烧录程序,Luban 开机脚本默认自动加载 ko 文件,所以上电后会默认自动加载 aic8800
相关驱动。
lsmod
Module Size Used by Not tainted
aic8800_fdrv 1160338 0
aic8800_bsp 247946 1 aic8800_fdrv
以下为部分开机加载驱动日志:
[ 9.979327] aicbsp_init
[ 9.981833] RELEASE_DATE:2024_0327_3561b08f
[ 9.986164] aicbsp_resv_mem_init
[ 10.220914] AICWFDBG(LOGTRACE) >>> rwnx_mod_init()
[ 10.225725] AICWFDBG(LOGINFO) rwnx v6.4.3.0 - - 241c091M (master)
[ 10.231881] AICWFDBG(LOGINFO) RELEASE_DATE:2024_0327_3561b08f
[ 10.237846] AICWFDBG(LOGTRACE) rwnx_init_cmd_array Enter
[ 10.243343] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[0]:00000000220ea075
......
[ 10.401639] aicbsp: aicbsp_set_subsys, subsys: AIC_WIFI, state to: 1
[ 10.408037] aicbsp: aicbsp_set_subsys, power state change to 1 dure to AIC_WIFI
[ 10.415347] aicbsp: aicbsp_platform_power_on
[ 10.448193] aicbsp: aicbsp_sdio_probe:1 vid:0xC8A1 did:0x0082
[ 10.454423] aicbsp: aicbsp_sdio_probe:2 vid:0xC8A1 did:0x0182
[ 10.460344] aicbsp: aicbsp_sdio_probe after replace:1
[ 10.465409] AICWFDBG(LOGINFO) aicwf_sdio_chipmatch USE AIC8800D80
[ 10.471642] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[ 10.478202] aicbsp: aicwf_sdio_reg_init
[ 10.489374] AICWFDBG(LOGINFO) aicbsp: aicbsp_driver_fw_init, chip rev: 7
[ 10.496153] rwnx_load_firmware :firmware path = /etc/firmware/fw_patch_table_8800d80_u02.bin
[ 10.507202] file md5:0c9bf9c9c10f7a90a22a4c35fa58c967
[ 10.515259] rwnx_plat_bin_fw_upload_android
[ 10.519536] rwnx_load_firmware :firmware path = /etc/firmware/fw_adid_8800d80_u02.bin
[ 10.530368] file md5:f546881a81b960d89a672578eb45a809
[ 10.541469] rwnx_plat_bin_fw_upload_android
[ 10.545679] rwnx_load_firmware :firmware path = /etc/firmware/fw_patch_8800d80_u02.bin
[ 10.563322] file md5:35d137b8a76daaeb4f5034df8e15bcde
[ 10.634190] aicbt_patch_table_load bt btmode[3]:5
[ 10.639155] aicbt_patch_table_load bt uart_baud[3]:1500000
[ 10.644820] aicbt_patch_table_load bt uart_flowctrl[3]:1
[ 10.650344] aicbt_patch_table_load bt lpm_enable[3]:0
[ 10.655587] aicbt_patch_table_load bt tx_pwr[3]:28463
[ 10.681804] aicbsp: bt patch version: - Mar 07 2024 14:29:05 - git f94a3e4
[ 10.688845] rwnx_plat_bin_fw_upload_android
[ 10.693080] rwnx_load_firmware :firmware path = /etc/firmware/fmacfw_8800d80_u02.bin
[ 10.771541] file md5:13e6f0e58aae342d260d8672ab61c31f
[ 11.018385] rd_version_val=06090101
[ 11.041012] AICWFDBG(LOGDEBUG) aicwf_sdio_probe:1
[ 11.045757] AICWFDBG(LOGDEBUG) Class=7
[ 11.049561] AICWFDBG(LOGDEBUG) sdio vendor ID: 0xc8a1
[ 11.054616] AICWFDBG(LOGDEBUG) sdio device ID: 0x0082
[ 11.059709] AICWFDBG(LOGDEBUG) Function#: 1
[ 11.063905] AICWFDBG(LOGINFO) aicwf_sdio_chipmatch USE AIC8800D80
[ 11.070127] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[ 11.076701] aicbsp: sdio_err:<aicwf_sdio_bus_pwrctl,1380>: bus down
[ 11.082977] aicsdio: aicwf_sdio_reg_init
[ 11.093982] AICWFDBG(LOGINFO) sdio ready
[ 11.100948] aicbsp: aicbsp_resv_mem_alloc_skb, alloc resv_mem_txdata succuss, id: 0, size: 98304
[ 11.113412] AICWFDBG(LOGINFO) sdio_bustx_thread the policy of current thread is:1
[ 11.120945] AICWFDBG(LOGINFO) sdio_bustx_thread the rt_priority of current thread is:1
[ 11.128913] AICWFDBG(LOGINFO) sdio_bustx_thread the current pid is:134
[ 11.137328] AICWFDBG(LOGTRACE) >>> rwnx_platform_init()
[ 11.142572] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_init()
[ 11.147865] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[ 11.154408] AICWFDBG(LOGINFO) rwnx_cfg80211_init sizeof(struct rwnx_hw):14032
[ 11.161850] AICWFDBG(LOGTRACE) >>> rwnx_init_aic()
[ 11.166691] AICWFDBG(LOGTRACE) >>> rwnx_cmd_mgr_init()
[ 11.172679] AICWFDBG(LOGINFO) sdio_busrx_thread the policy of current thread is:1
[ 11.180232] AICWFDBG(LOGINFO) sdio_busrx_thread the rt_priority of current thread is:1
[ 11.188173] AICWFDBG(LOGINFO) sdio_busrx_thread the current pid is:135
[ 11.203855] AICWFDBG(LOGINFO) aicwf_codeblockalloc_txq_alloc size is diff will to be kzalloc
[ 11.212077] AICWFDBG(LOGINFO) aicwf_codeblockalloc_txq_alloc txq kzalloc successful
[ 11.220460] AICWFDBG(LOGTRACE) >>> rwnx_send_dbg_mem_read_req()
[ 11.226457] AICWFDBG(LOGTRACE) rwnx_send_msg (1025)DBG_MEM_READ_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 11.236609] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:00000000220ea075
[ 11.245363] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x401
[ 11.251673] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:00000000220ea075
[ 11.258802] AICWFDBG(LOGTRACE) >>> rwnx_send_dbg_mem_read_req()
[ 11.264751] AICWFDBG(LOGTRACE) rwnx_send_msg (1025)DBG_MEM_READ_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 11.274881] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:00000000220ea075
[ 11.283936] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x401
[ 11.291609] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:00000000220ea075
[ 11.298762] AICWFDBG(LOGINFO) FDRV chip_id=7, chip_sub_id=2!!
[ 11.304513] AICWFDBG(LOGTRACE) >>> rwnx_platform_on()
[ 11.309601] AICWFDBG(LOGINFO) userconfig file path:aic_userconfig_8800d80.txt
[ 11.316959] AICWFDBG(LOGINFO) ### Load file aic_userconfig_8800d80.txt
[ 11.323496] AICWFDBG(LOGINFO) rwnx_load_firmware :firmware path = /etc/firmware/aic_userconfig_8800d80.txt
[ 11.333448] AICWFDBG(LOGERROR) rwnx_load_firmware: aic_userconfig_8800d80.txt file failed to open
[ 11.342367] AICWFDBG(LOGERROR) wrong size of firmware file
[ 11.347909] AICWFDBG(LOGTRACE) rwnx_send_msg (124)MM_SET_STACK_START_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 11.358473] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:00000000220ea075
[ 11.369288] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x7c
[ 11.377353] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:00000000220ea075
[ 11.384462] AICWFDBG(LOGINFO) is 5g support = 1, vendor_info = 0x21
[ 11.390800] AICWFDBG(LOGTRACE) rwnx_send_msg (129)MM_GET_FW_VERSION_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 11.401284] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:00000000220ea075
[ 11.410938] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x81
[ 11.417262] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:00000000220ea075
[ 11.424359] AICWFDBG(LOGINFO) Firmware Version: zh Mar 07 2024 15:00:09 - ga004cf5
......
[ 13.796867] AICWFDBG(LOGINFO) rwnx_get_countrycode_channels support channel:1 2 3 4 5 6 7 8 9 10 11 12 13 14 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 144 149 153 157 161 165
[ 13.814996] ieee80211 phy0:
[ 13.814996] *******************************************************
[ 13.814996] ** CAUTION: USING PERMISSIVE CUSTOM REGULATORY RULES **
[ 13.814996] *******************************************************
[ 13.836696] AICWFDBG(LOGTRACE) >>> rwnx_send_me_chan_config_req()
[ 13.842825] AICWFDBG(LOGTRACE) rwnx_send_msg (5123)ME_CHAN_CONFIG_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 13.853133] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:00000000220ea075
[ 13.863477] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1403
[ 13.870113] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:00000000220ea075
[ 13.877245] AICWFDBG(LOGTRACE) >>> rwnx_dbgfs_register()
[ 13.882839] AICWFDBG(LOGINFO) rwnx_interface_add: wlan%d, 2, 10
[ 13.889173] AICWFDBG(LOGINFO) interface add:c0 4b 24 18 f9 5c
[ 13.921558] AICWFDBG(LOGINFO) New interface create wlan0
STA 模式测试
-
网络连接。
本文使用 wpa_supplicant 工具进行测试。先将 WiFi 信息写入 wpa_supplicant.conf 文件,然后用工具加入 WiFi,这是基于已知 WiFi 账号密码的情况下进行测试。更多 wpa_supplicant 工具使用方法,请查阅官方相关文档。touch /tmp/wpa_supplicant.conf wpa_passphrase my-test 12345678 > /tmp/wpa_supplicant.conf wpa_supplicant -B -d -i wlan0 -c /tmp/wpa_supplicant.conf udhcpc -i wlan0
-
网络通信测试。
执行完上述命令后,可看见路由分配了相应的 IP 地址给开发板。下面我们查看 IP 并测试与路由的通信情况。# ifconfig
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wlan0 Link encap:Ethernet HWaddr C0:4B:24:18:F9:5C inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1761 (1.7 KiB) TX bytes:876 (876.0 B)[aic@] # ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 data bytes [ 1311.689546] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x140b [ 1311.695761] AICWFDBG(LOGTRACE) >>> rwnx_rx_me_tx_credits_update_ind()64 bytes from 192.168.1.1: seq=0 ttl=64 time=28.158 ms 64 bytes from 192.168.1.1: seq=1 ttl=64 time=12.183 ms 64 bytes from 192.168.1.1: seq=2 ttl=64 time=5.197 ms 64 bytes from 192.168.1.1: seq=3 ttl=64 time=3.283 ms 64 bytes from 192.168.1.1: seq=4 ttl=64 time=6.780 ms 64 bytes from 192.168.1.1: seq=5 ttl=64 time=1.269 ms 64 bytes from 192.168.1.1: seq=6 ttl=64 time=12.256 ms 64 bytes from 192.168.1.1: seq=7 ttl=64 time=1.715 ms
-
性能测试。
使用iperf3
工具进行测试,可以用其他 PC 或 开发板创建服务器,本开发板当客户端进行收发测试。iperf3 -c 192.168.1.102
Connecting to host 192.168.1.102, port 5201[ 5] local 192.168.1.101 port 43004 connected to 192.168.1.102 port 5201[ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 5.02 MBytes 42.1 Mbits/sec 0 218 KBytes [ 5] 1.00-2.00 sec 5.03 MBytes 42.2 Mbits/sec 0 218 KBytes [ 5] 2.00-3.00 sec 4.97 MBytes 41.7 Mbits/sec 0 218 KBytes [ 5] 3.00-4.00 sec 5.03 MBytes 42.2 Mbits/sec 0 218 KBytes [ 5] 4.00-5.00 sec 5.03 MBytes 42.2 Mbits/sec 0 218 KBytes [ 5] 5.00-6.00 sec 5.28 MBytes 44.3 Mbits/sec 0 218 KBytes [ 5] 6.00-7.00 sec 4.85 MBytes 40.7 Mbits/sec 0 218 KBytes [ 5] 7.00-8.00 sec 5.22 MBytes 43.8 Mbits/sec 0 218 KBytes [ 5] 8.00-9.00 sec 5.03 MBytes 42.2 Mbits/sec 0 218 KBytes [ 5] 9.00-10.00 sec 5.03 MBytes 42.2 Mbits/sec 0 218 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 50.5 MBytes 42.4 Mbits/sec 0 sender [ 5] 0.00-10.00 sec 50.1 MBytes 42.0 Mbits/sec receiver iperf Done.
iperf3 -c 192.168.1.102 -R
Connecting to host 192.168.1.102, port 5201 Reverse mode, remote host 192.168.1.102 is sending [ 5] local 192.168.1.101 port 43008 connected to 192.168.1.102 port 5201[ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 3.69 MBytes 30.9 Mbits/sec [ 5] 1.00-2.00 sec 4.99 MBytes 41.9 Mbits/sec [ 5] 2.00-3.00 sec 4.71 MBytes 39.5 Mbits/sec [ 5] 3.00-4.00 sec 4.44 MBytes 37.2 Mbits/sec [ 5] 4.00-5.00 sec 4.29 MBytes 36.0 Mbits/sec [ 5] 5.00-6.00 sec 4.62 MBytes 38.8 Mbits/sec [ 5] 6.00-7.00 sec 4.54 MBytes 38.0 Mbits/sec [ 5] 7.00-8.00 sec 4.39 MBytes 36.8 Mbits/sec [ 5] 8.00-9.00 sec 4.73 MBytes 39.7 Mbits/sec [ 5] 9.00-10.00 sec 4.80 MBytes 40.3 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 45.2 MBytes 38.0 Mbits/sec sender [ 5] 0.00-10.00 sec 45.2 MBytes 37.9 Mbits/sec receiver iperf Done.
AP 模式测试
AP 模式使用 hostapd 工具进行测试。此处提供两个配置文件,udhcpd.conf 与 hostapd.conf,分别用作 DHCP 与 AP 模式配置。
-
hostapd.conf
interface=wlan0 ssid=ArtInChip-WiFI wpa=2 wpa_passphrase=88888888 wpa_key_mgmt=WPA-PSK channel=1 rsn_pairwise=CCMP driver=nl80211 logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 dump_file=/tmp/hostapd.dump ctrl_interface=/var/run/hostapd ctrl_interface_group=0 hw_mode=g beacon_int=100 dtim_period=2 max_num_sta=9 rts_threshold=2347 fragm_threshold=2346 macaddr_acl=0 auth_algs=3 ignore_broadcast_ssid=0 wmm_enabled=1 wmm_ac_bk_cwmin=4 wmm_ac_bk_cwmax=10 wmm_ac_bk_aifs=7 wmm_ac_bk_txop_limit=0 wmm_ac_bk_acm=0 wmm_ac_be_aifs=3 wmm_ac_be_cwmin=4 wmm_ac_be_cwmax=10 wmm_ac_be_txop_limit=0 wmm_ac_be_acm=0 wmm_ac_vi_aifs=2 wmm_ac_vi_cwmin=3 wmm_ac_vi_cwmax=4 wmm_ac_vi_txop_limit=94 wmm_ac_vi_acm=0 wmm_ac_vo_aifs=2 wmm_ac_vo_cwmin=2 wmm_ac_vo_cwmax=3 wmm_ac_vo_txop_limit=47 wmm_ac_vo_acm=0 ieee80211n=1 eapol_key_index_workaround=0 own_ip_addr=127.0.0.1
-
udhcpd.conf
start 192.168.1.2 end 192.168.1.254 interface wlan0
-
在开发板中应用配置。
hostapd -B -i wlan0 hostapd.conf ifconfig wlan0 192.168.1.1 udhcpd dhcpd.conf
-
使用其他 PC 或者开发板连接生成的热点,然后使用
iperf3
进行网络测试。iperf3 -c 192.168.1.2
Connecting to host 192.168.1.2, port 5201 [ 5] local 192.168.1.1 port 40220 connected to 192.168.1.2 port 5201 [ 1231.932051] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ 1231.938137] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ 1231.972810] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ 1231.978920] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ 1232.050321] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ 1232.056396] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ 1232.073773] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ 1232.079898] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x49 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 4.48 MBytes 37.6 Mbits/sec 0 212 KBytes [ 5] 1.00-2.00 sec 5.16 MBytes 43.2 Mbits/sec 0 212 KBytes [ 5] 2.00-3.00 sec 5.41 MBytes 45.4 Mbits/sec 0 212 KBytes [ 5] 3.00-4.00 sec 4.72 MBytes 39.6 Mbits/sec 0 212 KBytes [ 5] 4.00-5.00 sec 4.41 MBytes 37.0 Mbits/sec 0 212 KBytes [ 5] 5.00-6.00 sec 5.28 MBytes 44.3 Mbits/sec 0 212 KBytes [ 5] 6.00-7.00 sec 5.16 MBytes 43.3 Mbits/sec 0 212 KBytes [ 5] 7.00-8.00 sec 4.97 MBytes 41.7 Mbits/sec 0 212 KBytes [ 5] 8.00-9.00 sec 5.03 MBytes 42.3 Mbits/sec 0 212 KBytes [ 5] 9.00-10.00 sec 4.78 MBytes 40.1 Mbits/sec 0 212 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 49.4 MBytes 41.4 Mbits/sec 0 sender [ 5] 0.00-10.00 sec 49.0 MBytes 41.1 Mbits/sec receiver iperf Done.
iperf3 -c 192.168.1.2 -R
Connecting to host 192.168.1.2, port 5201 Reverse mode, remote host 192.168.1.2 is sending [ 5] local 192.168.1.1 port 40224 connected to 192.168.1.2 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 1.01 MBytes 8.43 Mbits/sec [ 5] 1.00-2.00 sec 1.23 MBytes 10.4 Mbits/sec [ 5] 2.00-3.00 sec 3.28 MBytes 27.5 Mbits/sec [ 5] 3.00-4.00 sec 3.38 MBytes 28.4 Mbits/sec [ 1255.405892] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_change_beacon() [ 1255.411945] AICWFDBG(LOGTRACE) rwnx_send_msg (7177)APM_SET_BEACON_IE_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0 [ 1255.422584] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:00000000e95e64c7 [ 1255.431740] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1c09 [ 1255.439036] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:00000000e95e64c7 [ 1255.446188] AICWFDBG(LOGTRACE) >>> rwnx_send_bcn_change() [ 1255.451621] AICWFDBG(LOGTRACE) rwnx_send_msg (64)MM_BCN_CHANGE_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0 [ 1255.461661] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:00000000e95e64c7 [ 1255.474005] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x40 [ 1255.480828] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:00000000e95e64c7 [ 5] 4.00-5.00 sec 1.05 MBytes 8.78 Mbits/sec [ 5] 5.00-6.00 sec 775 KBytes 6.35 Mbits/sec [ 5] 6.00-7.00 sec 1.12 MBytes 9.36 Mbits/sec [ 5] 7.00-8.00 sec 976 KBytes 7.99 Mbits/sec [ 5] 8.00-9.00 sec 1.17 MBytes 9.84 Mbits/sec [ 5] 9.00-10.00 sec 1.73 MBytes 14.5 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 15.9 MBytes 13.3 Mbits/sec sender [ 5] 0.00-10.00 sec 15.7 MBytes 13.1 Mbits/sec receiver iperf Done.