WFA Certification for NXP-based Wireless Modules on i.MX 8M Quad EVK Running Linux OS
Document ID: UM11560
Revision: 10.0
Date: 3 July 2025
Document Information
>Information | Content |
---|---|
Keywords | Wi-Fi Alliance (WFA), certification, NXP-based wireless modules, i.MX 8M Quad EVK |
Abstract | Provides the step-by-step procedure of WFA certification for NXP-based wireless modules on i.MX 8M Quad EVK running Linux OS. |
1 About this document
1.1 Purpose and scope
This document describes the test setup and procedure used for WFA certification of Wi-Fi features like 802.11ax, 802.11ac, 802.11n, protected management frames (PMF), WPA3, and security vulnerability detection of NXP-based wireless devices. This document applies to NXP-based wireless modules connected to i.MX 8M Quad EVK running Linux OS, and configured as a station (STA). The instructions apply to other similar platforms and wireless devices.
The users should be familiar with [1] and [2].
1.2 Considerations
The readers should have some knowledge of Wi-Fi terminologies and certification. The document is based on the latest version of WFA test plan.
2 Test setup
Figure 1 illustrates the test setup.
[Diagram: A network diagram showing the test setup. Components include a Radius Server, Ethernet Switch (Test Network), Wireless Sniffer, WFA EMT, multiple Test Bed Access Points (TB AP #1 to #5), multiple Test Bed Stations (TB STA #1 to #5), an APULT, an STAUT, a Sigma PC End Point, an Ethernet Switch (Control Network), a Sigma AP Control Agent, and a Sigma UCC. Connections are shown via lines and wireless symbols.]
3 WFA certification test procedure
This section shows the sequence of operations to run in order to test the Wi-Fi features.
3.1 Set up the serial console
Set up the test. See Section 2.
Follow these steps to setup the serial console and access the i.MX 8M Quad device terminal:
- Open the serial console and login into the device
ubuntu@ubuntu-desktop:/# sudo minicom -s -D /dev/ttyUSBx
ttyUSB0
or ttyUSB01
are the serial devices. The minicom setup configuration is given below:
A Serial Device : /dev/ttyUSBx
E Bps/Par/Bits : 115200 8N1
F Hardware Flow Control : No
G Software Flow Control : No
Note: The baud rate is set to 115200 in the given minicom setup configuration.
- Save and exit.
3.2 Copy the required files
- Connect the device to the control network
- Give the control network IP to the wired interface
- Use SCP to copy NXP_WTS_AGENT_IMX_bin repository to i.MX 8M Quad EVK board.
The command on Linux host is as follows:
# scp -r <absolute_path>/NXP_WTS_AGENT_IMX_bin root@192.168.X.X:/home/root/
Where 192.168.X.X is the board IP which you set in the previous step.
- Set the permission to the files within NXP_WTS_AGENT_IMX_bin repository copied to i.MX 8M Quad EVK board using the command:
chmod 777 -Rf *
- Copy the driver file set [bin_wlan/*] to NXP_WTS_AGENT_IMX_bin repository
- Copy the firmware file set [FW_Image/*] to /lib/firmware/nxp/repository of i.MX 8M Quad EVK board
3.3 Cross compilation of WTS DUT agent
This section shows how to cross compile the certification agent for Linux Yocto.
- For how to set up the toolchain, refer to the section i.MX 8M evaluation platform with Yocto in [3].
- Extract the content of the zip file.
ubuntu@ubuntu-desktop:/# unzip NXP_WTS_QTT_AGENT_R2_1.zip
- Source the toolchain.
ubuntu@ubuntu-desktop:/# source /opt/fsl-imx-wayland/5.10-hardknott/environment-setup-cortexa53-crypto-poky-linux
- Go to WTS-R-2.1 directory.
ubuntu@ubuntu-desktop:/# cd WTS-R-2.1/
- Extract the content of the zip file.
ubuntu@ubuntu-desktop:/# unzip NXP_WTS_AGENT_SRC_R2.1.zip
- Open Makefile.inc file and disable static compile.
ubuntu@ubuntu-desktop:/# gedit Makefile.inc
#CC = gcc
- Compile the source code.
ubuntu@ubuntu-desktop:/# make
At the end of the compilation, the directory NXP_WTS_AGENT_IMX_bin is created at the current path. The files in NXP_WTS_AGENT_IMX_bin directory are used on the target android platform.
3.4 Load the driver
Use the cd
command to go to NXP_WTS_AGENT_IMX_bin repository where the driver files are located on i.MX board.
Note: By default the turbo mode is enabled in the firmware. But turbo mode must be disabled for all the certification programs because turbo mode requires to update wmm parameters as per the specification. See Section 3.4.1.
Run the shell script load.sh
script to install the driver located in NXP_WTS_AGENT_IMX_bin repository.
./load.sh
Note: The shell script changes with the device and respective features being tested. Refer to the program specific data for the script to use.
Check the version of the build with the following command:
./mlanutl mlan0 version
3.4.1 Disable Turbo mode
- Edit
turbo_mode.conf
configuration file to change the value for turbo mode enablement.
#File: turbo_mode.conf
## WMM turbo mode config command
turbo mode set={
# do NOT change this line
CmdCode=0x0016
Action:2=1
# 1
OID:2=0x27
Size:2=128
Value:128=5
# 1
SET
# OID WMM TURBO MODE
Enable turbo mode 1; 2
Enable turbo mode 2; otherwise,
disable turbo mode
}
- Use
mlanutl
utility to update the settings for turbo mode
Command syntax:
./mlanutl <wireless interface> hostcmd <conf file name> <config structure name>
Command example:
root@imx8mnevk:~# ./mlanutl mlan0 hostcmd config/turbo_mode.conf turbo_mode_set
Command output example:
HOSTCMD RESP: CmdCode=0x16, Size=0x8e, SeqNum=0x26, Result=0000
payload: len=134
01 00 27
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 80 00 05 00 00 00 00 00 00 00 00 00
00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
3.5 Start Sigma
Sigma automation test suite formerly named Wi-Fi Test Suite (WTS) is an automation frame work provided by Wi-Fi Alliance. All the test bed devices including Access Points, test bed STAs, Sniffers and Traffic generator are controlled through the Unified CAPI (Control API) Console (UCC). The CA and DUT control agents (wfa_ca and wfa_dut) are components of the automation test suite.
3.5.1 Start Sigma for the DUT agent (wfa_dut)
- Open an ssh terminal to access the i.MX 8M Quad EVK board
- Go to NXP_WTS_AGENT_IMX_bin repository where you have copied wfa_dut and wfa_ca agents earlier
- Get the DUT agent version
wfa_dut -v (version)
- Run the command to start wfa_dut DUT agent:
Syntax:./wfa_dut <interface> <dut_port> <program_index>
Parameter | Description |
---|---|
interface | Interface name |
dut_port | Port number for the DUT |
program_index | Program index value. See Table 2. |
Note: Refer to the program index table to parse the program index of the certification program to execute.
Example
./wfa_dut lo 8000 3 // starts VHT-STAUT program for DUT port number 8000 and lo interface
3.5.2 Start Sigma for the CA control agent (wfa_ca)
- Open another ssh terminal
- Go to NXP_WTS_AGENT_IMX_bin repository where you have copied wfa_ca component files earlier
- Run the command to start wfa_ca CA agent:
Syntax:./wfa_ca.sh <control interface>
Parameter | Description |
---|---|
control interface | Network control interface name |
Example
./ca.sh eth0 // starts the control agent for eth0
4 Certification program execution
This section shows how to execute the certification programs for the set of Wi-Fi features.
4.1 11AX/6E certification program
11AX/6E certification program is used to test the compliance of 802.11ax/6E Wi-Fi feature.
- Use the
cd
command to go to NXP_WTS_AGENT_IMX_bin directory where the driver files are located. See Section 3.2. - Run the shell script to load the driver
/load.sh
- Start Sigma for the DUT agent
./wfa dut lo 8000 1
- Start Sigma for the CA agent
./ca.sh eth0
4.2 11AC certification program
11AC certification program is used to test the compliance of 802.11ac Wi-Fi feature.
- Use the
cd
command to go to NXP_WTS_AGENT_IMX_bin repository where the driver files are located. See Section 3.2. - Run the shell script
./load.sh
to load the driver
/load.sh
- Start Sigma for the DUT agent
./wfa dut lo 8000 3
- Start Sigma for the CA agent
./ca.sh eth0
4.3 11N certification program
11N certification program is used to test the compliance of 802.11n Wi-Fi feature
- Use the
cd
command to go to NXP_WTS_AGENT_IMX_bin repository where the driver files are located. See Section 3.2. - Run the shell script
./load.sh
to load the driver
./load.sh
- Start Sigma for the DUT agent
./wfa dut lo 8000 7
- Start Sigma for the CA agent
/ca.sh eth0
Note: The following commands need to be executed manually before running the test cases N-5.2.2 and N-5.2.48.
4.4 WPA3 certification program
WPA3 pre-cert program is used to test the compliance of WPA3 Wi-Fi feature
- Use the
cd
command to go to NXP_WTS_AGENT_IMX_bin repository where the driver files are located. See Section 3.2. - Run the shell script
./load.sh
to load the driver
/load.sh
- Start Sigma for the DUT agent
./wfa_dut lo 8000 15
- Start Sigma for the CA agent
./ca.sh eth0
4.5 PMF certification program
PMF certification program is used to test the compliance of PMF Wi-Fi feature
4.5.1 Test with WTS tool
- Use the
cd
command to go to NXP_WTS_AGENT_IMX_bin repository where the driver files are located. See Section 3.2 "Copy the required files". - Run the shell script
./load.sh
to load the driver
/load.sh
- Start Sigma for the DUT agent
./wfa_dut lo 8000 11
- Start Sigma for the CA agent
/ca.sh eth0
4.5.2 Test with Quicktrack tool
- Download NXP_WTS_QTT_AGENT_R2_1 source code from [4].
- Unzip the downloaded source code and navigate to QTT-R-2.1 source code.
- Cross-compile the NXP_Linux_QTT_ControlApp_R2.1 for your platform.
- Copy the cross-compiled app binary on your platform.
- Copy the downloaded source code to /home/root directory on the i.MX 8M platform
- Create wpa_supplicant directory in etc directory
mkdir /etc/wpa_supplicant
- Copy wpa_supplicant binary in /etc/wpa_supplicant/directory
cp /usr/sbin/wpa_supplicant /etc/wpa_supplicant/
- Start the agent
./app -p 9004
- Assign the IP address to i.MX 8M platform as per the QTT configuration.
4.6 SVD (VU) certification program
SVD (VU) certification program is used to test the compliance of security vulnerability detection Wi-Fi feature.
Follow the steps below to test with Quicktrack tool.
- Download NXP_WTS_QTT_AGENT_R2_1 source code from [4].
- Unzip the downloaded source code and navigate to QTT-R-2.1 source code.
- Cross-compile the NXP_Linux_QTT_ControlApp_R2.1 for your platform.
- Copy the cross-compiled app binary on your platform.
- Create wpa_supplicant directory in etc directory
mkdir /etc/wpa_supplicant
- Copy wpa_supplicant binary in /etc/wpa_supplicant/directory
cp /usr/sbin/wpa_supplicant /etc/wpa_supplicant/
- Start the agent
./app -p 9004
- Assign the IP address to i.MX 8M platform as per the QTT configuration.
5 Abbreviations
>Abbreviation | Description |
---|---|
AP | Access point |
CA | Control agent |
CAPI | Control API |
DHCP | Dynamic host configuration procedure |
DUT | Device under test |
PMF | Protected management frames |
QTT | Quick track tool |
SAE | Simultaneous authentication of equals |
STA | Station |
STAUT | Station under test |
SVD | Security vulnerability detection |
UCC | Unified control API (CAPI) console |
WFA | Wi-Fi Alliance |
WTS | Wi-Fi Test Suite |
6 References
- Reference manual – RM00297: Linux Software Reference Manual for NXP Wireless Connectivity [link]
- User manual – UM11483: Getting Started with NXP-based Wireless Modules on i.MX 8M Quad EVK Running Linux OS [link]
- User manual – UM11675: How to Download and Build NXP Wi-Fi Drivers [link]
- Software – NXP_WTS_QTT_AGENT_R2_1 source code on NXP website [link]
7 Contact information
Use the following links for more product details, queries and support.
- Home page: www.nxp.com
- Web support: nxp.com/support
- NXP community: community.nxp.com
- iMX community: community.nxp.com/community/imx
8 Note about the source code in the document
The example code shown in this document has the following copyright and BSD-3-Clause license:
Copyright 2021-2025 NXP Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials must be provided with the distribution.
- Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9 Revision history
>Document ID | Date | Description |
---|---|---|
UM11560 v.10 | 3 July 2025 | Section 4.5.2 "Test with Quicktrack tool": updated. Section 4.6 "SVD (VU) certification program": updated. Section 6 "References": updated. |
UM11560 v.9.0 | 25 September 2024 | Section 3.3 "Cross compilation of WTS DUT agent": updated. Section 4.1 "11AX/6E certification program": renamed 802.11ax as 802.11ax/6 E, renamed 11AX as 11AX/6E, and renamed the shell script as load.sh. Section 4.2 "11AC certification program": renamed the shell script as load.sh. Section 4.3 "11N certification program": renamed the shell script as load.sh. |
UM11560 v.8.0 | 26 June 2023 | Section 6 "References": added UM11675 Section 3.1 "Set up the serial console": added a note Overall document: changed the directory name NXP_WTS_AGENT_U16_bin to NXP_WTS_AGENT_IMX_bin Section 3.3 "Cross compilation of WTS DUT agent": added the section Section 3.4 "Load the driver": updated the first note Section 3.4.1 "Disable Turbo mode": updated Section 3.5.1 "Start Sigma for the DUT agent (wfa_dut)": updated the information about the DUT version |
UM11560 v.7.0 | 20230330 | Section 4.3 "11N certification program": removed the content after the note Section 8 "Note about the source code in the document": added the section |
UM11560 v.6.0 | 15 December 2022 | Section 3.4 "Load the driver": updated the note Section 3.5.1 "Start Sigma for the DUT agent (wfa_dut)": added a note after the table |
UM11560 v.5.0 | 29 September 2022 | Section 3.5.1 "Start Sigma for the DUT agent (wfa_dut)": updated the example Section 4.2 "11AC certification program": changed the program index to 3 Section 4.3 "11N certification program": changed the program index to 7 Section 4.4 "WPA3 certification program": changed the program index to 15 Section 4.5.1 "Test with WTS tool": changed the program index to 11 |
UM11560 v.4.0 | 29 March 2022 | Section 3.5.1 "Start Sigma for the DUT agent (wfa_dut)": updated Table 2 "WTS program index values" Section 4.5 "PMF certification program": moved the content to Section 4.5.1 "Test with WTS tool" Section 4.5.2 "Test with Quicktrack tool": added Section 4.6 "SVD (VU) certification program": updated Section 5 "Abbreviations": added QTT |
UM11560 v.3.0 | 14 December 2021 | Extended the scope to NXP-based wireless modules Section 1.1 "Purpose and scope": updated Section 6 "References": updated the links to the documents on NXP website Section 1.2 "Considerations": added the last sentence |
UM11560 v.2.0 | 21 September 2021 | Table 2 "WTS program index values": updated Section 4.1 "11AX/6E certification program": added |
UM11560 v.1.0 | 22 February 2021 | Initial version |
Legal information
Definitions
Draft - A draft status on a document indicates that the content is still under internal review and subject to formal approval, which may result in modifications or additions. NXP Semiconductors does not give any representations or warranties as to the accuracy or completeness of information included in a draft version of a document and shall have no liability for the consequences of use of such information.
Disclaimers
Limited warranty and liability - Information in this document is believed to be accurate and reliable. However, NXP Semiconductors does not give any representations or warranties, expressed or implied, as to the accuracy or completeness of such information and shall have no liability for the consequences of use of such information. NXP Semiconductors takes no responsibility for the content in this document if provided by an information source outside of NXP Semiconductors.
In no event shall NXP Semiconductors be liable for any indirect, incidental, punitive, special or consequential damages (including - without limitation - lost profits, lost savings, business interruption, costs related to the removal or replacement of any products or rework charges) whether or not such damages are based on tort (including negligence), warranty, breach of contract or any other legal theory.
Notwithstanding any damages that customer might incur for any reason whatsoever, NXP Semiconductors' aggregate and cumulative liability towards customer for the products described herein shall be limited in accordance with the Terms and conditions of commercial sale of NXP Semiconductors.
Right to make changes - NXP Semiconductors reserves the right to make changes to information published in this document, including without limitation specifications and product descriptions, at any time and without notice. This document supersedes and replaces all information supplied prior to the publication hereof.
Suitability for use NXP Semiconductors products are not designed, authorized or warranted to be suitable for use in life support, life-critical or safety-critical systems or equipment, nor in applications where failure or malfunction of an NXP Semiconductors product can reasonably be expected to result in personal injury, death or severe property or environmental damage. NXP Semiconductors and its suppliers accept no liability for inclusion and/or use of NXP Semiconductors products in such equipment or applications and therefore such inclusion and/or use is at the customer's own risk.
Applications - Applications that are described herein for any of these products are for illustrative purposes only. NXP Semiconductors makes no representation or warranty that such applications will be suitable for the specified use without further testing or modification.
Customers are responsible for the design and operation of their applications and products using NXP Semiconductors products, and NXP Semiconductors accepts no liability for any assistance with applications or customer product design. It is customer's sole responsibility to determine whether the NXP Semiconductors product is suitable and fit for the customer's applications and products planned, as well as for the planned application and use of customer's third party customer(s). Customers should provide appropriate design and operating safeguards to minimize the risks associated with their applications and products.
NXP Semiconductors does not accept any liability related to any default, damage, costs or problem which is based on any weakness or default in the customer's applications or products, or the application or use by customer's third party customer(s). Customer is responsible for doing all necessary testing for the customer's applications and products using NXP Semiconductors products in order to avoid a default of the applications and the products or of the application or use by customer's third party customer(s). NXP does not accept any liability in this respect.
Terms and conditions of commercial sale
NXP Semiconductors products are sold subject to the general terms and conditions of commercial sale, as published at https://www.nxp.com/profile/terms, unless otherwise agreed in a valid written individual agreement. In case an individual agreement is concluded only the terms and conditions of the respective agreement shall apply. NXP Semiconductors hereby expressly objects to applying the customer's general terms and conditions with regard to the purchase of NXP Semiconductors products by customer.
Export control
This document as well as the item(s) described herein may be subject to export control regulations. Export might require a prior authorization from competent authorities.
Suitability for use in non-automotive qualified products
Unless this document expressly states that this specific NXP Semiconductors product is automotive qualified, the product is not suitable for automotive use. It is neither qualified nor tested in accordance with automotive testing or application requirements. NXP Semiconductors accepts no liability for inclusion and/or use of non-automotive qualified products in automotive equipment or applications.
In the event that customer uses the product for design-in and use in automotive applications to automotive specifications and standards, customer (a) shall use the product without NXP Semiconductors' warranty of the product for such automotive applications, use and specifications, and (b) whenever customer uses the product for automotive applications beyond NXP Semiconductors' specifications such use shall be solely at customer's own risk, and (c) customer fully indemnifies NXP Semiconductors for any liability, damages or failed product claims resulting from customer design and use of the product for automotive applications beyond NXP Semiconductors' standard warranty and NXP Semiconductors' product specifications.
HTML publications
An HTML version, if available, of this document is provided as a courtesy. Definitive information is contained in the applicable document in PDF format. If there is a discrepancy between the HTML document and the PDF document, the PDF document has priority.
Translations
A non-English (translated) version of a document, including the legal information in that document, is for reference only. The English version shall prevail in case of any discrepancy between the translated and English versions.
Security
Customer understands that all NXP products may be subject to unidentified vulnerabilities or may support established security standards or specifications with known limitations. Customer is responsible for the design and operation of its applications and products throughout their lifecycles to reduce the effect of these vulnerabilities on customer's applications and products. Customer's responsibility also extends to other open and/or proprietary technologies supported by NXP products for use in customer's applications. NXP accepts no liability for any vulnerability. Customer should regularly check security updates from NXP and follow up appropriately. Customer shall select products with security features that best meet rules, regulations, and standards of the intended application and make the ultimate design decisions regarding its products and is solely responsible for compliance with all legal, regulatory, and security related requirements concerning its products, regardless of any information or support that may be provided by NXP.
NXP has a Product Security Incident Response Team (PSIRT) (reachable at PSIRT@nxp.com) that manages the investigation, reporting, and solution release to security vulnerabilities of NXP products.
NXP B.V. is not an operating company and it does not distribute or sell products.
Trademarks
Notice: All referenced brands, product names, service names, and trademarks are the property of their respective owners.
NXP wordmark and logo are trademarks of NXP B.V.