R Car X5H Ironhide Sample and Demo hardware configuration - renesas/zephyr GitHub Wiki

Followings are hardware connection and test samples for the R-Car X5H Ironhide board.

Default UART connection

Physical Interface Location Software Interface Converter Further Information
CN44_USB_PORT (USB 2.0 Micro-B) CPU Board SCIF1/HSCIF0 FT2232H-56Q Default Zephyr serial on SCIF1/ Linux serial on HSCIF0

The default UART port can be accessed by connecting a USB 2.0 Micro-B cable to the CN44_USB_PORT on the board.

Open a serial terminal, such as Tera Term or minicom, with the following settings:

  • Speed: 115200
  • Data: 8 bits
  • Parity: None
  • Stop bits: 1

Build and Flash Guideline

For required tool and environment setup to develop Zephyr, please check: System Requirements

1. Build Command

west build -p always -b rcar_ironhide_x5h/r8a78000/r52 <application_path>

2. Flash Command

At this time, no direct flashing method is officially supported by this Zephyr port. However, it is possible to load the Zephyr binary via specific method.

UART Sample

  • hello_world

  • echo_bot (samples/drivers/uart/echo_bot):

    • Hardware configuration: refer to default UART connection.
    • Build command:
      • west build -p always -b rcar_ironhide_x5h/r8a78000/r52 samples/drivers/uart/echo_bot
    • Flash command: refer to 2. Flash Command.
  • zTest uart_basic_api (tests/drivers/uart/uart_basic_api):

    • Hardware configuration: refer to default UART connection.
    • Build command:
      • west build -p always -b rcar_ironhide_x5h/r8a78000/r52 tests/drivers/uart/uart_basic_api
    • Flash command: refer to 2. Flash Command.

GPIO Sample

  • Blinky (samples/basic/blinky): Simple LED blinky

  • Button (samples/basic/button): Simple button test

DMA Sample

  • zTest chan_blen_transfer (tests/drivers/dma/chan_blen_transfer):
    • HW configuration: refer to default UART connection.
    • Build command: $ west build -p always -b rcar_ironhide_x5h/r8a78000/r52 tests/drivers/dma/chan_blen_transfer
    • Flash command: refer to 2. Flash Command.

Ethernet Sample

Hardware Configuration

Board

  • Renesas R-Car Ironhide X5H (rcar_ironhide_x5h_r8a78000_r52)
  • Ethernet interface used: TSN Endpoint Station channel 4 (tsnes4), forwarded through R-Switch3 (rswitch3) Port 5 over SGMII to an external TI DP83869 copper PHY.

Ethernet Data Path

TSNES4
  -> R-Switch3 (rswitch3) Port 5 (port5, port@5)
  -> XPCS channel 5 (pcs_ch5, SGMII)
  -> Multi-Protocol PHY / SerDes (mp_phy)
  -> TI DP83869 PHY (phy2, on mdio4, address 2)

Required Connections — MDIO4 Pin Mapping

Signal Pin Function Description
RSW3 ETHA4 MDC PIN_ETH25G0_MDC FUNC_ETH25G2_MDC MDIO clock for the mdio4 PHY management bus
RSW3 ETHA4 MDIO PIN_ETH25G0_MDIO FUNC_ETH25G2_MDIO MDIO data for the mdio4 PHY management bus

The SGMII data lanes between the SoC (XPCS channel 5, via the internal SerDes mp_phy) and the DP83869 PHY are routed internally on the board and do not require external jumper configuration.

Pin Control DTS

Defined in rcar_ironhide_x5h_r8a78000_r52-pinctrl.dtsi:

rsw3_etha4_mdc_default: rsw3_etha4_mdc_default {
    pin = <PIN_ETH25G0_MDC FUNC_ETH25G2_MDC>;
};

rsw3_etha4_mdio_default: rsw3_etha4_mdio_default {
    pin = <PIN_ETH25G0_MDIO FUNC_ETH25G2_MDIO>;
};

PHY Configuration

Parameter Value
PHY Type TI DP83869 (Copper Ethernet PHY)
PHY Address 2 (on mdio4 bus)
Interface Mode SGMII (DP83869_OP_MODE_SGMII_COPPER_ETHERNET)
MAC Address (tsnes4) 74:90:50:48:DF:57 (fixed, set via local-mac-address in board DTS)

Driver Kconfig Parameters

