mek_8qm/evk_8mq enable uSD/M.2 8987 wifi module

Document created by Andy Tian Employee on Jul 21, 2020Last modified by Andy Tian Employee on Aug 13, 2020
Version 4Show Document
  • View in full screen mode

All below changes are done based on imx_android-10.0_5.4.y.

 

  • mek_8qm enable uSD 8987 wifi

           1. hardware rework

               no hardware rework required

 

           2. patches

 

The patch is attached as 0001-8qm-usd-8987-wifi.patch

 

  • mek_8qm enable M.2 8987 wifi

           1. hardware rework

               no hardware rework required

 

           2. patches

 

The patch is attached as 0001-8qm-m2-8987-wifi.patch

 

  • evk_8mq enable uSD 8987 wifi

           1. hardware rework

               no hardware rework required

 

           2. patches

diff --git a/imx8m/evk_8mq/BoardConfig.mk b/imx8m/evk_8mq/BoardConfig.mk
index db7c4991..4d130cc0 100644
--- a/imx8m/evk_8mq/BoardConfig.mk
+++ b/imx8m/evk_8mq/BoardConfig.mk
@@ -136,7 +136,8 @@ ifeq ($(TARGET_USE_DYNAMIC_PARTITIONS),true)
TARGET_BOARD_DTS_CONFIG ?= imx8mq:imx8mq-evk-no-product.dtb
else
# imx8mq with HDMI display
- TARGET_BOARD_DTS_CONFIG ?= imx8mq:imx8mq-evk-pcie1-m2.dtb
+ TARGET_BOARD_DTS_CONFIG ?= imx8mq:imx8mq-evk-usd-wifi.dtb
+
# imx8mq with MIPI-HDMI display
TARGET_BOARD_DTS_CONFIG += imx8mq-mipi:imx8mq-evk-lcdif-adv7535.dtb
# imx8mq with HDMI and MIPI-HDMI display
diff --git a/imx8m/evk_8mq/SharedBoardConfig.mk b/imx8m/evk_8mq/SharedBoardConfig.mk
index 330ab1c5..a6654bad 100644
--- a/imx8m/evk_8mq/SharedBoardConfig.mk
+++ b/imx8m/evk_8mq/SharedBoardConfig.mk
@@ -7,10 +7,10 @@ PRODUCT_IMX_TRUSTY := true
#Enable this to disable product partition build.
#IMX_NO_PRODUCT_PARTITION := true

-#NXP 8997 wifi driver module
+# NXP 8987 wifi driver module
BOARD_VENDOR_KERNEL_MODULES += \
- $(KERNEL_OUT)/drivers/net/wireless/marvell/mrvl8997/wlan_src/mlan.ko \
- $(KERNEL_OUT)/drivers/net/wireless/marvell/mrvl8997/wlan_src/pcie8xxx.ko
+ $(KERNEL_OUT)/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan.ko \
+ $(KERNEL_OUT)/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/moal.ko

# mipi-panel touch driver module
BOARD_VENDOR_KERNEL_MODULES += \

diff --git a/imx8m/evk_8mq/UbootKernelBoardConfig.mk b/imx8m/evk_8mq/UbootKernelBoardConfig.mk
index 5aa1ce35..4c3378f0 100644
--- a/imx8m/evk_8mq/UbootKernelBoardConfig.mk
+++ b/imx8m/evk_8mq/UbootKernelBoardConfig.mk
@@ -14,7 +14,7 @@ endif
TARGET_BOOTLOADER_CONFIG += imx8mq-evk-uuu:imx8mq_evk_android_uuu_defconfig

TARGET_KERNEL_DEFCONFIG := imx_v8_android_defconfig
-# TARGET_KERNEL_ADDITION_DEFCONF ?= android_addition_defconfig
+TARGET_KERNEL_ADDITION_DEFCONF ?= android_addition_defconfig


