<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.voipac.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Voipac-sw</id>
	<title>Voipac Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.voipac.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Voipac-sw"/>
	<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=Special:Contributions/Voipac-sw"/>
	<updated>2026-05-04T11:34:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX93_Industrial_Debian&amp;diff=6048</id>
		<title>iMX93 Industrial Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX93_Industrial_Debian&amp;diff=6048"/>
		<updated>2026-02-26T10:31:58Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* Flashing the binaries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX93 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX93 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX93 Industrial Debian]]&lt;br /&gt;
[[Category:iMX91 Industrial Debian]]&lt;br /&gt;
[[Category:Debian]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page guides through the process of downloading the Debian source files for release (bookworm) and building images for the iMX93 Industrial Development Kit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the source files for this customized Debian, together with the recent changes made, can be inspected and downloaded at the [https://github.com/voipac/debian-imx-voipac Voipac GitHub] repository.&lt;br /&gt;
&lt;br /&gt;
== Cloning the project ==&lt;br /&gt;
Create a new directory for the project environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir ~/voipac-debian&lt;br /&gt;
cd ~/voipac-debian&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clone the iMX9x Industrial Debian Project into the host machine:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/voipac/debian-imx-voipac&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites  ==&lt;br /&gt;
&lt;br /&gt;
For Debian image building it is necessary to install docker [https://docs.docker.com/desktop/setup/install/linux/ubuntu/ installation] as whole procedure is done in virtualised environment.&lt;br /&gt;
&lt;br /&gt;
== Building the image ==&lt;br /&gt;
Voipac provides quick and simple-to-use option how to build an image by using [https://github.com/voipac/debian-imx-voipac/blob/master/build_debian_voipac.sh build_debian_voipac.sh] prepared script:&lt;br /&gt;
&lt;br /&gt;
This script automatically create Debian image for iMX93:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
MACHINE=imx93-voipac ./build_debian_voipac.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the u-boot build user will be asked for RAM Size. For basic kit configuration select option (1), for lite select 1G (option 2) and for pro and max configurations choose 2G option (option 3) as shown in below image.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot from 2025-01-29 08-48-33.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Locating output files ==&lt;br /&gt;
After the build process was completed, the freshly built output files are located in the root directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -la image.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prebuild images ==&lt;br /&gt;
Prebuild images can be downloaded at following [https://downloads.voipac.com/index.php?p=iMX93_Industrial_Development_Kit/module/software/debian/binaries link]&lt;br /&gt;
&lt;br /&gt;
== Flashing the binaries ==&lt;br /&gt;
At this point everything was prepared to flash the binaries. Follow the [[iMX93 Industrial Flashing Procedure|flashing procedure]] instructions to start the development kit with the compiled images.&lt;br /&gt;
&lt;br /&gt;
=== eMMC Flash Memory (default) ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b emmc_all flash_imx93_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b emmc_all flash_imx93_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b flash_imx93_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b sd_all flash_imx93_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
When image is flashed and board is booted default credentials can be either '''root/root''' or '''voipac/voipac'''.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Debian&amp;diff=6047</id>
		<title>iMX91 Industrial Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Debian&amp;diff=6047"/>
		<updated>2026-02-25T09:16:51Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* Flashing the binaries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Debian]]&lt;br /&gt;
[[Category:Debian]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page guides through the process of downloading the Debian source files for release (bookworm) and building images for the iMX91 Industrial Development Kit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the source files for this customized Debian, together with the recent changes made, can be inspected and downloaded at the [https://github.com/voipac/debian-imx-voipac Voipac GitHub] repository.&lt;br /&gt;
&lt;br /&gt;
== Cloning the project ==&lt;br /&gt;
Create a new directory for the project environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir ~/voipac-debian&lt;br /&gt;
cd ~/voipac-debian&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clone the iMX9x Industrial Debian Project into the host machine:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/voipac/debian-imx-voipac&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites  ==&lt;br /&gt;
&lt;br /&gt;
For Debian image building it is necessary to install docker [https://docs.docker.com/desktop/setup/install/linux/ubuntu/ installation] as whole procedure is done in virtualised environment.&lt;br /&gt;
&lt;br /&gt;
== Building the image ==&lt;br /&gt;
Voipac provides quick and simple-to-use option how to build an image by using [https://github.com/voipac/debian-imx-voipac/blob/master/build_debian_voipac.sh build_debian_voipac.sh] prepared script:&lt;br /&gt;
&lt;br /&gt;
This script automatically create Debian image for iMX91:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
MACHINE=imx91-voipac ./build_debian_voipac.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the u-boot build user will be asked for RAM Size. For basic kit configuration select option (1), for lite select 1G (option 2) and for pro and max configurations choose 2G option (option 3) as shown in below image.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot from 2025-01-29 08-48-33.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Locating output files ==&lt;br /&gt;
After the build process was completed, the freshly built output files are located in the root directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -la image.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prebuild images ==&lt;br /&gt;
Prebuild images can be downloaded at following [https://downloads.voipac.com/index.php?p=iMX91_Industrial_Development_Kit/module/software/debian/binaries link]&lt;br /&gt;
&lt;br /&gt;
== Flashing the binaries ==&lt;br /&gt;
At this point everything was prepared to flash the binaries. Follow the [[iMX91 Industrial Flashing Procedure|flashing procedure]] instructions to start the development kit with the compiled images.&lt;br /&gt;
There is a slight change for flashing compared to yocto binaries:&lt;br /&gt;
=== eMMC Flash Memory (default) ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b emmc_all flash_imx91_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b emmc_all flash_imx91_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b flash_imx91_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b sd_all flash_imx91_&amp;lt;type&amp;gt;.bin debian12_&amp;lt;type&amp;gt;.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
When image is flashed and board is booted default credentials can be either '''root/root''' or '''voipac/voipac'''.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Secure_Boot&amp;diff=6042</id>
		<title>iMX91 Industrial Secure Boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Secure_Boot&amp;diff=6042"/>
		<updated>2026-01-15T10:37:56Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:imx91 Industrial]]&lt;br /&gt;
[[Category:imx91 Industrial Software]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page provides a step-by-step guide to building and flashing a Yocto Project image with secure boot integration. These instructions apply to the imx91 Industrial Module.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Please inspect all the recent changes at [https://github.com/voipac/yocto-imx-voipac/blob/imx9-secure-boot/ Voipac GitHub repository] and start the custom build with the newest updates.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Additional information about the process could be found at [https://github.com/nxp-imx/uboot-imx/blob/lf_v2023.04/doc/imx/ahab/guides/mx8ulp_9x_secure_boot.txt NXP Github page].&lt;br /&gt;
&lt;br /&gt;
This build was verified on Ubuntu 20.04.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install docker package on the operating system&lt;br /&gt;
* Download the CST tool from [https://www.nxp.com/webapp/sps/download/license.jsp?colCode=IMX_CST_TOOL NXP website]&lt;br /&gt;
* Unpack it into a machine where Yocto will be compiled:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;/home/user/cst&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Navigate to the subdirectory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;/home/user/cst/keys&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Create a text file called '''''&amp;quot;serial&amp;quot;''''', which contains 8 digits. It will be used for the certificate serial numbers:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;echo 12345678 &amp;gt; serial&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Create a text file called '''''&amp;quot;key_pass.txt&amp;quot;''''', which contains two lines of a password repeated twice. This password will be used to protect the generated private keys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo my_secret_password &amp;gt;  key_pass.txt&lt;br /&gt;
echo my_secret_password &amp;gt;&amp;gt; key_pass.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generating keys ==&lt;br /&gt;
To generate the PKI tree, run the following command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ahab_pki_tree.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Complete the interactive questions. For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to use an existing CA key (y/n)?: n&lt;br /&gt;
Key type options (confirm targeted device supports desired key type):&lt;br /&gt;
Select the key type (possible values: rsa, rsa-pss, ecc)?: ecc&lt;br /&gt;
Enter length for elliptic curve to be used for PKI tree:&lt;br /&gt;
Possible values p256, p384, p521: p384&lt;br /&gt;
Enter the digest algorithm to use: sha384&lt;br /&gt;
Enter PKI tree duration (years): 20&lt;br /&gt;
Do you want the SRK certificates to have the CA flag set? (y/n)?: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate Super Root Key (SRK) table:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ../crts&lt;br /&gt;
../linux64/bin/srktool -a -d sha256 -s sha384 -t SRK1234table.bin -e SRK1234fuse.bin -f 1 -c SRK1_sha384_secp384r1_v3_usr_crt.pem,SRK2_sha384_secp384r1_v3_usr_crt.pem,SRK3_sha384_secp384r1_v3_usr_crt.pem,SRK4_sha384_secp384r1_v3_usr_crt.pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For the i.MX 93 SoC, the Message Digest algorithm (option —d) is sha256, while the Signature Digest algorithm (option -s) must match the option from the PKI generation.&lt;br /&gt;
&lt;br /&gt;
Create a file in root of cst directory called '''''&amp;quot;cfs_ahag.cfg&amp;quot;''''' with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Header&lt;br /&gt;
header_version=1.0&lt;br /&gt;
#Install SRK&lt;br /&gt;
srktable_file=SRK1234table.bin&lt;br /&gt;
srk_source=SRK1_sha384_secp384r1_v3_usr_crt.pem&lt;br /&gt;
srk_source_index=0&lt;br /&gt;
srk_source_set=OEM&lt;br /&gt;
srk_revocations=0x0&lt;br /&gt;
#Install Certificate&lt;br /&gt;
sgk_file=&lt;br /&gt;
sgk_permissions=&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file will be used by Yocto to point to the proper SRK table and keys.&lt;br /&gt;
&lt;br /&gt;
== Building an image ==&lt;br /&gt;
Build an image for imx91 Industrial Development Kit in the docker container:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
build_image_container.sh pro imx91&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When image is ready, locate machine files in the build directory and copy them into an output directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -p signed-imx-boot-imx91-voipac-sd.bin-flash_singleboot /home/user/output&lt;br /&gt;
cp -p voipac-image-imx91-voipac.rootfs.wic.zst /home/user/output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use following script to flash the image into the development kit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sudo ./uuu -b emmc_all voipac-image-imx91-voipac.rootfs.wic.zst&lt;br /&gt;
# flash secure imx-boot&lt;br /&gt;
sudo ./uuu uuu-hab.lst&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''''&amp;quot;uuu-hab.lst&amp;quot;''''' has following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu_version 1.2.39&lt;br /&gt;
&lt;br /&gt;
SDPS: boot -f signed-imx-boot-imx91-voipac-sd.bin-flash_singleboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FB: ucmd setenv fastboot_dev mmc&lt;br /&gt;
FB: ucmd setenv mmcdev ${emmc_dev}&lt;br /&gt;
FB: ucmd mmc dev ${emmc_dev}&lt;br /&gt;
FB: flash bootloader signed-imx-boot-imx91-voipac-sd.bin-flash_singleboot&lt;br /&gt;
FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;&lt;br /&gt;
FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0&lt;br /&gt;
FB: Done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' The complete flashing procedure is described in detail in the [[imx91 Industrial Flashing Procedure|flashing procedure wiki page]].&lt;br /&gt;
&lt;br /&gt;
== Programming fuses ==&lt;br /&gt;
Boot the newly built image and hit any key after startup to halt the booting.&lt;br /&gt;
&lt;br /&gt;
Program the SRK (public keys) to the SOC e-fuses:&lt;br /&gt;
* Navigate to the directory: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;cst/crts&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Run following command: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;od -t x4 SRK1234fuse.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Its output should be looking like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0000000 f43dab72 1b8eda1a 1ddd596d a1cb9682&lt;br /&gt;
0000020 0bf178ea 32308483 d596393c ca21a9b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Important:''''' This process in non-reversable. '''Incorrect fuse programming can lead to bricking the device!'''&lt;br /&gt;
&lt;br /&gt;
Use these values to set up eFuses in u-boot console:&lt;br /&gt;
&lt;br /&gt;
'''''Important:''''' Do not forget to replace this example with the numbers generated by your keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; fuse prog 16 0 0xf43dab72&lt;br /&gt;
=&amp;gt; fuse prog 16 1 0x1b8eda1a&lt;br /&gt;
=&amp;gt; fuse prog 16 2 0x1ddd596d&lt;br /&gt;
=&amp;gt; fuse prog 16 3 0xa1cb9682&lt;br /&gt;
=&amp;gt; fuse prog 16 4 0x0bf178ea&lt;br /&gt;
=&amp;gt; fuse prog 16 5 0x32308483&lt;br /&gt;
=&amp;gt; fuse prog 16 6 0xd596393c&lt;br /&gt;
=&amp;gt; fuse prog 16 7 0xca21a9b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the board, press any key to stay in u-boot and run '''''&amp;quot;ahab_status&amp;quot;'''''. Output should look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; ahab_status&lt;br /&gt;
  Lifecycle: 0x00000008, OEM Open&lt;br /&gt;
&lt;br /&gt;
          No Events Found!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there are any events present, please go back and double check if the keys were generated correctly and fuses flashed properly.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Please also verify if the board can boot to the userspace.&lt;br /&gt;
&lt;br /&gt;
==Perform verification tests while the device is in Open state==&lt;br /&gt;
&lt;br /&gt;
===Wrong Key Test===&lt;br /&gt;
Re-sign container using a different SRK set and flash it over the original.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Boot the device and run ahab_status.&lt;br /&gt;
Expected AHAB event:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
0x0087FA00 — Container authentication failed due to SRK hash mismatch (wrong key or SRK fuses not yet programmed).&lt;br /&gt;
&lt;br /&gt;
===Tamper Test===&lt;br /&gt;
Modify one byte inside the signed container binary (e.g., os_cntr_signed.bin) and reflash it.&lt;br /&gt;
Boot the device and run ahab_status.&lt;br /&gt;
&lt;br /&gt;
Container authentication failed because signature verification failed (tampered content).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; ahab_status&lt;br /&gt;
u-boot=&amp;gt; ahab_status&lt;br /&gt;
Lifecycle: 0x00000008, OEM Open&lt;br /&gt;
                                                                                                        &lt;br /&gt;
        0x0287f0d6                                                                                      &lt;br /&gt;
        IPC = MU APD (0x2)                                                                              &lt;br /&gt;
        CMD = ELE_OEM_CNTN_AUTH_REQ (0x87)                                                              &lt;br /&gt;
        IND = ELE_BAD_SIGNATURE_FAILURE_IND (0xF0)                                                      &lt;br /&gt;
        STA = ELE_SUCCESS_IND (0xD6)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When try to boot image then we get following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Running BSP bootcmd ...&lt;br /&gt;
switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
Failed to load 'boot.scr'&lt;br /&gt;
35750715 bytes read in 167 ms (204.2 MiB/s)&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
Authenticate OS container at 0x98000000&lt;br /&gt;
mu receive msg wait 1s&lt;br /&gt;
mu receive msg wait 2s&lt;br /&gt;
mu receive msg wait 3s&lt;br /&gt;
ERROR: Did not find a cmdline Flattened Device Tree&lt;br /&gt;
Could not find a valid device tree&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and board fails to boot.&lt;br /&gt;
&lt;br /&gt;
==OEM board close==&lt;br /&gt;
&lt;br /&gt;
Restart the board, stop the execution in uboot, and close the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ahab_close&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the board and run '''''&amp;quot;ahab_status&amp;quot;''''' command again:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; ahab_status&lt;br /&gt;
  Lifecycle: 0x00000020, OEM Closed&lt;br /&gt;
&lt;br /&gt;
          No Events Found!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''After this step the device is locked and only images signed with private keys will be able to boot on this device.'''&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX93_Industrial_Secure_Boot&amp;diff=6041</id>
		<title>iMX93 Industrial Secure Boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX93_Industrial_Secure_Boot&amp;diff=6041"/>
		<updated>2026-01-15T10:36:41Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX93 Industrial]]&lt;br /&gt;
[[Category:iMX93 Industrial Software]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page provides a step-by-step guide to building and flashing a Yocto Project image with secure boot integration. These instructions apply to the iMX93 Industrial Module.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Please inspect all the recent changes at [https://github.com/voipac/yocto-imx-voipac/blob/imx9-secure-boot/ Voipac GitHub repository] and start the custom build with the newest updates.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Additional information about the process could be found at [https://github.com/nxp-imx/uboot-imx/blob/lf_v2023.04/doc/imx/ahab/guides/mx8ulp_9x_secure_boot.txt NXP Github page].&lt;br /&gt;
&lt;br /&gt;
This build was verified on Ubuntu 20.04.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* Install docker package on the operating system&lt;br /&gt;
* Download the CST tool from [https://www.nxp.com/webapp/sps/download/license.jsp?colCode=IMX_CST_TOOL NXP website]&lt;br /&gt;
* Unpack it into a machine where Yocto will be compiled:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;/home/user/cst&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Navigate to the subdirectory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;/home/user/cst/keys&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Create a text file called '''''&amp;quot;serial&amp;quot;''''', which contains 8 digits. It will be used for the certificate serial numbers:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;echo 12345678 &amp;gt; serial&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Create a text file called '''''&amp;quot;key_pass.txt&amp;quot;''''', which contains two lines of a password repeated twice. This password will be used to protect the generated private keys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo my_secret_password &amp;gt;  key_pass.txt&lt;br /&gt;
echo my_secret_password &amp;gt;&amp;gt; key_pass.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generating keys ==&lt;br /&gt;
To generate the PKI tree, run the following command:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ahab_pki_tree.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Complete the interactive questions. For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Do you want to use an existing CA key (y/n)?: n&lt;br /&gt;
Key type options (confirm targeted device supports desired key type):&lt;br /&gt;
Select the key type (possible values: rsa, rsa-pss, ecc)?: ecc&lt;br /&gt;
Enter length for elliptic curve to be used for PKI tree:&lt;br /&gt;
Possible values p256, p384, p521: p384&lt;br /&gt;
Enter the digest algorithm to use: sha384&lt;br /&gt;
Enter PKI tree duration (years): 20&lt;br /&gt;
Do you want the SRK certificates to have the CA flag set? (y/n)?: n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate Super Root Key (SRK) table:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ../crts&lt;br /&gt;
../linux64/bin/srktool -a -d sha256 -s sha384 -t SRK1234table.bin -e SRK1234fuse.bin -f 1 -c SRK1_sha384_secp384r1_v3_usr_crt.pem,SRK2_sha384_secp384r1_v3_usr_crt.pem,SRK3_sha384_secp384r1_v3_usr_crt.pem,SRK4_sha384_secp384r1_v3_usr_crt.pem&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For the i.MX 93 SoC, the Message Digest algorithm (option —d) is sha256, while the Signature Digest algorithm (option -s) must match the option from the PKI generation.&lt;br /&gt;
&lt;br /&gt;
Create a file in root of cst directory called '''''&amp;quot;cfs_ahag.cfg&amp;quot;''''' with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Header&lt;br /&gt;
header_version=1.0&lt;br /&gt;
#Install SRK&lt;br /&gt;
srktable_file=SRK1234table.bin&lt;br /&gt;
srk_source=SRK1_sha384_secp384r1_v3_usr_crt.pem&lt;br /&gt;
srk_source_index=0&lt;br /&gt;
srk_source_set=OEM&lt;br /&gt;
srk_revocations=0x0&lt;br /&gt;
#Install Certificate&lt;br /&gt;
sgk_file=&lt;br /&gt;
sgk_permissions=&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file will be used by Yocto to point to the proper SRK table and keys.&lt;br /&gt;
&lt;br /&gt;
== Building an image ==&lt;br /&gt;
Build an image for iMX93 Industrial Development Kit in the docker container:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
build_image_container.sh pro imx93&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When image is ready, locate machine files in the build directory and copy them into an output directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -p signed-imx-boot-imx93-voipac-sd.bin-flash_singleboot /home/user/output&lt;br /&gt;
cp -p voipac-image-imx93-voipac.rootfs.wic.zst /home/user/output&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use following script to flash the image into the development kit:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
sudo ./uuu -b emmc_all voipac-image-imx93-voipac.rootfs.wic.zst&lt;br /&gt;
# flash secure imx-boot&lt;br /&gt;
sudo ./uuu uuu-hab.lst&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''''&amp;quot;uuu-hab.lst&amp;quot;''''' has following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu_version 1.2.39&lt;br /&gt;
&lt;br /&gt;
SDPS: boot -f signed-imx-boot-imx93-voipac-sd.bin-flash_singleboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FB: ucmd setenv fastboot_dev mmc&lt;br /&gt;
FB: ucmd setenv mmcdev ${emmc_dev}&lt;br /&gt;
FB: ucmd mmc dev ${emmc_dev}&lt;br /&gt;
FB: flash bootloader signed-imx-boot-imx93-voipac-sd.bin-flash_singleboot&lt;br /&gt;
FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi;&lt;br /&gt;
FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0&lt;br /&gt;
FB: Done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' The complete flashing procedure is described in detail in the [[iMX93 Industrial Flashing Procedure|flashing procedure wiki page]].&lt;br /&gt;
&lt;br /&gt;
== Programming fuses ==&lt;br /&gt;
Boot the newly built image and hit any key after startup to halt the booting.&lt;br /&gt;
&lt;br /&gt;
Program the SRK (public keys) to the SOC e-fuses:&lt;br /&gt;
* Navigate to the directory: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;cst/crts&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Run following command: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;od -t x4 SRK1234fuse.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Its output should be looking like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0000000 f43dab72 1b8eda1a 1ddd596d a1cb9682&lt;br /&gt;
0000020 0bf178ea 32308483 d596393c ca21a9b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Important:''''' This process in non-reversable. '''Incorrect fuse programming can lead to bricking the device!'''&lt;br /&gt;
&lt;br /&gt;
Use these values to set up eFuses in u-boot console:&lt;br /&gt;
&lt;br /&gt;
'''''Important:''''' Do not forget to replace this example with the numbers generated by your keys.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; fuse prog 16 0 0xf43dab72&lt;br /&gt;
=&amp;gt; fuse prog 16 1 0x1b8eda1a&lt;br /&gt;
=&amp;gt; fuse prog 16 2 0x1ddd596d&lt;br /&gt;
=&amp;gt; fuse prog 16 3 0xa1cb9682&lt;br /&gt;
=&amp;gt; fuse prog 16 4 0x0bf178ea&lt;br /&gt;
=&amp;gt; fuse prog 16 5 0x32308483&lt;br /&gt;
=&amp;gt; fuse prog 16 6 0xd596393c&lt;br /&gt;
=&amp;gt; fuse prog 16 7 0xca21a9b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the board, press any key to stay in u-boot and run '''''&amp;quot;ahab_status&amp;quot;'''''. Output should look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; ahab_status&lt;br /&gt;
  Lifecycle: 0x00000008, OEM Open&lt;br /&gt;
&lt;br /&gt;
          No Events Found!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there are any events present, please go back and double check if the keys were generated correctly and fuses flashed properly.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Please also verify if the board can boot to the userspace.&lt;br /&gt;
&lt;br /&gt;
==Perform verification tests while the device is in Open state==&lt;br /&gt;
&lt;br /&gt;
===Wrong Key Test===&lt;br /&gt;
Re-sign container using a different SRK set and flash it over the original.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Boot the device and run ahab_status.&lt;br /&gt;
Expected AHAB event:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
0x0087FA00 — Container authentication failed due to SRK hash mismatch (wrong key or SRK fuses not yet programmed).&lt;br /&gt;
&lt;br /&gt;
===Tamper Test===&lt;br /&gt;
Modify one byte inside the signed container binary (e.g., os_cntr_signed.bin) and reflash it.&lt;br /&gt;
Boot the device and run ahab_status.&lt;br /&gt;
&lt;br /&gt;
Container authentication failed because signature verification failed (tampered content).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; ahab_status&lt;br /&gt;
u-boot=&amp;gt; ahab_status&lt;br /&gt;
Lifecycle: 0x00000008, OEM Open&lt;br /&gt;
                                                                                                        &lt;br /&gt;
        0x0287f0d6                                                                                      &lt;br /&gt;
        IPC = MU APD (0x2)                                                                              &lt;br /&gt;
        CMD = ELE_OEM_CNTN_AUTH_REQ (0x87)                                                              &lt;br /&gt;
        IND = ELE_BAD_SIGNATURE_FAILURE_IND (0xF0)                                                      &lt;br /&gt;
        STA = ELE_SUCCESS_IND (0xD6)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When try to boot image then we get following:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Running BSP bootcmd ...&lt;br /&gt;
switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
Failed to load 'boot.scr'&lt;br /&gt;
35750715 bytes read in 167 ms (204.2 MiB/s)&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
Authenticate OS container at 0x98000000&lt;br /&gt;
mu receive msg wait 1s&lt;br /&gt;
mu receive msg wait 2s&lt;br /&gt;
mu receive msg wait 3s&lt;br /&gt;
ERROR: Did not find a cmdline Flattened Device Tree&lt;br /&gt;
Could not find a valid device tree&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and board fails to boot.&lt;br /&gt;
&lt;br /&gt;
==OEM board close==&lt;br /&gt;
&lt;br /&gt;
Restart the board, stop the execution in uboot, and close the device:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ahab_close&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the board and run '''''&amp;quot;ahab_status&amp;quot;''''' command again:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;gt; ahab_status&lt;br /&gt;
  Lifecycle: 0x00000020, OEM Closed&lt;br /&gt;
&lt;br /&gt;
          No Events Found!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''After this step the device is locked and only images signed with private keys will be able to boot on this device.'''&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX_Development_Baseboard_Connectors_Locations&amp;diff=5858</id>
		<title>iMX Development Baseboard Connectors Locations</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX_Development_Baseboard_Connectors_Locations&amp;diff=5858"/>
		<updated>2025-10-30T10:32:43Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX8M Industrial Development Kit]]&lt;br /&gt;
[[Category:iMX93 Industrial Development Kit]]&lt;br /&gt;
[[Category:iMX91 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
== Connectors accessible from the top side ==&lt;br /&gt;
[[image:iMX_Development_Baseboard-Connectors-Top.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
== Connectors accessible from the bottom side ==&lt;br /&gt;
[[image:iMX_Development_Baseboard-Connectors-Bottom.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Module_Interfaces_Overview&amp;diff=5857</id>
		<title>iMX91 Industrial Module Interfaces Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Module_Interfaces_Overview&amp;diff=5857"/>
		<updated>2025-10-30T10:32:15Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
== iM91 Industrial Module Interfaces Overview Top Side ==&lt;br /&gt;
[[image:iMX91 Industrial Module Interfaces-Overview top.png|center|800px]]&lt;br /&gt;
== iMX91 Industrial Module Interfaces Overview Bottom Side ==&lt;br /&gt;
[[image:iMX91 Industrial Module Interfaces-Overview bottom.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5856</id>
		<title>iMX91 Industrial Recovery</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5856"/>
		<updated>2025-10-30T10:31:53Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* Setting a suitable dtb file in bootloader (u-boot) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
=Description=&lt;br /&gt;
The recovery procedure consists of following steps:&lt;br /&gt;
&lt;br /&gt;
* Downloading binaries from Voipac download webpage&lt;br /&gt;
* Flashing binaries and filesystem over Baseboard USB-C connector&lt;br /&gt;
* Setting a suitable dtb file in bootloader (u-boot)&lt;br /&gt;
* Resetting and booting a module&lt;br /&gt;
&lt;br /&gt;
==Recommended Software==&lt;br /&gt;
* Universal Update Utility (UUU)&lt;br /&gt;
* Windows Command Promt&lt;br /&gt;
* TFTP Server&lt;br /&gt;
* DHCP Server (Otional)&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
==Updating Filesystem:==&lt;br /&gt;
===Download filesystem:===&lt;br /&gt;
&lt;br /&gt;
https://downloads.voipac.com/index.php?p=iMX91_Industrial_Development_Kit/module/software/filesystem&lt;br /&gt;
&lt;br /&gt;
===Download Universal Update Utility (UUU) if needed:===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nxp-imx/mfgtools/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a new folder e.g. C:\uuu and move all downloaded files into it.&lt;br /&gt;
&lt;br /&gt;
==Flashing  uboot and filesystem==&lt;br /&gt;
Prepare Voipac baseboard and follow the steps to flash the module as shown on this [[iMX91 Industrial Flashing Procedure|page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting a suitable dtb file in bootloader (u-boot)==&lt;br /&gt;
&lt;br /&gt;
Stop autoboot in bootloader:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2024.04-lf_v2024.04+g6c4545203d1+p0 (Nov 15 2024 - 04:02:13 +0000)&lt;br /&gt;
&lt;br /&gt;
Reset Status: POR&lt;br /&gt;
&lt;br /&gt;
CPU:   NXP i.MX91(31) Rev1.0 A55 at 1400 MHz&lt;br /&gt;
CPU:   Industrial temperature grade  (-40C to 105C) at 29C&lt;br /&gt;
&lt;br /&gt;
Model: Voipac i.MX91 EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
optee optee: OP-TEE api uid mismatch&lt;br /&gt;
tcpc_init: Can't find device id=0x52&lt;br /&gt;
setup_typec: tcpc portpd init failed, err=-19&lt;br /&gt;
tcpc_init: Can't find device id=0x51&lt;br /&gt;
setup_typec: tcpc port2 init failed, err=-19&lt;br /&gt;
tcpc_init: Can't find device id=0x50&lt;br /&gt;
setup_typec: tcpc port1 init failed, err=-19&lt;br /&gt;
Core:  205 devices, 31 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... *** Warning - bad CRC, using default environment&lt;br /&gt;
&lt;br /&gt;
Fail to setup video link&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
&lt;br /&gt;
BuildInfo:&lt;br /&gt;
  - ELE firmware version 2.0.0-64d8ef47&lt;br /&gt;
&lt;br /&gt;
switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
UID: 0f369d90914746998806e2d559c410c7&lt;br /&gt;
flash target is MMC:0&lt;br /&gt;
Net:    eth0: ethernet@42890000, eth1: ethernet@428a0000 [PRIME]&lt;br /&gt;
Fastboot: Normal&lt;br /&gt;
Normal Boot&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter command fatls mmc 0:1 (filesystem in eMMC) or fatls mmc 1:1 (filesystem in SD Card) to see a list of DTB files:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; fatls mmc 0:1&lt;br /&gt;
 35697152   Image&lt;br /&gt;
    48709   imx91-11x11-evk-aud-hat.dtb&lt;br /&gt;
    45805   imx91-11x11-evk-flexspi-m2.dtb&lt;br /&gt;
    45801   imx91-11x11-evk-flexspi-nand-m2.dtb&lt;br /&gt;
    46405   imx91-11x11-evk-i2c-spi-slave.dtb&lt;br /&gt;
    44973   imx91-11x11-evk-i3c.dtb&lt;br /&gt;
    45319   imx91-11x11-evk-ld.dtb&lt;br /&gt;
    45403   imx91-11x11-evk-lpuart.dtb&lt;br /&gt;
    45819   imx91-11x11-evk-mqs.dtb&lt;br /&gt;
    48061   imx91-11x11-evk-mt9m114.dtb&lt;br /&gt;
    47525   imx91-11x11-evk-tianma-wvga-panel.dtb&lt;br /&gt;
    44324   imx91-voipac-evk.dtb&lt;br /&gt;
&lt;br /&gt;
12 file(s), 0 dir(s)&lt;br /&gt;
&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the required DTB file and enter the command to set it up:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; setenv fdtfile imx91-voipac-evk.dtb&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; saveenv&lt;br /&gt;
Saving Environment to MMC... Writing to MMC(0)... OK&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter boot command or reset the baseboard for image loading.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5855</id>
		<title>iMX91 Industrial Recovery</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5855"/>
		<updated>2025-10-30T10:30:48Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* Download filesystem: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
=Description=&lt;br /&gt;
The recovery procedure consists of following steps:&lt;br /&gt;
&lt;br /&gt;
* Downloading binaries from Voipac download webpage&lt;br /&gt;
* Flashing binaries and filesystem over Baseboard USB-C connector&lt;br /&gt;
* Setting a suitable dtb file in bootloader (u-boot)&lt;br /&gt;
* Resetting and booting a module&lt;br /&gt;
&lt;br /&gt;
==Recommended Software==&lt;br /&gt;
* Universal Update Utility (UUU)&lt;br /&gt;
* Windows Command Promt&lt;br /&gt;
* TFTP Server&lt;br /&gt;
* DHCP Server (Otional)&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
==Updating Filesystem:==&lt;br /&gt;
===Download filesystem:===&lt;br /&gt;
&lt;br /&gt;
https://downloads.voipac.com/index.php?p=iMX91_Industrial_Development_Kit/module/software/filesystem&lt;br /&gt;
&lt;br /&gt;
===Download Universal Update Utility (UUU) if needed:===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nxp-imx/mfgtools/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a new folder e.g. C:\uuu and move all downloaded files into it.&lt;br /&gt;
&lt;br /&gt;
==Flashing  uboot and filesystem==&lt;br /&gt;
Prepare Voipac baseboard and follow the steps to flash the module as shown on this [[iMX91 Industrial Flashing Procedure|page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting a suitable dtb file in bootloader (u-boot)==&lt;br /&gt;
&lt;br /&gt;
Stop autoboot in bootloader:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2024.04-lf_v2024.04+gde16f4f1722+p0 (Sep 02 2024 - 10:44:35 +0000)&lt;br /&gt;
&lt;br /&gt;
Reset Status: POR&lt;br /&gt;
&lt;br /&gt;
CPU:   NXP i.MX93(52) Rev1.1 A55 at 1700 MHz&lt;br /&gt;
CPU:   Industrial temperature grade  (-40C to 105C) at 36C&lt;br /&gt;
&lt;br /&gt;
Model: Voipac i.MX93 EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  219 devices, 31 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
probe video device failed, ret -19&lt;br /&gt;
&lt;br /&gt;
        [0] lcd-controller@4ae30000, video&lt;br /&gt;
fail to find output device&lt;br /&gt;
probe video device failed, ret -19&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
&lt;br /&gt;
BuildInfo:&lt;br /&gt;
  - ELE firmware version 1.2.0-38f309fe&lt;br /&gt;
&lt;br /&gt;
switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
UID: ad4a5a940e804162a528d6fe1532d4d5&lt;br /&gt;
flash target is MMC:0&lt;br /&gt;
Net:   eth0: ethernet@42890000, eth1: ethernet@428a0000 [PRIME]&lt;br /&gt;
Fastboot: Normal&lt;br /&gt;
Normal Boot&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter command fatls mmc 0:1 (filesystem in eMMC) or fatls mmc 1:1 (filesystem in SD Card) to see a list of DTB files:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; fatls mmc 0:1&lt;br /&gt;
 35564032   Image&lt;br /&gt;
    69445   imx93-11x11-evk-aud-hat.dtb&lt;br /&gt;
    66749   imx93-11x11-evk-boe-wxga-lvds-panel.dtb&lt;br /&gt;
    65705   imx93-11x11-evk-flexio-i2c.dtb&lt;br /&gt;
    66009   imx93-11x11-evk-flexspi-m2.dtb&lt;br /&gt;
    66799   imx93-11x11-evk-i2c-spi-slave.dtb&lt;br /&gt;
    65062   imx93-11x11-evk-i3c.dtb&lt;br /&gt;
     2725   imx93-11x11-evk-inmate.dtb&lt;br /&gt;
    51134   imx93-11x11-evk-iw612-otbr.dtb&lt;br /&gt;
    65362   imx93-11x11-evk-ld.dtb&lt;br /&gt;
    65520   imx93-11x11-evk-lpuart.dtb&lt;br /&gt;
    65983   imx93-11x11-evk-mqs.dtb&lt;br /&gt;
    68814   imx93-11x11-evk-mt9m114.dtb&lt;br /&gt;
    65819   imx93-11x11-evk-rm67199.dtb&lt;br /&gt;
    65573   imx93-11x11-evk-root.dtb&lt;br /&gt;
    66108   imx93-11x11-evk-rpmsg-lpv.dtb&lt;br /&gt;
    66132   imx93-11x11-evk-rpmsg.dtb&lt;br /&gt;
   130428   imx93-11x11-evk_m33_TCM_low_power_wakeword.bin&lt;br /&gt;
    19080   imx93-11x11-evk_m33_TCM_power_mode_switch.bin&lt;br /&gt;
    18708   imx93-11x11-evk_m33_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin&lt;br /&gt;
    17228   imx93-11x11-evk_m33_TCM_rpmsg_lite_str_echo_rtos.bin&lt;br /&gt;
    47472   imx93-11x11-evk_m33_TCM_sai_low_power_audio.bin&lt;br /&gt;
    48794   imx93-voipac-evk-boe-wxga-lvds-panel.dtb&lt;br /&gt;
    47605   imx93-voipac-evk.dtb&lt;br /&gt;
   593744   tee.bin&lt;br /&gt;
&lt;br /&gt;
25 file(s), 0 dir(s)&lt;br /&gt;
&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the required DTB file and enter the command to set it up:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; setenv fdtfile imx91-voipac-evk.dtb&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; saveenv&lt;br /&gt;
Saving Environment to MMC... Writing to MMC(0)... OK&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter boot command or reset the baseboard for image loading.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5853</id>
		<title>iMX91 Industrial Recovery</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5853"/>
		<updated>2025-10-30T10:30:17Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* Updating U-boot and Filesystem: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
=Description=&lt;br /&gt;
The recovery procedure consists of following steps:&lt;br /&gt;
&lt;br /&gt;
* Downloading binaries from Voipac download webpage&lt;br /&gt;
* Flashing binaries and filesystem over Baseboard USB-C connector&lt;br /&gt;
* Setting a suitable dtb file in bootloader (u-boot)&lt;br /&gt;
* Resetting and booting a module&lt;br /&gt;
&lt;br /&gt;
==Recommended Software==&lt;br /&gt;
* Universal Update Utility (UUU)&lt;br /&gt;
* Windows Command Promt&lt;br /&gt;
* TFTP Server&lt;br /&gt;
* DHCP Server (Otional)&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
==Updating Filesystem:==&lt;br /&gt;
===Download filesystem:===&lt;br /&gt;
&lt;br /&gt;
https://downloads.voipac.com/index.php?p=iMX93_Industrial_Development_Kit/module/software/filesystem&lt;br /&gt;
&lt;br /&gt;
===Download Universal Update Utility (UUU) if needed:===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nxp-imx/mfgtools/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a new folder e.g. C:\uuu and move all downloaded files into it.&lt;br /&gt;
&lt;br /&gt;
==Flashing  uboot and filesystem==&lt;br /&gt;
Prepare Voipac baseboard and follow the steps to flash the module as shown on this [[iMX91 Industrial Flashing Procedure|page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting a suitable dtb file in bootloader (u-boot)==&lt;br /&gt;
&lt;br /&gt;
Stop autoboot in bootloader:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2024.04-lf_v2024.04+gde16f4f1722+p0 (Sep 02 2024 - 10:44:35 +0000)&lt;br /&gt;
&lt;br /&gt;
Reset Status: POR&lt;br /&gt;
&lt;br /&gt;
CPU:   NXP i.MX93(52) Rev1.1 A55 at 1700 MHz&lt;br /&gt;
CPU:   Industrial temperature grade  (-40C to 105C) at 36C&lt;br /&gt;
&lt;br /&gt;
Model: Voipac i.MX93 EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  219 devices, 31 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
probe video device failed, ret -19&lt;br /&gt;
&lt;br /&gt;
        [0] lcd-controller@4ae30000, video&lt;br /&gt;
fail to find output device&lt;br /&gt;
probe video device failed, ret -19&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
&lt;br /&gt;
BuildInfo:&lt;br /&gt;
  - ELE firmware version 1.2.0-38f309fe&lt;br /&gt;
&lt;br /&gt;
switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
UID: ad4a5a940e804162a528d6fe1532d4d5&lt;br /&gt;
flash target is MMC:0&lt;br /&gt;
Net:   eth0: ethernet@42890000, eth1: ethernet@428a0000 [PRIME]&lt;br /&gt;
Fastboot: Normal&lt;br /&gt;
Normal Boot&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter command fatls mmc 0:1 (filesystem in eMMC) or fatls mmc 1:1 (filesystem in SD Card) to see a list of DTB files:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; fatls mmc 0:1&lt;br /&gt;
 35564032   Image&lt;br /&gt;
    69445   imx93-11x11-evk-aud-hat.dtb&lt;br /&gt;
    66749   imx93-11x11-evk-boe-wxga-lvds-panel.dtb&lt;br /&gt;
    65705   imx93-11x11-evk-flexio-i2c.dtb&lt;br /&gt;
    66009   imx93-11x11-evk-flexspi-m2.dtb&lt;br /&gt;
    66799   imx93-11x11-evk-i2c-spi-slave.dtb&lt;br /&gt;
    65062   imx93-11x11-evk-i3c.dtb&lt;br /&gt;
     2725   imx93-11x11-evk-inmate.dtb&lt;br /&gt;
    51134   imx93-11x11-evk-iw612-otbr.dtb&lt;br /&gt;
    65362   imx93-11x11-evk-ld.dtb&lt;br /&gt;
    65520   imx93-11x11-evk-lpuart.dtb&lt;br /&gt;
    65983   imx93-11x11-evk-mqs.dtb&lt;br /&gt;
    68814   imx93-11x11-evk-mt9m114.dtb&lt;br /&gt;
    65819   imx93-11x11-evk-rm67199.dtb&lt;br /&gt;
    65573   imx93-11x11-evk-root.dtb&lt;br /&gt;
    66108   imx93-11x11-evk-rpmsg-lpv.dtb&lt;br /&gt;
    66132   imx93-11x11-evk-rpmsg.dtb&lt;br /&gt;
   130428   imx93-11x11-evk_m33_TCM_low_power_wakeword.bin&lt;br /&gt;
    19080   imx93-11x11-evk_m33_TCM_power_mode_switch.bin&lt;br /&gt;
    18708   imx93-11x11-evk_m33_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin&lt;br /&gt;
    17228   imx93-11x11-evk_m33_TCM_rpmsg_lite_str_echo_rtos.bin&lt;br /&gt;
    47472   imx93-11x11-evk_m33_TCM_sai_low_power_audio.bin&lt;br /&gt;
    48794   imx93-voipac-evk-boe-wxga-lvds-panel.dtb&lt;br /&gt;
    47605   imx93-voipac-evk.dtb&lt;br /&gt;
   593744   tee.bin&lt;br /&gt;
&lt;br /&gt;
25 file(s), 0 dir(s)&lt;br /&gt;
&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the required DTB file and enter the command to set it up:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; setenv fdtfile imx91-voipac-evk.dtb&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; saveenv&lt;br /&gt;
Saving Environment to MMC... Writing to MMC(0)... OK&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter boot command or reset the baseboard for image loading.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5852</id>
		<title>iMX91 Industrial Accessing and Testing Peripherals</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5852"/>
		<updated>2025-10-30T10:28:34Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* Sleep Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Testing]]&lt;br /&gt;
[[Category:iMX91 Industrial Peripherals]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial operations with the iMX91 Industrial Development Kit interfaces are presented on this page. For more specific information such as display options, camera capabilities or industrial modular extensions, refer to the dedicated [[iMX91 Industrial Max#Peripherals_and_Accessories|Peripherals and Accessories section]].&lt;br /&gt;
&lt;br /&gt;
== Mandatory components ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* iMX91 Industrial Module&lt;br /&gt;
* iMX Development Baseboard&lt;br /&gt;
* [https://www.voipac.com/power-supply-5v-20w DC power supply (5V, 4A, 20W)]&lt;br /&gt;
&lt;br /&gt;
=== Peripherals and Accessories ===&lt;br /&gt;
* [https://wiki.voipac.com/index.php?title=NXP_Parallel_TFT_Display_Set NXP Parallel TFT Display Set]&lt;br /&gt;
* [https://www.voipac.com/imx9-wifi-and-bluetooth-antennas-set iMX9 Wifi and Bluetooth antenna set]&lt;br /&gt;
* 1x MicroSDHC card Class 10 or higher&lt;br /&gt;
* 1x USB Flash drive 2.0&lt;br /&gt;
* Headphones&lt;br /&gt;
* Analog external microphone&lt;br /&gt;
&lt;br /&gt;
=== Cables ===&lt;br /&gt;
* USB Micro-B cable for serial console&lt;br /&gt;
* USB-C cable for module flashing&lt;br /&gt;
* Ethernet cable&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
'''''Note:''''' This audio section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, audio capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Search kernel log for wm8904 chip&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio chip is detected and bound as an output and input device&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep wm8904&lt;br /&gt;
[    6.546858] wm8904 0-001a: supply DCVDD not found, using dummy regulator&lt;br /&gt;
[    6.591866] wm8904 0-001a: supply DBVDD not found, using dummy regulator&lt;br /&gt;
[    6.611921] wm8904 0-001a: supply AVDD not found, using dummy regulator&lt;br /&gt;
[    6.637768] wm8904 0-001a: supply CPVDD not found, using dummy regulator&lt;br /&gt;
[    6.670934] wm8904 0-001a: supply MICVDD not found, using dummy regulator&lt;br /&gt;
[    6.683500] wm8904 0-001a: revision A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Run amixer command&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Current audio chip settings are displayed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer    &lt;br /&gt;
Simple mixer control 'Headphone',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
  Front Right: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
Simple mixer control 'Headphone ZC',0&lt;br /&gt;
  Capabilities: pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback [on]&lt;br /&gt;
  Front Right: Playback [on]&lt;br /&gt;
Simple mixer control 'Line Output',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
  Front Right: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Connect headphones into LINE OUT jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio file is played and heard&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx8mq-voipac:~# aplay /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
root@imx8mq-voipac:~# aplay -D sysdefault:CARD=wm8904audio /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug headphones into HEADPHONES jack connector and analog external microphone to MIC jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Sound recorder by microphone is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture' '31'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture Input' ADC&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Left Capture Inverting Mux' 'IN2L'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Right Capture Inverting Mux' 'IN2R'&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Microphone and headphones setup can also be graphically displayed and adjusted:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# alsamixer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-AlsaMixer_setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Verify digital microphones (Mic Left, Mic Mid, Mic Right) &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Microphone sound is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set &amp;quot;Capture Input&amp;quot; &amp;quot;DMIC&amp;quot;&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WiFi ==&lt;br /&gt;
'''''Note:''''' This WiFi section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configurations, wireless connectivity is not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the device driver:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
[  926.305344] mlan: loading out-of-tree module taints kernel.&lt;br /&gt;
[  926.334171] wlan: Loading MWLAN driver&lt;br /&gt;
[  926.339152] wlan: Register to Bus Driver...&lt;br /&gt;
[  926.343686] vendor=0x02DF device=0x9159 class=0 function=1&lt;br /&gt;
[  926.349765] Attach moal handle ops, card interface type: 0x108&lt;br /&gt;
[  926.355633] rps set to 0 from module param&lt;br /&gt;
[  926.362045] SDIW416: init module param from usr cfg&lt;br /&gt;
[  926.366995] card_type: SDIW416, config block: 0&lt;br /&gt;
[  926.371541] cfg80211_wext=0xf&lt;br /&gt;
[  926.374515] max_vir_bss=1&lt;br /&gt;
[  926.377131] cal_data_cfg=none&lt;br /&gt;
[  926.380112] ps_mode = 1&lt;br /&gt;
[  926.382567] auto_ds = 1&lt;br /&gt;
[  926.385010] host_mlme=enable&lt;br /&gt;
[  926.387895] fw_name=nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.392709] SDIO: max_segs=128 max_seg_size=65535&lt;br /&gt;
[  926.397420] rx_work=1 cpu_num=2&lt;br /&gt;
[  926.400569] Enable moal_recv_amsdu_packet&lt;br /&gt;
[  926.404600] Attach mlan adapter operations.card_type is 0x108.&lt;br /&gt;
[  926.410826] wlan: Enable TX SG mode&lt;br /&gt;
[  926.414357] wlan: Enable RX SG mode&lt;br /&gt;
[  926.421681] Request firmware: nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.708639] Wlan: FW download over, firmwarelen=591808 downloaded 583072&lt;br /&gt;
[  928.113594] WLAN FW is active&lt;br /&gt;
[  928.116573] on_time is 927947046442&lt;br /&gt;
[  928.140994] VDLL image: len=8736&lt;br /&gt;
[  928.144352] FW country code WW does not match with US&lt;br /&gt;
[  928.150617] fw_cap_info=0x187ccf03, dev_cap_mask=0xffffffff&lt;br /&gt;
[  928.156607] max_p2p_conn = 8, max_sta_conn = 8&lt;br /&gt;
[  928.176236] Register NXP 802.11 Adapter mlan0&lt;br /&gt;
[  928.183724] Register NXP 802.11 Adapter uap0&lt;br /&gt;
[  928.194033] Register NXP 802.11 Adapter wfd0&lt;br /&gt;
[  928.199986] wlan: version = SDIW416---16.92.21.p137.2-MM6X16437.p30-GPL-(FP92) &lt;br /&gt;
[  928.208947] wlan: Register to Bus Driver Done&lt;br /&gt;
[  928.216412] wlan: Driver loaded successfully&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if the WiFi interface is present:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev mlan0&lt;br /&gt;
3: wlp1s0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN group default qlen 1000&lt;br /&gt;
    link/ether 78:c4:0e:a0:32:16 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Scan the available WiFi networks&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Networks are scanned and in-depth information are displayed&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ifconfig mlan0 up &amp;amp;&amp;amp; iw dev mlan0 scan&lt;br /&gt;
BSS 94:27:90:7f:c3:d3(on wlp1s0)&lt;br /&gt;
        TSF: 1213185029341 usec (14d, 00:59:45)&lt;br /&gt;
        freq: 2442&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 4056 ms ago&lt;br /&gt;
        SSID: HH40V_C3D3&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0&lt;br /&gt;
        DS Parameter set: channel 7&lt;br /&gt;
        Country: SK     Environment: Indoor/Outdoor&lt;br /&gt;
                Channels [1 - 13] @ 20 dBm&lt;br /&gt;
        ERP: &amp;lt;no flags&amp;gt;&lt;br /&gt;
        Extended supported rates: 24.0 36.0 48.0 54.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x1ad&lt;br /&gt;
                        RX LDPC&lt;br /&gt;
                        HT20&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        TX STBC&lt;br /&gt;
                        RX STBC 1-stream&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        No DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 8 usec (0x06)&lt;br /&gt;
                HT TX/RX MCS rate indexes supported: 0-15&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 7&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 1&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
                 * Extended Channel Switching&lt;br /&gt;
                 * SSID List&lt;br /&gt;
                 * Operating Mode Notification&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: CCMP&lt;br /&gt;
                 * Pairwise ciphers: CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 87654321-9abc-def0-1234-942790c36dc7&lt;br /&gt;
                 * Manufacturer: TCL.org&lt;br /&gt;
                 * Model: WAP&lt;br /&gt;
                 * Model Number: 123&lt;br /&gt;
                 * Serial Number: 12345&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: TCL AP&lt;br /&gt;
                 * Config methods:&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5c:06:80(on wlp1s0)&lt;br /&gt;
        TSF: 787677017722 usec (9d, 02:47:57)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 3952 ms ago&lt;br /&gt;
        SSID: OrangeFlybox_0680&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: 20 MHz&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 3&lt;br /&gt;
                 * channel utilisation: 27/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945c06c4&lt;br /&gt;
                 * Manufacturer: TP-LINK&lt;br /&gt;
                 * Model: Archer MR200&lt;br /&gt;
                 * Model Number: 1.0&lt;br /&gt;
                 * Serial Number: 1.0&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: AC750 Wireless Dual Band 4G LTE&lt;br /&gt;
                 * Config methods: Label, Display, Keypad&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5b:f8:04(on wlp1s0)&lt;br /&gt;
        TSF: 1210179077454 usec (14d, 00:09:39)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -50.00 dBm&lt;br /&gt;
        last seen: 3432 ms ago&lt;br /&gt;
        SSID: REDARROW&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x2&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945bf8c4&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 0&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 0&lt;br /&gt;
                 * channel utilisation: 47/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set up the network login data, edit file located in /etc/wpa_supplicant.conf and update '''''ssid''''' and passphrase '''''psk''''' fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# cat /etc/wpa_supplicant.conf &lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;SSID_FOR_WIFI_NETWORK&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        psk=&amp;quot;WIFI_NETWORK_PASSWORD&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to the desired WiFi network, start wpa_supplicant:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf &amp;amp;&lt;br /&gt;
root@imx91-voipac:~# rfkill: Cannot open RFKILL control device&lt;br /&gt;
[  261.722718] wlan: mlan0 START SCAN&lt;br /&gt;
[  266.018892] wlan: SCAN COMPLETED: scanned AP count=1&lt;br /&gt;
mlan0: SME: Trying to authentica[  266.027303] wlan: HostMlme mlan0 send auth to bssid 40:XX:XX:XX:70:62&lt;br /&gt;
te with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' f[  266.037546] mlan0: &lt;br /&gt;
req=2437 MHz)&lt;br /&gt;
[  266.037558] wlan: HostMlme Auth received from 40:XX:XX:XX:70:62&lt;br /&gt;
mlan0: Trying to associate with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' freq=2437 MHz)&lt;br /&gt;
[  266.057956] wlan: HostMlme mlan0 Connected to bssid 40:XX:XX:XX:70:62 successfully&lt;br /&gt;
mlan0: Associated[  266.067323] mlan0: &lt;br /&gt;
 with 40:a5:ef:c0[  266.067340] wlan: Send EAPOL pkt to 40:XX:XX:XX:70:62&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To obtain an IP address and other network settings, run dhcp client:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
udhcpc -i mlan0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point the bandwidth measurement can be tested, showing that WiFi connection was established and is performed very reliably.&lt;br /&gt;
Used program: [https://iperf.fr iPerf3.]  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Configuration:''''' iMX91 Industrial Module Pro in Industrial temperature range (u-blox MAYA-W160-00B assembled):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.200 -t 30 -i1&lt;br /&gt;
Connecting to host 192.168.240.200, port 5201&lt;br /&gt;
[  5] local 192.168.240.111 port 39988 connected to 192.168.240.200 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  5.12 MBytes  43.0 Mbits/sec    0    223 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  5.38 MBytes  45.1 Mbits/sec    0    460 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  7.12 MBytes  59.8 Mbits/sec    0    747 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  4.25 MBytes  35.7 Mbits/sec    0   1003 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  5.38 MBytes  45.1 Mbits/sec    0   1.25 MBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.52 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.78 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  5.62 MBytes  47.2 Mbits/sec    0   2.06 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  5.50 MBytes  46.1 Mbits/sec    0   2.31 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  5.50 MBytes  46.1 Mbits/sec    0   2.64 MBytes       &lt;br /&gt;
[  5]  10.00-11.00  sec  6.75 MBytes  56.6 Mbits/sec    0   2.93 MBytes       &lt;br /&gt;
[  5]  11.00-12.00  sec  3.00 MBytes  25.2 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  12.00-13.00  sec  6.75 MBytes  56.6 Mbits/sec    0   3.41 MBytes       &lt;br /&gt;
[  5]  13.00-14.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.61 MBytes       &lt;br /&gt;
[  5]  14.00-15.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  15.00-16.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  17.00-18.00  sec  5.88 MBytes  49.3 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  18.00-19.00  sec  2.75 MBytes  23.1 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  19.00-20.00  sec  3.38 MBytes  28.3 Mbits/sec    3   2.86 MBytes       &lt;br /&gt;
[  5]  20.00-21.00  sec  2.88 MBytes  24.1 Mbits/sec    0   2.94 MBytes       &lt;br /&gt;
[  5]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  22.00-23.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.44 MBytes       &lt;br /&gt;
[  5]  23.00-24.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.63 MBytes       &lt;br /&gt;
[  5]  24.00-25.00  sec  4.50 MBytes  37.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  25.00-26.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  26.00-27.00  sec  5.62 MBytes  47.2 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  27.00-28.00  sec  6.62 MBytes  55.6 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  28.00-29.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  29.00-30.00  sec  4.88 MBytes  40.8 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-30.00  sec   150 MBytes  41.9 Mbits/sec    3             sender&lt;br /&gt;
[  5]   0.00-30.32  sec   150 MBytes  41.5 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
'''''Note:''''' This Bluetooth section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, bluetooth capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Remote device is recognized after scan&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For iMX91 Industrial Module Max (u-blox MAYA-W260-00B assembled) please use instead of &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 3000000 flow&amp;lt;/syntaxhighlight&amp;gt; command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 115200 flow&amp;lt;/syntaxhighlight&amp;gt; in below code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# attach necessary modules&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
root@imx91-voipac:~# modprobe hci_uart&lt;br /&gt;
root@imx91-voipac:~# hciattach /dev/ttyLP7 any 3000000 flow&lt;br /&gt;
Device setup complete&lt;br /&gt;
root@imx91-voipac:~# [ 1207.472299] Bluetooth: MGMT ver 1.22&lt;br /&gt;
[ 1207.485171] NET: Registered PF_ALG protocol family&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# put hci0 device up&lt;br /&gt;
root@imx91-voipac:~# hciconfig hci0 up&lt;br /&gt;
&lt;br /&gt;
# scan for remote bluetooth devices (enable bluetooth on phone and make it discoverable)&lt;br /&gt;
root@imx91-voipac:~# hcitool  scan                                                                             &lt;br /&gt;
Scanning ...                     &lt;br /&gt;
Devices:&lt;br /&gt;
    hci0    00:0D:18:01:5A:B3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethernet ==&lt;br /&gt;
'''''Note:'''''  This section was tested with the iMX91 Industrial Module in Max configuration which includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. For the Basic configuration, Ethernet capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Device driver is available (for Pro configuration only one ethernet is available)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' MAC address should be identical with the address on the sticker placed on the board&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth0&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:ae brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.33/24 metric 10 brd 192.168.1.255 scope global dynamic eth0&lt;br /&gt;
       valid_lft 86378sec preferred_lft 86378sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8cae/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth1&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:af brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.34/24 metric 10 brd 192.168.1.255 scope global dynamic eth1&lt;br /&gt;
       valid_lft 86391sec preferred_lft 86391sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8caf/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug Ethernet cable into top or bottom connector for the Max configuration. Plug Ethernet cable into bottom connector for the Pro configuration.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' IPv4 address is assigned&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[ 1599.750399] fec 42890000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
[ 1630.695671] imx-dwmac 428a0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
iPerf3 was used to test the Ethernet performance. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' The Max configuration of the iMX91 Industrial Module includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. &amp;lt;br /&amp;gt; &lt;br /&gt;
'''''Input:''''' Start iPerf3 on computer using command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;iperf3 -s &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''''Output:''''' Verify performance on board (argument after -c is IP address of your computer) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.120 -t 10 -i 1&lt;br /&gt;
Connecting to host 192.168.240.120, port 5201&lt;br /&gt;
[  5] local 192.168.240.32 port 57734 connected to 192.168.240.120 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec   114 MBytes   951 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec   112 MBytes   943 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec   113 MBytes   947 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec   112 MBytes   944 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec   112 MBytes   940 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec   112 MBytes   943 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec   113 MBytes   946 Mbits/sec    0    516 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec  1.10 GBytes   943 Mbits/sec    0             sender&lt;br /&gt;
[  5]   0.00-10.05  sec  1.10 GBytes   937 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
root@imx91-voipac:~# &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB 2.0 ==&lt;br /&gt;
NOTE: Perform read/write performance test&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Input:''''' Plug USB flash drive into USB connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Plugged USB device is listed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# lsusb&lt;br /&gt;
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 003: ID 125f:d31a A-DATA Technology Co., Ltd. &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Generate a dummy file and copy it into USB flash drive&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Generated file and copied file have the same checksum&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# mount /dev/sda1 /media/&lt;br /&gt;
root@imx91-voipac:~# rm -f file.txt /media/file.txt &lt;br /&gt;
root@imx91-voipac:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024&lt;br /&gt;
1024+0 records in&lt;br /&gt;
1024+0 records out&lt;br /&gt;
root@imx91-voipac:~# cp file.txt /media/&lt;br /&gt;
root@imx91-voipac:~# md5sum file.txt /media/file.txt &lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  file.txt&lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# rm file.txt /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# umount /media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB-C ==&lt;br /&gt;
This connector is primarily used for flashing new binaries into the iMX91 Industrial Module. More information can be found on the dedicated [[iMX91 Industrial Flashing Procedure|module flashing page]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Micro-B serial console ==&lt;br /&gt;
'''''Input:''''' Connect USB console cable into the base board connector and open serial console with baud rate 115200 8n1&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board is controlled and responsive to serial terminal commands&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# uname -a&lt;br /&gt;
Linux imx91-voipac 6.6.36-lts-next-g2e3e2e65d92a #1 SMP PREEMPT Wed Sep  4 08:22:45 UTC 2024 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART serial console ==&lt;br /&gt;
Serial console is utilized via USB Micro-B connector by default. Alternatively, the communication can be established using UART headers and TTL-232R-3V3 - FTDI cable.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NOTE: Describe jumpers position&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-Serial console via UART1.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Usage of UART2 CONSOLE to communicate by default requires changes in Yocto binaries and new compilation of image files. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-Serial console via UART2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== SD Card ==&lt;br /&gt;
NOTE: Perform detection of SD Card&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# fdisk -l&lt;br /&gt;
Disk /dev/mmcblk0: 15 GB, 15758000128 bytes, 30777344 sectors&lt;br /&gt;
240448 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk0p1 *  128,0,1     1023,3,32        16384     186775     170392 83.1M  c Win95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2    1023,3,32   1023,3,32       196608     939761     743154  362M 83 Linux&lt;br /&gt;
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk0boot1: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk1: 15 GB, 15931539456 bytes, 31116288 sectors&lt;br /&gt;
243096 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk1p1    512,0,1     1023,3,32        65536     266255     200720 98.0M 83 Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk1 is SD card (mmcblk0 is eMMC)&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-JTAG communication setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
To verify that i.MX93 CPU JTAG is functional, following command identifies and connects to the CPU's debug point:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
J-Link&amp;gt; jtagid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:J-Link MIMX9352 A55 1.png|800px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:J-Link MIMX9352 M33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Real Time Clock ==&lt;br /&gt;
RTC chip is detected by Linux kernel after start-up:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep rtc&lt;br /&gt;
[    0.894414] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)&lt;br /&gt;
[    0.910506] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes&lt;br /&gt;
[    1.209418] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0&lt;br /&gt;
[    1.215749] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPU correctly recognises RTC on the I2C1 bus, the chip is under usage by the kernel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# i2cdetect -r -y 1                                                                                                                                                                                                        &lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- -- &lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- --                     &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the current date and time, show the actual values&lt;br /&gt;
&lt;br /&gt;
Setup date and time&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
date -s &amp;quot;2025-8-13 14:52:26&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show actual values&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# timedatectl &lt;br /&gt;
[  134.509782] kauditd_printk_skb: 8 callbacks suppressed&lt;br /&gt;
[  134.509793] audit: type=1334 audit(1732625725.140:18): prog-id=19 op=LOAD&lt;br /&gt;
[  134.523935] audit: type=1334 audit(1732625725.148:19): prog-id=20 op=LOAD&lt;br /&gt;
[  134.531609] audit: type=1334 audit(1732625725.152:20): prog-id=21 op=LOAD&lt;br /&gt;
               Local time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
           Universal time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
                 RTC time: Tue 2024-11-26 12:55:25&lt;br /&gt;
                Time zone: UTC (UTC, +0000)&lt;br /&gt;
System clock synchronized: yes&lt;br /&gt;
              NTP service: active&lt;br /&gt;
          RTC in local TZ: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I2C EEPROM Memory - on module ==&lt;br /&gt;
'''''Input:''''' Power on board&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Store some data to eeprom and after reboot read it back and should be same &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# dd if=/dev/urandom of=/sys/bus/i2c/devices/0-0050/eeprom bs=8 count=1&lt;br /&gt;
+1 records in&lt;br /&gt;
0+1 records out&lt;br /&gt;
8 bytes copied, 0.0225523 s, 0.4 kB/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After board reboot:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# hexdump -n8 /sys/bus/i2c/devices/0-0050/eeprom                                              &lt;br /&gt;
0000000 c4dd 4eda d624 535e                    &lt;br /&gt;
0000008&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reset button ==&lt;br /&gt;
'''''Input:''''' Press the RESET button&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will execute bootloader immediately with &amp;quot;Reset cause: POR&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' iMX91 Industrial Development Kit should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2023.04+gf8a2983ec8+p0 (Mar 04 2024 - 07:25:04 +0000)&lt;br /&gt;
&lt;br /&gt;
CPU:   i.MX93(52) rev1.1 1700 MHz (running at 1692 MHz)&lt;br /&gt;
CPU:   Industrial temperature grade (-40C to 105C) at 45C&lt;br /&gt;
Reset cause: POR (0x1)&lt;br /&gt;
Model: NXP i.MX93 Voipac EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  215 devices, 32 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On/Off button ==&lt;br /&gt;
'''''Input:''''' Press and hold On/Off button for more then 5 seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will be powered off&lt;br /&gt;
&lt;br /&gt;
Press shortly the On/Off button again, the board will be powered on.&lt;br /&gt;
&lt;br /&gt;
== Sleep Mode ==&lt;br /&gt;
'''''Input:''''' Type command:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo mem &amp;gt; /sys/power/state&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Output:''''' The board will go into a frozen state and the serial console will not respond to inputs.&lt;br /&gt;
&lt;br /&gt;
Shortly press the Up user button, to wake the board up again.&lt;br /&gt;
&lt;br /&gt;
[[File:imx91_sleep_mode.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User buttons ==&lt;br /&gt;
'''''Input:''''' Press Enter/Left/Right/Up/Down buttons&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Button events 1 and 0 are generated&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# evtest /dev/input/by-path/platform-gpio-buttons-event &lt;br /&gt;
Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100&lt;br /&gt;
Input device name: &amp;quot;gpio-buttons&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 28 (KEY_ENTER)&lt;br /&gt;
    Event code 103 (KEY_UP)&lt;br /&gt;
    Event code 105 (KEY_LEFT)&lt;br /&gt;
    Event code 106 (KEY_RIGHT)&lt;br /&gt;
    Event code 108 (KEY_DOWN)&lt;br /&gt;
Properties:&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1717485486.586413, type 1 (EV_KEY), code 103 (KEY_UP), value 1&lt;br /&gt;
Event: time 1717485486.586413, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485486.682265, type 1 (EV_KEY), code 103 (KEY_UP), value 0&lt;br /&gt;
Event: time 1717485486.682265, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.255120, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1&lt;br /&gt;
Event: time 1717485487.255120, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.367126, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0&lt;br /&gt;
Event: time 1717485487.367126, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.539564, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1&lt;br /&gt;
Event: time 1717485488.539564, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.677501, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0&lt;br /&gt;
Event: time 1717485488.677501, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.897627, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1&lt;br /&gt;
Event: time 1717485488.897627, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.013136, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0&lt;br /&gt;
Event: time 1717485489.013136, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.264589, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1&lt;br /&gt;
Event: time 1717485489.264589, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.372584, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0&lt;br /&gt;
Event: time 1717485489.372584, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User LED ==&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Script switches User LED on baseboard ON and OFF in one second intervals&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LED=/sys/class/leds/user_sbc&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
        echo 0 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
        echo 1 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on baseboard is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_sbc/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on SOM is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_som/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:imx91_sleep_mode.png&amp;diff=5851</id>
		<title>File:imx91 sleep mode.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:imx91_sleep_mode.png&amp;diff=5851"/>
		<updated>2025-10-30T10:28:25Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5850</id>
		<title>iMX91 Industrial Accessing and Testing Peripherals</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5850"/>
		<updated>2025-10-30T10:27:59Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* JTAG */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Testing]]&lt;br /&gt;
[[Category:iMX91 Industrial Peripherals]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial operations with the iMX91 Industrial Development Kit interfaces are presented on this page. For more specific information such as display options, camera capabilities or industrial modular extensions, refer to the dedicated [[iMX91 Industrial Max#Peripherals_and_Accessories|Peripherals and Accessories section]].&lt;br /&gt;
&lt;br /&gt;
== Mandatory components ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* iMX91 Industrial Module&lt;br /&gt;
* iMX Development Baseboard&lt;br /&gt;
* [https://www.voipac.com/power-supply-5v-20w DC power supply (5V, 4A, 20W)]&lt;br /&gt;
&lt;br /&gt;
=== Peripherals and Accessories ===&lt;br /&gt;
* [https://wiki.voipac.com/index.php?title=NXP_Parallel_TFT_Display_Set NXP Parallel TFT Display Set]&lt;br /&gt;
* [https://www.voipac.com/imx9-wifi-and-bluetooth-antennas-set iMX9 Wifi and Bluetooth antenna set]&lt;br /&gt;
* 1x MicroSDHC card Class 10 or higher&lt;br /&gt;
* 1x USB Flash drive 2.0&lt;br /&gt;
* Headphones&lt;br /&gt;
* Analog external microphone&lt;br /&gt;
&lt;br /&gt;
=== Cables ===&lt;br /&gt;
* USB Micro-B cable for serial console&lt;br /&gt;
* USB-C cable for module flashing&lt;br /&gt;
* Ethernet cable&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
'''''Note:''''' This audio section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, audio capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Search kernel log for wm8904 chip&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio chip is detected and bound as an output and input device&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep wm8904&lt;br /&gt;
[    6.546858] wm8904 0-001a: supply DCVDD not found, using dummy regulator&lt;br /&gt;
[    6.591866] wm8904 0-001a: supply DBVDD not found, using dummy regulator&lt;br /&gt;
[    6.611921] wm8904 0-001a: supply AVDD not found, using dummy regulator&lt;br /&gt;
[    6.637768] wm8904 0-001a: supply CPVDD not found, using dummy regulator&lt;br /&gt;
[    6.670934] wm8904 0-001a: supply MICVDD not found, using dummy regulator&lt;br /&gt;
[    6.683500] wm8904 0-001a: revision A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Run amixer command&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Current audio chip settings are displayed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer    &lt;br /&gt;
Simple mixer control 'Headphone',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
  Front Right: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
Simple mixer control 'Headphone ZC',0&lt;br /&gt;
  Capabilities: pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback [on]&lt;br /&gt;
  Front Right: Playback [on]&lt;br /&gt;
Simple mixer control 'Line Output',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
  Front Right: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Connect headphones into LINE OUT jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio file is played and heard&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx8mq-voipac:~# aplay /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
root@imx8mq-voipac:~# aplay -D sysdefault:CARD=wm8904audio /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug headphones into HEADPHONES jack connector and analog external microphone to MIC jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Sound recorder by microphone is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture' '31'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture Input' ADC&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Left Capture Inverting Mux' 'IN2L'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Right Capture Inverting Mux' 'IN2R'&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Microphone and headphones setup can also be graphically displayed and adjusted:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# alsamixer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-AlsaMixer_setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Verify digital microphones (Mic Left, Mic Mid, Mic Right) &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Microphone sound is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set &amp;quot;Capture Input&amp;quot; &amp;quot;DMIC&amp;quot;&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WiFi ==&lt;br /&gt;
'''''Note:''''' This WiFi section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configurations, wireless connectivity is not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the device driver:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
[  926.305344] mlan: loading out-of-tree module taints kernel.&lt;br /&gt;
[  926.334171] wlan: Loading MWLAN driver&lt;br /&gt;
[  926.339152] wlan: Register to Bus Driver...&lt;br /&gt;
[  926.343686] vendor=0x02DF device=0x9159 class=0 function=1&lt;br /&gt;
[  926.349765] Attach moal handle ops, card interface type: 0x108&lt;br /&gt;
[  926.355633] rps set to 0 from module param&lt;br /&gt;
[  926.362045] SDIW416: init module param from usr cfg&lt;br /&gt;
[  926.366995] card_type: SDIW416, config block: 0&lt;br /&gt;
[  926.371541] cfg80211_wext=0xf&lt;br /&gt;
[  926.374515] max_vir_bss=1&lt;br /&gt;
[  926.377131] cal_data_cfg=none&lt;br /&gt;
[  926.380112] ps_mode = 1&lt;br /&gt;
[  926.382567] auto_ds = 1&lt;br /&gt;
[  926.385010] host_mlme=enable&lt;br /&gt;
[  926.387895] fw_name=nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.392709] SDIO: max_segs=128 max_seg_size=65535&lt;br /&gt;
[  926.397420] rx_work=1 cpu_num=2&lt;br /&gt;
[  926.400569] Enable moal_recv_amsdu_packet&lt;br /&gt;
[  926.404600] Attach mlan adapter operations.card_type is 0x108.&lt;br /&gt;
[  926.410826] wlan: Enable TX SG mode&lt;br /&gt;
[  926.414357] wlan: Enable RX SG mode&lt;br /&gt;
[  926.421681] Request firmware: nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.708639] Wlan: FW download over, firmwarelen=591808 downloaded 583072&lt;br /&gt;
[  928.113594] WLAN FW is active&lt;br /&gt;
[  928.116573] on_time is 927947046442&lt;br /&gt;
[  928.140994] VDLL image: len=8736&lt;br /&gt;
[  928.144352] FW country code WW does not match with US&lt;br /&gt;
[  928.150617] fw_cap_info=0x187ccf03, dev_cap_mask=0xffffffff&lt;br /&gt;
[  928.156607] max_p2p_conn = 8, max_sta_conn = 8&lt;br /&gt;
[  928.176236] Register NXP 802.11 Adapter mlan0&lt;br /&gt;
[  928.183724] Register NXP 802.11 Adapter uap0&lt;br /&gt;
[  928.194033] Register NXP 802.11 Adapter wfd0&lt;br /&gt;
[  928.199986] wlan: version = SDIW416---16.92.21.p137.2-MM6X16437.p30-GPL-(FP92) &lt;br /&gt;
[  928.208947] wlan: Register to Bus Driver Done&lt;br /&gt;
[  928.216412] wlan: Driver loaded successfully&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if the WiFi interface is present:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev mlan0&lt;br /&gt;
3: wlp1s0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN group default qlen 1000&lt;br /&gt;
    link/ether 78:c4:0e:a0:32:16 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Scan the available WiFi networks&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Networks are scanned and in-depth information are displayed&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ifconfig mlan0 up &amp;amp;&amp;amp; iw dev mlan0 scan&lt;br /&gt;
BSS 94:27:90:7f:c3:d3(on wlp1s0)&lt;br /&gt;
        TSF: 1213185029341 usec (14d, 00:59:45)&lt;br /&gt;
        freq: 2442&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 4056 ms ago&lt;br /&gt;
        SSID: HH40V_C3D3&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0&lt;br /&gt;
        DS Parameter set: channel 7&lt;br /&gt;
        Country: SK     Environment: Indoor/Outdoor&lt;br /&gt;
                Channels [1 - 13] @ 20 dBm&lt;br /&gt;
        ERP: &amp;lt;no flags&amp;gt;&lt;br /&gt;
        Extended supported rates: 24.0 36.0 48.0 54.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x1ad&lt;br /&gt;
                        RX LDPC&lt;br /&gt;
                        HT20&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        TX STBC&lt;br /&gt;
                        RX STBC 1-stream&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        No DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 8 usec (0x06)&lt;br /&gt;
                HT TX/RX MCS rate indexes supported: 0-15&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 7&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 1&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
                 * Extended Channel Switching&lt;br /&gt;
                 * SSID List&lt;br /&gt;
                 * Operating Mode Notification&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: CCMP&lt;br /&gt;
                 * Pairwise ciphers: CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 87654321-9abc-def0-1234-942790c36dc7&lt;br /&gt;
                 * Manufacturer: TCL.org&lt;br /&gt;
                 * Model: WAP&lt;br /&gt;
                 * Model Number: 123&lt;br /&gt;
                 * Serial Number: 12345&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: TCL AP&lt;br /&gt;
                 * Config methods:&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5c:06:80(on wlp1s0)&lt;br /&gt;
        TSF: 787677017722 usec (9d, 02:47:57)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 3952 ms ago&lt;br /&gt;
        SSID: OrangeFlybox_0680&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: 20 MHz&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 3&lt;br /&gt;
                 * channel utilisation: 27/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945c06c4&lt;br /&gt;
                 * Manufacturer: TP-LINK&lt;br /&gt;
                 * Model: Archer MR200&lt;br /&gt;
                 * Model Number: 1.0&lt;br /&gt;
                 * Serial Number: 1.0&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: AC750 Wireless Dual Band 4G LTE&lt;br /&gt;
                 * Config methods: Label, Display, Keypad&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5b:f8:04(on wlp1s0)&lt;br /&gt;
        TSF: 1210179077454 usec (14d, 00:09:39)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -50.00 dBm&lt;br /&gt;
        last seen: 3432 ms ago&lt;br /&gt;
        SSID: REDARROW&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x2&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945bf8c4&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 0&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 0&lt;br /&gt;
                 * channel utilisation: 47/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set up the network login data, edit file located in /etc/wpa_supplicant.conf and update '''''ssid''''' and passphrase '''''psk''''' fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# cat /etc/wpa_supplicant.conf &lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;SSID_FOR_WIFI_NETWORK&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        psk=&amp;quot;WIFI_NETWORK_PASSWORD&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to the desired WiFi network, start wpa_supplicant:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf &amp;amp;&lt;br /&gt;
root@imx91-voipac:~# rfkill: Cannot open RFKILL control device&lt;br /&gt;
[  261.722718] wlan: mlan0 START SCAN&lt;br /&gt;
[  266.018892] wlan: SCAN COMPLETED: scanned AP count=1&lt;br /&gt;
mlan0: SME: Trying to authentica[  266.027303] wlan: HostMlme mlan0 send auth to bssid 40:XX:XX:XX:70:62&lt;br /&gt;
te with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' f[  266.037546] mlan0: &lt;br /&gt;
req=2437 MHz)&lt;br /&gt;
[  266.037558] wlan: HostMlme Auth received from 40:XX:XX:XX:70:62&lt;br /&gt;
mlan0: Trying to associate with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' freq=2437 MHz)&lt;br /&gt;
[  266.057956] wlan: HostMlme mlan0 Connected to bssid 40:XX:XX:XX:70:62 successfully&lt;br /&gt;
mlan0: Associated[  266.067323] mlan0: &lt;br /&gt;
 with 40:a5:ef:c0[  266.067340] wlan: Send EAPOL pkt to 40:XX:XX:XX:70:62&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To obtain an IP address and other network settings, run dhcp client:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
udhcpc -i mlan0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point the bandwidth measurement can be tested, showing that WiFi connection was established and is performed very reliably.&lt;br /&gt;
Used program: [https://iperf.fr iPerf3.]  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Configuration:''''' iMX91 Industrial Module Pro in Industrial temperature range (u-blox MAYA-W160-00B assembled):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.200 -t 30 -i1&lt;br /&gt;
Connecting to host 192.168.240.200, port 5201&lt;br /&gt;
[  5] local 192.168.240.111 port 39988 connected to 192.168.240.200 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  5.12 MBytes  43.0 Mbits/sec    0    223 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  5.38 MBytes  45.1 Mbits/sec    0    460 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  7.12 MBytes  59.8 Mbits/sec    0    747 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  4.25 MBytes  35.7 Mbits/sec    0   1003 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  5.38 MBytes  45.1 Mbits/sec    0   1.25 MBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.52 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.78 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  5.62 MBytes  47.2 Mbits/sec    0   2.06 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  5.50 MBytes  46.1 Mbits/sec    0   2.31 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  5.50 MBytes  46.1 Mbits/sec    0   2.64 MBytes       &lt;br /&gt;
[  5]  10.00-11.00  sec  6.75 MBytes  56.6 Mbits/sec    0   2.93 MBytes       &lt;br /&gt;
[  5]  11.00-12.00  sec  3.00 MBytes  25.2 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  12.00-13.00  sec  6.75 MBytes  56.6 Mbits/sec    0   3.41 MBytes       &lt;br /&gt;
[  5]  13.00-14.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.61 MBytes       &lt;br /&gt;
[  5]  14.00-15.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  15.00-16.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  17.00-18.00  sec  5.88 MBytes  49.3 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  18.00-19.00  sec  2.75 MBytes  23.1 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  19.00-20.00  sec  3.38 MBytes  28.3 Mbits/sec    3   2.86 MBytes       &lt;br /&gt;
[  5]  20.00-21.00  sec  2.88 MBytes  24.1 Mbits/sec    0   2.94 MBytes       &lt;br /&gt;
[  5]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  22.00-23.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.44 MBytes       &lt;br /&gt;
[  5]  23.00-24.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.63 MBytes       &lt;br /&gt;
[  5]  24.00-25.00  sec  4.50 MBytes  37.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  25.00-26.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  26.00-27.00  sec  5.62 MBytes  47.2 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  27.00-28.00  sec  6.62 MBytes  55.6 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  28.00-29.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  29.00-30.00  sec  4.88 MBytes  40.8 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-30.00  sec   150 MBytes  41.9 Mbits/sec    3             sender&lt;br /&gt;
[  5]   0.00-30.32  sec   150 MBytes  41.5 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
'''''Note:''''' This Bluetooth section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, bluetooth capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Remote device is recognized after scan&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For iMX91 Industrial Module Max (u-blox MAYA-W260-00B assembled) please use instead of &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 3000000 flow&amp;lt;/syntaxhighlight&amp;gt; command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 115200 flow&amp;lt;/syntaxhighlight&amp;gt; in below code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# attach necessary modules&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
root@imx91-voipac:~# modprobe hci_uart&lt;br /&gt;
root@imx91-voipac:~# hciattach /dev/ttyLP7 any 3000000 flow&lt;br /&gt;
Device setup complete&lt;br /&gt;
root@imx91-voipac:~# [ 1207.472299] Bluetooth: MGMT ver 1.22&lt;br /&gt;
[ 1207.485171] NET: Registered PF_ALG protocol family&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# put hci0 device up&lt;br /&gt;
root@imx91-voipac:~# hciconfig hci0 up&lt;br /&gt;
&lt;br /&gt;
# scan for remote bluetooth devices (enable bluetooth on phone and make it discoverable)&lt;br /&gt;
root@imx91-voipac:~# hcitool  scan                                                                             &lt;br /&gt;
Scanning ...                     &lt;br /&gt;
Devices:&lt;br /&gt;
    hci0    00:0D:18:01:5A:B3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethernet ==&lt;br /&gt;
'''''Note:'''''  This section was tested with the iMX91 Industrial Module in Max configuration which includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. For the Basic configuration, Ethernet capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Device driver is available (for Pro configuration only one ethernet is available)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' MAC address should be identical with the address on the sticker placed on the board&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth0&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:ae brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.33/24 metric 10 brd 192.168.1.255 scope global dynamic eth0&lt;br /&gt;
       valid_lft 86378sec preferred_lft 86378sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8cae/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth1&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:af brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.34/24 metric 10 brd 192.168.1.255 scope global dynamic eth1&lt;br /&gt;
       valid_lft 86391sec preferred_lft 86391sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8caf/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug Ethernet cable into top or bottom connector for the Max configuration. Plug Ethernet cable into bottom connector for the Pro configuration.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' IPv4 address is assigned&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[ 1599.750399] fec 42890000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
[ 1630.695671] imx-dwmac 428a0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
iPerf3 was used to test the Ethernet performance. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' The Max configuration of the iMX91 Industrial Module includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. &amp;lt;br /&amp;gt; &lt;br /&gt;
'''''Input:''''' Start iPerf3 on computer using command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;iperf3 -s &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''''Output:''''' Verify performance on board (argument after -c is IP address of your computer) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.120 -t 10 -i 1&lt;br /&gt;
Connecting to host 192.168.240.120, port 5201&lt;br /&gt;
[  5] local 192.168.240.32 port 57734 connected to 192.168.240.120 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec   114 MBytes   951 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec   112 MBytes   943 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec   113 MBytes   947 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec   112 MBytes   944 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec   112 MBytes   940 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec   112 MBytes   943 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec   113 MBytes   946 Mbits/sec    0    516 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec  1.10 GBytes   943 Mbits/sec    0             sender&lt;br /&gt;
[  5]   0.00-10.05  sec  1.10 GBytes   937 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
root@imx91-voipac:~# &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB 2.0 ==&lt;br /&gt;
NOTE: Perform read/write performance test&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Input:''''' Plug USB flash drive into USB connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Plugged USB device is listed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# lsusb&lt;br /&gt;
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 003: ID 125f:d31a A-DATA Technology Co., Ltd. &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Generate a dummy file and copy it into USB flash drive&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Generated file and copied file have the same checksum&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# mount /dev/sda1 /media/&lt;br /&gt;
root@imx91-voipac:~# rm -f file.txt /media/file.txt &lt;br /&gt;
root@imx91-voipac:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024&lt;br /&gt;
1024+0 records in&lt;br /&gt;
1024+0 records out&lt;br /&gt;
root@imx91-voipac:~# cp file.txt /media/&lt;br /&gt;
root@imx91-voipac:~# md5sum file.txt /media/file.txt &lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  file.txt&lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# rm file.txt /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# umount /media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB-C ==&lt;br /&gt;
This connector is primarily used for flashing new binaries into the iMX91 Industrial Module. More information can be found on the dedicated [[iMX91 Industrial Flashing Procedure|module flashing page]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Micro-B serial console ==&lt;br /&gt;
'''''Input:''''' Connect USB console cable into the base board connector and open serial console with baud rate 115200 8n1&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board is controlled and responsive to serial terminal commands&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# uname -a&lt;br /&gt;
Linux imx91-voipac 6.6.36-lts-next-g2e3e2e65d92a #1 SMP PREEMPT Wed Sep  4 08:22:45 UTC 2024 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART serial console ==&lt;br /&gt;
Serial console is utilized via USB Micro-B connector by default. Alternatively, the communication can be established using UART headers and TTL-232R-3V3 - FTDI cable.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NOTE: Describe jumpers position&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-Serial console via UART1.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Usage of UART2 CONSOLE to communicate by default requires changes in Yocto binaries and new compilation of image files. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-Serial console via UART2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== SD Card ==&lt;br /&gt;
NOTE: Perform detection of SD Card&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# fdisk -l&lt;br /&gt;
Disk /dev/mmcblk0: 15 GB, 15758000128 bytes, 30777344 sectors&lt;br /&gt;
240448 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk0p1 *  128,0,1     1023,3,32        16384     186775     170392 83.1M  c Win95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2    1023,3,32   1023,3,32       196608     939761     743154  362M 83 Linux&lt;br /&gt;
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk0boot1: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk1: 15 GB, 15931539456 bytes, 31116288 sectors&lt;br /&gt;
243096 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk1p1    512,0,1     1023,3,32        65536     266255     200720 98.0M 83 Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk1 is SD card (mmcblk0 is eMMC)&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-JTAG communication setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
To verify that i.MX93 CPU JTAG is functional, following command identifies and connects to the CPU's debug point:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
J-Link&amp;gt; jtagid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:J-Link MIMX9352 A55 1.png|800px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:J-Link MIMX9352 M33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Real Time Clock ==&lt;br /&gt;
RTC chip is detected by Linux kernel after start-up:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep rtc&lt;br /&gt;
[    0.894414] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)&lt;br /&gt;
[    0.910506] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes&lt;br /&gt;
[    1.209418] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0&lt;br /&gt;
[    1.215749] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPU correctly recognises RTC on the I2C1 bus, the chip is under usage by the kernel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# i2cdetect -r -y 1                                                                                                                                                                                                        &lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- -- &lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- --                     &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the current date and time, show the actual values&lt;br /&gt;
&lt;br /&gt;
Setup date and time&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
date -s &amp;quot;2025-8-13 14:52:26&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show actual values&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# timedatectl &lt;br /&gt;
[  134.509782] kauditd_printk_skb: 8 callbacks suppressed&lt;br /&gt;
[  134.509793] audit: type=1334 audit(1732625725.140:18): prog-id=19 op=LOAD&lt;br /&gt;
[  134.523935] audit: type=1334 audit(1732625725.148:19): prog-id=20 op=LOAD&lt;br /&gt;
[  134.531609] audit: type=1334 audit(1732625725.152:20): prog-id=21 op=LOAD&lt;br /&gt;
               Local time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
           Universal time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
                 RTC time: Tue 2024-11-26 12:55:25&lt;br /&gt;
                Time zone: UTC (UTC, +0000)&lt;br /&gt;
System clock synchronized: yes&lt;br /&gt;
              NTP service: active&lt;br /&gt;
          RTC in local TZ: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I2C EEPROM Memory - on module ==&lt;br /&gt;
'''''Input:''''' Power on board&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Store some data to eeprom and after reboot read it back and should be same &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# dd if=/dev/urandom of=/sys/bus/i2c/devices/0-0050/eeprom bs=8 count=1&lt;br /&gt;
+1 records in&lt;br /&gt;
0+1 records out&lt;br /&gt;
8 bytes copied, 0.0225523 s, 0.4 kB/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After board reboot:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# hexdump -n8 /sys/bus/i2c/devices/0-0050/eeprom                                              &lt;br /&gt;
0000000 c4dd 4eda d624 535e                    &lt;br /&gt;
0000008&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reset button ==&lt;br /&gt;
'''''Input:''''' Press the RESET button&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will execute bootloader immediately with &amp;quot;Reset cause: POR&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' iMX91 Industrial Development Kit should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2023.04+gf8a2983ec8+p0 (Mar 04 2024 - 07:25:04 +0000)&lt;br /&gt;
&lt;br /&gt;
CPU:   i.MX93(52) rev1.1 1700 MHz (running at 1692 MHz)&lt;br /&gt;
CPU:   Industrial temperature grade (-40C to 105C) at 45C&lt;br /&gt;
Reset cause: POR (0x1)&lt;br /&gt;
Model: NXP i.MX93 Voipac EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  215 devices, 32 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On/Off button ==&lt;br /&gt;
'''''Input:''''' Press and hold On/Off button for more then 5 seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will be powered off&lt;br /&gt;
&lt;br /&gt;
Press shortly the On/Off button again, the board will be powered on.&lt;br /&gt;
&lt;br /&gt;
== Sleep Mode ==&lt;br /&gt;
'''''Input:''''' Type command:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo mem &amp;gt; /sys/power/state&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Output:''''' The board will go into a frozen state and the serial console will not respond to inputs.&lt;br /&gt;
&lt;br /&gt;
Shortly press the Up user button, to wake the board up again.&lt;br /&gt;
&lt;br /&gt;
[[File:imx93_sleep_mode.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User buttons ==&lt;br /&gt;
'''''Input:''''' Press Enter/Left/Right/Up/Down buttons&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Button events 1 and 0 are generated&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# evtest /dev/input/by-path/platform-gpio-buttons-event &lt;br /&gt;
Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100&lt;br /&gt;
Input device name: &amp;quot;gpio-buttons&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 28 (KEY_ENTER)&lt;br /&gt;
    Event code 103 (KEY_UP)&lt;br /&gt;
    Event code 105 (KEY_LEFT)&lt;br /&gt;
    Event code 106 (KEY_RIGHT)&lt;br /&gt;
    Event code 108 (KEY_DOWN)&lt;br /&gt;
Properties:&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1717485486.586413, type 1 (EV_KEY), code 103 (KEY_UP), value 1&lt;br /&gt;
Event: time 1717485486.586413, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485486.682265, type 1 (EV_KEY), code 103 (KEY_UP), value 0&lt;br /&gt;
Event: time 1717485486.682265, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.255120, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1&lt;br /&gt;
Event: time 1717485487.255120, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.367126, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0&lt;br /&gt;
Event: time 1717485487.367126, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.539564, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1&lt;br /&gt;
Event: time 1717485488.539564, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.677501, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0&lt;br /&gt;
Event: time 1717485488.677501, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.897627, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1&lt;br /&gt;
Event: time 1717485488.897627, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.013136, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0&lt;br /&gt;
Event: time 1717485489.013136, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.264589, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1&lt;br /&gt;
Event: time 1717485489.264589, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.372584, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0&lt;br /&gt;
Event: time 1717485489.372584, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User LED ==&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Script switches User LED on baseboard ON and OFF in one second intervals&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LED=/sys/class/leds/user_sbc&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
        echo 0 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
        echo 1 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on baseboard is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_sbc/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on SOM is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_som/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-JTAG_communication_setup.png&amp;diff=5849</id>
		<title>File:iMX91 Industrial Development Kit-JTAG communication setup.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-JTAG_communication_setup.png&amp;diff=5849"/>
		<updated>2025-10-30T10:27:33Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-Serial_console_via_UART2.png&amp;diff=5848</id>
		<title>File:iMX91 Industrial Development Kit-Serial console via UART2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-Serial_console_via_UART2.png&amp;diff=5848"/>
		<updated>2025-10-30T10:26:39Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5847</id>
		<title>iMX91 Industrial Accessing and Testing Peripherals</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5847"/>
		<updated>2025-10-30T10:26:20Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* UART serial console */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Testing]]&lt;br /&gt;
[[Category:iMX91 Industrial Peripherals]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial operations with the iMX91 Industrial Development Kit interfaces are presented on this page. For more specific information such as display options, camera capabilities or industrial modular extensions, refer to the dedicated [[iMX91 Industrial Max#Peripherals_and_Accessories|Peripherals and Accessories section]].&lt;br /&gt;
&lt;br /&gt;
== Mandatory components ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* iMX91 Industrial Module&lt;br /&gt;
* iMX Development Baseboard&lt;br /&gt;
* [https://www.voipac.com/power-supply-5v-20w DC power supply (5V, 4A, 20W)]&lt;br /&gt;
&lt;br /&gt;
=== Peripherals and Accessories ===&lt;br /&gt;
* [https://wiki.voipac.com/index.php?title=NXP_Parallel_TFT_Display_Set NXP Parallel TFT Display Set]&lt;br /&gt;
* [https://www.voipac.com/imx9-wifi-and-bluetooth-antennas-set iMX9 Wifi and Bluetooth antenna set]&lt;br /&gt;
* 1x MicroSDHC card Class 10 or higher&lt;br /&gt;
* 1x USB Flash drive 2.0&lt;br /&gt;
* Headphones&lt;br /&gt;
* Analog external microphone&lt;br /&gt;
&lt;br /&gt;
=== Cables ===&lt;br /&gt;
* USB Micro-B cable for serial console&lt;br /&gt;
* USB-C cable for module flashing&lt;br /&gt;
* Ethernet cable&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
'''''Note:''''' This audio section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, audio capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Search kernel log for wm8904 chip&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio chip is detected and bound as an output and input device&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep wm8904&lt;br /&gt;
[    6.546858] wm8904 0-001a: supply DCVDD not found, using dummy regulator&lt;br /&gt;
[    6.591866] wm8904 0-001a: supply DBVDD not found, using dummy regulator&lt;br /&gt;
[    6.611921] wm8904 0-001a: supply AVDD not found, using dummy regulator&lt;br /&gt;
[    6.637768] wm8904 0-001a: supply CPVDD not found, using dummy regulator&lt;br /&gt;
[    6.670934] wm8904 0-001a: supply MICVDD not found, using dummy regulator&lt;br /&gt;
[    6.683500] wm8904 0-001a: revision A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Run amixer command&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Current audio chip settings are displayed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer    &lt;br /&gt;
Simple mixer control 'Headphone',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
  Front Right: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
Simple mixer control 'Headphone ZC',0&lt;br /&gt;
  Capabilities: pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback [on]&lt;br /&gt;
  Front Right: Playback [on]&lt;br /&gt;
Simple mixer control 'Line Output',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
  Front Right: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Connect headphones into LINE OUT jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio file is played and heard&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx8mq-voipac:~# aplay /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
root@imx8mq-voipac:~# aplay -D sysdefault:CARD=wm8904audio /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug headphones into HEADPHONES jack connector and analog external microphone to MIC jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Sound recorder by microphone is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture' '31'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture Input' ADC&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Left Capture Inverting Mux' 'IN2L'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Right Capture Inverting Mux' 'IN2R'&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Microphone and headphones setup can also be graphically displayed and adjusted:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# alsamixer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-AlsaMixer_setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Verify digital microphones (Mic Left, Mic Mid, Mic Right) &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Microphone sound is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set &amp;quot;Capture Input&amp;quot; &amp;quot;DMIC&amp;quot;&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WiFi ==&lt;br /&gt;
'''''Note:''''' This WiFi section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configurations, wireless connectivity is not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the device driver:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
[  926.305344] mlan: loading out-of-tree module taints kernel.&lt;br /&gt;
[  926.334171] wlan: Loading MWLAN driver&lt;br /&gt;
[  926.339152] wlan: Register to Bus Driver...&lt;br /&gt;
[  926.343686] vendor=0x02DF device=0x9159 class=0 function=1&lt;br /&gt;
[  926.349765] Attach moal handle ops, card interface type: 0x108&lt;br /&gt;
[  926.355633] rps set to 0 from module param&lt;br /&gt;
[  926.362045] SDIW416: init module param from usr cfg&lt;br /&gt;
[  926.366995] card_type: SDIW416, config block: 0&lt;br /&gt;
[  926.371541] cfg80211_wext=0xf&lt;br /&gt;
[  926.374515] max_vir_bss=1&lt;br /&gt;
[  926.377131] cal_data_cfg=none&lt;br /&gt;
[  926.380112] ps_mode = 1&lt;br /&gt;
[  926.382567] auto_ds = 1&lt;br /&gt;
[  926.385010] host_mlme=enable&lt;br /&gt;
[  926.387895] fw_name=nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.392709] SDIO: max_segs=128 max_seg_size=65535&lt;br /&gt;
[  926.397420] rx_work=1 cpu_num=2&lt;br /&gt;
[  926.400569] Enable moal_recv_amsdu_packet&lt;br /&gt;
[  926.404600] Attach mlan adapter operations.card_type is 0x108.&lt;br /&gt;
[  926.410826] wlan: Enable TX SG mode&lt;br /&gt;
[  926.414357] wlan: Enable RX SG mode&lt;br /&gt;
[  926.421681] Request firmware: nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.708639] Wlan: FW download over, firmwarelen=591808 downloaded 583072&lt;br /&gt;
[  928.113594] WLAN FW is active&lt;br /&gt;
[  928.116573] on_time is 927947046442&lt;br /&gt;
[  928.140994] VDLL image: len=8736&lt;br /&gt;
[  928.144352] FW country code WW does not match with US&lt;br /&gt;
[  928.150617] fw_cap_info=0x187ccf03, dev_cap_mask=0xffffffff&lt;br /&gt;
[  928.156607] max_p2p_conn = 8, max_sta_conn = 8&lt;br /&gt;
[  928.176236] Register NXP 802.11 Adapter mlan0&lt;br /&gt;
[  928.183724] Register NXP 802.11 Adapter uap0&lt;br /&gt;
[  928.194033] Register NXP 802.11 Adapter wfd0&lt;br /&gt;
[  928.199986] wlan: version = SDIW416---16.92.21.p137.2-MM6X16437.p30-GPL-(FP92) &lt;br /&gt;
[  928.208947] wlan: Register to Bus Driver Done&lt;br /&gt;
[  928.216412] wlan: Driver loaded successfully&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if the WiFi interface is present:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev mlan0&lt;br /&gt;
3: wlp1s0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN group default qlen 1000&lt;br /&gt;
    link/ether 78:c4:0e:a0:32:16 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Scan the available WiFi networks&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Networks are scanned and in-depth information are displayed&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ifconfig mlan0 up &amp;amp;&amp;amp; iw dev mlan0 scan&lt;br /&gt;
BSS 94:27:90:7f:c3:d3(on wlp1s0)&lt;br /&gt;
        TSF: 1213185029341 usec (14d, 00:59:45)&lt;br /&gt;
        freq: 2442&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 4056 ms ago&lt;br /&gt;
        SSID: HH40V_C3D3&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0&lt;br /&gt;
        DS Parameter set: channel 7&lt;br /&gt;
        Country: SK     Environment: Indoor/Outdoor&lt;br /&gt;
                Channels [1 - 13] @ 20 dBm&lt;br /&gt;
        ERP: &amp;lt;no flags&amp;gt;&lt;br /&gt;
        Extended supported rates: 24.0 36.0 48.0 54.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x1ad&lt;br /&gt;
                        RX LDPC&lt;br /&gt;
                        HT20&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        TX STBC&lt;br /&gt;
                        RX STBC 1-stream&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        No DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 8 usec (0x06)&lt;br /&gt;
                HT TX/RX MCS rate indexes supported: 0-15&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 7&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 1&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
                 * Extended Channel Switching&lt;br /&gt;
                 * SSID List&lt;br /&gt;
                 * Operating Mode Notification&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: CCMP&lt;br /&gt;
                 * Pairwise ciphers: CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 87654321-9abc-def0-1234-942790c36dc7&lt;br /&gt;
                 * Manufacturer: TCL.org&lt;br /&gt;
                 * Model: WAP&lt;br /&gt;
                 * Model Number: 123&lt;br /&gt;
                 * Serial Number: 12345&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: TCL AP&lt;br /&gt;
                 * Config methods:&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5c:06:80(on wlp1s0)&lt;br /&gt;
        TSF: 787677017722 usec (9d, 02:47:57)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 3952 ms ago&lt;br /&gt;
        SSID: OrangeFlybox_0680&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: 20 MHz&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 3&lt;br /&gt;
                 * channel utilisation: 27/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945c06c4&lt;br /&gt;
                 * Manufacturer: TP-LINK&lt;br /&gt;
                 * Model: Archer MR200&lt;br /&gt;
                 * Model Number: 1.0&lt;br /&gt;
                 * Serial Number: 1.0&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: AC750 Wireless Dual Band 4G LTE&lt;br /&gt;
                 * Config methods: Label, Display, Keypad&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5b:f8:04(on wlp1s0)&lt;br /&gt;
        TSF: 1210179077454 usec (14d, 00:09:39)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -50.00 dBm&lt;br /&gt;
        last seen: 3432 ms ago&lt;br /&gt;
        SSID: REDARROW&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x2&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945bf8c4&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 0&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 0&lt;br /&gt;
                 * channel utilisation: 47/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set up the network login data, edit file located in /etc/wpa_supplicant.conf and update '''''ssid''''' and passphrase '''''psk''''' fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# cat /etc/wpa_supplicant.conf &lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;SSID_FOR_WIFI_NETWORK&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        psk=&amp;quot;WIFI_NETWORK_PASSWORD&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to the desired WiFi network, start wpa_supplicant:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf &amp;amp;&lt;br /&gt;
root@imx91-voipac:~# rfkill: Cannot open RFKILL control device&lt;br /&gt;
[  261.722718] wlan: mlan0 START SCAN&lt;br /&gt;
[  266.018892] wlan: SCAN COMPLETED: scanned AP count=1&lt;br /&gt;
mlan0: SME: Trying to authentica[  266.027303] wlan: HostMlme mlan0 send auth to bssid 40:XX:XX:XX:70:62&lt;br /&gt;
te with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' f[  266.037546] mlan0: &lt;br /&gt;
req=2437 MHz)&lt;br /&gt;
[  266.037558] wlan: HostMlme Auth received from 40:XX:XX:XX:70:62&lt;br /&gt;
mlan0: Trying to associate with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' freq=2437 MHz)&lt;br /&gt;
[  266.057956] wlan: HostMlme mlan0 Connected to bssid 40:XX:XX:XX:70:62 successfully&lt;br /&gt;
mlan0: Associated[  266.067323] mlan0: &lt;br /&gt;
 with 40:a5:ef:c0[  266.067340] wlan: Send EAPOL pkt to 40:XX:XX:XX:70:62&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To obtain an IP address and other network settings, run dhcp client:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
udhcpc -i mlan0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point the bandwidth measurement can be tested, showing that WiFi connection was established and is performed very reliably.&lt;br /&gt;
Used program: [https://iperf.fr iPerf3.]  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Configuration:''''' iMX91 Industrial Module Pro in Industrial temperature range (u-blox MAYA-W160-00B assembled):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.200 -t 30 -i1&lt;br /&gt;
Connecting to host 192.168.240.200, port 5201&lt;br /&gt;
[  5] local 192.168.240.111 port 39988 connected to 192.168.240.200 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  5.12 MBytes  43.0 Mbits/sec    0    223 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  5.38 MBytes  45.1 Mbits/sec    0    460 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  7.12 MBytes  59.8 Mbits/sec    0    747 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  4.25 MBytes  35.7 Mbits/sec    0   1003 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  5.38 MBytes  45.1 Mbits/sec    0   1.25 MBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.52 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.78 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  5.62 MBytes  47.2 Mbits/sec    0   2.06 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  5.50 MBytes  46.1 Mbits/sec    0   2.31 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  5.50 MBytes  46.1 Mbits/sec    0   2.64 MBytes       &lt;br /&gt;
[  5]  10.00-11.00  sec  6.75 MBytes  56.6 Mbits/sec    0   2.93 MBytes       &lt;br /&gt;
[  5]  11.00-12.00  sec  3.00 MBytes  25.2 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  12.00-13.00  sec  6.75 MBytes  56.6 Mbits/sec    0   3.41 MBytes       &lt;br /&gt;
[  5]  13.00-14.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.61 MBytes       &lt;br /&gt;
[  5]  14.00-15.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  15.00-16.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  17.00-18.00  sec  5.88 MBytes  49.3 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  18.00-19.00  sec  2.75 MBytes  23.1 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  19.00-20.00  sec  3.38 MBytes  28.3 Mbits/sec    3   2.86 MBytes       &lt;br /&gt;
[  5]  20.00-21.00  sec  2.88 MBytes  24.1 Mbits/sec    0   2.94 MBytes       &lt;br /&gt;
[  5]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  22.00-23.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.44 MBytes       &lt;br /&gt;
[  5]  23.00-24.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.63 MBytes       &lt;br /&gt;
[  5]  24.00-25.00  sec  4.50 MBytes  37.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  25.00-26.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  26.00-27.00  sec  5.62 MBytes  47.2 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  27.00-28.00  sec  6.62 MBytes  55.6 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  28.00-29.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  29.00-30.00  sec  4.88 MBytes  40.8 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-30.00  sec   150 MBytes  41.9 Mbits/sec    3             sender&lt;br /&gt;
[  5]   0.00-30.32  sec   150 MBytes  41.5 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
'''''Note:''''' This Bluetooth section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, bluetooth capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Remote device is recognized after scan&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For iMX91 Industrial Module Max (u-blox MAYA-W260-00B assembled) please use instead of &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 3000000 flow&amp;lt;/syntaxhighlight&amp;gt; command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 115200 flow&amp;lt;/syntaxhighlight&amp;gt; in below code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# attach necessary modules&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
root@imx91-voipac:~# modprobe hci_uart&lt;br /&gt;
root@imx91-voipac:~# hciattach /dev/ttyLP7 any 3000000 flow&lt;br /&gt;
Device setup complete&lt;br /&gt;
root@imx91-voipac:~# [ 1207.472299] Bluetooth: MGMT ver 1.22&lt;br /&gt;
[ 1207.485171] NET: Registered PF_ALG protocol family&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# put hci0 device up&lt;br /&gt;
root@imx91-voipac:~# hciconfig hci0 up&lt;br /&gt;
&lt;br /&gt;
# scan for remote bluetooth devices (enable bluetooth on phone and make it discoverable)&lt;br /&gt;
root@imx91-voipac:~# hcitool  scan                                                                             &lt;br /&gt;
Scanning ...                     &lt;br /&gt;
Devices:&lt;br /&gt;
    hci0    00:0D:18:01:5A:B3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethernet ==&lt;br /&gt;
'''''Note:'''''  This section was tested with the iMX91 Industrial Module in Max configuration which includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. For the Basic configuration, Ethernet capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Device driver is available (for Pro configuration only one ethernet is available)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' MAC address should be identical with the address on the sticker placed on the board&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth0&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:ae brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.33/24 metric 10 brd 192.168.1.255 scope global dynamic eth0&lt;br /&gt;
       valid_lft 86378sec preferred_lft 86378sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8cae/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth1&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:af brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.34/24 metric 10 brd 192.168.1.255 scope global dynamic eth1&lt;br /&gt;
       valid_lft 86391sec preferred_lft 86391sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8caf/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug Ethernet cable into top or bottom connector for the Max configuration. Plug Ethernet cable into bottom connector for the Pro configuration.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' IPv4 address is assigned&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[ 1599.750399] fec 42890000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
[ 1630.695671] imx-dwmac 428a0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
iPerf3 was used to test the Ethernet performance. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' The Max configuration of the iMX91 Industrial Module includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. &amp;lt;br /&amp;gt; &lt;br /&gt;
'''''Input:''''' Start iPerf3 on computer using command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;iperf3 -s &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''''Output:''''' Verify performance on board (argument after -c is IP address of your computer) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.120 -t 10 -i 1&lt;br /&gt;
Connecting to host 192.168.240.120, port 5201&lt;br /&gt;
[  5] local 192.168.240.32 port 57734 connected to 192.168.240.120 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec   114 MBytes   951 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec   112 MBytes   943 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec   113 MBytes   947 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec   112 MBytes   944 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec   112 MBytes   940 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec   112 MBytes   943 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec   113 MBytes   946 Mbits/sec    0    516 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec  1.10 GBytes   943 Mbits/sec    0             sender&lt;br /&gt;
[  5]   0.00-10.05  sec  1.10 GBytes   937 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
root@imx91-voipac:~# &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB 2.0 ==&lt;br /&gt;
NOTE: Perform read/write performance test&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Input:''''' Plug USB flash drive into USB connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Plugged USB device is listed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# lsusb&lt;br /&gt;
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 003: ID 125f:d31a A-DATA Technology Co., Ltd. &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Generate a dummy file and copy it into USB flash drive&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Generated file and copied file have the same checksum&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# mount /dev/sda1 /media/&lt;br /&gt;
root@imx91-voipac:~# rm -f file.txt /media/file.txt &lt;br /&gt;
root@imx91-voipac:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024&lt;br /&gt;
1024+0 records in&lt;br /&gt;
1024+0 records out&lt;br /&gt;
root@imx91-voipac:~# cp file.txt /media/&lt;br /&gt;
root@imx91-voipac:~# md5sum file.txt /media/file.txt &lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  file.txt&lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# rm file.txt /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# umount /media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB-C ==&lt;br /&gt;
This connector is primarily used for flashing new binaries into the iMX91 Industrial Module. More information can be found on the dedicated [[iMX91 Industrial Flashing Procedure|module flashing page]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Micro-B serial console ==&lt;br /&gt;
'''''Input:''''' Connect USB console cable into the base board connector and open serial console with baud rate 115200 8n1&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board is controlled and responsive to serial terminal commands&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# uname -a&lt;br /&gt;
Linux imx91-voipac 6.6.36-lts-next-g2e3e2e65d92a #1 SMP PREEMPT Wed Sep  4 08:22:45 UTC 2024 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART serial console ==&lt;br /&gt;
Serial console is utilized via USB Micro-B connector by default. Alternatively, the communication can be established using UART headers and TTL-232R-3V3 - FTDI cable.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NOTE: Describe jumpers position&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-Serial console via UART1.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Usage of UART2 CONSOLE to communicate by default requires changes in Yocto binaries and new compilation of image files. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX91 Industrial Development Kit-Serial console via UART2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== SD Card ==&lt;br /&gt;
NOTE: Perform detection of SD Card&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# fdisk -l&lt;br /&gt;
Disk /dev/mmcblk0: 15 GB, 15758000128 bytes, 30777344 sectors&lt;br /&gt;
240448 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk0p1 *  128,0,1     1023,3,32        16384     186775     170392 83.1M  c Win95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2    1023,3,32   1023,3,32       196608     939761     743154  362M 83 Linux&lt;br /&gt;
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk0boot1: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk1: 15 GB, 15931539456 bytes, 31116288 sectors&lt;br /&gt;
243096 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk1p1    512,0,1     1023,3,32        65536     266255     200720 98.0M 83 Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk1 is SD card (mmcblk0 is eMMC)&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-JTAG communication setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
To verify that i.MX93 CPU JTAG is functional, following command identifies and connects to the CPU's debug point:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
J-Link&amp;gt; jtagid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:J-Link MIMX9352 A55 1.png|800px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:J-Link MIMX9352 M33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Real Time Clock ==&lt;br /&gt;
RTC chip is detected by Linux kernel after start-up:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep rtc&lt;br /&gt;
[    0.894414] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)&lt;br /&gt;
[    0.910506] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes&lt;br /&gt;
[    1.209418] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0&lt;br /&gt;
[    1.215749] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPU correctly recognises RTC on the I2C1 bus, the chip is under usage by the kernel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# i2cdetect -r -y 1                                                                                                                                                                                                        &lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- -- &lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- --                     &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the current date and time, show the actual values&lt;br /&gt;
&lt;br /&gt;
Setup date and time&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
date -s &amp;quot;2025-8-13 14:52:26&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show actual values&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# timedatectl &lt;br /&gt;
[  134.509782] kauditd_printk_skb: 8 callbacks suppressed&lt;br /&gt;
[  134.509793] audit: type=1334 audit(1732625725.140:18): prog-id=19 op=LOAD&lt;br /&gt;
[  134.523935] audit: type=1334 audit(1732625725.148:19): prog-id=20 op=LOAD&lt;br /&gt;
[  134.531609] audit: type=1334 audit(1732625725.152:20): prog-id=21 op=LOAD&lt;br /&gt;
               Local time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
           Universal time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
                 RTC time: Tue 2024-11-26 12:55:25&lt;br /&gt;
                Time zone: UTC (UTC, +0000)&lt;br /&gt;
System clock synchronized: yes&lt;br /&gt;
              NTP service: active&lt;br /&gt;
          RTC in local TZ: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I2C EEPROM Memory - on module ==&lt;br /&gt;
'''''Input:''''' Power on board&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Store some data to eeprom and after reboot read it back and should be same &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# dd if=/dev/urandom of=/sys/bus/i2c/devices/0-0050/eeprom bs=8 count=1&lt;br /&gt;
+1 records in&lt;br /&gt;
0+1 records out&lt;br /&gt;
8 bytes copied, 0.0225523 s, 0.4 kB/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After board reboot:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# hexdump -n8 /sys/bus/i2c/devices/0-0050/eeprom                                              &lt;br /&gt;
0000000 c4dd 4eda d624 535e                    &lt;br /&gt;
0000008&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reset button ==&lt;br /&gt;
'''''Input:''''' Press the RESET button&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will execute bootloader immediately with &amp;quot;Reset cause: POR&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' iMX91 Industrial Development Kit should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2023.04+gf8a2983ec8+p0 (Mar 04 2024 - 07:25:04 +0000)&lt;br /&gt;
&lt;br /&gt;
CPU:   i.MX93(52) rev1.1 1700 MHz (running at 1692 MHz)&lt;br /&gt;
CPU:   Industrial temperature grade (-40C to 105C) at 45C&lt;br /&gt;
Reset cause: POR (0x1)&lt;br /&gt;
Model: NXP i.MX93 Voipac EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  215 devices, 32 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On/Off button ==&lt;br /&gt;
'''''Input:''''' Press and hold On/Off button for more then 5 seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will be powered off&lt;br /&gt;
&lt;br /&gt;
Press shortly the On/Off button again, the board will be powered on.&lt;br /&gt;
&lt;br /&gt;
== Sleep Mode ==&lt;br /&gt;
'''''Input:''''' Type command:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo mem &amp;gt; /sys/power/state&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Output:''''' The board will go into a frozen state and the serial console will not respond to inputs.&lt;br /&gt;
&lt;br /&gt;
Shortly press the Up user button, to wake the board up again.&lt;br /&gt;
&lt;br /&gt;
[[File:imx93_sleep_mode.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User buttons ==&lt;br /&gt;
'''''Input:''''' Press Enter/Left/Right/Up/Down buttons&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Button events 1 and 0 are generated&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# evtest /dev/input/by-path/platform-gpio-buttons-event &lt;br /&gt;
Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100&lt;br /&gt;
Input device name: &amp;quot;gpio-buttons&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 28 (KEY_ENTER)&lt;br /&gt;
    Event code 103 (KEY_UP)&lt;br /&gt;
    Event code 105 (KEY_LEFT)&lt;br /&gt;
    Event code 106 (KEY_RIGHT)&lt;br /&gt;
    Event code 108 (KEY_DOWN)&lt;br /&gt;
Properties:&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1717485486.586413, type 1 (EV_KEY), code 103 (KEY_UP), value 1&lt;br /&gt;
Event: time 1717485486.586413, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485486.682265, type 1 (EV_KEY), code 103 (KEY_UP), value 0&lt;br /&gt;
Event: time 1717485486.682265, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.255120, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1&lt;br /&gt;
Event: time 1717485487.255120, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.367126, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0&lt;br /&gt;
Event: time 1717485487.367126, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.539564, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1&lt;br /&gt;
Event: time 1717485488.539564, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.677501, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0&lt;br /&gt;
Event: time 1717485488.677501, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.897627, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1&lt;br /&gt;
Event: time 1717485488.897627, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.013136, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0&lt;br /&gt;
Event: time 1717485489.013136, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.264589, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1&lt;br /&gt;
Event: time 1717485489.264589, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.372584, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0&lt;br /&gt;
Event: time 1717485489.372584, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User LED ==&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Script switches User LED on baseboard ON and OFF in one second intervals&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LED=/sys/class/leds/user_sbc&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
        echo 0 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
        echo 1 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on baseboard is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_sbc/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on SOM is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_som/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-Serial_console_via_UART1.png&amp;diff=5846</id>
		<title>File:iMX91 Industrial Development Kit-Serial console via UART1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-Serial_console_via_UART1.png&amp;diff=5846"/>
		<updated>2025-10-30T10:25:48Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5845</id>
		<title>iMX91 Industrial Accessing and Testing Peripherals</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5845"/>
		<updated>2025-10-30T10:25:02Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: /* USB-C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Testing]]&lt;br /&gt;
[[Category:iMX91 Industrial Peripherals]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial operations with the iMX91 Industrial Development Kit interfaces are presented on this page. For more specific information such as display options, camera capabilities or industrial modular extensions, refer to the dedicated [[iMX91 Industrial Max#Peripherals_and_Accessories|Peripherals and Accessories section]].&lt;br /&gt;
&lt;br /&gt;
== Mandatory components ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* iMX91 Industrial Module&lt;br /&gt;
* iMX Development Baseboard&lt;br /&gt;
* [https://www.voipac.com/power-supply-5v-20w DC power supply (5V, 4A, 20W)]&lt;br /&gt;
&lt;br /&gt;
=== Peripherals and Accessories ===&lt;br /&gt;
* [https://wiki.voipac.com/index.php?title=NXP_Parallel_TFT_Display_Set NXP Parallel TFT Display Set]&lt;br /&gt;
* [https://www.voipac.com/imx9-wifi-and-bluetooth-antennas-set iMX9 Wifi and Bluetooth antenna set]&lt;br /&gt;
* 1x MicroSDHC card Class 10 or higher&lt;br /&gt;
* 1x USB Flash drive 2.0&lt;br /&gt;
* Headphones&lt;br /&gt;
* Analog external microphone&lt;br /&gt;
&lt;br /&gt;
=== Cables ===&lt;br /&gt;
* USB Micro-B cable for serial console&lt;br /&gt;
* USB-C cable for module flashing&lt;br /&gt;
* Ethernet cable&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
'''''Note:''''' This audio section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, audio capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Search kernel log for wm8904 chip&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio chip is detected and bound as an output and input device&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep wm8904&lt;br /&gt;
[    6.546858] wm8904 0-001a: supply DCVDD not found, using dummy regulator&lt;br /&gt;
[    6.591866] wm8904 0-001a: supply DBVDD not found, using dummy regulator&lt;br /&gt;
[    6.611921] wm8904 0-001a: supply AVDD not found, using dummy regulator&lt;br /&gt;
[    6.637768] wm8904 0-001a: supply CPVDD not found, using dummy regulator&lt;br /&gt;
[    6.670934] wm8904 0-001a: supply MICVDD not found, using dummy regulator&lt;br /&gt;
[    6.683500] wm8904 0-001a: revision A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Run amixer command&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Current audio chip settings are displayed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer    &lt;br /&gt;
Simple mixer control 'Headphone',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
  Front Right: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
Simple mixer control 'Headphone ZC',0&lt;br /&gt;
  Capabilities: pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback [on]&lt;br /&gt;
  Front Right: Playback [on]&lt;br /&gt;
Simple mixer control 'Line Output',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
  Front Right: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Connect headphones into LINE OUT jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio file is played and heard&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx8mq-voipac:~# aplay /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
root@imx8mq-voipac:~# aplay -D sysdefault:CARD=wm8904audio /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug headphones into HEADPHONES jack connector and analog external microphone to MIC jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Sound recorder by microphone is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture' '31'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture Input' ADC&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Left Capture Inverting Mux' 'IN2L'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Right Capture Inverting Mux' 'IN2R'&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Microphone and headphones setup can also be graphically displayed and adjusted:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# alsamixer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-AlsaMixer_setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Verify digital microphones (Mic Left, Mic Mid, Mic Right) &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Microphone sound is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set &amp;quot;Capture Input&amp;quot; &amp;quot;DMIC&amp;quot;&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WiFi ==&lt;br /&gt;
'''''Note:''''' This WiFi section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configurations, wireless connectivity is not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the device driver:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
[  926.305344] mlan: loading out-of-tree module taints kernel.&lt;br /&gt;
[  926.334171] wlan: Loading MWLAN driver&lt;br /&gt;
[  926.339152] wlan: Register to Bus Driver...&lt;br /&gt;
[  926.343686] vendor=0x02DF device=0x9159 class=0 function=1&lt;br /&gt;
[  926.349765] Attach moal handle ops, card interface type: 0x108&lt;br /&gt;
[  926.355633] rps set to 0 from module param&lt;br /&gt;
[  926.362045] SDIW416: init module param from usr cfg&lt;br /&gt;
[  926.366995] card_type: SDIW416, config block: 0&lt;br /&gt;
[  926.371541] cfg80211_wext=0xf&lt;br /&gt;
[  926.374515] max_vir_bss=1&lt;br /&gt;
[  926.377131] cal_data_cfg=none&lt;br /&gt;
[  926.380112] ps_mode = 1&lt;br /&gt;
[  926.382567] auto_ds = 1&lt;br /&gt;
[  926.385010] host_mlme=enable&lt;br /&gt;
[  926.387895] fw_name=nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.392709] SDIO: max_segs=128 max_seg_size=65535&lt;br /&gt;
[  926.397420] rx_work=1 cpu_num=2&lt;br /&gt;
[  926.400569] Enable moal_recv_amsdu_packet&lt;br /&gt;
[  926.404600] Attach mlan adapter operations.card_type is 0x108.&lt;br /&gt;
[  926.410826] wlan: Enable TX SG mode&lt;br /&gt;
[  926.414357] wlan: Enable RX SG mode&lt;br /&gt;
[  926.421681] Request firmware: nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.708639] Wlan: FW download over, firmwarelen=591808 downloaded 583072&lt;br /&gt;
[  928.113594] WLAN FW is active&lt;br /&gt;
[  928.116573] on_time is 927947046442&lt;br /&gt;
[  928.140994] VDLL image: len=8736&lt;br /&gt;
[  928.144352] FW country code WW does not match with US&lt;br /&gt;
[  928.150617] fw_cap_info=0x187ccf03, dev_cap_mask=0xffffffff&lt;br /&gt;
[  928.156607] max_p2p_conn = 8, max_sta_conn = 8&lt;br /&gt;
[  928.176236] Register NXP 802.11 Adapter mlan0&lt;br /&gt;
[  928.183724] Register NXP 802.11 Adapter uap0&lt;br /&gt;
[  928.194033] Register NXP 802.11 Adapter wfd0&lt;br /&gt;
[  928.199986] wlan: version = SDIW416---16.92.21.p137.2-MM6X16437.p30-GPL-(FP92) &lt;br /&gt;
[  928.208947] wlan: Register to Bus Driver Done&lt;br /&gt;
[  928.216412] wlan: Driver loaded successfully&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if the WiFi interface is present:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev mlan0&lt;br /&gt;
3: wlp1s0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN group default qlen 1000&lt;br /&gt;
    link/ether 78:c4:0e:a0:32:16 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Scan the available WiFi networks&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Networks are scanned and in-depth information are displayed&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ifconfig mlan0 up &amp;amp;&amp;amp; iw dev mlan0 scan&lt;br /&gt;
BSS 94:27:90:7f:c3:d3(on wlp1s0)&lt;br /&gt;
        TSF: 1213185029341 usec (14d, 00:59:45)&lt;br /&gt;
        freq: 2442&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 4056 ms ago&lt;br /&gt;
        SSID: HH40V_C3D3&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0&lt;br /&gt;
        DS Parameter set: channel 7&lt;br /&gt;
        Country: SK     Environment: Indoor/Outdoor&lt;br /&gt;
                Channels [1 - 13] @ 20 dBm&lt;br /&gt;
        ERP: &amp;lt;no flags&amp;gt;&lt;br /&gt;
        Extended supported rates: 24.0 36.0 48.0 54.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x1ad&lt;br /&gt;
                        RX LDPC&lt;br /&gt;
                        HT20&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        TX STBC&lt;br /&gt;
                        RX STBC 1-stream&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        No DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 8 usec (0x06)&lt;br /&gt;
                HT TX/RX MCS rate indexes supported: 0-15&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 7&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 1&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
                 * Extended Channel Switching&lt;br /&gt;
                 * SSID List&lt;br /&gt;
                 * Operating Mode Notification&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: CCMP&lt;br /&gt;
                 * Pairwise ciphers: CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 87654321-9abc-def0-1234-942790c36dc7&lt;br /&gt;
                 * Manufacturer: TCL.org&lt;br /&gt;
                 * Model: WAP&lt;br /&gt;
                 * Model Number: 123&lt;br /&gt;
                 * Serial Number: 12345&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: TCL AP&lt;br /&gt;
                 * Config methods:&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5c:06:80(on wlp1s0)&lt;br /&gt;
        TSF: 787677017722 usec (9d, 02:47:57)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 3952 ms ago&lt;br /&gt;
        SSID: OrangeFlybox_0680&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: 20 MHz&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 3&lt;br /&gt;
                 * channel utilisation: 27/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945c06c4&lt;br /&gt;
                 * Manufacturer: TP-LINK&lt;br /&gt;
                 * Model: Archer MR200&lt;br /&gt;
                 * Model Number: 1.0&lt;br /&gt;
                 * Serial Number: 1.0&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: AC750 Wireless Dual Band 4G LTE&lt;br /&gt;
                 * Config methods: Label, Display, Keypad&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5b:f8:04(on wlp1s0)&lt;br /&gt;
        TSF: 1210179077454 usec (14d, 00:09:39)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -50.00 dBm&lt;br /&gt;
        last seen: 3432 ms ago&lt;br /&gt;
        SSID: REDARROW&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x2&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945bf8c4&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 0&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 0&lt;br /&gt;
                 * channel utilisation: 47/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set up the network login data, edit file located in /etc/wpa_supplicant.conf and update '''''ssid''''' and passphrase '''''psk''''' fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# cat /etc/wpa_supplicant.conf &lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;SSID_FOR_WIFI_NETWORK&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        psk=&amp;quot;WIFI_NETWORK_PASSWORD&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to the desired WiFi network, start wpa_supplicant:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf &amp;amp;&lt;br /&gt;
root@imx91-voipac:~# rfkill: Cannot open RFKILL control device&lt;br /&gt;
[  261.722718] wlan: mlan0 START SCAN&lt;br /&gt;
[  266.018892] wlan: SCAN COMPLETED: scanned AP count=1&lt;br /&gt;
mlan0: SME: Trying to authentica[  266.027303] wlan: HostMlme mlan0 send auth to bssid 40:XX:XX:XX:70:62&lt;br /&gt;
te with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' f[  266.037546] mlan0: &lt;br /&gt;
req=2437 MHz)&lt;br /&gt;
[  266.037558] wlan: HostMlme Auth received from 40:XX:XX:XX:70:62&lt;br /&gt;
mlan0: Trying to associate with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' freq=2437 MHz)&lt;br /&gt;
[  266.057956] wlan: HostMlme mlan0 Connected to bssid 40:XX:XX:XX:70:62 successfully&lt;br /&gt;
mlan0: Associated[  266.067323] mlan0: &lt;br /&gt;
 with 40:a5:ef:c0[  266.067340] wlan: Send EAPOL pkt to 40:XX:XX:XX:70:62&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To obtain an IP address and other network settings, run dhcp client:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
udhcpc -i mlan0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point the bandwidth measurement can be tested, showing that WiFi connection was established and is performed very reliably.&lt;br /&gt;
Used program: [https://iperf.fr iPerf3.]  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Configuration:''''' iMX91 Industrial Module Pro in Industrial temperature range (u-blox MAYA-W160-00B assembled):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.200 -t 30 -i1&lt;br /&gt;
Connecting to host 192.168.240.200, port 5201&lt;br /&gt;
[  5] local 192.168.240.111 port 39988 connected to 192.168.240.200 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  5.12 MBytes  43.0 Mbits/sec    0    223 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  5.38 MBytes  45.1 Mbits/sec    0    460 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  7.12 MBytes  59.8 Mbits/sec    0    747 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  4.25 MBytes  35.7 Mbits/sec    0   1003 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  5.38 MBytes  45.1 Mbits/sec    0   1.25 MBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.52 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.78 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  5.62 MBytes  47.2 Mbits/sec    0   2.06 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  5.50 MBytes  46.1 Mbits/sec    0   2.31 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  5.50 MBytes  46.1 Mbits/sec    0   2.64 MBytes       &lt;br /&gt;
[  5]  10.00-11.00  sec  6.75 MBytes  56.6 Mbits/sec    0   2.93 MBytes       &lt;br /&gt;
[  5]  11.00-12.00  sec  3.00 MBytes  25.2 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  12.00-13.00  sec  6.75 MBytes  56.6 Mbits/sec    0   3.41 MBytes       &lt;br /&gt;
[  5]  13.00-14.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.61 MBytes       &lt;br /&gt;
[  5]  14.00-15.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  15.00-16.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  17.00-18.00  sec  5.88 MBytes  49.3 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  18.00-19.00  sec  2.75 MBytes  23.1 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  19.00-20.00  sec  3.38 MBytes  28.3 Mbits/sec    3   2.86 MBytes       &lt;br /&gt;
[  5]  20.00-21.00  sec  2.88 MBytes  24.1 Mbits/sec    0   2.94 MBytes       &lt;br /&gt;
[  5]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  22.00-23.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.44 MBytes       &lt;br /&gt;
[  5]  23.00-24.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.63 MBytes       &lt;br /&gt;
[  5]  24.00-25.00  sec  4.50 MBytes  37.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  25.00-26.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  26.00-27.00  sec  5.62 MBytes  47.2 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  27.00-28.00  sec  6.62 MBytes  55.6 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  28.00-29.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  29.00-30.00  sec  4.88 MBytes  40.8 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-30.00  sec   150 MBytes  41.9 Mbits/sec    3             sender&lt;br /&gt;
[  5]   0.00-30.32  sec   150 MBytes  41.5 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
'''''Note:''''' This Bluetooth section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, bluetooth capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Remote device is recognized after scan&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For iMX91 Industrial Module Max (u-blox MAYA-W260-00B assembled) please use instead of &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 3000000 flow&amp;lt;/syntaxhighlight&amp;gt; command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 115200 flow&amp;lt;/syntaxhighlight&amp;gt; in below code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# attach necessary modules&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
root@imx91-voipac:~# modprobe hci_uart&lt;br /&gt;
root@imx91-voipac:~# hciattach /dev/ttyLP7 any 3000000 flow&lt;br /&gt;
Device setup complete&lt;br /&gt;
root@imx91-voipac:~# [ 1207.472299] Bluetooth: MGMT ver 1.22&lt;br /&gt;
[ 1207.485171] NET: Registered PF_ALG protocol family&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# put hci0 device up&lt;br /&gt;
root@imx91-voipac:~# hciconfig hci0 up&lt;br /&gt;
&lt;br /&gt;
# scan for remote bluetooth devices (enable bluetooth on phone and make it discoverable)&lt;br /&gt;
root@imx91-voipac:~# hcitool  scan                                                                             &lt;br /&gt;
Scanning ...                     &lt;br /&gt;
Devices:&lt;br /&gt;
    hci0    00:0D:18:01:5A:B3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethernet ==&lt;br /&gt;
'''''Note:'''''  This section was tested with the iMX91 Industrial Module in Max configuration which includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. For the Basic configuration, Ethernet capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Device driver is available (for Pro configuration only one ethernet is available)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' MAC address should be identical with the address on the sticker placed on the board&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth0&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:ae brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.33/24 metric 10 brd 192.168.1.255 scope global dynamic eth0&lt;br /&gt;
       valid_lft 86378sec preferred_lft 86378sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8cae/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth1&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:af brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.34/24 metric 10 brd 192.168.1.255 scope global dynamic eth1&lt;br /&gt;
       valid_lft 86391sec preferred_lft 86391sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8caf/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug Ethernet cable into top or bottom connector for the Max configuration. Plug Ethernet cable into bottom connector for the Pro configuration.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' IPv4 address is assigned&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[ 1599.750399] fec 42890000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
[ 1630.695671] imx-dwmac 428a0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
iPerf3 was used to test the Ethernet performance. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' The Max configuration of the iMX91 Industrial Module includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. &amp;lt;br /&amp;gt; &lt;br /&gt;
'''''Input:''''' Start iPerf3 on computer using command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;iperf3 -s &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''''Output:''''' Verify performance on board (argument after -c is IP address of your computer) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.120 -t 10 -i 1&lt;br /&gt;
Connecting to host 192.168.240.120, port 5201&lt;br /&gt;
[  5] local 192.168.240.32 port 57734 connected to 192.168.240.120 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec   114 MBytes   951 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec   112 MBytes   943 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec   113 MBytes   947 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec   112 MBytes   944 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec   112 MBytes   940 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec   112 MBytes   943 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec   113 MBytes   946 Mbits/sec    0    516 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec  1.10 GBytes   943 Mbits/sec    0             sender&lt;br /&gt;
[  5]   0.00-10.05  sec  1.10 GBytes   937 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
root@imx91-voipac:~# &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB 2.0 ==&lt;br /&gt;
NOTE: Perform read/write performance test&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Input:''''' Plug USB flash drive into USB connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Plugged USB device is listed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# lsusb&lt;br /&gt;
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 003: ID 125f:d31a A-DATA Technology Co., Ltd. &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Generate a dummy file and copy it into USB flash drive&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Generated file and copied file have the same checksum&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# mount /dev/sda1 /media/&lt;br /&gt;
root@imx91-voipac:~# rm -f file.txt /media/file.txt &lt;br /&gt;
root@imx91-voipac:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024&lt;br /&gt;
1024+0 records in&lt;br /&gt;
1024+0 records out&lt;br /&gt;
root@imx91-voipac:~# cp file.txt /media/&lt;br /&gt;
root@imx91-voipac:~# md5sum file.txt /media/file.txt &lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  file.txt&lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# rm file.txt /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# umount /media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB-C ==&lt;br /&gt;
This connector is primarily used for flashing new binaries into the iMX91 Industrial Module. More information can be found on the dedicated [[iMX91 Industrial Flashing Procedure|module flashing page]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB Micro-B serial console ==&lt;br /&gt;
'''''Input:''''' Connect USB console cable into the base board connector and open serial console with baud rate 115200 8n1&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board is controlled and responsive to serial terminal commands&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# uname -a&lt;br /&gt;
Linux imx91-voipac 6.6.36-lts-next-g2e3e2e65d92a #1 SMP PREEMPT Wed Sep  4 08:22:45 UTC 2024 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART serial console ==&lt;br /&gt;
Serial console is utilized via USB Micro-B connector by default. Alternatively, the communication can be established using UART headers and TTL-232R-3V3 - FTDI cable.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NOTE: Describe jumpers position&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-Serial console via UART1.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Usage of UART2 CONSOLE to communicate by default requires changes in Yocto binaries and new compilation of image files. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-Serial console via UART2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== SD Card ==&lt;br /&gt;
NOTE: Perform detection of SD Card&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# fdisk -l&lt;br /&gt;
Disk /dev/mmcblk0: 15 GB, 15758000128 bytes, 30777344 sectors&lt;br /&gt;
240448 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk0p1 *  128,0,1     1023,3,32        16384     186775     170392 83.1M  c Win95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2    1023,3,32   1023,3,32       196608     939761     743154  362M 83 Linux&lt;br /&gt;
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk0boot1: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk1: 15 GB, 15931539456 bytes, 31116288 sectors&lt;br /&gt;
243096 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk1p1    512,0,1     1023,3,32        65536     266255     200720 98.0M 83 Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk1 is SD card (mmcblk0 is eMMC)&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-JTAG communication setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
To verify that i.MX93 CPU JTAG is functional, following command identifies and connects to the CPU's debug point:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
J-Link&amp;gt; jtagid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:J-Link MIMX9352 A55 1.png|800px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:J-Link MIMX9352 M33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Real Time Clock ==&lt;br /&gt;
RTC chip is detected by Linux kernel after start-up:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep rtc&lt;br /&gt;
[    0.894414] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)&lt;br /&gt;
[    0.910506] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes&lt;br /&gt;
[    1.209418] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0&lt;br /&gt;
[    1.215749] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPU correctly recognises RTC on the I2C1 bus, the chip is under usage by the kernel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# i2cdetect -r -y 1                                                                                                                                                                                                        &lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- -- &lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- --                     &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the current date and time, show the actual values&lt;br /&gt;
&lt;br /&gt;
Setup date and time&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
date -s &amp;quot;2025-8-13 14:52:26&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show actual values&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# timedatectl &lt;br /&gt;
[  134.509782] kauditd_printk_skb: 8 callbacks suppressed&lt;br /&gt;
[  134.509793] audit: type=1334 audit(1732625725.140:18): prog-id=19 op=LOAD&lt;br /&gt;
[  134.523935] audit: type=1334 audit(1732625725.148:19): prog-id=20 op=LOAD&lt;br /&gt;
[  134.531609] audit: type=1334 audit(1732625725.152:20): prog-id=21 op=LOAD&lt;br /&gt;
               Local time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
           Universal time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
                 RTC time: Tue 2024-11-26 12:55:25&lt;br /&gt;
                Time zone: UTC (UTC, +0000)&lt;br /&gt;
System clock synchronized: yes&lt;br /&gt;
              NTP service: active&lt;br /&gt;
          RTC in local TZ: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I2C EEPROM Memory - on module ==&lt;br /&gt;
'''''Input:''''' Power on board&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Store some data to eeprom and after reboot read it back and should be same &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# dd if=/dev/urandom of=/sys/bus/i2c/devices/0-0050/eeprom bs=8 count=1&lt;br /&gt;
+1 records in&lt;br /&gt;
0+1 records out&lt;br /&gt;
8 bytes copied, 0.0225523 s, 0.4 kB/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After board reboot:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# hexdump -n8 /sys/bus/i2c/devices/0-0050/eeprom                                              &lt;br /&gt;
0000000 c4dd 4eda d624 535e                    &lt;br /&gt;
0000008&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reset button ==&lt;br /&gt;
'''''Input:''''' Press the RESET button&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will execute bootloader immediately with &amp;quot;Reset cause: POR&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' iMX91 Industrial Development Kit should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2023.04+gf8a2983ec8+p0 (Mar 04 2024 - 07:25:04 +0000)&lt;br /&gt;
&lt;br /&gt;
CPU:   i.MX93(52) rev1.1 1700 MHz (running at 1692 MHz)&lt;br /&gt;
CPU:   Industrial temperature grade (-40C to 105C) at 45C&lt;br /&gt;
Reset cause: POR (0x1)&lt;br /&gt;
Model: NXP i.MX93 Voipac EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  215 devices, 32 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On/Off button ==&lt;br /&gt;
'''''Input:''''' Press and hold On/Off button for more then 5 seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will be powered off&lt;br /&gt;
&lt;br /&gt;
Press shortly the On/Off button again, the board will be powered on.&lt;br /&gt;
&lt;br /&gt;
== Sleep Mode ==&lt;br /&gt;
'''''Input:''''' Type command:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo mem &amp;gt; /sys/power/state&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Output:''''' The board will go into a frozen state and the serial console will not respond to inputs.&lt;br /&gt;
&lt;br /&gt;
Shortly press the Up user button, to wake the board up again.&lt;br /&gt;
&lt;br /&gt;
[[File:imx93_sleep_mode.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User buttons ==&lt;br /&gt;
'''''Input:''''' Press Enter/Left/Right/Up/Down buttons&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Button events 1 and 0 are generated&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# evtest /dev/input/by-path/platform-gpio-buttons-event &lt;br /&gt;
Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100&lt;br /&gt;
Input device name: &amp;quot;gpio-buttons&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 28 (KEY_ENTER)&lt;br /&gt;
    Event code 103 (KEY_UP)&lt;br /&gt;
    Event code 105 (KEY_LEFT)&lt;br /&gt;
    Event code 106 (KEY_RIGHT)&lt;br /&gt;
    Event code 108 (KEY_DOWN)&lt;br /&gt;
Properties:&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1717485486.586413, type 1 (EV_KEY), code 103 (KEY_UP), value 1&lt;br /&gt;
Event: time 1717485486.586413, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485486.682265, type 1 (EV_KEY), code 103 (KEY_UP), value 0&lt;br /&gt;
Event: time 1717485486.682265, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.255120, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1&lt;br /&gt;
Event: time 1717485487.255120, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.367126, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0&lt;br /&gt;
Event: time 1717485487.367126, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.539564, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1&lt;br /&gt;
Event: time 1717485488.539564, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.677501, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0&lt;br /&gt;
Event: time 1717485488.677501, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.897627, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1&lt;br /&gt;
Event: time 1717485488.897627, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.013136, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0&lt;br /&gt;
Event: time 1717485489.013136, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.264589, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1&lt;br /&gt;
Event: time 1717485489.264589, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.372584, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0&lt;br /&gt;
Event: time 1717485489.372584, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User LED ==&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Script switches User LED on baseboard ON and OFF in one second intervals&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LED=/sys/class/leds/user_sbc&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
        echo 0 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
        echo 1 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on baseboard is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_sbc/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on SOM is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_som/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5844</id>
		<title>iMX91 Industrial Accessing and Testing Peripherals</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5844"/>
		<updated>2025-10-30T10:24:17Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Testing]]&lt;br /&gt;
[[Category:iMX91 Industrial Peripherals]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial operations with the iMX91 Industrial Development Kit interfaces are presented on this page. For more specific information such as display options, camera capabilities or industrial modular extensions, refer to the dedicated [[iMX91 Industrial Max#Peripherals_and_Accessories|Peripherals and Accessories section]].&lt;br /&gt;
&lt;br /&gt;
== Mandatory components ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* iMX91 Industrial Module&lt;br /&gt;
* iMX Development Baseboard&lt;br /&gt;
* [https://www.voipac.com/power-supply-5v-20w DC power supply (5V, 4A, 20W)]&lt;br /&gt;
&lt;br /&gt;
=== Peripherals and Accessories ===&lt;br /&gt;
* [https://wiki.voipac.com/index.php?title=NXP_Parallel_TFT_Display_Set NXP Parallel TFT Display Set]&lt;br /&gt;
* [https://www.voipac.com/imx9-wifi-and-bluetooth-antennas-set iMX9 Wifi and Bluetooth antenna set]&lt;br /&gt;
* 1x MicroSDHC card Class 10 or higher&lt;br /&gt;
* 1x USB Flash drive 2.0&lt;br /&gt;
* Headphones&lt;br /&gt;
* Analog external microphone&lt;br /&gt;
&lt;br /&gt;
=== Cables ===&lt;br /&gt;
* USB Micro-B cable for serial console&lt;br /&gt;
* USB-C cable for module flashing&lt;br /&gt;
* Ethernet cable&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
'''''Note:''''' This audio section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, audio capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Search kernel log for wm8904 chip&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio chip is detected and bound as an output and input device&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep wm8904&lt;br /&gt;
[    6.546858] wm8904 0-001a: supply DCVDD not found, using dummy regulator&lt;br /&gt;
[    6.591866] wm8904 0-001a: supply DBVDD not found, using dummy regulator&lt;br /&gt;
[    6.611921] wm8904 0-001a: supply AVDD not found, using dummy regulator&lt;br /&gt;
[    6.637768] wm8904 0-001a: supply CPVDD not found, using dummy regulator&lt;br /&gt;
[    6.670934] wm8904 0-001a: supply MICVDD not found, using dummy regulator&lt;br /&gt;
[    6.683500] wm8904 0-001a: revision A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Run amixer command&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Current audio chip settings are displayed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer    &lt;br /&gt;
Simple mixer control 'Headphone',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
  Front Right: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
Simple mixer control 'Headphone ZC',0&lt;br /&gt;
  Capabilities: pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback [on]&lt;br /&gt;
  Front Right: Playback [on]&lt;br /&gt;
Simple mixer control 'Line Output',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
  Front Right: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Connect headphones into LINE OUT jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio file is played and heard&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx8mq-voipac:~# aplay /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
root@imx8mq-voipac:~# aplay -D sysdefault:CARD=wm8904audio /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug headphones into HEADPHONES jack connector and analog external microphone to MIC jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Sound recorder by microphone is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture' '31'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture Input' ADC&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Left Capture Inverting Mux' 'IN2L'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Right Capture Inverting Mux' 'IN2R'&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Microphone and headphones setup can also be graphically displayed and adjusted:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# alsamixer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-AlsaMixer_setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Verify digital microphones (Mic Left, Mic Mid, Mic Right) &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Microphone sound is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set &amp;quot;Capture Input&amp;quot; &amp;quot;DMIC&amp;quot;&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WiFi ==&lt;br /&gt;
'''''Note:''''' This WiFi section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configurations, wireless connectivity is not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the device driver:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
[  926.305344] mlan: loading out-of-tree module taints kernel.&lt;br /&gt;
[  926.334171] wlan: Loading MWLAN driver&lt;br /&gt;
[  926.339152] wlan: Register to Bus Driver...&lt;br /&gt;
[  926.343686] vendor=0x02DF device=0x9159 class=0 function=1&lt;br /&gt;
[  926.349765] Attach moal handle ops, card interface type: 0x108&lt;br /&gt;
[  926.355633] rps set to 0 from module param&lt;br /&gt;
[  926.362045] SDIW416: init module param from usr cfg&lt;br /&gt;
[  926.366995] card_type: SDIW416, config block: 0&lt;br /&gt;
[  926.371541] cfg80211_wext=0xf&lt;br /&gt;
[  926.374515] max_vir_bss=1&lt;br /&gt;
[  926.377131] cal_data_cfg=none&lt;br /&gt;
[  926.380112] ps_mode = 1&lt;br /&gt;
[  926.382567] auto_ds = 1&lt;br /&gt;
[  926.385010] host_mlme=enable&lt;br /&gt;
[  926.387895] fw_name=nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.392709] SDIO: max_segs=128 max_seg_size=65535&lt;br /&gt;
[  926.397420] rx_work=1 cpu_num=2&lt;br /&gt;
[  926.400569] Enable moal_recv_amsdu_packet&lt;br /&gt;
[  926.404600] Attach mlan adapter operations.card_type is 0x108.&lt;br /&gt;
[  926.410826] wlan: Enable TX SG mode&lt;br /&gt;
[  926.414357] wlan: Enable RX SG mode&lt;br /&gt;
[  926.421681] Request firmware: nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.708639] Wlan: FW download over, firmwarelen=591808 downloaded 583072&lt;br /&gt;
[  928.113594] WLAN FW is active&lt;br /&gt;
[  928.116573] on_time is 927947046442&lt;br /&gt;
[  928.140994] VDLL image: len=8736&lt;br /&gt;
[  928.144352] FW country code WW does not match with US&lt;br /&gt;
[  928.150617] fw_cap_info=0x187ccf03, dev_cap_mask=0xffffffff&lt;br /&gt;
[  928.156607] max_p2p_conn = 8, max_sta_conn = 8&lt;br /&gt;
[  928.176236] Register NXP 802.11 Adapter mlan0&lt;br /&gt;
[  928.183724] Register NXP 802.11 Adapter uap0&lt;br /&gt;
[  928.194033] Register NXP 802.11 Adapter wfd0&lt;br /&gt;
[  928.199986] wlan: version = SDIW416---16.92.21.p137.2-MM6X16437.p30-GPL-(FP92) &lt;br /&gt;
[  928.208947] wlan: Register to Bus Driver Done&lt;br /&gt;
[  928.216412] wlan: Driver loaded successfully&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if the WiFi interface is present:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev mlan0&lt;br /&gt;
3: wlp1s0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN group default qlen 1000&lt;br /&gt;
    link/ether 78:c4:0e:a0:32:16 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Scan the available WiFi networks&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Networks are scanned and in-depth information are displayed&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ifconfig mlan0 up &amp;amp;&amp;amp; iw dev mlan0 scan&lt;br /&gt;
BSS 94:27:90:7f:c3:d3(on wlp1s0)&lt;br /&gt;
        TSF: 1213185029341 usec (14d, 00:59:45)&lt;br /&gt;
        freq: 2442&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 4056 ms ago&lt;br /&gt;
        SSID: HH40V_C3D3&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0&lt;br /&gt;
        DS Parameter set: channel 7&lt;br /&gt;
        Country: SK     Environment: Indoor/Outdoor&lt;br /&gt;
                Channels [1 - 13] @ 20 dBm&lt;br /&gt;
        ERP: &amp;lt;no flags&amp;gt;&lt;br /&gt;
        Extended supported rates: 24.0 36.0 48.0 54.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x1ad&lt;br /&gt;
                        RX LDPC&lt;br /&gt;
                        HT20&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        TX STBC&lt;br /&gt;
                        RX STBC 1-stream&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        No DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 8 usec (0x06)&lt;br /&gt;
                HT TX/RX MCS rate indexes supported: 0-15&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 7&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 1&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
                 * Extended Channel Switching&lt;br /&gt;
                 * SSID List&lt;br /&gt;
                 * Operating Mode Notification&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: CCMP&lt;br /&gt;
                 * Pairwise ciphers: CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 87654321-9abc-def0-1234-942790c36dc7&lt;br /&gt;
                 * Manufacturer: TCL.org&lt;br /&gt;
                 * Model: WAP&lt;br /&gt;
                 * Model Number: 123&lt;br /&gt;
                 * Serial Number: 12345&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: TCL AP&lt;br /&gt;
                 * Config methods:&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5c:06:80(on wlp1s0)&lt;br /&gt;
        TSF: 787677017722 usec (9d, 02:47:57)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 3952 ms ago&lt;br /&gt;
        SSID: OrangeFlybox_0680&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: 20 MHz&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 3&lt;br /&gt;
                 * channel utilisation: 27/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945c06c4&lt;br /&gt;
                 * Manufacturer: TP-LINK&lt;br /&gt;
                 * Model: Archer MR200&lt;br /&gt;
                 * Model Number: 1.0&lt;br /&gt;
                 * Serial Number: 1.0&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: AC750 Wireless Dual Band 4G LTE&lt;br /&gt;
                 * Config methods: Label, Display, Keypad&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5b:f8:04(on wlp1s0)&lt;br /&gt;
        TSF: 1210179077454 usec (14d, 00:09:39)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -50.00 dBm&lt;br /&gt;
        last seen: 3432 ms ago&lt;br /&gt;
        SSID: REDARROW&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x2&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945bf8c4&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 0&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 0&lt;br /&gt;
                 * channel utilisation: 47/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set up the network login data, edit file located in /etc/wpa_supplicant.conf and update '''''ssid''''' and passphrase '''''psk''''' fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# cat /etc/wpa_supplicant.conf &lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;SSID_FOR_WIFI_NETWORK&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        psk=&amp;quot;WIFI_NETWORK_PASSWORD&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to the desired WiFi network, start wpa_supplicant:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf &amp;amp;&lt;br /&gt;
root@imx91-voipac:~# rfkill: Cannot open RFKILL control device&lt;br /&gt;
[  261.722718] wlan: mlan0 START SCAN&lt;br /&gt;
[  266.018892] wlan: SCAN COMPLETED: scanned AP count=1&lt;br /&gt;
mlan0: SME: Trying to authentica[  266.027303] wlan: HostMlme mlan0 send auth to bssid 40:XX:XX:XX:70:62&lt;br /&gt;
te with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' f[  266.037546] mlan0: &lt;br /&gt;
req=2437 MHz)&lt;br /&gt;
[  266.037558] wlan: HostMlme Auth received from 40:XX:XX:XX:70:62&lt;br /&gt;
mlan0: Trying to associate with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' freq=2437 MHz)&lt;br /&gt;
[  266.057956] wlan: HostMlme mlan0 Connected to bssid 40:XX:XX:XX:70:62 successfully&lt;br /&gt;
mlan0: Associated[  266.067323] mlan0: &lt;br /&gt;
 with 40:a5:ef:c0[  266.067340] wlan: Send EAPOL pkt to 40:XX:XX:XX:70:62&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To obtain an IP address and other network settings, run dhcp client:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
udhcpc -i mlan0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point the bandwidth measurement can be tested, showing that WiFi connection was established and is performed very reliably.&lt;br /&gt;
Used program: [https://iperf.fr iPerf3.]  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Configuration:''''' iMX91 Industrial Module Pro in Industrial temperature range (u-blox MAYA-W160-00B assembled):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.200 -t 30 -i1&lt;br /&gt;
Connecting to host 192.168.240.200, port 5201&lt;br /&gt;
[  5] local 192.168.240.111 port 39988 connected to 192.168.240.200 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  5.12 MBytes  43.0 Mbits/sec    0    223 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  5.38 MBytes  45.1 Mbits/sec    0    460 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  7.12 MBytes  59.8 Mbits/sec    0    747 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  4.25 MBytes  35.7 Mbits/sec    0   1003 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  5.38 MBytes  45.1 Mbits/sec    0   1.25 MBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.52 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.78 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  5.62 MBytes  47.2 Mbits/sec    0   2.06 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  5.50 MBytes  46.1 Mbits/sec    0   2.31 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  5.50 MBytes  46.1 Mbits/sec    0   2.64 MBytes       &lt;br /&gt;
[  5]  10.00-11.00  sec  6.75 MBytes  56.6 Mbits/sec    0   2.93 MBytes       &lt;br /&gt;
[  5]  11.00-12.00  sec  3.00 MBytes  25.2 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  12.00-13.00  sec  6.75 MBytes  56.6 Mbits/sec    0   3.41 MBytes       &lt;br /&gt;
[  5]  13.00-14.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.61 MBytes       &lt;br /&gt;
[  5]  14.00-15.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  15.00-16.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  17.00-18.00  sec  5.88 MBytes  49.3 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  18.00-19.00  sec  2.75 MBytes  23.1 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  19.00-20.00  sec  3.38 MBytes  28.3 Mbits/sec    3   2.86 MBytes       &lt;br /&gt;
[  5]  20.00-21.00  sec  2.88 MBytes  24.1 Mbits/sec    0   2.94 MBytes       &lt;br /&gt;
[  5]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  22.00-23.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.44 MBytes       &lt;br /&gt;
[  5]  23.00-24.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.63 MBytes       &lt;br /&gt;
[  5]  24.00-25.00  sec  4.50 MBytes  37.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  25.00-26.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  26.00-27.00  sec  5.62 MBytes  47.2 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  27.00-28.00  sec  6.62 MBytes  55.6 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  28.00-29.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  29.00-30.00  sec  4.88 MBytes  40.8 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-30.00  sec   150 MBytes  41.9 Mbits/sec    3             sender&lt;br /&gt;
[  5]   0.00-30.32  sec   150 MBytes  41.5 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
'''''Note:''''' This Bluetooth section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic configuration, bluetooth capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Remote device is recognized after scan&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For iMX91 Industrial Module Max (u-blox MAYA-W260-00B assembled) please use instead of &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 3000000 flow&amp;lt;/syntaxhighlight&amp;gt; command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 115200 flow&amp;lt;/syntaxhighlight&amp;gt; in below code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# attach necessary modules&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
root@imx91-voipac:~# modprobe hci_uart&lt;br /&gt;
root@imx91-voipac:~# hciattach /dev/ttyLP7 any 3000000 flow&lt;br /&gt;
Device setup complete&lt;br /&gt;
root@imx91-voipac:~# [ 1207.472299] Bluetooth: MGMT ver 1.22&lt;br /&gt;
[ 1207.485171] NET: Registered PF_ALG protocol family&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# put hci0 device up&lt;br /&gt;
root@imx91-voipac:~# hciconfig hci0 up&lt;br /&gt;
&lt;br /&gt;
# scan for remote bluetooth devices (enable bluetooth on phone and make it discoverable)&lt;br /&gt;
root@imx91-voipac:~# hcitool  scan                                                                             &lt;br /&gt;
Scanning ...                     &lt;br /&gt;
Devices:&lt;br /&gt;
    hci0    00:0D:18:01:5A:B3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethernet ==&lt;br /&gt;
'''''Note:'''''  This section was tested with the iMX91 Industrial Module in Max configuration which includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. For the Basic configuration, Ethernet capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Device driver is available (for Pro configuration only one ethernet is available)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' MAC address should be identical with the address on the sticker placed on the board&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth0&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:ae brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.33/24 metric 10 brd 192.168.1.255 scope global dynamic eth0&lt;br /&gt;
       valid_lft 86378sec preferred_lft 86378sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8cae/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth1&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:af brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.34/24 metric 10 brd 192.168.1.255 scope global dynamic eth1&lt;br /&gt;
       valid_lft 86391sec preferred_lft 86391sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8caf/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug Ethernet cable into top or bottom connector for the Max configuration. Plug Ethernet cable into bottom connector for the Pro configuration.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' IPv4 address is assigned&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[ 1599.750399] fec 42890000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
[ 1630.695671] imx-dwmac 428a0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
iPerf3 was used to test the Ethernet performance. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' The Max configuration of the iMX91 Industrial Module includes dual Gigabit Ethernet PHY. The Pro configuration includes single Gigabit Ethernet PHY. &amp;lt;br /&amp;gt; &lt;br /&gt;
'''''Input:''''' Start iPerf3 on computer using command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;iperf3 -s &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''''Output:''''' Verify performance on board (argument after -c is IP address of your computer) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.120 -t 10 -i 1&lt;br /&gt;
Connecting to host 192.168.240.120, port 5201&lt;br /&gt;
[  5] local 192.168.240.32 port 57734 connected to 192.168.240.120 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec   114 MBytes   951 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec   112 MBytes   943 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec   113 MBytes   947 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec   112 MBytes   944 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec   112 MBytes   940 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec   112 MBytes   943 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec   113 MBytes   946 Mbits/sec    0    516 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec  1.10 GBytes   943 Mbits/sec    0             sender&lt;br /&gt;
[  5]   0.00-10.05  sec  1.10 GBytes   937 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
root@imx91-voipac:~# &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB 2.0 ==&lt;br /&gt;
NOTE: Perform read/write performance test&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Input:''''' Plug USB flash drive into USB connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Plugged USB device is listed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# lsusb&lt;br /&gt;
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 003: ID 125f:d31a A-DATA Technology Co., Ltd. &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Generate a dummy file and copy it into USB flash drive&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Generated file and copied file have the same checksum&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# mount /dev/sda1 /media/&lt;br /&gt;
root@imx91-voipac:~# rm -f file.txt /media/file.txt &lt;br /&gt;
root@imx91-voipac:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024&lt;br /&gt;
1024+0 records in&lt;br /&gt;
1024+0 records out&lt;br /&gt;
root@imx91-voipac:~# cp file.txt /media/&lt;br /&gt;
root@imx91-voipac:~# md5sum file.txt /media/file.txt &lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  file.txt&lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# rm file.txt /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# umount /media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB-C ==&lt;br /&gt;
This connector is primarily used for flashing new binaries into the iMX91 Industrial Module. More information can be found on the dedicated [[iMX8M Industrial Flashing Procedure|module flashing page]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Micro-B serial console ==&lt;br /&gt;
'''''Input:''''' Connect USB console cable into the base board connector and open serial console with baud rate 115200 8n1&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board is controlled and responsive to serial terminal commands&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# uname -a&lt;br /&gt;
Linux imx91-voipac 6.6.36-lts-next-g2e3e2e65d92a #1 SMP PREEMPT Wed Sep  4 08:22:45 UTC 2024 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART serial console ==&lt;br /&gt;
Serial console is utilized via USB Micro-B connector by default. Alternatively, the communication can be established using UART headers and TTL-232R-3V3 - FTDI cable.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NOTE: Describe jumpers position&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-Serial console via UART1.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Usage of UART2 CONSOLE to communicate by default requires changes in Yocto binaries and new compilation of image files. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-Serial console via UART2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== SD Card ==&lt;br /&gt;
NOTE: Perform detection of SD Card&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# fdisk -l&lt;br /&gt;
Disk /dev/mmcblk0: 15 GB, 15758000128 bytes, 30777344 sectors&lt;br /&gt;
240448 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk0p1 *  128,0,1     1023,3,32        16384     186775     170392 83.1M  c Win95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2    1023,3,32   1023,3,32       196608     939761     743154  362M 83 Linux&lt;br /&gt;
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk0boot1: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk1: 15 GB, 15931539456 bytes, 31116288 sectors&lt;br /&gt;
243096 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk1p1    512,0,1     1023,3,32        65536     266255     200720 98.0M 83 Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk1 is SD card (mmcblk0 is eMMC)&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-JTAG communication setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
To verify that i.MX93 CPU JTAG is functional, following command identifies and connects to the CPU's debug point:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
J-Link&amp;gt; jtagid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:J-Link MIMX9352 A55 1.png|800px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:J-Link MIMX9352 M33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Real Time Clock ==&lt;br /&gt;
RTC chip is detected by Linux kernel after start-up:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep rtc&lt;br /&gt;
[    0.894414] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)&lt;br /&gt;
[    0.910506] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes&lt;br /&gt;
[    1.209418] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0&lt;br /&gt;
[    1.215749] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPU correctly recognises RTC on the I2C1 bus, the chip is under usage by the kernel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# i2cdetect -r -y 1                                                                                                                                                                                                        &lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- -- &lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- --                     &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the current date and time, show the actual values&lt;br /&gt;
&lt;br /&gt;
Setup date and time&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
date -s &amp;quot;2025-8-13 14:52:26&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show actual values&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# timedatectl &lt;br /&gt;
[  134.509782] kauditd_printk_skb: 8 callbacks suppressed&lt;br /&gt;
[  134.509793] audit: type=1334 audit(1732625725.140:18): prog-id=19 op=LOAD&lt;br /&gt;
[  134.523935] audit: type=1334 audit(1732625725.148:19): prog-id=20 op=LOAD&lt;br /&gt;
[  134.531609] audit: type=1334 audit(1732625725.152:20): prog-id=21 op=LOAD&lt;br /&gt;
               Local time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
           Universal time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
                 RTC time: Tue 2024-11-26 12:55:25&lt;br /&gt;
                Time zone: UTC (UTC, +0000)&lt;br /&gt;
System clock synchronized: yes&lt;br /&gt;
              NTP service: active&lt;br /&gt;
          RTC in local TZ: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I2C EEPROM Memory - on module ==&lt;br /&gt;
'''''Input:''''' Power on board&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Store some data to eeprom and after reboot read it back and should be same &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# dd if=/dev/urandom of=/sys/bus/i2c/devices/0-0050/eeprom bs=8 count=1&lt;br /&gt;
+1 records in&lt;br /&gt;
0+1 records out&lt;br /&gt;
8 bytes copied, 0.0225523 s, 0.4 kB/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After board reboot:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# hexdump -n8 /sys/bus/i2c/devices/0-0050/eeprom                                              &lt;br /&gt;
0000000 c4dd 4eda d624 535e                    &lt;br /&gt;
0000008&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reset button ==&lt;br /&gt;
'''''Input:''''' Press the RESET button&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will execute bootloader immediately with &amp;quot;Reset cause: POR&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' iMX91 Industrial Development Kit should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2023.04+gf8a2983ec8+p0 (Mar 04 2024 - 07:25:04 +0000)&lt;br /&gt;
&lt;br /&gt;
CPU:   i.MX93(52) rev1.1 1700 MHz (running at 1692 MHz)&lt;br /&gt;
CPU:   Industrial temperature grade (-40C to 105C) at 45C&lt;br /&gt;
Reset cause: POR (0x1)&lt;br /&gt;
Model: NXP i.MX93 Voipac EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  215 devices, 32 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On/Off button ==&lt;br /&gt;
'''''Input:''''' Press and hold On/Off button for more then 5 seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will be powered off&lt;br /&gt;
&lt;br /&gt;
Press shortly the On/Off button again, the board will be powered on.&lt;br /&gt;
&lt;br /&gt;
== Sleep Mode ==&lt;br /&gt;
'''''Input:''''' Type command:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo mem &amp;gt; /sys/power/state&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Output:''''' The board will go into a frozen state and the serial console will not respond to inputs.&lt;br /&gt;
&lt;br /&gt;
Shortly press the Up user button, to wake the board up again.&lt;br /&gt;
&lt;br /&gt;
[[File:imx93_sleep_mode.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User buttons ==&lt;br /&gt;
'''''Input:''''' Press Enter/Left/Right/Up/Down buttons&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Button events 1 and 0 are generated&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# evtest /dev/input/by-path/platform-gpio-buttons-event &lt;br /&gt;
Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100&lt;br /&gt;
Input device name: &amp;quot;gpio-buttons&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 28 (KEY_ENTER)&lt;br /&gt;
    Event code 103 (KEY_UP)&lt;br /&gt;
    Event code 105 (KEY_LEFT)&lt;br /&gt;
    Event code 106 (KEY_RIGHT)&lt;br /&gt;
    Event code 108 (KEY_DOWN)&lt;br /&gt;
Properties:&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1717485486.586413, type 1 (EV_KEY), code 103 (KEY_UP), value 1&lt;br /&gt;
Event: time 1717485486.586413, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485486.682265, type 1 (EV_KEY), code 103 (KEY_UP), value 0&lt;br /&gt;
Event: time 1717485486.682265, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.255120, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1&lt;br /&gt;
Event: time 1717485487.255120, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.367126, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0&lt;br /&gt;
Event: time 1717485487.367126, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.539564, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1&lt;br /&gt;
Event: time 1717485488.539564, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.677501, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0&lt;br /&gt;
Event: time 1717485488.677501, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.897627, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1&lt;br /&gt;
Event: time 1717485488.897627, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.013136, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0&lt;br /&gt;
Event: time 1717485489.013136, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.264589, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1&lt;br /&gt;
Event: time 1717485489.264589, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.372584, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0&lt;br /&gt;
Event: time 1717485489.372584, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User LED ==&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Script switches User LED on baseboard ON and OFF in one second intervals&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LED=/sys/class/leds/user_sbc&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
        echo 0 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
        echo 1 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on baseboard is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_sbc/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on SOM is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_som/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Module_Interfaces-Overview_top.png&amp;diff=5843</id>
		<title>File:iMX91 Industrial Module Interfaces-Overview top.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Module_Interfaces-Overview_top.png&amp;diff=5843"/>
		<updated>2025-10-30T10:13:42Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: Voipac-sw uploaded a new version of File:iMX91 Industrial Module Interfaces-Overview top.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Flashing_Procedure&amp;diff=5842</id>
		<title>iMX91 Industrial Flashing Procedure</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Flashing_Procedure&amp;diff=5842"/>
		<updated>2025-10-30T10:11:25Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial Development Kit]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
This page describes how to flash [https://downloads.voipac.com/index.php?p=iMX91_Industrial_Development_Kit/module/software/filesystem binaries] into iMX91 Industrial Module's eMMC Flash memory or into SD card that is located on the iMX Development Baseboard.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: All of the steps listed below are NOT REQUIRED for standard configuration modules and development kits.'''''&lt;br /&gt;
&lt;br /&gt;
== Installing Universal Upload Utility (UUU) ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/NXPmicro/mfgtools.git&lt;br /&gt;
cd mfgtools&lt;br /&gt;
mkdir .build &amp;amp;&amp;amp; cd .build &amp;amp;&amp;amp; cmake .. &amp;amp;&amp;amp; make -j`nproc`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary called '''''uuu''''', which is used for flashing, is located in .build/uuu directory.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
* Go to: https://github.com/NXPmicro/mfgtools/releases&lt;br /&gt;
* Select the latest stable release.&amp;lt;br /&amp;gt;Example: '''''Releases/uuu_1.5.233''''': https://github.com/nxp-imx/mfgtools/releases/tag/uuu_1.5.233&lt;br /&gt;
* Download: [https://github.com/nxp-imx/mfgtools/releases/download/uuu_1.5.233/uuu.exe uuu.exe]&lt;br /&gt;
* Save the file into: C:\uuu&lt;br /&gt;
&lt;br /&gt;
== Preparing the binaries ==&lt;br /&gt;
* Download the default WIC filesystem image e.g. for pro configuration: [https://downloads.voipac.com/files/iMX91_Industrial_Development_Kit/module/software/filesystem/voipac-image-imx91-pro.rootfs.wic voipac-image-imx91-pro.rootfs.wic]&lt;br /&gt;
&lt;br /&gt;
== Flashing procedure ==&lt;br /&gt;
* Set serial downloader mode by sliding DIP switch S1 BOOT positions to: 1-OFF, 2-ON&lt;br /&gt;
[[File:iMX8M_Industrial_Development_Kit-Serial_donwloader_mode.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Plug USB Micro-B cable to baseboard CONSOLE connector and PC&amp;lt;br /&amp;gt;'''''Note:''''' Make sure that UART1 and UART2 jumpers are in CP2105 positions (USB/UART bridge).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX Development Baseboard-Serial console jumpers-iMX91 COM.png|594px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Plug USB-C cable to baseboard USB-C connector and PC&amp;lt;br /&amp;gt;'''''Note:''''' Powering of the development kit is not required during the flashing procedure.&amp;lt;br /&amp;gt;'''''Note:''''' After connecting 2 development board cables, 2 serial ports named ''Silicon Labs CP210x USB to UART Bridge'' should appear in the controlling PC.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M Industrial Development Kit-Serial-consoles-recognized.png|594px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Default Serial Port Settings&lt;br /&gt;
[[File:Serial Port Setup.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download and copy imx-boot and *.wic files into ''uuu\'' directory&lt;br /&gt;
* Choose one of the following commands to start the flashing process:&lt;br /&gt;
=== eMMC Flash Memory (default) ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b emmc_all voipac-image-imx91-max.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b emmc_all voipac-image-imx91-max.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b sd_all voipac-image-imx91-max.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b sd_all voipac-image-imx91-max.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Flashing logs ===&lt;br /&gt;
==== UUU ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Microsoft Windows [Version 10.0.19045.2486]&lt;br /&gt;
(c) Microsoft Corporation. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
C:\Users\voipac&amp;gt;cd c:\uuu&lt;br /&gt;
&lt;br /&gt;
c:\uuu&amp;gt;uuu.exe -b emmc_all voipac-image-imx91-pro.rootfs.wic&lt;br /&gt;
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.233-0-g79ce7d2&lt;br /&gt;
&lt;br /&gt;
Success 1    Failure 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2:43     8/ 8 [Done                                  ] FB: done&lt;br /&gt;
&lt;br /&gt;
c:\uuu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:iMX91_Industrial_Development_Kit-Flashing_binaries.png|750px]]&lt;br /&gt;
&lt;br /&gt;
==== Serial console ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
.....................................................&lt;br /&gt;
downloading of 16776244 bytes finished&lt;br /&gt;
writing to partition 'all'&lt;br /&gt;
sparse flash target is mmc:0&lt;br /&gt;
writing to partition 'all' for sparse, buffer size 16776244&lt;br /&gt;
Flashing sparse image at offset 0&lt;br /&gt;
Flashing Sparse Image&lt;br /&gt;
........ wrote 16776192 bytes to 'all'&lt;br /&gt;
Starting download of 16776244 bytes&lt;br /&gt;
..........................................................................&lt;br /&gt;
.....................................................&lt;br /&gt;
downloading of 16776244 bytes finished&lt;br /&gt;
writing to partition 'all'&lt;br /&gt;
sparse flash target is mmc:0&lt;br /&gt;
writing to partition 'all' for sparse, buffer size 16776244&lt;br /&gt;
Flashing sparse image at offset 0&lt;br /&gt;
Flashing Sparse Image&lt;br /&gt;
........ wrote 16776192 bytes to 'all'&lt;br /&gt;
Starting download of 14886964 bytes&lt;br /&gt;
..........................................................................&lt;br /&gt;
.......................................&lt;br /&gt;
downloading of 14886964 bytes finished&lt;br /&gt;
writing to partition 'all'&lt;br /&gt;
sparse flash target is mmc:0&lt;br /&gt;
writing to partition 'all' for sparse, buffer size 14886964&lt;br /&gt;
Flashing sparse image at offset 0&lt;br /&gt;
Flashing Sparse Image&lt;br /&gt;
........ wrote 14886912 bytes to 'all'&lt;br /&gt;
Starting download of 1470464 bytes&lt;br /&gt;
...........&lt;br /&gt;
downloading of 1470464 bytes finished&lt;br /&gt;
writing to partition 'bootloader'&lt;br /&gt;
Initializing 'bootloader'&lt;br /&gt;
switch to partitions #1, OK&lt;br /&gt;
mmc0(part 1) is current device&lt;br /&gt;
Writing 'bootloader'&lt;br /&gt;
&lt;br /&gt;
MMC write: dev # 0, block # 0, count 2872 ... 2872 blocks written: OK&lt;br /&gt;
Writing 'bootloader' DONE!&lt;br /&gt;
Detect USB boot. Will enter fastboot mode!&lt;br /&gt;
Detect USB boot. Will enter fastboot mode!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running the newly flashed binaries ==&lt;br /&gt;
After completing the above steps, eMMC Flash memory or SD Card is flashed and the following steps are to be performed to boot the new image:&lt;br /&gt;
&lt;br /&gt;
* Unplug USB-C cable from PC&lt;br /&gt;
* Set Boot mode by sliding DIP switch S1 BOOT positions to: 1-ON, 2-OFF&lt;br /&gt;
[[File:iMX8M_Industrial_Development_Kit-Boot_mode.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* In case of SD card boot set DIP switch S1 BOOT positions to 1-ON, 2-ON&lt;br /&gt;
[[File:SD Card booting.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  Make sure that S2 BOOT and S3 BOOT DIP switches are in correct positions in order to boot from the selected storage media (eMMC Flash memory or SD Card):&lt;br /&gt;
==== eMMC Flash Memory boot (default) ====&lt;br /&gt;
[[File:boot eMMC iMX91.png|400px]] &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SD Card boot ====&lt;br /&gt;
[[File:boot SD Card iMX91.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Connect USB Micro-B debug cable, switch on the power and the development kit starts booting with the new binaries&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting DTB file ==&lt;br /&gt;
* To set a correct DTB file, stop autoboot.&lt;br /&gt;
&lt;br /&gt;
* Use these commands to set a DTB file for the image loaded in eMMC:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt;fatls mmc 0:1&lt;br /&gt;
u-boot=&amp;gt;setenv fdtfile imx91-voipac-evk.dtb&lt;br /&gt;
u-boot=&amp;gt;saveenv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use these commands to set a DTB file for the image loaded in SD Card (example for Tianma Display):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;        &lt;br /&gt;
u-boot=&amp;gt;fatls mmc 1:1&lt;br /&gt;
u-boot=&amp;gt;setenv fdtfile imx91-11x11-evk-tianma-wvga-panel.dtb&lt;br /&gt;
u-boot=&amp;gt;saveenv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:imx91_dtb_setting.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To boot the image, reset the board or type the boot command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt;boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:imx91_dtb_setting.png&amp;diff=5841</id>
		<title>File:imx91 dtb setting.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:imx91_dtb_setting.png&amp;diff=5841"/>
		<updated>2025-10-30T10:11:15Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:boot_eMMC_iMX91.png&amp;diff=5840</id>
		<title>File:boot eMMC iMX91.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:boot_eMMC_iMX91.png&amp;diff=5840"/>
		<updated>2025-10-30T10:09:27Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:boot_SD_Card_iMX91.png&amp;diff=5839</id>
		<title>File:boot SD Card iMX91.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:boot_SD_Card_iMX91.png&amp;diff=5839"/>
		<updated>2025-10-30T10:09:13Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-Flashing_binaries.png&amp;diff=5838</id>
		<title>File:iMX91 Industrial Development Kit-Flashing binaries.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Development_Kit-Flashing_binaries.png&amp;diff=5838"/>
		<updated>2025-10-30T10:07:02Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX_Development_Baseboard-Serial_console_jumpers-iMX91_COM.png&amp;diff=5837</id>
		<title>File:iMX Development Baseboard-Serial console jumpers-iMX91 COM.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX_Development_Baseboard-Serial_console_jumpers-iMX91_COM.png&amp;diff=5837"/>
		<updated>2025-10-30T09:59:45Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Controlling_the_Development_Kit&amp;diff=5836</id>
		<title>iMX91 Industrial Controlling the Development Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Controlling_the_Development_Kit&amp;diff=5836"/>
		<updated>2025-10-30T09:57:23Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
This page guides though the first steps of controlling and operating the development kit. To prepare the working setup connect and plug in cables first.&lt;br /&gt;
&lt;br /&gt;
=Controlling the Development Kit over Serial Line=&lt;br /&gt;
==Recommended HW:==&lt;br /&gt;
&lt;br /&gt;
* PC with USB port&lt;br /&gt;
* Voipac iMX91 Industrial Development Kit&lt;br /&gt;
* Micro USB Cable: iMX Baseboard USB Micro-B Console (Default)&lt;br /&gt;
* TTL-232R-3V3-FTDI: iMX Baseboard UART1 Serial Console (Optional)&lt;br /&gt;
&lt;br /&gt;
==Recommended SW:==&lt;br /&gt;
&lt;br /&gt;
Serial line terminal (PUTTY, Minicom, Ckermit, Hyperterminal, TeraTerm, ...)&lt;br /&gt;
&lt;br /&gt;
===Default serial port settings:===&lt;br /&gt;
&lt;br /&gt;
* Speed (baud): 115200&lt;br /&gt;
* Data bits: 8&lt;br /&gt;
* Stop bits: 1&lt;br /&gt;
* Parity: None&lt;br /&gt;
* Flow control: None&lt;br /&gt;
&lt;br /&gt;
===Controlling the development kit using TeraTerm and PuTTY:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:iMX91 TeraTerm log.png]] &amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
[[File:iMX91 PuTTY Serial log.png]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' If you use the UART1 Console cable, it is necessary to switch the UART1 and UART 2 jumpers to the UART-CPU position as shown in the picture below.&lt;br /&gt;
&lt;br /&gt;
[[File:iMX91 UART Serial Console.png|800px]]  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Controlling the Development Kit over Ethernet=&lt;br /&gt;
===Recommended HW:===&lt;br /&gt;
&lt;br /&gt;
* PC with Ethernet&lt;br /&gt;
* Voipac iMX91 Industrial Development Kit&lt;br /&gt;
* Ethernet Cable&lt;br /&gt;
&lt;br /&gt;
===Recommended SW:===&lt;br /&gt;
&lt;br /&gt;
* SFTP client (Filezilla, PUTTY, WinSCP, …)&lt;br /&gt;
* Telnet client (Telnet, PUTTY, …)&lt;br /&gt;
* SSH client (SSH,PUTTY, …)&lt;br /&gt;
* FTP client (FTP, Filezilla, BareFTP, …)&lt;br /&gt;
&lt;br /&gt;
===Important notes:===&lt;br /&gt;
&lt;br /&gt;
iMX91 Industrial Development Kit is shipped with empty password. The default login is: &amp;quot;root&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The default IP address is dynamic and setup by your DHCP server upon boot.&lt;br /&gt;
&lt;br /&gt;
SSH, SFTP services require root password to be set up (“passwd” command)&lt;br /&gt;
&lt;br /&gt;
FTP, SFTP are recommended only for data transfers (binary mode is recommended)&lt;br /&gt;
&lt;br /&gt;
===Controlling the development kit using WinSCP:===&lt;br /&gt;
&lt;br /&gt;
[[File:iMX91 WinSCP.png|800px]] &amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
[[File:iMX91 WinSCP commander.png|800px]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_WinSCP_commander.png&amp;diff=5835</id>
		<title>File:iMX91 WinSCP commander.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_WinSCP_commander.png&amp;diff=5835"/>
		<updated>2025-10-30T09:57:07Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_WinSCP.png&amp;diff=5834</id>
		<title>File:iMX91 WinSCP.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_WinSCP.png&amp;diff=5834"/>
		<updated>2025-10-30T09:56:46Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_UART_Serial_Console.png&amp;diff=5833</id>
		<title>File:iMX91 UART Serial Console.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_UART_Serial_Console.png&amp;diff=5833"/>
		<updated>2025-10-30T09:55:57Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_PuTTY_Serial_log.png&amp;diff=5832</id>
		<title>File:iMX91 PuTTY Serial log.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_PuTTY_Serial_log.png&amp;diff=5832"/>
		<updated>2025-10-30T09:55:07Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_TeraTerm_log.png&amp;diff=5831</id>
		<title>File:iMX91 TeraTerm log.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_TeraTerm_log.png&amp;diff=5831"/>
		<updated>2025-10-30T09:54:49Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Connecting_the_Components_and_Cables&amp;diff=5830</id>
		<title>iMX91 Industrial Connecting the Components and Cables</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Connecting_the_Components_and_Cables&amp;diff=5830"/>
		<updated>2025-10-30T09:54:03Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page is intended to show the necessary connections and steps to successfully boot and operate the development kit.&lt;br /&gt;
&lt;br /&gt;
==Connecting the board==&lt;br /&gt;
Prepare iMX Development Baseboard and plug in Micro USB Cable, Ethernet cable and other devices or interfaces you need. Plug the power supply connector in.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:iMX91 Components Cables.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Connecting the Ethernet cable==&lt;br /&gt;
Connect the Ethernet cable to bottom connector (preset as default) of the Ethernet port.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Components Cables Ethernet.png|800px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting the microSD Card (OPTIONAL)==&lt;br /&gt;
Insert the micro SD card into the micro SD Slot in case that booting is set from the micro SD card. &lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' The Development Kit, which have default setting to boot from SD Card, already contains an inserted SD Card.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Components Cables microSD.png|800px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' Before Turn On, make sure that S1, S2 and S3 BOOT DIP switches are in correct positions in order to boot from the selected storage media (eMMC Flash memory or SD Card). For more details visit: [[iMX91_Industrial_Flashing_Procedure#Running_the_newly_flashed_binaries]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Connecting_the_Components_and_Cables&amp;diff=5829</id>
		<title>iMX91 Industrial Connecting the Components and Cables</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Connecting_the_Components_and_Cables&amp;diff=5829"/>
		<updated>2025-10-30T09:53:38Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX93 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page is intended to show the necessary connections and steps to successfully boot and operate the development kit.&lt;br /&gt;
&lt;br /&gt;
==Connecting the board==&lt;br /&gt;
Prepare iMX Development Baseboard and plug in Micro USB Cable, Ethernet cable and other devices or interfaces you need. Plug the power supply connector in.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:iMX91 Components Cables.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Connecting the Ethernet cable==&lt;br /&gt;
Connect the Ethernet cable to bottom connector (preset as default) of the Ethernet port.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Components Cables Ethernet.png|800px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting the microSD Card (OPTIONAL)==&lt;br /&gt;
Insert the micro SD card into the micro SD Slot in case that booting is set from the micro SD card. &lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' The Development Kit, which have default setting to boot from SD Card, already contains an inserted SD Card.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Components Cables microSD.png|800px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' Before Turn On, make sure that S1, S2 and S3 BOOT DIP switches are in correct positions in order to boot from the selected storage media (eMMC Flash memory or SD Card). For more details visit: [[iMX91_Industrial_Flashing_Procedure#Running_the_newly_flashed_binaries]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Components_Cables.png&amp;diff=5828</id>
		<title>File:iMX91 Components Cables.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Components_Cables.png&amp;diff=5828"/>
		<updated>2025-10-30T09:51:46Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Module_Interfaces_Overview&amp;diff=5827</id>
		<title>iMX91 Industrial Module Interfaces Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Module_Interfaces_Overview&amp;diff=5827"/>
		<updated>2025-10-30T09:48:52Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX93 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
== iM91 Industrial Module Interfaces Overview Top Side ==&lt;br /&gt;
[[image:iMX91 Industrial Module Interfaces-Overview top.png|center|800px]]&lt;br /&gt;
== iMX91 Industrial Module Interfaces Overview Bottom Side ==&lt;br /&gt;
[[image:iMX91 Industrial Module Interfaces-Overview bottom.png|center|800px]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Module_Interfaces-Overview_bottom.png&amp;diff=5826</id>
		<title>File:iMX91 Industrial Module Interfaces-Overview bottom.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Module_Interfaces-Overview_bottom.png&amp;diff=5826"/>
		<updated>2025-10-30T09:48:40Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Module_Interfaces-Overview_top.png&amp;diff=5825</id>
		<title>File:iMX91 Industrial Module Interfaces-Overview top.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=File:iMX91_Industrial_Module_Interfaces-Overview_top.png&amp;diff=5825"/>
		<updated>2025-10-30T09:47:33Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Power_Consumption&amp;diff=5783</id>
		<title>iMX91 Industrial Power Consumption</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Power_Consumption&amp;diff=5783"/>
		<updated>2025-10-22T19:30:02Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page contains power consumption measurements for the iMX91 Industrial Development Kits in all 4 standard webshop configurations. All of the sets used during the test procedure were running the default Linux distribution and booted up from the eMMC NAND Flash Memory.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' While measured, the development kits were placed under a very heavy load - using stress test application putting CPU, memories and Ethernet/s under challenging conditions.&lt;br /&gt;
&lt;br /&gt;
== Test setup and measuring equipment ==&lt;br /&gt;
* power supply: BK Precision 1688B&lt;br /&gt;
* digital multimeter: Fluke 115 True RMS&lt;br /&gt;
* measured at: 20°C ambient temperature&lt;br /&gt;
&lt;br /&gt;
[[image:iMX93 Industrial Development Kit-Power consumption measurement setup.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== Power consumption results ==&lt;br /&gt;
=== iMX91 Industrial Development Kit Basic ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&lt;br /&gt;
!Test condition !! Input voltage&amp;lt;br/ &amp;gt;Vin [V] !! Measured current&amp;lt;br/ &amp;gt;I [A] !! Power usage&amp;lt;br/ &amp;gt;P [W]&lt;br /&gt;
|-&lt;br /&gt;
|Uboot only || 5.188 || 0.290 || 1.506&lt;br /&gt;
|-&lt;br /&gt;
|Booting-up process (maximum) || 5.190 || 0.341 || 1.770&lt;br /&gt;
|-&lt;br /&gt;
|Linux at idle || 5.192 || 0.227 || 1.179&lt;br /&gt;
|-&lt;br /&gt;
|Sleep mode || 5.198 || 0.049 || 0.257&lt;br /&gt;
|-&lt;br /&gt;
|Linux + Stresstest || 5.193 || 0.367 || 1.905&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== iMX91 Industrial Development Kit Pro ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&lt;br /&gt;
!Test condition !! Input voltage&amp;lt;br/ &amp;gt;Vin [V] !! Measured current&amp;lt;br/ &amp;gt;I [A] !! Power usage&amp;lt;br/ &amp;gt;P [W]&lt;br /&gt;
|-&lt;br /&gt;
|Uboot only || 5.183 || 0.401 || 2.081&lt;br /&gt;
|-&lt;br /&gt;
|Booting-up process (maximum) || 5.182 || 0.478 || 2.476&lt;br /&gt;
|-&lt;br /&gt;
|Linux at idle || 5.186 || 0.323 || 1.675&lt;br /&gt;
|-&lt;br /&gt;
|Sleep mode || 5.195 || 0.079 || 0.414&lt;br /&gt;
|-&lt;br /&gt;
|Linux + Stresstest || 5.181 || 0.482 || 2.498&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== iMX91 Industrial Development Kit Max ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&lt;br /&gt;
!Test condition !! Input voltage&amp;lt;br/ &amp;gt;Vin [V] !! Measured current&amp;lt;br/ &amp;gt;I [A] !! Power usage&amp;lt;br/ &amp;gt;P [W]&lt;br /&gt;
|-&lt;br /&gt;
|Uboot only || 5.183 || 0.416 || 2.159&lt;br /&gt;
|-&lt;br /&gt;
|Booting-up process (maximum) || 5.186 || 0.460 || 2.386&lt;br /&gt;
|-&lt;br /&gt;
|Linux at idle || 5.186 || 0.338 || 1.756&lt;br /&gt;
|-&lt;br /&gt;
|Sleep mode || 5.196 || 0.085 || 0.444&lt;br /&gt;
|-&lt;br /&gt;
|Linux + Stresstest || 5.183 || 0.574 || 2.977&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5782</id>
		<title>iMX91 Industrial Recovery</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Recovery&amp;diff=5782"/>
		<updated>2025-10-22T19:28:52Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
=Description=&lt;br /&gt;
The recovery procedure consists of following steps:&lt;br /&gt;
&lt;br /&gt;
* Downloading binaries from Voipac download webpage&lt;br /&gt;
* Flashing binaries and filesystem over Baseboard USB-C connector&lt;br /&gt;
* Setting a suitable dtb file in bootloader (u-boot)&lt;br /&gt;
* Resetting and booting a module&lt;br /&gt;
&lt;br /&gt;
==Recommended Software==&lt;br /&gt;
* Universal Update Utility (UUU)&lt;br /&gt;
* Windows Command Promt&lt;br /&gt;
* TFTP Server&lt;br /&gt;
* DHCP Server (Otional)&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
&lt;br /&gt;
==Updating U-boot and Filesystem:==&lt;br /&gt;
===Download u-boot file:===&lt;br /&gt;
&lt;br /&gt;
https://downloads.voipac.com/index.php?p=iMX93_Industrial_Development_Kit/module/software/yocto/binaries&lt;br /&gt;
&lt;br /&gt;
===Download filesystem:===&lt;br /&gt;
&lt;br /&gt;
https://downloads.voipac.com/index.php?p=iMX93_Industrial_Development_Kit/module/software/filesystem&lt;br /&gt;
&lt;br /&gt;
===Download Universal Update Utility (UUU) if needed:===&lt;br /&gt;
&lt;br /&gt;
https://github.com/nxp-imx/mfgtools/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a new folder e.g. C:\uuu and move all downloaded files into it.&lt;br /&gt;
&lt;br /&gt;
==Flashing  uboot and filesystem==&lt;br /&gt;
Prepare Voipac baseboard and follow the steps to flash the module as shown on this [[iMX91 Industrial Flashing Procedure|page]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting a suitable dtb file in bootloader (u-boot)==&lt;br /&gt;
&lt;br /&gt;
Stop autoboot in bootloader:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2024.04-lf_v2024.04+gde16f4f1722+p0 (Sep 02 2024 - 10:44:35 +0000)&lt;br /&gt;
&lt;br /&gt;
Reset Status: POR&lt;br /&gt;
&lt;br /&gt;
CPU:   NXP i.MX93(52) Rev1.1 A55 at 1700 MHz&lt;br /&gt;
CPU:   Industrial temperature grade  (-40C to 105C) at 36C&lt;br /&gt;
&lt;br /&gt;
Model: Voipac i.MX93 EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  219 devices, 31 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
probe video device failed, ret -19&lt;br /&gt;
&lt;br /&gt;
        [0] lcd-controller@4ae30000, video&lt;br /&gt;
fail to find output device&lt;br /&gt;
probe video device failed, ret -19&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
&lt;br /&gt;
BuildInfo:&lt;br /&gt;
  - ELE firmware version 1.2.0-38f309fe&lt;br /&gt;
&lt;br /&gt;
switch to partitions #0, OK&lt;br /&gt;
mmc0(part 0) is current device&lt;br /&gt;
UID: ad4a5a940e804162a528d6fe1532d4d5&lt;br /&gt;
flash target is MMC:0&lt;br /&gt;
Net:   eth0: ethernet@42890000, eth1: ethernet@428a0000 [PRIME]&lt;br /&gt;
Fastboot: Normal&lt;br /&gt;
Normal Boot&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter command fatls mmc 0:1 (filesystem in eMMC) or fatls mmc 1:1 (filesystem in SD Card) to see a list of DTB files:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; fatls mmc 0:1&lt;br /&gt;
 35564032   Image&lt;br /&gt;
    69445   imx93-11x11-evk-aud-hat.dtb&lt;br /&gt;
    66749   imx93-11x11-evk-boe-wxga-lvds-panel.dtb&lt;br /&gt;
    65705   imx93-11x11-evk-flexio-i2c.dtb&lt;br /&gt;
    66009   imx93-11x11-evk-flexspi-m2.dtb&lt;br /&gt;
    66799   imx93-11x11-evk-i2c-spi-slave.dtb&lt;br /&gt;
    65062   imx93-11x11-evk-i3c.dtb&lt;br /&gt;
     2725   imx93-11x11-evk-inmate.dtb&lt;br /&gt;
    51134   imx93-11x11-evk-iw612-otbr.dtb&lt;br /&gt;
    65362   imx93-11x11-evk-ld.dtb&lt;br /&gt;
    65520   imx93-11x11-evk-lpuart.dtb&lt;br /&gt;
    65983   imx93-11x11-evk-mqs.dtb&lt;br /&gt;
    68814   imx93-11x11-evk-mt9m114.dtb&lt;br /&gt;
    65819   imx93-11x11-evk-rm67199.dtb&lt;br /&gt;
    65573   imx93-11x11-evk-root.dtb&lt;br /&gt;
    66108   imx93-11x11-evk-rpmsg-lpv.dtb&lt;br /&gt;
    66132   imx93-11x11-evk-rpmsg.dtb&lt;br /&gt;
   130428   imx93-11x11-evk_m33_TCM_low_power_wakeword.bin&lt;br /&gt;
    19080   imx93-11x11-evk_m33_TCM_power_mode_switch.bin&lt;br /&gt;
    18708   imx93-11x11-evk_m33_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin&lt;br /&gt;
    17228   imx93-11x11-evk_m33_TCM_rpmsg_lite_str_echo_rtos.bin&lt;br /&gt;
    47472   imx93-11x11-evk_m33_TCM_sai_low_power_audio.bin&lt;br /&gt;
    48794   imx93-voipac-evk-boe-wxga-lvds-panel.dtb&lt;br /&gt;
    47605   imx93-voipac-evk.dtb&lt;br /&gt;
   593744   tee.bin&lt;br /&gt;
&lt;br /&gt;
25 file(s), 0 dir(s)&lt;br /&gt;
&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the required DTB file and enter the command to set it up:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; setenv fdtfile imx91-voipac-evk.dtb&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt; saveenv&lt;br /&gt;
Saving Environment to MMC... Writing to MMC(0)... OK&lt;br /&gt;
u-boot=&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter boot command or reset the baseboard for image loading.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Debian&amp;diff=5781</id>
		<title>iMX91 Industrial Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Debian&amp;diff=5781"/>
		<updated>2025-10-22T19:28:12Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Debian]]&lt;br /&gt;
[[Category:Debian]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page guides through the process of downloading the Debian source files for release (bookworm) and building images for the iMX91 Industrial Development Kit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the source files for this customized Debian, together with the recent changes made, can be inspected and downloaded at the [https://github.com/voipac/debian-imx-voipac Voipac GitHub] repository.&lt;br /&gt;
&lt;br /&gt;
== Cloning the project ==&lt;br /&gt;
Create a new directory for the project environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir ~/voipac-debian&lt;br /&gt;
cd ~/voipac-debian&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clone the iMX9x Industrial Debian Project into the host machine:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/voipac/debian-imx-voipac&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prerequisites  ==&lt;br /&gt;
&lt;br /&gt;
For Debian image building it is necessary to install docker [https://docs.docker.com/desktop/setup/install/linux/ubuntu/ installation] as whole procedure is done in virtualised environment.&lt;br /&gt;
&lt;br /&gt;
== Building the image ==&lt;br /&gt;
Voipac provides quick and simple-to-use option how to build an image by using [https://github.com/voipac/debian-imx-voipac/blob/master/build_debian_voipac.sh build_debian_voipac.sh] prepared script:&lt;br /&gt;
&lt;br /&gt;
This script automatically create Debian image for iMX91:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
MACHINE=imx91-voipac ./build_debian_voipac.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During the u-boot build user will be asked for RAM Size. For basic kit configuration select option (1), for lite select 1G (option 2) and for pro and max configurations choose 2G option (option 3) as shown in below image.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:Screenshot from 2025-01-29 08-48-33.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Locating output files ==&lt;br /&gt;
After the build process was completed, the freshly built output files are located in the root directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -la image.sdimg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prebuild images ==&lt;br /&gt;
Prebuild images can be downloaded at following [https://downloads.voipac.com/index.php?p=iMX91_Industrial_Development_Kit/module/software/debian/binaries link]&lt;br /&gt;
&lt;br /&gt;
== Flashing the binaries ==&lt;br /&gt;
At this point everything was prepared to flash the binaries. Follow the [[iMX91 Industrial Flashing Procedure|flashing procedure]] instructions to start the development kit with the compiled images.&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
When image is flashed and board is booted default credentials can be either '''root/root''' or '''voipac/voipac'''.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Mender&amp;diff=5780</id>
		<title>iMX91 Industrial Mender</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Mender&amp;diff=5780"/>
		<updated>2025-10-22T19:27:41Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Yocto]]&lt;br /&gt;
[[Category:Yocto]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page describes [https://hub.mender.io/t/voipac-imx91-industrial-development-kit/7316 Mender OTA updater integration] into the Yocto Project for the iMX91 Industrial Development Kit. Mender is a secure, robust and industry leading software update system capable to handle a large number of devices.&lt;br /&gt;
&lt;br /&gt;
Mender supports several extensions enabling features like Remote Terminal, Port Forward, File Transfer, and Device Configuration, together with the ability to monitor and alert.&lt;br /&gt;
&lt;br /&gt;
The steps described on this Wiki page are primarily focused on complying Mender updater into the Yocto Project. The well written [https://docs.mender.io/ official Mender documentation] covers all the other important aspects of this utility.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
In-depth information about the machine requirements can be found in the [https://docs.yoctoproject.org/5.0/mega-manual/mega-manual.html Yocto mega manual]&lt;br /&gt;
&lt;br /&gt;
Because the Mender utility will be integrated into the Yocto Project Release 5.0 (scarthgap), the Mender layer share the same steps for host machine setup as the Yocto Project.&lt;br /&gt;
&lt;br /&gt;
To prepare the machine, follow the [[iMX91 Industrial Yocto Prerequisites|Yocto Project Prerequisites]] Wiki page.&lt;br /&gt;
&lt;br /&gt;
== Configuring the build ==&lt;br /&gt;
=== Setup Yocto environment ===&lt;br /&gt;
Clone repo:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/voipac/yocto-imx-voipac.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Checkout mender branch:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd yocto-imx-voipac&lt;br /&gt;
git checkout origin/imx91-mender&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure Mender server URL (optional) ==&lt;br /&gt;
This section is not required for a successful build but images that are generated by default are only suitable for usage with the Mender client in [https://docs.mender.io/artifact-creation/standalone-deployment?target=_blank Standalone deployments], due to lack of server configuration.&lt;br /&gt;
&lt;br /&gt;
Edit the ''conf/local.conf'' file to provide the Mender server configuration, ensuring that the generated images and Mender Artifacts are connecting to the Mender server. There should already be a commented section in the generated ''conf/local.conf'' file. A simple uncommenting the relevant configuration and assigning appropriate values sets up the server sufficiently.&lt;br /&gt;
&lt;br /&gt;
Build for Hosted Mender:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# To get your tenant token:&lt;br /&gt;
#    - log in to https://hosted.mender.io&lt;br /&gt;
#    - click your email at the top right and then &amp;quot;My organization&amp;quot;&lt;br /&gt;
#    - press the &amp;quot;COPY TO CLIPBOARD&amp;quot;&lt;br /&gt;
#    - assign content of clipboard to MENDER_TENANT_TOKEN&lt;br /&gt;
#&lt;br /&gt;
MENDER_SERVER_URL = &amp;quot;https://hosted.mender.io&amp;quot;&lt;br /&gt;
MENDER_TENANT_TOKEN = &amp;quot;&amp;lt;copy token here&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building the image ==&lt;br /&gt;
You can now proceed with building an image:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
build_image.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or if you want to use docker container for building run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
build_image_container.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the build output ==&lt;br /&gt;
After a successful build, the images and build artifacts are placed in ''tmp/deploy/images/imx91-voipac/'' directory.&lt;br /&gt;
&lt;br /&gt;
The disk image (with ''.sdimg.zst'' suffix) is used to provision the storage for devices without Mender already running. Please proceed to the [https://docs.mender.io/system-updates-yocto-project/provisioning-a-new-device?target=_blank official documentation on provisioning a new device] for steps to do so.&lt;br /&gt;
&lt;br /&gt;
On the other hand, if Mender has already been running on the device and want to deploy a rootfs update using this build, the [https://docs.mender.io/overview/artifact?target=_blank Mender Artifact] files, with ''.mender'' suffix, can be used instead. This Artifact can either be deployed in managed mode with the Mender server (upload it under Releases in the server UI) or by using the Mender client [https://docs.mender.io/artifact-creation/standalone-deployment standalone mode].&lt;br /&gt;
&lt;br /&gt;
== Flashing instructions ==&lt;br /&gt;
&lt;br /&gt;
For flashing to eMMC we need to use uuu utility which must be installed on your host computer (mfgtools. Also due issue with emmc boot we split flashing to 2 parts. First we use imx-boot without mender integration and the we replace imx-boot in eMMC with one with mender integration. All is prepared in convenient script imx91 mender flashing&lt;br /&gt;
&lt;br /&gt;
Copy image + imx-boot to custom directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp yocto-imx-voipac/build/tmp/deploy/images/imx91-voipac/voipac-image-imx91-voipac.sdimg.zst yocto-imx-voipac/flashing&lt;br /&gt;
cp yocto-imx-voipac/build/tmp/deploy/images/imx91-voipac/imx-boot yocto-imx-voipac/flashing&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# make copy of mender imx-boot&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd yocto-imx-voipac/flashing&lt;br /&gt;
cp -f imx-boot imx-boot-flash-mender&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare board to serial download mode&lt;br /&gt;
Setup S1 pin to Serial download mode and connect imx91 board to you PC using USB-C cable.&lt;br /&gt;
&lt;br /&gt;
Run flashing script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./flash-mender.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After all is done you can unplugged USB-C and power on your board with mender integrated.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Yocto_Image_Building&amp;diff=5779</id>
		<title>iMX91 Industrial Yocto Image Building</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Yocto_Image_Building&amp;diff=5779"/>
		<updated>2025-10-22T19:26:55Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Yocto]]&lt;br /&gt;
[[Category:Yocto]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page guides through the process of downloading the Yocto Project source files for release 5.0 (scarthgap), their synchronization and building images for the iMX91 Industrial Development Kit.&lt;br /&gt;
&lt;br /&gt;
Before images can be built, [[iMX91 Industrial Yocto Prerequisites|necessary steps need to be performed]] to setup the host machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the source files for this customized Yocto Project, together with the recent changes made, can be inspected and downloaded at the [https://github.com/voipac Voipac GitHub] repository.&lt;br /&gt;
&lt;br /&gt;
== Cloning the project ==&lt;br /&gt;
Create a new directory for the project environment:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir ~/voipac-yocto&lt;br /&gt;
cd ~/voipac-yocto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clone the iMX91 Industrial Yocto Project into the host machine:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/voipac/yocto-imx-voipac.git&lt;br /&gt;
git checkout -b imx91 origin/imx9x-scarthgap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building the image ==&lt;br /&gt;
Voipac provides quick and simple-to-use option how to build an image by using [https://github.com/voipac/yocto-imx-voipac/blob/imx9x-scarthgap/build_image.sh prepared script]:&lt;br /&gt;
&lt;br /&gt;
This script automatically updates the latest meta layers. These layers include config files describing where all the sources are located. Afterwards all the directories are synchronized.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script can be run to fetch and build the Yocto images by simply calling its filename:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./build_image.sh [lite|basic|pro|max] imx91&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' The first successful build can take several hours (depending on multiple factors affecting the host machine like CPU, internet bandwidth, allocated disk space, etc.).&lt;br /&gt;
&lt;br /&gt;
== Locating output files ==&lt;br /&gt;
After the compiling process was completed, the freshly built output files are located in the directory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/voipac-yocto/yocto-imx-voipac/build/tmp/deploy/images/imx91-voipac&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This directory also include binaries to be flashed into the development kit. To make them more accessible, the files can be copied and unpacked:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -prv voipac-image-imx91-voipac.rootfs-20250110131518.wic.zst ~/voipac-image-imx91-voipac.wic.zst&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''''Note:''''' The number string (e.g. ''20250110131518'') in the filename differs between every build as it displays the timestamp of the compilation.&lt;br /&gt;
&lt;br /&gt;
== Flashing the binaries ==&lt;br /&gt;
At this point everything was prepared to flash the binaries. Follow the [[iMX91 Industrial Flashing Procedure|flashing procedure]] instructions to start the development kit with the compiled images.&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Yocto_Prerequisites&amp;diff=5778</id>
		<title>iMX91 Industrial Yocto Prerequisites</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Yocto_Prerequisites&amp;diff=5778"/>
		<updated>2025-10-22T19:26:09Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Yocto]]&lt;br /&gt;
[[Category:Yocto]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Wiki page describes the necessary steps to prepare the host machine for successful compilation of the Yocto BSP release 5.0 (scarthgap) for the iMX91 Industrial Development Kit.&lt;br /&gt;
&lt;br /&gt;
If the host setup has been completed, follow [[iMX91 Industrial Yocto Image Building|Yocto Image Build Wiki page]], which summarizes the process of compiling Yocto images and binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the source files for this customized Yocto Project, together with the recent changes made, can be inspected and downloaded at the [https://github.com/voipac Voipac GitHub] repository.&lt;br /&gt;
&lt;br /&gt;
== Host machine setup ==&lt;br /&gt;
This image build was tested and verified on [https://releases.ubuntu.com/focal/ubuntu-20.04.6-desktop-amd64.iso Ubuntu 20.04 LTS (Focal Fossa)] operating systems.&lt;br /&gt;
&lt;br /&gt;
Follow the standard Ubuntu desktop installation, in case of difficulties head to the [https://ubuntu.com/tutorials/install-ubuntu-desktop Ubuntu installation guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' It is advisable to install the operating system into the virtual machine as this allows the working environment to be more flexible, adjustable and shareable.&lt;br /&gt;
&lt;br /&gt;
== Host packages ==&lt;br /&gt;
After the successful operating system installation, following packages, essential for image building, need to be added to the build machine:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xz-utils zstd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== kas tool install ==&lt;br /&gt;
To ease the usage of Git repositories kas tool needs to be installed. This enables kas config files usage and its advantages. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip3 install kas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Git identity setup ==&lt;br /&gt;
Git uses a username with connected email address to associate commits with an identity. To set up a Git username and email, following commands (with own credentials) should be used:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;Your Email&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point the host machine has been successfully setup and ready to start the [[iMX91 Industrial Yocto Image Building|image building]].&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_EMC_testing&amp;diff=5777</id>
		<title>iMX91 Industrial EMC testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_EMC_testing&amp;diff=5777"/>
		<updated>2025-10-22T19:25:40Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''EMC testing of iMX91 Industrial Development Kit is successfully finished.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Content of this page will be updated soon.'''''&lt;br /&gt;
&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-EMC testing-in progress.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:iMX8M Industrial Development Kit]]&lt;br /&gt;
[[Category:iMX8M Industrial Development Kit Testing]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Electromagnetic compatibility results for iMX8M Industrial Development Kit are presented on this page. Test setup and scripts are described in details.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These tests were performed with setups using the standard hardware and software configurations of the web shop development kits, with multiple accessories actively used, to simulate a real-world operation.&lt;br /&gt;
&lt;br /&gt;
The certificate measurements were carried out on the iMX8M Industrial Development Kit in Pro version as this configuration delivers the best price-performance ratio and is the most popular amongst the customers. Other configurations - Max and Basic were also tested both passing the EMC radiated and conducted emmissions Class B norm. As the differences in the results were negligible, this web page focuses on the certificated measurements of the [https://www.voipac.com/imx8m-industrial-development-kit-pro Pro configuration] of the development kit.&lt;br /&gt;
&lt;br /&gt;
The certificate document contains numerous different measurement as described in the ETSI EMC standards. This wiki page highlights and discuses only the most important results. All the details can be found in the EMC certificate and [https://downloads.voipac.com/index.php?p=iMX8M_Industrial_Development_Kit/module/documents/EMC_certification dedicated downloads folder].&lt;br /&gt;
&lt;br /&gt;
The measurements were performed in an accredited test laboratory. After passing all the requirements described in the harmonised standard ETSI EN 301 489-17, the [https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC_certificate_with_conformity_assessment_and_test_reports.pdf EMC certificate with conformity assessment and test reports]  was issued for the iMX8M Industrial Development Kit.&lt;br /&gt;
&lt;br /&gt;
== Connected cables/devices ==&lt;br /&gt;
* '''Power source:''' [https://www.voipac.com/power-supply-5v-40w +5V 40W power supply] used for input voltage&lt;br /&gt;
* '''Storage device:''' eMMC Flash memory soldered on module used for booting, filesystem operation and script storage&lt;br /&gt;
* '''Ethernet:''' 1m long CAT Ethernet [https://supportportal.juniper.net/s/article/EX-How-to-link-up-Juniper-Ethernet-switching-GbE-copper-port-by-RJ45-loopback-connector?language=en_US loopback cable] connected. Forced to 100Mbps and used for ping test&lt;br /&gt;
* one of these '''video output''' options was used at a time:&lt;br /&gt;
** '''DisplayPort (M) interface used with LCD monitor connected:''' Full-HD output video stream generated and sent to LCD monitor via 1.5m long DisplayPort cable, with ferrite beads added (Würth Elektronik P/N: 742 711 32). The output signal forced to be continuously generated, contributing to EMC spectrum, monitor was plugged into mains, turned on, and laid flat on the floor to minimise its impact on results. Used LCD monitor: 24&amp;quot; LG LG24BK550Y 1920×1080 px&lt;br /&gt;
** '''HDMI interface used with LCD monitor connected:''' Full-HD output video stream generated and sent to LCD monitor via 1.5m long HDMI cable, with ferrite beads added (Würth Elektronik P/N: 742 758 15). The output signal forced to be continuously generated, contributing to EMC spectrum, monitor was plugged into mains, turned on, and laid flat on the floor to minimise its impact on results. Used LCD monitor: 24&amp;quot; LG LG24BK550Y 1920×1080 px&lt;br /&gt;
** '''LCD Display:''' [https://www.voipac.com/newhaven-lvds-capacitive-display-set Newhaven LVDS Capacitive Display Set] with 1024x600 px resolution. The display was mounted on top of the development kit with metal standoffs, active and displaying continued video stream coming from the camera thus contributing to EMC spectrum. LCD P/N: NHD-10.1-1024600MB-LSXV-CTP&lt;br /&gt;
* '''2x USB 3.0:''' SanDisk Ultra Flair 16GB USB 3.2 Gen 1, each connected through a 1m long USB 3.2 Gen 1 extension cable (Molex P/N: 0687890035). Both used during read/write test&lt;br /&gt;
* '''USB-C:''' Kingston DataTraveler 80 32GB USB 3.2 Gen 1, connected through USB-C extension cable (Cable P/N: FCR72003)&lt;br /&gt;
* '''Camera:''' [https://www.voipac.com/digilent-mipi-csi-camera-set Digilent MIPI-CSI Camera Set] plugged to the baseboard, recognised by the kernel, active and capturing video stream. Ferrite bead added on the ribbon cable connecting the kit and the camera module (Würth Elektronik P/N: 742 721 1)&lt;br /&gt;
* '''CAN:''' [https://www.voipac.com/can-bus-module CANbus Module] inserted, not actively used during testing. CAN cable not connected&lt;br /&gt;
* '''WiFi and Bluetooth:''' Soldered directly on COM, placed in active scanning and discoverable mode, contributing to EMC spectrum. Depending on the temperature range, the default CM-276NF or alternative SPB228-D-3 module was populated. [https://www.voipac.com/wifi-and-bluetooth-antennas-set Two antennas] plugged in and connected&lt;br /&gt;
* '''Console cable:''' Micro USB extension cable used only to setup the development kit, not plugged in during the measurements&lt;br /&gt;
* '''SD card:''' SD card (SanDisk) plugged in and used during read/write test&lt;br /&gt;
* '''Microphone:''' Microphone connected via 1.5m long cable, not actively used&lt;br /&gt;
* '''Headphones:''' Headphones connected via 2m long cable, not actively used&lt;br /&gt;
* '''Speakers:''' Line Out connected via 2m long cable, plugged into the mains and not actively used&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:iMX8M Industrial Development Kit-EMC overview.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== Testing conditions and results ==&lt;br /&gt;
All the results were measured in compliance with the emission limits for FCC / ETSI Class B (EMC standards EN 55032B and EN 61000). Class B devices are suitable for both residential and industrial applications as the norm standards use more restrictive limits.&lt;br /&gt;
&lt;br /&gt;
===  iMX8M Industrial Development Kit Pro - Testing peripherals and external LCD display – PASSED ===&lt;br /&gt;
'''''Test description:'''''&lt;br /&gt;
* development kit in standard webshop Pro configuration:&lt;br /&gt;
** iMX8M Industrial Module Pro in Commercial temperature range&lt;br /&gt;
** iMX Development Baseboard in Extended temperature range&lt;br /&gt;
* CPU heavy testing threads using stressapptest&lt;br /&gt;
* DDR4 memory heavy testing threads using stressapptest&lt;br /&gt;
* Ethernet loopback cable used for network testing&lt;br /&gt;
* running heavy read/write testing for USB devices and SD card&lt;br /&gt;
* [https://www.voipac.com/digilent-mipi-csi-camera-set Digilent MIPI-CSI Camera Set] capturing video stream&lt;br /&gt;
* [https://www.voipac.com/newhaven-lvds-capacitive-display-set LCD Newhaven LVDS Capacitive Display Set] actively used&lt;br /&gt;
* [https://www.voipac.com/wifi-and-bluetooth-antennas-set two antennas with cables] actively used&lt;br /&gt;
* cables and devices plugged in but not actively used:&lt;br /&gt;
** USB-C&lt;br /&gt;
** Audio jacks&lt;br /&gt;
* [[#Peripherals heavy testing script|peripherals heavy testing script]] used&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M Industrial Development Kit-EMC RE-LCD display Digilent camera.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
==== Radiated Emissions ====&lt;br /&gt;
The measurement starts with peak detection by scanning the whole frequency spectrum. This initial detection is plotted with the red curve. Afterwards the highest peaks were pointed and measured more thoroughly by quasi-peak method. These real measured values of the radiation are displayed with the red crosses. The graph shows the setup passed the strict residential 55032-B limit represented by the red highlighted line.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These results prove that iMX8M Industrial Development Kit, even under heavy load, meets the stricter limits even if no enclosure is used.&lt;br /&gt;
&lt;br /&gt;
==== Radiated emissions in lower band 30MHz - 1GHz ====&lt;br /&gt;
'''''Antenna used:''''' ETS Lindgren 3143B BiConiLog Antenna 30 MHz to 1GHz&amp;lt;br /&amp;gt;&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 49%; width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-HorPol_30MHz_1GHz-LCD_display.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 2%;&amp;quot; |&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 49%;width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-VerPol_30MHz_1GHz-LCD_display.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_30MHz-1GHz_Hor_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BNHD_display%2BUSB3%2BMIPI_camera.pdf Horizontal polarisation]&lt;br /&gt;
|&amp;lt;br /&amp;gt;&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_30MHz-1GHz_Ver_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BNHD_display%2BUSB3%2BMIPI_camera.pdf Vertical polarisation]&lt;br /&gt;
|}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Radiated emissions in higher band 1GHz - 6GHz ====&lt;br /&gt;
Two plots displaying the power density are used to show results in higher bands. Similar to lower frequencies red curve represents quasi-peak values. Class B limits applied for quasi-peak measurements are plotted as the higher placed red line ''55032,RF,1-6GHZ,PK,B.LIN''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Green curve depicts average-power values. Threshold for average-power measurement is shown with the lower placed limit line called ''55032,RF,1-6GHZ,AV,B.LIN''.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Antenna used:''''' ETS Lindgren 3119 Horn Antenna 400MHz to 6GHz&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' Emissions in the 2.4 and 5 GHz band are part of the working frequency band, they will be disregarded from the evaluation of results.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 49%; width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-HorPol_1GHz_6GHz-LCD_display.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 2%;&amp;quot; |&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 49%;width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-VerPol_1GHz_6GHz-LCD_display.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_1GHz-6GHz_Hor_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BNHD_display%2BUSB3%2BMIPI_camera.pdf Horizontal polarisation]&lt;br /&gt;
|&amp;lt;br /&amp;gt;&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_1GHz-6GHz_Ver_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BNHD_display%2BUSB3%2BMIPI_camera.pdf Vertical polarisation]&lt;br /&gt;
|}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conducted Emissions ====&lt;br /&gt;
The measurement was performed by a clamp indirect method.&amp;lt;br /&amp;gt;&lt;br /&gt;
Enhanced input power protection on the iMX Development Baseboard does not allow direct line impedance stabilisation network (LISN) method to be used.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-EMC_CE.jpg|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  iMX8M Industrial Development Kit Pro - Testing module and DisplayPort output - PASSED ===&lt;br /&gt;
'''''Test description:'''''&lt;br /&gt;
* development kit in standard webshop Pro configuration:&lt;br /&gt;
** iMX8M Industrial Module Pro in Commercial temperature range&lt;br /&gt;
** iMX Development Baseboard in Extended temperature range&lt;br /&gt;
* CPU heavy testing threads using stressapptest&lt;br /&gt;
* DDR4 memory heavy testing threads using stressapptest&lt;br /&gt;
* Ethernet loopback cable used for network testing&lt;br /&gt;
* running heavy read/write testing for USB devices and SD card&lt;br /&gt;
* [https://www.voipac.com/digilent-mipi-csi-camera-set Digilent MIPI-CSI Camera Set] capturing video stream&lt;br /&gt;
* DisplayPort output tested in Full-HD 1920x1080 resolution&lt;br /&gt;
* [https://www.voipac.com/wifi-and-bluetooth-antennas-set two antennas with cables] actively used&lt;br /&gt;
* cables and devices plugged in but not actively used:&lt;br /&gt;
** [https://www.voipac.com/can-bus-module CANbus Module]&lt;br /&gt;
** USB-C&lt;br /&gt;
** Audio jacks&lt;br /&gt;
** JTAG programmer&lt;br /&gt;
* [[#Module heavy testing script|module heavy testing script]] used&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-EMC_RE-DisplayPort.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
==== Radiated Emissions ====&lt;br /&gt;
The measurement starts with peak detection by scanning the whole frequency spectrum. This initial detection is plotted with the red curve. Afterwards the highest peaks were pointed and measured more thoroughly by quasi-peak method. These real measured values of the radiation are displayed with the red crosses. The graph shows the setup passed the strict residential 55032-B limit represented by the red highlighted line.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These results prove that iMX8M Industrial Development Kit, even under heavy load, meets the stricter limits even if no enclosure is used.&lt;br /&gt;
&lt;br /&gt;
==== Radiated emissions in lower band 30MHz - 1GHz ====&lt;br /&gt;
'''''Antenna used:''''' ETS Lindgren 3143B BiConiLog Antenna 30 MHz to 1GHz&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' Results in higher band 1GHz - 6GHz were very similar to the measurements performed on the [[#Radiated emissions in higher band 1GHz - 6GHz|previous]] testing setup&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 49%; width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-HorPol_30MHz_1GHz-DisplayPort.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 2%;&amp;quot; |&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 49%;width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-VerPol_30MHz_1GHz-DisplayPort.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_30MHz-1GHz_Hor_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BDisplayPort_with_ferrite_beads%2BUSB3%2BMIPI_camera%2BCAN%2BJTAG.pdf Horizontal polarisation]&lt;br /&gt;
|&amp;lt;br /&amp;gt;&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_30MHz-1GHz_Ver_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BDisplayPort_with_ferrite_beads%2BUSB3%2BMIPI_camera%2BCAN%2BJTAG.pdf Vertical polarisation]&lt;br /&gt;
|}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  iMX8M Industrial Development Kit Pro - Testing module and HDMI output - PASSED ===&lt;br /&gt;
'''''Test description:'''''&lt;br /&gt;
* development kit in standard webshop Pro configuration:&lt;br /&gt;
** iMX8M Industrial Module Pro in Commercial temperature range&lt;br /&gt;
** iMX Development Baseboard in Extended temperature range&lt;br /&gt;
* CPU heavy testing threads using stressapptest&lt;br /&gt;
* DDR4 memory heavy testing threads using stressapptest&lt;br /&gt;
* Ethernet loopback cable used for network testing&lt;br /&gt;
* running heavy read/write testing for USB devices and SD card&lt;br /&gt;
* [https://www.voipac.com/digilent-mipi-csi-camera-set Digilent MIPI-CSI Camera Set] capturing video stream&lt;br /&gt;
* HDMI output tested in Full-HD 1920x1080 resolution&lt;br /&gt;
* [https://www.voipac.com/wifi-and-bluetooth-antennas-set two antennas with cables] actively used&lt;br /&gt;
* cables and devices plugged in but not actively used:&lt;br /&gt;
** USB-C&lt;br /&gt;
** Audio jacks&lt;br /&gt;
* [[#Module heavy testing script|module heavy testing script]] used&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Radiated Emissions ====&lt;br /&gt;
The measurement starts with peak detection by scanning the whole frequency spectrum. This initial detection is plotted with the red curve. Afterwards the highest peaks were pointed and measured more thoroughly by quasi-peak method. These real measured values of the radiation are displayed with the red crosses. The graph shows the setup passed the strict residential 55032-B limit represented by the red highlighted line.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These results prove that iMX8M Industrial Development Kit, even under heavy load, meets the stricter limits even if no enclosure is used.&lt;br /&gt;
&lt;br /&gt;
==== Radiated emissions in lower band 30MHz - 1GHz ====&lt;br /&gt;
'''''Antenna used:''''' ETS Lindgren 3143B BiConiLog Antenna 30 MHz to 1GHz&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' Results in higher band 1GHz - 6GHz were very similar to the measurements performed on the [[#Radiated emissions in higher band 1GHz - 6GHz|previous]] testing setup&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 49%; width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-HorPol_30MHz_1GHz-HDMI.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 2%;&amp;quot; |&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 49%;width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_RE-VerPol_30MHz_1GHz-HDMI.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_30MHz-1GHz_Hor_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BHDMI_with_ferrite_beads%2BUSB3.pdf Horizontal polarisation]&lt;br /&gt;
|&amp;lt;br /&amp;gt;&lt;br /&gt;
|[https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/iMX8M_Industrial_Development_Kit-EMC-RE_30MHz-1GHz_Ver_Pol-Heavy_CPU_memory_stress_test%2BAudio%2BUSB-C%2BHDMI_with_ferrite_beads%2BUSB3.pdf Vertical polarisation]&lt;br /&gt;
|}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Immunity - Radio frequency electromagnetic field 80MHz - 6GHz ===&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-EMC_Immunity-RF_EM_Field.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; &lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| !! colspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:right;&amp;quot;|Test results / EUT side exposure results&lt;br /&gt;
|-&lt;br /&gt;
!Frequency range&amp;lt;br /&amp;gt;(MHz) !! Antenna&amp;lt;br /&amp;gt;polarization !! Front !! Back !! Left !! Right&lt;br /&gt;
|-&lt;br /&gt;
|80 – 1000 || V || PASS || PASS || PASS || PASS&lt;br /&gt;
|-&lt;br /&gt;
|1000 – 6000 (*) || V || PASS || PASS || PASS || PASS&lt;br /&gt;
|-&lt;br /&gt;
|80 – 1000 || H || PASS || PASS || PASS || PASS&lt;br /&gt;
|-&lt;br /&gt;
|1000 – 6000 (*) || H || PASS || PASS || PASS || PASS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''''Note (*):''''' The exclusion bands are applicable in this frequency range.&lt;br /&gt;
&lt;br /&gt;
===  Conducted emission - wired network ports ===&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-EMC_CE-Network_wire_port.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 49%; width:396px; border:1px solid black;&amp;quot; |&amp;lt;br /&amp;gt;[[image:iMX8M_Industrial_Development_Kit-EMC_CE-Network_wire_port-Results.jpg|370px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 51%;&amp;quot; |&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Immunity - Electrostatic discharge ===&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-EMC_Immunity-ESD.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; &lt;br /&gt;
!Discharge type !! Discharge&amp;lt;br /&amp;gt;level&amp;lt;br /&amp;gt;(kV) !! Discharge&amp;lt;br /&amp;gt;location !! Number of discharges&amp;lt;br /&amp;gt;per location for each&amp;lt;br /&amp;gt;polarity&amp;lt;br /&amp;gt;(number of locations) !! Performance&amp;lt;br /&amp;gt;criterion !! Test result&lt;br /&gt;
|-&lt;br /&gt;
| Direct air discharge || ±8 || Non metallic parts || 10 (17) || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Direct contact discharge || ±4  || Metallic parts || 10 (9) || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || HCP - Front || 10 || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || HCP - Left || 10 || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || HCP - Right || 10 || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || HCP - Rear || 10 || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || VCP - Front || 10 || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || VCP - Left || 10 || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || VCP - Right || 10 || B || PASS&lt;br /&gt;
|-&lt;br /&gt;
| Indirect contact discharge || ±4  || VCP - Rear || 10 || B || PASS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''''Note (*):'''''  The EUT was without exposed conductive surfaces.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Abbreviation:''''' HCP - Horizontal coupling plane&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Abbreviation:''''' VCP - Vertical coupling plane&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparing the test ==&lt;br /&gt;
===  Boot device and software ===&lt;br /&gt;
These measurements were performed with boards using the actual hardware and software configuration of the web shop development kits.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
eMMC Flash memory was selected as a booting device for all the measurements. U-Boot settings were not adjusted as the default configuration was used.&lt;br /&gt;
&lt;br /&gt;
=== Running the script ===&lt;br /&gt;
Plug the development kit into mains and connect it to the controlling PC via console. Before the first time usage of the script, permissions need to be granted by the following command: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x imx8m-voipac-peripheral-test.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Testing scripts command consists of the following arguments:&lt;br /&gt;
* the first parameter - configuration of tested development kit (Max, Pro or Basic)&lt;br /&gt;
* the second parameter - USB drive 1 location&lt;br /&gt;
* the third parameter - USB drive 2 location&lt;br /&gt;
* the fourth parameter - SD card location&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
One of these commands can be used during EMC testing as shown below:&lt;br /&gt;
&lt;br /&gt;
* iMX8M Industrial Development Kit Max:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./imx8m-voipac-peripheral-test.sh -max sda1 sdb1 mmcblk1p1 | tee -i imx8m-emc-testing.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* iMX8M Industrial Development Kit Pro:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./imx8m-voipac-peripheral-test.sh -pro sda1 sdb1 mmcblk1p1 | tee -i imx8m-emc-testing.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* iMX8M Industrial Development Kit Basic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./imx8m-voipac-peripheral-test.sh -basic sda1 sdb1 mmcblk1p1 | tee -i imx8m-emc-testing.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Testing scripts ==&lt;br /&gt;
=== Peripherals heavy testing script ===&lt;br /&gt;
This code was used during the measurements, focusing on peripherals influence on the emissions. The complete script can also be found in [https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/documents/EMC_certification/imx8m-voipac-peripheral-test.sh the downloads section].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
# iMX8M Industrial Development Kit peripheral test&lt;br /&gt;
  &lt;br /&gt;
mountDevice() {&lt;br /&gt;
  mkdir -p &amp;quot;/media/$2&amp;quot;&lt;br /&gt;
  mount /dev/$1 /media/$2&lt;br /&gt;
  cat /proc/mounts | grep -F &amp;quot;/dev/$1 /media/$2&amp;quot;&lt;br /&gt;
  if [ &amp;quot;$?&amp;quot; -eq &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;$2 mounted&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    echo &amp;quot;$2 not mounted&amp;quot;; exit 2&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
# prepare files&lt;br /&gt;
cd ~/&lt;br /&gt;
mkdir -p imx8m-industrial-testing/&lt;br /&gt;
cd imx8m-industrial-testing/&lt;br /&gt;
   &lt;br /&gt;
touch imx8m-industrial-testing.log&lt;br /&gt;
touch cpu-temp.log&lt;br /&gt;
 &lt;br /&gt;
basic=0&lt;br /&gt;
pro=0&lt;br /&gt;
max=0&lt;br /&gt;
case $1 in&lt;br /&gt;
  -basic)  basic=1 ;;&lt;br /&gt;
  -pro)  pro=1 ;;&lt;br /&gt;
  -max)  max=1 ;;&lt;br /&gt;
  *)&lt;br /&gt;
esac&lt;br /&gt;
  &lt;br /&gt;
# mount devices&lt;br /&gt;
mountDevice $2 usb0&lt;br /&gt;
mountDevice $3 usb1&lt;br /&gt;
mountDevice $4 mmc0&lt;br /&gt;
 &lt;br /&gt;
updateLogFiles() {&lt;br /&gt;
  # obtain board ID from IP address - be sure addresses are allocated based on MAC&lt;br /&gt;
  boardID=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1 | cut -d'.' -f4 | cut -d'2' -f2);&lt;br /&gt;
  # be sure time server is running on DHCP server&lt;br /&gt;
  currentTime=`date +%Y-%m-%d.%H:%M`&lt;br /&gt;
   &lt;br /&gt;
  mv imx8m-industrial-testing.log imx8m-industrial-$boardID-testing.log.$currentTime&lt;br /&gt;
  mv cpu-temp.log imx8m-industrial-$boardID-cpu-temp.log.$currentTime&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
finish_test_now() {&lt;br /&gt;
  echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Ctrl+C Detected: End of the test&amp;quot;&lt;br /&gt;
  precced=0;&lt;br /&gt;
  #kill -INT $vid_pid $str_pid $log_pid;&lt;br /&gt;
  sleep 3;&lt;br /&gt;
  test_status=`cat imx8m-industrial-testing.log | grep -i &amp;quot;error&amp;quot; | grep -v -e &amp;quot;0 errors&amp;quot; -e &amp;quot;no corrected errors&amp;quot;`&lt;br /&gt;
  if [ -z &amp;quot;$test_status&amp;quot; ]&lt;br /&gt;
  then&lt;br /&gt;
    echo &amp;quot;*********TEST PASS*********&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    echo &amp;quot;*********TEST FAIL*********&amp;quot;&lt;br /&gt;
    echo &amp;quot;List of detected errors:&amp;quot;&lt;br /&gt;
    cat imx8m-industrial-testing.log | grep -i &amp;quot;error&amp;quot; | grep -v -e &amp;quot;0 errors&amp;quot; -e &amp;quot;no corrected errors&amp;quot; -e &amp;quot;List of detected errors:&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  updateLogFiles&lt;br /&gt;
  exit;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
# kill all processes if Ctrl+C is detected&lt;br /&gt;
trap finish_test_now 2&lt;br /&gt;
 &lt;br /&gt;
# play video stream&lt;br /&gt;
gst-launch-1.0 -q imxv4l2src ! autovideosink &amp;amp;&lt;br /&gt;
 &lt;br /&gt;
# stressapptest - CPU threads and RAM memory threads&lt;br /&gt;
if [ &amp;quot;${basic}&amp;quot; -eq &amp;quot;1&amp;quot; ]; then&lt;br /&gt;
  stress-ng --cpu 2 --vm 4 &amp;amp;&lt;br /&gt;
  str_pid=$!&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;${pro}&amp;quot; -eq &amp;quot;1&amp;quot; ]; then&lt;br /&gt;
  stress-ng --cpu 4 --vm 4 &amp;amp;&lt;br /&gt;
  str_pid=$!&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;${max}&amp;quot; -eq &amp;quot;1&amp;quot; ]; then&lt;br /&gt;
  stress-ng --cpu 4 --vm 4 &amp;amp;&lt;br /&gt;
  str_pid=$!&lt;br /&gt;
fi&lt;br /&gt;
echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Starting stressapptest with PID: &amp;quot; $str_pid&lt;br /&gt;
  &lt;br /&gt;
proceed=1&lt;br /&gt;
# create test files&lt;br /&gt;
file1_path=`mktemp`&lt;br /&gt;
file2_path=`mktemp`&lt;br /&gt;
file1=`basename $file1_path`&lt;br /&gt;
file2=`basename $file2_path`&lt;br /&gt;
&lt;br /&gt;
dd if=/dev/urandom of=$file1_path bs=1024 count=10000&lt;br /&gt;
dd if=/dev/urandom of=$file2_path bs=1024 count=10000&lt;br /&gt;
 &lt;br /&gt;
cp1_from=&amp;quot;/media/mmc0/&amp;quot;&lt;br /&gt;
cp1_to=&amp;quot;/media/usb0/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
cp2_from=&amp;quot;/media/usb0/&amp;quot;&lt;br /&gt;
cp2_to=&amp;quot;/media/usb1/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
#copy files in case they are missing&lt;br /&gt;
cp $file1_path $cp1_from&lt;br /&gt;
cp $file1_path $cp1_to&lt;br /&gt;
cp $file2_path $cp2_from&lt;br /&gt;
cp $file2_path $cp2_to&lt;br /&gt;
  &lt;br /&gt;
while [ $proceed -eq 1 ]&lt;br /&gt;
do&lt;br /&gt;
  # before running script check if the ip address exist &lt;br /&gt;
  ping -q -c1 192.168.0.2 &amp;gt;&amp;gt; imx8m-industrial-testing.log&lt;br /&gt;
  if [ $? -ne 0 ]&lt;br /&gt;
  then&lt;br /&gt;
    echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) ERROR: Ping failed&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Ping OK&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  cp1_done=`ps | grep $cp1_pid | grep cp`&lt;br /&gt;
  if [ -z &amp;quot;$cp1_done&amp;quot; ]; then # copy finished&lt;br /&gt;
    if cmp -s $cp1_from$file1 $cp1_to$file1; then&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) PASS: Copying file from $cp1_from to $cp1_to successful&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) ERROR: Difference between files on $cp1_from and $cp1_to detected&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    cp1_temp=$cp1_from # swap destinations&lt;br /&gt;
    cp1_from=$cp1_to&lt;br /&gt;
    cp1_to=$cp1_temp&lt;br /&gt;
      &lt;br /&gt;
    rm $cp1_to$file1 # remove destination file&lt;br /&gt;
      &lt;br /&gt;
    cp $cp1_from$file1 $cp1_to$file1 &amp;amp;&lt;br /&gt;
    cp1_pid=$!&lt;br /&gt;
    echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Started copying file from $cp1_from to $cp1_to&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
    &lt;br /&gt;
  cp2_done=`ps | grep $cp2_pid | grep cp`&lt;br /&gt;
  if [ -z &amp;quot;$cp2_done&amp;quot; ]; then # copy finished&lt;br /&gt;
    if cmp -s $cp2_from$file2 $cp2_to$file2; then&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) PASS: Copying file from $cp2_from to $cp2_to successful&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) ERROR: Difference between files on $cp2_from and $cp2_to detected&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    cp2_temp=$cp2_from # swap destinations&lt;br /&gt;
    cp2_from=$cp2_to&lt;br /&gt;
    cp2_to=$cp2_temp&lt;br /&gt;
      &lt;br /&gt;
    rm $cp2_to$file2 # remove destination file&lt;br /&gt;
      &lt;br /&gt;
    cp $cp2_from$file2 $cp2_to$file2 &amp;amp;&lt;br /&gt;
    cp2_pid=$!&lt;br /&gt;
    echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Started copying file from $cp2_from to $cp2_to&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module heavy testing script ===&lt;br /&gt;
This script was utilised for testing procedure where the measurement was primarily focused on the module emissions. To use this script, plug the development kit into mains, connect it to controlling PC via console and copy the code below:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for d in $(seq 1 1 999)&lt;br /&gt;
do&lt;br /&gt;
	uptime&lt;br /&gt;
	echo &amp;quot;Test $a Test $b Test $c  $d times&amp;quot;&lt;br /&gt;
	echo &amp;quot;Start stress-ng --iomix 1 -t 10 -v&amp;quot;&lt;br /&gt;
	stress-ng --iomix 1 -t 10 -v&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
	echo &amp;quot;Start Thermal zone information&amp;quot;&lt;br /&gt;
	stress-ng --matrix 0 --tz -t 10 --log-brief -t 10&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
	ping -q -c1 192.168.0.2 &amp;gt;&amp;gt; imx8m-industrial-testing.log&lt;br /&gt;
	  if [ $? -ne 0 ]&lt;br /&gt;
	  then&lt;br /&gt;
		echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) ERROR: Ping failed&amp;quot;&lt;br /&gt;
	  fi&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starting camera capture ===&lt;br /&gt;
To initiate the Digilent camera to start the recording of video stream, following command can be used:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GST_DEBUG=GST_BUFFER:5 gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,framerate=30/1' ! autovideosink&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Environmental_chamber_testing&amp;diff=5776</id>
		<title>iMX91 Industrial Environmental chamber testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Environmental_chamber_testing&amp;diff=5776"/>
		<updated>2025-10-22T19:25:07Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''Environmental chamber testing of iMX91 Industrial Development Kit is successfully finished.'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Content of this page is currently being updated.'''''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:iMX91 Industrial Development Kit]]&lt;br /&gt;
[[Category:iMX91 Industrial Development Kit Testing]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Environmental stress testing results of iMX91 Industrial Development Kit are displayed on this page. Detailed instructions on how to setup the kits are also shown.&lt;br /&gt;
&lt;br /&gt;
== Hardware configuration ==&lt;br /&gt;
All of the modules used standard specification except of the temperature ranges for the key components as described below:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* 1x iMX91 Industrial Development Kit in [[iMX91 Industrial Max|Max configuration]]&lt;br /&gt;
** i.MX 93 Dual 1.7GHz CPU - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** 2GB LPDDR4 Memory - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** eMMC Flash 32GB - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
** 2x 1Gb Ethernet PHY - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
** WiFi 6 &amp;amp; Bluetooth 5.3 Module - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* 1x iMX91 Industrial Development Kit in [[iMX91 Industrial Pro|Pro configuration]]&lt;br /&gt;
** i.MX 93 Dual 1.7GHz CPU - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** 2GB LPDDR4 Memory - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** eMMC Flash 16GB - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
** 2x 1Gb Ethernet PHY - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
** WiFi 4 &amp;amp; Bluetooth 5.2 Module - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* 1x iMX91 Industrial Development Kit in [[iMX91 Industrial Basic|Basic configuration]]&lt;br /&gt;
** i.MX 93 Solo 1.7GHz CPU - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** 1GB LPDDR4 Memory - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** eMMC Flash 8GB - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
** 1Gb Ethernet PHY - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* 1x iMX91 Industrial Development Kit in [[iMX91 Industrial Lite|Lite configuration]]&lt;br /&gt;
** i.MX 93 Solo 900MHz CPU - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** 512MB LPDDR4 Memory - extended industrial temperature range (-40°C to +105°C)&lt;br /&gt;
** eMMC Flash 4GB - industrial temperature range (-40°C to +85°C)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
All of the tested modules used standard configuration of iMX Development Baseboard with extended temperature range (-20°C to +70°C). The majority of tested kits used the standard heatsink sized 25x25x25mm, which is included in every development kit package, thus showcasing that this standardised heatsink performs even in very harsh conditions.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The setup in the environmental chamber:&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX93_Industrial_Development_Kits-Enviromental_chamber_overview_with_description.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== Test description ==&lt;br /&gt;
Four iMX91 Industrial Development Kits (one in Max Industrial configuration, one in Pro Industrial configuration, one in Basic Industrial configuration and one in Lite Industrial configuration) were running CPU and memory tests to stress out all the most significant peripherals in the whole Industrial temperature scale, ranging from -40°C to +85°C, to check the reliability and stability of the firmware and hardware design.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration, software and testing threads in details:&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1x iMX91 Industrial Development Kit [setup no. 4] in [[iMX91 Industrial Max|Max configuration]] and Industrial temperature range&amp;lt;br /&amp;gt;CPU and memory stress testing'''&lt;br /&gt;
* 1 thread of extensive DDR4 Memory stress test&lt;br /&gt;
* 1 thread of CPU stress test&lt;br /&gt;
* all the messages were displayed on the serial console connected via Micro USB cable&lt;br /&gt;
* firmware running from eMMC Flash memory&lt;br /&gt;
* 2x Ethernet cable connected to network switch placed outside of the chamber&lt;br /&gt;
* 2x USB device connected and placed outside of the chamber&lt;br /&gt;
* WiFi and Bluetooth module active, connected to the antennas and running discovery mode&lt;br /&gt;
* standard 25x25x25mm heatsink&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''1x iMX91 Industrial Development Kit [setup no. 3] in [[iMX91 Industrial Pro|Pro configuration]] and Industrial temperature range&amp;lt;br /&amp;gt;CPU and memory stress testing'''&lt;br /&gt;
* 1 thread of extensive DDR4 Memory stress test&lt;br /&gt;
* 1 thread of CPU stress test&lt;br /&gt;
* all the messages were displayed on the serial console connected via Micro USB cable&lt;br /&gt;
* firmware running from eMMC Flash memory&lt;br /&gt;
* 2x Ethernet cable connected to network switch placed outside of the chamber&lt;br /&gt;
* 2x USB device connected and placed outside of the chamber&lt;br /&gt;
* WiFi and Bluetooth module active, connected to the antennas and running discovery mode&lt;br /&gt;
* standard 25x25x25mm heatsink&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''1x iMX91 Industrial Development Kit [setup no. 2] in [[iMX91 Industrial Basic|Basic configuration]] and Industrial temperature range&amp;lt;br /&amp;gt;CPU and memory stress testing'''&lt;br /&gt;
* 1 thread of extensive DDR4 Memory stress test&lt;br /&gt;
* 1 thread of CPU stress test&lt;br /&gt;
* all the messages were displayed on the serial console connected via Micro USB cable&lt;br /&gt;
* firmware running from eMMC Flash memory&lt;br /&gt;
* Ethernet cable connected to network switch placed outside of the chamber&lt;br /&gt;
* 2x USB device connected and placed outside of the chamber&lt;br /&gt;
* standard 25x25x25mm heatsink&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''1x iMX91 Industrial Development Kit [setup no. 1] in [[iMX91 Industrial Lite|Lite configuration]] and Industrial temperature range&amp;lt;br /&amp;gt;CPU and memory stress testing'''&lt;br /&gt;
* 1 thread of extensive DDR4 Memory stress test&lt;br /&gt;
* 1 thread of CPU stress test&lt;br /&gt;
* all the messages were displayed on the serial console connected via Micro USB cable&lt;br /&gt;
* firmware running from eMMC Flash memory&lt;br /&gt;
* 2x USB device connected and placed outside of the chamber&lt;br /&gt;
* standard 25x25x25mm heatsink&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Power source, USB flash devices, network switch and controlling PC were placed outside the environmental chamber. All the scripts running during the test and the board setup instructions can be found in section [[#Preparing the test|How to prepare the test]].&lt;br /&gt;
&lt;br /&gt;
== Testing Results ==&lt;br /&gt;
The picture below shows the temperature profile during the whole testing process. Humidity was not controlled. The temperature gradient for the environment chamber was set to 1°C/min.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-Env_chamber_temperature_profile.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Running the development kits at -40°C – PASS ===&lt;br /&gt;
Test description: CPU, Memory and peripheral stress tests were running at -40°C. All the tested kits were working without errors during the whole time.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A closer image on the temperature chamber displaying the minimum temperature is shown below. These readouts are available on the display:&lt;br /&gt;
* the first number shows current temperature&lt;br /&gt;
* the second one set temperature&lt;br /&gt;
* the last two shows relative humidity. Humidity was not controlled during testing process.&lt;br /&gt;
[[image:iMX8M Industrial Kit-Env chamber-Boards at -40C.jpg|800px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-Env_chamber_at_-40C.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Running the development kits at +85°C – PASS ===&lt;br /&gt;
Test description: The pre-set temperature profile was followed until the development kits gradually reached +85°C. The kits remained around this temperature for the duration of two hours and at the end of this whole cycle all the kits were running.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When using both the iMX8M and iMX91 Industrial Modules with common baseboard, please note the difference when the CPUs are above the critically high temperature of +85°C:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''i.MX 8M CPU – waiting for the temperature decline, than reboots itself'''''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''i.MX 93 CPU – powers down'''''&lt;br /&gt;
&lt;br /&gt;
[[image:iMX8M_Industrial_Kit-Env_chamber-Boards_at_+86C.jpg|800px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-Env_chamber_at_+85C.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Switch OFF/ON test at -40°C – PASS ===&lt;br /&gt;
Test description: At temperature -40°C the development kits were switched OFF, left OFF for at least 15 minutes (to cool down completely) and then switched ON to see if they boot up without problems. Once booted up into Linux, the test script was launched to test RAM memory and all peripherals. The kits were turned OFF and ON again multiple times to see potential issues at the lowest temperature level. All of the tested setups booted up successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M Industrial Kit-Env chamber-Boards snow.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== PC setup ==&lt;br /&gt;
The PC was used during the test to control / monitor all the kits through serial console sessions. The control computer was running Windows 10 operating system.&lt;br /&gt;
&lt;br /&gt;
=== Serial console ===&lt;br /&gt;
To control iMX91 Industrial Development Kits, one TeraTerm serial console was opened for each setup. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The setup of the environmental chamber cables and out-of-chamber equipment:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M Industrial Development Kit-Climate chamber overview.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== Preparing the test ==&lt;br /&gt;
=== Boot device and software ===&lt;br /&gt;
The eMMC memory was selected as a booting device for all the kits. Device tree files were not adjusted as the default configuration was used. The only change compared to standard software package was running the test script. In order to flash a fresh firmware into the eMMC Memory follow [[iMX91_Industrial_Flashing_Procedure|these instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Downloading stress test ===&lt;br /&gt;
Stress-ng package was selected to check CPU and memory integrity. Placing this file into the same directory where the testing script will be stored is important:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://downloads.voipac.com/files/iMX91_Industrial_Development_Kit/module/documents/Thermal_stress_resistance/iMX91q-voipac-peripheral-test.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start CPU and memory stress test ===&lt;br /&gt;
Navigate into the directory, where stress test feature and the testing script are stored.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stress sequence script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for d in $(seq 1 1 99999)&lt;br /&gt;
do&lt;br /&gt;
	uptime&lt;br /&gt;
	echo &amp;quot;Test $a Test $b Test $c  $d times&amp;quot;&lt;br /&gt;
	echo &amp;quot;Start stress-ng --iomix 1 -t 10 -v&amp;quot;&lt;br /&gt;
	stress-ng --iomix 1 -t 10 -v&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
	echo &amp;quot;Start stress-ng --cpu 2 --vm 4 -t 10&amp;quot;&lt;br /&gt;
	stress-ng --cpu 2 --vm 4 -t 10&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
	echo &amp;quot;Start stress-ng --shm 0 -t 10&amp;quot;&lt;br /&gt;
	stress-ng --shm 0 -t 10&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
	echo &amp;quot;Start stress-ng --seq 0 -t 2 --tz -v&amp;quot;&lt;br /&gt;
	stress-ng --seq 0 -t 2 --tz -v&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
	echo &amp;quot;Start Thermal zone information&amp;quot;&lt;br /&gt;
	stress-ng --matrix 0 --tz -t 10 --log-brief -t 10&lt;br /&gt;
	echo &amp;quot;End&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start peripheral test ===&lt;br /&gt;
Plug the development kit into mains and connect it to the controlling PC via console. Before the first time usage of the script, permissions need to be granted by the following command: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x iMX91-voipac-peripheral-test.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Testing scripts command consists of the following arguments:&lt;br /&gt;
* the first parameter - configuration of tested development kit (Max, Pro, Basic or Lite)&lt;br /&gt;
* the second parameter - USB drive 1 location&lt;br /&gt;
* the third parameter - USB drive 2 location&lt;br /&gt;
* the fourth parameter - SD card location&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Several commands used during environmental chamber testing are shown below:&lt;br /&gt;
&lt;br /&gt;
* iMX91 Industrial Development Kit Max:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./iMX91-voipac-peripheral-test.sh -max sda1 sdb1 mmcblk1p1 | tee -i iMX91-env-testing.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* iMX91 Industrial Development Kit Pro:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./iMX91-voipac-peripheral-test.sh -pro sda1 sdb1 mmcblk1p1 | tee -i iMX91-env-testing.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* iMX91 Industrial Development Kit Basic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./iMX91-voipac-peripheral-test.sh -basic sda1 sdb1 mmcblk1p1 | tee -i iMX91-env-testing.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* iMX91 Industrial Development Kit Lite:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./iMX91-voipac-peripheral-test.sh -lite sda1 sdb1 mmcblk1p1 | tee -i iMX91-env-testing.log&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The complete script can be found in [https://downloads.voipac.com/files/iMX91_Industrial_Development_Kit/module/documents/Thermal_stress_resistance/iMX91-voipac-peripheral-test.sh the downloads section] or down below:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
# iMX91 environmental chamber peripheral test&lt;br /&gt;
  &lt;br /&gt;
mountDevice() {&lt;br /&gt;
  mkdir -p &amp;quot;/media/$2&amp;quot;&lt;br /&gt;
  mount /dev/$1 /media/$2&lt;br /&gt;
  cat /proc/mounts | grep -F &amp;quot;/dev/$1 /media/$2&amp;quot;&lt;br /&gt;
  if [ &amp;quot;$?&amp;quot; -eq &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;$2 mounted&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    echo &amp;quot;$2 not mounted&amp;quot;; exit 2&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
# prepare files&lt;br /&gt;
cd ~/&lt;br /&gt;
mkdir -p env-chamber-testing/&lt;br /&gt;
cd env-chamber-testing/&lt;br /&gt;
   &lt;br /&gt;
touch env-chamber-testing.log&lt;br /&gt;
touch cpu-temp.log&lt;br /&gt;
 &lt;br /&gt;
basic=0&lt;br /&gt;
pro=0&lt;br /&gt;
max=0&lt;br /&gt;
case $1 in&lt;br /&gt;
  -basic)  basic=1 ;;&lt;br /&gt;
  -pro)  pro=1 ;;&lt;br /&gt;
  -max)  max=1 ;;&lt;br /&gt;
  *)&lt;br /&gt;
esac&lt;br /&gt;
  &lt;br /&gt;
# mount devices&lt;br /&gt;
mountDevice $2 usb0&lt;br /&gt;
mountDevice $3 usb1&lt;br /&gt;
mountDevice $4 mmc0&lt;br /&gt;
 &lt;br /&gt;
updateLogFiles() {&lt;br /&gt;
  # obtain board ID from IP address - be sure addresses are allocated based on MAC&lt;br /&gt;
  boardID=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1 | cut -d'.' -f4 | cut -d'2' -f2);&lt;br /&gt;
  # be sure time server is running on DHCP server&lt;br /&gt;
  currentTime=`date +%Y-%m-%d.%H:%M`&lt;br /&gt;
   &lt;br /&gt;
  mv env-chamber-testing.log trx-board-$boardID-env-chamber.log.$currentTime&lt;br /&gt;
  mv cpu-temp.log trx-board-$boardID-env-cpu-temp.log.$currentTime&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
finish_test_now() {&lt;br /&gt;
  echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Ctrl+C Detected: End of the test&amp;quot;&lt;br /&gt;
  precced=0;&lt;br /&gt;
  #kill -INT $vid_pid $str_pid $log_pid;&lt;br /&gt;
  sleep 3;&lt;br /&gt;
  test_status=`cat env-chamber-testing.log | grep -i &amp;quot;error&amp;quot; | grep -v -e &amp;quot;0 errors&amp;quot; -e &amp;quot;no corrected errors&amp;quot;`&lt;br /&gt;
  if [ -z &amp;quot;$test_status&amp;quot; ]&lt;br /&gt;
  then&lt;br /&gt;
    echo &amp;quot;*********TEST PASS*********&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    echo &amp;quot;*********TEST FAIL*********&amp;quot;&lt;br /&gt;
    echo &amp;quot;List of detected errors:&amp;quot;&lt;br /&gt;
    cat env-chamber-testing.log | grep -i &amp;quot;error&amp;quot; | grep -v -e &amp;quot;0 errors&amp;quot; -e &amp;quot;no corrected errors&amp;quot; -e &amp;quot;List of detected errors:&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  updateLogFiles&lt;br /&gt;
  exit;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
# kill all processes if Ctrl+C is detected&lt;br /&gt;
trap finish_test_now 2&lt;br /&gt;
 &lt;br /&gt;
# play a video stream&lt;br /&gt;
gst-launch-1.0 -q imxv4l2src ! autovideosink &amp;amp;&lt;br /&gt;
 &lt;br /&gt;
# stressapptest - CPU threads and RAM memory threads&lt;br /&gt;
if [ &amp;quot;${basic}&amp;quot; -eq &amp;quot;1&amp;quot; ]; then&lt;br /&gt;
  stress-ng --cpu 2 --vm 4 &amp;amp;&lt;br /&gt;
  str_pid=$!&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;${pro}&amp;quot; -eq &amp;quot;1&amp;quot; ]; then&lt;br /&gt;
  stress-ng --cpu 4 --vm 4 &amp;amp;&lt;br /&gt;
  str_pid=$!&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;${max}&amp;quot; -eq &amp;quot;1&amp;quot; ]; then&lt;br /&gt;
  stress-ng --cpu 4 --vm 4 &amp;amp;&lt;br /&gt;
  str_pid=$!&lt;br /&gt;
fi&lt;br /&gt;
echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Starting stressapptest with PID: &amp;quot; $str_pid&lt;br /&gt;
  &lt;br /&gt;
proceed=1&lt;br /&gt;
# create test files&lt;br /&gt;
file1_path=`mktemp`&lt;br /&gt;
file2_path=`mktemp`&lt;br /&gt;
file1=`basename $file1_path`&lt;br /&gt;
file2=`basename $file2_path`&lt;br /&gt;
&lt;br /&gt;
dd if=/dev/urandom of=$file1_path bs=1024 count=10000&lt;br /&gt;
dd if=/dev/urandom of=$file2_path bs=1024 count=10000&lt;br /&gt;
 &lt;br /&gt;
cp1_from=&amp;quot;/media/mmc0/&amp;quot;&lt;br /&gt;
cp1_to=&amp;quot;/media/usb0/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
cp2_from=&amp;quot;/media/usb0/&amp;quot;&lt;br /&gt;
cp2_to=&amp;quot;/media/usb1/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
#copy files in case they are missing&lt;br /&gt;
cp $file1_path $cp1_from&lt;br /&gt;
cp $file1_path $cp1_to&lt;br /&gt;
cp $file2_path $cp2_from&lt;br /&gt;
cp $file2_path $cp2_to&lt;br /&gt;
  &lt;br /&gt;
while [ $proceed -eq 1 ]&lt;br /&gt;
do&lt;br /&gt;
 &lt;br /&gt;
  ping -q -c1 192.168.0.2 &amp;gt;&amp;gt; env-chamber-testing.log&lt;br /&gt;
  if [ $? -ne 0 ]&lt;br /&gt;
  then&lt;br /&gt;
    echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) ERROR: Ping failed&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  cp1_done=`ps | grep $cp1_pid | grep cp`&lt;br /&gt;
  if [ -z &amp;quot;$cp1_done&amp;quot; ]; then # copy finished&lt;br /&gt;
    if cmp -s $cp1_from$file1 $cp1_to$file1; then&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) PASS: Copying file from $cp1_from to $cp1_to successful&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) ERROR: Difference between files on $cp1_from and $cp1_to detected&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    cp1_temp=$cp1_from # swap destinations&lt;br /&gt;
    cp1_from=$cp1_to&lt;br /&gt;
    cp1_to=$cp1_temp&lt;br /&gt;
      &lt;br /&gt;
    rm $cp1_to$file1 # remove destination file&lt;br /&gt;
      &lt;br /&gt;
    cp $cp1_from$file1 $cp1_to$file1 &amp;amp;&lt;br /&gt;
    cp1_pid=$!&lt;br /&gt;
    echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Started copying file from $cp1_from to $cp1_to&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
    &lt;br /&gt;
  cp2_done=`ps | grep $cp2_pid | grep cp`&lt;br /&gt;
  if [ -z &amp;quot;$cp2_done&amp;quot; ]; then # copy finished&lt;br /&gt;
    if cmp -s $cp2_from$file2 $cp2_to$file2; then&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) PASS: Copying file from $cp2_from to $cp2_to successful&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) ERROR: Difference between files on $cp2_from and $cp2_to detected&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    cp2_temp=$cp2_from # swap destinations&lt;br /&gt;
    cp2_from=$cp2_to&lt;br /&gt;
    cp2_to=$cp2_temp&lt;br /&gt;
      &lt;br /&gt;
    rm $cp2_to$file2 # remove destination file&lt;br /&gt;
      &lt;br /&gt;
    cp $cp2_from$file2 $cp2_to$file2 &amp;amp;&lt;br /&gt;
    cp2_pid=$!&lt;br /&gt;
    echo &amp;quot;$(date +\%Y/\%m/\%d-\%T)($(date +\%Z)) Started copying file from $cp2_from to $cp2_to&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5775</id>
		<title>iMX91 Industrial Accessing and Testing Peripherals</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Accessing_and_Testing_Peripherals&amp;diff=5775"/>
		<updated>2025-10-22T19:23:00Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
[[Category:iMX91 Industrial Testing]]&lt;br /&gt;
[[Category:iMX91 Industrial Peripherals]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial operations with the iMX91 Industrial Development Kit interfaces are presented on this page. For more specific information such as display options, camera capabilities or industrial modular extensions, refer to the dedicated [[iMX91 Industrial Max#Peripherals_and_Accessories|Peripherals and Accessories section]].&lt;br /&gt;
&lt;br /&gt;
== Mandatory components ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* iMX91 Industrial Module&lt;br /&gt;
* iMX Development Baseboard&lt;br /&gt;
* [https://www.voipac.com/power-supply-5v-20w DC power supply (5V, 4A, 20W)]&lt;br /&gt;
&lt;br /&gt;
=== Peripherals and Accessories ===&lt;br /&gt;
* [https://www.voipac.com/boe-lvds-capacitive-display-set BOE LVDS Capacitive Display Set] (optional)&lt;br /&gt;
* [https://www.voipac.com/digilent-mipi-csi-camera-set Digilent MIPI-CSI Camera Set] (optional)&lt;br /&gt;
* [https://www.voipac.com/imx9-wifi-and-bluetooth-antennas-set iMX9 Wifi and Bluetooth antenna set]&lt;br /&gt;
* [https://www.voipac.com/voice-command-demo Voice Command demo] (optional)&lt;br /&gt;
* 1x MicroSDHC card Class 10 or higher&lt;br /&gt;
* 1x USB Flash drive 2.0&lt;br /&gt;
* Headphones&lt;br /&gt;
* Analog external microphone&lt;br /&gt;
&lt;br /&gt;
=== Cables ===&lt;br /&gt;
* USB Micro-B cable for serial console&lt;br /&gt;
* USB-C cable for module flashing&lt;br /&gt;
* Ethernet cable&lt;br /&gt;
&lt;br /&gt;
== Audio ==&lt;br /&gt;
'''''Note:''''' This audio section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic and LIte configuration, audio capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Search kernel log for wm8904 chip&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio chip is detected and bound as an output and input device&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep wm8904&lt;br /&gt;
[    6.546858] wm8904 0-001a: supply DCVDD not found, using dummy regulator&lt;br /&gt;
[    6.591866] wm8904 0-001a: supply DBVDD not found, using dummy regulator&lt;br /&gt;
[    6.611921] wm8904 0-001a: supply AVDD not found, using dummy regulator&lt;br /&gt;
[    6.637768] wm8904 0-001a: supply CPVDD not found, using dummy regulator&lt;br /&gt;
[    6.670934] wm8904 0-001a: supply MICVDD not found, using dummy regulator&lt;br /&gt;
[    6.683500] wm8904 0-001a: revision A&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Run amixer command&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Current audio chip settings are displayed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer    &lt;br /&gt;
Simple mixer control 'Headphone',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
  Front Right: 45 [71%] [-12.00dB] Playback [on]&lt;br /&gt;
Simple mixer control 'Headphone ZC',0&lt;br /&gt;
  Capabilities: pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Mono:&lt;br /&gt;
  Front Left: Playback [on]&lt;br /&gt;
  Front Right: Playback [on]&lt;br /&gt;
Simple mixer control 'Line Output',0&lt;br /&gt;
  Capabilities: volume pswitch&lt;br /&gt;
  Playback channels: Front Left - Front Right&lt;br /&gt;
  Capture channels: Front Left - Front Right&lt;br /&gt;
  Limits: 0 - 63&lt;br /&gt;
  Front Left: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
  Front Right: 57 [90%] [0.00dB] Playback [on]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Connect headphones into LINE OUT jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Audio file is played and heard&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx8mq-voipac:~# aplay /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
root@imx8mq-voipac:~# aplay -D sysdefault:CARD=wm8904audio /usr/share/multimedia/sample.wav&lt;br /&gt;
Playing WAVE 'multimedia/sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug headphones into HEADPHONES jack connector and analog external microphone to MIC jack connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Sound recorder by microphone is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture' '31'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Capture Input' ADC&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Left Capture Inverting Mux' 'IN2L'&lt;br /&gt;
root@imx91-voipac:~# amixer set 'Right Capture Inverting Mux' 'IN2R'&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Microphone and headphones setup can also be graphically displayed and adjusted:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# alsamixer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[image:iMX8M_Industrial_Development_Kit-AlsaMixer_setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Verify digital microphones (Mic Left, Mic Mid, Mic Right) &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Microphone sound is played in headphones&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# amixer set &amp;quot;Capture Input&amp;quot; &amp;quot;DMIC&amp;quot;&lt;br /&gt;
root@imx91-voipac:~# arecord -D sysdefault:CARD=wm8904audio -t wav -f cd | aplay -D sysdefault:CARD=wm8904audio&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WiFi ==&lt;br /&gt;
'''''Note:''''' This WiFi section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic and Lite configurations, wireless connectivity is not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Load the device driver:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
[  926.305344] mlan: loading out-of-tree module taints kernel.&lt;br /&gt;
[  926.334171] wlan: Loading MWLAN driver&lt;br /&gt;
[  926.339152] wlan: Register to Bus Driver...&lt;br /&gt;
[  926.343686] vendor=0x02DF device=0x9159 class=0 function=1&lt;br /&gt;
[  926.349765] Attach moal handle ops, card interface type: 0x108&lt;br /&gt;
[  926.355633] rps set to 0 from module param&lt;br /&gt;
[  926.362045] SDIW416: init module param from usr cfg&lt;br /&gt;
[  926.366995] card_type: SDIW416, config block: 0&lt;br /&gt;
[  926.371541] cfg80211_wext=0xf&lt;br /&gt;
[  926.374515] max_vir_bss=1&lt;br /&gt;
[  926.377131] cal_data_cfg=none&lt;br /&gt;
[  926.380112] ps_mode = 1&lt;br /&gt;
[  926.382567] auto_ds = 1&lt;br /&gt;
[  926.385010] host_mlme=enable&lt;br /&gt;
[  926.387895] fw_name=nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.392709] SDIO: max_segs=128 max_seg_size=65535&lt;br /&gt;
[  926.397420] rx_work=1 cpu_num=2&lt;br /&gt;
[  926.400569] Enable moal_recv_amsdu_packet&lt;br /&gt;
[  926.404600] Attach mlan adapter operations.card_type is 0x108.&lt;br /&gt;
[  926.410826] wlan: Enable TX SG mode&lt;br /&gt;
[  926.414357] wlan: Enable RX SG mode&lt;br /&gt;
[  926.421681] Request firmware: nxp/sdiouartiw416_combo_v0.bin&lt;br /&gt;
[  926.708639] Wlan: FW download over, firmwarelen=591808 downloaded 583072&lt;br /&gt;
[  928.113594] WLAN FW is active&lt;br /&gt;
[  928.116573] on_time is 927947046442&lt;br /&gt;
[  928.140994] VDLL image: len=8736&lt;br /&gt;
[  928.144352] FW country code WW does not match with US&lt;br /&gt;
[  928.150617] fw_cap_info=0x187ccf03, dev_cap_mask=0xffffffff&lt;br /&gt;
[  928.156607] max_p2p_conn = 8, max_sta_conn = 8&lt;br /&gt;
[  928.176236] Register NXP 802.11 Adapter mlan0&lt;br /&gt;
[  928.183724] Register NXP 802.11 Adapter uap0&lt;br /&gt;
[  928.194033] Register NXP 802.11 Adapter wfd0&lt;br /&gt;
[  928.199986] wlan: version = SDIW416---16.92.21.p137.2-MM6X16437.p30-GPL-(FP92) &lt;br /&gt;
[  928.208947] wlan: Register to Bus Driver Done&lt;br /&gt;
[  928.216412] wlan: Driver loaded successfully&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if the WiFi interface is present:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev mlan0&lt;br /&gt;
3: wlp1s0: &amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500 qdisc noop state DOWN group default qlen 1000&lt;br /&gt;
    link/ether 78:c4:0e:a0:32:16 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Scan the available WiFi networks&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Networks are scanned and in-depth information are displayed&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# ifconfig mlan0 up &amp;amp;&amp;amp; iw dev mlan0 scan&lt;br /&gt;
BSS 94:27:90:7f:c3:d3(on wlp1s0)&lt;br /&gt;
        TSF: 1213185029341 usec (14d, 00:59:45)&lt;br /&gt;
        freq: 2442&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 4056 ms ago&lt;br /&gt;
        SSID: HH40V_C3D3&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0&lt;br /&gt;
        DS Parameter set: channel 7&lt;br /&gt;
        Country: SK     Environment: Indoor/Outdoor&lt;br /&gt;
                Channels [1 - 13] @ 20 dBm&lt;br /&gt;
        ERP: &amp;lt;no flags&amp;gt;&lt;br /&gt;
        Extended supported rates: 24.0 36.0 48.0 54.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x1ad&lt;br /&gt;
                        RX LDPC&lt;br /&gt;
                        HT20&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        TX STBC&lt;br /&gt;
                        RX STBC 1-stream&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        No DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 8 usec (0x06)&lt;br /&gt;
                HT TX/RX MCS rate indexes supported: 0-15&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 7&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 1&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
                 * Extended Channel Switching&lt;br /&gt;
                 * SSID List&lt;br /&gt;
                 * Operating Mode Notification&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: CCMP&lt;br /&gt;
                 * Pairwise ciphers: CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 87654321-9abc-def0-1234-942790c36dc7&lt;br /&gt;
                 * Manufacturer: TCL.org&lt;br /&gt;
                 * Model: WAP&lt;br /&gt;
                 * Model Number: 123&lt;br /&gt;
                 * Serial Number: 12345&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: TCL AP&lt;br /&gt;
                 * Config methods:&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5c:06:80(on wlp1s0)&lt;br /&gt;
        TSF: 787677017722 usec (9d, 02:47:57)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -73.00 dBm&lt;br /&gt;
        last seen: 3952 ms ago&lt;br /&gt;
        SSID: OrangeFlybox_0680&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: 20 MHz&lt;br /&gt;
                 * non-GF present: 1&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 3&lt;br /&gt;
                 * channel utilisation: 27/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * Response Type: 3 (AP)&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945c06c4&lt;br /&gt;
                 * Manufacturer: TP-LINK&lt;br /&gt;
                 * Model: Archer MR200&lt;br /&gt;
                 * Model Number: 1.0&lt;br /&gt;
                 * Serial Number: 1.0&lt;br /&gt;
                 * Primary Device Type: 6-0050f204-1&lt;br /&gt;
                 * Device name: AC750 Wireless Dual Band 4G LTE&lt;br /&gt;
                 * Config methods: Label, Display, Keypad&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
BSS 34:e8:94:5b:f8:04(on wlp1s0)&lt;br /&gt;
        TSF: 1210179077454 usec (14d, 00:09:39)&lt;br /&gt;
        freq: 2462&lt;br /&gt;
        beacon interval: 100 TUs&lt;br /&gt;
        capability: ESS Privacy ShortSlotTime (0x0411)&lt;br /&gt;
        signal: -50.00 dBm&lt;br /&gt;
        last seen: 3432 ms ago&lt;br /&gt;
        SSID: REDARROW&lt;br /&gt;
        Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0&lt;br /&gt;
        DS Parameter set: channel 11&lt;br /&gt;
        Extended supported rates: 6.0 12.0 24.0 48.0&lt;br /&gt;
        TIM: DTIM Count 0 DTIM Period 1 Bitmap Control 0x0 Bitmap[0] 0x2&lt;br /&gt;
        WPS:     * Version: 1.0&lt;br /&gt;
                 * Wi-Fi Protected Setup State: 2 (Configured)&lt;br /&gt;
                 * AP setup locked: 0x01&lt;br /&gt;
                 * UUID: 38833092-3092-1883-9c77-34e8945bf8c4&lt;br /&gt;
                 * RF Bands: 0x1&lt;br /&gt;
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20&lt;br /&gt;
        ERP: Barker_Preamble_Mode&lt;br /&gt;
        HT capabilities:&lt;br /&gt;
                Capabilities: 0x106e&lt;br /&gt;
                        HT20/HT40&lt;br /&gt;
                        SM Power Save disabled&lt;br /&gt;
                        RX HT20 SGI&lt;br /&gt;
                        RX HT40 SGI&lt;br /&gt;
                        No RX STBC&lt;br /&gt;
                        Max AMSDU length: 3839 bytes&lt;br /&gt;
                        DSSS/CCK HT40&lt;br /&gt;
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)&lt;br /&gt;
                Minimum RX AMPDU time spacing: 4 usec (0x05)&lt;br /&gt;
                HT RX MCS rate indexes supported: 0-15, 32&lt;br /&gt;
                HT TX MCS rate indexes are undefined&lt;br /&gt;
        HT operation:&lt;br /&gt;
                 * primary channel: 11&lt;br /&gt;
                 * secondary channel offset: no secondary&lt;br /&gt;
                 * STA channel width: 20 MHz&lt;br /&gt;
                 * RIFS: 0&lt;br /&gt;
                 * HT protection: no&lt;br /&gt;
                 * non-GF present: 0&lt;br /&gt;
                 * OBSS non-GF present: 0&lt;br /&gt;
                 * dual beacon: 0&lt;br /&gt;
                 * dual CTS protection: 0&lt;br /&gt;
                 * STBC beacon: 0&lt;br /&gt;
                 * L-SIG TXOP Prot: 0&lt;br /&gt;
                 * PCO active: 0&lt;br /&gt;
                 * PCO phase: 0&lt;br /&gt;
        Overlapping BSS scan params:&lt;br /&gt;
                 * passive dwell: 20 TUs&lt;br /&gt;
                 * active dwell: 10 TUs&lt;br /&gt;
                 * channel width trigger scan interval: 300 s&lt;br /&gt;
                 * scan passive total per channel: 200 TUs&lt;br /&gt;
                 * scan active total per channel: 20 TUs&lt;br /&gt;
                 * BSS width channel transition delay factor: 5&lt;br /&gt;
                 * OBSS Scan Activity Threshold: 0.25 %&lt;br /&gt;
        Extended capabilities:&lt;br /&gt;
                 * HT Information Exchange Supported&lt;br /&gt;
        WPA:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
        RSN:     * Version: 1&lt;br /&gt;
                 * Group cipher: TKIP&lt;br /&gt;
                 * Pairwise ciphers: TKIP CCMP&lt;br /&gt;
                 * Authentication suites: PSK&lt;br /&gt;
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)&lt;br /&gt;
        WMM:     * Parameter version 1&lt;br /&gt;
                 * BE: CW 15-1023, AIFSN 3&lt;br /&gt;
                 * BK: CW 15-1023, AIFSN 7&lt;br /&gt;
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec&lt;br /&gt;
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec&lt;br /&gt;
        BSS Load:&lt;br /&gt;
                 * station count: 0&lt;br /&gt;
                 * channel utilisation: 47/255&lt;br /&gt;
                 * available admission capacity: 31250 [*32us]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set up the network login data, edit file located in /etc/wpa_supplicant.conf and update '''''ssid''''' and passphrase '''''psk''''' fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# cat /etc/wpa_supplicant.conf &lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
update_config=1&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
        ssid=&amp;quot;SSID_FOR_WIFI_NETWORK&amp;quot;&lt;br /&gt;
        scan_ssid=1&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        psk=&amp;quot;WIFI_NETWORK_PASSWORD&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to the desired WiFi network, start wpa_supplicant:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# wpa_supplicant -D nl80211 -i mlan0 -c /etc/wpa_supplicant.conf &amp;amp;&lt;br /&gt;
root@imx91-voipac:~# rfkill: Cannot open RFKILL control device&lt;br /&gt;
[  261.722718] wlan: mlan0 START SCAN&lt;br /&gt;
[  266.018892] wlan: SCAN COMPLETED: scanned AP count=1&lt;br /&gt;
mlan0: SME: Trying to authentica[  266.027303] wlan: HostMlme mlan0 send auth to bssid 40:XX:XX:XX:70:62&lt;br /&gt;
te with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' f[  266.037546] mlan0: &lt;br /&gt;
req=2437 MHz)&lt;br /&gt;
[  266.037558] wlan: HostMlme Auth received from 40:XX:XX:XX:70:62&lt;br /&gt;
mlan0: Trying to associate with 40:a5:ef:c0:70:62 (SSID='WifiPoschodie' freq=2437 MHz)&lt;br /&gt;
[  266.057956] wlan: HostMlme mlan0 Connected to bssid 40:XX:XX:XX:70:62 successfully&lt;br /&gt;
mlan0: Associated[  266.067323] mlan0: &lt;br /&gt;
 with 40:a5:ef:c0[  266.067340] wlan: Send EAPOL pkt to 40:XX:XX:XX:70:62&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To obtain an IP address and other network settings, run dhcp client:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
udhcpc -i mlan0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point the bandwidth measurement can be tested, showing that WiFi connection was established and is performed very reliably.&lt;br /&gt;
Used program: [https://iperf.fr iPerf3.]  &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Configuration:''''' iMX91 Industrial Module Pro in Industrial temperature range (u-blox MAYA-W160-00B assembled):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.200 -t 30 -i1&lt;br /&gt;
Connecting to host 192.168.240.200, port 5201&lt;br /&gt;
[  5] local 192.168.240.111 port 39988 connected to 192.168.240.200 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec  5.12 MBytes  43.0 Mbits/sec    0    223 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec  5.38 MBytes  45.1 Mbits/sec    0    460 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec  7.12 MBytes  59.8 Mbits/sec    0    747 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec  4.25 MBytes  35.7 Mbits/sec    0   1003 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec  5.38 MBytes  45.1 Mbits/sec    0   1.25 MBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.52 MBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec  5.50 MBytes  46.1 Mbits/sec    0   1.78 MBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec  5.62 MBytes  47.2 Mbits/sec    0   2.06 MBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec  5.50 MBytes  46.1 Mbits/sec    0   2.31 MBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec  5.50 MBytes  46.1 Mbits/sec    0   2.64 MBytes       &lt;br /&gt;
[  5]  10.00-11.00  sec  6.75 MBytes  56.6 Mbits/sec    0   2.93 MBytes       &lt;br /&gt;
[  5]  11.00-12.00  sec  3.00 MBytes  25.2 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  12.00-13.00  sec  6.75 MBytes  56.6 Mbits/sec    0   3.41 MBytes       &lt;br /&gt;
[  5]  13.00-14.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.61 MBytes       &lt;br /&gt;
[  5]  14.00-15.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  15.00-16.00  sec  5.75 MBytes  48.2 Mbits/sec    0   3.81 MBytes       &lt;br /&gt;
[  5]  16.00-17.00  sec  4.38 MBytes  36.7 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  17.00-18.00  sec  5.88 MBytes  49.3 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  18.00-19.00  sec  2.75 MBytes  23.1 Mbits/sec    0   4.07 MBytes       &lt;br /&gt;
[  5]  19.00-20.00  sec  3.38 MBytes  28.3 Mbits/sec    3   2.86 MBytes       &lt;br /&gt;
[  5]  20.00-21.00  sec  2.88 MBytes  24.1 Mbits/sec    0   2.94 MBytes       &lt;br /&gt;
[  5]  21.00-22.00  sec  1.25 MBytes  10.5 Mbits/sec    0   3.10 MBytes       &lt;br /&gt;
[  5]  22.00-23.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.44 MBytes       &lt;br /&gt;
[  5]  23.00-24.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.63 MBytes       &lt;br /&gt;
[  5]  24.00-25.00  sec  4.50 MBytes  37.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  25.00-26.00  sec  4.25 MBytes  35.7 Mbits/sec    0   3.64 MBytes       &lt;br /&gt;
[  5]  26.00-27.00  sec  5.62 MBytes  47.2 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  27.00-28.00  sec  6.62 MBytes  55.6 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  28.00-29.00  sec  5.50 MBytes  46.1 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
[  5]  29.00-30.00  sec  4.88 MBytes  40.8 Mbits/sec    0   3.86 MBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-30.00  sec   150 MBytes  41.9 Mbits/sec    3             sender&lt;br /&gt;
[  5]   0.00-30.32  sec   150 MBytes  41.5 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
'''''Note:''''' This Bluetooth section was tested with the iMX91 Industrial Module in Max and Pro configurations. For Basic and Lite configurations, bluetooth capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Remote device is recognized after scan&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' For iMX91 Industrial Module Max (u-blox MAYA-W260-00B assembled) please use instead of &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 3000000 flow&amp;lt;/syntaxhighlight&amp;gt; command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;hciattach /dev/ttyLP7 any 115200 flow&amp;lt;/syntaxhighlight&amp;gt; in below code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# attach necessary modules&lt;br /&gt;
root@imx91-voipac:~# modprobe moal mod_para=nxp/wifi_mod_para.conf&lt;br /&gt;
root@imx91-voipac:~# modprobe hci_uart&lt;br /&gt;
root@imx91-voipac:~# hciattach /dev/ttyLP7 any 3000000 flow&lt;br /&gt;
Device setup complete&lt;br /&gt;
root@imx91-voipac:~# [ 1207.472299] Bluetooth: MGMT ver 1.22&lt;br /&gt;
[ 1207.485171] NET: Registered PF_ALG protocol family&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# put hci0 device up&lt;br /&gt;
root@imx91-voipac:~# hciconfig hci0 up&lt;br /&gt;
&lt;br /&gt;
# scan for remote bluetooth devices (enable bluetooth on phone and make it discoverable)&lt;br /&gt;
root@imx91-voipac:~# hcitool  scan                                                                             &lt;br /&gt;
Scanning ...                     &lt;br /&gt;
Devices:&lt;br /&gt;
    hci0    00:0D:18:01:5A:B3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethernet ==&lt;br /&gt;
'''''Note:''''' This section was tested with the iMX91 Industrial Module in Max and Pro configurations, that both include dual Gigabit Ethernet PHY. The Basic configuration include single Gigabit Ethernet PHY. For the Lite configuration, Ethernet capabilities are not available. For more information see [[iMX91 Industrial Development Kit|the iMX91 Industrial Module comparison]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Device driver is available (for Lite configuration only one ethernet is available)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' MAC address should be identical with the address on the sticker placed on the board&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth0&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:ae brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.33/24 metric 10 brd 192.168.1.255 scope global dynamic eth0&lt;br /&gt;
       valid_lft 86378sec preferred_lft 86378sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8cae/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~# ip addr show dev eth1&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:0d:15:01:8c:af brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 192.168.1.34/24 metric 10 brd 192.168.1.255 scope global dynamic eth1&lt;br /&gt;
       valid_lft 86391sec preferred_lft 86391sec&lt;br /&gt;
    inet6 fe80::20d:15ff:fe01:8caf/64 scope link proto kernel_ll&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Plug Ethernet cable into top or bottom connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' IPv4 address is assigned&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[ 1599.750399] fec 42890000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
[ 1630.695671] imx-dwmac 428a0000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
iPerf3 was used to test the Ethernet performance. &amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' Max and Pro configurations of the iMX91 Industrial Module include dual Gigabit Ethernet PHY. &amp;lt;br /&amp;gt; &lt;br /&gt;
'''''Input:''''' Start iPerf3 on computer using command &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;iperf3 -s &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''''Output:''''' Verify performance on board (argument after -c is IP address of your computer) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# iperf3 -c 192.168.240.120 -t 10 -i 1&lt;br /&gt;
Connecting to host 192.168.240.120, port 5201&lt;br /&gt;
[  5] local 192.168.240.32 port 57734 connected to 192.168.240.120 port 5201&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd&lt;br /&gt;
[  5]   0.00-1.00   sec   114 MBytes   951 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   1.00-2.00   sec   112 MBytes   943 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    358 KBytes       &lt;br /&gt;
[  5]   3.00-4.00   sec   113 MBytes   947 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   5.00-6.00   sec   112 MBytes   944 Mbits/sec    0    393 KBytes       &lt;br /&gt;
[  5]   6.00-7.00   sec   112 MBytes   940 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   7.00-8.00   sec   112 MBytes   943 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   8.00-9.00   sec   112 MBytes   942 Mbits/sec    0    516 KBytes       &lt;br /&gt;
[  5]   9.00-10.00  sec   113 MBytes   946 Mbits/sec    0    516 KBytes       &lt;br /&gt;
- - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
[ ID] Interval           Transfer     Bitrate         Retr&lt;br /&gt;
[  5]   0.00-10.00  sec  1.10 GBytes   943 Mbits/sec    0             sender&lt;br /&gt;
[  5]   0.00-10.05  sec  1.10 GBytes   937 Mbits/sec                  receiver&lt;br /&gt;
&lt;br /&gt;
iperf Done.&lt;br /&gt;
root@imx91-voipac:~# &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB 2.0 ==&lt;br /&gt;
NOTE: Perform read/write performance test&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Input:''''' Plug USB flash drive into USB connector&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Plugged USB device is listed&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# lsusb&lt;br /&gt;
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 002 Device 003: ID 125f:d31a A-DATA Technology Co., Ltd. &lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' Generate a dummy file and copy it into USB flash drive&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Generated file and copied file have the same checksum&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# mount /dev/sda1 /media/&lt;br /&gt;
root@imx91-voipac:~# rm -f file.txt /media/file.txt &lt;br /&gt;
root@imx91-voipac:~# dd if=/dev/urandom of=file.txt count=1024 bs=1024&lt;br /&gt;
1024+0 records in&lt;br /&gt;
1024+0 records out&lt;br /&gt;
root@imx91-voipac:~# cp file.txt /media/&lt;br /&gt;
root@imx91-voipac:~# md5sum file.txt /media/file.txt &lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  file.txt&lt;br /&gt;
200a9fd3e9850fcedf85ed50d4c4733d  /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# rm file.txt /media/file.txt&lt;br /&gt;
root@imx91-voipac:~# umount /media&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== USB-C ==&lt;br /&gt;
This connector is primarily used for flashing new binaries into the iMX91 Industrial Module. More information can be found on the dedicated [[iMX8M Industrial Flashing Procedure|module flashing page]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Micro-B serial console ==&lt;br /&gt;
'''''Input:''''' Connect USB console cable into the base board connector and open serial console with baud rate 115200 8n1&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board is controlled and responsive to serial terminal commands&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# uname -a&lt;br /&gt;
Linux imx91-voipac 6.6.36-lts-next-g2e3e2e65d92a #1 SMP PREEMPT Wed Sep  4 08:22:45 UTC 2024 aarch64 GNU/Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART serial console ==&lt;br /&gt;
Serial console is utilized via USB Micro-B connector by default. Alternatively, the communication can be established using UART headers and TTL-232R-3V3 - FTDI cable.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
NOTE: Describe jumpers position&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-Serial console via UART1.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' Usage of UART2 CONSOLE to communicate by default requires changes in Yocto binaries and new compilation of image files. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-Serial console via UART2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== SD Card ==&lt;br /&gt;
NOTE: Perform detection of SD Card&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# fdisk -l&lt;br /&gt;
Disk /dev/mmcblk0: 15 GB, 15758000128 bytes, 30777344 sectors&lt;br /&gt;
240448 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk0p1 *  128,0,1     1023,3,32        16384     186775     170392 83.1M  c Win95 FAT32 (LBA)&lt;br /&gt;
/dev/mmcblk0p2    1023,3,32   1023,3,32       196608     939761     743154  362M 83 Linux&lt;br /&gt;
Disk /dev/mmcblk0boot0: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk0boot1: 4 MB, 4194304 bytes, 8192 sectors&lt;br /&gt;
128 cylinders, 4 heads, 16 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mmcblk1: 15 GB, 15931539456 bytes, 31116288 sectors&lt;br /&gt;
243096 cylinders, 4 heads, 32 sectors/track&lt;br /&gt;
Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
&lt;br /&gt;
Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type&lt;br /&gt;
/dev/mmcblk1p1    512,0,1     1023,3,32        65536     266255     200720 98.0M 83 Linux&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/dev/mmcblk1 is SD card (mmcblk0 is eMMC)&lt;br /&gt;
&lt;br /&gt;
== JTAG ==&lt;br /&gt;
[[File:iMX93 Industrial Development Kit-JTAG communication setup.png|800px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
To verify that i.MX93 CPU JTAG is functional, following command identifies and connects to the CPU's debug point:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
J-Link&amp;gt; jtagid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:J-Link MIMX9352 A55 1.png|800px]] &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:J-Link MIMX9352 M33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Real Time Clock ==&lt;br /&gt;
RTC chip is detected by Linux kernel after start-up:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# dmesg | grep rtc&lt;br /&gt;
[    0.894414] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops)&lt;br /&gt;
[    0.910506] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes&lt;br /&gt;
[    1.209418] bbnsm_rtc 44440000.bbnsm:rtc: registered as rtc0&lt;br /&gt;
[    1.215749] bbnsm_rtc 44440000.bbnsm:rtc: setting system clock to 1970-01-01T00:00:00 UTC (0)&lt;br /&gt;
root@imx91-voipac:~#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CPU correctly recognises RTC on the I2C1 bus, the chip is under usage by the kernel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# i2cdetect -r -y 1                                                                                                                                                                                                        &lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- -- UU -- -- -- UU -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- 3d -- -- &lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- --                     &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the current date and time, show the actual values&lt;br /&gt;
&lt;br /&gt;
Setup date and time&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
date -s &amp;quot;2025-8-13 14:52:26&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show actual values&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac:~# timedatectl &lt;br /&gt;
[  134.509782] kauditd_printk_skb: 8 callbacks suppressed&lt;br /&gt;
[  134.509793] audit: type=1334 audit(1732625725.140:18): prog-id=19 op=LOAD&lt;br /&gt;
[  134.523935] audit: type=1334 audit(1732625725.148:19): prog-id=20 op=LOAD&lt;br /&gt;
[  134.531609] audit: type=1334 audit(1732625725.152:20): prog-id=21 op=LOAD&lt;br /&gt;
               Local time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
           Universal time: Tue 2024-11-26 12:55:25 UTC&lt;br /&gt;
                 RTC time: Tue 2024-11-26 12:55:25&lt;br /&gt;
                Time zone: UTC (UTC, +0000)&lt;br /&gt;
System clock synchronized: yes&lt;br /&gt;
              NTP service: active&lt;br /&gt;
          RTC in local TZ: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I2C EEPROM Memory - on module ==&lt;br /&gt;
'''''Input:''''' Power on board&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Store some data to eeprom and after reboot read it back and should be same &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# dd if=/dev/urandom of=/sys/bus/i2c/devices/0-0050/eeprom bs=8 count=1&lt;br /&gt;
+1 records in&lt;br /&gt;
0+1 records out&lt;br /&gt;
8 bytes copied, 0.0225523 s, 0.4 kB/s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After board reboot:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# store random 8bytes to eeprom&lt;br /&gt;
root@imx91-voipac-evk:~# hexdump -n8 /sys/bus/i2c/devices/0-0050/eeprom                                              &lt;br /&gt;
0000000 c4dd 4eda d624 535e                    &lt;br /&gt;
0000008&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reset button ==&lt;br /&gt;
'''''Input:''''' Press the RESET button&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will execute bootloader immediately with &amp;quot;Reset cause: POR&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Note:''''' iMX91 Industrial Development Kit should never freeze or hang after the reset button was pressed. Testing the operation 10 times gives a reliable result&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
U-Boot 2023.04+gf8a2983ec8+p0 (Mar 04 2024 - 07:25:04 +0000)&lt;br /&gt;
&lt;br /&gt;
CPU:   i.MX93(52) rev1.1 1700 MHz (running at 1692 MHz)&lt;br /&gt;
CPU:   Industrial temperature grade (-40C to 105C) at 45C&lt;br /&gt;
Reset cause: POR (0x1)&lt;br /&gt;
Model: NXP i.MX93 Voipac EVK board&lt;br /&gt;
DRAM:  2 GiB&lt;br /&gt;
Core:  215 devices, 32 uclasses, devicetree: separate&lt;br /&gt;
MMC:   FSL_SDHC: 0, FSL_SDHC: 1&lt;br /&gt;
Loading Environment from MMC... OK&lt;br /&gt;
[*]-Video Link 0fail to find output device&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== On/Off button ==&lt;br /&gt;
'''''Input:''''' Press and hold On/Off button for more then 5 seconds&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' The board will be powered off&lt;br /&gt;
&lt;br /&gt;
Press shortly the On/Off button again, the board will be powered on.&lt;br /&gt;
&lt;br /&gt;
== Sleep Mode ==&lt;br /&gt;
'''''Input:''''' Type command:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo mem &amp;gt; /sys/power/state&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Output:''''' The board will go into a frozen state and the serial console will not respond to inputs.&lt;br /&gt;
&lt;br /&gt;
Shortly press the Up user button, to wake the board up again.&lt;br /&gt;
&lt;br /&gt;
[[File:imx93_sleep_mode.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User buttons ==&lt;br /&gt;
'''''Input:''''' Press Enter/Left/Right/Up/Down buttons&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Button events 1 and 0 are generated&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# evtest /dev/input/by-path/platform-gpio-buttons-event &lt;br /&gt;
Input driver version is 1.0.1&lt;br /&gt;
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100&lt;br /&gt;
Input device name: &amp;quot;gpio-buttons&amp;quot;&lt;br /&gt;
Supported events:&lt;br /&gt;
  Event type 0 (EV_SYN)&lt;br /&gt;
  Event type 1 (EV_KEY)&lt;br /&gt;
    Event code 28 (KEY_ENTER)&lt;br /&gt;
    Event code 103 (KEY_UP)&lt;br /&gt;
    Event code 105 (KEY_LEFT)&lt;br /&gt;
    Event code 106 (KEY_RIGHT)&lt;br /&gt;
    Event code 108 (KEY_DOWN)&lt;br /&gt;
Properties:&lt;br /&gt;
Testing ... (interrupt to exit)&lt;br /&gt;
Event: time 1717485486.586413, type 1 (EV_KEY), code 103 (KEY_UP), value 1&lt;br /&gt;
Event: time 1717485486.586413, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485486.682265, type 1 (EV_KEY), code 103 (KEY_UP), value 0&lt;br /&gt;
Event: time 1717485486.682265, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.255120, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1&lt;br /&gt;
Event: time 1717485487.255120, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485487.367126, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0&lt;br /&gt;
Event: time 1717485487.367126, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.539564, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 1&lt;br /&gt;
Event: time 1717485488.539564, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.677501, type 1 (EV_KEY), code 106 (KEY_RIGHT), value 0&lt;br /&gt;
Event: time 1717485488.677501, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485488.897627, type 1 (EV_KEY), code 105 (KEY_LEFT), value 1&lt;br /&gt;
Event: time 1717485488.897627, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.013136, type 1 (EV_KEY), code 105 (KEY_LEFT), value 0&lt;br /&gt;
Event: time 1717485489.013136, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.264589, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1&lt;br /&gt;
Event: time 1717485489.264589, -------------- SYN_REPORT ------------&lt;br /&gt;
Event: time 1717485489.372584, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0&lt;br /&gt;
Event: time 1717485489.372584, -------------- SYN_REPORT ------------&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User LED ==&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' Script switches User LED on baseboard ON and OFF in one second intervals&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
LED=/sys/class/leds/user_sbc&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
        echo 0 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
        echo 1 &amp;gt; ${LED}/brightness&lt;br /&gt;
        sleep 1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on baseboard is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_sbc/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Input:''''' None&amp;lt;br /&amp;gt;&lt;br /&gt;
'''''Output:''''' User LED on SOM is set to heartbeat blinking sequence&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
root@imx91-voipac-evk:~# echo heartbeat &amp;gt; /sys/class/leds/user_som/trigger&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Flashing_Procedure&amp;diff=5774</id>
		<title>iMX91 Industrial Flashing Procedure</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Flashing_Procedure&amp;diff=5774"/>
		<updated>2025-10-22T19:19:36Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX91 Industrial Development Kit]]&lt;br /&gt;
[[Category:iMX91 Industrial Software]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
This page describes how to flash [https://downloads.voipac.com/index.php?p=iMX91_Industrial_Development_Kit/module/software/filesystem binaries] into iMX91 Industrial Module's eMMC Flash memory or into SD card that is located on the iMX Development Baseboard.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: All of the steps listed below are NOT REQUIRED for standard configuration modules and development kits.'''''&lt;br /&gt;
&lt;br /&gt;
== Installing Universal Upload Utility (UUU) ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/NXPmicro/mfgtools.git&lt;br /&gt;
cd mfgtools&lt;br /&gt;
mkdir .build &amp;amp;&amp;amp; cd .build &amp;amp;&amp;amp; cmake .. &amp;amp;&amp;amp; make -j`nproc`&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The binary called '''''uuu''''', which is used for flashing, is located in .build/uuu directory.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
* Go to: https://github.com/NXPmicro/mfgtools/releases&lt;br /&gt;
* Select the latest stable release.&amp;lt;br /&amp;gt;Example: '''''Releases/uuu_1.5.201''''': https://github.com/nxp-imx/mfgtools/releases/tag/uuu_1.5.201&lt;br /&gt;
* Download: [https://github.com/nxp-imx/mfgtools/releases/download/uuu_1.5.201/uuu.exe uuu.exe]&lt;br /&gt;
* Save the file into: C:\uuu&lt;br /&gt;
&lt;br /&gt;
== Preparing the binaries ==&lt;br /&gt;
* Download the default WIC filesystem image e.g. for pro configuration: [https://downloads.voipac.com/files/iMX91_Industrial_Development_Kit/module/software/filesystem/voipac-image-imx93-pro.rootfs.wic voipac-image-imx93-pro.rootfs.wic]&lt;br /&gt;
&lt;br /&gt;
== Flashing procedure ==&lt;br /&gt;
* Set serial downloader mode by sliding DIP switch S1 BOOT positions to: 1-OFF, 2-ON&lt;br /&gt;
[[File:iMX8M_Industrial_Development_Kit-Serial_donwloader_mode.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Plug USB Micro-B cable to baseboard CONSOLE connector and PC&amp;lt;br /&amp;gt;'''''Note:''''' Make sure that UART1 and UART2 jumpers are in CP2105 positions (USB/UART bridge).&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX Development Baseboard-Serial console jumpers-iMX93 COM.png|594px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Plug USB-C cable to baseboard USB-C connector and PC&amp;lt;br /&amp;gt;'''''Note:''''' Powering of the development kit is not required during the flashing procedure.&amp;lt;br /&amp;gt;'''''Note:''''' After connecting 2 development board cables, 2 serial ports named ''Silicon Labs CP210x USB to UART Bridge'' should appear in the controlling PC.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[image:iMX8M Industrial Development Kit-Serial-consoles-recognized.png|594px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Default Serial Port Settings&lt;br /&gt;
[[File:Serial Port Setup.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Download and copy imx-boot and *.wic files into ''uuu\'' directory&lt;br /&gt;
* Choose one of the following commands to start the flashing process:&lt;br /&gt;
=== eMMC Flash Memory (default) ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b emmc_all voipac-image-imx93-pro.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b emmc_all voipac-image-imx93-pro.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ./uuu -b sd_all voipac-image-imx93-pro.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uuu.exe -b sd_all voipac-image-imx93-pro.rootfs.wic&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Flashing logs ===&lt;br /&gt;
==== UUU ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Microsoft Windows [Version 10.0.19045.2486]&lt;br /&gt;
(c) Microsoft Corporation. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
C:\Users\voipac&amp;gt;cd c:\uuu&lt;br /&gt;
&lt;br /&gt;
c:\uuu&amp;gt;uuu.exe -b emmc_all voipac-image-imx93-pro.rootfs.wic&lt;br /&gt;
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.4.243-0-ged48c51&lt;br /&gt;
&lt;br /&gt;
Success 1    Failure 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2:43     8/ 8 [Done                                  ] FB: done&lt;br /&gt;
&lt;br /&gt;
c:\uuu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:iMX93_Industrial_Development_Kit-Flashing_binaries.png|750px]]&lt;br /&gt;
&lt;br /&gt;
==== Serial console ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
.....................................................&lt;br /&gt;
downloading of 16776244 bytes finished&lt;br /&gt;
writing to partition 'all'&lt;br /&gt;
sparse flash target is mmc:0&lt;br /&gt;
writing to partition 'all' for sparse, buffer size 16776244&lt;br /&gt;
Flashing sparse image at offset 0&lt;br /&gt;
Flashing Sparse Image&lt;br /&gt;
........ wrote 16776192 bytes to 'all'&lt;br /&gt;
Starting download of 16776244 bytes&lt;br /&gt;
..........................................................................&lt;br /&gt;
.....................................................&lt;br /&gt;
downloading of 16776244 bytes finished&lt;br /&gt;
writing to partition 'all'&lt;br /&gt;
sparse flash target is mmc:0&lt;br /&gt;
writing to partition 'all' for sparse, buffer size 16776244&lt;br /&gt;
Flashing sparse image at offset 0&lt;br /&gt;
Flashing Sparse Image&lt;br /&gt;
........ wrote 16776192 bytes to 'all'&lt;br /&gt;
Starting download of 11424820 bytes&lt;br /&gt;
..........................................................................&lt;br /&gt;
.............&lt;br /&gt;
downloading of 11424820 bytes finished&lt;br /&gt;
writing to partition 'all'&lt;br /&gt;
sparse flash target is mmc:0&lt;br /&gt;
writing to partition 'all' for sparse, buffer size 11424820&lt;br /&gt;
Flashing sparse image at offset 0&lt;br /&gt;
Flashing Sparse Image&lt;br /&gt;
........ wrote 11424768 bytes to 'all'&lt;br /&gt;
Starting download of 2126848 bytes&lt;br /&gt;
................&lt;br /&gt;
downloading of 2126848 bytes finished&lt;br /&gt;
writing to partition 'bootloader'&lt;br /&gt;
Initializing 'bootloader'&lt;br /&gt;
switch to partitions #1, OK&lt;br /&gt;
mmc0(part 1) is current device&lt;br /&gt;
Writing 'bootloader'&lt;br /&gt;
&lt;br /&gt;
MMC write: dev # 0, block # 0, count 4154 ... 4154 blocks written: OK&lt;br /&gt;
Writing 'bootloader' DONE!&lt;br /&gt;
Detect USB boot. Will enter fastboot mode!&lt;br /&gt;
Detect USB boot. Will enter fastboot mode!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running the newly flashed binaries ==&lt;br /&gt;
After completing the above steps, eMMC Flash memory or SD Card is flashed and the following steps are to be performed to boot the new image:&lt;br /&gt;
&lt;br /&gt;
* Unplug USB-C cable from PC&lt;br /&gt;
* Set Boot mode by sliding DIP switch S1 BOOT positions to: 1-ON, 2-OFF&lt;br /&gt;
[[File:iMX8M_Industrial_Development_Kit-Boot_mode.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* In case of SD card boot set DIP switch S1 BOOT positions to 1-ON, 2-ON&lt;br /&gt;
[[File:SD Card booting.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  Make sure that S2 BOOT and S3 BOOT DIP switches are in correct positions in order to boot from the selected storage media (eMMC Flash memory or SD Card):&lt;br /&gt;
==== eMMC Flash Memory boot (default) ====&lt;br /&gt;
[[File:boot eMMC iMX93.png|400px]] &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SD Card boot ====&lt;br /&gt;
[[File:boot SD Card iMX93.png|400px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Connect USB Micro-B debug cable, switch on the power and the development kit starts booting with the new binaries&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting DTB file ==&lt;br /&gt;
* To set a correct DTB file, stop autoboot.&lt;br /&gt;
&lt;br /&gt;
* Use these commands to set a DTB file for the image loaded in eMMC:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt;fatls mmc 0:1&lt;br /&gt;
u-boot=&amp;gt;setenv fdtfile imx91-voipac-evk.dtb&lt;br /&gt;
u-boot=&amp;gt;saveenv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use these commands to set a DTB file for the image loaded in SD Card (example for BOE Display):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;        &lt;br /&gt;
u-boot=&amp;gt;fatls mmc 1:1&lt;br /&gt;
u-boot=&amp;gt;setenv fdtfile imx93-voipac-evk-boe-wxga-lvds-panel.dtb&lt;br /&gt;
u-boot=&amp;gt;saveenv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:imx93_dtb_setting.png|740px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To boot the image, reset the board or type the boot command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
u-boot=&amp;gt;boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Controlling_the_Development_Kit&amp;diff=5773</id>
		<title>iMX91 Industrial Controlling the Development Kit</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Controlling_the_Development_Kit&amp;diff=5773"/>
		<updated>2025-10-22T19:18:44Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
This page guides though the first steps of controlling and operating the development kit. To prepare the working setup connect and plug in cables first.&lt;br /&gt;
&lt;br /&gt;
=Controlling the Development Kit over Serial Line=&lt;br /&gt;
==Recommended HW:==&lt;br /&gt;
&lt;br /&gt;
* PC with USB port&lt;br /&gt;
* Voipac iMX91 Industrial Development Kit&lt;br /&gt;
* Micro USB Cable: iMX Baseboard USB Micro-B Console (Default)&lt;br /&gt;
* TTL-232R-3V3-FTDI: iMX Baseboard UART1 Serial Console (Optional)&lt;br /&gt;
&lt;br /&gt;
==Recommended SW:==&lt;br /&gt;
&lt;br /&gt;
Serial line terminal (PUTTY, Minicom, Ckermit, Hyperterminal, TeraTerm, ...)&lt;br /&gt;
&lt;br /&gt;
===Default serial port settings:===&lt;br /&gt;
&lt;br /&gt;
* Speed (baud): 115200&lt;br /&gt;
* Data bits: 8&lt;br /&gt;
* Stop bits: 1&lt;br /&gt;
* Parity: None&lt;br /&gt;
* Flow control: None&lt;br /&gt;
&lt;br /&gt;
===Controlling the development kit using TeraTerm and PuTTY:===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:iMX93 TeraTerm log.png]] &amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
[[File:iMX93 PuTTY Serial log.png]] &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' If you use the UART1 Console cable, it is necessary to switch the UART1 and UART 2 jumpers to the UART-CPU position as shown in the picture below.&lt;br /&gt;
&lt;br /&gt;
[[File:iMX93 UART Serial Console.png|800px]]  &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Controlling the Development Kit over Ethernet=&lt;br /&gt;
===Recommended HW:===&lt;br /&gt;
&lt;br /&gt;
* PC with Ethernet&lt;br /&gt;
* Voipac iMX91 Industrial Development Kit&lt;br /&gt;
* Ethernet Cable&lt;br /&gt;
&lt;br /&gt;
===Recommended SW:===&lt;br /&gt;
&lt;br /&gt;
* SFTP client (Filezilla, PUTTY, WinSCP, …)&lt;br /&gt;
* Telnet client (Telnet, PUTTY, …)&lt;br /&gt;
* SSH client (SSH,PUTTY, …)&lt;br /&gt;
* FTP client (FTP, Filezilla, BareFTP, …)&lt;br /&gt;
&lt;br /&gt;
===Important notes:===&lt;br /&gt;
&lt;br /&gt;
iMX91 Industrial Development Kit is shipped with empty password. The default login is: &amp;quot;root&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The default IP address is dynamic and setup by your DHCP server upon boot.&lt;br /&gt;
&lt;br /&gt;
SSH, SFTP services require root password to be set up (“passwd” command)&lt;br /&gt;
&lt;br /&gt;
FTP, SFTP are recommended only for data transfers (binary mode is recommended)&lt;br /&gt;
&lt;br /&gt;
===Controlling the development kit using WinSCP:===&lt;br /&gt;
&lt;br /&gt;
[[File:iMX93 WinSCP.png|800px]] &amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
[[File:iMX93 WinSCP commander.png|800px]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Connecting_the_Components_and_Cables&amp;diff=5772</id>
		<title>iMX91 Industrial Connecting the Components and Cables</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Connecting_the_Components_and_Cables&amp;diff=5772"/>
		<updated>2025-10-22T19:17:52Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX93 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page is intended to show the necessary connections and steps to successfully boot and operate the development kit.&lt;br /&gt;
&lt;br /&gt;
==Connecting the board==&lt;br /&gt;
Prepare iMX Development Baseboard and plug in Micro USB Cable, Ethernet cable and other devices or interfaces you need. Plug the power supply connector in.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:iMX93 Components Cables.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Connecting the Ethernet cable==&lt;br /&gt;
Connect the Ethernet cable to bottom connector (preset as default) of the Ethernet port.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:iMX93 Components Cables Ethernet.png|800px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting the microSD Card (OPTIONAL)==&lt;br /&gt;
Insert the micro SD card into the micro SD Slot in case that booting is set from the micro SD card. &lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' The Development Kit, which have default setting to boot from SD Card, already contains an inserted SD Card.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Components Cables microSD.png|800px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''NOTE:''''' Before Turn On, make sure that S1, S2 and S3 BOOT DIP switches are in correct positions in order to boot from the selected storage media (eMMC Flash memory or SD Card). For more details visit: [[iMX91_Industrial_Flashing_Procedure#Running_the_newly_flashed_binaries]]&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
	<entry>
		<id>https://wiki.voipac.com/index.php?title=iMX91_Industrial_Power_Consumption&amp;diff=5765</id>
		<title>iMX91 Industrial Power Consumption</title>
		<link rel="alternate" type="text/html" href="https://wiki.voipac.com/index.php?title=iMX91_Industrial_Power_Consumption&amp;diff=5765"/>
		<updated>2025-10-22T10:41:16Z</updated>

		<summary type="html">&lt;p&gt;Voipac-sw: Created page with &amp;quot;Category:iMX93 Industrial Category:iMX93 Industrial Development Kit &amp;lt;!-- --&amp;gt; &amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;  This page contains power consumption measurements...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:iMX93 Industrial]]&lt;br /&gt;
[[Category:iMX93 Industrial Development Kit]]&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page contains power consumption measurements for the iMX93 Industrial Development Kits in all 4 standard webshop configurations. All of the sets used during the test procedure were running the default Linux distribution and booted up from the eMMC NAND Flash Memory.&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' While measured, the development kits were placed under a very heavy load - using stress test application putting CPU, memories and Ethernet/s under challenging conditions.&lt;br /&gt;
&lt;br /&gt;
== Test setup and measuring equipment ==&lt;br /&gt;
* power supply: BK Precision 1688B&lt;br /&gt;
* digital multimeter: Fluke 115 True RMS&lt;br /&gt;
* measured at: 20°C ambient temperature&lt;br /&gt;
&lt;br /&gt;
[[image:iMX93 Industrial Development Kit-Power consumption measurement setup.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== Power consumption results ==&lt;br /&gt;
=== iMX93 Industrial Development Kit Lite ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&lt;br /&gt;
!Test condition !! Input voltage&amp;lt;br/ &amp;gt;Vin [V] !! Measured current&amp;lt;br/ &amp;gt;I [A] !! Power usage&amp;lt;br/ &amp;gt;P [W]&lt;br /&gt;
|-&lt;br /&gt;
|Uboot only || 5.194 || 0.128 || 0.666&lt;br /&gt;
|-&lt;br /&gt;
|Booting-up process (maximum) || 5.194 || 0.138 || 0.717&lt;br /&gt;
|-&lt;br /&gt;
|Linux at idle || 5.195 || 0.101 || 0.525&lt;br /&gt;
|-&lt;br /&gt;
|Sleep mode || 5.199 || 0.026 || 0.138&lt;br /&gt;
|-&lt;br /&gt;
|Linux + Stresstest || 5.193 || 0.152 || 0.793&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== iMX93 Industrial Development Kit Basic ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&lt;br /&gt;
!Test condition !! Input voltage&amp;lt;br/ &amp;gt;Vin [V] !! Measured current&amp;lt;br/ &amp;gt;I [A] !! Power usage&amp;lt;br/ &amp;gt;P [W]&lt;br /&gt;
|-&lt;br /&gt;
|Uboot only || 5.188 || 0.290 || 1.506&lt;br /&gt;
|-&lt;br /&gt;
|Booting-up process (maximum) || 5.190 || 0.341 || 1.770&lt;br /&gt;
|-&lt;br /&gt;
|Linux at idle || 5.192 || 0.227 || 1.179&lt;br /&gt;
|-&lt;br /&gt;
|Sleep mode || 5.198 || 0.049 || 0.257&lt;br /&gt;
|-&lt;br /&gt;
|Linux + Stresstest || 5.193 || 0.367 || 1.905&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== iMX93 Industrial Development Kit Pro ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&lt;br /&gt;
!Test condition !! Input voltage&amp;lt;br/ &amp;gt;Vin [V] !! Measured current&amp;lt;br/ &amp;gt;I [A] !! Power usage&amp;lt;br/ &amp;gt;P [W]&lt;br /&gt;
|-&lt;br /&gt;
|Uboot only || 5.183 || 0.401 || 2.081&lt;br /&gt;
|-&lt;br /&gt;
|Booting-up process (maximum) || 5.182 || 0.478 || 2.476&lt;br /&gt;
|-&lt;br /&gt;
|Linux at idle || 5.186 || 0.323 || 1.675&lt;br /&gt;
|-&lt;br /&gt;
|Sleep mode || 5.195 || 0.079 || 0.414&lt;br /&gt;
|-&lt;br /&gt;
|Linux + Stresstest || 5.181 || 0.482 || 2.498&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== iMX93 Industrial Development Kit Max ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&lt;br /&gt;
!Test condition !! Input voltage&amp;lt;br/ &amp;gt;Vin [V] !! Measured current&amp;lt;br/ &amp;gt;I [A] !! Power usage&amp;lt;br/ &amp;gt;P [W]&lt;br /&gt;
|-&lt;br /&gt;
|Uboot only || 5.183 || 0.416 || 2.159&lt;br /&gt;
|-&lt;br /&gt;
|Booting-up process (maximum) || 5.186 || 0.460 || 2.386&lt;br /&gt;
|-&lt;br /&gt;
|Linux at idle || 5.186 || 0.338 || 1.756&lt;br /&gt;
|-&lt;br /&gt;
|Sleep mode || 5.196 || 0.085 || 0.444&lt;br /&gt;
|-&lt;br /&gt;
|Linux + Stresstest || 5.183 || 0.574 || 2.977&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Voipac-sw</name></author>
	</entry>
</feed>