Skip to content

Commit ee4613a

Browse files
duynguyenxanashif
authored andcommitted
boards: arm: Add initial support for EKRA8M1
Add support for the EK RA8M1 board This board is using Renesas RA8M1 MCU. Signed-off-by: Duy Nguyen <[email protected]> Signed-off-by: The Nguyen <[email protected]>
1 parent f978c69 commit ee4613a

File tree

13 files changed

+333
-0
lines changed

13 files changed

+333
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2024 Renesas Electronics Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_EK_RA8M1
5+
select SOC_R7FA8M1AHECBD

boards/renesas/ek_ra8m1/board.cmake

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copyright (c) 2024 Renesas Electronics Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
board_runner_args(jlink "--device=R7FA8M1AH")
5+
6+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

boards/renesas/ek_ra8m1/board.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
board:
2+
name: ek_ra8m1
3+
vendor: renesas
4+
socs:
5+
- name: r7fa8m1ahecbd
75 KB
Loading

boards/renesas/ek_ra8m1/doc/index.rst

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
.. _ek_ra8m1:
2+
3+
RA8M1 Evaluation Kit
4+
####################
5+
6+
Overview
7+
********
8+
9+
The EK-RA8M1 is an Evaluation Kit for Renesas RA8M1 MCU Group which is the first
10+
32-bits MCUs based on new Arm Cortex-M85. The kit offer multiple external interface
11+
and peripherals set optimized on board allows user to seamlessly evaluate the features
12+
of the RA8M1 MCU and develop embedded system application in various field.
13+
14+
The key features of the EK-RA8M1 board are categorized in three groups as follow:
15+
16+
**MCU Native Pin Access**
17+
18+
- 480MHz Arm Cortex-M85 based RA8M1 MCU in 224 pins, BGA package
19+
- Native pin acces througgh 2 x 50-pin, and 2 x 40-pin male headers
20+
- MCU current measurement points for precision current consumption measurement
21+
- Multiple clock sources - RA8M1 MCU oscillator and sub-clock oscillator crystals,
22+
providing precision 20.000MHz and 32,768 Hz refeence clocks.
23+
Additional low precision clocks are avaialbe internal to the RA8M1 MCU
24+
25+
**System Control and Ecosystem Access**
26+
27+
- USB Full Speed Host and Device (micro-AB connector)
28+
- Four 5V input sources
29+
30+
- USB (Debug, Full Speed, High Speed)
31+
- External power supply (using surface mount clamp test points and power input vias)
32+
33+
- Three Debug modes
34+
35+
- Debug on-board (SWD)
36+
- Debug in (ETM, SWD and JTAG)
37+
- Debug out (SWD)
38+
39+
- User LEDs and buttons
40+
41+
- Three User LEDs (red, blue, green)
42+
- Power LED (white) indicating availability of regulated power
43+
- Debug LED (yellow) indicating the debug connection
44+
- Two User buttons
45+
- One Reset button
46+
47+
- Five most popular ecosystems expansions
48+
49+
- Two Seeed Grove system (I2C/I3C) connectors
50+
- One SparkFun Qwiic connector
51+
- Two Digilent Pmod (SPI, UART and I2C/I3C) connectors
52+
- Arduino (Uno R3) connector
53+
- MikroElektronika mikroBUS connector
54+
55+
- MCU boot configuration jumper
56+
57+
**Special Feature Access**
58+
59+
- Ethernet (RJ45 RMII interface)
60+
- USB High Speed Host and Device (micro-AB connector)
61+
- 512 Mb (64 MB) External Octo-SPI Flash (present in the MCU Native Pin Access area of the EK-RA8M1 board)
62+
- CAN FD (3-pin header)
63+
64+
.. figure:: ek-ra8m1-board.jpg
65+
:align: center
66+
:alt: RA8M1 Evaluation Kit
67+
68+
EK-RA8M1 Board Functional Area Definitions (Credit: Renesas Electronics Corporation)
69+
70+
Hardware
71+
********
72+
Detail Hardware feature for the RA8M1 MCU group can be found at `RA8M1 Group User's Manual Hardware`_
73+
74+
.. figure:: ra8m1-block-diagram.jpg
75+
:width: 442px
76+
:align: center
77+
:alt: RA8M1 MCU group feature
78+
79+
RA8M1 Block diagram (Credit: Renesas Electronics Corporation)
80+
81+
Detail Hardware feature for the EK-RA8M1 MCU can be found at `EK-RA8M1 - User's Manual`_
82+
83+
Supported Features
84+
==================
85+
86+
The below features are currently supported on Zephyr OS for EK-RA8M1 board:
87+
88+
+-----------+------------+----------------------+
89+
| Interface | Controller | Driver/Component |
90+
+===========+============+======================+
91+
| GPIO | on-chip | gpio |
92+
+-----------+------------+----------------------+
93+
| MPU | on-chip | arch/arm |
94+
+-----------+------------+----------------------+
95+
| NVIC | on-chip | arch/arm |
96+
+-----------+------------+----------------------+
97+
| UART | on-chip | serial |
98+
+-----------+------------+----------------------+
99+
100+
Other hardware features are currently not supported by the port.
101+
102+
Programming and Debugging
103+
*************************
104+
105+
Applications for the ``ek_ra8m1`` board configuration can be
106+
built, flashed, and debugged in the usual way. See
107+
:ref:`build_an_application` and :ref:`application_run` for more details on
108+
building and running.
109+
110+
**Note:** Only support from SDK v0.16.6 in which GCC for Cortex Arm-M85 was available.
111+
To build for EK-RA8M1 user need to get and install GNU Arm Embedded toolchain from https://github.com/zephyrproject-rtos/sdk-ng/releases/tag/v0.16.6
112+
113+
Flashing
114+
========
115+
116+
Program can be flashed to EK-RA8M1 via the on-board SEGGER J-Link debugger.
117+
SEGGER J-link's drivers are avaialbe at https://www.segger.com/downloads/jlink/
118+
119+
To flash the program to board
120+
121+
1. Connect to J-Link OB via USB port to host PC
122+
123+
2. Make sure J-Link OB jumper is in default configuration as describe in `EK-RA8M1 - User's Manual`_
124+
125+
3. Execute west command
126+
127+
.. code-block:: console
128+
129+
west flash -r jlink
130+
131+
Debugging
132+
=========
133+
134+
You can use Segger Ozone (`Segger Ozone Download`_) for a visual debug interface
135+
136+
Once downloaded and installed, open Segger Ozone and configure the debug project
137+
like so:
138+
139+
* Target Device: R7FA8M1AH
140+
* Target Interface: SWD
141+
* Target Interface Speed: 4 MHz
142+
* Host Interface: USB
143+
* Program File: <path/to/your/build/zephyr.elf>
144+
145+
**Note:** It's verified that we can debug OK on Segger Ozone v3.30d so please use this or later
146+
version of Segger Ozone
147+
148+
References
149+
**********
150+
- `EK-RA8M1 Website`_
151+
- `RA8M1 MCU group Website`_
152+
153+
.. _EK-RA8M1 Website:
154+
https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra8m1-evaluation-kit-ra8m1-mcu-group
155+
156+
.. _RA8M1 MCU group Website:
157+
https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra8m1-480-mhz-arm-cortex-m85-based-microcontroller-helium-and-trustzone
158+
159+
.. _EK-RA8M1 - User's Manual:
160+
https://www.renesas.com/us/en/document/mat/ek-ra8m1-users-manual
161+
162+
.. _RA8M1 Group User's Manual Hardware:
163+
https://www.renesas.com/us/en/document/mah/ra8m1-group-users-manual-hardware
164+
165+
.. _Segger Ozone Download:
166+
https://www.segger.com/downloads/jlink#Ozone
167+
168+
.. _zephyr-sdk-0.16.5-6-ge895c4e_linux-x86_64:
169+
https://github.com/zephyrproject-rtos/sdk-ng/suites/22342313531/artifacts/1379111922
49.9 KB
Loading
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* Copyright (c) 2024 Renesas Electronics Corporation
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
&pinctrl {
7+
sci0_default: sci0_default {
8+
group1 {
9+
/* tx */
10+
psels = <RA_PSEL(RA_PSEL_SCI_0, 6, 9)>;
11+
drive-strength = "medium";
12+
};
13+
group2 {
14+
/* rx */
15+
psels = <RA_PSEL(RA_PSEL_SCI_0, 6, 10)>;
16+
};
17+
};
18+
};