diff --git a/imx8m/evk_8mq/android_addition_defconfig b/imx8m/evk_8mq/android_addition_defconfig
new file mode 100644
index 00000000..f51bd5ff
--- /dev/null
+++ b/imx8m/evk_8mq/android_addition_defconfig
@@ -0,0 +1,2 @@
+CONFIG_WLAN_VENDOR_NXP=y
+CONFIG_MXMWIFIEX=m
diff --git a/imx8m/evk_8mq/early.init.cfg b/imx8m/evk_8mq/early.init.cfg
index 9262d953..70097a1c 100644
--- a/imx8m/evk_8mq/early.init.cfg
+++ b/imx8m/evk_8mq/early.init.cfg
@@ -1,3 +1,3 @@
insmod vendor/lib/modules/mlan.ko
-insmod vendor/lib/modules/pcie8xxx.ko sta_name=wlan uap_name=wlan wfd_name=p2p max_vir_bss=1 cfg80211_wext=0xf cal_data_cfg=none p2p_enh=1 fw_name=pcieuart8997_combo_v4.bin
+insmod vendor/lib/modules/moal.ko sta_name=wlan uap_name=wlan wfd_name=p2p max_vir_bss=1 cfg80211_wext=0xf cal_data_cfg=none fw_name=sdiouart8987_combo_v0.bin
insmod vendor/lib/modules/synaptics_dsx_i2c.ko

diff --git a/imx8m/evk_8mq/evk_8mq.mk b/imx8m/evk_8mq/evk_8mq.mk
index 7db1b212..210f8971 100644
--- a/imx8m/evk_8mq/evk_8mq.mk
+++ b/imx8m/evk_8mq/evk_8mq.mk
@@ -250,9 +250,9 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
bt_vendor.conf

-# NXP 8997 Wifi and Bluetooth Combo Firmware
+# NXP 8987 Wifi and Bluetooth Combo Firmware
PRODUCT_COPY_FILES += \
- vendor/nxp/imx-firmware/nxp/FwImage_8997/pcieuart8997_combo_v4.bin:vendor/firmware/pcieuart8997_combo_v4.bin
+ vendor/nxp/imx-firmware/nxp/FwImage_8987/sdiouart8987_combo_v0.bin:vendor/firmware/sdiouart8987_combo_v0.bin

# Wifi regulatory
PRODUCT_COPY_FILES += \

 

The patch is attached as 0001-8mq-usd-8987-wifi.patch

 

  • evk_8mq enable M.2 8987 wifi

           1. hardware rework

               hardware rework required ( Be aware: after this rework, uSD is not working!)

8mq M.2-8987 wifi rework

           2. patches

diff --git a/imx8m/evk_8mq/BoardConfig.mk b/imx8m/evk_8mq/BoardConfig.mk
index db7c4991..0cca9b8e 100644
--- a/imx8m/evk_8mq/BoardConfig.mk
+++ b/imx8m/evk_8mq/BoardConfig.mk
@@ -136,7 +136,8 @@ ifeq ($(TARGET_USE_DYNAMIC_PARTITIONS),true)
TARGET_BOARD_DTS_CONFIG ?= imx8mq:imx8mq-evk-no-product.dtb
else
# imx8mq with HDMI display
- TARGET_BOARD_DTS_CONFIG ?= imx8mq:imx8mq-evk-pcie1-m2.dtb
+ TARGET_BOARD_DTS_CONFIG ?= imx8mq:imx8mq-evk-usdhc2-m2.dtb
+
# imx8mq with MIPI-HDMI display
TARGET_BOARD_DTS_CONFIG += imx8mq-mipi:imx8mq-evk-lcdif-adv7535.dtb
# imx8mq with HDMI and MIPI-HDMI display
diff --git a/imx8m/evk_8mq/SharedBoardConfig.mk b/imx8m/evk_8mq/SharedBoardConfig.mk
index 330ab1c5..a6654bad 100644
--- a/imx8m/evk_8mq/SharedBoardConfig.mk
+++ b/imx8m/evk_8mq/SharedBoardConfig.mk
@@ -7,10 +7,10 @@ PRODUCT_IMX_TRUSTY := true
#Enable this to disable product partition build.
#IMX_NO_PRODUCT_PARTITION := true

