boards: arm64: add support of Renesas Spider S4 A55 board

Add support of 'rcar_spider_s4/r8a779f0/a55' board: minimal dts
and configuration.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
This commit is contained in:
Mykola Kvach 2024-03-14 12:07:01 +02:00 committed by Carles Cufí
commit 797158997f
24 changed files with 366 additions and 19 deletions

View file

@ -0,0 +1,5 @@
# Copyright (c) 2024 EPAM Systems
# SPDX-License-Identifier: Apache-2.0
config BUILD_OUTPUT_BIN
default y if BOARD_RCAR_SPIDER_S4_R8A779F0_A55

View file

@ -2,4 +2,5 @@
# SPDX-License-Identifier: Apache-2.0
config BOARD_RCAR_SPIDER_S4
select SOC_R8A779F0
select SOC_R8A779F0_R52 if BOARD_RCAR_SPIDER_S4_R8A779F0_R52
select SOC_R8A779F0_A55 if BOARD_RCAR_SPIDER_S4_R8A779F0_A55

View file

@ -1,3 +1,5 @@
# SPDX-License-Identifier: Apache-2.0
board_runner_args(openocd "--use-elf")
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
if(CONFIG_BOARD_RCAR_SPIDER_S4_R8A779F0_R52)
board_runner_args(openocd "--use-elf")
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
endif()

View file

@ -0,0 +1,83 @@
.. _rcar_spider_a55:
R-CAR Spider S4 (ARM64)
#######################
Overview
********
R-Car S4 enables to launch Car Server/CoGW with high performance, high-speed networking,
high security and high functional safety levels that are required as E/E architectures
evolve into domains and zones. The R-Car S4 solution allows designers to re-use up to 88
percent of software code developed for 3rd generation R-Car SoCs and RH850 MCU applications.
The software package supports the real-time cores with various drivers and basic software
such as Linux BSP and hypervisors.
Hardware
********
The R-Car S4 includes:
* eight 1.2GHz Arm Cortex-A55 cores, 2 cores x 4 clusters;
* 1.0 GHz Arm Cortex-R52 core (hardware Lock step is supported);
* two 400MHz G4MH cores (hardware Lock step is supported);
* memory controller for LPDDR4X-3200 with 32bit bus (16bit x 1ch + 16bit x 1ch) with ECC;
* SD card host interface / eMMC;
* UFS 3.0 x 1 channel;
* PCI Express Gen4.0 interface (Dual lane x 2ch);
* ICUMX;
* ICUMH;
* SHIP-S x 3 channels;
* AES Accerator x 8 channels;
* CAN FD interface x 16 channels;
* R-Switch2 (Ether);
* 100base EtherAVB x 1 channel;
* Gbit-EtherTSN x 3 channels;
* 1 unit FlexRay (A,B 2ch) interface.
Supported Features
==================
The Renesas ``rcar_spider_s4/r8a779f0/a55`` board configuration supports the following
hardware features:
+-----------+------------------------------+--------------------------------+
| Interface | Driver/components | Support level |
+===========+==============================+================================+
| PINCTRL | pinctrl | |
+-----------+------------------------------+--------------------------------+
| CLOCK | clock_control | |
+-----------+------------------------------+--------------------------------+
| UART | serial | interrupt-driven/polling |
+-----------+------------------------------+--------------------------------+
Other hardware features have not been enabled yet for this board.
Programming and Debugging
*************************
The onboard flash is not supported by Zephyr at this time. However, it is possible to
load the Zephyr binary using U-Boot commands.
One of the ways to load Zephyr is shown below.
.. code-block:: console
tftp 0x48000000 <tftp_server_path/zephyr.bin>
booti 0x48000000
Here is an example for the :ref:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: rcar_spider_s4/r8a779f0/a55
:goals: build
References
**********
- `Renesas R-Car Development Support website`_
- `eLinux Spider page`_
.. _Renesas R-Car Development Support website:
https://www.renesas.com/us/en/support/partners/r-car-consortium/r-car-development-support
.. _eLinux Spider page:
https://elinux.org/R-Car/Boards/Spider

View file

@ -141,12 +141,12 @@ Flashing
First of all, open your serial terminal.
Applications for the ``rcar_spider_s4`` board configuration can be built in the
Applications for the ``rcar_spider_s4/r8a779f0/r52`` board configuration can be built in the
usual way (see :ref:`build_an_application` for more details).
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: rcar_spider_s4
:board: rcar_spider_s4/r8a779f0/r52
:goals: flash
You should see the following message in the terminal:
@ -165,7 +165,7 @@ Here is an example for the :ref:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: rcar_spider_s4
:board: rcar_spider_s4/r8a779f0/r52
:goals: debug
You will then get access to a GDB session for debugging.

View file

@ -0,0 +1,17 @@
/*
* Copyright (c) 2023 EPAM Systems
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/dt-bindings/pinctrl/renesas/pinctrl-r8a779f0.h>
&pfc {
hscif0_data_tx_default: hscif0_data_tx_default {
pin = <PIN_HTX0 FUNC_HTX0>;
};
hscif0_data_rx_default: hscif0_data_rx_default {
pin = <PIN_HRX0 FUNC_HRX0>;
};
};

View file

@ -0,0 +1,32 @@
/*
* Copyright (c) 2023-2024 EPAM Systems
*
* SPDX-License-Identifier: Apache-2.0
*
*/
/dts-v1/;
#include <mem.h>
#include <arm64/renesas/r8a779f0.dtsi>
#include "rcar_spider_s4_r8a779f0_a55-pinctrl.dtsi"
/ {
model = "Renesas Spider CA55";
chosen {
zephyr,sram = &ram;
zephyr,console = &hscif0;
zephyr,shell-uart = &hscif0;
};
ram: memory@48000000 {
device_type = "mmio-sram";
reg = <0x0 0x48000000 0x0 DT_SIZE_M(512)>;
};
};
&hscif0 {
pinctrl-0 = <&hscif0_data_tx_default &hscif0_data_rx_default>;
pinctrl-names = "default";
current-speed = <1843200>;
status = "okay";
};

View file

@ -0,0 +1,12 @@
identifier: rcar_spider_s4/r8a779f0/a55
name: Cortex A55 for Renesas Spider
type: mcu
arch: arm64
toolchain:
- zephyr
- cross-compile
supported:
- pinctrl
- gpio
- clock_control
- uart

View file

@ -0,0 +1,19 @@
# Cache management
CONFIG_CACHE_MANAGEMENT=y
# Enable UART driver
CONFIG_SERIAL=y
# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_UART_INTERRUPT_DRIVEN=y
# Enable clock control
CONFIG_CLOCK_CONTROL=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=16666666
CONFIG_AARCH64_IMAGE_HEADER=y
CONFIG_XIP=n
CONFIG_MAX_XLAT_TABLES=24
CONFIG_ARMV8_A_NS=y

View file

@ -7,12 +7,12 @@
/dts-v1/;
#include <arm/renesas/rcar/gen4/r8a779f0.dtsi>
#include "rcar_spider_s4-pinctrl.dtsi"
#include "rcar_spider_s4_r8a779f0_r52-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
/ {
model = "Renesas Spider board";
compatible = "renesas,spider-s4";
compatible = "renesas,spider-s4-cr52";
chosen {
zephyr,sram = &sram0;

View file

@ -1,4 +1,4 @@
identifier: rcar_spider_s4
identifier: rcar_spider_s4/r8a779f0/r52
name: Cortex r52 for Renesas Spider
type: mcu
arch: arm