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]
Message-Id: <20250212-wilc3000_bt-v1-0-9609b784874e@bootlin.com>
Date: Wed, 12 Feb 2025 16:46:19 +0100
From: Alexis Lothoré <alexis.lothore@...tlin.com>
To: Alexis Lothoré <alexis.lothore@...tlin.com>, 
 Marcel Holtmann <marcel@...tmann.org>, 
 Luiz Augusto von Dentz <luiz.dentz@...il.com>, 
 Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>, 
 Conor Dooley <conor+dt@...nel.org>, Ajay Singh <ajay.kathat@...rochip.com>, 
 Claudiu Beznea <claudiu.beznea@...on.dev>, Kalle Valo <kvalo@...nel.org>, 
 "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, 
 Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, 
 Simon Horman <horms@...nel.org>, 
 Nicolas Ferre <nicolas.ferre@...rochip.com>, 
 Alexandre Belloni <alexandre.belloni@...tlin.com>
Cc: Marek Vasut <marex@...x.de>, 
 Thomas Petazzoni <thomas.petazzoni@...tlin.com>, 
 linux-bluetooth@...r.kernel.org, devicetree@...r.kernel.org, 
 linux-kernel@...r.kernel.org, linux-wireless@...r.kernel.org, 
 netdev@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Subject: [PATCH 00/12] bluetooth: hci_wilc: add new bluetooth driver

Hello,

WILC3000 ([1]) is a combo chip exposing 802.11b/g/n and Bluetooth 5.
Support for the wlan part has recently been integrated upstream ([2]) in
the existing wilc1000 driver. This new series aims to bring support for
the bluetooth side.

The WILC3000 chip is controlled through a SDIO or SPI bus for the wlan
part (similarly to wilc1000), and uses standard HCI commands over a UART
bus for the bluetooth operations. This work is based on the code
available in the vendor kernel ([3]), in which bluetooth is managed
directly in the wireless driver, and relies on user to trigger the
hardware configuration (chardev manipulations + hciattach). The series
brings a new dedicated bluetooth driver to support the bluetooth feature
from the chip, without relying on the user to perform the device
bringup. However, getting completely rid of the wlan driver dependency
is not possible: it is still needed for early BT CPU configuration and
BT firmware download, so the new driver still have a dependency of the
wlan one, with an approach similar to the one used by the rsi driver.

- Patch 1 brings the new dt binding
- Patch 2-9 prepares the wlan side, either by exposing the needed
  functions to initialize BT, or by mitigating behavior which would
  prevent BT and WLAN from runnning in parallel
- Patch 10 brings the new bluetooth driver
- Patch 11 updates the device tree description for sama5d27_wlsom1_ek
  board (which I used to validate this series) to use the new driver
- Patch 12 adds a new entry for this driver in the MAINTAINERS files

This series has been tested with WILC3000 both in SDIO mode (with the
chip embedded on the sama5d27_wlsom1_ek) and SPI mode (custom wiring on
an SPI on the same eval board, with a WILC3000-SD).

Since this works needs new code in both the existing wlan driver and the
new driver, I have included both linux-wireless and bluetooth mailing
lists, while keeping the entire series for clarity, but let me know if
you want to proceed differently.

[1] https://www.microchip.com/en-us/product/atwilc3000
[2] https://lore.kernel.org/linux-wireless/20241004114551.40236-1-marex@denx.de/
[3] https://github.com/linux4microchip/linux/tree/linux-6.6-mchp/drivers/net/wireless/microchip/wilc1000

---
Alexis Lothoré (12):
      dt-bindings: bluetooth: describe wilc 3000 bluetooth chip
      wifi: wilc1000: add a read-modify-write API for registers accesses
      wifi: wilc1000: add lock to prevent concurrent firmware startup
      wifi: wilc1000: allow to use acquire/release bus in other parts of driver
      wifi: wilc1000: do not depend on power save flag to wake up chip
      wifi: wilc1000: remove timeout parameter from set_power_mgmt
      wifi: wilc1000: reorganize makefile objs into sorted list
      wifi: wilc1000: add basic functions to allow bluetooth bringup
      wifi: wilc1000: disable firmware power save if bluetooth is in use
      bluetooth: hci_wilc: add wilc hci driver
      ARM: dts: at91-sama5d27_wlsom1: update bluetooth chip description
      MAINTAINERS: add entry for new wilc3000 bluetooth driver

 .../net/bluetooth/microchip,wilc3000-bt.yaml       |  41 +++
 MAINTAINERS                                        |   7 +
 .../boot/dts/microchip/at91-sama5d27_wlsom1.dtsi   |   8 +
 .../boot/dts/microchip/at91-sama5d27_wlsom1_ek.dts |  10 -
 drivers/bluetooth/Kconfig                          |  13 +
 drivers/bluetooth/Makefile                         |   3 +-
 drivers/bluetooth/hci_uart.h                       |   1 +
 drivers/bluetooth/hci_wilc.c                       | 333 ++++++++++++++++++++
 drivers/net/wireless/microchip/wilc1000/Kconfig    |   3 +
 drivers/net/wireless/microchip/wilc1000/Makefile   |  11 +-
 drivers/net/wireless/microchip/wilc1000/bt.c       | 345 +++++++++++++++++++++
 drivers/net/wireless/microchip/wilc1000/cfg80211.c |   7 +-
 drivers/net/wireless/microchip/wilc1000/hif.c      |   2 +-
 drivers/net/wireless/microchip/wilc1000/hif.h      |   2 +-
 drivers/net/wireless/microchip/wilc1000/netdev.c   |  14 +
 drivers/net/wireless/microchip/wilc1000/netdev.h   |   5 +
 drivers/net/wireless/microchip/wilc1000/sdio.c     | 101 ++++--
 drivers/net/wireless/microchip/wilc1000/spi.c      |  43 +++
 drivers/net/wireless/microchip/wilc1000/wlan.c     | 154 ++++-----
 drivers/net/wireless/microchip/wilc1000/wlan.h     |  23 ++
 include/net/wilc.h                                 |  19 ++
 21 files changed, 996 insertions(+), 149 deletions(-)
---
base-commit: 95f6f2d73dc40ab53a94756689ce5cfd2f23361a
change-id: 20240828-wilc3000_bt-fa452f2a93ad

Best regards,
-- 
Alexis Lothoré, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