-#NXP 8997 wifi driver module
+# NXP 8987 wifi driver module
BOARD_VENDOR_KERNEL_MODULES += \

- $(KERNEL_OUT)/drivers/net/wireless/marvell/mrvl8997/wlan_src/mlan.ko \
- $(KERNEL_OUT)/drivers/net/wireless/marvell/mrvl8997/wlan_src/pcie8xxx.ko
+ $(KERNEL_OUT)/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan.ko \
+ $(KERNEL_OUT)/drivers/net/wireless/nxp/mxm_wifiex/wlan_src/moal.ko

# mipi-panel touch driver module
BOARD_VENDOR_KERNEL_MODULES += \
diff --git a/imx8m/evk_8mq/UbootKernelBoardConfig.mk b/imx8m/evk_8mq/UbootKernelBoardConfig.mk
index 5aa1ce35..4c3378f0 100644
--- a/imx8m/evk_8mq/UbootKernelBoardConfig.mk
+++ b/imx8m/evk_8mq/UbootKernelBoardConfig.mk
@@ -14,7 +14,7 @@ endif
TARGET_BOOTLOADER_CONFIG += imx8mq-evk-uuu:imx8mq_evk_android_uuu_defconfig

TARGET_KERNEL_DEFCONFIG := imx_v8_android_defconfig
-# TARGET_KERNEL_ADDITION_DEFCONF ?= android_addition_defconfig
+TARGET_KERNEL_ADDITION_DEFCONF ?= android_addition_defconfig


# absolute path is used, not the same as relative path used in AOSP make
diff --git a/imx8m/evk_8mq/android_addition_defconfig b/imx8m/evk_8mq/android_addition_defconfig
new file mode 100644
index 00000000..f51bd5ff
--- /dev/null
+++ b/imx8m/evk_8mq/android_addition_defconfig
@@ -0,0 +1,2 @@
+CONFIG_WLAN_VENDOR_NXP=y
+CONFIG_MXMWIFIEX=m

diff --git a/imx8m/evk_8mq/early.init.cfg b/imx8m/evk_8mq/early.init.cfg
index 9262d953..70097a1c 100644
--- a/imx8m/evk_8mq/early.init.cfg
+++ b/imx8m/evk_8mq/early.init.cfg
@@ -1,3 +1,3 @@
insmod vendor/lib/modules/mlan.ko
-insmod vendor/lib/modules/pcie8xxx.ko sta_name=wlan uap_name=wlan wfd_name=p2p max_vir_bss=1 cfg80211_wext=0xf cal_data_cfg=none p2p_enh=1 fw_name=pcieuart8997_combo_v4.bin
+insmod vendor/lib/modules/moal.ko sta_name=wlan uap_name=wlan wfd_name=p2p max_vir_bss=1 cfg80211_wext=0xf cal_data_cfg=none fw_name=sdiouart8987_combo_v0.bin
insmod vendor/lib/modules/synaptics_dsx_i2c.ko
diff --git a/imx8m/evk_8mq/evk_8mq.mk b/imx8m/evk_8mq/evk_8mq.mk
index 7db1b212..210f8971 100644
--- a/imx8m/evk_8mq/evk_8mq.mk
+++ b/imx8m/evk_8mq/evk_8mq.mk
@@ -250,9 +250,9 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
bt_vendor.conf

-# NXP 8997 Wifi and Bluetooth Combo Firmware
+# NXP 8987 Wifi and Bluetooth Combo Firmware
PRODUCT_COPY_FILES += \
- vendor/nxp/imx-firmware/nxp/FwImage_8997/pcieuart8997_combo_v4.bin:vendor/firmware/pcieuart8997_combo_v4.bin
+ vendor/nxp/imx-firmware/nxp/FwImage_8987/sdiouart8987_combo_v0.bin:vendor/firmware/sdiouart8987_combo_v0.bin

The patch is attached as 0001-8mq-m2-8987-wifi.patch

Outcomes