Re: wl1251 & mac address & calibration data
From: Pali Rohár <hidden>
Date: 2016-12-20 17:06:39
Also in:
lkml, netdev
On Tuesday 20 December 2016 17:56:58 Tony Lindgren wrote:
* Kalle Valo [off-list ref] [161220 03:47]:quoted
Arend Van Spriel [off-list ref] writes:quoted
On 18-12-2016 13:09, Pali Rohár wrote:quoted
File wl1251-nvs.bin is provided by linux-firmware package and contains default data which should be overriden by model specific calibrated data.Ah. Someone thought it was a good idea to provide the "one ring to rule them all". Nice.Yes, that was a bad idea. wl1251-nvs.bin in linux-firmware.git should be renamed to wl1251-nvs.bin.example, or something like that, as it should be only installed to a real system only if there's no real calibration data available (only for developers to use, not real users).Makes sense to me. Note that with the recent changes to wlcore, we can now easily provide board specific calibration firmware simply by adding a new compatible value. So for n900, we could have something like compatible = "ti,wl1251-n900" and have it point to n900 specific calibration file wl1251-nvs-n900.bin. Of course this won't help with the mac address, or any of the device specific data.. That is assuming the calibration values are the same for each similar device and don't have to be generated for each device. And naturally wl1251 needs simlar changes done to make use of devices specific calibration files. Regards, Tony
As wrote in another thread "wl1251 NVS calibration data format" calibration data for wl1251 (wl1251-nvs.bin) contains also MAC address, which kernel sends to wl1251 chip. Kernel just do not use it. So... my idea now is: 1) extend request_firmware function family with ability to use userspace helper first and fallback to VFS 2) teach wl1251.ko to parse MAC address from wl1251-nvs.bin and use it (in case it is not empty or 00:00:20:07:03:09 which is in that example linux-firmware package) 3) write Nokia n900 specific userspace helper for providing data when kernel requests wl1251-nvs.bin. So userspace helper reads MAC address and calibration data from CAL, place MAC address into calibration data and send put it into kernel. Are you OK with this idea? -- Pali Rohár pali.rohar@gmail.com
Attachments
- signature.asc [application/pgp-signature] 198 bytes