Harware:
- i.MX7D-SDB board
- QCA9880 card with MINI PCIe Interface
The Wifi module is connected to the PCIe slot on the board.
Software:
- Ubuntu 18.04 LTS Host
- L4.19.35_1.1.0 BSP
Tool:
- uuu 1.2.68 for linux (run on ubuntu host)
Toolchain:
- The toolchain can be obtained from the Yocto BSP. Please read and follow the steps in i.MX_Yocto_Project_User's_Guide to build the BSP and then read the Chapter of "How to build U-Boot and Kernel in standalone environment" in i.MX_Linux_User's_Guide to build the toolchain.
Build the Kernel:
# mkdir imx_build
# cd imx_build
# git clone https://source.codeaurora.org/external/imx/linux-imx -b imx_4.19.35_1.1.0
# cd linux-imx
# source /opt/fsl-imx-fb/4.19-warrior/imx6/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
# export ARCH=arm
# make clean
# make imx_v7_defconfig
# make menuconfig
- Select the PCIe driver and the Wifi support
- PCI controller drivers--->
DesignWare PCI Core Support---->
- Networking support----->
Wireless----->
- Select the ath10 driver (it supports QCA988X)
Device Drivers---->
Network device support----->
Wirless LAN---->
- Save and Exit.
- Add the firmware in the .config file:
CONFIG_EXTRA_FIRMWARE="board.bin firmware-2.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/home/jimmy/imx_build/linux-imx/firmware"
- Build the kernel
# make
Then the zImage will be obtained in arch/arm/boot.
Using uuu to program the SD card:
- Downloading demo image of L4.19.35_1.10 from the nxp website.
- Copy the zImage to the directory
- Copy the uuu (V1.2.68) to the directory
- Copy the samples/example_kernel_emmc.uuu to imx7d_kernel_emmc.uuu
- Modify the image the imx7d_kernel_emmc.uuu
- In the demo image, you will see the files like this:
- run uuu and the script to program the images.
Wifi driver loaded and wlan0 is up:
# dmesg | grep pci
# ifconfig -a
Reference Document:
- i.MX_Linux_User's_Guide.pdf
- i.MX_Porting_Guide.pdf