boards/renesas/ek_ra8m1/ek_ra8m1.dts

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
* Copyright (c) 2024 Renesas Electronics Corporation
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
/dts-v1/;
7+
8+
#include <renesas/ra/ra8/r7fa8m1ahecbd.dtsi>
9+
#include <dt-bindings/gpio/gpio.h>
10+
11+
#include "ek_ra8m1-pinctrl.dtsi"
12+
13+
/ {
14+
model = "Renesas EK-RA8M1";
15+
compatible = "renesas,ra8m1", "renesas,ra8";
16+
17+
chosen {
18+
zephyr,sram = &sram0;
19+
zephyr,flash = &flash0;
20+
};
21+
22+
leds {
23+
compatible = "gpio-leds";
24+
led1: led1 {
25+
gpios = <&ioport6 0 GPIO_ACTIVE_HIGH>;
26+
label = "LED1";
27+
};
28+
led2: led2 {
29+
gpios = <&ioport4 14 GPIO_ACTIVE_HIGH>;
30+
label = "LED2";
31+
};
32+
led3: led3 {
33+
gpios = <&ioport1 7 GPIO_ACTIVE_HIGH>;
34+
label = "LED3";
35+
};
36+
};
37+
38+
aliases {
39+
led0 = &led1;
40+
};
41+
};
42+
43+
&xtal {
44+
clock-frequency = <DT_FREQ_M(20)>;
45+
mosel = <0>;
46+
#clock-cells = <0>;
47+
status = "okay";
48+
};
49+
50+
&subclk {
51+
status = "okay";
52+
};
53+
54+
&pll {
55+
source = <RA_PLL_SOURCE_MAIN_OSC>;
56+
div = <RA_PLL_DIV_2>;
57+
mul = <96 0>;
58+
divp = <RA_PLL_DIV_2>;
59+
freqp = <DT_FREQ_M(480)>;
60+
divq = <RA_PLL_DIV_2>;
61+
freqq = <DT_FREQ_M(480)>;
62+
divr = <RA_PLL_DIV_2>;
63+
freqr = <DT_FREQ_M(480)>;
64+
status = "okay";
65+
};
66+
67+
&ioport1 {
68+
status = "okay";
69+
};
70+
71+
&ioport4 {
72+
status = "okay";
73+
};
74+
75+
&ioport6 {
76+
status = "okay";
77+
};

boards/renesas/ek_ra8m1/ek_ra8m1.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
identifier: ek_ra8m1
2+
name: Renesas EK-RA8M1
3+
type: mcu
4+
arch: arm
5+
ram: 1024
6+
flash: 2048
7+
toolchain:
8+
- zephyr
9+
- gnuarmemb
10+
supported:
11+
- gpio
12+
- uart
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Copyright (c) 2024 Renesas Electronics Corporation
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=480000000
5+
6+
# Enable GPIO
7+
CONFIG_GPIO=y
8+
CONFIG_PINCTRL=y
9+
10+
# Enable Console
11+
CONFIG_SERIAL=y
12+
CONFIG_UART_CONSOLE=y
13+
CONFIG_UART_INTERRUPT_DRIVEN=y
14+
CONFIG_CONSOLE=y
15+
16+
CONFIG_BUILD_OUTPUT_HEX=y
17+
CONFIG_BUILD_NO_GAP_FILL=y

0 commit comments

Comments
 (0)