Support for WAVE 300 Wi-Fi chip

Thanks! I was trying to find UGW sources earlier, but some versions lead to a dead-end. With your exact string for search I found this website. There is downloadable image.

I will inspect the tarball, but I wouldn't be surprised if the versions are mapped: v3 - wave300, v4 - wave400, v5 - wave500.

Yeah I was thinking to use the original sources just for a specification how to communicate with the firmware and write a correct kernel driver.

edit: yeah there is GPL source for the driver and even sources of rflib

you need a baidu account, and to use baidu netdisk i think you need a chinese phone number to register

I think someone would probably be from China in this community. So they may be ale to help in this case.

True story, I tried whatever I could to turn on the WAVE300 in my TpLink TD-W8980 but every time it gave a kernel panic and nothing further.

Hmm the v5 sources doesn't have GRX288 target platform and it seems they need to be integrated into ugw build system. Most supporting functions are same as v3, but there are big changes in driver and rflib parts. It seems there is many patches for hostapd and new code for kernel (?) cfg80211. There is direct code path support (but it needs ugw kernel PPA drivers).

AMAZING!

I'm gonna need a lot of free time to digest this information but this looks pretty promising.

Intel® Universal Gateway Software (UGW) Releases

So I looked inside the UGW 7.1.1 sources and there appears to be a prepare script which prepares everything for the build process including downloading the entire OpenWrt toolchain v15.05 and probably some other sources. I did run the script but I didn't want to download the toolchain so I just stopped it.

Now my understanding is that maybe we can point the script to use the already downloaded toolchain that one may have. It's also notable that there are some patches involved, but I'm not sure how to apply them because noob. But I think someone else with better understanding can look inside and make the process a little easier for everyone because currently it's for kernel 3.10 and we're at v4.14.

Edit: So me being noob, I decided to change the script a little and tried to compile it but it throws errors. I think there needs to be some changes so make it compatible.

Also I am not able to insmod the mtlk~.ko files in my router as is.

ltq-wlan-wave_5_x support for wave400 and wave500,support for kernel 3.10 3.12 3.19,latest sdk uses 4.9.x kernel,wave500 and wave600 will get support
forget it,you need ugw6.1 and openwrt cc

Where can we get UGW 6.1? I have tried googling for it but so far nothing.

Edit: I was comparing WAVE300 from @vittorio88 with the driver found in WLAN_SW_Package/dl/*47*src.tar.bz2, along with the rflib of the same. It seems to me that both of them contain the same files mostly, later has the updated ones of course. So is it possible to merge these together in a way so that we only have newer files and we can build it easily as we can build the WAVE300 from @vittorio88. I understand that the devs had to recreate the makefiles maybe so they can build the drivers, so maybe something like that can be done wit the new drivers. I have also seen the release notes and WAVE300 gets mentioned till v5.0.1.1. Also there is a long list of ProgModel* files in there.

source of version 3.4.2 in Dlink DWR-966
https://tsd.dlink.com.tw/downloads2008detailgo.asp
or

1 Like

Nice, it seems to be even a newer version than in my modem. Sadly only binary rflib and only xrx300 platform. I don't know if it is only a specific build name or it correlates with wave300/400/500 etc. There is a support for wave300 in the gpl tarball, there is PCI device ID 0x700 and some code dependent on it.

In v5 tarballs there is not 0x700 device ID :frowning: . But the code could be still usefull as there was an intersection of supported wave models in various UGW. So there is a high chance of firmware ABI/API compatibility.

Very interesting.

Looking at this presentation, it seems we're doing their job if we integrate Lantiq into Openwrt mainstream... and for free! :grinning:

At least Intel could release some technical reference manuals, then we wouldn't need to excavate these old drivers. :confused:

That is impossible,they don't have anyone plan for open driver

deleted :grin:

1 Like

So I had a peek inside the UGW 6.1 files provided by @paldier and it seems it's ancient OpenWrt. There's a version file in it which says 12.09_ltq and also the feeds.conf.default file have some lines starting with src-svn. I cant seem to make menuconfig or make because it fails and I think there is only one target available i.e, Lantiq. Maybe someone else can look at this and see if this can be adapted to current versions.

Edit: One thing that I failed to mention is that there is a lot of information available in it in the form of documentation as a Web page which is available offline.

lq-wave-300-03.05.00.00.53.a2676e338c1e.rflib.wls.src.tar.bz2
lq-wave-300-03.05.00.00.53.a2676e338c1e.gpl.wls.src.tar.bz2

I was able to compile 3.05 version, but it fails during initialization (something with magic value return). I'm using 3.4.2 (i think) firmware.

edit: both modules seems to be licensed as GPL (it can be a build system specific though). There is a version number in sta_upper, ap_upper and contr_lm. This means we need an updated firmware too. Progmodel binary is selected by autodetected chip revision. The newest firmware I have is from tplink TD-W9980B(DE)_150519:

version number: FW_3.4.2_r3444

or maybe archer VR200 (the rxxx versions are pretty chaotic, it seems it resets from time to time):

3.4.2.40.05_NoPsTxCancel_r4005

(↑ this will be written to dmesg log)

As I was afraid there needs to be a match between driver version and firmware version. 3.5 driver expects some structure to have 5 uints and magic number and 3.4 firmware returns only 4 uints and a magic number. This can be probably backported from various pre 3.5 sources, but still the firmware is not the newest and it would be nice to have it updated. Also the newest sta_upper I have is only FW_3.2.1_r5437 it seems either STA mode (wave300 is connecting to another AP) was obsoleted (only in oldest tplink firmwares) or merged into AP mode. With ap=1 parameter the sta_upper is not required (and viceversa). If you have wave300 device (I've checked tplink W9980, W8980, VR200 and netgear D6100), try to obtain the wifi firmware from /lib/firmware and check if there is a newer version.

edit2: hmm I fixed some kernel anachronisms, but it seems the 3.5 driver has a different message ID for communication with (nonpresent by now) 3.5 firmware, so the v3.4 firmware cannot be used. I will probably use 3.4 branch.

The phinechomm download not work, to decompress say inespected end of file

Hmm I remember decompresor said something similar too, but the driver is fine, all the important data was received. My copy is little over 1.1 GB (decimal).