Skip to content

Commit 1544354

Browse files
jerome-pouillerkartben
authored andcommitted
drivers: wifi: Introduce SiWx91x WiFi driver
This driver allow to use Zephyr native IP stack or the IP stack provided by HAL / WiseConnect. The WiseConnect implementation may take advantage of the specific features provided by the 917 (power consumption, speed, validation...). Some notable features are not available with this interface: - It seems Zephyr does not provide API to offload multicast membership management. User should be to directly call WiseConnect APIs - Support for ICMP frames is difficult. Note that WiseConnect automatically answer to ping request. It is just not possible to send ping requests and receive ping responses. - Zephyr and WiseConnect both support TLS offloading. However this patch does not implement it. - Reentrancy in the WiseConnect side is uncertain. This implementation has been tested with samples/net/wifi/ (which relies on subsys/net/lib/shell). Signed-off-by: Jérôme Pouiller <[email protected]>
1 parent c75740a commit 1544354

File tree

11 files changed

+988
-2
lines changed

11 files changed

+988
-2
lines changed

drivers/wifi/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ add_subdirectory_ifdef(CONFIG_WIFI_WINC1500 winc1500)
2626
add_subdirectory_ifdef(CONFIG_WIFI_NXP nxp)
2727
add_subdirectory_ifdef(CONFIG_WIFI_AIROC infineon)
2828
add_subdirectory_ifdef(CONFIG_WIFI_NRF70 nrf_wifi)
29+
add_subdirectory_ifdef(CONFIG_WIFI_SILABS_SIWX91X siwx91x)

drivers/wifi/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,6 @@ source "drivers/wifi/esp32/Kconfig.esp32"
4343
source "drivers/wifi/nxp/Kconfig.nxp"
4444
source "drivers/wifi/infineon/Kconfig.airoc"
4545
source "drivers/wifi/nrf_wifi/Kconfig.nrfwifi"
46+
source "drivers/wifi/siwx91x/Kconfig.siwx91x"
4647

4748
endif # WIFI

drivers/wifi/siwx91x/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
# Copyright (c) 2024 Silicon Laboratories Inc.
3+
4+
if(CONFIG_WIFI_SILABS_SIWX91X)
5+
zephyr_library_sources(siwx91x_wifi.c)
6+
7+
if(CONFIG_WIFI_SILABS_SIWX91X_NET_STACK_OFFLOAD)
8+
zephyr_library_sources(siwx91x_wifi_socket.c)
9+
endif()
10+
endif()

drivers/wifi/siwx91x/Kconfig.siwx91x

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Copyright (c) 2024 Silicon Laboratories Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config WIFI_SILABS_SIWX91X
5+
bool "Silabs SiWx91x SoC series WiFi driver"
6+
default y
7+
depends on DT_HAS_SILABS_SIWX91X_WIFI_ENABLED
8+
depends on NETWORKING
9+
select WISECONNECT_NETWORK_STACK
10+
select EVENTS
11+
select NET_L2_WIFI_MGMT
12+
help
13+
Enable WiFi driver for the Silabs SiWx91x SoC series.
14+
15+
if WIFI_SILABS_SIWX91X
16+
17+
choice
18+
prompt "Network stack"
19+
default WIFI_SILABS_SIWX91X_NET_STACK_NATIVE
20+
help
21+
Choose "Native" stack if you want a better compatibility with Zephyr
22+
features. "Offloaded" stack may provide better resource (power and
23+
memory) consumption.
24+
25+
config WIFI_SILABS_SIWX91X_NET_STACK_NATIVE
26+
bool "Native"
27+
select WIFI_USE_NATIVE_NETWORKING
28+
select NET_L2_ETHERNET
29+
30+
config WIFI_SILABS_SIWX91X_NET_STACK_OFFLOAD
31+
bool "Offloaded"
32+
select WIFI_OFFLOAD
33+
34+
endchoice
35+
36+
config NET_TCP_WORKQ_STACK_SIZE
37+
default 2048
38+
39+
config NET_RX_STACK_SIZE
40+
default 2048
41+
42+
config NET_MGMT_EVENT_STACK_SIZE
43+
default 2048
44+
45+
config NET_MGMT_EVENT_QUEUE_SIZE
46+
default 10
47+
48+
endif

0 commit comments

Comments
 (0)