Commit Graph

26 Commits

Author SHA1 Message Date
Isaac Hermida fbe6481cd3 kernel-module-qualcomm: add lock file to avoid endless call to script in failure
Add a lock file to avoid to call the file continuously if the initial probe
failed.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-06-27 11:18:11 +02:00
Isaac Hermida c30b947408 kernel-module-qualcomm: add script to load the wlan module
In rare cases, the wlan module may fail to load. In this scenario, forcing the
MMC driver to rebind the interface resolves the issue, making the WLAN module
load more reliably.
This only affects to modules where the qca chip is connected through the
MMC interface.

https://onedigi.atlassian.net/browse/DEL-8361

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-03-22 10:46:19 +01:00
Javier Viguera f3fb6e6342 kernel-module-qualcomm: remove wlan kernel module load script
The qualcomm.sh script has been losing functionality over time, to the
point that now is just loading the kernel module using 'modprobe'.

Instead, run modprobe directly from the udev rule and get rid of the
qualcomm script.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-09-30 14:47:02 +02:00
Isaac Hermida 7493637f2e kernel-module-qualcomm: revert to driver qcacld-2.0
Verbatim copy of the recipes in DEY-3.2, using command:
git restore -s dey-3.2/master -- meta-digi-arm/recipes-kernel/kernel-module-qualcomm

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-09-29 13:21:00 +02:00
Javier Viguera d4f4b40abd kernel-module-qualcomm: remove wlan kernel module load script
The qualcomm.sh script has been losing functionality over time, to the
point that now is just loading the kernel module using 'modprobe'.

Instead, run modprobe directly from the udev rule and get rid of the
qualcomm script.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-08-12 11:45:02 +02:00
Francisco Gil afc61dfb83 wifi: add symbolics links needed by the read only filesystem.
Create this symbolics links in build time instead of doing it
in run-time. This simplifies the system and allows it to work
with read only filesystems.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2021-11-25 12:39:28 +01:00
Francisco Gil 179d4315ef wireless: mac: create symbolic links for the wireless macs
Before this patch the MAC addresses were read from the device
tree in the qualcomm.sh script executed at init, and a creates
a file where the MAC where located.

In 0a92f5d9e8df644de74e74f152ed6ff3dd8d3369 in the qca driver
the support to read these MAC addresses from the filesystem
was added.

This commits creates the simbolic link between the device tree
and the expected path where the MAC addresses where located, and
gets rid of the file with the MAC addresses.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2021-11-25 11:38:27 +01:00
Gonzalo Ruiz a8b3a130b7 qualcomm.sh: remove regulatory domain support
Regulatory domain support will be added completely with the 'regulatory-addon'.

Also simplify symlink management now that BDF file has the same name for
every platform.

https://jira.digi.com/browse/DEL-6841

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2020-01-27 16:00:21 +01:00
Francisco Gil f1d994bdc2 qca: update wireless driver
Update the wireless driver to a newer version that supports both
chips (qca6574 and qca6564).

We keep the same bdwlan30_US.bin files as the previous version
of the driver (or fakeboard_US for the qca6474).

Rename directories to qca65X4_driver_interface.

We have used the files from the following repo:
qca6574au-le-2-2-2_qca_oem -> 4d29c6886f2Commit label r00005.1
- CS2.2 0.0.005.1

md5sum
----------------------------------------------------------
qca65X4_pcie:	otp30.bin   ->	9d1cf03473904bd8b97fa30bc92b4a16
		qwlan30.bin ->	794f7a6f12ef3e6f8db6257b3a6f896f
		utf30.bin   ->	41cfb4e50613cd0eeb0fa99a005131bd
qca65X4_sdio:   otp30.bin   ->	e018e7b629b055dc4616c7e88c615b41
		qwlan30.bin ->	fe37bc043132ecf21e504eb33f46b846
		utf30.bin   ->	4743dee015047752e433e69f4db89974

https://jira.digi.com/browse/DEL-6766

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2020-01-20 08:51:10 +01:00
Gonzalo Ruiz 0692252b88 qualcomm.sh: remount filesystem as 'rw' to create symlinks
Also remount the root filesystem as 'rw' when the symlinks need to be
updated.

https://jira.digi.com/browse/DEL-6760

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2019-12-13 10:45:19 +01:00
Gonzalo Ruiz b242ee1a93 qualcomm.sh: get mount point to remount from /proc/mounts
Obtain the mount point of the filesystem to remount as 'read-write' from
/proc/mounts to avoid issues related to df output wrapping on a second line
when the device filesystem name is too long.

When the script finishes, remount the filesystem as 'read-only' if that was
the original access permission.

https://jira.digi.com/browse/DEL-6760
https://jira.digi.com/browse/DEL-5854

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2019-12-13 10:45:19 +01:00
Gonzalo Ruiz 224c4fc418 qualcomm.sh: generalize to select correct board data file
Generalize script to select the correct board data file to load into the
wireless chip depending on the Regulatory Domain configuration whether it
is a variation of 'bdwlan30.bin' or 'fakeboar.bin'.

If 'bdwlan30_US.bin' or 'bdwlan30_World.bin' files are found in the firmware
directory, the script will create two symlinks, 'bdwlan30.bin and 'utfbd30.bin',
pointing to either one of those files.

