boards: arm: Add Renesas Spider support

Renesas Spider board use a S4 SoC (r8a779f0).

Add basic support for UART, GPIO and clock control.

We are using SCIF0 as SCIF3 is used by Linux.

Signed-off-by: Aymeric Aillet <aymeric.aillet@iot.bzh>
This commit is contained in:
Aymeric Aillet 2022-07-27 16:24:51 +02:00 committed by Anas Nashif
parent f2061a073a
commit cf4ab0e907
8 changed files with 152 additions and 0 deletions

View File

@ -0,0 +1,6 @@
# Copyright (c) 2023 IoT.bzh
# SPDX-License-Identifier: Apache-2.0
config BOARD_RCAR_SPIDER_CR52
bool "Cortex-R52 for Renesas Spider"
depends on SOC_R8A779F0

View File

@ -0,0 +1,9 @@
# Copyright (c) 2023 IoT.bzh
# SPDX-License-Identifier: Apache-2.0
if BOARD_RCAR_SPIDER_CR52
config BOARD
default "rcar_spider_cr52"
endif # BOARD_RCAR_SPIDER_CR52

View File

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

View File

@ -0,0 +1,25 @@
/*
* Copyright (c) 2023 IoT.bzh
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <dt-bindings/pinctrl/renesas/pinctrl-r8a779f0.h>
&pfc {
scif0_data_tx_default: scif0_data_tx_default {
pin = <PIN_RX0 FUNC_RX0>;
};
scif0_data_rx_default: scif0_data_rx_default {
pin = <PIN_TX0 FUNC_TX0>;
};
scif3_data_tx_default: scif3_data_tx_default {
pin = <PIN_HTX0 FUNC_TX3>;
};
scif3_data_rx_default: scif3_data_rx_default {
pin = <PIN_HRX0 FUNC_RX3>;
};
};

View File

@ -0,0 +1,58 @@
/*
* Copyright (c) 2023 IoT.bzh
*
* SPDX-License-Identifier: Apache-2.0
*
*/
/dts-v1/;
#include <arm/renesas/rcar/gen4/r8a779f0.dtsi>
#include "rcar_spider_cr52-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
/ {
model = "Renesas Spider board";
compatible = "renesas,spider-cr52";
chosen {
zephyr,sram = &sram0;
zephyr,console = &scif0;
zephyr,shell-uart = &scif0;
};
leds {
compatible = "gpio-leds";
user_led: led_8 {
gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
label = "User LED";
};
};
gpio_keys {
compatible = "gpio-keys";
user_button: sw10 {
gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
label = "User switch";
zephyr,code = <INPUT_KEY_0>;
};
};
aliases {
led0 = &user_led;
sw0 = &user_button;
};
};
&scif0 {
pinctrl-0 = <&scif0_data_tx_default &scif0_data_rx_default>;
pinctrl-names = "default";
status = "okay";
};
&gpio0 {
status = "okay";
};
&gpio4 {
status = "okay";
};

View File

@ -0,0 +1,11 @@
identifier: rcar_spider_cr52
name: Cortex r52 for Renesas Spider
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
supported:
- gpio
- clock_control
- uart

View File

@ -0,0 +1,13 @@
CONFIG_SOC_R8A779F0=y
CONFIG_SOC_SERIES_RCAR_GEN4=y
CONFIG_BOARD_RCAR_SPIDER_CR52=y
CONFIG_CLOCK_CONTROL=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=12500000
CONFIG_CONSOLE=y
CONFIG_RAM_CONSOLE=y
CONFIG_FLASH_SIZE=0
CONFIG_FLASH_BASE_ADDRESS=0
CONFIG_SERIAL=y
CONFIG_UART_CONSOLE=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_GPIO=y

View File

@ -0,0 +1,27 @@
# Renesas R-Car Spider S4 Cortex-R52 Board Config
source [find interface/ftdi/olimex-arm-usb-ocd-h.cfg]
source [find target/renesas_rcar_reset_common.cfg]
set _CHIPNAME r8a779f0
set _CORE_NAME r52
set _TARGETNAME $_CHIPNAME.$_CORE_NAME
set _CTINAME $_TARGETNAME.cti
set _DAPNAME $_CHIPNAME.dap
set DAP_TAPID 0x5ba00477
set CR52_DBGBASE 0x80c10000
set CR52_CTIBASE 0x80c20000
adapter srst delay 1000
adapter speed 20000
global $_CHIPNAME
transport select jtag
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x01 -irmask 0x0f -expected-id $DAP_TAPID
dap create $_DAPNAME -chain-position $_CHIPNAME.cpu
cti create $_CTINAME -dap $_DAPNAME -ap-num 1 -baseaddr $CR52_CTIBASE
target create $_TARGETNAME armv8r -dap $_DAPNAME -ap-num 1 -dbgbase $CR52_DBGBASE -cti $_CTINAME
$_TARGETNAME configure -rtos auto