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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 27 Nov 2014 15:06:20 +0100
From:	Pali Rohár <pali.rohar@...il.com>
To:	"John W. Linville" <linville@...driver.com>,
	Grazvydas Ignotas <notasas@...il.com>,
	linux-wireless@...r.kernel.org, netdev@...r.kernel.org,
	linux-kernel@...r.kernel.org, Ming Lei <ming.lei@...onical.com>,
	"Greg Kroah-Hartman" <gregkh@...uxfoundation.org>
Cc:	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: wl1251: NVS firmware data

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?

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.

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.

-- 
Pali Rohár
pali.rohar@...il.com

Download attachment "signature.asc " of type "application/pgp-signature" (199 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