The WFx FMAC driver is a software resource meant to allow a host to communicate with the WFx Wi-Fi transceiver. The API exposed by the driver gives control over the WFx Wi-Fi capabilities. In addition, the API enables data transfer at the IP level. This means that the host requires an IP stack if it wants to send/receive Ethernet frames.
The Silicon Labs WF200 is an Ultra Low Power Wi-Fi transceiver or networkco-processor (NCP) targeted for applications where optimal RF performance,low-power consumption, and secure end-to-end solution, together with fast timeto market, are key requirements. The WF200 integrates the Balun, T/R switch, LNA,and PA for best possible RF performance. The WF200 has been optimized for resourceand power-constrained devices at the RF, protocol, and firmware levels.
The Silicon Labs Wi-Fi Full-MAC (FMAC) driver is used as an interface for SiliconLabs WLAN WF200 parts and associated modules (WFM200, WGM160P). The Wi-Fi FMAC driverenables communication with Silicon Labs Wi-Fi Network Co-Processor using the full-MAClayer interface.
You can try using an SDCARD, just to test, that the SDIO driver it is working correctly. And then we can move into the WLAN driver. Or you can measure with an oscilloscope to see if there is activity in the port at least in the clock when send the first commands .
During the Initialization and Configuration phase, the host has to send a signed and encrypted firmware to the WF200. In the FMAC driver, the firmware information is provided by the host through the following functions:
Depending on the host implementation, the firmware can be stored in different formats. For example, it can be stored in a simple C array or be part of a more complex file system. The firmware download phase is handled through the sl_wfx_download_run_firmware() function. The latest WF200 firmware can be found on a public GitHub repository .
We are using an AM4372-based custom design with a Silicon Labs WFM200 WiFi module connected via MMC3 as SDIO. The module is not being detected by Linux as SDIO device and so we are trying to understand what is going wrong. From an electrical and pin connections point everything seems to be fine.
The WFM200 module has a bit of a tricky way to enter SDIO mode (by default it is in SPI mode) and, to exclude this as a potential reason for our problems, we would like to do enhanced testing with the reset and delay pins of the module from the Linux prompt.
* I cannot support Silicon Labs parts or software on this forum. I can take a look at the MMC portion of your question, but you may need to reach out to Silicon Labs for assistance on how to get their part working with a Linux system.
I do not see "silabs,wfx-sdio" in AM437x Linux Processor SDK 6.3 drivers/ or Documentation/devicetree/bindings/ so I am guessing the driver was not upstreamed for Linux 4.19? I am not sure how Silicon Labs distributes their software or documents it.
By checking arch/arm/boot/dts/am4372.dtsi we see device tree mmc3 --> 0x4781_0000. By checking the AM437x Technical Reference Manual (TRM) Memory Map, that is associated with MMCSD2. Is there a reason your device tree pinmuxing is for mmc0_xxx instead of mmc2_xxx?
I fully understand that you cannot support a competitor's product but we need to start somewhere and so I prefer to start with the hardware which we are not going to change and then to move on to see if the additional part is working or if we need to replace it in our design.
In our design we have mmc1 which is the on-board eMMC, mmc2 which is for the SD card and mmc3 which is supposed to be the SDIO for the WiFi. I have attached the dts file (renamed to match your upload filter) for full reference. However you are correct, we have named peripheral MMC0 as mmc1 and so on. In any case, the first 2 mmcs are working fine.
The SiLabs driver is not part of the standard Linux kernel. You need to build it manually and then add it as a module. In any case, please correct me if my understanding is wrong, even if there was no driver at all, the SDIO controller of the connected device should be detected as such and only if this happens, then we need to care about driver and driver settings. If this is correct, then - at least for the moment it does not matter if I have a WFM200 or for example a WL1805 connected.
In general, does your SDIO driver only detect new SDIO devices once at boot time or - similar to an mmc card - at any time they are connected? If only once, is there a command to force the driver to scan the SDIO bus again once Linux it up?
First of all I have started with the tutorial to build image using open embedded (core). I did all the settings and finally used bitbake angstrom-lxde-image to build the image. The built image working well.
Now I want to add Wireless drivers to support PCIe atheros WiFi cards.
I used bitbake -c menueconfig virtual/kernel to change the config of the kernel. Then added the all device drivers I need. And then saved the config file and used bitbake virtual/kernel to build new kernel based on the new config. After that I used again bitbake angstrom-lxde-image to build new image.
After flashing new image I used connmanctl enable wifi to activate wifi but it shows "net.conmanctl.Technology" doesn't exist.. Even in ifconfig output I can not see Wlan0.
Should I add something, more in kernel more than ath9k driver to activate WiFi?
I am trying to do a similar procedure for a Altera SoC where in I want to interface TP-Link TL-WN722N wifi dongle. The option (Atheros/Qualcomm)is enabled in make menuconfig .
When I plug in the device in the Altera SoC, I am able to see the device ID and name with the dmesg command. Howeer, I observe the following errors as well:
can anyone please explain me the steps to add the driver. I am trying to interface the wifi dongle with cyclone v processor and unfortunately the drivers are not present in /lib/modules/../kernel/drivers/net/.
I have also enabled the appropriate ath9k_htc option in the make menuconfig option.
The firmware is present in the folder /lib/firmware . However when I plug in, I observe the following error:
SO the issue currently is with the firmware. The USB dongle somehow does not seem to find the firmware. There was no folder named firmware in /lib/so I created manually a new folder named firmware and placed the firmware fileshtc_7010.fwandhtc_9271.fwin there. But the usb tried to search forath9k_htc/htc_9271-1.4.0.fwin the first try and thenhtc_9271.fw. My question is now that is the path/lib/firmware` correct for placing the firmware files there for the Angstrom, or should they b placed at some other path?
can anyone please explain me the steps to add the driver. I am trying to interface the wifi dongle with cyclone v processor and unfortunately the drivers are not present in /lib/modules/../kernel/net/.
I have also enabled the appropriate ath9k_htc option in the make menuconfig option. The firmware is present in the folder lib/firmware . However when I plug in, I observe the following error: