cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
1,661 Views
Registered: ‎06-19-2015

WILC1000 SD Driver in Petalinux

Jump to solution

Hi,

 

I am trying to use SDIO based Wi-Fi module (Microchip's WILC1000 SD) connected in SDIO slot of Zedboard. Petalinux Version 2017.4

 

I have enabled WILC1000 WiFi only driver (in, Drivers --> Staging --> WILC1000 for SDIO interface).

I have enabled the "in-kernel firmware" aslo (wilc1000_ap_fw.bin wilc1000_fw.bin and wilc1000_p2p_fw.bin).

 

But still the firmware is not loading. When try to up the wlan0 interface, am getting following error.

 

root@sdio_wifi:~# ifconfig wlan0 up
wilc1000_sdio mmc0:0001:1: chipid (001003a0)
wilc1000_sdio mmc0:0001:1: has_thrpt_enh3 = 1...
wilc1000_sdio mmc0:0001:1 wlan0: loading firmware atmel/wilc1003_firmware.bin
wilc1000_sdio mmc0:0001:1: Direct firmware load for atmel/wilc1003_firmware.bin failed with error -2
wilc1000_sdio mmc0:0001:1 wlan0: atmel/wilc1003_firmware.bin - firmware not available
wilc1000_sdio mmc0:0001:1: wilc_sdio_disable_interrupt OUT
wilc1000_sdio mmc0:0001:1 wlan0: WLAN Iinitialization FAILED
wilc1000_sdio mmc0:0001:1 wlan0: Failed to set driver handler
wilc1000_sdio mmc0:0001:1 wlan0: [Host Interface] undefined
ifconfig: SIOCSIFFLAGS: Input/output error
root@sdio_wifi:~#

But i couldn't find wilc1003_firmware.bin file anywhere, except these three --> wilc1000_ap_fw.bin, wilc1000_fw.bin and wilc1000_p2p_fw.bin.

 

Please suggest me the solution to resolve it.

 

Thanks

Madhu

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
1,932 Views
Registered: ‎04-24-2017

Hi @madhu.mami60,

 

Refer porting guide and then install the wifi firmware.bin to /lib/firmware.

 

If you are using petalinux then create a recipe to copy the firmware to rootfs.

 

DESCRIPTION = "Firmware binaries for use with Microchip ATWILC1003"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = " \
    file://wilc3000_wifi_firmware.bin \
    "

S = "${WORKDIR}"

PROVIDES += "wilc3000-firmware"
RPROVIDES_${PN} += "wilc3000-firmware"

do_install() {
    install -d ${D}${base_libdir}/firmware
    cp -a --no-preserve=ownership ${S}/wilc3000_wifi_firmware.bin ${D}${base_libdir}/firmware/
}

FILES_${PN} = "${base_libdir}/firmware/*"

# Inhibit warnings about files being stripped
INSANE_SKIP_${PN} = "ldflags"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"

# These libraries shouldn't get installed in world builds unless something
# explicitly depends upon them.
EXCLUDE_FROM_WORLD = "1"
Thanks,
Sandeep
PetaLinux Yocto | Embedded SW Support

---------------------------------------------------------------------------
Don’t forget to Reply, Kudo, and Accept as Solution.
---------------------------------------------------------------------------

View solution in original post

3 Replies
Highlighted
Explorer
Explorer
1,587 Views
Registered: ‎06-19-2015

Hi @demarco@hbucher@avrumw@avrumw2@jmcclusk @howardp @u4223374 

 

Pls give help for my previous post...

 

Thanks

Madhu

0 Kudos
Highlighted
Voyager
Voyager
1,581 Views
Registered: ‎09-14-2016

Hi @madhu.mami60,

 

Maybe you can load manually the firmware here: https://github.com/linux4wilc/firmware

 

If you are able to make the module work, you can add a custom recipe to deploy it inside your rootfs :)

 

Cheers,

Trigger

 

Highlighted
Moderator
Moderator
1,933 Views
Registered: ‎04-24-2017

Hi @madhu.mami60,

 

Refer porting guide and then install the wifi firmware.bin to /lib/firmware.

 

If you are using petalinux then create a recipe to copy the firmware to rootfs.

 

DESCRIPTION = "Firmware binaries for use with Microchip ATWILC1003"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

SRC_URI = " \
    file://wilc3000_wifi_firmware.bin \
    "

S = "${WORKDIR}"

PROVIDES += "wilc3000-firmware"
RPROVIDES_${PN} += "wilc3000-firmware"

do_install() {
    install -d ${D}${base_libdir}/firmware
    cp -a --no-preserve=ownership ${S}/wilc3000_wifi_firmware.bin ${D}${base_libdir}/firmware/
}

FILES_${PN} = "${base_libdir}/firmware/*"

# Inhibit warnings about files being stripped
INSANE_SKIP_${PN} = "ldflags"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"

# These libraries shouldn't get installed in world builds unless something
# explicitly depends upon them.
EXCLUDE_FROM_WORLD = "1"
Thanks,
Sandeep
PetaLinux Yocto | Embedded SW Support

---------------------------------------------------------------------------
Don’t forget to Reply, Kudo, and Accept as Solution.
---------------------------------------------------------------------------

View solution in original post