boards: nxp: Add RD_RW612_BGA board
Add rd_rw612_bga board target. Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
This commit is contained in:
parent
5f53afca0a
commit
f519087b21
|
@ -3329,6 +3329,7 @@ NXP Platforms (MCU):
|
|||
- boards/nxp/lpcxpress*/
|
||||
- boards/nxp/twr_*/
|
||||
- boards/nxp/vmu*/
|
||||
- boards/nxp/*rw*/
|
||||
- soc/nxp/imxrt/
|
||||
- soc/nxp/kinetis/
|
||||
- soc/nxp/lpc/
|
||||
|
|
20
boards/nxp/rd_rw612_bga/CMakeLists.txt
Normal file
20
boards/nxp/rd_rw612_bga/CMakeLists.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Copyright 2022-2023 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if(CONFIG_NXP_RW6XX_BOOT_HEADER)
|
||||
if(NOT DEFINED CONFIG_BOARD_RD_RW612_BGA)
|
||||
message(WARNING "It appears you are using the board definition for "
|
||||
"the RD_RW612_BGA, but targeting a custom board. You may need to "
|
||||
"update your flash configuration block data")
|
||||
endif()
|
||||
zephyr_compile_definitions(BOOT_HEADER_ENABLE=1)
|
||||
zephyr_compile_definitions(BOARD_FLASH_SIZE=CONFIG_FLASH_SIZE*1024)
|
||||
set(RW612_BOARD_DIR
|
||||
"${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk/boards/rdrw612bga")
|
||||
zephyr_library()
|
||||
zephyr_library_sources(${RW612_BOARD_DIR}/flash_config/flash_config.c)
|
||||
zephyr_library_include_directories(${RW612_BOARD_DIR}/flash_config)
|
||||
endif()
|
5
boards/nxp/rd_rw612_bga/Kconfig.rd_rw612_bga
Normal file
5
boards/nxp/rd_rw612_bga/Kconfig.rd_rw612_bga
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Copyright 2024 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_RD_RW612_BGA
|
||||
select SOC_PART_NUMBER_RW612ETA1I
|
9
boards/nxp/rd_rw612_bga/board.cmake
Normal file
9
boards/nxp/rd_rw612_bga/board.cmake
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Copyright 2022-2023 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(jlink "--device=RW612" "--reset-after-load")
|
||||
|
||||
board_runner_args(linkserver "--device=RW612:RDRW612")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/linkserver.board.cmake)
|
5
boards/nxp/rd_rw612_bga/board.yml
Normal file
5
boards/nxp/rd_rw612_bga/board.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
name: rd_rw612_bga
|
||||
vendor: nxp
|
||||
socs:
|
||||
- name: rw612
|
115
boards/nxp/rd_rw612_bga/doc/index.rst
Normal file
115
boards/nxp/rd_rw612_bga/doc/index.rst
Normal file
|
@ -0,0 +1,115 @@
|
|||
.. _rd_rw612_bga:
|
||||
|
||||
NXP RD-RW612-BGA
|
||||
################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The RW612 is a highly integrated, low-power tri-radio wireless MCU with an
|
||||
integrated 260 MHz ARM Cortex-M33 MCU and Wi-Fi 6 + Bluetooth Low Energy (LE) 5.3 / 802.15.4
|
||||
radios designed for a broad array of applications, including connected smart home devices,
|
||||
gaming controllers, enterprise and industrial automation, smart accessories and smart energy.
|
||||
|
||||
The RW612 MCU subsystem includes 1.2 MB of on-chip SRAM and a high-bandwidth Quad SPI interface
|
||||
with an on-the-fly decryption engine for securely accessing off-chip XIP flash.
|
||||
|
||||
The advanced design of the RW612 delivers tight integration, low power and highly secure
|
||||
operation in a space- and cost-efficient wireless MCU requiring only a single 3.3 V power supply.
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
- 260 MHz ARM Cortex-M33, tri-radio cores for Wifi 6 + BLE 5.3 + 802.15.4
|
||||
- 1.2 MB on-chip SRAM
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
+-----------+------------+-----------------------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+===================================+
|
||||
| NVIC | on-chip | nested vector interrupt controller|
|
||||
+-----------+------------+-----------------------------------+
|
||||
| SYSTICK | on-chip | systick |
|
||||
+-----------+------------+-----------------------------------+
|
||||
| MCI_IOMUX | on-chip | pinmux |
|
||||
+-----------+------------+-----------------------------------+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+-----------------------------------+
|
||||
| USART | on-chip | serial |
|
||||
+-----------+------------+-----------------------------------+
|
||||
|
||||
The default configuration can be found in the defconfig file:
|
||||
|
||||
:zephyr_file:`boards/nxp/rd_rw612_bga/rd_rw612_bga_defconfig/`
|
||||
|
||||
Other hardware features are not currently supported
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
Build and flash applications as usual (see :ref:`build_an_application` and
|
||||
:ref:`application_run` for more details).
|
||||
|
||||
Configuring a Debug Probe
|
||||
=========================
|
||||
|
||||
A debug probe is used for both flashing and debugging the board. This board is
|
||||
configured by default to use the JLink Firmware.
|
||||
|
||||
Configuring a Console
|
||||
=====================
|
||||
|
||||
Connect a USB cable from your PC to J7, and use the serial terminal of your choice
|
||||
(minicom, putty, etc.) with the following settings:
|
||||
|
||||
- Speed: 115200
|
||||
- Data: 8 bits
|
||||
- Parity: None
|
||||
- Stop bits: 1
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
Here is an example for the :ref:`hello_world` application. This example uses the
|
||||
:ref:`jlink-debug-host-tools` as default.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: rd_rw612_bga
|
||||
:goals: flash
|
||||
|
||||
Open a serial terminal, reset the board (press the RESET button), and you should
|
||||
see the following message in the terminal:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
***** Booting Zephyr OS v3.4.0 *****
|
||||
Hello World! rd_rw612_bga
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
Here is an example for the :ref:`hello_world` application. This example uses the
|
||||
:ref:`jlink-debug-host-tools` as default.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: rd_rw612_bga
|
||||
:goals: debug
|
||||
|
||||
Open a serial terminal, step through the application in your debugger, and you
|
||||
should see the following message in the terminal:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
***** Booting Zephyr OS zephyr-v3.6.0 *****
|
||||
Hello World! rd_rw612_bga
|
||||
|
||||
|
||||
Resources
|
||||
=========
|
||||
|
||||
.. _RW612 Website:
|
||||
https://www.nxp.com/products/wireless-connectivity/wi-fi-plus-bluetooth-plus-802-15-4/wireless-mcu-with-integrated-tri-radiobr1x1-wi-fi-6-plus-bluetooth-low-energy-5-3-802-15-4:RW612
|
7
boards/nxp/rd_rw612_bga/pre_dt_board.cmake
Normal file
7
boards/nxp/rd_rw612_bga/pre_dt_board.cmake
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Copyright 2023 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Suppress "simple_bus_reg" on RW6XX boards as all GPIO ports use the same register.
|
||||
list(APPEND EXTRA_DTC_FLAGS "-Wno-simple_bus_reg")
|
||||
# Suppress "spi_bus_bridge" as flexcomm node can be used as a SPI device.
|
||||
list(APPEND EXTRA_DTC_FLAGS "-Wno-spi_bus_bridge")
|
16
boards/nxp/rd_rw612_bga/rd_rw612_bga-pinctrl.dtsi
Normal file
16
boards/nxp/rd_rw612_bga/rd_rw612_bga-pinctrl.dtsi
Normal file
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright 2022-2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <nxp/rw/RW612-pinctrl.h>
|
||||
|
||||
&pinctrl {
|
||||
pinmux_flexcomm3_usart: pinmux_flexcomm3_usart {
|
||||
group0 {
|
||||
pinmux = <IO_MUX_FC3_USART_DATA>;
|
||||
slew-rate = "normal";
|
||||
};
|
||||
};
|
||||
};
|
14
boards/nxp/rd_rw612_bga/rd_rw612_bga.dts
Normal file
14
boards/nxp/rd_rw612_bga/rd_rw612_bga.dts
Normal file
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* Copyright 2022-2023 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <nxp/nxp_rw6xx.dtsi>
|
||||
#include "rd_rw612_bga.dtsi"
|
||||
|
||||
/ {
|
||||
model = "nxp,rd_rw612_bga";
|
||||
};
|
93
boards/nxp/rd_rw612_bga/rd_rw612_bga.dtsi
Normal file
93
boards/nxp/rd_rw612_bga/rd_rw612_bga.dtsi
Normal file
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Copyright 2022-2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "rd_rw612_bga-pinctrl.dtsi"
|
||||
/ {
|
||||
|
||||
aliases {
|
||||
usart-0 = &flexcomm3;
|
||||
led0 = &green_led;
|
||||
sw0 = &sw_4;
|
||||
};
|
||||
|
||||
chosen {
|
||||
zephyr,sram = &sram_data;
|
||||
zephyr,flash = &mx25u51245g;
|
||||
zephyr,code-partition = &slot0_partition;
|
||||
zephyr,flash-controller = &mx25u51245g;
|
||||
zephyr,console = &flexcomm3;
|
||||
zephyr,shell-uart = &flexcomm3;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
green_led: led_1 {
|
||||
gpios = <&hsgpio1 20 0>;
|
||||
label = "User LED_GREEN";
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
sw_4: sw_4 {
|
||||
label = "User SW4";
|
||||
gpios = <&hsgpio0 25 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&flexcomm3 {
|
||||
compatible = "nxp,lpc-usart";
|
||||
status = "okay";
|
||||
current-speed = <115200>;
|
||||
pinctrl-0 = <&pinmux_flexcomm3_usart>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&hsgpio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&flexspi {
|
||||
status = "okay";
|
||||
mx25u51245g: mx25u51245g@0 {
|
||||
compatible = "nxp,imx-flexspi-nor";
|
||||
spi-max-frequency = <133000000>;
|
||||
reg = <0>;
|
||||
/* MX25UM51245G is 64MB, 512MBit flash part */
|
||||
size = <DT_SIZE_M(64 * 8)>;
|
||||
status = "disabled";
|
||||
jedec-id = [c2 25 3a];
|
||||
erase-block-size = <4096>;
|
||||
write-block-size = <1>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
boot_partition: partition@0 {
|
||||
label = "mcuboot";
|
||||
reg = <0x00000000 DT_SIZE_K(128)>;
|
||||
};
|
||||
/* Note slot 0 has one additional sector,
|
||||
* this is intended for use with the swap move algorithm
|
||||
*/
|
||||
slot0_partition: partition@20000 {
|
||||
label = "image-0";
|
||||
reg = <0x00020000 0x3e0000>;
|
||||
};
|
||||
slot1_partition: partition@680000 {
|
||||
label = "image-1";
|
||||
reg = <0x680000 0x3e0000>;
|
||||
};
|
||||
storage_partition: partition@a60000 {
|
||||
label = "storage";
|
||||
reg = <0xa60000 0x35a0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
18
boards/nxp/rd_rw612_bga/rd_rw612_bga.yaml
Normal file
18
boards/nxp/rd_rw612_bga/rd_rw612_bga.yaml
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# Copyright 2022-2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
identifier: rd_rw612_bga
|
||||
name: NXP RD_RW612_BGA
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
ram: 960
|
||||
flash: 65536
|
||||
supported:
|
||||
- gpio
|
14
boards/nxp/rd_rw612_bga/rd_rw612_bga_defconfig
Normal file
14
boards/nxp/rd_rw612_bga/rd_rw612_bga_defconfig
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# Copyright 2022 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_ARM_MPU=y
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
Loading…
Reference in a new issue