lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 27 Nov 2014 22:21:44 +0800 From: Ming Lei <ming.lei@...onical.com> To: Pali Rohár <pali.rohar@...il.com> Cc: "John W. Linville" <linville@...driver.com>, Grazvydas Ignotas <notasas@...il.com>, "linux-wireless@...r.kernel.org" <linux-wireless@...r.kernel.org>, Network Development <netdev@...r.kernel.org>, Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Pavel Machek <pavel@....cz>, Ivaylo Dimitrov <ivo.g.dimitrov.75@...il.com>, Aaro Koskinen <aaro.koskinen@....fi>, Kalle Valo <kvalo@...rom.com>, Sebastian Reichel <sre@...g0.de>, David Gnedt <david.gnedt@...izone.at> Subject: Re: wl1251: NVS firmware data On Thu, Nov 27, 2014 at 10:06 PM, Pali Rohár <pali.rohar@...il.com> wrote: > Hello, > > wifi driver wl1251 needs NVS calibration data for working. These > data are loaded by driver via request_firmware from userspace > file: ti-connectivity/wl1251-nvs.bin. In linux-fimrware git tree > there is generic wl1251-nvs.bin file which is used by default. > > Driver wl1251 is used on Nokia N900 cellphone for its wifi chip. > This cellphone has one special MTD partition (called CAL) where > are stored some configuration data in special binary (key-value) > format. And there is also stored correct calibration data for > specific device (each device has different data). It is preferred > to use those data instead generic one (provided by linux-firmware > git tree). > > Now my question is: How to correctly load calibration data from > special Nokia N900 CAL partition into wl1251 kernel driver? It is better to let user space script handle the request. > > By default kernel reads ti-connectivity/wl1251-nvs.bin file from > VFS if exists without any userspace support. If it fails then it > fallback to loading via udev. You can remove or rename this file so that loading from user space can be triggered. > > Reading correct data from CAL partition is not easy (structure is > difficult), but there is open source program which can parse CAL > partition and write NVS data to stdout. So adding this CAL parser > into kernel is not good idea (program is GPLv3+ code -- > incompatible with kernel). > > So how to solve this problem? How to load correct NVS data from > CAL partition into wl1251 driver? > > It is possible to tell kernel to use some helper userspace > program for loading data and if it fails then fallback to direct > loading? E.g first try to use model specific data and if it fails > for some reasons then fallback to reading genetic data. One solution is to introduce request_firmware_user() and let this API handle your case, but CONFIG_FW_LOADER_USER_HELPER has to be enabled. If request_firmware_user() fails, request_firmware_direct() can be tried further. Thanks, Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists