boards: renesas: Add initial support for EK-RA4M2

Initial commit to support Renesas EK-RA4M2 board

Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
Signed-off-by: Duy Phuong Hoang. Nguyen <duy.nguyen.xa@renesas.com>
This commit is contained in:
Quy Tran 2024-06-11 07:15:35 +00:00 committed by Anas Nashif
commit 7638952f03
11 changed files with 321 additions and 0 deletions

View file

@ -0,0 +1,5 @@
# Copyright (c) 2024 Renesas Electronics Corporation
# SPDX-License-Identifier: Apache-2.0
config BOARD_EK_RA4M2
select SOC_R7FA4M2AD3CFP

View file

@ -0,0 +1,6 @@
# Copyright (c) 2024 Renesas Electronics Corporation
# SPDX-License-Identifier: Apache-2.0
board_runner_args(jlink "--device=R7FA4M2AD")
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

View file

@ -0,0 +1,5 @@
board:
name: ek_ra4m2
vendor: renesas
socs:
- name: r7fa4m2ad3cfp

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -0,0 +1,163 @@
.. _ek_ra4m2:
RA4M2 Evaluation Kit
####################
Overview
********
The Renesas RA4M2 group of 32-bit microcontrollers (MCUs) uses the high-performance Arm
Cortex®-M33 core. In concert with the secure crypto engine, it offers secure element
functionality. The RA4M2 is built on a highly efficient 40nm process, built on FreeRTOS—and
is expandable to use other RTOSes and middleware. The RA4M2 is suitable for IoT applications
requiring vast communication options, future proof security, large embedded RAM, and low
active power consumption down to 81µA/MHz running the CoreMark® algorithm from Flash.
The MCU in this series incorporates a high-performance Arm Cortex®-M33 core running up to
100 MHz with the following features:
**Renesas RA4M2 Microcontroller Group**
- R7FA4M2AD3CFP
- 100-pin LQFP package
- 100 MHz Arm® Cortex®-M33 core
- 512 kB Code Flash, 128 KB SRAM
- Native pin access through 4 x 28-pin male headers
- MCU current measurement points for precision current consumption measurement
- Multiple clock sources - RA MCU oscillator and sub-clock oscillator crystals, providing
precision 24.000 MHz and 32,768 Hz reference clock. Additional low-precision clocks are
available internal to the RA MCU
**System Control and Ecosystem Access**
- USB Full Speed Host and Device (micro AB connector)
- Three 5 V input sources
- USB (Debug, Full Speed)
- External power supply (using surface mount clamp test points and power input vias)
- Three Debug modes
- Debug on-board (SWD)
- Debug in (ETM, SWD, and JTAG)
- Debug out (SWD)
- User LEDs and buttons
- Three User LEDs (red, blue, green)
- Power LED (white) indicating availability of regulated power
- Debug LED (yellow) indicating the debug connection
- Two User buttons
- One Reset button
- Five most popular ecosystems expansions
- 2 Seeed Grove® system (I2C/Analog) connectors
- SparkFun® Qwiic® connector
- 2 Digilent PmodTM (SPI and UART) connectors
- ArduinoTM (Uno R3) connector
- MikroElektronikaTM mikroBUS connector
- MCU boot configuration jumper
**Special Feature Access**
- 32 MB (256 Mb) External Quad-SPI Flash
.. figure:: ek-ra4m2-board.webp
:align: center
:alt: RA4M2 Evaluation Kit
EK-RA4M2 Board Functional Area Definitions (Credit: Renesas Electronics Corporation)
Hardware
********
Detail Hardware feature for the RA4M2 MCU group can be found at `RA4M2 Group User's Manual Hardware`_
.. figure:: ra4m2-block-diagram.webp
:width: 442px
:align: center
:alt: RA4M2 MCU group feature
RA4M2 Block diagram (Credit: Renesas Electronics Corporation)
Detail Hardware feature for the EK-RA4M2 MCU can be found at `EK-RA4M2 - User's Manual`_
Supported Features
==================
The below features are currently supported on Zephyr OS for EK-RA4M2 board:
+-----------+------------+----------------------+
| Interface | Controller | Driver/Component |
+===========+============+======================+
| GPIO | on-chip | gpio |
+-----------+------------+----------------------+
| MPU | on-chip | arch/arm |
+-----------+------------+----------------------+
| NVIC | on-chip | arch/arm |
+-----------+------------+----------------------+
| UART | on-chip | serial |
+-----------+------------+----------------------+
Other hardware features are currently not supported by the port.
Programming and Debugging
*************************
Applications for the ``ek_ra4m2`` board target configuration can be
built, flashed, and debugged in the usual way. See
:ref:`build_an_application` and :ref:`application_run` for more details on
building and running.
Flashing
========
Program can be flashed to EK-RA4M2 via the on-board SEGGER J-Link debugger.
SEGGER J-link's drivers are avaialbe at https://www.segger.com/downloads/jlink/
To flash the program to board
1. Connect to J-Link OB via USB port to host PC
2. Make sure J-Link OB jumper is in default configuration as describe in `EK-RA4M2 - User's Manual`_
3. Execute west command
.. code-block:: console
west flash -r jlink
Debugging
=========
You can use Segger Ozone (`Segger Ozone Download`_) for a visual debug interface
Once downloaded and installed, open Segger Ozone and configure the debug project
like so:
* Target Device: R7FA4M2AD
* Target Interface: SWD
* Target Interface Speed: 4 MHz
* Host Interface: USB
* Program File: <path/to/your/build/zephyr.elf>
**Note:** It's verified that we can debug OK on Segger Ozone v3.30d so please use this or later
version of Segger Ozone
References
**********
- `EK-RA4M2 Website`_
- `RA4M2 MCU group Website`_
.. _EK-RA4M2 Website:
https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra4m2-evaluation-kit-ra4m2-mcu-group
.. _RA4M2 MCU group Website:
https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra4m2-100mhz-arm-cortex-m33-trustzone-high-integration-lowest-active-power-consumption
.. _EK-RA4M2 - User's Manual:
https://www.renesas.com/us/en/document/mat/ek-ra4m2-v1-users-manual
.. _RA4M2 Group User's Manual Hardware:
https://www.renesas.com/us/en/document/man/ra4m2-group-users-manual-hardware
.. _Segger Ozone Download:
https://www.segger.com/downloads/jlink#Ozone

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View file

