looking for Kernel driver for 88W9098 device

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

looking for Kernel driver for 88W9098 device

Jump to solution
642 Views
JasonC007
Contributor I

I'm looking for a Kernel driver for 88W9098 wifi device.

Please correct me if my understanding is not correct.

I'm using Kernel-5.15.15 for my project and it seems this Kernel does not include the driver. I think the driver code is in /drivers/net/wireless/nxp directory. I found https://github.com/atmark-techno/linux-5.10-at/branches and the master branch of this repo includes this directory.

But when I build with enabled NXP devices, NXP mwifiex fork options, it failed.

Would someone please give me some idea where I can start?

 

 

0 Kudos
1 Solution
614 Views
ocourson
NXP TechSupport
NXP TechSupport

Dear @JasonC007 

 

Unfortunately NXP does not upstream recent chipsets driver/firmware to the Linux kernel mainline for now.

We release our Wifi/BT chipsets software using github:

 

1/ Getting NXP Wifi/BT driver and firmware

- You can get NXP Wfi/BT driver from:
git clone http://github.com/nxp-imx/mwifiex.git
git checkout lf-6.1.36-2.1.0

The driver code supports Linux kernel from 2.6.32 to 6.3.0.

- And NXP Wifi/BT firmware:
git clone https://github.com/NXP/imx-firmware
git checkout lf-6.1.36-2.1.0

88W9098 chipset firmware is:

- imx-firmware/nxp/FwImage_9088_PCIE/pcieuart9098_combo_v1.bin if using PCIE interface for Wifi and UART for BT

- imx-firmware/nxp/FwImage_9088_SD/sdiouart9098_combo_v1.bin if using SDIO interface for Wifi and UART for BT

We advise you to use latest driver/firmware version (lf-6.1.36-2.1.0 tag) as is includes additionnal features and latest bug fixes.


2/ Cross compiling the driver

You will need to setup the cross compiler for your host processor, then
cd mwifiex/mxm_wifiex/wlan_src && make KERNELDIR=<PATH TO KERNEL SOUCES> build
The driver is composed in two kernel modules moal.ko and mlan.ko, located in mwifiex/mxm_wifiex/bin_wlan

3/ Copy driver and firmware to the target

Driver: copy mwifiex/mxm_wifiex/bin_wlan content to your target (.ko file in usual location, the other files in /lib/firmware/nxp/ directory)
Firmware: copy imx-firmware/nxp/FwImage_9088_PCIE/pcieuart9098_combo_v1.bin to your target, usually /lib/firmware/nxp/ directory

4/ Starting Wifi driver

Refer to README_MLAN for explanations
Driver is started by insmod'ing moal.ko (has dependancy to mlan.ko)
There are two ways to specify the drivers parameters:
• Using wifi_mod_para.conf file content to provide driver options:

modprobe moal mod_para=nxp/wifi_mod_para.conf
moal.ko driver will get its parameters from the wifi_mod_para.conf file, automatically load mlan.ko dependency and start downloading the firmware
• Manually specifying driver options
In that case, you can use this kind of command:

modprobe moal fw_name=nxp/pcieuart9098_combo_v1.bin cfg80211_wext=0xf cal_data_cfg=none

Once firmware is loaded, ifconfig -a should show new network interfaces (by default mlan0 for STA mode and uap0 for AP mode). As 88W9098 as 2 MACs:

- mlan0 corresponds to the first STA interface

- mmlan0 corresponds to the second STA interface

- uap0 corresponds to the first AP interface

- muap0 corresponds to the second AP interface


You can use wpa_supplicant to use 88W9098 in STA mode and connect to an access point:

ifconfig mlan0 up
wpa_passphrase SSID SSID_PASSWD >> /etc/wpa_supplicant.conf
wpa_supplicant -B -i mlan0 -c /etc/wpa_supplicant.conf (-Dnl80211)

Or hostapd to use 88W9098 as an access point:

ifconfig uap0 192.168.1.2 netmask 255.255.255.0 up

hostapd /etc/hostapd.conf -B

 

Regards,

Olivier

View solution in original post

0 Kudos
1 Reply
615 Views
ocourson
NXP TechSupport
NXP TechSupport

Dear @JasonC007 

 

Unfortunately NXP does not upstream recent chipsets driver/firmware to the Linux kernel mainline for now.

We release our Wifi/BT chipsets software using github:

 

1/ Getting NXP Wifi/BT driver and firmware

- You can get NXP Wfi/BT driver from:
git clone http://github.com/nxp-imx/mwifiex.git
git checkout lf-6.1.36-2.1.0

The driver code supports Linux kernel from 2.6.32 to 6.3.0.

- And NXP Wifi/BT firmware:
git clone https://github.com/NXP/imx-firmware
git checkout lf-6.1.36-2.1.0

88W9098 chipset firmware is:

- imx-firmware/nxp/FwImage_9088_PCIE/pcieuart9098_combo_v1.bin if using PCIE interface for Wifi and UART for BT

- imx-firmware/nxp/FwImage_9088_SD/sdiouart9098_combo_v1.bin if using SDIO interface for Wifi and UART for BT

We advise you to use latest driver/firmware version (lf-6.1.36-2.1.0 tag) as is includes additionnal features and latest bug fixes.


2/ Cross compiling the driver

You will need to setup the cross compiler for your host processor, then
cd mwifiex/mxm_wifiex/wlan_src && make KERNELDIR=<PATH TO KERNEL SOUCES> build
The driver is composed in two kernel modules moal.ko and mlan.ko, located in mwifiex/mxm_wifiex/bin_wlan

3/ Copy driver and firmware to the target

Driver: copy mwifiex/mxm_wifiex/bin_wlan content to your target (.ko file in usual location, the other files in /lib/firmware/nxp/ directory)
Firmware: copy imx-firmware/nxp/FwImage_9088_PCIE/pcieuart9098_combo_v1.bin to your target, usually /lib/firmware/nxp/ directory

4/ Starting Wifi driver

Refer to README_MLAN for explanations
Driver is started by insmod'ing moal.ko (has dependancy to mlan.ko)
There are two ways to specify the drivers parameters:
• Using wifi_mod_para.conf file content to provide driver options:

modprobe moal mod_para=nxp/wifi_mod_para.conf
moal.ko driver will get its parameters from the wifi_mod_para.conf file, automatically load mlan.ko dependency and start downloading the firmware
• Manually specifying driver options
In that case, you can use this kind of command:

modprobe moal fw_name=nxp/pcieuart9098_combo_v1.bin cfg80211_wext=0xf cal_data_cfg=none

Once firmware is loaded, ifconfig -a should show new network interfaces (by default mlan0 for STA mode and uap0 for AP mode). As 88W9098 as 2 MACs:

- mlan0 corresponds to the first STA interface

- mmlan0 corresponds to the second STA interface

- uap0 corresponds to the first AP interface

- muap0 corresponds to the second AP interface


You can use wpa_supplicant to use 88W9098 in STA mode and connect to an access point:

ifconfig mlan0 up
wpa_passphrase SSID SSID_PASSWD >> /etc/wpa_supplicant.conf
wpa_supplicant -B -i mlan0 -c /etc/wpa_supplicant.conf (-Dnl80211)

Or hostapd to use 88W9098 as an access point:

ifconfig uap0 192.168.1.2 netmask 255.255.255.0 up

hostapd /etc/hostapd.conf -B

 

Regards,

Olivier

0 Kudos