Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support of h3ulcb and salvator xs m3 arm64 boards #57172

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions MAINTAINERS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2383,6 +2383,20 @@ Renesas R-Car Platforms:
Renesas R-Car SOCs, dts files and related drivers. Renesas boards based
on R-Car SOCs.

Renesas R-Car ARM64 Platforms:
status: maintained
maintainers:
- lorc
files:
- boards/arm64/rcar_*/
- dts/arm64/renesas/
- soc/arm64/renesas_rcar/
labels:
- "platform: Renesas R-Car ARM64"
description: >-
Renesas R-Car SOCs and dts files, ARMv8 side. Zephyr running on ARMv8 CPUs on Renesas
boards based on R-Car SOCs.

STM32 Platforms:
status: maintained
maintainers:
Expand Down
7 changes: 7 additions & 0 deletions arch/arm64/core/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@ config CPU_CORTEX_A55
help
This option signifies the use of a Cortex-A55 CPU

config CPU_CORTEX_A57
bool
select CPU_CORTEX_A
select ARMV8_A
help
This option signifies the use of a Cortex-A57 CPU

config CPU_CORTEX_A72
bool
select CPU_CORTEX_A
Expand Down
6 changes: 6 additions & 0 deletions boards/arm64/rcar_h3ulcb_ca57/Kconfig.board
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright (c) 2023 EPAM Systems
# SPDX-License-Identifier: Apache-2.0

config BOARD_RCAR_H3ULCB_CA57
bool "Renesas H3ULCB"
depends on SOC_ARM64_R8A77951
12 changes: 12 additions & 0 deletions boards/arm64/rcar_h3ulcb_ca57/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright (c) 2023 EPAM Systems
# SPDX-License-Identifier: Apache-2.0

if BOARD_RCAR_H3ULCB_CA57

config BOARD
default "rcar_h3ulcb_ca57"

config BUILD_OUTPUT_BIN
default y

endif # BOARD_RCAR_H3ULCB_CA57
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
86 changes: 86 additions & 0 deletions boards/arm64/rcar_h3ulcb_ca57/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
.. _rcar_h3ulcb_ca57:

R-CAR H3 ARM CA57 (ARMv8)
#########################

Overview
********
The R-Car H3 is an SOC that features the basic functions for next-generation
car navigation systems.

Hardware
********
The R-Car H3 includes:

* four 1.5-GHz ARM Cortex-A57 MPCore cores;
* four 1.2-GHz ARM Cortex-A53 MPCore cores;
* memory controller for LPDDR4-3200 with 32 bits x 4 channels;
* 2 channels for HDMI1.4b output and 1channel for RGB888 output and 1channel for LVDS;
* 4 channels MIPI-CSI2 Video Input, 2channels digital Video Input;
* serial ATA interface;
* USB3.0 x 2ch and USB2.0 x 3ch interfaces;
* 800-MHz ARM Cortex-R7 core;
* two- and three-dimensional graphics engines;
* video processing units;
* sound processing units;
* MediaLB interface;
* SD card host interface;
* USB3.0 and USB2.0 interfaces;
* PCI Express interface;
* CAN interface;
* EtherAVB.

Connections and IOs
===================

H3ULCB Board
------------

Here are official IOs figures from eLinux for H3ULCB board:

.. figure:: img/rcar_h3ulcb_top.jpg
:align: center

.. figure:: img/rcar_h3ulcb_bottom.jpg
:align: center

Supported Features
==================
The Renesas rcar_h3ulcb_ca57 board configuration supports the following
hardware features:

+-----------+------------------------------+--------------------------------+
| Interface | Driver/components | Support level |
+===========+==============================+================================+
| PINCTRL | pinctrl | |
+-----------+------------------------------+--------------------------------+
| CLOCK | clock_control | |
+-----------+------------------------------+--------------------------------+
| UART | uart | serial port-polling |
+-----------+------------------------------+--------------------------------+

Other hardware features have not been enabled yet for this board.

The default configuration can be found in the defconfig file:

``boards/arm64/rcar_h3ulcb_ca57/rcar_h3ulcb_ca57_defconfig``

Programming and Debugging
*************************

