We are developing a carrier board for CM3 and we want to have WiFi dual band on CM3. We choose a module with the marvell 88w8997. We connect the module by SDIO for WiFi. I think all is connected OK, the system automatically load the module mwifiex_sdio, but when load this module the system doesn't have the file .bin for this component. I have the next error:

[    5.831696] mwifiex_sdio mmc1:0001:1: Direct firmware load for mrvl/sd8997_uapsta.bin failed with error -2
[    5.831733] mwifiex_sdio mmc1:0001:1: Failed to get firmware mrvl/sd8997_uapsta.bin
[    5.831753] mwifiex_sdio mmc1:0001:1: info: _mwifiex_fw_dpc: unregister device

I verify the path route for the .bin of marvell drivers on

ls -l /lib/firmware/mrvl/

and the file sd8997_uapsta.bin doesn't exist. I install the lastest Raspbian versión with the last Kernel firmware, and on github repository the kernel have references for this driver, and the module try to load this file but fails because doesn't exist (https://github.com/raspberrypi/linux/tree/rpi-4.14.y/drivers/net/wireless/marvell/mwifiex)

Folder /lib/firmware/mrvl/ contains:

total 6540
-rw-r--r-- 1 root root 820212 ago 20 11:53 pcie8897_uapsta.bin
-rw-r--r-- 1 root root 583628 ago 20 11:53 pcieuart8997_combo_v4.bin
-rw-r--r-- 1 root root 589048 ago 20 11:53 pcieusb8997_combo_v4.bin
-rw-r--r-- 1 root root 259172 ago 20 11:53 sd8688.bin
-rw-r--r-- 1 root root   2616 ago 20 11:53 sd8688_helper.bin
-rw-r--r-- 1 root root 463240 ago 20 11:53 sd8787_uapsta.bin
-rw-r--r-- 1 root root 458108 ago 20 11:53 sd8797_uapsta.bin
-rw-r--r-- 1 root root 258680 ago 20 11:53 sd8801_uapsta.bin
-rw-r--r-- 1 root root 391772 ago 20 11:53 sd8887_uapsta.bin
-rw-r--r-- 1 root root 802164 ago 20 11:53 sd8897_uapsta.bin
-rw-r--r-- 1 root root 478836 ago 20 11:53 usb8766_uapsta.bin
-rw-r--r-- 1 root root 553456 ago 20 11:53 usb8797_uapsta.bin
-rw-r--r-- 1 root root 255948 ago 20 11:53 usb8801_uapsta.bin
-rw-r--r-- 1 root root 752340 ago 20 11:53 usb8897_uapsta.bin

Can I compile this .bin?? or where can i found this file??. If I can compile this .bin, how can i compile only this file without compile all the kernel??.

My raspbian version:

Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.4 (stretch)
Release:        9.4
Codename:       stretch

My kernel version:

Linux raspberrypi 4.14.94-v7+ #1193 SMP Tue Jan 22 15:34:30 GMT 2019 armv7l GNU/Linux

modinfo mwifiex_sdio:

filename:       /lib/modules/4.14.94-v7+/kernel/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
firmware:       mrvl/sd8997_uapsta.bin
firmware:       mrvl/sd8887_uapsta.bin
firmware:       mrvl/sd8897_uapsta.bin
firmware:       mrvl/sd8797_uapsta.bin
firmware:       mrvl/sd8787_uapsta.bin
firmware:       mrvl/sd8786_uapsta.bin
license:        GPL v2
version:        1.0
description:    Marvell WiFi-Ex SDIO Driver version 1.0
author:         Marvell International Ltd.
srcversion:     A7D719B9B3E7392051E0DB1
alias:          sdio:c*v02DFd9141*
alias:          sdio:c*v02DFd9139*
alias:          sdio:c*v02DFd9135*
alias:          sdio:c*v02DFd912D*
alias:          sdio:c*v02DFd9129*
alias:          sdio:c*v02DFd9119*
alias:          sdio:c*v02DFd9116*
depends:        mwifiex
intree:         Y
name:           mwifiex_sdio
vermagic:       4.14.94-v7+ SMP mod_unload modversions ARMv7 p2v8

file /sys/kernel/debug/mmc1/ios (I understand if SDIO is running, all with hardware is ok):

clock:          50000000 Hz
actual clock:   41666667 Hz
vdd:            21 (3.3 ~ 3.4 V)
bus mode:       2 (push-pull)
chip select:    0 (don't care)
power mode:     2 (on)
bus width:      2 (4 bits)
timing spec:    2 (sd high-speed)
signal voltage: 0 (3.30 V)
driver type:    0 (driver type B)

Can anyone help to me??. Thanks in advance.

Best Regards.


The openwrt package downloads firmware from here:


see also:




| improve this answer | |
  • I don't see sd8997_uapsta.bin in there. – Dmitry Grigoryev Feb 8 '19 at 10:17
  • We're looking for long answers that provide some explanation and context. Don't just give a one-line answer with some links; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed or you risk to get down votes. – Ingo Feb 11 '19 at 20:45
  • I am using the driver "sdsd8997_combo_v4.bin" for the device, but I need to rename the file from "sdsd8997_combo_v4.bin" to "sd8997_uapsta.bin". I don't know why marvell in the kernel mainline driver calls to "sd8997_uapsta.bin" ("github.com/raspberrypi/linux/blob/rpi-4.14.y/drivers/net/…" Line 39) when in the firmware the driver has the name "sdsd8997_combo_v4.bin". But if i rename it works. – Redhunt Feb 13 '19 at 17:02
  1. get the actual firmware from here: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/mrvl/sdsd8997_combo_v4.bin

  2. rename the above firmware to sd8997_uapsta.bin and place it in /lib/firmware/mrvl folder

  3. re-connect the SDIO module.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.