Skip to content

Commit 12afcc8

Browse files
jerome-pouillerkartben
authored andcommitted
boards: silabs: Add support for rb4342a
Radio Board 4342A is really similar to the 4338A. There are a few difference on the pinmux, but most of the peripherals and the SoC are the same. Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
1 parent a1f4821 commit 12afcc8

File tree

10 files changed

+290
-0
lines changed

10 files changed

+290
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Silicon Laboratories Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_SIWX917_RB4342A
5+
select SOC_PART_NUMBER_SIWG917M111MGTBA
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (c) 2025 Silicon Laboratories Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
board_runner_args(silabs_commander "--device=SiWG917M111GTBA" "--file-type=bin"
5+
"--file=${PROJECT_BINARY_DIR}/${KERNEL_BIN_NAME}.rps")
6+
include(${ZEPHYR_BASE}/boards/common/silabs_commander.board.cmake)
7+
8+
# It is not possible to load/flash a firmware using JLink, but it is possible to
9+
# debug a firmware with:
10+
# west attach -r jlink
11+
# Once started, it should be possible to reset the device with "monitor reset"
12+
board_runner_args(jlink "--device=Si917" "--speed=10000")
13+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: siwx917_rb4342a
3+
full_name: SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash + 8 MB ext PSRAM Radio Board (SLWRB4342A)
4+
vendor: silabs
5+
socs:
6+
- name: siwg917m111mgtba
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
.. zephyr:board:: siwx917_rb4342a
2+
3+
4+
Overview
5+
********
6+
7+
The SiWx917-RB4342A (aka BRD4342A) radio board provides support for the Silicon
8+
Labs SiWG917 SoC. This board cannot be used stand-alone and requires a a
9+
`Wireless Pro Kit`_ Mainboard (Si-MB4002A aka BRD4002A), for power, debug
10+
options etc.
11+
12+
SiWG917 is an ultra-low power SoC that includes hardware support for Single-Band
13+
Wi-Fi 6 + Bluetooth LE 5.4, Matter...
14+
15+
Hardware
16+
********
17+
18+
For more information about the SiWG917 SoC and BRD4342A board, refer to these
19+
documents:
20+
21+
- `SiWG917 Website`_
22+
- `SiWG917 Datasheet`_
23+
- `SiWG917 Reference Manual`_
24+
- `BRD4342A Website`_
25+
- `BRD4342A User Guide`_
26+
27+
28+
Supported Features
29+
==================
30+
31+
.. zephyr:board-supported-hw::
32+
33+
Programming and Debugging
34+
*************************
35+
36+
Flashing
37+
========
38+
39+
Applications for the ``siwx917_rb4342a`` board can be built in the usual
40+
way. The flash method requires on `Simplicity Commander`_ installed on the host.
41+
42+
Then, connect the BRD4002A board with a mounted BRD4342A radio module to your
43+
host computer using the USB port.
44+
45+
Here is an example for the :zephyr:code-sample:`hello_world` application.
46+
47+
.. zephyr-app-commands::
48+
:zephyr-app: samples/hello_world
49+
:board: siwx917_rb4342a
50+
:goals: flash
51+
52+
Open a serial terminal (minicom, putty, etc.) with the following settings:
53+
54+
- Speed: 115200
55+
- Data: 8 bits
56+
- Parity: None
57+
- Stop bits: 1
58+
59+
Reset the board and you should see the following message in the terminal:
60+
61+
.. code-block:: console
62+
63+
Hello World! siwx917_rb4342a
64+
65+
66+
Debugging
67+
=========
68+
69+
Debuggning relies on JLink tool. JLink is not able to flash the firmware. So
70+
debug session has to be done in two steps. ``west flash`` will flahs the
71+
firmware using Simplicity Commander. Then ``west attach`` will use JLink to
72+
attach to the board. The Zephyr image may has already booted when user runs
73+
``west attach``. User may execute ``monitor reset`` in the gdb prompt to reset
74+
the board.
75+
76+
77+
78+
.. _SiWx917-PK6031A:
79+
https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-pk6031a-wifi-6-bluetooth-le-soc-pro-kit
80+
81+
.. _Wireless Pro Kit:
82+
https://www.silabs.com/development-tools/wireless/wireless-pro-kit-mainboard
83+
84+
.. _BRD4342A Website:
85+
https://www.silabs.com/development-tools/wireless/wi-fi/siwx91x-rb4342a-wifi-6-bluetooth-le-soc-radio-board
86+
87+
.. _BRD4342A User Guide:
88+
https://www.silabs.com/documents/public/user-guides/ug564-brd4342a-user-guide.pdf
89+
90+
.. _SiWG917 Website:
91+
https://www.silabs.com/wireless/wi-fi/siwx917-wireless-socs
92+
93+
.. _SiWG917 Datasheet:
94+
https://www.silabs.com/documents/public/data-sheets/siwg917-datasheet.pdf
95+
96+
.. _SiWG917 Reference Manual:
97+
https://www.silabs.com/documents/public/reference-manuals/siw917x-family-rm.pdf
98+
99+
.. _Simplicity Commander:
100+
https://www.silabs.com/developer-tools/simplicity-studio/simplicity-commander
Binary file not shown.
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
/*
2+
* Copyright (c) 2023 Antmicro
3+
* Copyright (c) 2025 Silicon Laboratories Inc.
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
#include <silabs/siwg917m111mgtba.dtsi>
9+
#include <dt-bindings/gpio/gpio.h>
10+
#include <dt-bindings/input/input-event-codes.h>
11+
#include <dt-bindings/memory-attr/memory-attr-arm.h>
12+
#include <dt-bindings/pinctrl/silabs/siwx91x-pinctrl.h>
13+
#include <common/freq.h>
14+
15+
/ {
16+
model = "Silicon Labs BRD4342A (SiWG917 Radio Board)";
17+
compatible = "silabs,x917_rb4342a", "silabs,siwg917";
18+
19+
chosen {
20+
zephyr,sram = &sram0;
21+
zephyr,code-partition = &code_partition;
22+
zephyr,console = &ulpuart;
23+
zephyr,shell-uart = &ulpuart;
24+
zephyr,uart-pipe = &ulpuart;
25+
zephyr,bt-hci = &bt_hci0;
26+
};
27+
28+
aliases {
29+
led0 = &led0;
30+
sw0 = &button0;
31+
dht0 = &si7021;
32+
};
33+
34+
leds {
35+
compatible = "gpio-leds";
36+
37+
led0: led_0 {
38+
gpios = <&ulpgpio 2 GPIO_ACTIVE_HIGH>;
39+
};
40+
};
41+
42+
buttons {
43+
compatible = "gpio-keys";
44+
45+
button0: button_0 {
46+
gpios = <&uulpgpio 2 GPIO_ACTIVE_LOW>;
47+
zephyr,code = <INPUT_KEY_0>;
48+
};
49+
};
50+
};
51+
52+
&pinctrl0 {
53+
ulpuart_default: ulpuart_default {
54+
out {
55+
pinmux = <ULPUART_TX_ULP11>;
56+
};
57+
in {
58+
pinmux = <ULPUART_RX_ULP9>;
59+
};
60+
};
61+
62+
ulpi2c_default: ulpi2c_default {
63+
group {
64+
pinmux = <ULPI2C_SDA_ULP6>, <ULPI2C_SCL_ULP7>;
65+
};
66+
};
67+
};
68+
69+
&ulpuart {
70+
status = "okay";
71+
pinctrl-0 = <&ulpuart_default>;
72+
pinctrl-names = "default";
73+
};
74+
75+
&ulpi2c {
76+
status = "okay";
77+
pinctrl-0 = <&ulpi2c_default>;
78+
pinctrl-names = "default";
79+
clock-frequency = <DT_FREQ_K(100)>;
80+
81+
si7021: si7021@40 {
82+
compatible = "silabs,si7006";
83+
reg = <0x40>;
84+
};
85+
};
86+
87+
&flash0 {
88+
partitions {
89+
compatible = "fixed-partitions";
90+
#address-cells = <1>;
91+
#size-cells = <1>;
92+
93+
code_partition: partition@0 {
94+
label = "code_partition";
95+
reg = <0x0000000 DT_SIZE_K(2008)>;
96+
};
97+
98+
storage_partition: partition@1f6000 {
99+
label = "storage";
100+
reg = <0x001f6000 DT_SIZE_K(32)>;
101+
};
102+
};
103+
};
104+
105+
&bt_hci0 {
106+
status = "okay";
107+
};
108+
109+
&wifi0 {
110+
status = "okay";
111+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
identifier: siwx917_rb4342a
2+
name: |
3+
SiWx917 Wi-Fi 6 and Bluetooth LE 8 MB Flash + 8 MB ext PSRAM Radio Board
4+
(SLWRB4342A, BRD4342A)
5+
type: mcu
6+
arch: arm
7+
ram: 8864
8+
flash: 1024
9+
toolchain:
10+
- zephyr
11+
- gnuarmemb
12+
supported:
13+
- bluetooth
14+
- dma
15+
- entropy
16+
- flash
17+
- gpio
18+
- i2c
19+
- pwm
20+
- watchdog
21+
- wifi
22+
vendor: silabs
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright (c) 2025 Silicon Laboratories Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=180000000
5+
CONFIG_USE_DT_CODE_PARTITION=y
6+
CONFIG_CONSOLE=y
7+
CONFIG_UART_CONSOLE=y
8+
CONFIG_SERIAL=y
9+
CONFIG_CLOCK_CONTROL=y
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright (c) 2025 Silicon Laboratories Inc.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
aliases {
9+
watchdog0 = &watchdog;
10+
};
11+
};
12+
13+
&watchdog {
14+
status = "okay";
15+
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/*
2+
* Copyright (c) 2025 Silicon Laboratories Inc.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
&watchdog {
8+
status = "okay";
9+
};

0 commit comments

Comments
 (0)