Flashing
========

The flash on board is not supported by Zephyr at this time.

References
**********

- `Renesas R-Car Development Support website`_
- `eLinux R-Car Starter Kit page`_

.. _Renesas R-Car Development Support website:
https://www.renesas.com/us/en/support/partners/r-car-consortium/r-car-development-support

.. _eLinux R-Car Starter Kit page:
https://elinux.org/R-Car/Boards/H3SK
17 changes: 17 additions & 0 deletions boards/arm64/rcar_h3ulcb_ca57/rcar_h3ulcb_ca57-pinctrl.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
* Copyright (c) 2023 EPAM Systems
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <zephyr/dt-bindings/pinctrl/renesas/pinctrl-r8a77951.h>

&pfc {
scif2_data_a_tx_default: scif2_data_a_tx_default {
pin = <PIN_TX2_A FUNC_TX2_A>;
};

scif2_data_a_rx_default: scif2_data_a_rx_default {
pin = <PIN_RX2_A FUNC_RX2_A>;
};
};
32 changes: 32 additions & 0 deletions boards/arm64/rcar_h3ulcb_ca57/rcar_h3ulcb_ca57.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (c) 2023 EPAM Systems
*
* SPDX-License-Identifier: Apache-2.0
*
*/

/dts-v1/;
#include <mem.h>
#include <arm64/renesas/r8a77951.dtsi>
#include "rcar_h3ulcb_ca57-pinctrl.dtsi"

/ {
model = "H3ULCB CA57";

chosen {
zephyr,sram = &ram;
zephyr,console = &scif2;
zephyr,shell-uart = &scif2;
};

ram: memory@48000000 {
device_type = "mmio-sram";
reg = <0x0 0x48000000 0x0 DT_SIZE_M(512)>;
};
};

&scif2 {
pinctrl-0 = <&scif2_data_a_tx_default &scif2_data_a_rx_default>;
pinctrl-names = "default";
status = "okay";
};
17 changes: 17 additions & 0 deletions boards/arm64/rcar_h3ulcb_ca57/rcar_h3ulcb_ca57.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
identifier: rcar_h3ulcb_ca57
name: Renesas H3ULCB based on r8a77951
type: mcu
arch: arm64
toolchain:
- zephyr
- cross-compile
ram: 512
supported:
- clock_control
- uart
testing:
default: true
ignore_tags:
- net
- bluetooth
- isotp
21 changes: 21 additions & 0 deletions boards/arm64/rcar_h3ulcb_ca57/rcar_h3ulcb_ca57_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
CONFIG_SOC_ARM64_R8A77951=y
CONFIG_SOC_SERIES_RCAR_GEN3=y
CONFIG_BOARD_RCAR_H3ULCB_CA57=y

# Cache management
CONFIG_CACHE_MANAGEMENT=y

# Enable UART driver
CONFIG_SERIAL=y
CONFIG_AARCH64_IMAGE_HEADER=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=8300000
CONFIG_XIP=n

CONFIG_MAX_XLAT_TABLES=24

# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# Enable clock control
CONFIG_CLOCK_CONTROL=y
6 changes: 6 additions & 0 deletions boards/arm64/rcar_salvator_xs_m3/Kconfig.board
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright (c) 2023 EPAM Systems
# SPDX-License-Identifier: Apache-2.0

config BOARD_RCAR_SALVATOR_XS_M3
bool "Renesas Salvator XS M3"
depends on SOC_R8A77961
12 changes: 12 additions & 0 deletions boards/arm64/rcar_salvator_xs_m3/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright (c) 2023 EPAM Systems
# SPDX-License-Identifier: Apache-2.0

if BOARD_RCAR_SALVATOR_XS_M3

config BOARD
default "rcar_salvator_xs_m3"

config BUILD_OUTPUT_BIN
default y

endif # BOARD_RCAR_SALVATOR_XS_M3
69 changes: 69 additions & 0 deletions boards/arm64/rcar_salvator_xs_m3/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
.. _rcar_salvator_xs_m3:

R-CAR Salvator XS M3 ARM CA57 (ARMv8)
#####################################

Overview
********
The R-Car M3-W is an SOC that features the basic functions for next-generation
car navigation systems.

Hardware
********
The R-Car M3-W includes:

* two 1.5-GHz ARM Cortex-A57 MPCore cores;
* four 1.3-GHz ARM Cortex-A53 MPCore cores,
* memory controller for LPDDR4-3200 with 32 bits x 2 channels;
* 1 channels for HDMI1.4b output and 1 channel for RGB888 output and 1channel for LVDS;
* 2 channels MIPI-CSI2 Video Input, 2 channels digital Video Input;
* USB3.0 x 1ch and USB2.0 x 2ch interfaces;
* 800-MHz ARM Cortex-R7 core;
* two- and three-dimensional graphics engines;
* video processing units;
* sound processing units;
* MediaLB interface;
* SD card host interface;
* USB3.0 and USB2.0 interfaces;
* PCI Express interface;
* CAN interface;
* EtherAVB.

Supported Features
==================
The Renesas rcar_salvator_xs_m3 board configuration supports the following
hardware features:

+-----------+------------------------------+--------------------------------+
| Interface | Driver/components | Support level |
+===========+==============================+================================+
| PINCTRL | pinctrl | |
+-----------+------------------------------+--------------------------------+
| CLOCK | clock_control | |
+-----------+------------------------------+--------------------------------+
| UART | uart | serial port-polling |
+-----------+------------------------------+--------------------------------+

Other hardware features have not been enabled yet for this board.

The default configuration can be found in the defconfig file:

``boards/arm64/rcar_salvator_xs_m3/rcar_salvator_xs_m3_defconfig``

Programming and Debugging
*************************

Build and flash applications as usual (see :ref:`build_an_application` and
:ref:`application_run` for more details).

References
**********

- `Renesas R-Car Development Support website`_
- `eLinux Salvator-XS page`_

.. _Renesas R-Car Development Support website:
https://www.renesas.com/us/en/support/partners/r-car-consortium/r-car-development-support

.. _eLinux Salvator-XS page:
https://elinux.org/R-Car/Boards/Salvator-XS
32 changes: 32 additions & 0 deletions boards/arm64/rcar_salvator_xs_m3/rcar_salvator_xs_m3.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (c) 2023 EPAM Systems
*
* SPDX-License-Identifier: Apache-2.0
*
*/

/dts-v1/;
#include <mem.h>
#include <arm64/renesas/r8a77961.dtsi>
#include "salvator_xs_m3-pinctrl.dtsi"

/ {
model = "Salvator XS M3";

chosen {
zephyr,sram = &ram;
zephyr,console = &scif2;
zephyr,shell-uart = &scif2;
};

ram: memory@48000000 {
device_type = "mmio-sram";
reg = <0x0 0x48000000 0x0 DT_SIZE_M(512)>;
};
};

&scif2 {
pinctrl-0 = <&scif2_data_a_tx_default &scif2_data_a_rx_default>;
pinctrl-names = "default";
status = "okay";
};
17 changes: 17 additions & 0 deletions boards/arm64/rcar_salvator_xs_m3/rcar_salvator_xs_m3.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
identifier: rcar_salvator_xs_m3
name: Renesas Salvator XS M3 based on r8a77961
type: mcu
arch: arm64
toolchain:
- zephyr
- cross-compile
ram: 512
supported:
- clock_control
- uart
testing:
default: true
ignore_tags:
- net
- bluetooth
- isotp
21 changes: 21 additions & 0 deletions boards/arm64/rcar_salvator_xs_m3/rcar_salvator_xs_m3_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
CONFIG_SOC_R8A77961=y
CONFIG_SOC_SERIES_RCAR_GEN3=y
CONFIG_BOARD_RCAR_SALVATOR_XS_M3=y

# Cache management
CONFIG_CACHE_MANAGEMENT=y

# Enable UART driver
CONFIG_SERIAL=y
CONFIG_AARCH64_IMAGE_HEADER=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=8300000
CONFIG_XIP=n

CONFIG_MAX_XLAT_TABLES=24

# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# Enable clock control
CONFIG_CLOCK_CONTROL=y
Loading
Loading