boards: silabs: Add support for Silabs SiWx917 BRD4338 board

This new board definition allow to test Silicon Labs SiWx917 SoC.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
This commit is contained in:
Jérôme Pouiller 2025-01-30 20:53:23 +01:00 committed by Benjamin Cabé
commit 8f82116033
8 changed files with 187 additions and 0 deletions

View file

@ -0,0 +1,5 @@
# Copyright (c) 2023 Antmicro
# SPDX-License-Identifier: Apache-2.0
config BOARD_SIWX917_RB4338A
select SOC_PART_NUMBER_SIWG917M111MGTBA

View file

@ -0,0 +1,13 @@
# Copyright (c) 2024 Silicon Laboratories Inc.
# SPDX-License-Identifier: Apache-2.0
board_runner_args(silabs_commander "--device=SiWG917M111GTBA" "--file-type=bin"
"--file=${PROJECT_BINARY_DIR}/${KERNEL_BIN_NAME}.rps")
include(${ZEPHYR_BASE}/boards/common/silabs_commander.board.cmake)
# It is not possible to load/flash a firmware using JLink, but it is possible to
# debug a firmware with:
# west attach -r jlink
# Once started, it should be possible to reset the device with "monitor reset"
board_runner_args(jlink "--device=Si917" "--speed=10000")
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

View file

@ -0,0 +1,6 @@
board:
name: siwx917_rb4338a
full_name: SiWx917 Wi-Fi 6 and Bluetooth LE SoC 8 MB Flash Radio Board (SLWRB4338A)
vendor: silabs
socs:
- name: siwg917m111mgtba

View file

@ -0,0 +1,116 @@
.. zephyr:board:: siwx917_rb4338a
Overview
********
The SiWx917-RB4338A (aka BRD4338A) radio board provides support for the Silicon
Labs SiWG917 SoC. This board cannot be used stand-alone and requires a a
`Wireless Pro Kit`_ Mainboard (Si-MB4002A aka BRD4002A), for power, debug
options etc.
This board might be sold as a part of the `SiWx917-PK6031A`_ bundle ("SiWx917
Wi-Fi 6 and Bluetooth LE 8 MB Flash Pro Kit"), which includes the BRD4002A
Mainboard in addition of the BRD4338A.
SiWG917 is an ultra-low power SoC that includes hardware support for Single-Band
Wi-Fi 6 + Bluetooth LE 5.4, Matter...
Hardware
********
For more information about the SiWG917 SoC and BRD4338A board, refer to these
documents:
- `SiWG917 Website`_
- `SiWG917 Datasheet`_
- `SiWG917 Reference Manual`_
- `BRD4338A Website`_
- `BRD4338A User Guide`_
Supported Features
==================
The ``siwx917_rb4338a`` board supports the following hardware features:
+-----------+------------+------------------------+
| Interface | Controller | Driver/Component |
+===========+============+========================+
| CMU | on-chip | clock control |
+-----------+------------+------------------------+
| MPU | on-chip | memory protection unit |
+-----------+------------+------------------------+
| NVIC | on-chip | interrupt controller |
+-----------+------------+------------------------+
| UART | on-chip | serial |
+-----------+------------+------------------------+
Programming and Debugging
*************************
Flashing
========
Applications for the ``siwx917_rb4338a`` board can be built in the usual
way. The flash method requires on `Simplicity Commander`_ installed on the host.
Then, connect the BRD4002A board with a mounted BRD4338A radio module to your
host computer using the USB port.
Here is an example for the :zephyr:code-sample:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: siwx917_rb4338a
:goals: flash
Open a serial terminal (minicom, putty, etc.) with the following settings:
- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1
Reset the board and you should see the following message in the terminal:
.. code-block:: console
Hello World! siwx917_rb4338a
Debugging
=========
Debuggning relies on JLink tool. JLink is not able to flash the firmware. So
debug session has to be done in two steps. ``west flash`` will flahs the
firmware using Simplicity Commander. Then ``west attach`` will use JLink to
attach to the board. The Zephyr image may has already booted when user runs
``west attach``. User may execute ``monitor reset`` in the gdb prompt to reset
the board.
.. _SiWx917-PK6031A:
https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-pk6031a-wifi-6-bluetooth-le-soc-pro-kit
.. _Wireless Pro Kit:
https://www.silabs.com/development-tools/wireless/wireless-pro-kit-mainboard
.. _BRD4338A Website:
https://www.silabs.com/development-tools/wireless/wi-fi/siwx917-rb4338a-wifi-6-bluetooth-le-soc-radio-board
.. _BRD4338A User Guide:
https://www.silabs.com/documents/public/user-guides/ug562-brd4338a-user-guide.pdf
.. _SiWG917 Website:
https://www.silabs.com/wireless/wi-fi/siwx917-wireless-socs
.. _SiWG917 Datasheet:
https://www.silabs.com/documents/public/data-sheets/siw917x-datasheet.pdf
.. _SiWG917 Reference Manual:
https://www.silabs.com/documents/public/reference-manuals/siw917x-family-rm.pdf
.. _Simplicity Commander:
https://www.silabs.com/developer-tools/simplicity-studio/simplicity-commander

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View file

@ -0,0 +1,26 @@
/*
* Copyright (c) 2023 Antmicro
* Copyright (c) 2024 Silicon Laboratories Inc.
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <silabs/siwg917m111mgtba.dtsi>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input-event-codes.h>
#include <common/freq.h>
/ {
model = "Silicon Labs BRD4338A (SiWG917 Radio Board)";
compatible = "silabs,x917_rb4338a", "silabs,siwg917";
chosen {
zephyr,sram = &sram0;
zephyr,console = &ulpuart;
zephyr,shell-uart = &ulpuart;
};
};
&ulpuart {
status = "okay";
};

View file

@ -0,0 +1,13 @@
identifier: siwx917_rb4338a
name: SiWx917 Wi-Fi 6 and Bluetooth LE 8MB Flash Radio Board (SLWRB4338A, BRD4338A)
type: mcu
arch: arm
ram: 191
flash: 1024
toolchain:
- zephyr
- gnuarmemb
- xtools
supported:
- i2c
vendor: silabs

View file

@ -0,0 +1,8 @@
# Copyright (c) 2024 Silicon Laboratories Inc.
# SPDX-License-Identifier: Apache-2.0
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=180000000
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_CLOCK_CONTROL=y