Support for WAVE 300 Wi-Fi chip

Retdec decompiler (probably with radare2) can be used to decompile rflib object archive. And the output could be correlated with the existing source code of the older rflib.

Yeah, we can see if it's the same one or not, and possibly use the actual sources in place of the pre-compiled one.

I dug into the sources @pc2005 found.

Here is what I found with regard to the version on my repo based on lq-wave-300-03.2.1.1.48 vs lq-wave-300-03.02.03.01.25:

  1. Rflib has been separated and is provided pre-compiled
  2. mtlk_pci_drv.c has been reimplemented as mtlk_mmb_drv.c and relicensed as GPL
  3. mtlkroot.c remains proprietary
  4. Procfs is not up-ported, patches from Mandrake and I need to be re-implemented
  5. Generic Netlink is not up-ported, my fixes should be re-implemented

Note:

  1. These "patches" are in the master trunk of my github repo with regards to the first commit.
  2. They may be filled with vicious bugs :smiley:

Tasks:

  1. Create a new repo with "virgin" sources in it. Please take care to use a *nix-y file system so as to avoid trampling on permissions of files when unzipping the files.
  2. Re-implement generic netlink patches from my repo onto newer driver.
  3. Re-implement procfs patches from my repo onto newer driver
  4. Check if lq-wave-300-03.2.1.1.48 rflib builds in place of binary version
  5. Try to build

Good luck to all!

Hi there,

This is Mandrake; I've been checking every now and then if there was any progress with these wave300 drivers that Vittorio and I spent so many hours with.

Although there's no big step forwards, it's nice to see that people like you are still fighting to bring it up.

In my opinion it is pointless to continue with the v03 of the sources. It's way behind the current linux kernel and it needs a lot of knowledge that I simply don't have and I guess that will be the same for most of the people here.

We should focus onto hunting more recent sources. The good news is that we might have some clues.

  • In the following link01, there's a trace of some sources that not odd enough resembles to a v05 of the driver
  • Checking the chinese forum, It seems that there's a tarball called "UGW 7.1" with the sources
  • Doing some hard googling, I found the following link02 in a chinese server but unfortunately I couldn't manage to download what's inside

If somebody could support, it would be very appreciated.

1 Like

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.