@ -0,0 +1,14 @@
/*
* Copyright (c) 2024 Renesas Electronics Corporation
* SPDX-License-Identifier: Apache-2.0
*/
&pinctrl {
sci0_default: sci0_default {
group1 {
/* tx rx */
psels = <RA_PSEL(RA_PSEL_SCI_0, 4, 11)>,
<RA_PSEL(RA_PSEL_SCI_0, 4, 10)>;
};
};
};

View file

@ -0,0 +1,75 @@
/*
* Copyright (c) 2024 Renesas Electronics Corporation
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <renesas/ra/ra4/r7fa4m2ad3cfp.dtsi>
#include <dt-bindings/gpio/gpio.h>
#include "ek_ra4m2-pinctrl.dtsi"
/ {
model = "Renesas EK-RA4M2";
compatible = "renesas,ra4m2", "renesas,ra";
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
};
leds {
compatible = "gpio-leds";
led1: led1 {
gpios = <&ioport4 15 GPIO_ACTIVE_HIGH>;
label = "LED1";
};
led2: led2 {
gpios = <&ioport4 4 GPIO_ACTIVE_HIGH>;
label = "LED2";
};
led3: led3 {
gpios = <&ioport4 5 GPIO_ACTIVE_HIGH>;
label = "LED3";
};
};
aliases {
led0 = &led1;
};
};
&xtal {
clock-frequency = <DT_FREQ_M(24)>;
mosel = <0>;
#clock-cells = <0>;
status = "okay";
};
&subclk {
status = "okay";
};
&pll {
source = <RA_PLL_SOURCE_MAIN_OSC>;
div = <RA_PLL_DIV_3>;
mul = <25 0>;
freq = <DT_FREQ_M(200)>;
status = "okay";
};
&sci0 {
pinctrl-0 = <&sci0_default>;
pinctrl-names = "default";
status = "okay";
uart0: uart {
current-speed = <115200>;
status = "okay";
};
};
&ioport4 {
status = "okay";
};

View file

@ -0,0 +1,12 @@
identifier: ek_ra4m2
name: Renesas EK-RA4M2
type: mcu
arch: arm
ram: 128
flash: 512
toolchain:
- zephyr
- gnuarmemb
supported:
- gpio
- uart

View file

@ -0,0 +1,17 @@
# Copyright (c) 2024 Renesas Electronics Corporation
# SPDX-License-Identifier: Apache-2.0
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=100000000
# Enable GPIO
CONFIG_GPIO=y
CONFIG_PINCTRL=y
# Enable Console
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_UART_CONSOLE=y
CONFIG_CONSOLE=y
CONFIG_BUILD_OUTPUT_HEX=y
CONFIG_BUILD_NO_GAP_FILL=y

View file

@ -0,0 +1,24 @@
/*
* Copyright (c) 2024 Renesas Electronics Corporation
* SPDX-License-Identifier: Apache-2.0
*/
&pinctrl {
sci2_default: sci2_default {
group1 {
/* tx rx */
psels = <RA_PSEL(RA_PSEL_SCI_2, 1, 12)>,
<RA_PSEL(RA_PSEL_SCI_2, 1, 13)>;
};
};
};
&sci2 {
pinctrl-0 = <&sci2_default>;
pinctrl-names = "default";
status = "okay";
dut: uart {
current-speed = <115200>;
status = "okay";
};
};