Config Symbol Default Range Description
CONFIG_ETH_RENESAS_RCARSOC_TSNES y (auto) Enable the Renesas TSN Endpoint Station (TSN-ES) Ethernet controller
CONFIG_ETH_RENESAS_RCARSOC_TSNES_BUFFER_POOL_SIZE 3145728 65536–4194304 Total DMA buffer pool size (bytes)
CONFIG_ETH_RENESAS_RCARSOC_TSNES_MAX_FRAME_SIZE 1522 64–9000 Maximum Ethernet frame size (bytes)
CONFIG_ETH_RENESAS_RCARSOC_TSNES_RX_THREAD_PRIORITY 2 RX descriptor processing thread priority
CONFIG_ETH_RENESAS_RCARSOC_TSNES_RX_THREAD_STACK 2048 1024–8192 RX descriptor processing thread stack size (bytes)
CONFIG_ETH_RENESAS_RCARSOC_RSWITCH3 y (auto) Enable the Renesas R-Switch 3 driver (switch fabric that TSN-ES attaches to)
CONFIG_ETH_RENESAS_RSWITCH3_TIMEOUT 100000 Register access timeout (us)

DTS Node Reference

The Ethernet path nodes are defined in rcar_gen5_cr52.dtsi / r8a78000.dtsi and are disabled by default:

/* R-Switch 3 Port 5 (connects tsnes4 to phy2 via XPCS channel 5) */
port5: port@5 {
    compatible = "renesas,rcarsoc-rswitch3-port";
    reg = <5>;
    xpcs = <&pcs_ch5>;
    phy-handle = <&phy2>;
    phy-mode = "sgmii";
    status = "disabled";
};

/* TSN Endpoint Station channel 4 */
tsnes4: ethernet@c9c70000 {
    compatible = "renesas,rcarsoc-eth-tsnes";
    channel = <4>;
    renesas,rswitch = <&rswitch3>;
    renesas,rswitch-if = <9>;
    renesas,rswitch-forward-ports = <BIT(5)>;
    status = "disabled";
};

Enabled in rcar_ironhide_x5h_r8a78000_r52.dts (MDIO bus, PHY and MAC address):

&mdio4 {
    pinctrl-0 = <&rsw3_etha4_mdc_default &rsw3_etha4_mdio_default>;
    pinctrl-names = "default";
    status = "disabled";

    phy2: ethernet-phy@2 {
        compatible = "ti,dp83869";
        reg = <2>;
        ti,op-mode = <DP83869_OP_MODE_SGMII_COPPER_ETHERNET>;
        status = "disabled";
    };
};

&tsnes4 {
    pinctrl-0 = <&tsnes4_match_default
        &tsnes4_pps_default
        &tsnes4_capture_default>;
    pinctrl-names = "default";
    local-mac-address = [74 90 50 48 DF 57];
    status = "disabled";
};

mdio4, phy2, tsnes4 and port5 are kept disabled at board level and are enabled per-sample via a board devicetree overlay (see below), since not every application needs the Ethernet interface.


Sample Application — samples/net/zperf

The zperf sample is an Ethernet network benchmark tool that measures upload and download throughput using TCP or UDP.

Requirements:

  • iPerf (v2.0.10 and newer) installed on the host machine
  • Wireshark installed on the host machine (optional)

Board-specific files added:

  • samples/net/zperf/boards/rcar_ironhide_x5h_r8a78000_r52.conf
  • samples/net/zperf/boards/rcar_ironhide_x5h_r8a78000_r52.overlay

Build command:

west build -p always -b rcar_ironhide_x5h/r8a78000/r52 samples/net/zperf

Flash command: refer to 2. Flash Command.

Board overlay (rcar_ironhide_x5h_r8a78000_r52.overlay):

&tsnes4 {
    status = "okay";
};

&port5 {
    status = "okay";
};

&mdio4 {
    status = "okay";
};

&phy2 {
    status = "okay";
};

Board config (rcar_ironhide_x5h_r8a78000_r52.conf):

CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_STATISTICS=y
CONFIG_NET_CONFIG_MY_IPV4_ADDR="10.239.136.215"
CONFIG_NET_CONFIG_PEER_IPV4_ADDR="10.239.136.1"

CONFIG_NET_PKT_RX_COUNT=512
CONFIG_NET_PKT_TX_COUNT=512
CONFIG_NET_BUF_RX_COUNT=512
CONFIG_NET_BUF_TX_COUNT=512
CONFIG_NET_BUF_DATA_SIZE=1024

CONFIG_NET_TX_STACK_SIZE=8192
CONFIG_NET_RX_STACK_SIZE=8192
CONFIG_NET_TCP_WORKQ_STACK_SIZE=8192
CONFIG_NET_MGMT_EVENT_STACK_SIZE=8192
CONFIG_NET_SOCKETS_SERVICE=y
CONFIG_NET_SOCKETS_SERVICE_STACK_SIZE=8192

Note: CONFIG_NET_CONFIG_MY_IPV4_ADDR / CONFIG_NET_CONFIG_PEER_IPV4_ADDR are set to static addresses for the bring-up test network; update them to match the IP addresses used on your own bench before running.

Expected Output

After boot, the board configures the R-Switch3 forwarding path and acquires an IPv4 address. The boot sequence observed:

*** Booting Zephyr OS build wip_rcarsoc_20260514-31-g24496102a7f7 ***
[00:00:00.159,000] <inf> net_config: Initializing network
[00:00:00.159,000] <inf> net_config: Waiting interface 1 (0x10260a30) to be up...
[00:00:04.162,000] <inf> eth_rswitch3: porrt_id: 5, link up: 1, speed: 32
[00:00:04.166,000] <inf> eth_rswitch3: rswitch3_etha_wait_link_verification successful
[00:00:04.172,000] <inf> eth_rswitch3: Configured forwarding between TSN-ES4 (port 9) and external ports mask 0x20
[00:00:04.172,000] <inf> net_config: Interface 1 (0x10260a30) coming up
[00:00:04.172,000] <inf> net_config: IPv4 address: 10.239.136.215
[00:00:04.273,000] <inf> net_config: IPv6 address: 2001:db8::1
[00:00:04.273,000] <inf> net_config: IPv6 address: 2001:db8::1

Tests were run against a Linux host (10.239.136.173) connected to the board (10.239.136.215), cross-checked with iperf running on the host side.

TCP Upload — zperf tcp upload <server_ip> <port> <duration_s> <packet_size>:

Zephyr side:

alt text

Host side (iperf -s -l 1K -B 10.239.136.173 -p 5001):

alt text

TCP Download — zperf tcp download <port> <server_ip>:

Zephyr side:

alt text

Host side (iperf -l 1K -c 10.239.136.215 -p 5001):

alt text

UDP Download — zperf udp download <port> <server_ip>:

Zephyr side:

alt text

Host side (iperf -u -l 1K -c 10.239.136.215 -p 5001 -b 100M):

alt text

UDP Upload — zperf udp upload <server_ip> <port> <duration_s> <packet_size> <rate>:

Zephyr side:

alt text

Host side (iperf -u -s -l 1K -B 10.239.136.173 -p 5001):

images/gen5/iperf_udpupload.png

TX path (board → host) sustains ~44 Mbps with 0% packet loss.


Sample Application — samples/net/dhcpv4_client

The dhcpv4_client sample starts a DHCPv4 client, gets an IPv4 address from the DHCPv4 server, and prints address, lease time, netmask and router information to the serial console.

Requirements:

  • DHCPv4 Server: Install a server like dnsmasq or ISC dhcpd/ kea on the host machine
  • Wireshark installed on the host machine (optional)

Board-specific files added:

  • samples/net/dhcpv4_client/boards/rcar_ironhide_x5h_r8a78000_r52.conf
  • samples/net/dhcpv4_client/boards/rcar_ironhide_x5h_r8a78000_r52.overlay

Build command:

west build -p always -b rcar_ironhide_x5h/r8a78000/r52 samples/net/dhcpv4_client

Flash command: refer to 2. Flash Command.

Board overlay (rcar_ironhide_x5h_r8a78000_r52.overlay): same as the zperf overlay above — enables tsnes4, port5, mdio4 and phy2.

Board config (rcar_ironhide_x5h_r8a78000_r52.conf):

CONFIG_NET_L2_ETHERNET=y

Expected Output

alt text

Note: The warning DHCP server provided more DNS servers than can be saved is non-critical and does not affect DHCPv4 functionality.

A Wireshark capture on the host, filtered on eth.addr == 74:90:50:48:DF:57 (the tsnes4 MAC address), confirms the DHCP Discover/Request frames on the wire, sourced from RenesasE_48:df:57 (74:90:50:48:df:57).

alt text


Audio Sample

Sample Application — samples/drivers/i2s/i2s_record_playback_rcar

This sample is used to test the R-Car Gen5 I2S driver by capturing audio from a codec into a RAM buffer and then playing the same buffer back through the codec.

Hardware connection:

  • Connect Upper part of CN39 (3.5-mm stereo TRS jack) to headphone.
  • Connect Lower part of CN39 (3.5-mm stereo TRS jack) to self-powered microphone (DC biased microphone), or to audio LINE-OUT port of your PC in case this microphone is not available.

Build command:

west build -p always -b rcar_ironhide_x5h/r8a78000/r52 samples/drivers/i2s/i2s_record_playback_rcar

Flash command: refer to 2. Flash Command.

Expected Output

The sample is console driven:

  • Type r to record CONFIG_RECORD_TIME seconds of audio (I2S RX).
  • Type p to play back the most recently recorded audio (I2S TX).
  • Type e to exit the sample.

Sample Application — samples/drivers/i2s/i2s_codec

This sample demonstrates how to use an I2S driver in a simple processing of an audio stream. It configures and starts from memory buffer (sample sine wave) or from DMIC to record i2s data and send to codec with DMA.

Hardware connection:

  • Connect Upper part of CN39 (3.5-mm stereo TRS jack) to headphone.

Build command:

west build -p always -b rcar_ironhide_x5h/r8a78000/r52 samples/drivers/i2s/i2s_codec

Flash command: refer to 2. Flash Command.

Expected Output

You should hear the sine wave played back in a continuous loop through the connected headphones.

⚠️ **GitHub.com Fallback** ⚠️