Overview
The purpose of this doument is to introduce how to enable PCIe WiFi into i.MX6 Android release.
Environment Setup
- Hardware: i.MX6 SABRE-SD board
- Software: Android Jelly Bean 4.2
Software Configurations
The source codes of Intel PCIe WiFi have been integrated for i.MX6 SABRE-SD board into i.MX6 Android release. However it's disabled by default. To enable it for i.MX6 SABRE-SD board, you can do the following:
- Change BOARD_WLAN_VENDOR to INTEL in device/fsl board configuration files. For example,
diff --git a/sabresd_6dq/BoardConfig.mk b/sabresd_6dq/BoardConfig.mk
index 9c8a32d..912e752 100755
--- a/sabresd_6dq/BoardConfig.mk
+++ b/sabresd_6dq/BoardConfig.mk
@@ -11,7 +11,7 @@ TARGET_BOOTLOADER_BOARD_NAME := SABRESD
PRODUCT_MODEL := SABRESD-MX6DQ
# Wifi
-BOARD_WLAN_VENDOR := ATHEROS
+BOARD_WLAN_VENDOR := INTEL
# for atheros vendor
ifeq ($(BOARD_WLAN_VENDOR),ATHEROS)
BOARD_WLAN_DEVICE := ar6003
@@ -30,6 +30,7 @@ WIFI_COMPAT_MODULE_ARG := ""
endif
#for intel vendor
ifeq ($(BOARD_WLAN_VENDOR),INTEL)
+BOARD_WLAN_DEVICE := INTEL
BOARD_HOSTAPD_PRIVATE_LIB ?= private_lib_driver_cmd
BOARD_WPA_SUPPLICANT_PRIVATE_LIB ?= private_lib_driver_cmd
WPA_SUPPLICANT_VERSION := VER_0_8_X
- After changing BOARD_WLAN_VENDOR as "INTEL", the following files will be compiled for intel WiFi:
- device/fsl-proprietary/pcie-wifi/
- external/wpa_supplicant_8
- hardware/imx/wlan/intel/
- hardware/libhardware_legacy/wifi/wifi_intel.c
- Enable PCIe WiFi driver in kernel_imx by running "make menuconfig" command:
- Select "System Type -> Freescale MXC Implementations -> PCI Express support" as "*"
- Select "Networking support -> Wireless -> cfg80211 - wireless configuration API" as "*". Then select "Networking support -> Wireless -> Generic IEEE 802.11 Networking Stack (mac80211)" as "*"
- Select "Device Drivers -> Network device support -> Wireless LAN -> Intel Wireless WiFi 4965AGN (iwl4965)" as "*"
- Then run "make" command to build kernel.
- The followings are the dependencies files to enable above configuration:
Kernel configuration:
* -> System Type
-> Freescale MXC Implementations
Select the PCI Express support.
Then config intel WIFI driver:
Generic IEEE 802.11 Networking Stack (mac80211) used by WIFI devices
Symbol: MAC80211 [=y]
Type : tristate
Prompt: Generic IEEE 802.11 Networking Stack (mac80211)
Defined at net/mac80211/Kconfig:1
Depends on: NET [=y] && WIRELESS [=y] && CFG80211 [=y]
Location:
-> Networking support (NET [=y])
-> Wireless (WIRELESS [=y])
Intel iwl4965 or iwl6300 card driver
Symbol: IWL4965 [=y]
Type : tristate
Prompt: Intel Wireless WiFi 4965AGN (iwl4965)
Defined at drivers/net/wireless/iwlegacy/Kconfig:65
Depends on: NETDEVICES [=y] && WLAN [=y] && PCI [=y] && MAC80211 [=y]
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
- Then you can follow up the instructions into Android User guide to build Android image.
Known Limitation
- PCIe low power mode is not supported according to BSP release note. So when building in PCIe, the system suspend/resume should be disabled now.