If no 'bdwlan30_*.bin' files are found, but 'fakeboar_US.bin' or
'fakeboar_World.bin' is, it will create a single symlink, 'fakeboar.bin',
pointing to either one of those files. In the case a QCA6574 community driver
is loaded, 'board.bin' symlink will be updated.

If no 'fakeboard_*.bin' files are found either, the script will exit.

https://jira.digi.com/browse/DEL-6773

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2019-10-10 16:15:12 +02:00
Hector Palacios c586b05bd2 kernel-module-qualcomm: fix printing of error message
Error message was being printed upon successful copy of the
MAC addresses file, instead of upon failure.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2019-09-03 08:19:57 +02:00
Jose Diaz de Grenu 797f9dc357 qualcomm.sh: remount as writteable if '/' is ro
On some scenarios, like when booting from NFS, the root filesystem is not
writteable. When this happens the qualcomm.sh is not able to write the MAC
file which so the wireless driver fails to load.

The arguments that U-Boot uses when booting from NFS using dboot result in
the root filesystem being mounted as read-only, but at some point it is
remounted as read/write. This happens after trying to load the wireless
driver, though.

Currently this is the only scenario in which we can reproduce the problem,
and there are several other processes in DEY that require a writeable root
filesystem (wireless SSID editing, Dropbear SSH key-gen and u-boot-fw-utils)
so remount the rootfs as writteable as a workaround.

While on it improve the script a bit to notify on error trying to create
this file, just in case this happens in other scenarios.

https://jira.digi.com/browse/DEL-5854

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2019-08-14 16:49:21 +02:00
Hector Palacios d60d5cc980 kernel-module-qualcomm: generalize for both qca6564 and qca6574 models
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2019-06-05 10:56:47 +02:00
Hector Palacios 80b8fc8be4 kernel-module-qualcomm: don't run if 'wireless' node missing on DT
We want to run the script if the 'wireless' node exits on the device tree.
This is to facilitate disabling of the wireless by removing that node.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://jira.digi.com/browse/DEL-6616
2019-06-05 10:56:47 +02:00
Javier Viguera a4d931bf84 qualcomm: remove hardcoded enable_p2p=0 parameter
P2P disabled is the default in the kernel module, so passing here the
parameter to 'modprobe' does nothing but prevents to set the parameter
in the kernel command line.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2019-05-17 09:38:24 +02:00
Gabriel Valcazar 9f76a50e57 Revert "kernel-module-qualcomm: create wlan virtual interface"
Don't create the wlan1 interface automatically to improve the general
performance of the wireless interface.

This reverts commit a5ae6a5b3c.

https://jira.digi.com/browse/DEL-6353
2019-03-22 09:46:51 +01:00
Arturo Buzarra 05c9cd566d qualcomm: add enable_p2p parameter to driver initialization
Add kernel module parameter to enable/disable the p2p interface.
By default p2p interface is disabled.

https://jira.digi.com/browse/DEL-6503

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-03-19 18:15:42 +01:00
Arturo Buzarra 314d4c82d6 meta-digi: fix scripts to remove undesired warning ignoring null bytes
Bash v4.4 or higher warns when discarding NULL bytes in command substitution
output. Remove these bytes to avoid the undesired warnings.

https://jira.digi.com/browse/DEL-5588

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2018-01-24 17:59:14 +01:00
Javier Viguera b421fb7995 qualcomm: generalize log function to pass the log level
We need to pass different log levels depending on the message, so they
appear in the console, so generalize the 'log' function.

https://jira.digi.com/browse/DEL-4682

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-27 14:05:29 +02:00
Arturo Buzarra 6f0b8a7356 kernel-module-qualcomm: reduce console log level to load wireless module
At the point this script is running from udev (the system log is not yet
available), so to avoid debug messages from qualcomm wireless module
reduce the console log level.

https://jira.digi.com/browse/DEL-4570

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2017-07-19 17:06:16 +02:00
Javier Viguera 6ffd69da82 kernel-module-qualcomm: use kernel log buffer for logging
At the point this script is run (from udev) the system log is not yet
available, so use the kernel log buffer instead.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-07 17:02:45 +02:00
Javier Viguera a5ae6a5b3c kernel-module-qualcomm: create wlan virtual interface
Use the same udev script that loads the qualcomm wireless module to
create the 'wlan1' virtual interface.

https://jira.digi.com/browse/DEL-4453

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-07 17:02:45 +02:00
Javier Viguera 9329e5681b kernel-module-qualcomm: fix two udev rules managing qcom wireless driver
Udev comes with a bunch of generic rules for the hardware. One of them:

/lib/udev/rules.d/80-drivers.rules

is able to load the qualcomm wireless module.

At the same time our new rule is needed, so it prepares the firmware
before the module is loaded.

Both rules running collide with following error message:

udevd[181]: '/etc/udev/scripts/qualcomm.sh' [184] terminated by signal 1 (Hangup)

So to fix this, we rename the specific rule so it's parsed later, and
then we use the hard assignation '=' instead of '+=' to override the
values that come from the previous parsed rule.

Also clean-up a bit the 'qualcomm.sh' script and the modprobe file,
given that now we know the standard drivers rule won't run for this
interface.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-07-07 17:02:45 +02:00
Mike Engel 27138c9838 kernel-module-qualcomm: let udev load wireless module
NetworkManager is not able to detect and manage the wireless interface
until is actually created, so let udev load the kernel module and create
the interface on boot.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2017-07-07 17:02:45 +02:00